Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

877
Cristina Mndruª Arhitecturi pentru sisteme software Slide 1 Arhitecturi pentru sisteme software Curs 1 Site curs: https://sites.google.com/site/arhswcm

description

Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Transcript of Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Page 1: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 1

Site curs:https://sites.google.com/site/arhswcm

id9208661 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 2: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

Arhitecturi software - exemple

Page 3: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

Arhitecturi software - exemple

Page 4: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Arhitecturi software - exemple

Page 5: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Arhitecturi software - exemple

Page 6: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Arhitecturi software - exemple

Page 7: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

Arhitecturi software - exemple

Page 8: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

Arhitecturi software - exemple

Page 9: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

Concluzie

Probleme ale descrierilor naive ale arhitecturii software

� Text informal ºi diagrame de tip box-and-lines.

� Intuitive

� Precizie slabã

� Rareori formalizatã

O soluþie : Dezvoltarea ARHITECTURALÃ a sistemelor software ºi descrierea formalã a structurii acestora.

Page 10: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Dezvoltarea arhitecturalã a sistemelor software

� Compunerea sistemelor din pãrþi componente.

� Asigurarea conformitãþii sistemului cu arhitectura ºi cu

proprietãþile dorite.

� Utilizare arhitecturi standard pentru integrare.

� Reutilizare.

� Reducere costuri utilizând linii de produse.

Page 11: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

Dezvoltarea arhitecturalã a sistemelor software

� Compunerea sistemelor din pãrþi componente.

� Asigurarea conformitãþii sistemului cu arhitectura ºi cu

proprietãþile dorite.

� Utilizare arhitecturi standard pentru integrare.

� Reutilizare.

� Reducere costuri utilizând linii de produse.

Page 12: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

PLAN CURS

Obiectivele cursului

Definiþia ºi rolul arhitecturii software

Evoluþia domeniului

Arhitectura software în context

Impactul arhitecturii software

Relaþiile de influenþã ale arhitecturii software

Rolul ºi calitãþile arhitectului software

Page 13: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Obiectivele cursului - 1

Rolul arhitecturii software în procesul de dezvoltare a software-lui.

Recunoaºterea principalelor stiluri ºi ºabloane arhitecturale.

Descrierea cerinþelor astfel încât arhitectura sã poatã fi evaluatã.

Înþelegerea principiilor unei bune documentaþii arhitecturale.

Înþelegerea modului de incorporare a COTS ºi middleware în

proiectele arhitecturale.

Generarea de alternative arhitecturale pentru o problemã ºi

alegerea uneia dintre ele.

Page 14: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Obiectivele cursului - 2

Proiectarea ºi construirea unui sistem de dimensiuni medii care

satisface o specificaþie arhitecturalã

Înþelegerea modului în care notaþiile formale pot fi utilizate

pentru a specifica arhitecturi.

Evaluarea adecvãrii unei arhitecturi date în îndeplinirea unui

set de cerinþe sistem ºi echilibrarea compromisurilor asupra

calitãþii.

Cunoaºterea tendinþelor de viitor în domeniul arhitecturilor

software.

Page 15: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

PLAN CURS

Obiectivele cursului

Definiþia ºi rolul arhitecturii software

Evoluþia domeniului

Arhitectura software în context

Impactul arhitecturii software

Relaþiile de influenþã ale arhitecturii software

Rolul ºi calitãþile arhitectului software

Page 16: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Arhitecturã software - Definiþie

Definiþii la:http://www.sei.cmu.edu/architecture/start/definitions.cfm

Definiþia adoptatã la acest curs:

�Arhitectura software a unui sistem de calcul este setul structurilor

unui sistem necesare pentru a realiza raþionamente referitoare la

acesta, structuri conþinând elementele software, relaþiile dintre

acestea ºi proprietãþile vizibile din exterior ale ambelor�.

Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 17: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

Proiectare arhitecturalã

Informaþii despre domeniul aplicaþiei

PROIECTARE ARHITECTURALÃ

Arhitectura aplicaþiei = Perspectivã generalã asupra software-lui.

Elemente ale modelului analizã

ªabloane ºi stiluri arhitecturale existente

Page 18: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

Locul ºi rolul arhitecturii software

Proiect de nivel superior al sistemuluiAbstractizãri la nivel de sistem

Modele reutilizabile la nivel de sistemRãspunde cerinþelor de comportament ºi de calitate

Page 19: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

Importanþa arhitecturii software

Reducerea costurilor de dezvoltare ºi de mentenanþã clarificarea structurii sistemului pe diferite nivele reutilizare

Creºterea calitãþii produsului software clarificarea cerinþelor explicitarea deciziilor, realizate pe bazã de principii, ºi a

implicaþiilor lor analize la nivel de sistem analiza precoce a problemelor de proiectare

Page 20: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Importanþa arhitecturii software � reducerea costurilor de mentenanþã

Aproape 50% din efortul de mentenenþã este

investit în analiza ºi înþelegerea codului ºi documentaþiei existente.

Page 21: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

Arhitecturã software vs. programare

PROGRAMAREA

Implementarea�SăUþilor componente

Proprietãþile computaþionale

Operaþionalã

În mare parte dinamicã

Performanþã la nivel de algoritm

�vedere� interioarã a modulelor

ARHITECTURA SOFTWARE

Interacþiunile dintre pãrþile componente

Proprietãþile structurale

Declarativã

În mare parte staticã

Performanþã la nivel de sistem

�vedere��H[WHULRDUă�D�modulelor

Page 22: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

PLAN CURS

Obiectivele cursului

Definiþia ºi rolul arhitecturii software

Evoluþia domeniului

Arhitectura software în context

Impactul arhitecturii software

Relaþiile de influenþã ale arhitecturii software

Rolul ºi calitãþile arhitectului software

Page 23: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Evoluþia domeniului - anii 1980

Utilizare informalã de diagrame de tip box-and-lines

Aplicare ad-hoc a expertizei arhitecturale

Utilizarea neorganizatã, necodificatã, a ºabloanelor ºi stilurilor

Majoritatea proiectelor nu au �arhitect�

Page 24: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Evoluþia domeniului - anii 1990

Recunoaºterea importanþei arhitecþilor în companiile de dezvoltare de software

Procese software ce includ revizuiri ale arhitecturii ºi documentaþie arhitecturalã explicitã

Utilizare de linii de produse, de standarde arhitecturale, de cadre pentru integrare de componente

Codificarea vocabularului, notaþii ºi instrumente pentru proiectare arhitecturalã

Cãrþi ºi cursuri de arhitecturi software

Page 25: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

Evoluþia domeniului - anii 2000

Încorporarea notaþiilor arhitecturale în principalele limbaje de proiectare (ex. UML 2.0) ºi instrumente (ex. Software Architect de la IBM)

Metode�ED]DWH�SH�SURLHFWDUH�DUKLWHFWXUDOă�ºi rafinarea acesteia (ex. MDA � Model Driven Architecture)

Unele instrumente pentru analizã�DUKLWHFWXUDOă

Standarde arhitecturale pentru sisteme enterprise (ex. RM-ODP, TOGAF)

Page 26: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

PLAN CURS

Obiectivele cursului

Definiþia ºi rolul arhitecturii software

Evoluþia domeniului

Arhitectura software în context

Impactul arhitecturii software

Relaþiile de influenþã ale arhitecturii software

Rolul ºi calitãþile arhitectului software

Page 27: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Ingineria sistemelor

Ingineria sistemelor ��GLVFLSOLQă�GH�SURLHFWDUH�ºi management pentru proiectarea ºi construirea de sisteme mari, complexe, interdisciplinare.

Arhitectura sistemului � element critic al ingineriei sistemelor:� Descrie elementele ºi interacþiunile unui sistem complet precum

ºi contribuþia acestora la scopul sistemului

� Include identificarea ºi caracterizarea elementelor sistemului, fãrã a descrie substructurile acestor elemente.

Page 28: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

Interese în proiectãri arhitecturale

Caracteristicile limbajului Eficienþa algoritmilor Proiectarea structurilor de date Testarea aplicaþiei software Implementarea funcþionalitãþii

Proiect software non-arhitectural

Identificarea atributelor de calitate Cerinþele funcþionale pentru software Partiþionarea aplicaþiilor software Integrare ºi testare la nivel de software ºi de sistem

Arhitecturã software

Identificarea contextului sistemului Partiþionare (centratã pe Hw ºi infrastructurã) Identificarea cerinþelor software Cerinþele funcþionale generale ale sistemului Integrare ºi testare la nivel de sistem

Arhitecturã sistem

Procese business ºi modele operaþionale�'DWH�EXVLQHVV

�6WUXFWXUă�ºi relaþii organizaþionale�3ăUþile interesate în afacere (stakeholders) Infrastructura IT

Arhitecturã �enterprise�

Interese cheie în proiectareNivel de abstractizare

Page 29: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

Ierarhia proiectãrii arhitecturale

Principii:

Interese diferite pe nivele diferite

Deciziile de pe nivelele superioare impun constrângeri nivelelor inferioare

Nivelul superior transferã responsabilitatea detalierii�FăWUH�nivelul inferior

Page 30: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

Ierarhia proiectãrii arhitecturale

ENTERPRISE: procesul business mapat pe o infrastructurã cu

granularitate mare.

SISTEM: Concentrare pe cerinþele funcþionale alocate elementelor fizice. (sisteme de sisteme)

SOFTWARE: multidemnsionalã; satisfãcând

cerinþe funcþionale ºi de calitate.�

Deseori ortogonalã în raport cu structurile sistemului.

Criticã în satisfacerea obiectivelor business.

Page 31: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

PLAN CURS

Obiectivele cursului

Definiþia ºi rolul arhitecturii software

Evoluþia domeniului

Arhitectura software în context

Impactul arhitecturii software

Relaþiile de influenþã ale arhitecturii software

Rolul ºi calitãþile arhitectului software

Page 32: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

Impactul arhitecturii software

Atributele de calitate (modificabilitate, disponibilitate, performanþã, etc.) sunt dependente de design.

Gândirea arhitecturalã este gândire strategicã.

O arhitecturã software proiectatã deliberat ºi bine documentatã

oferã valoare proiectului ºi firmei ce dezvoltã software-ul.

Page 33: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

Impactul arhitecturii software

Proiectul arhitectural ºi documentaþia asociatã:

� servesc ca vehicol de comunicare

� ghideazã deciziile iniþiale de proiectare

� reduc riscul

� ajutã la managementul proiectului/produsului

� faciliteazã reutilizarea

Page 34: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

Impactul arhitecturii software

Documentaþia�DUKLWHFWXULL�RIHUă�XQ�FDGUX�GH�UHIHULQþã în care pot fi expuse ºi negociate interese concurente.

Permite:

� Negocierea cerinþelor tuturor pãrþilor interesate� Realizarea de informãri asupra progresului

� Alocare de resurse ºi ghidarea construirii produsului software

Documentaþia trebuie sã fie:� DESCRIPTIVÃ -�SHQWUX�FRPXQLFDUH� PRESCRIPTIVÃ - pentru proiectanþi ºi pentru

implementatori.

Proiectul arhitectural ºi documentaþia asociatã:� Servesc ca vehicol de comunicare���*KLGHD]ă�GHFL]LLOH�LQLþiale de proiectare���5HGXF�ULVFXO

���$MXWă�OD�PDQDJHPHQWXO�SURLHFWXOXL/produsului���)DFLOLWHD]ă�UHXWLOL]DUHD

Page 35: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

Impactul arhitecturii software

Arhitectura face trecerea de la specificarea cerinþelor (ce?) la îndeplinirea acestora (cum?).

Arhitectul poate prezice calitãþile sistemului prin studierea abstractizãrilor arhitecturale ale acestuia.� Deciziile arhitecturale influenþeazã proprietãþile sistemului în

moduri cunoscute

� Proiectul arhitectural poate fi analizat ºi utilizat pentru a prezice în ce mãsurã vor fi obþinute proprietãþile aºteptate de la sistem.

Proiectul arhitectural ºi documentaþia asociatã:� Servesc ca vehicol de comunicare���*KLGHD]ă�GHFL]LLOH�LQLþiale de proiectare���5HGXF�ULVFXO

���$MXWă�OD�PDQDJHPHQWXO�SURLHFWXOXL/produsului���)DFLOLWHD]ă�UHXWLOL]DUHD

PERFORMANÞà ��HYLWDUH�JkWXLUL, cuplare strânsã a

elementelor, limitarea�FDQWLWăþii ºi frecvenþei comunicãrilor

distribuite ºi între elemente

MODIFICABILITATE ��FHQWUDUH�SH�UHVSRQVDELOLWăþile elementelor, decuplarea�HOHPHQWHORU, localizarea responsabilitãþilor, minimizarea ºi simplificarea dependenþelor între elementele sistemului.

Page 36: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

Impactul arhitecturii software

O arhitecturã ce a fost proiectatã poate fi evaluatã pot fi identificate ºi diminuate elementele riscante ale sistemului.

Infrastructura arhitecturalã proiectatã poate fi implementatã ºi serveºte ca �echipament� de testare suport pentru prototipare, integrare, testare precoce.

Proiectul arhitectural ºi documentaþia asociatã:� Servesc ca vehicol de comunicare���*KLGHD]ă�GHFL]LLOH�LQLþiale de proiectare� Reduc riscul���$MXWă�OD�PDQDJHPHQWXO�SURLHFWXOXL/produsului���)DFLOLWHD]ă�UHXWLOL]DUHD

Page 37: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

Impactul arhitecturii software

Permite realizarea de�HVWLPăUL�PDL�SUHFLVH ale costurilor ºi planului de timp.� Estimãrile se bazeazã pe elementele arhitecturii

� Echipa responsabilã pentru un anume element oferã estimãrile pentru acesta� Managerii de proiect integreazã estimãrile ºi rezolvã dependenþele ºi

conflictele

Utilã în managementul modificãrilor.� Permite pãrþilor interesate sã judece ºi sã gestioneze modificãrile la sistem

pe toatã durata de viaþã a acestuia (aprox. 80%�GLQ�HIRUW�DUH�ORF�GXSă�GH]YROWDUHD�ºi punerea iniþialã în funcþiune a sistemului).

� Arhitectura împarte modificãrile în trei clase:� Locale � un singur element� Non-locale � mai multe elemente� Arhitecturale ��PRGLILFăUL�OD�WRSRORJLD�VLVWHPXOXL�VDX�OD�PHFDQLVPHOH�GH�FRPXQLcare ºi coordonare.

Oferã înþelegere ºi cunoaºtere�SăWUXQ]ăWRDUH�GH-a lungul întregului ciclu de viaþã al sistemului. Proiectul arhitectural ºi documentaþia asociatã:

� Servesc ca vehicol de comunicare���*KLGHD]ă�GHFL]LLOH�LQLþiale de proiectare� Reduc riscul���$MXWă�OD�PDQDJHPHQWXO�SURLHFWXOXL/produsului���)DFLOLWHD]ă�UHXWLOL]DUHD

Page 38: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

Impactul arhitecturii software

Faciliteazã reutilizarea de elemente cu granularitate mare.Exemple:

� Componente (ex. baze de date, COTS)� Cadre de dezvoltare (ex. Java EE)

� Linii de produse��reutilizare strategicã)

Obs.�5HXWLOL]DUHD�GH�PRGXOH�GH�JUDQXODULWDWH�PLFă�DUH�XUPăWRDUHOH�GHzavantaje:

� Este costisitor ºi dificil de gãsit funcþiile, metodele sau procedurile cele mai potrivite

� Este dificil de determinat proprietãþile moºtenite în aceste module.

Proiectul arhitectural ºi documentaþia asociatã:� Servesc ca vehicol de comunicare���*KLGHD]ă�GHFL]LLOH�LQLþiale de proiectare���5HGXF�ULVFXO

���$MXWă�OD�PDQDJHPHQWXO�SURLHFWXOXL/produsului���)DFLOLWHD]ă�UHXWLOL]DUHD

Page 39: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

PLAN CURS

Obiectivele cursului

Definiþia ºi rolul arhitecturii software

Evoluþia domeniului

Arhitectura software în context

Impactul arhitecturii software

Relaþiile de influenþã ale arhitecturii software

Rolul ºi calitãþile arhitectului software

Page 40: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

Ciclul business al arhitecturii (ABC)

Relaþiile dintre obiectivele afacerii, cerinþele produsului, experienþa arhitectului, arhitecturi ºi sisteme formeazã un

ciclu.

Arhitectura software este influenþatã de o serie de factori. Arhitectura software ºi sistemul dezvoltat pe baza ei influenþeazã, la

rândul ei, aceºti factori. În centrul acestui ciclu stã arhitectul software.

Înþelegerea ºi analiza acestui ciclu poate ajuta compania sã-ºi gestioneze afacerea, organizarea ºi arhitectura.

Page 41: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

ABC - Factorii ce influenþeazã arhitectura software

Pãrþile interesate în sistem Firma ce dezvoltã sistemul

Contextul tehnologic Cunoºtinþele ºi experienþa arhitectului

Page 42: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

ABC - Factorii ce influenþeazã arhitectura software

Stakeholder-i (clienþi, utilizatori, dezvoltatori, manageri, personal de întreþinere, etc) � au interese diferite pe care le vor garantate sau optimizate.

Exemple Dezvoltatori � limbaje, tehnologii

Administratori � reglare, configurare, repartizare sistem

Marketing � caracteristici ºi preþ competitive pe piaþã

Obiectivele organizaþionale ºi proprietãþile la nivelul business ale sistemului sunt rareori înþelese ºi cu atât mai puþin bine exprimate � arhitectul�trebuie sã joace un rol activ în identificarea ºi angajarea precoce a stakeholder-ilor în ciclul de dezvoltare.

�Pãrþile interesate în sistem�Firma ce dezvoltã sistemul

�Contextul tehnologic�Cunoºtinþele ºi experienþa arhitectului

Page 43: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

ABC - Factorii ce influenþeazã arhitectura software

�Pãrþile interesate în sistem�Firma ce dezvoltã sistemul

�Contextul tehnologic�Cunoºtinþele ºi experienþa arhitectului

Page 44: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

ABC - Factorii ce influenþeazã arhitectura software

Clase de influenþe organizaþionale:

Afacerea imediatãFirma poate avea o investiþie în anumite bunuri, cum ar fi arhitecturi existente ºi

produsele bazate pe acestea.

Afacerea pe termen lungArhitectura poate fi nucleul unei investiþii pe termen lung în infrastructurã, pentru

îndeplinirea obiectivelor strategice ale firmei.

Structura organizaþionalãStructura organizaþionalã poate modela arhitectura a.î. diviziunile de funcþionalitate

se aliniazã la unitãþile de expertizã existente.�Pãrþile interesate în sistem�Firma ce dezvoltã sistemul

�Contextul tehnologic�Cunoºtinþele ºi experienþa arhitectului

Page 45: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

ABC - Factorii ce influenþeazã arhitectura software

Contextul tehnologic existent în momentul elaborãrii arhitecturii.

Include:� Limbaje

� Instrumente� Sisteme de operare

� Platforme de calcul

� Cadre de implementare� Practici industriale standard ºi tehnici de inginerie software

�Pãrþile interesate în sistem�Firma ce dezvoltã sistemul

�Contextul tehnologic�Cunoºtinþele ºi experienþa arhitectului

Page 46: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

ABC - Factorii ce influenþeazã arhitectura software

Arhitecþii iau decizii de proiectare pe baza experienþei lor.� Experienþele reuºite conduc la replicarea proiectelor care au mers bine

� Experienþele nereuºite vor fi evitate în noile proiecte,�FKLDU�GDFă�metodele, tehnicile ºi/sau tehnologiile ce au codus la acestea ar putea funcþiona bine în alte proiecte

� Alegerile pe care le face un arhitect sunt influenþate de experienþa, de instruirea (training) ºi de educaþia sa formalã (în acestã ordine!).

�Pãrþile interesate în sistem�Firma ce dezvoltã sistemul

�Contextul tehnologic�Cunoºtinþele ºi experienþa arhitectului

Page 47: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

ABC - Factorii influenþaþi de arhitectura software

Arhitectura ºi sistemul dezvoltat pe baza acesteia vor influenþa:

Structura ºi obiectivele firmei dezvoltatoare

Cerinþele beneficiarilor Experienþa arhitectului Tehnologia

Page 48: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

ABC - Factorii influenþaþi de arhitectura software

Arhitectul divizeazã sistemul în componente majore ºi unitãþi de lucru.

modeleazã firma prin partiþionarea forþei de muncã ajutã la stabilirea unui vocabular de comunicare

bazã pentru WBS, utilizatã în planificare,�XUPăULUH�ºi bugetare organizare în scopul gestionãrii configuraþiilor organizare în scopul elaborãrii documentaþiei bazã pentru integrare ºi testare

Arhitectul defineºte elementele software ce trebuie implementate ºi integrate. Acestea devin bazã pentru:� alocare talente, recrutare, formare echipã� activitãþi de dezvoltare, testare ºi integrare� estimare ºi alocare resurse� planuri de timp, bugete, urmãrire proiect ºi supraveghere

�Structura ºi obiectivele firmei dezvoltatoare�Cerinþele beneficiarilor�Experienþa arhitectului�Tehnologia

Page 49: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

ABC - Factorii influenþaþi de arhitectura software

Arhitecturile pot influenþa obiectivele unei firme deoarece:

Un sistem de succes construit pe baza unei anumite arhitecturi poate permite unei companii sã punã stãpânire pe o anumitã

zonã de piaþã

Arhitectura poate oferi oportunitãþi pentru producere eficientã ºi punere în funcþiune de sisteme similare.

�Structura ºi obiectivele firmei dezvoltatoare�Cerinþele beneficiarilor�Experienþa arhitectului�Tehnologia

Page 50: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

ABC - Factorii influenþaþi de arhitectura software

Pe baza cunoºtinþelor despre sisteme similare clienþii cer anumite tipuri de caracteristici.

Exemple:� Beneficiarii învaþã limbajul arhitectural, percep beneficiile, ºi vor tipuri

similare de arhitecturi cum ar fi client-server, EJB, CORBA, .NET, etc.� Clienþii vor cere arhitecturi de calitate în sistemele viitoare

Pe baza cunoºtinþelor despre sistemul dezvoltat clienþii îºi vor modifica cerinþele sistem în raport cu disponibilitãþii sistemelor ºi elementelor existente.

�Structura ºi obiectivele firmei dezvoltatoare�Cerinþele beneficiarilor�Experienþa arhitectului�Tehnologia

Page 51: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

ABC - Factorii influenþaþi de arhitectura software

Dezvoltarea unei arhitecturi îmbogãþeºte experienþa arhitectului.

Tehnologii, instrumente, metode ce au fost utilizate în dezvoltarea de sisteme reuºite conduc la crearea de sisteme viitoare în aceeaºi manierã.

Arhitectura unui sistem eºuat este evitatã în proiecte viitoare.

�Structura ºi obiectivele firmei dezvoltatoare�Cerinþele beneficiarilor�Experienþa arhitectului�Tehnologia

Page 52: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

ABC - Factorii influenþaþi de arhitectura software

Ocazional, un sistem sau o arhitecturã vor modifica stadiul actual al tehologiei.

Exemple: generatoare de compilatoare baze de date relaþionale

foi de calcul

sisteme de operare cu interfeþe grafice

WWW Java

�Structura ºi obiectivele firmei dezvoltatoare�Cerinþele beneficiarilor�Experienþa arhitectului�Tehnologia

Page 53: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

PLAN CURS

Obiectivele cursului

Definiþia ºi rolul arhitecturii software

Evoluþia domeniului

Arhitectura software în context

Impactul arhitecturii software

Relaþiile de influenþã ale arhitecturii software

Competenþele, rolul ºi calitãþile arhitectului software

Page 54: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 54

Competenþele, rolul ºi calitãþile arhitectului software

Tehnologie

Creativ

Capabil de investigaþie

Practic/pragmatic

Patrunzãtor

Tolerant faþã de ambiguitãþi, dispus la reluãri, în cãutare

de soluþii multiple

Capacitate de a lucra pe nivel abstract

Modelare

Analiza compromisurilor

Prototipare/experimentare/simulare

Pregãtirea documentelor ºi prezentãrilor arhitecturii

software

Analiza tendinþelor tehnologice

Un punct de vedere asupra sistemului

Înþelegerea profundã a

domeniului ºi tehnologiilor pertinente

Posibilitatea de a decela elementele tehologice care reprezintã cheia succesului

Metode de dezvoltare ºi tehnici de modelare

calitãþirolcompetenþe

Page 55: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 55

Competenþele, rolul ºi calitãþile arhitectului software

Consultanþã

Angajat în succesul altora

Empatic, abordabil

Practic/pragmatic

Agent de schimb eficient

Bun mentor

Crearea unei relaþii de încredere în consultant

Înþelegerea a ceea ce doresc ºi au nevoie dezvoltatorii de la arhitecturã

Ajutã dezvoltatorii sã vadã

valoarea arhitecturii ºi sã

înþeleagã cum o pot utiliza

cu succes

Mentor pentru arhitecþii juniori

Tehnici de a obþine ºi provoca informaþii

Metode cadru de consultare

Cunoscãtor al proceselor

(business, software, management)

calitãþirolcompetenþe

Page 56: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 56

Competenþele, rolul ºi calitãþile arhitectului software

Strategie

Vizionar

Antreprenorial

Influenþarea strategiei afacerii

Traducerea strategiei afacerii în viziune ºi strategie tehnicã

Înþelegerea clientului ºi a tendinþelor din piaþã

Capturarea în arhitecturã a

cerinþelor clientului, a celor organizaþionale ºi a cerinþelor business

Strategia ºi raþiunile fundamentale ale companiei

Competitorii (produse, strategii, procese)

Practica business a companiei

calitãþirolcompetenþe

Page 57: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 57

Competenþele, rolul ºi calitãþile arhitectului software

Politici oganizaþionale

Abilitatea de a vedea din puncte de vedere multiple ºi de a exprima în puncte de vedere multiple

Încrezãtor ºi clar/logic în exprimare

Ambiþios ºi hotarât

Rãbdãtor (cu mãsurã)

Rezistent ºi flexibil

Sensibil la localizarea ºi fluxul puterii în cadrul companiei

Comunicare

Ascultare, nod esenþial în reþeaua de comunicare interumanã, exercitare de influenþã.

�Vânzarea��XQHL�YL]LXQL. Pãstrarea acesteia �în viaþã�.

Luarea periodicã a pulsului

tuturor factorilor critici de influenþã asupra proiectului

arhitectural.

Care sunt jucãtorii cheie

în companie

Ce doresc aceºtia pe planul afacerii ºi pe plan personal

calitãþirolcompetenþe

Page 58: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 58

Competenþele, rolul ºi calitãþile arhitectului software

Conducere

Vãzut ca lider de ceilalþi dar ºi de el însuºi.

Carismatic ºi credibil.

Încredere cã se poate face

ºi cã poate conduce efortul

respectiv .

Angajat, dedicat, pasionat.

Plasarea întregului efort într-un context mai larg, atât al

afacerii cât ºi personal.

Stabilirea contextului echipei (viziunea)

Luare de decizii ºi asumarea lor

Construire echipe

Motivare

Autocunoaºtere

calitãþirolcompetenþe

Page 59: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 59

BIBLIOGRAFIE

Bass, L; Clements, P & Kazman, R. Software Architecture in Practice, Second Edition, Addison-Wesley Professional, 2003

Albin, Stephen T. The Art of Software Architecture:Design Methods and Techniques, John Wiley & Sons, 2003

Lattanze, Anthony J. Architecting Software Intensive Systems: A Practitioners Guide, Auerbach, 2008

Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Clements, Kazman, Klein, Evaluating Software Architectures: Methods and Case Studies, Adison Wesley Longman, 2001

Buschmann F., Menuier R., Rohnert H., Sommerlad P., Stal M., Pattern-Oriented Software Architecture. A System of Patterns, John Wiley & Sons, 1996

Page 60: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 2

id9166010 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 61: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

PLAN CURS

Analiza definiþiei arhitecturii software

Tipuri de vederi (viewtypes), stiluri ºi vederi

� Definiþii

� Perspectiva staticã

� Perspectiva dinamicã

� Perspectiva alocãrii

� Concluzie

Limbajul Acme ºi instrumentul AcmeStudio

Page 62: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

Arhitectura software - definiþie

�Arhitectura software a unui sistem de calcul este

setul structurilor unui sistem

necesare pentru a realiza raþionamente referitoare la acesta,

structuri conþinând elementele software,

relaþiile dintre acestea ºi

proprietãþile vizibile din exterior ale ambelor�.

Proiectarea ºi documentarea arhitecturii software sunt esenþiale în dezvoltarea ºi evaluarea produsului software.

Dacã nu se realizeazã proiectarea arhitecturalã, în paralel cu dezvoltarea produsului software se va dezvolta implicit o arhitecturã. Care s-ar putea sã nu vã placã!!!

Page 63: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Arhitectura software - definiþie

Caracteristici ale arhitecturii software:

Abstractizare a sistemului.

Partiþionare�GHFODUDWLYă�ºi asignare�GH�responsabilitãþi.

Defineºte elementele ºi modul în care sunt acestea relaþionate.

Suprimã detaliile despre comportamentul intern ºi despre informaþiile locale ale elementelor.

Page 64: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Arhitectura software - definiþie

Orice sistem are o arhitecturã software (chiar dacã aceasta nu a

fost proiectatã în mod deliberat).

Cel mai simplu sistem este compus dintr-un singur element aflat în relaþie cu el însuºi.

Arhitectura îndeplineºte cerinþele funcþionale ºi în acelaºi timp promoveazã o serie de calitãþi ale sistemului (ex. performanþã, flexibilitate, etc.).

Page 65: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Arhitectura software - definiþie

�Arhitectura software a unui sistem de calcul este

setul structurilor unui sistem

necesare pentru a realiza raþionamente referitoare la acesta,

structuri conþinând elementele software,

relaþiile dintre acestea ºi

proprietãþile vizibile din exterior ale ambelor�.

Abstractizare a structurilor reale ce compun sistemul software. Structurile sunt reale Reprezentãrile lor sunt abstracte

Page 66: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

Arhitectura software - definiþie

�Arhitectura software a unui sistem de calcul este

setul structurilor unui sistem

necesare pentru a realiza raþionamente referitoare la acesta,

structuri conþinând elementele software,

relaþiile dintre acestea ºi

proprietãþile vizibile din exterior ale ambelor�.

Tipuri de structuri software: Structurã staticã -�FRG, apel metodã/funcþie,� Structurã dinamicã - proces/fire de execuþie, flux de date,� Structurã fizicã - alocarea sistemului de fiºiere, procesor, reþea,

�.

Page 67: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

Structurã, perspectivã, vedere

Un edificiu trebuie sã aibã trei calitãþi: durabilitate (firmitas), utilitate (utilitas), esteticã (venustas).

Marcus Vitruvius Pollio, De architectura

STRUCTURI ale sistemului OM

Page 68: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

Structurã, perspectivã, vedere

O vedere din perspectivã

dinamicã

O vedere din perspectivã

staticã

Vedere (view) ��R�UHSUH]HQWDUH�D�XQHL�VWUXFWXUL, vãzutã dintr-o anumitã perspectivã.

Inima ca (sub)STRUCTURÃa aparatului circulator.

Page 69: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Structurã, perspectivã, vedere

Perspectiva STATICÃVederi ale modulelor:

�clase�funcþii�interfeþe

Perspectiva FIZICÃVederi ale alocãrilor la:

�calculatoare�dispozitive�reþele

Perspectiva DINAMICÃVederi ale componentelor ºi conectorilor:

�procese�diagrame de secvenþe�flux de date

Arhitectura software

Page 70: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

Arhitectura software - definiþie

�Arhitectura software a unui sistem de calcul este

setul structurilor unui sistem

necesare pentru a realiza raþionamente referitoare la acesta,

structuri conþinând elementele software,

relaþiile dintre acestea ºi

proprietãþile vizibile din exterior ale ambelor�.

Arhitectura sistemului permite raþionamente�UHIHULWRDUH�OD�VDWLVIDFHUHD�GH�FăWUH�VLVWHP�D: cerinþelor de calitate cerinþelor de comportament

Deciziile arhitectului se reflectã în structurile sistemului.

Rezultã : deciziile arhitecturale sunt cele care permit sistemului sã îndeplineascã cerinþele de calitate ºi comportament.

Page 71: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

Arhitectura software - definiþie

Element � �parte� a unui sistem.

pachete software, platforme software,...FIZICÃ

fire de execuþie, flux de date, control, ...DINAMICÃ

clase, fiºiere, ...STATICÃ

Tipuri de elementePerspectiva

�Arhitectura software a unui sistem de calcul este

setul structurilor unui sistem

necesare pentru a realiza raþionamente referitoare la acesta,

structuri conþinând elementele software,

relaþiile dintre acestea ºi

proprietãþile vizibile din exterior ale ambelor�.

Page 72: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Arhitectura software - definiþie

�Elementele interacþioneazã prin interfeþe care împart detaliile elementelor în pãrþi publice ºi pãrþi private.

�Aceste interacþiuni formeazã relaþiile dintre elementele arhitecturale.

�Arhitectura se ocupã doar cu partea publicã a acestei partiþionãri.

�Arhitectura software a unui sistem de calcul este

setul structurilor unui sistem

necesare pentru a realiza raþionamente referitoare la acesta,

structuri conþinând elementele software,

relaþiile dintre acestea ºi

proprietãþile vizibile din exterior ale ambelor�.

Page 73: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Arhitectura software - definiþie

Tipurile de relaþii depind de tipurile de elemente, care depind la rândul lor de perspectivã.

Exemple:

Modul B

Modul A

Modul C

uses uses

Vedere din perspectivã STATICÃ

Elemente: moduleRelaþii: uses

Proces X Proces Ydate date date

Vedere din perspectivã DINAMICÃ

Elemente: proceseRelaþii: flux de date

�Arhitectura software a unui sistem de calcul este

setul structurilor unui sistem

necesare pentru a realiza raþionamente referitoare la acesta,

structuri conþinând elementele software,

relaþiile dintre acestea ºi

proprietãþile vizibile din exterior ale ambelor�.

Page 74: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

Arhitectura software - definiþie

Proprietãþi funcþionale : responsabilitãþile elementelor, asignate în cursul proiectãrii

arhitecturale.

Proprietãþi non-funcþionale : cerinþele de calitate pentru sistem ºi componentele sale.

Proprietãþile vizibile depind de perspectiva asupra sistemului.Exemplu:�Perspectivã staticã ��PRGLILFDELOLWDWHD

�Perspectivã dinamicã - performanþa

�Arhitectura software a unui sistem de calcul este

setul structurilor unui sistem

necesare pentru a realiza raþionamente referitoare la acesta,

structuri conþinând elementele software,

relaþiile dintre acestea ºi

proprietãþile vizibile din exterior ale ambelor�.

Page 75: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

PLAN CURS

Analiza definiþiei arhitecturii software

Tipuri de vederi (viewtypes), stiluri ºi vederi

� Definiþii

� Perspectiva staticã

� Perspectiva dinamicã

� Perspectiva alocãrii

� Concluzie

Limbajul Acme ºi instrumentul AcmeStudio

Page 76: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

Tipuri de vederi, stiluri ºi vederi

�Arhitectura software a unui sistem de calcul este setul structurilor unui sistem

necesare pentru a realiza raþionamente referitoare la acesta, structuri

conþinând elementele software, relaþiile dintre acestea ºi proprietãþile vizibile

din exterior ale ambelor�.

Într-o vedere�DUKLWHFWXUDOă�HVWH�reprezentat�XQ�DQXPLW�IHO�GH�VWUXFWXUă��exemple:

Structura modulelor indicând compoziþia/decompoziþia lor

Structura proceselor ºi modul de sincronizare

Structura hardware ºi modul în care software-ul este repartizat pe aceasta

Structura echipelor de dezvoltare ºi modul lor de cooperare

Structura la momentul execuþiei, reprezentînd componentele ºi conectorii dintre acestea.

Page 77: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

Tipuri de vederi ºi vederi

Vedere (view) = o reprezentare a unui (sub)set de elemente ale sistemului ºi a relaþiilor asociate cu acestea.

Vederea reprezintã sistemul dintr-o anumitã perspectivã.

Fiecare perspectivã�HVWH�FDUDFWHUL]DWă�GH�XQ�tip de vedere ce defineºte tipuri de elemente ºi tipuri de relaþii specifice.

O vedere este construitã dintr-o anumitã perspectivã, folosind tipul de vedere corespunzãtor acesteia.

Page 78: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

Tipuri de vederi ºi vederi

Arhitectul software considerã sistemul din trei perspective:

Perspectiva staticã � modul în care sistemul este structurat ca set de unitãþi de implementare (cod).

Vederile reprezintã modulele sistemului. Tipul de vedere este Module Viewtype.

Perspectiva dinamicã � modul în care sistemul este structurat ca set de unitãþi de execuþie (elemente ce au comportament ºi interacþiuni la momentul execuþiei).

Vederile reprezintã componentele sistemului ºi conectorii dintre acestea. Tipul de vedere este C&C Viewtype.

Perspectiva alocãrii � modul în care sistemul se relaþioneazã cu structurile non-software�GLQ�FRQWH[WXO�VăX.

Vederile reprezintã modul de alocare a structurilor software pe structurile non-software ale sistemului. Tipul de vedere este Allocation Viewtype.

Page 79: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Stiluri

Stil arhitectural � specializare pentru tipuri de elemente ºi de relaþii, împreunã cu un set de constrângeri referitoare la modul de utilizare a acestora.

Motivaþie:Au fost observate forme ce se repetã în sisteme diferite. Aceste forme au

proprietãþi cunoscute ºi pot fi reutilizate.

Stilurile arhitecturale sunt independente de sistem ºi sunt instrumente importante pentru arhitectul software.

Un sistem este de obicei compus din mai multe stiluri� Stiluri diferite pentru zone diferite ale sistemului.� Stiluri diferite pentru perspective diferite asupra sistemului.

Page 80: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

Stiluri

Stil arhitectural � specializare pentru tipuri de elemente ºi de relaþii, împreunã cu un set de constrângeri referitoare la modul de

utilizare a acestora.

Stil arhitectural � poate defini:

Restricþii asupra elementelor

Tipuri de relaþii între elemente

Modalitãþi de utilizare a elementelor

Modalitãþi de configurare a elementelor

Page 81: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

PLAN CURS

Analiza definiþiei arhitecturii software

Tipuri de vederi (viewtypes), stiluri ºi vederi

� Definiþii

� Perspectiva staticã

� Perspectiva dinamicã

� Perspectiva alocãrii

� Concluzie

Limbajul Acme ºi instrumentul AcmeStudio

Page 82: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Perspectiva staticã � Module Viewtype

Tip de element :

� modul� �unitate de cod ce implementeazã un set de

responsabilitãþi.

Tipuri de relaþii :

� �is part of� � relaþia parte-întreg

� �depends on� � relaþia de dependenþã

� �is a� � relaþia de specializare/generalizare

Page 83: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Perspectiva staticã � Module Viewtype

UTILITATE

Construire :

� Modulele sunt asignate echipelor în vederea implementãrii.

� Deseori modulele sunt unitãþi pentru proiectarea ulterioarã (ex.

pentru proiectarea de interfeþe).

Analizã :

� Trasabilitatea ºi analiza impactului modificãrilor se bazeazã pe

unitãþile de implementare.

� Managementul proiectului, bugetarea, planificarea ºi

monitorizarea utilizeazã frecvent aceste module.

Page 84: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

Perspectiva staticã � Module Viewtype

NOTAÞII

Informale : box-and-lines, cu încuibare

UML : diagrame de clase

Page 85: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Perspectiva staticã � Module Viewtype

STILURI

Stilul de descompunere

� descompunerea (ierarhicã) în module

suportã dezvoltare concurentã

Stilul de generalizare

� ierarhie a specializãrii

suportã reutilizare; gestionarea unui numãr mare de definiþii

Stilul stratificat (layered) :

� maºini virtualesuportã portabilitate, reutilizare

STILURI�Descompunere�Generalizare�Stratificare

Page 86: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Perspectiva staticã � Module Viewtype

Tip elemente : modul

Tip relaþii : �is part of�

Criterii de descompunere :

� Obþinerea modificabilitãþii

� Construire vs. Cumpãrare

� Linii de produse

Utilitate :

� Punct de pornire. Modulelor le sunt asignate responsabilitãþi.

� Analiza modificare/impact

� Bazã pentru asignare de sarcini de lucru pentru membrii echipei de

dezvoltare.

STILURI�Descompunere�Generalizare�Stratificare

Page 87: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

Perspectiva staticã � Module Viewtype

NOTAÞII

Informal :

box-and-lines, încuibate

schiþã textualã

tabelã

UML :

Diagrama de clase cu relaþia de compoziþie

Diagrama de pachete

STILURI�Descompunere�Generalizare�Stratificare

Page 88: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

Perspectiva staticã � Module Viewtype

Exemplu STILURI�Descompunere�Generalizare�Stratificare

Page 89: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

Perspectiva staticã � Module Viewtype

Tip elemente : modul

Tip relaþii : �is a�

Proprietãþi :

� moºtenire interfaþã

� moºtenire implementare

Utilitate :

� bazã pentru proiectarea OO

� bazã pentru evoluþie ºi extindere

� reutilizare

STILURI�Descompunere�Generalizare�Stratificare

Page 90: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

Perspectiva staticã � Module Viewtype

NOTAÞII

Formal :

Limbaje de programare

UML

STILURI�Descompunere�Generalizare�Stratificare

Page 91: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

Perspectiva staticã � Module Viewtype

Tipuri elemente : straturi (nivele), maºinã virtualã

Tip relaþii : �allowed-to-use� (specializare a relaþiei �depends-on�)

Reguli (variante multiple):

� Fiecare element software aparþine unui singur nivel.

� Un element software de pe un nivel poate utiliza elemente {din orice

nivel inferior, doar elemente de pe nivelul imediat inferior}.

� Un element de pe un nivel {poate, nu poate} utiliza un element de pe

acelaºi nivel.

STILURI�Descompunere�Generalizare�Stratificare

Page 92: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

Perspectiva staticã � Module Viewtype

Utilitate :

� Portabilitate

� Dezvoltare incrementalã

� Separare de probleme (concerns)

Variaþii:� Nivele segmentate:

divizare nivel în segmente (sau submodule)

ºi precizarea relaþiei �allow-to-use� la nivel de segment,

pentru segmente de pe acelaºi nivel

ºi segmente de pe nivele diferite.

STILURI�Descompunere�Generalizare�Stratificare

Page 93: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

Perspectiva staticã � Module Viewtype

NOTAÞII

Informale : dreptunghiuri ºi sãgeþi, stivã de

dreptunghiuri, inele concentrice.

STILURI�Descompunere�Generalizare�Stratificare

Page 94: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

PLAN CURS

Analiza definiþiei arhitecturii software

Tipuri de vederi (viewtypes), stiluri ºi vederi

� Definiþii

� Perspectiva staticã

� Perspectiva dinamicã

� Perspectiva alocãrii

� Concluzie

Limbajul Acme ºi instrumentul AcmeStudio

Page 95: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

Perspectiva dinamicã �

Component-and-connector (C&C) Viewtype

Tipuri de elemente :

� componentã = unitate de calcul ºi/sau memorare date pe

timpul execuþiei; accesibilã prin porturi.

� conector = mecanism de interacþiune; defineºte roluri.

Tipuri de relaþii :

� �attachment� � ataºare port al componentei la rol al

conectorului

Proprietãþi : informaþii pentru construire ºi pentru analizã

� Atribute de calitate ��VXSRUW�SHQWUX�DQDOL]ă

� Altele � funcþie de stil

Page 96: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

Perspectiva dinamicã � C&C Viewtype

UTILITATE

La construire

Defineºte sistemul din perspectivã dinamicã (în timpul execuþiei)

determinând

� comportamentul ce trebuie construit,

� cãile de interacþiune

� mecanismele de comunicare.

La analizã

Model pe baza cãruia se analizeazã proprietãþile (emergente) ale

sistemului (disponibilitatea, performanþa, securitatea, încrederea, etc.).

Page 97: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

Perspectiva dinamicã � C&C Viewtype

NOTAÞII

Informale : box-and-lines

UML : diagrama de componente

Acme (AcmeStudio) :

Page 98: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

Perspectiva dinamicã � C&C Viewtype

STILURI (exemple fundamentale)

Data Flow

� Pipe&filters (Reþea de flux de date)

Call-and-return

� Client - Server

� Peer-to-Peer

� Service Oriented Architecture

Event-based

� Publish-Subscribe

Repository

� Blackboard

Page 99: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

Perspectiva dinamicã � C&C Viewtype

PROBLEME TRANSVERSALE

corelate în mod similar cu mai multe stiluri

extind stilurile fundamentale generând variante ale acestora

Procese comunicante

Trepte (tiers)

Reconfigurare dinamicã

Page 100: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

PLAN CURS

Analiza definiþiei arhitecturii software

Tipuri de vederi (viewtypes), stiluri ºi vederi

� Definiþii

� Perspectiva staticã

� Perspectiva dinamicã

� Perspectiva alocãrii

� Concluzie

Limbajul Acme ºi instrumentul AcmeStudio

Page 101: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

Perspectiva alocãrii �

Allocation Viewtype

Tipuri de elemente :

� Elemente software = definite în perspectiva staticã sau în cea

dinamicã.

� Elemente din context (infrastructurã)

Tipuri de relaþii :

� �allocated-to� � repartizare element software pe element (non-

software) din context.

Page 102: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

Perspectiva alocãrii � Allocation Viewtype

UTILITATE

La construire

Defineºte modul de repartizare a elementelor software ale aplicaþiei pe

elementele infrastructurii (în general, non-software)

� Pe infrastructura hw/sw

� Pe membrii echipelor de dezvoltare ºi de întreþinere

La analizã

Model de integrare a arhitecturii software în context.

Page 103: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

Perspectiva alocãrii � Allocation Viewtype

NOTAÞII

Informale UML : diagrama de repartizare (deployment)

Page 104: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

Perspectiva alocãrii � Allocation Viewtype

STILURI

Stilul repartizãrii

Alocarea elementelor software la modulele infrastructurii de procesare ºi de

comunicare

Exemple de proprietãþi :�FHOH�QHFHVDUH�FDOFXOăULL�(ºi obþinerii) performanþei ºi disponibilitãþii

Stilul implementãrii

Alocarea elementelor software la structuri din sistemele de fiºiere al mediilor de

dezvoltare

Exemple de proprietãþi : fiºiere ºi capacitãþi

Stilul de alocare a lucrului

Alocarea elementelor software la unitãþile de lucru din compania de dezvoltare

Exemple de proprietãþi : seturi de competenþe

Page 105: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

PLAN CURS

Analiza definiþiei arhitecturii software

Tipuri de vederi (viewtypes), stiluri ºi vederi

� Definiþii

� Perspectiva staticã

� Perspectiva dinamicã

� Perspectiva alocãrii

� Concluzie

Limbajul Acme ºi instrumentul AcmeStudio

Page 106: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

Concluzie

Sistemele � combinaþii de stiluriEx. Tiers-repository-events

Este necesarã înþelegerea stilurilor pure, ce constituie blocurile constructive

Regulã : nu amestecaþi stiluri din tipuri diferite de vederi

� Creazã confuzie (Ex: layers ºi tiers)

Page 107: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

Exemplu � Test Parsing SystemPerspectiva staticã

Stilul de descompunere

Page 108: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

Exemplu � Test Parsing SystemPerspectiva dinamicã

Vedere C&C

Page 109: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

Exemplu � Test Parsing SystemPerspectiva alocãrii

Stilul implementãrii

Page 110: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

PLAN CURS

Analiza definiþiei arhitecturii software

Tipuri de vederi (viewtypes), stiluri ºi vederi

� Definiþii

� Perspectiva staticã

� Perspectiva dinamicã

� Perspectiva alocãrii

� Concluzie

Limbajul Acme ºi instrumentul AcmeStudio

Page 111: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

Perspectiva dinamicã

Descompunerea (generalã) sistemului în componente ce

interacþioneazã la execuþie

Utilizare abstractizãri globale pentru conectare componente

Analiza proprietãþilor emergente ale sistemului

� performanþã, ratã de transfer, întârzieri, ...

� fiabilitate, securitate, toleranþã la defecte, modificabilitate

dinamicã, ...

Page 112: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

Perspectiva dinamicã

Vedere C&C include:� Componente: definesc locaþiile de realizare a calculelor

� Exemple: filtre, baze de date, obiecte, tipuri de date abstracte.

� Conectori: definesc interacþiunile dintre componente� Exemple: apel de procedurã, conductã (pipe), anunþare eveniment.

Stil arhitectural C&C - defineºte o familie de arhitecturi prin:� Tipuri de componente ºi conectori (vocabular)� Constrângeri topologice

� Constrângeri semantice

Page 113: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 54

Descriere arhitecturi

Exemple de limbaje (ADLs)

� Rapide: evenimente cu simulare ºi animaþie

� UniCon: accent pe eterogenitate ºi compilare

� Wright: spacificaþii formale pentru conectori

� Aesop/Acme: orientate pe stiluri (style-specific)

� Darwin: arhitecturi orientate pe servicii

� SADL: rafinare arhitecturalã

� Meta-H: descrieri arhitecturale specifice unui domeniu (avionics)

� C-2: stil arhitectural ce utilizeazã invocare implicitã

Page 114: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 55

Descriere arhitecturi

Acme � limbaj reprezentativ

Încearcã sã ofere o abordare deschisã (open-ended) pentru reprezentarea arhitecturii

�XML pentru arhitecturã�

� Descriere structurã + permite adnotãri

� Poate fi consumat selectiv de diferite instrumente

Page 115: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 56

Descriere arhitecturi

Acme � ENTITÃÞILE DE PRIM RANG

Componentã � element computaþional

Port � punct de interfaþã pentru componentã

Conector � interacþiune între componente

Rol � punct de interfaþã pentru conector

Sistem � graf de componente ºi conectori

Exemplu � sistem client-server

Page 116: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 57

Descriere arhitecturi

Acme ��35235,(7ĂÞI

Descriu caracteristici nestructurale ale elementelor

� Detalii de interfaþã (ex. servicii solicitate, servicii oferite)

� Proprietãþi locale ale componentelor sau conectorilor (ex. viteze, capacitãþi, întârzieri)

� Atribute de calitate��proprietãþi emergente la nivelul sistemului) (ex. performanþã, fiabilitate, securitate)

� Comportament (ex. calcule executate de componente, protocoale pentru conectori)

� Constrângeri (ex. restricþii topologice, restricþii asupra proprietãþilor)

Page 117: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 58

Descriere arhitecturi

Acme ��35235,(7ĂÞI

Reprezentare�SURSULHWăþi ��DGQRWăUL�FX�SHUHFKL�DWULEXW-valoare

Proprietãþile sunt tipate � categorii de tipuri:

� Built-in : int, boolean, string, etc

� Constructori : set, record, enumeration, sequence

� Definite de utilizator

Page 118: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 59

Descriere arhitecturi

Acme ��5(35(=(17Ă5,�ºi ABSTRACTION MAPS

Suport pentru descriere ierarhicã a nivelelor de abstractizare.

� Reprezentarea sub-arhitecturilor.

� Descrieri de detaliu ale componentelor ºi conectorilor

� Încapsularea detaliilor de nivel inferior

Page 119: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 60

Descriere arhitecturi

Acme ��5(35(=(17Ă5,�ºi ABSTRACTION MAPS

Unui element Acme i se pot asocia mai multe reprezentãri.

Abstraction Map ��VSHFLILFDUH�legãturi

� ��LQWHULRUXO�-�H[WHULRUXO�reprezentãrii

� port intern - port extern (la componente)

Component Representation

System

AbstractionMap

System(sub-architecture)

...

...

...

...

Page 120: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 61

Descriere arhitecturi

Acme � DEFINIRE FAMILII (STILURI ARHITECTURALE)

Obiectiv : descrierea unui set de arhitecturi înrudite.De ce?

- Reutilizarea stilurilor comune

- Suport pentru integritatea sistemului

Elemente constitutive:� Set de tipuri (componente, conectori, ...)

� Definirea vocabularului asociat stilului� Definirea structurii cerutã fiecãrui element

� Set de constrângeri� Restricþii de utilizare corectã a tipurilor

� Set de vizualizãri� Modul de afiºare a elementelor stilului

� Set de analize� Ce se poate deduce despre o anumitã arhitecturã

Page 121: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 62

Descriere arhitecturi

Acme � DEFINIRE FAMILII (STILURI ARHITECTURALE)

Definire tip element<categorie> Type <nume-tip> = <declaraþie-tip>Exemplu

Definire subtip element<categorie> Type <nume-tip> = <nume-tip>

extended with <declaraþie-tip>Exemplu

Page 122: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 63

Definire tip proprietate � se pot utiliza tipuri predefinite ºi tipuri compuse

Property Type <nume-tip> = <declaraþie-tip>Exemple

Exemplu de utilizare tip de proprietate :

Descriere arhitecturi

Acme � DEFINIRE FAMILII (STILURI ARHITECTURALE)

Page 123: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 64

Descriere arhitecturi

Acme � DEFINIRE FAMILII (STILURI ARHITECTURALE)

Definiþie familie (stil arhitectural) = colecþie de definiþii de tip.

Exemplu :

Exemplu de utilizare :

Page 124: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 65

Descriere arhitecturi

Acme � CONSTRÂNGERI

Restricþii de combinare a elementelor Definite prin predicate

� Valori : true/false

� Variaþie a �First Order Predicate Logic�� Extinsã cu primitive pentru arhitecturã

� Modelatã conform OCL (de la UML)

� Se pot ataºa la orice instanþã în Acme, inclusiv la întregul sistem sau la familii.

Acme oferã un cadru semantic deschis ce permite punerea în corespondenþã (maparea) a aspectelor structurale ale limbajului cu un formalism logic bazat pe relaþii ºi constrângeri.

Page 125: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 66

Descriere arhitecturi

Acme � CONSTRÂNGERI

Categorii principale : Invariant ��WUHEXLH�VDWLVIăFXW�SHQWUX�FD�VLVWHPXO�Vă�ILH�OHJDO.Ex. Nu se acceptã bucle în graful C&C.

Euristicã ��SURGXFH�DYHUWL]ăUL�GDFă�QX�H�VDWLVIăFXWă.Ex. Nu se acceptã mai mult de 5 clienþi pentru un server.

Exemplu:Cerinþã : Stabilirea unui invariant care sã impunã ca fiecare client sã fie conectat la

un server.

Soluþie : ataºarea urmãtorului invariant la familia client-server

Invariantforall c : ClientT in self.components

| exists s : ServerT in self.components| connected (c,s);

Page 126: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 67

Descriere arhitecturi

Acme � DEFINIRE FAMILII (STILURI ARHITECTURALE)

Definiþie familie (stil arhitectural) = colecþie de definiþii de tip�FRPSOHWDWă�FX�definiþii de constrângeri.

Page 127: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 68

Descriere arhitecturi

AcmeStudio � instrument software construit peste Eclipse.

Page 128: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 3

id6679184 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 129: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

PLAN CURS

Elementele care dirijeazã definirea arhitecturii

Exprimãri tipice pentru cerinþe referitoare la atributele de calitate

O metodã mai bunã pentru exprimarea cerinþelor pentru atribute de calitate

O metodã pentru descoperirea cerinþelor pentru atribute de calitate

Page 130: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

Elementele care dirijeazã arhitectura

Elementele care dirijeazã definirea arhitecturi sunt date de cerinþele ce stau la baza proiectãrii arhitecturii software.

Cerinþele funcþionale Atributele de

calitate

Constrângerile

Arhitectura software

Page 131: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Cerinþele funcþionale

Cerinþele funcþionale descriu CE trebuie sã facã sistemul.

La nivelul proiectãrii arhitecturale se stabilesc funcþiile de nivel înalt (nu detaliile).

Pe mãsurã ce arhitectura este creatã ºi rafinatã, vom afla mai multe informaþii despre cerinþele funcþionale de detaliu.

Page 132: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Constrângerile

Constrângerile reprezintã decizii de proiectare �pre-fabricate�.

� Constrângeri tehnice (directe).

� Constrângeri impuse de nivelul business, de piaþã, ºi/sau de companie(indirecte).

Uneori pot apare constrângeri impuse de proiectant.

Exemplu: Pentru persistenþa datelor se va utiliza o�ED]ă�GH�GDWH.

Orice selecþie/decizie devine o constrângere

pentru activitatea ulterioarã de proiectare.

Page 133: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Constrângeri business

Exemple de constrângeri business cu impact arhitectural:

Piaþa þintã ºi timpul de lansare pe piaþã

Aºteptãrile referitoare la costuri ºi la beneficii

Planul de furnizare incrementalã

Durata de viaþã proiectatã pentru sistem

Disponibilitatea forþei de muncã ºi alocarea experizelor

Alinierea structurii echipei cu expertiza disponibilã ºi cu structurile software

Liniile de produse software

sau alte strategii de reutilizare

pentru amortizarea investiþiilor

Page 134: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

Constrângerile tehnice

Decizii de proiectare prestabilite ce devin elemente ce îngrãdesc

spaþiul de proiectare.EXEMPLE:

� Utilizarea ºi/sau integrarea cu sisteme legacy

� Tehnologii impuse, limbaje, protocoale, standarde, etc.

Deºi originile constrângerilor sunt diferite, toate vor avea impact

(mai mult sau mai puþin) asupra deciziilor arhitecturale iniþiale.

Page 135: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

Atribute de calitate

Cerinþele funcþionale descriu ceea ce trebuie sã facã sistemul.

Cerinþele non-functionale reprezintã tot ceea ce nu este legat

de funcþionalitatea sistemului, cum ar fi modificabilitate, performanþã, etc.

Termenul �cerinþe non-funcþionale��LQWURGXFH�R�IDOVă�partiþionare, deoarece nu se pot descrie atributele de calitate fãrã a descrie funcþionalitatea sistemului.

Page 136: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

Atribute de calitate

Def. Atribute de calitate -�FDUDFWHULVWLFL�SH�FDUH�VLVWHPXO�WUHEXLH�Vă�le posede în plus faþã de funcþionalitatea sa.

Reprezintã elementele de dirijare a arhitecturii software care

sunt cel mai greu de descoperit, de exprimat ºi de testat.

Atributele de calitate ºi constrângerile sunt preponderente faþã

de funcþionalitate în dirijarea definirii structurii arhitecturale.

Page 137: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Atributele de calitate ºi arhitectura

Deciziile arhitecturale� implementeazã funcþionalitatea,

� îndeplinesc constrângerile,

� promoveazã unele atribute de calitate

� inhibã alte atribute de calitate.

Arhitectura este element critic în realizarea atributelor de calitate.

O modificare în arhitecturã care îmbunãtãþeºte o calitate poate promova ºi/sau inhiba îndeplinirea altor atribute de calitate.

Arhitectura este element critic în echilibrarea compromisurilor asupra atributelor de calitate înainte de proiectarea de detaliu, de implementare sau de investire în actualizãri la un sistem software.

Page 138: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

PLAN CURS

Elementele care dirijeazã definirea arhitecturii

Exprimãri tipice pentru cerinþe referitoare la atributele de calitate

O metodã mai bunã pentru exprimarea cerinþelor pentru atribute de calitate

O metodã pentru descoperirea cerinþelor pentru atribute de calitate

Page 139: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

Descrieri tipice pentru cerinþe de sistem

�Timpul de rãspuns al sistemului pentru orice acþiune va fi mai mic de 0.5 sec�

�Funcþiile critice în raport cu timpul cum ar fi trimiterea unei comenzi, comutarea de imagini, grafica, trebuie sã fie �suficient� de performante�

�Sistemul trebuie sã fie tolerant la defecte � astfel încât sã fie minimizate sau

eliminate posibilitatea ºi impactul cãderii serverului. Disponibilitatea ºi funcþionalitatea staþiilor client trebuie menþinutã pe timpul cãderii serverelor sau

a altor clienþi.�

�Sistemul va permite shutdown ºi restart ºi toate componentele RCM (Reliability-Centered Maintenance) pentru a reporni întregul sistem.�

�Sistemul va avea capabilitatea de a detecta cãderile software ºi de a reporni automat componenta corespunzãtoare.�

�O componentã software de tip RCM interogatã va rãspunde la un mesaj în timp de max. 1 secundã.�

�...modificare ºi adaptare flexibilã a HCI (Human-Computer Interface) în vederea creãrii unui �look and feel� specific clientului.�

Page 140: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Descrierea atributelor de calitate (1)

Atributele de calitate sunt deseori dificil de descoperit ºi de exprimat.

Doar numele nu este suficient.

Probleme:� Nu existã un standard larg acceptat ºi utilizat �

vocabularul are variaþii mari.

� Descrierile sunt vagi ºi le lipseºte o mãsura cunatificabilã.

� Din discuþiile asupra �ilitãþilor� sistemului ºi ceea ce înseamnã ele cu adevãrat rezultã dezbateri non-productive.

Page 141: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Descrierea atributelor de calitate (2)

De exemplu, fie urmãtoarea cerinþã: �Sistemul trebuie sã fie modificabil.�

Cerinþã cu înþeles neclar.

� Nu se poate proiecta un sistem modificabil pentru toate schimbãrile potenþiale.

� Fiecare sistem este modificabil în raport cu un set de schimbãri ºi nemodificabil în raport cu alt set de schimbãri.

� Costul ºi planul de timp (schedule) sunt factori externi structuriisistemului ce pot interzice anumite modificãri ale acestuia.

Problema nu este modificabilitatea � problemele sunt:

� Cum putem anticipa mai devreme schimbãrile?

� Cum putem planifica ºi proiecta sistemul pentru a face faþã schimbãrilor?

Page 142: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

Descrierea atributelor de calitate (3)

Relaþiile dintre atributele de calitate pot fi complexe.

Exemplu: Cãderea sistemului poate fi un aspect de disponibilitate, de securitate ºi de utilizabilitate.

Atributele de calitate sunt deseori în tensiuni reciproce.

Exemplu: Pentru a creºte securitatea sistemului se vor adauga module suplimentare, ceea ce poate duce la scaderea performanþei.

Dacã nu se cunoaºte care atribute de calitate sunt importante atunci:� Nu conteazã care este promovat de arhitectura proiectatã

� Tensiunile nu pot fi rezolvate în mod satisfãcãtor

� Nu existã o bazã pentru a analiza structurile

Page 143: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Descrierea atributelor de calitate (4)

Arhitectura software afecteazã majoritatea calitãþilor, dar�nu toate aspectele tuturor calitãþilor.

Exemplu: Sã considerãm utilizabilitatea.� Alegerea butoanelor radio, casetelor de dialog�VDX�D�

liniilor de comandã afecteazã utilizabilitatea, dar acestea nu sunt decizii arhitecturale.

� Izolarea acestor decizii astfel încât sã fie modificabile þine de arhitecturã, dar nu afecteazã utilizabilitatea.

Obs. Utilizabilitatea slabã este deseori un simptom al altor probleme legate de atribute de calitate.

Page 144: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

PLAN CURS

Elementele care dirijeazã definirea arhitecturii

Exprimãri tipice pentru cerinþe referitoare la atributele de calitate

O metodã mai bunã pentru exprimarea cerinþelor pentru atribute de calitate

O metodã pentru descoperirea cerinþelor pentru atribute de calitate

Page 145: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

Scenarii pentru atribute de calitate

Scenariile pentru atribute de calitate sunt metode pentrucaracterizarea mai bunã a atributelor de calitate.

Caracteristicile metodei:

cuantificarea atributelor de calitate prin intermediul scenariilor.

scenariile sunt prioritizate.

bazã de raþionament pentru decizii arhitecturale privind structurile necesare pentru echilibrarea tuturor factorilor care�dirijeazã arhitectura.

cuantificarea este bazã pentru mãsurare conformanþei, completitudinii ºi succesului.

Page 146: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

Scenarii pentru atribute de calitate � 6 componente

1. Stimul � O condiþie care afecteazã sistemul.

2. Sursã de stimuli � Entitatea care a generat un stimul.

3. Mediu (Context) � Condiþiile în care a apãrut stimulul.

4. Artefact � Artefactul ce a fost stimulat de cãtre stimul.

5. Rãspuns � Activitatea din sistem ce a rezultat din cauza stimulului.

6. Mãsura rãspunsului � Mãsura prin care va fi evaluat rãspunsul sistemului.

Exemplu: aributul de disponibilitate

Page 147: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Atribute de calitate

Pentru a ilustra proprietãþile diferitelor atribute de calitate folosim urmãtoarele exemple de atribute de calitate de prim rang.

� disponibilitatea� modificabilitatea� performanþa� securitatea

Page 148: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

Atribute de calitate - Disponibilitatea

Def. Disponibilitatea se ocupã de avariile sistemului ºi de consecinþele asociate acestora.

Avarierea (cãderea) unui sistem are loc atunci când acesta nu mai

furnizeazã un serviciu consistent cu specificaþiile sale.

Zone de interes :

� Prevenirea avariilor catastrofice ale sistemului

� Detectarea avariilor sistemului

� Revenirea cu succes din avarie

� Timpul necesar recuperãrii sistemului din avarii

� Frecvenþa avariilor

� Moduri degradate de operare datorate avariilor

Page 149: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

Atribute de calitate - Disponibilitatea

Stimuli

� defect de: omisiune, crash, temporizare, evenimente, rãspuns

Surse

� interne, externe, software, hardware

Artefacte

� sistem, procesoare, software, hardware, memorie, reþele

Contexte

� operaþional, test, dezvoltare, încãrcare, inert

Rãspunsuri

�Detectare ºi notificare, înregistrare,

�Dezactivare, indisponibilizare, continuare operare în mod degradat

Mãsuri pentru rãspunsuri

� Intervalele critice de timp când

sistemul trebuie sã fie disponibil

� Timpul de disponibilitate

� Intervalele de timp în care sistemul poate opera în mod degradat

� Timpul de reparare

EXEMPLE DE COMPONENTE ALE SCENARIULUI

Page 150: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Atribute de calitate - Disponibilitatea

Exemplu de scenariu de disponibilitate:

�Un mesaj extern neanticipat este recepþionat de proces în

timpul funcþionãrii normale. Procesul informeazã operatorul

despre recepþionarea mesajului ºi continuã sã funcþioneze.�

Page 151: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Atribute de calitate - Modificabilitatea

Def. Modificabilitatea�VH�UHIHUă�OD�costul schimbãrii ºi la uºurinþacu care un sistem software se poate adapta�OD�VFKLPEăUL.

Zone de interes :

� Identificarea schimbãrilor posibile.

� funcþii, platforme, hardware, sisteme de operare, middleware, sisteme cu care trebuie sã opereze, protocoale, etc.

� atribute de calitate: performanþã, disponibilitate, modificabilitate ulterioarã, etc.

� Stabilirea momentului ºi a executantului schimbãrii.

Page 152: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

Atribute de calitate - Modificabilitatea

Stimuli

� adãugare/ºtergere/modificarefuncþionalitate sau atribut de calitate

Surse

�Utilizator final, dezvoltator, administrator sistem

Artefacte

�Sisteme, OS, hardware, software

Contexte

� La execuþie, la compilare, la construire (build), la proiectare

Rãspunsuri

� Localizarea zonelor ce vor fi modificate�Realizarea modificãrilor fãrã a induce

efecte colaterale� Testarea modificãrii cu efort minim

�Repartizarea modificãrii cu efort minim

Mãsuri pentru rãspunsuri

�Costul în termeni de componente, efort ºi bani�Mãsura în care modificarea afecteazã alte

funcþii ºi/sau atribute de calitate

EXEMPLE DE COMPONENTE ALE SCENARIULUI

Page 153: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Atribute de calitate - Modificabilitatea

Exemplu de scenariu de modificabilitate:

�Un membru al echipei de dezvoltare doreºte sã modifice interfaþa utilizator a.î.

fundalul sã devinã albastru. Modificarea se va face în cod ºi vor fi necesare

3 ore pentru realizarea ºi testarea ei. În urma acestei modificãri nu trebuie

sã aparã efecte colaterale asupra comportamentului aplicaþiei.�

Page 154: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Atribute de calitate - Performanþa

Def. Performanþa se referã la temporizare: de cât timp are

nevoie sistemul pentru a rãspunde la apariþia unui eveniment.

Zone de interes :

� Surse diferite de evenimente: întreruperi, mesaje, cereri de la utilizatori, tranzacþii, etc.

� Viteze ºi ºabloane variabile de apariþie a evenimentelor: sporadic, periodic, stocastic, combinaþie

� Timpul de rãspuns: timpul scurs între apariþia evenimentului ºi reacþia sistemului

Page 155: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

Atribute de calitate - Performanþa

Stimuli

�Apariþia periodicã, sporadicã sau

stocasticã a evenimentului

Surse

� internã, externã, software, hardware

Artefacte

� sisteme, OS, hardware, software

Contexte

� operaþional, test, dezvoltare, încãrcare, inert

Rãspunsuri

�Procesare stimuli

Mãsuri pentru rãspunsuri

� întârziere, termen (deadline), ratã de

transfer, ratã de insucces, pierdere date

EXEMPLE DE COMPONENTE ALE SCENARIULUI

Page 156: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

Atribute de calitate - Performanþa

Exemplu de scenariu de performanþã:

�500 utilizatori iniþiazã 1 000 tranzacþii pe minut în manierã stocasticã

în cursul operãrii în condiþii normale ºi fiecare tranzacþie este

procesatã cu o întârziere medie de 2 secunde.�

Page 157: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

Atribute de calitate - Securitatea

Def. Securitatea ��PăVXUD�DELOLWăþii sistemului de a rezista la încercãrile neautorizate de utilizare a datelor sau serviciilor, oferind în acelaºi timp acces utilizatorilor legitimi.

Zone de interes :

� non-repudiere: Tranzacþiile nu pot fi repudiate de cãtre nici una din pãrþile participante la tranzacþie.

� confidenþialitate: Datele ºi serviciile sunt protejate la accesele neautorizate.

� integritate: Datele ºi serviciile sunt furnizate conform cu specificaþiile.

� asigurare: Participanþii la o tranzacþie au în realitate identitatea pe care o declarã.

� disponibilitate: Sistemul va fi disponibil pentru utilizãrile legitime.

� auditing: Activitãþile sunt urmãrite în cadrul sistemului la nivele suficiente pentru reconstituirea evenimentelor.

Page 158: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

Atribute de calitate - Securitatea

Stimuli

�O entitate încearcã sã afiºeze/modifice/ºteargã date sau sã acceseze

date servicii din sistem

Surse

�O entitate necunoscutã care este identificatã corect/incorect, care este internã/externã sistemului, autorizatã/neautorizatã, ºi care are acces la resurse limitate/vaste

Artefacte

� sisteme, servicii, date

Contexte

� online/offline, conectate/deconectate, protejate/neprotejate

EXEMPLE DE COMPONENTE ALE SCENARIULUI

Page 159: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

Atribute de calitate - Securitatea

Rãspunsuri

�Autentificare utilizator

�Ascunderea identitãþii utilizatorului�Blocarea accesului la date/servicii

�Garantarea/respingerea accesului la date/servicii

� Întegistrare acces/tentativã de acces la date, modificãri la date

�Memorare date în format codificat

�Recunoaºterea de cereri de date sau servicii inexplicabil de mari sau neobiºnuite

�Raportare/restricþionare acces.Mãsuri pentru rãspunsuri

� Timp/efort/resurse necesare pentru a eluda cu succes mãsurile de securitate

� Timp/efort/resurse necesare pentru a restaura datele/serviciile�Probabilitatea de detectare a atacurilor

�Probabilitatea de identificare a indivizilor responsabili de atac

�Procentul serviciilor disponibile în cursul unui atac de tip �denial-of-services��Mãsura în care datele/serviciile au fost avariate

�Mãsura în care accesele legitime au fost repudiate

EXEMPLE DE COMPONENTE ALE SCENARIULUI

Page 160: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

Atribute de calitate - Securitatea

Exemplu de scenariu de securitate:

�Un individ identificat corect încearcã sã modifice date din sistem de

la un site extern. Sistemul detecteazã comportamentul maliþios,

menþine un audit al istoricului acþiunilor individului ºi reface datele

în cursul zilei curente.�

Stimul

Sursã stimul

Artefacte stimulate

Context

Rãspuns

Mãsurã rãspuns

Page 161: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

Atribute de calitate

Alte atribute de calitate la nivelul sistemului:

� interoperabilitate� siguranþã� utilizabilitate� extensibilitate� portabilitate� uºor de învãþat� scalabilitate� mentenabilitate� testabilitate

Existã ºi atribute de calitate mai particulare, specifice strict unui domeniu (ex. Calibrabilitate).

Page 162: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

Atribute de calitate

Atribute de calitate ale arhitecturii propriu-zise:

� Integritate conceptualã

� existã o temã (viziune) care unificã proiectarea sistemului la toate

nivelele.

� Corectitudine ºi completitudine � îndeplinirea tuturor cerinþelor cu respectarea tuturor constrângerilor.

� Constructibilitate � sistemul poate fi construit de echipa disponibilã în timpul dat ºi este

deschis anumitor modificãri pe timpul procesului de dezvoltare.

Page 163: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

Atribute de calitate

� Numirea unui atribut de calitate nu este suficientã pentru a-i înþelege corect ºi complet semnificaþia.

� Semnificaþia realã, corectã ºi completã a atributului se poate

transmite utilizând un scenariu.

Page 164: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

PLAN CURS

Elementele care dirijeazã definirea arhitecturii

Exprimãri tipice pentru cerinþe referitoare la atributele de calitate

O metodã mai bunã pentru exprimarea cerinþelor pentru atribute de calitate

O metodã pentru descoperirea cerinþelor pentru atribute de calitate

Page 165: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

QAW � Quality Attribute Workshop

QAW -��PHWRGă�FDUH�LPSOLFă�Vtakeholder-ii sistemului în descoperirea atributelor de calitate esenþiale pentru un sistem software.

Caracteristici cheie ale metodei QAW

� Centratã pe sistem

� Concentratã pe stakeholder

� Utilizatã înainte de proiectarea arhitecturii software

Page 166: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

QAW � Quality Attribute Workshop

1. Introducere ºi prezentare metodei QAW

2. Prezentarea afacerii/misiunii

3. Prezentarea planului arhitecturii

4. Identificarea elementelor care dirijeazã arhitectura

5. Brainstorming pentru scenarii

6. Consolidarea scenariilor

7. Prioritizarea scenariilor

8. Rafinarea scenariilor

PROCEDURA

Reiterare de câte ori este necesar,

cu lãrgirea comunitãþii de stakeholder-i.

Page 167: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

QAW � Quality Attribute Workshop

Participanþii:

� O reprezentare cât se poate de diversã a

stakeholder-ilor. (nu este neobiºnuitã o participare de 20stakeholder-i).

� Echipa QAW -�H[WHUQă�SURLHFWXOXL�:

� Scrib QAW : consemneazã scenariile brute, prioritizãrile lor, scenariile rafinate ºi orice chestiuni relevante

� Coordonator QAW : faciliteazã discuþiile ºi asigurã

faptul cã metoda este aplicatã în manierã eficace ºi oportunã.

Page 168: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

QAW � Quality Attribute Workshop

Pas 1:

Introducere ºi prezentarea metodei QAW

Obiectiv:

Asigurarea faptului cã toþi stakeholder-ii înþeleg metoda

QAW ºi toþi participanþii au ºansa sã se prezinte.

Page 169: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

QAW � Quality Attribute Workshop

Pas 2: Prezentarea afacerii / misiunii

Obiectiv: Asigurarea faptului cã toþi cei prezenþi înþeleg:� Contextul business al sistemului� Cerinþele funcþionale de nivel înalt

� Constrângerile de nivel înalt

� Cerinþele de nivel înalt pentru atributele de calitate� Planurile generale pentru dezvoltare (ciclu de viaþã,

domeniu, responsabilitãþi, etc.)

OBS: Aceste elemente reprezintã date de intrare pentru

QAW. (Dacã nu sunt încã cunoscute, atunci este prea devreme pentru QAW).

Page 170: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

QAW � Quality Attribute Workshop

Pas 3:

Prezentarea planului arhitecturii

Obiectiv:

Arhitectul explicã audienþei rezultatele curente al activitãþilor de definire a arhitecturii, care includ :� Extragerea ºi analiza cerinþelor

� Constrângeri cheie la nivel tehnic ºi la nivel business� Domeniul (de acþiune al) sistemului ºi contextul sãu

Page 171: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

QAW � Quality Attribute Workshop

Pas 4:

Identificarea elementelor care dirijeazã arhitectura

Obiectiv:

Acord asupra elementelor cheie care dirijeazã arhitectura în raport cu contextul business

Coordonatorul QAW prezintã elementele care dirijeazã

arhitectura pe care le cunoaºte ºi obþine clarificãri/adãugãri/eliminãri din partea stakeholder-ilor.

Pe lista astfel obþinutã se va concentra sesiunea de brainstorming.

Page 172: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

QAW � Quality Attribute Workshop

Pas 5:

Brainstorming pentru scenarii

Obiectiv:

Generarea unei liste iniþiale de scenarii brute care reflectã

necesitãþile stakeholder-ilor reprezentaþi.

Sesiune de brainstorming în care fiecare stakeholder are ocazia sã genereze cel puþin un scenariu.

Page 173: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

QAW � Quality Attribute Workshop

Pas 6:

Consolidare scenarii

Obiectiv:

Combinarea scenariilor similare pentru a preveni diluarea în cursul procesului de votare.

Stakeholder-ii care au iniþiat scenariile au cuvântul final

referitor la faptul cã scenariul lor este reprezentat în mod adecvat într-un scenariu combinat.

Page 174: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

QAW � Quality Attribute Workshop

Pas 7: Prioritizare scenarii

Obiectiv: Prioritizarea scenariilor conform nevoilor stakeholder-ilor reprezentaþi.

Se utilizeazã o schemã de votare în care fiecare stakeholder are alocat un numãr de voturi egal cu

aprox. 30% din numãrul scenariilor prezente.

Votarea are loc în 2 runde; fiecare stakeholder alocã în fiecare rundã ½ din voturile sale.

Stakeholder-ii pot aloca voturi la scenarii oricum doresc.

Page 175: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

QAW � Quality Attribute Workshop

Pas 8:

Rafinare scenarii

Obiectiv:

Scenariile principale sunt rafinate.

Pentru fiecare scenariu (dacã timpul o permite) coordonatorul elaboreazã:� Obiectivele business afectate

� Descrierea atributelor de calitate relevante

� Refrazare ca scenariu format din 6 pãrþi componente (stimuli, surse

stimuli, artefacte, contexte, rãspunsuri, mãsuri pentru rãspunsuri)

� Orice întrebare pe care stakeholder-ii o au referitoare la scenariu

� Orice problemã ce apare în cursul rafinãrii

Page 176: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

QAW � Quality Attribute Workshop

QAWproduce � Scenarii brute pentru atribute de calitate

� Prioritizarea scenariilor� Scenarii rafinate

poate fi utilizat pentru� Rafinare cerinþe� Prioritizare activitãþi de dezvoltare� Identificarea ºi diminuarea riscurilor� Prototipuri � Proiectarea arhitecturii

Page 177: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

QAW � Quality Attribute Workshop

QAW în context

QAW poate ajuta arhitecþii sã înþeleagã contextul business, comunitatea de stakeholder-i, dorinþele, necesitãþile ºi aºteptãrile acestora în raport cu sistemul software.

Informaþiie produse de QAW reprezintã doar începutul� E posibil ca sã nu fie prezenþi toþi stakeholder-ii

� Timpul este limitat

� Compania ar putea vrea sã modifice prioritãþile� Întrebãri/probleme adiþionale pot sã aparã deoarece nu

toate datele sunt disponibile la momentul desfãºurãrii unui

QAW

va fi necesarã o rafinare considerabilã a scenariilor.

Page 178: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

Metodologie generalã

Identificarea ºi gruparea cerinþelor pe categorii: funcþionale, atribute de calitate, constrângeri tehnice ºi business

Formularea cerinþelor funcþionale folosind cazuri de utilizare

Crearea scenariilor pentru atributele de calitate

Determinarea fixitãþii constângerilor

Colaborare cu stakeholder-ii pentru a prioritiza fiecare grup în termeni de importanþã

� Iniþial: critice, importante, bine de avut

� Ulterior: prioritizare în termeni de dificultate

concentrarea atenþiei pe cerinþele importante ºi dificile.

Page 179: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

ªablon pentru descriere atribut de calitate

Una sau mai multe mãsuri semnificative prin care va fi judecatã

calitatea rãspunsului. Mãsurile rãspunsului poate fi date în termeni de ore-persoanã, detecþie erori, timp de rãspuns, timp de recuperare, etc.

Mãsuri semnificative:

Rãspunsul dorit din partea sistemului.Rãspunsul sistemului:

Elementele sistem afectate de stimul. În etapele iniþiale ale ciclului de dezvoltare (înainte de proiectarea arhitecturalã) elementele afectate ar putea sã nu fie cunoscute. Dupã începerea proiectãrii, scenariile trebuie rafinate iar elementele identificate în momentul în care devin cunoscute.

Elemente sistem:

Descrierea contextelor relevante care ar putea afecta rãspunsul ºi mãsuri semnificative ale rãspunsului. Poate include condiþii ca operare normalã, încãrcare de vârf, operare degradatã, în timpul dezvoltãrii, etc.

Context:

Fenomenul care determinã sistemul sã reacþioneze într-un anume fel. Poate fi o cerinþã utilizator, un eveniment sau o întrerupere, o eroare, o cerere de modificare, etc.

Stimul(i):

Sursa/sursele generatoare sau potenþial generatoare pentru stimul(i).Surse stimuli:

Descriere brutã a atributului de calitate:Fie un nume (ex. Modificabilitate) fie o propoziþie ce încearcã sã descrie o cerinþã pentru un atribut de calitate

sau pentru o proprietate a sistemului.

ID scenariu: ReferinþãTitlu scenariu: Titlu (descriptiv)

Page 180: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

CONCLUZII

Elementele care dirijeazã arhitectura impun forma acesteia

� cerinþe funcþionale de nivel înalt, constrângeri tehnice ºi constrângeri business, atribute de calitate

Atributele de calitate ºi constrângerile sunt preponderente faþã

de funcþionalitate în dirijarea definirii structurii arhitecturale.

Atributele de calitate sunt dificil de descoperit ºi de documentat.

Scenariile pentru atribute de calitate permit caracterizarea clarã

ºi completã a atributelor de calitate.

QAW este o metodã ce implicã stakeholder-ii sistemului în descoperirea atributelor de calitate esenþiale.

Page 181: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 4

id10600312 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 182: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

PLAN CURS

Structuri software ºi ºabloane

Familia de stiluri pentru structuri de tip flux de date

Familia de stiluri pentru structuri de tip call-return

Page 183: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

Structuri software

Structurile sunt componente reale ale unui sistem software.

Reprezentãrile arhitecturale sunt abstractizãri ale structurilor reale cuprinse într-un sistem software.

Structurile sunt de mai multe tipuri: cod, proces, hardware, etc.

Tipurile de structuri percepute depind de perspectivã.

Reprezentarea unei structuri este o vedere (view) ºi depinde, de asemenea, de perspectivã.

Page 184: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Structuri

AllocationLinii serialeWireless...

Fisiere executabileCalculatoareSenzori�

Fizicã

C&CFlux de dateEvenimente...

ProceseFire de execuþie...

Dinamicã

ModuleDependenþãApel...

Straturi (layers)Module de cod...

Staticã

Tip de vederiExemple de relaþii

Exemple de structuri

Perspectiva

Page 185: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Stiluri

Stil ��VWUXFWXUă�JHQHUDOă�D�XQHL�IDPLOLL�GH�VLVWHPH�FX�WUăVăWXUL�similare ºi care apar în mod repetitiv în realitate.

Se bazeazã pe:� Natura elementelor� Aranjarea topologicã� Natura relaþiilor între elemente

Exemple: stiluri pentru flux de date, stiluri distribuite, stiluri cu evenimente, etc.

Stil = ºablon arhitectural

Page 186: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

ªabloane (Patterns)

Experþii reutilizeazã esenþa soluþiei unei probleme similare (gândire

în perechi PROBLEMÃ-SOLUÞIE)

Categorii de ºabloane funcþie de granularitate:

ªablon arhitectural

Tacticã

ªablon de proiectare

Idiom

Page 187: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

ªabloane (stiluri) arhitecturale

Stil arhitectural = structurã fundamentalã care Defineºte o soluþie generalã pentru un anume tip de probleme

�Împacheteazã� ºi defineºte o familie de structuri arhitecturale generale

Posedã proprietãþi cunoscute

Selectarea unui ºablon arhitectural este deseori prima alegere majorã pe

care o face arhitectul software.

Arhitectul trebuie sã cunoascã formele pure de stiluri arhitecturale pentru a le înþelege punctele tari, punctele slabe ºi consecinþele devierilor de la forma purã.

În realitate Sistemele deviazã în general de la formele pure

Sistemele combinã simultan mai multe stiluri arhitecturale

Page 188: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

ªabloane (stiluri) arhitecturale

Definesc:

Un set de tipuri de elemente ºi responsabilitãþile generale asignate acestora

Un set de tipuri de relaþii între elemente

Un aranjament topologic al elementelor ºi relaþiilor

Reguli semantice referitoare la modul de conectare, interacþiune ºi transformare a elementelor ºi relaþiilor

Exemple canonice

Dacã se aderã la semantici, stilul va promova unele proprietãþi ºi va inhiba altele.

Page 189: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

Tactici

Oferã o schemã pentru rafinarea elementelor unui sistem software ºi a relaþiilor dintre acestea.

Sunt independente de limbajul de programare

Se adreseazã unor probleme mai fine�GH�SURLHFWDUH�GHFkW�stilurile arhitecturale

Promoveazã direct atributele de calitate

Pot fi utilizate pentru a rafina ºabloane de proiectare de granularitate mare

(concept introdus oficial de SEI în 2003)

Page 190: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Exemplu ��7DFWLFă�SHQWUX�GLVSRQLELOLWDWH

Page 191: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

ªabloane de programare

Design patterns

Granularitate�PDL�PLFă�GHFkW�VWLOXULOH�DUKLWHFWXUDOH.

Se concentreazã pe arhitecturi OO.

Se concentreazã pe structuri de clase ºi probleme de construire a codului, nu pe structuri ºi proprietãþi la nivel de sistem.

Considerã cã modularitatea ºi reutilizarea sunt cele mai importante atribute de calitate pe care proiectarea trebuie sã le adreseze.

Page 192: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

ªabloane � viziune de ansamblu

Client Server

Main Loop{

read sensorapply correction constant write data to memorymove actuatorcheck for error:

}

ªabloan (stil) arhitectural - utilizat la începutul proiectãrii de nivel înalt pentru a adresa proprietãþi la nivel de sistem.

Tacticã -�XWLOL]DWă�SHQWUX�D�UDILQD�HOHPHQWHOH�arhitecturale înainte de implementare.

Idiom - utilizat la proiectarea de detaliu la nivel de element

MVC, Abstract Factory, Flyweight, Proxy,� ªablon de programare ��VH�DGUHVHD]ă�problemelor de proiectare orientate pe cod.

Page 193: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Importanþa ºabloanelor arhitecturale

Punct de plecare în activitatea de proiectare � de obicei se începe cu alegerea unui ºablon general de partiþionare.

Oferã un vocabular comun pentru proiectanþi

� ªabloanele expun proprietãþi cunoscute.

� Mijloc de descriere soluþii de proiectare la diferite probleme ºi de discutare a meritelor ºi neajunsurilor acestora.

Independente de domeniu ºi de limbaj

Sistemele reale sunt compuse din ansambluri de ºabloane

� Arhitecþii pot judeca proprietãþile ansamblului prin prisma proprietãþilor ºabloanelor componente.

Oferã pârghii pentru

� Proiectanþi : arhitecþii selecteazã acele structuri care îndeplinesc cerinþele funcþionale ºi atributele de calitate.

� Evaluatori : cei care�VWXGLD]ă�SURLHFWHOH�DUKLWHFWXUDOH�SHQWUX�D�VH�DVLJXUD�Fă�îndeplinesc cerinþele funcþionale ºi atributele de calitate.

Page 194: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Idiom

ªablon de nivel inferior orientat pe cod sau structurã primitivã

de date.

Specific pentru

� Limbaj de programare (ex. Java: Observer, Observable)

� Categorie de limbaje (ex. moºtenire, polimorfism, pentru limbajele OO)

Page 195: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

Structuri

Structurile sunt componente reale ale unui sistem software.

Reprezentãrile arhitecturale sunt abstractizãri ale structurilor reale cuprinse într-un sistem software.

Recomandare : analizã structuri în termeni de :

Perspectiva ºi vederea�UHSUH]HQWDWă

Aranjarea topologicã (de obicei ��GHVHQXO�VDX�UHSUH]HQWDUHD�canonicã)

Elemente ºi relaþii (fundamentele structurii)

Semanticile�VWUXFWXULL

Calitãþile promovate ºi cele inhibate�GH�VWUXFWXUă

Contextul tipic de utilizare, exemple, variante structurale.

Page 196: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

PLAN CURS

Structuri software ºi ºabloane

Familia de stiluri pentru structuri de tip flux de date

Familia de stiluri pentru structuri de tip call-return

Page 197: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

Stiluri specifice perspectivei C&C

Def. Stil arhitectural = specializare pentru tipuri de elemente ºi de relaþii, împreunã cu un set de constrângeri referitoare la modul de utilizare a acestora.

Din perspectivã dinamicã:

Un set specific de tipuri de componente

Un set specific de tipuri de conectori

Reguli de combinare a componentelor ºi conectorilor

Page 198: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

Stiluri specifice perspectivei C&C

C&C captureazã aspectele dinamice ale sistemului

Stilul - asociat cu un model computaþional care defineºte fluxul datelor ºi fluxul de control

Modele computaþionale : Data flow � calculul dirijat de fluxul datelor în sistem

Call-return � componentele interacþioneazã prin invocãri sincrone ale

capabilitãþilor oferite de alte componente

Event-based - componentele interacþioneazã prin evenimente sau mesaje

asincrone

Repository - componentele interacþioneazã printr-o colecþie vastã de date

persistente partajate

Page 199: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

Familia de stiluri pentru flux de date (data flow)

Sistem în flux de date � caracteristici fundamentale:

Structura de proiectare este determinatã de circulaþia datelor�GH�OD�R�componentã la alta.

Disponibilitatea datelor�FRQWUROHD]ă�FDOFXOHOH.

Fluxul de date este explicit.

Aceasta este singura�IRUPă�GH�FRPXQLFDUH între componente.

Variaþii � funcþie de:

Modul de exercitare a controlului (ex. push vs. pull)

Gradul de concurenþã dintre procese

Gradul de calcul incremental

Restricþii topologice, etc.

Page 200: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Elemente pentru flux de date

Elemente: procesãri date

Tipurile de interfeþe sunt port de date de intrare ºi port de date de ieºire

� Port de intrare � citeºte date

� Port de ieºire � scrie date

Modelul computaþional : citeºte date de la port(uri) de intrare,�calculeazã, scrie date la port(uri) de ieºire

Relaþii: fluxuri(streams) de date

Unidirecþional (de obicei asincron, buffer-at)

Interfeþele sunt rolurile de reader ºi writer

Modelul computaþional : transferul datelor de la rolul writer la rolul reader

Page 201: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

Flux de control vs. Flux de date

Flux de control

Modul în care controlul parcurge programul sau sistemul.

Datele pot urma controlul, dar nu reprezintã forþa determinantã pentru

arhitecturã.

Flux de date

Modul în care datele circulã printr-o colecþie de unitãþi de calcul.

Controlul (ºi calculul) sunt activate de disponibilitatea datelor.

Obs. ªabloanele arhitecturale pentru flux de date nu sunt acelaºi lucru cu DFD din analiza structuratã tradiþionalã.

Page 202: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

Stiluri din familia flux de date

Batch sequential

Procesare secvenþialã; componentele transformã toate datele de

pe intrare dupã care rezultatul este trimis spre prelucrare

urmãtoarei componente.

Tipic pentru primele aplicaþii pentru sisteme de management al informaþiilor (MIS).

Pipe-and-filter

Procesare incrementalã; componentele aplicã transformãrile ºi transmit rezultatul componentei urmãtoare pe mãsurã ce primesc

date. Tipizate de cãtre Unix

Control de proces

Structurã în buclã pentru a controla

variabilele de context

Page 203: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Stilul batch sequential

Program Program Program ...

Flux de date prin memorie externã

Unitãþi de calcul

Page 204: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Stilul batch sequential

Topologie Elementele sunt etapele de procesare, conectate prin flux de date.

Perspectivã ºi viewtype

Perspectiva dinamicã.

C&C Viewtype ��DUDWă�procesele (componente) ºi conexiunile stabilite la execuþie (conectori).

ProcessA

Output1Process

BOutput2

ProcessC

OutputInput

Page 205: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

Stilul batch sequential

Semantici Datele de intrare sunt transformate secvenþial; la fiecare pas datele

sunt procesate în totalitate.

Procesele sunt independente ºi nu partajeazã stare cu alte

procese.

Procesarea concurentã este imposibilã. Datele de ieºire ale unui proces sunt memorate în fiºiere ºi devin

intrãri pentru procesul urmãtor.

În mod ideal, formatul datelor de ieºire ale unui proces este compatibil cu formatul datelor de intrare pentru urmãtorul proces.

Procesele pot începe atunci când toate datele lor de intrare sunt

pregãtite ºi se opresc când nu mai existã date ºi procesarea a fost încheiatã.

Deseori sunt necesare mecanisme de control al job-urilor (definite

utilizând JCL � job control language).

Page 206: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Stilul batch sequential

Atribute de calitate promovate Simplitate ��LQWHJULWDWH�FRQFHSWXDOă

Reutilizarea proceselor Modificabilitate ��SURFHVăULOH�SRW�IL�Xºor stabilite folosind limbaje de

control (JCL)

Detecþie ºi tratare erori, recuperare sistem � problemele se pot izola relativ uºor.

Atribute de calitate inhibate Performanþã

Interactivitate (imposibilã)

Necesitã intervenþie ºi supraveghere umanã

Page 207: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

ªablonul batch sequential - exemple

Aplicaþii tipice Procesarea clasicã a datelor

� Calcul taxe� Calcul impozite

Primele medii de dezvoltare de software

Page 208: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

Stilul pipe-and-filter

Modelul computaþional:Structurã ce proceseazã fluxuri de date prin transformarea

incrementalã a datelor�GH�FăWUH�HOHPHQWH�VXFFHVLYH.

Îmbogãþire date prin calcule ºi adãugare de informaþii

Rafinare prin distilarea datelor sau prin îndepãrtarea informaþiilor nerelevante

Transformare�GDWH�SULQ�VFKLPEDUHD�UHSUH]HQWăULL�ORU

Filtrele nu cunosc identitatea filtrelor precedente sau urmãtoare ansamblul de calcul este o compunere funcþionalã a funcþiilor filtrelor

Page 209: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

Stilul pipe-and-filter

Tipuri de componente: Filtru Citeºte date de la unul sau mai multe porturi de intrare, le transformã ºi scrie

rezultatele pe unul sau mai multe porturi de ieºire Poate funcþiona concurent cu alte filtre

Transformã fluxuri (de intrare) în fluxuri (de ieºire)

Nu pãstreazã starea de la o instanþiere la alta

Tipuri de conectori: Pipe (conducta) Transferã datele de la un port de ieºire a unui filtru la un port de intrare al altui filtru

Are un singur rol de intrare date ºi un singur rol de ieºire date Transfer unidirecþional, cu pãstrarea ordinii, cu pãstrarea datelor (canal de

comunicare buffer-at) Conductele formeazã grafuri pentru transmiterea datelor

Relaþii : Ataºare Asociere port de ieºire date al unui filtru cu rol de intrare date al unei conducte ºi port

de intrare date al unui filtru cu rol de ieºire date al unei conducte

Page 210: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

Stilul pipe-and-filter

Topologie Elemente (filtre) legate prin relaþii (conducte)

Perspectivã ºi viewtype

Perspectiva dinamicã

C&C viewtype ��DUDWă�SURFHVHOH/firele de execuþie (filtre) ºi conexiunile (pipes) stabilite la execuþie.

Page 211: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

Stilul pipe-and-filter � Semantici (1)

Filtrele pot funcþiona asincron ºi concurent

Datele sunt transformate incremental

Corectitudinea datelor de ieºire nu trebuie sã depindã de ordinea în care se executã filtrele din cadrul sistemului

Elementele din sistem se activeazã în prezenþa datelor, dar execuþiile sunt non-deterministice (fitrele pot trimite (push) sau extrage (pull) date).

Filtrele sunt independente ºi nu partajeazã date, servicii sau stare cu alte filtre� Nu existã un context extern în procesarea fluxurilor� Nu se pãstrazã starea de la o instanþiere la alta� Nu se cunosc informaþii despre filtrele precedente sau ulterioare

Rata de procesare a filtrelor depinde de rata cu care datele sunt disponibile

Funcþia realizatã de un filtru este determinatã la configurarea

sistemului. Odatã cu construirea sistemului se stabileºte definitiv funcþia compusã

aplicatã fluxului de date.

Page 212: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

Stilul pipe-and-filter � Semantici(2)

Flux de date unidirecþional, cu pastrarea ordinii ºi conþinutului

Conductele nu au stare ºi sunt utilizate pentru a transfera datele

Ieºirea unei conducte se poate conecta doar la un port de intrare al unui filtru sau la destinaþia finalã a datelor (data sink).

Intrarea unei conducte se poate conecta doar la un port de ieºire sau la sursa de date.

Deseori sunt necesare mecanisme speciale pentru a face legãturi.

Conductele ofera posibilitãþi de memorare infinite pentru a permite citiri/scrieri asincrone

Page 213: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

Stilul pipe-and-filter

Atribute de calitate promovate Simplitate ��LQWHJULWDWH�FRQFHSWXDOă

Reutilizarea filtrelor datoritã independenþei funcþionale a acestora Modificabilitate � legarea conectorilor la execuþie (late binding)

permite reconfigurarea simplã a reþelei de conducte ºi filtre

Atribute de calitate inhibate Performanþã � se poate creºte prin paralelizarea procesãrii datelor

Interactivitate (dificilã)

Detectarea ºi tratarea erorilor ºi refacerea sistemului

Page 214: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

Stilul pipe-and-filter - exemple

Sisteme de procesare semnale � ex. Sistem de colectare a datelor de telemetrie

Recepþionarea fluxului de date de telemetrie, decomutare cadre (separare canale multiple de date codificate), aplicare de coeficienþi, afiºare ºi memorare date.

Frame Collection

Major Frame Decom

Minor Frame Decom

Measurement units

Time Tag Frame

Apply coefficients

Display Data Record Data

Page 215: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

Stilul pipe-and-filter - exemple

Filtre: procese Unix

Conducte: fluxuri buffer-ate suportate de sistemul de operare

Fiºierele sunt considerate surse ºi destinaþii finale de date; spre deosebire de filtre, fiºierele sunt pasive.

Surse ºi destinaþii finale de date, built-in: stdin, stdout, stderr În general, filtrele transformã datele de la stdin ºi trimit rezultatul la

stdout Conductele transferã fluxuri de caractere ASCII (sau UniCode)

� Avantaj: orice poate fi conectat la orice

� Dezavantaj: orice informaþie trebuie codificatã (ASCII, UniCode), transferatã, apoi decodificatã.

Exemplu:

cat/etc/passwd | grep �joe� | sort > junk

cat grep sortpasswd junk

Page 216: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

ªablonul pipe-and-filter - exemple

Arhitectura de procesare a cererilor de la Apache Web server

Paradigma map-reduce�GH�OD�PRWRDUHOH�GH�FăXWDUH

Yahoo!Pipes pentru procesare RSS feedshttp://pipes.yahoo.com/pipes

Sisteme de calcul ºtiinþific ce proceseazã ºi analizeazã

cantitãþi mari de date experimentale

Page 217: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

Comparaþie ºabloane

Descompun sistemul în elemente ce interacþioneazã doar prin intermediul

datelor transferate între acestea.

Batch Sequential

� Granularitate mare

� Latenþã mare între paºii de procesare

� Acces extern la intrare

� Concurenþa este imposibilã

� Non-interactivitate

� Datele sunt procesate în întregime la fiecare pas

Pipe-and-Filter

� Granularitate finã

� Prezenþa datelor porneºte procesarea

� Intrare localizatã

� Concurenþa este posibilã

� Interactivitate dificilã, dar posibilã

� Datele sunt procesate incremental

Page 218: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

Variante ale stilului pipe-and-filter

Filtre cu buffer-are � Eventual ºi prelucrãri simple ��H[. ordonare

� Scãdere de performanþã

� Limitare la memoria internã disponibilã

Obs. O posibilã soluþie de utilizare a memoriei externe violezã semanticile stilului ºi poate submina proprietãþile de reconfigurare ºi reutilizare promovate de stil ºi conduce,�GH�asemenea, la scãderea performanþei.

Reþele concurente� Divizarea procesãrii pe structuri paralele.� Promoveazã performanþa, cu excepþia cazurilor în care existã gâtuiri

pe flux.

Filtre cu difuzare (broadcasting) de evenimente� Lansare eveniment de obicei atunci când apare o problemã la filtru.

� Se va urmãri menþinerea unei cuplãri slabe (eventual nule) cu alte elemente, pentru a nu viola semanticile stilului.

Page 219: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

Criterii pentru alegerea stilului pipe-and-filter

Sarcina (task) este dominatã de disponibilitatea datelor.

Datele pot fi transferate în mod predictibil de la un proces la altul.

Alegere bunã pentru multe aplicaþii pe flux de date deoarece:

� Permite reutilizarea ºi reconfigurarea filtrelor.

� Sistemul poate fi analizat uºor.

� Reduce efortul de testare a sistemului ºi de re-testarea de dupã

reconfigurare.

� Permite procesare incrementalã ªI procesare paralelã.

Performanþa este determinatã de filtrul cel mai lent.

Page 220: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

Stiluri pentru control proces

SISTEME DE CONTROL

Inginerii sistemelor de control utilizeazã sistemele de calcul pentru:� monitorizarea unui fenomen fizic � exercitarea controlului asupra unui sistem pe baza mãsurãrii datelor

de intrare.

Clasificare 1: Sisteme de control cu evenimente discrete Sisteme cu control continuuObs. Majoritatea sistemelor reale utilizeazã ambele strategii de control.Ne ocupãm de sistemele cu control continuu.

Clasificare 2: Sisteme de control în buclã deschisã

Sisteme de control în buclã închisã

Page 221: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

Stiluri pentru control proces

SISTEME DE CONTROL � exemple

Sistemele de încãlzire, ventilare ºi aer condiþionat (HVAC)

Sisteme ambientale inteligente

Sisteme de control pentru motoarele automobilelor

Sisteme de manufacturare ºi producþie

Sisteme pentru pompieri ºi securitate

Electrocasnice

Roboþi ºi subsistemele lor

Simulatoare, sisteme aerospaþiale, etc.

Page 222: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

Control în buclã deschisã

Un sistem de control în buclã deschisã nu necesitã

mãsurarea variabilelor de ieºire pentru a corecta erorile.

Reglarea se face prin intervenþie externã (manualã).

Soluþie simplã ºi bunã dacã variaþiile sunt mici.

Dacã variaþiile sunt mari sau bruºte, solicitã atenþie frecventã

din partea operatorului uman.

Avantaj : simplitate

Dezavantaj: insensibil la dinamica în timp a sistemului controlat.

Page 223: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

Control în buclã închisã

Strategie de control mai sofisticatã.

Se fac mãsurãtori asupra mediului ºi asupra ieºirilor din sistem.

Valorile mãsurate sunt folosite ulterior pentru a regla automat sistemul.

Forme de control:� Feedback

� Feed-forwardObs. În practicã se utilizeazã uneori o combinaþie a celor douã forme de control, rezultând trei

ºabloane diferite.

Feedback

� Proces prin care o parte din semnalul de ieºire sau o funcþie aplicatã

acestuia este transmisã înapoi pe intrarea elementului de control.

� Are loc în timp real, permiþând controlul sistemului în timp ce acesta funcþioneazã.

Page 224: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

Stil pentru control în buclã închisã, cu feedback

Intrare de referinþã - una sau mai multe intrãri ce reprezintã valorile

ideale ale variabilelor controlate.

Informaþii de dirijare � datele trimise la instalaþie ºi care dirijeazã

volumul de activitate al instalaþiei.

Controller � unul sau mai multe elemente responsabile sã furnizeze semnale de dirijare a instalaþiei.

Instalaþie � elementul sistemului care reacþioneazã

la informaþiile de dirijare, executã operaþiile ºi manipuleazã variabilele controlate.

Variabile de intrare � zero sau mai multe intrãri care sunt

alimentate (sau eºantionate) continuu de cãtre controller.

Variabile controlate � ieºirea sistemului, reprezentând

cantitatea ce trebuie menþinutã la o anumitã valoare.

Feedback � �semnalul��FDUH�UHSUH]LQWă�R�SDUWH�VDX�R�IXQFþie aplicatã asupra

variabilei controlate; este returnat la controler.

Page 225: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

Stiluri pentru sisteme de control

ªablonul pentru sistem de control în buclã închisã, cu feedback- granularitate foarte mare (grad ridicat de generalitate) poate fi utilizat doar ca punct de plecare în proiectarea sistemelor de control.

Probleme rãmase deschise:

Evenimente discrete vs. Buclã de control continuu

Combinaþia dintre control proporþional, integral ºi diferenþial� proporþional cu valoarea erorii, � diferenþial - reacþie funcþie de variaþia erorilor, � PID - proporþional-integral-derivativ

Modalitãþi de reglare ºi de facilitare a reglãrii

ªablonul permite proiectanþilor sã aloce elementelor responsabilitãþi în etapele iniþiale de proiectare,

în vederea obþinerii unor proprietãþi generale la nivel de sistem.

Page 226: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

Stiluri pentru sisteme de control

În sistemele de control existã o cuplare strânsã între elementele fizice ºi elementele software; consecinþe:

Promovarea performanþei

Reducerea dimensiunii codului executabil ºi consumului de memorie

Inhibarea modificabilitãþii ºi abilitãþii de a reutiliza elemente (în general)

Sistemele de control pun probleme speciale de dezvoltare. Pe lângã

controlul fizic, sistemul trebuie :

sã rãspundã repede ºi deterministic

sã fie sigur ºi sã aibã un grad foarte mare de disponibilitate în medii extreme.

Page 227: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 5

id15844423 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 228: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

Perspectiva dinamicã

Perspectiva dinamicã � modul în care sistemul este structurat ca set de unitãþi de execuþie (elemente ce au comportament ºi interacþiuni la momentul execuþiei).

Vederile reprezintã componentele sistemului ºi conectorii dintre acestea. Tipul de vedere este C&C Viewtype.

Utilitate: Ilustrarea structurii sistemului în regim dinamic

Ghid pentru dezvoltarea sistemului

Analiza sistemului în raport cu atributele de calitate specifice regimului

dinamic (ex. performanþã, fiabilitate, disponibilitate)

Page 229: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

Perspectiva dinamicã �

Component-and-connector (C&C) Viewtype

Tipuri de elemente :

� componentã = unitate de calcul ºi/sau memorare date pe

timpul execuþiei; accesibilã prin porturi care expun

intefeþele componentei.

� conector = mecanism de interacþiune între componente;

defineºte roluri care expun interfeþele conectorului.

Tip de port/rol = interfaþã = replici multiple*�OD�R�FRPSRQHQWă/conector

*Notaþie multiplicitate: [a] create static, [0..b] create dinamic

Page 230: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Perspectiva dinamicã �

Component-and-connector (C&C) Viewtype

ComponentãExemple Proces, obiect, client, server, datastore, complexe � reprezentate pe nivele multiple de

detaliu

ConectorCategorii: link ºi protocol de comunicare, flux informaþii, acces la memorie

partajatãExemple Invocare servicii, cozi mesaje asincrone, multicast evenimente, pipe Canal de comunicare orientat pe tranzacþii, ESB (enterprise service bus)

Înglobeazã un protocol de interacþiune (ordine interacþiuni, punctul curent de

control, gestionare condiþii de eroare ºi time-out) � trebuie documentat.

Reprezintã forme complexe de interacþiune ��GHWDOLHUH�XOWHULRDUă�FD�subsistem C&C.

Ex. High level ��DSHO�GH�SURFHGXUăDetalii în context distribuit: Protocoale pentru time-out, gestionare erori, împachetare/despachetare date, localizare

furnizor

Page 231: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Perspectiva dinamicã �

Component-and-connector (C&C) Viewtype

Tipuri de relaþii :

� �attachment� � ataºare port al componentei la rol al conectorului

� �interface delegation� � asociere port cu porturi ale

subcomponentelor; asociere rol cu roluri ale structurii interne

Condiþii :

� Ataºare validã : port � rol ; cu respectare protocol de interacþiune

� Delegare interfaþã între porturi/roluri compatibile

� Conectorul trebuie ataºat la o componentã (nu poate exista izolat)

Page 232: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Perspectiva dinamicã �

Component-and-connector (C&C) Viewtype

Tipuri ºi instanþe

Tip � definiþie pentru o clasã de componente sau conectori; set de variante. Nivele de specializare:

� Stil arhitectural (ex.�FOLHQW, server, conector cerere/rãspuns)� Tehnologie (ex. Java servlet, EJB, MySQL)� Domeniu (servlet control comunicare cu ATM)� Aplicaþie

Instanþã ��UHSUH]HQWDWă�SH�R�GLDJUDPă�&&C; Conformã cu un tip în termeni de:

� Comportament� Interfeþe (tip ºi multiplicitate)� Substructuri� Proprietãþi� Restricþii topologice

Page 233: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

Perspectiva dinamicã � C&C Viewtype

NOTAÞII

Informale : box-and-lines

UML : diagrama de componente

Acme (AcmeStudio) :

Page 234: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

Stiluri specifice perspectivei C&C

Reprezentare parþialã a claselor de stiluri C&C

Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Second Edition, Addison Wesley, 2010

Calcul dirijat de fluxul datelor în sistem

Invocãri sincrone ale

capabilitãþilor oferite de componente

Calcul dirijat de evenimente sau mesaje asincrone

Comunicare printr-o colecþie vastã de date

persistente partajate

Stil arhitectural � specializare pentru tipuri de elemente ºi de relaþii, împreunã

cu un set de constrângeri referitoare la modul de utilizare a acestora.

Page 235: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

PLAN CURS

Familia de stiluri call-return

Stilul client-server

Stilul peer-to-peer

Stilul SOA (service oriented architecture)

Stilul în trepte � specializare pentru client-server

Arhitecturã aplicaþii Web � specializare pentru stilul în trepte

Arhitecturã aplicaþii Java EE � specializare pentru stilul în trepte

Page 236: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Stiluri pentru structuri call-return - fundamente

Modelul computaþional :

Conþin elemente ce oferã servicii altor elemente.

Componente : furnizor serviciu, consumator serviciu

Conectorii - transferã cererea de la producãtorul de serviciu la consumatorul

acestuia ºi rezultatul în sens invers.

Elementele depind de serviciile invocate pentru a-ºi îndeplini reponsabilitãþile proprii.

Page 237: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

Stiluri pentru structuri call-return - fundamente

Serviciile pot funcþiona în 2 moduri:

� Blocant ��HOHPHQWHOH�VROLFLWDQWH�WUHEXLH�Vă�Dºtepte terminarea serviciului invocat înainte de a-ºi putea continua activitatea.

� Non-blocant � elementele solicitante îºi pot continua activitatea dupã invocarea unui serviciu, în paralel cu acesta.

Page 238: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

Stiluri pentru structuri call-return - componente

Furnizor serviciu ��FRPSRQHQWă�FX�XQD�VDX�PDL�PXOWH�LQWHUIHþe prin care oferã servicii.

Categorii de interfeþe :� Expune un set de servicii utilizabile de cãtre alte elemente. (provided)

� Expune un set de servicii pe care alte elemente trebuie sã le ofere. (required)

De obicei, componentele cunosc identitatea elementelor pe ale cãror servicii se bazeazã, DAR� Nu întotdeauna� Numele furnizorului de servicii poate deveni cunoscut pe parcurs.

Componentã ��SRDWH�IL�FRPSOH[ă, cu multe detalii de proiectare (nu

doar o clasã sau o funcþie)

Page 239: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Stiluri pentru structuri call-return - componente

Serviciile sunt de obicei grupate ºi împachetate în baza unui scop comun:

� Pentru simplitatea mentenanþei si a modificãrii

� Pentru facilitarea reutilizãrii unor elemenãtorte arhitecturale de dimensiuni mari

� Pentru a crea unitãþi vandabile

� Pentru a partiþiona construirea elementelor în raport cu forþa de muncã de dezvoltare

Page 240: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Stiluri pentru structuri call-return � relaþii (1)

Relaþiile sunt baza pentru schimbul de informaþii ºi de control între elemente.

Categorii de relaþii:� Asimetricã

� Participanþi : apelant ºi apelat� Semanticã : apelatul oferã servicii utilizate de apelant

� Exemplu : apel de procedurã

� Simetricã (peer-to-peer)

� Participanþi :�GRXă�HOHPHQWH, fiecare putând fi atât apelant cât ºi apelat

� Semanticã : fiecare element poate furniza servicii celuilalt

� Exemple : sisteme OO

Page 241: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

Stiluri pentru structuri call-return � relaþii (2)

Responsabilitãþile pentru control ºi pentru date nu sunt separate.

Relaþii între date : � Datele pot fi transferate în ambele sensuri, ca parametri de la

apelant la apelat ºi ca rãspuns în sens invers.

Relaþii pe fluxul de control:� Forma cea mai simplã

� de la apelant la apelat, apleantul blocându-se în aºteptarea rãspunsului.

� Forme mai complexe � Protocol de interacþiune ce defineºte secvenþe de cereri ºi rãspunsuri

� Pot implica concurenþã ºi rendezvous/joining

Page 242: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Stiluri pentru structuri call-return -�VHPDQWLFă

Corectitudinea funcþionalã a sistemului este ierarhicã.

Corectitudinea oricãrui element arhitectural depinde de corectitudinea elementelor pe ale cãror servicii se bazeazã.

Conduce în mod natural la specificarea design-lui pe bazã de interfaþã

ºi de pre/post-condiþii� Precondiþii � condiþiile în care poate fi solicitat serviciul

� Postcondiþii � condiþiile asupra rezultatului invocãrii serviciului

Momentul legãrii (binding) apelului la recipient:� Static - la compilare (ex. tipuri abstracte de date tradiþionale)

� Dinamic � la execuþie (ex. sisteme OO)� Prin intermediar (broker) ��XWLOL]DUHD�XQXL�EURNHU�GH�RELHFWH�SHQWUX�D�

gãsi obiecte ºi servicii (ex. RMI, RPC)

Page 243: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

Stiluri pentru structuri call-return � atribute de calitate

Atribute de calitate promovate� Modificabilitate prin separare (probleme ºi interfaþã)

Modificabilitatea este mãritã pe bazã de apeluri ºi rãspunsuri puþine ºi depinde în mod esenþial de o bunã

asignare a reponsabilitãþilor. Încapsularea ºi moºtenirea (în paradigma OO)�

promoveazã reutilizarea elementelor.

Atribute de calitate inhibate� Performanþa este inhibatã de cãtre ramificaþiile de control.

� Comportamentul corect ºi disponibilitatea sunt distribuite pe mai multe elemente.

Page 244: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

PLAN CURS

Familia de stiluri call-return

Stilul client-server

Stilul peer-to-peer

Stilul SOA (service oriented architecture)

Stilul în trepte � specializare pentru client-server

Arhitecturã aplicaþii Web � specializare pentru stilul în trepte

Arhitecturã aplicaþii Java EE � specializare pentru stilul în trepte

Page 245: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

Stilul client-server

Tip componente: client, server� Client ��LQYRFă�VHUYLFLL (consumator)� Server ��RIHUă�VHUYLFLL (furnizor)

Tip conectori : cerere/rãspunsroluri: cerere, rãspuns

Relaþia : ataºare port cerere client cu rol cerere conector ºi port rãspuns

server cu rol rãspuns conector.

Page 246: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Stilul client-server

Modelul computational:

Client - iniþiazã interacþiune prin invocare serviciu la server ºi se blocheazã în aºteptarea rezultatului.

Server ��DVWHDSWă�VROLFLWăUL, executã calcule ºi trimite rãspuns.

Comunicare asimetricã : clientul cunoaºte identitatea serverului înainte de apel, nu ºi reciproc.

Page 247: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

Stilul client-server

Variante :

� Server-ele pot iniþia acþiuni asupra clientului prin proceduri de notificare (call-back) înregistrate de client la server.

� Interacþiune multiplã în cadrul unei sesiuni.

� Componente server pot fi clienþi pentru alte componente

Specializãri � exemple de restricþii suplimentare:

� Numãrul de ataºãri la un port dat

� Relaþii permise între servere

� Creare ierarhie pe mai multe trepte (tiers) prin grupare ºi distribuire componente. Exemple ?

Page 248: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

Stilul client-server

Atribute de calitate promovate :

� Extensibilitate ��DGăXJDUH�GH�QRL�FOLHQþi ºi servere

� Modificabilitate ºi reutilizare - prin separare servicii comune

� Scalabilitate ºi disponibilitate - cu replicare server

Permite analizarea dependabilitãþii, securitãþii ºi capacitãþii de transfer date (throughput).

Atribute de calitate inhibate

� Fiabilitatea

� Performanþa

� Securitatea

� Simplitatea � sisteme cu complexitate mare; dificil de testat ºi de întreþinut.

Page 249: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

PLAN CURS

Familia de stiluri call-return

Stilul client-server

Stilul peer-to-peer

Stilul SOA (service oriented architecture)

Stilul în trepte � specializare pentru client-server

Arhitecturã aplicaþii Web � specializare pentru stilul în trepte

Arhitecturã aplicaþii Java EE � specializare pentru stilul în trepte

Page 250: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Stilul peer-to-peer

Componente : procese independente

Conectori : call/return � Comunicare bidirecþionalã între 2 sau mai multe componente

Relaþii : ataºare dinamicã componentã cu conector

Page 251: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

Stilul peer-to-peer

Model computaþional :

Cooperare componente ale unui peer ; fiecare�FRPSRQHQWă�SRDWH�iniþia interacþiuni.

� Simetric ��RULFH�FRPSRQHQWă�SRDWH�SURGXFH�ºi consuma servicii

Succesiune operaþii:

conectare la reþeaua de componente, cãutare componentã

invocare serviciu

Page 252: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Stilul peer-to-peer

Variante :

� Propagare de la un peer la altul în cãutarea unei componente

� Noduri speciale (ultrapeer / ultranode / supernode)��FDSDELOLWăþi de indexare sau rutare

� Limitarea numãrul de componente conectate

� Restricþii de cunoaºtere identitate

Page 253: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Stilul peer-to-peer

Atribute de calitate promovate :

� Flexibilitate � caracter simetric

� Compozabilitate � cooperare componente pentru a oferi un serviciu

� Echilibrare încãrcare

� Scalabilitate dinamicã � conectare componente la runtime

� Disponibilitate cu replicare componente

� Permite analizarea dependabilitãþii, securitãþii ºi capacitãþii de transfer date (throughput).

Page 254: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

Stilul peer-to-peer

Exemple � sisteme distribuite

Reþele de partajare fiºiere (exemple ?)

Aplicaþii de mesagerie instant ºi VoIP

Desktop grid computing systems

Gnutella � transfer bidirecþional de fiºiere

Page 255: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

PLAN CURS

Familia de stiluri call-return

Stilul client-server

Stilul peer-to-peer

Stilul SOA (service oriented architecture)

Stilul în trepte � specializare pentru client-server

Arhitecturã aplicaþii Web � specializare pentru stilul în trepte

Arhitecturã aplicaþii Java EE � specializare pentru stilul în trepte

Page 256: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

Stilul SOA

SOA � Service-Oriented Architecture

Colecþie de componente distribuite care oferã ºi/sau consumã

servicii.

Componente executabile : compozabile indiferent de limbajul de dezvoltare ºi platforma de execuþie.

Componente independente funcþional.

Page 257: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

Stilul SOA

Tipuri de componente :

� furnizor serviciu ��RIHUă�VHUYLFLX�SULQ�LQWHUIDþã publicatã

� consumator serviciu ��LQYRFă�VHUYLFLL�GLUHFW�VDX�SULQ�LQWHUPHGLDU

� Registru � furnizorii înregistreazã servicii, consumatorii descoperã servicii la runtime

� Server de orchestrare ��FRRUGRQHD]ă�LQWHUDFþiunile pe baza unor scripturi ce definesc fluxuri de lucru (workflow)

� ESB (enterprise service bus) � element de rutare ºi transformare mesaje

Page 258: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

Stilul SOA

Tipuri de conectori :� SOAP � protocol SOAP (over HTTP) comunicare sincronã; conecteazã

porturi descrise cu WSDL

� REST � intermediazã operaþiile de bazã ale protocolului HTTP; comunicare sincronã

� Conector de mesagerie � utilizeazã un sistem de mesagerie* pentru schimb asincron de mesaje (point-to-point sau publish-subscribe)

Relaþii : ataºare dinamicã�SRUWXUL�GLVSRQLELOH�OD�FRQHFWRUL�FRUHVSXQ]ăWRUL.

Model computaþional : Cooperare componente; descrisã în general ca workflow.

*Exemple: IBM WebSphere MQ, Microsoft MSMQ, Apache ActiveMQ

Page 259: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

Stilul SOA

Variante :� Consumatorii sunt conectaþi la furnizori, posibil prin componente

intermediare.

Atribute de calitate promovate :� Interoperabilitate � independenþã de platforma de execuþie a

componentelor

� Suport pentru integrare sisteme legacy

� Flexibilitate -�UHFRQILJXUDUH�GLQDPLFă

Page 260: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

PLAN CURS

Familia de stiluri call-return

Stilul client-server

Stilul peer-to-peer

Stilul SOA (service oriented architecture)

Stilul în trepte � specializare pentru client-server

Arhitecturã aplicaþii Web � specializare pentru stilul în trepte

Arhitecturã aplicaþii Java EE � specializare pentru stilul în trepte

Page 261: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

Trepte (tiers)

Mecanism de partiþionare a sistemelor prin gruparea logicã a

componentelor în trepte.Criterii:

� Tip componente� Partajare mediu de execuþie� Obiectiv comun

Restricþii topologice referitoare la comunicarea între componente: se pot conecta direct doar componente din aceeaºi treaptã sau din trepte adiacente.

Restricþii referitoare la tipul de comunicare între trepte adiacente (ex. call-return într-un sens ºi notificare prin evenimente în sens opus).

Se poate aplica la orice stil C&C

În mod tipic se aplicã stilului client-server

Page 262: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

Stilul în trepte (tiered)ca specializare a stilului client-server

Adreseazã unele inconveniente din zonele de performanþã, fiabilitate, securitate.

Promoveazã scalabilitatea ºi modificabilitatea.

Trepte tipice:� Interfaþa cu utilizatorul� Logica de procesare funcþionalã (business rules)

� Memorare / acces date

Dezvoltate ºi întreþinute separat, ca elemente independente, de multe ori pe platforme diferite.

Page 263: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

Interfaþa utilizator se executã pe o staþie desktop ºi utilizeazã un GUI standard

(browser-ul).

Logica de procesare funcþionalã (business rules) poate fi distribuitã pe unul sau mai

multe module separate ce se executã pe unul sau mai multe servere. Treapta intermediarã (middle tier) poate fi formatã, la rândul ei, din mai multe trepte � stilul devine "n-tiered."

Datele sunt amplasate pe un sistem separat care gãzduieºte un repozitoriu (RDBMS).

Client ReguliBusiness

Date

În mod tipic un browser În mod tipic RDBMS

Middle tier

Front end, sau procesele front end.

Stilul în trepte (tiered)ca specializare a stilului client-server

Page 264: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

O problemã cheie a arhitectului � partiþionarea nivelului intermediar (middle tier).

Conceptul de �middleware� a cãpãtat identitate odatã cu apariþia sistemelor �n-tiered�.

Stilul �n-tier� introduce o separare care:

� Permite actualizarea sau înlocuirea independentã a oricãrei trepte

funcþie de necesitãþi � se pãstreazã integritatea conceptualã.

� Permite mecanisme ce promoveazã performanþa, securitatea, fiabilitatea.

Stilul în trepte (tiered)ca specializare a stilului client-server

Page 265: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

PLAN CURS

Familia de stiluri call-return

Stilul client-server

Stilul peer-to-peer

Stilul SOA (service oriented architecture)

Stilul în trepte � specializare pentru client-server

Arhitecturã aplicaþii Web � specializare pentru stilul în trepte

Arhitecturã aplicaþii Java EE � specializare pentru stilul în trepte

Page 266: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

Structurã generalã în 3 trepte specializare a stilului în trepte pentru domeniul aplicaþiilor WEB

Web Browser

Load Balancer

Router/ Firewall

Proxy Server

Web Server

Web Server

Web Server

:

Application Server

Application Server

:

Database Server

Web Browser

Web Browser

Web Browser

Database Server

Treapta UI Treapta regulilor businessTreapta datelor

Page 267: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

AvantajeStil în 3 trepte pentru aplicaþii Web

Browser-e Web performante Iniþial � text ºi hypertext Acum �

� Graficã ºi video

� Securitate� Java applets ºi alte variante de cod executabil la client.

HTTPS

Utilizeazã Secure Sockets Layer (SSL) ca sub-protocol al HTTP.

SSL utilizeazã o pereche de chei publicã/privatã pe 128 biþi. Acest nivel de criptare este considerat ca fiind adecvat pentru cantitãþi micide informaþii comericale ºi pentru tranzacþii scurte.

Page 268: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

Server-e proxy Îmbunãtãþesc performanþa:

� Memoreazã în cache pagini web accesate frecvent, a.î. utilizatorii le pot extrage fãrã acces direct la site.

� Pot fi localizate geografic aproape de utilizator ºi plasate în aceeaºi reþea pentru a economisi resurse de comunicare ºi de calcul.

Pot împiedica utilizatorii sã acceseze anumite site-uri web.

Firewalls Împiedicã accesul neautorizat, din exteriorul zonei protejate, la

informaþii.

Tipuri uzitate:� Packet filters ��H[DPLQHD]ă�DQWHWHOH�7&3�ºi IP ale fiecãrui pachet primit

ºi rejecteazã pachetele necorespunzãtoare.

� Application proxies � specifice aplicaþiilor; cunosc protocoalele folosite de aplicaþie ºi filtreazã traficul pe baza unor modele de comportament

cunoscute.

Avantaje Stil în 3 trepte pentru aplicaþii Web

Page 269: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

AvantajeStil în 3 trepte pentru aplicaþii Web

Echilibrarea încãrcãrii

(load balancing)

performanþã, disponibilitate ºi securitate

Cererile HTTP ºi HTTPS sunt distribuite unui fond comun de server-e.

Strategiile de echilibrare se pot baza pe planificare circularã (round-robin) sau pe cunoaºterea caracteristicilor de procesare ºi de încãrcare ale

server-elor.

Suplimentar se poate monitoriza starea fiecãrui server ºi, dacã apare o

disfuncþionalitate, traficul este redirijat cãtre alt server din fondul comun.

Page 270: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

AvantajeStil în 3 trepte pentru aplicaþii Web

Server-e Web

performanþã

ºi scalabilitate

Fire multiple de execuþie, utilizând un fond comun de fire de execuþie din care fiecare fir poate fi repartizat pentru a trata o cerere nou�DSăUXWă.

Un server cu fire multiple de execuþie este mai puþin predispus la gâtuiri ºi la întârzieri mari pentru cazurile cele mai defavorabile.

Scalabilitate prin înlocuirea procesoarelor cu versiuni mai puternice.

Page 271: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

AvantajeStil în 3 trepte pentru aplicaþii Web

Server-e de aplicaþii*

modificabilitate, scalabilitate, performanþã

� Aplicaþiile desfãºurate pe aceste servere implementeazã logica

business iar serverele de aplicaþii implementeazã conectivitatea, care dicteazã modul în care interacþioneazã clienþii ºi server-ele.

� Au permis transferarea unei porþiuni semnificative de funcþionalitate de la clienþii �fat��OD�WUHDSWD�LQWHUPHGLDUă.

� Au permis bazelor de date sã se concentreze pe memorarea, extragerea ºi analiza datelor,�IăUă�D�VH�SUHRFXSD�GH�PRGXO�în care vor fi utilizate datele.

*Server de aplicaþii infrastructura pentru o clasã de aplicaþii ce se executã pe treapta intermediarã.

Page 272: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

AvantajeStil în 3 trepte pentru aplicaþii Web

Baze de date performanþã, scalabilitate, disponibilitate

Utilizeazã în mod frecvent replicarea pentru performanþã, scalabilitate ºi disponibilitate.

Pot utiliza mecanismul de caching pentru performanþã suplimentarã.

Page 273: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

PLAN CURS

Familia de stiluri call-return

Stilul client-server

Stilul peer-to-peer

Stilul SOA (service oriented architecture)

Stilul în trepte � specializare pentru client-server

Arhitecturã aplicaþii Web � specializare pentru stilul în trepte

Arhitecturã aplicaþii Java EE � specializare pentru stilul în trepte

Page 274: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

Tehnologia Java EE

EJB (Enterprise Java Beans)� Defineºte un API care permite dezvoltatorilor sã creeze, sã

repartizeze ºi sã gestioneze la server aplicaþii bazate pe componente.

JSF(Java Server Faces)� Tehnologie pentru construirea de interfeþe utilizator din componente.

JSP (Java Server Pages)� Metodã pentru crearea de pagini Web dinamice.

Java Servlets� Mecanism de extindere a funcþionalitãþii la server, ce permite crearea

de conþinut dinamic.

JMS (Java Messaging Service)� Suport pentru transfer asincron de mesaje utilizând fie point-to-point

fie publish-subscribe ca stil de interacþiune.

Page 275: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

Tehnologia Java EE

JNDI (Java Naming and Directory Interface)� Serviciul de directori pentru Java EE, ce permite clientului ºi servlet-

urilor de pe treapta Web sã extragã referinþe la obiectele utilizator definite ca EJB.

JTA(Java Transaction Architecture) ºi JTS (Java Transaction Service)� Permite obiectelor EJB ºi clienþilor lor sã participe în procesãri

orientate pe tranzacþii.

JCA (Java EE Connector Architecture)� Arhitecturã standard pentru conectarea platformei Java EE la

sisteme EIS (Enterprise Information Sistems) eterogene.

� Include aplicaþii împachetate; exemple:� ERP (Enterprise Resource Planning)

� Sisteme CRM (Customer Relationship Management)

Page 276: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

Tehnologia Java EE

CAS / COM Bridge (Client Access Services) / (Component Object Model)

� Permite integrarea de aplicaþii COM ºi Java EE din cadrul unei reþele.

RMI over IIOP (Remote Method Invocation, Internet Inter-ORB Protocol)

� Oferã o implementare RMI peste IIOP de la OMG

� Oferã un cadru în care dezvoltatorii pot defini interfeþe remote între clienþi ºi server-e, pe care le pot implementa utilizând API-ul Java RMI.

JDBC (Java Database Connectivity)� Interfaþã uniformã transparentã la o gamã largã de baze de date

relaþionale.

� Bazã comunã din care se pot construi instrumente ºi interfeþe pe nivele superioare.

Page 277: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

Arhitecturã Java EE n-Tieredspecializare stil în trepte pentru tehnologia Java EE

�Browser-Based Client Applications (HTML, applets, DHTML/Scripting)

Java Client Applications

Windows/COM Client Applications

Web Server

ServletsJSPs

Application Components

EJBs

Container Services Components

(e.g JTS, JMS)

ERPs

CRMs

Mainframe TP System

RDBMs

Client Tier Web Tier Business Logic Tier

EIS Tier

HTTP

RMI JDBC

RMI over IIOP

CAS COM Bridge

Page 278: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

Java EE ��DERUGăUL�DUKLWHFWXUDOH

Treapta client � include

� Browser-e internet ce trimit cereri HTTP ºi FTP.

� Pagini HTML de la un alt server Web.

� Clienþi Java de sine stãtãtori (stand-alone) care�FRPXQLFă�GLUHFW�FX�FRPSRQHQWHOH�de pe treapta business.

� Obiecte Microsoft care comunicã direct cu componentele de pe treapta business.

Treapta Web ��H[HFXWă�XQ�VHUYHU�:HE�FH�JHVWLRQHD]ă�FHUHUL�GH�OD�FOLHQþi

� Rãspunde la cereri invocând servlet-uri sau JSP de pe platforma Java EE.

� Servlet-urile interogheazã treapta componentelor business pentru a obþine informaþiile ce vor fi returnate clientului.

� JSP sunt pagini HTML statice ce conþin fragmente de cod servlet invocate de mecanismul JSP.

Page 279: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

Java EE ��DERUGăUL�DUKLWHFWXUDOH

Treapta componentelor business � conþine nucleul logicii business în componente EJB care:

� Recepþioneazã cereri de la servlet-uri,

� Satisfac cererile accesând diverse surse de date,

� Sunt gãzduite într-un container EJB�FDUH�FRQWUROHD]ă�ºi monitorizeazã firele

de execuþie EJB.

Treapta EIS � conþine în mod tipic una sau mai multe baze de date ºi aplicaþii gãzduite pe server-e, pe mainframe-uri ºi/sau pe sisteme legacy.

� EJB interogheazã aceste depozite de date pentru a procesa cererile.

� Pentru accesarea bazelor de date se utilizeazã în mod tipic driver-e JDBC.

Page 280: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 54

Java EE � repartizarea componentelor aplicaþiei

Page 281: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 55

Java EE � artefactele aplicaþiei ºi organizarea lor

Page 282: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 56

Java EE - concluzii

Java EE este una din abordãrile tehnologice pentru construirea sistemelor n-tiered. Alte abordãri;

� CORBA (Common Object Request Broker Architecture) de la OMG Un broker al cererilor pentru obiecte (ORB) permite obiectelor sã-ºi publice interfeþele. Programele client ºi alte obiecte le pot localiza oriunde în reþea pentru a le solicita servicii.

� Arhitectura .NET are prevederi referitoare la construirea sistemelor formate din obiecte distribuite pe platforme bazate Windows.

Utilizarea Java EE nu exclude necesitatea unei arhitecturi !� Compromisurile arhitecturale trebuie analizate cu atenþie pentru a obþine un

design optim al arhitecturii aplicaþiei în raport cu cerinþele de calitate impuse.

În ciuda simplitãþii ºi puterii cadrului de implementare Java EE,�H[LVWă�PXOWH�decizii arhitecturale ce trebuie fãcute cu atenþie.� Majoritatea acestor decizii se vor face cu privire la partiþionare ºi asignare de

responsabilitãþi nivelelor intermediar ºi EIS.

Page 283: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 6

id2801868 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 284: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

PLAN CURS

Stiluri bazate pe evenimente

� Stiluri cu evenimente implicite

Stiluri cu date partajate

� Stilul repository pasiv

� Stilul blackboard

Page 285: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

Sisteme bazate pe evenimente - categorii

Evenimente explicite �evenimentele sunt trimise explicit la anumite elemente.

Evenimente implicite ��HYHQLPHQWHOH�sunt difuzate cãtre elemente. Elementele rãspund la evenimentele de care sunt

interesate.

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Comunicareasincronã

fãrã autoblocare

Page 286: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Obiect AObiect A

Obiect CObiect C

Obiect BObiect B

Invocare implicitã

vs.�,QYRFDUH�H[SOLFLWă

Obiect AObiect A op1

op2 op3

Invocare explicitã

Invocare implicitã

ev1

op3

op2

op1

Obiect BObiect B

Obiect CObiect C

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 287: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Stiluri bazate pe evenimente- semantici

� Elemente

� obiecte, fire de execuþie, procese

� Relaþii între elemente

� Comunicarea între componente (locale sau distribuite) se face prin evenimente.

� Topologie

� Procese concurente slab cuplate

� Modelul computaþional

� Sistem de procese sau obiecte independente care reacþioneazã

la evenimente generate în contextul lor ºi care genereazã la

rândul lor reacþii în alte componente ca efect al anunþãrii de noi

evenimente.

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 288: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Stiluri bazate pe evenimente- semantici

Semantici

� Evenimente implicite

� Emiþãtorii nu cunosc identitatea receptorilor

� Ordinea de execuþie este non-deterministã

� Evenimente explicite

� Emiþãtorii cunosc identitatea receptorilor

� Ordinea de execuþie poate fi anticipatã.

În ambele variante ale stilului, corectitudinea comportamentului oricãrui element ce emite

un eveniment nu depinde de corectitudinea comportamentului nici unuia dintre elementele care recepþioneazã evenimentul.

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 289: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

Implementãri la nivel de limbaj

Limbajul C

� signals � întreruperi software

� Reprezentate prin întregi pozitivi (signal.h)

� Pot fi generate automat sau pot fi trimise altor procese folosind apelul sistem kill(PID_proces_destinaþie)

� Este necesarã cunoaºterea destinatarului (PID/nume_proces)

� Variante de tratare a semnalului recepþionat:

� ignorare

� utilizare acþiune implicitã

� creare ºi utilizare funcþie special definitã pentru tratare semnal.

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 290: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

Visual Basic � limbaj orientat pe evenimente

� Componentele de interfaþã (Widget-uri) au proprietãþi, metode ºievenimente.

� Widget-urile trimit diferite evenimente în funcþie de interacþiunile utilizatorului, de timer-e, etc.

� Fiecare widget rãspunde la un set fixat de evenimente.

� Dezvoltatorii ataºazã cod la fiecare tip de eveniment al unui widget, cod ce va fi executat la apariþia evenimentului respectiv.

� Limbaj orientat pe evenimente, dar slab OO.

� Accesul la proprietãþile ºi metodele unui widget nu promoveazã un grad

superior de încapsulare.

Implementãri la nivel de limbaj

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 291: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

Java -�RIHUă�GRXă�PHFDQLVPH�GH�OXFUX�FX�HYHQLPHQWHOH.

1. Set predefinit de evenimente utilizabile în dezvoltarea interfeþei cu utilizatorul.

2. Mecanismul Observer / Observable pentru transmitere ºi recepþionare de evenimente.

� Un obiect Observer reacþioneazã prin apelul metodei update() atunci când este notificat de cãtre un obiect Observable.

� Dezvoltatorii trebuie sã scrie codul pentru implementarea metodei update().

� Suportã �late binding�: se pot adãuga ºi elimina obiecte Observer ºiObservable în timpul execuþiei.

� Simultan cu notificarea prin eveniment se pot trimite ºi obiecte ca parametrii.

Implementãri la nivel de limbaj

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 292: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Deºi implementãrile variazã, evenimentele reprezintã o caracteristicã

puternicã a limbajelor moderne.

� C++ are event ºi defineºte event source ºi event receiver.

� C# ���������XWLOL]HD]ă�event ºi delegate (suport pentru invocare anonomã)

� Ada 9X are interrupt ºi interrupt handler.

� SmallTalk-80, Visual SmallTalk implementeazã evenimentele în mod similar cu Observer / Observable de la Java.

Existã ºi alte implementãri sau extensii de limbaje pentru lucrul cu evenimente.

Implementãri la nivel de limbaj

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 293: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

JMS: Java Messaging Services

Mecanisme pentru lucrul cu evenimente pe platforma CORBA

ESB (Enterprise service bus) - middleware pentru SOA (Service-OrientedArchitecture)

Implementãri la nivel de platformã

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 294: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

Proiectarea sistemelor bazate pe evenimente

Sistemele orientate pe evenimente sunt proiectate în mod deliberat de cãtre arhitect.

În proiectarea acestui tip de sisteme arhitectul trebuie sã ia în considerare:

� Declaraþiile evenimentelor

� Structura evenimentelor

� Legãturile evenimentelor

� Anunþarea evenimentelor

� Concurenþa evenimentelor

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 295: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Declararea evenimentelor

Cum ?

� Set predefinit de evenimente

� Declaraþie staticã de eveniment

� Declaraþie dinamicã de eveniment

Unde ?

� Declaraþii centralizate

� Declaraþii distribuite

Sistemele cu evenimente oferã:

� înregistrare � înregistrare surse de evenimente ºi înregistrare interes pentru evenimente

� manageri de mesaje/evenimente � responsabili cu facilitarea comunicãrii

între elementele din sistem.

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 296: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Structurarea evenimentelor

Cum ?

� Nume sau valori simple asociate cu un eveniment

� Listã de parametrii

� Predefinitã

� Determinatã de tipul evenimentului

� Determinatã dinamic

Transferul datelor via evenimente

� prin listã de parametrii

� prin valoarea evenimentului

� ambele

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 297: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

Legarea evenimentelor

Cum ?

� Static

� Dinamic

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 298: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Anunþarea evenimentelor

Cum ?

� O singurã anunþare

� Anunþãri multiple

� Ambele

� Evenimente pierdute

� Evenimentele pierdute vor fi bufferat-e la nivel de element sau centralizat

� Coordonarea difuzãrii (anunþãrii) evenimentelor

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 299: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

Concurenþa evenimentelor

Ce sunt elementele din stil ? Cum trateazã acestea concurenþa ?

� Obiecte

� Procese

� Fire de execuþie

Cum sunt �furnizate� evenimentele ?

� Furnizare totalã (toate datele, la toate elementele)

� Furnizare selectivã (date parþiale, la unele elemente)

� Furnizare la grup

� Receptorii evenimentului sunt identificaþi pe baza grupului de care aparþin.

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 300: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

Analiza sistemelor bazate pe evenimente

Problematicã

� Durata de viaþã a componentelor în raport cu comunicarea/recepþionarea de evenimente.

� Sunt evenimentele anunþate la momente corespunzãtoare?

� Existã evenimente anunþate în momente nepotrivite?

� Legãturile eveniment-metodã sunt suficiente pentru a obþine comportamentul dorit pentru sistem?

� Existã posibilitatea de a nu înregistra componente suficiente sau componentele potrivite la un anume eveniment?

� Interferenþa componentelor

� Existã posibilitatea ca douã componente sã lucreze concurent

pe date partajate?

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 301: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

Modele pentru dispecerizarea evenimentelor

Ordinea de generare

� Utilizarea unei cozi de mesaje ºi dispecerizarea evenimentelor în ordinea în care au ajuns.

Ordine totalã

� Toate obiectele recepþioneazã evenimentele în aceeaºi ordine,�ordine ce reflectã ordonarea temporalã.

Ordine cauzalã

� Nici un eveniment nu este furnizat înainte de furnizarea tuturor evenimentelor ce au condus la generarea lui.

e1

e1

e2

e3

Ordine cauzalã � exemplu:

e3 nu trebuie furnizat înainte de e1.

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 302: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Atribute de calitate - discuþie

Atribute de calitate ce trebuie considerate la alegerea stilurilor orientate pe evenimente:

� Performanþa

� Reutilizabilitatea

� Testabilitatea

� Mentenabilitatea

� Disponibilitatea

� Modificabilitatea/scalabilitatea

� Integritatea conceptualã

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 303: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

Performanþa

� În general inhibatã, datoritã non-determinismului:

Ordinea execuþiilor operaþiilor din sistem este nedeterminatã

dificil de:

� garantat timpul de rãspuns,

� realizat planificarea activitãþilor

Reutilizabilitatea

� În general promovatã, deoarece elementele pot fi reutilizate simplu, prin înregistrare la evenimente.

� Elementele nu trebuie sã cunoascã identitatea altor elemente din

sistem.

Atribute de calitate - discuþie

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 304: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

Testabilitatea

Testarea este dificilã deoarece:

� Urmãrirea evenimentelor de la anunþarea la recepþionarea lor poate fi dificilã ºi poate necesita instrumente ºi/sau structuri speciale ale sistemului.

� Ordinea operaþiilor poate depinde de factori multipli ce influenþeazã generarea ºi recepþionarea evenimentelor.

� Datoritã non-determinismului, trecerea unui anumit test nu garanteazã corectitudinea sistemului.

Atribute de calitate - discuþie

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 305: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Mentenabilitatea

� În general promovatã, deoarece elementele lucreazã independent

fãrã a afecta alte componente (modificãrile tind sã fie locale).

� Poate fi afectatã de necesitatea unei coordonãri centralizate a:

� evenimentelor,

� înregistrãrilor la evenimente,

� politicilor de dispecerizare a evenimentelor.

Disponibilitate

� Posibilitatea pierderii de evenimente reduce disponibilitatea sistemului.

Atribute de calitate - discuþie

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 306: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Modificabilitatea / scalabilitatea

� În general promovatã, deoarece pot fi adãugate uºor la sistem elemente noi.

� Totuºi adãugarea de elemente noi va creºte overhead-ul ºi va afecta în final performanþa.

Integritatea conceptualã

� Separarea problemelor ºi integritatea conceptualã sunt, în general, promovate deoarece obiectele au un grad ridicat de independenþã.

� Evenimentele ºi politica de interacþiune pot fi separate clar de elementele ce interacþioneazã.

� Este dificil de modelat ºi analizat comportamentul la momentul execuþiei, datoritã non-determinismului.

Atribute de calitate - discuþie

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 307: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

PLAN CURS

Stiluri bazate pe evenimente

� Stiluri cu evenimente implicite

Stiluri cu date partajate

� Stilul repository pasiv

� Stilul blackboard

Page 308: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Evenimente implicite (sisteme Publish � Subscribe)

Componente:

Orice componentã C&C cu cel puþin un port publish sau subscribe*.

Conectori:

Conector publish-subscribe � cu rolurile announce ºi listen

Relaþii:

Attachment � port publish la rol announce; port subscribe la rol listen

Modelul computaþional:

Componentele se aboneazã la evenimente. La anunþarea unui eveniment de cãtre o

componentã, conectorul dispecerizeazã evenimentul la toþi abonaþii acestuia.

Un eveniment poate avea înregistraþi 0...n receptori.

*Obs. Orice componentã poate avea unul sau mai multe porturi din fiecare tip.

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Page 309: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Invocare implicitã ��YDULDQWă�D�HYHQLPHQWHORU�LPSOLFLWH

Componente cu interfeþe procedurale înregistreazã una din

proceduri la un eveniment.

La apariþia evenimentului în sistem, procedura înregistratã cu

acesta este invocatã automat (�implicit�).

Dacã existã mai multe componente ce au înregistrat proceduri cu un anumit eveniment, ordinea invocãrilor implicite nu este

specificatã.

Categorii ºi semantici

Exemple de implementãri pentru evenimente

Proiectarea sistemelor bazate pe evenimente

Discuþie asupra atributelor de calitate

Evenimente implicite (sisteme Publish � Subscribe)

Page 310: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

GUI � gesturile utilizator preluate de dispozitive fizice sunt tratate ca evenimente ºi sunt trimise la rutine corespunzãtoare de tratare a acestora.

Aplicaþii în stil MVC � componentele View sunt notificate la modificarea stãrii

componentei Model.

Medii de programare extensibile � instrumentele sunt coordonate prin evenimente

Mailing lists � abonare la subiecte de interes

Reþele sociale � notificare �friends� la modificarea unui site personal

Exemple de sisteme ce utilizeazã

stilul Publish - Subscribe

Page 311: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

PLAN CURS

Stiluri bazate pe evenimente

� Stiluri cu evenimente implicite

Stiluri cu date partajate

� Stilul repository pasiv

� Stilul blackboard

Page 312: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

Stiluri cu date partajate

Structurã de date centralã��reprezentând starea curentã a sistemului), �asupra cãreia opereazã un set de componente independente.

Componente:

Depozitar (repository) pentru memorarea (persistenþa) datelor centralizate.

Accesor date (proces, fir de execuþie, obiect), care�DFFHVHD]ă�GDWHOH�centralizate.

Conectori:

Connector accesare / modificare date

Relaþii :

Attach �-�LQWHUPHGLD]ă�FRQHFWDUHD�DFFHVRU�GDWH�OD�GHSR]LWDU.

Page 313: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

Stiluri cu date partajate

Topologie

Accesori date slab cuplaþi aflaþi în jurul sistemului de date partajate (unul sau mai multe depozitare).

Semantici

Accesorii scriu/citesc date.

Datele din depozitar sunt dinamice.

Structura datelor din depozitar este, în general,�VWDWLFă.

Tipuri de structuri: relaþionalã, OO, layered, ierarhicã.

Localizarea controlului corespunde unor ºabloane specifice (v. Sld. 33, Sld. 43)

Page 314: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

Stiluri cu date partajate

Atribute de calitate promovate

Scalabilitatea, datoritã decuplãrii ºi încapsulãrii accesorilor care simplificã

adãugarea de noi surse de cunoºtinþe.

Interoperabilitatea � referitoare la datele accesate în comun.

Atribute de calitate inhibate

Simplitatea ��WUHEXLH�JDUDQWDWă�H[FOuderea mutualã.

Performanþa ��FăXWDUHD�GDWHORU�HVWH�FRQVXPDWRDUH�GH�WLPS�ºi non-deterministicã.

Modificabilitatea ��GLILFLOă�GDFă�VXQW�QHFHVDUH�VFKLPEăUL�în structura datelor partajate.

Securitatea ��QHFHVLWDWHD�DVLJXUăULL�ºi verificãrii identitãþii accesorilor.

Page 315: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

Stiluri cu date partajate

Categorii de stiluri cu date partajate

Repository pasiv

� Controlul este distribuit

între accesori.

� Exemple: memorie partajatã, baze de date.

Blackboard

� Controlul este bazat pe starea

informaþiilor din depozitar.

� Exemple: baze de date �cu interogare continuã�,

triggere pe date.

Page 316: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

PLAN CURS

Stiluri bazate pe evenimente

� Stiluri cu evenimente implicite

Stiluri cu date partajate

� Stilul repository pasiv

� Stilul blackboard

Page 317: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

Stilul repository pasiv - variante

Memorie partajatã

Depozitarul central de date este în mod tipic în memoria volatilã (În puncte strategice ale execuþiei, starea se poate pãstra ºi pe medii de duratã mai mare).

Accesorii sunt strâns cuplaþi cu depozitarul.

Accesorii sunt fire de execuþie concurente, procesoare sau obiecte ce acceseazã depozitarul.

Accesorii opereazã independent unul de altul.

Controlul general este distribuit între accesori.

Page 318: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

Stilul repository pasiv - variante

Baze de date clasice

Depozitarul central pãstreazã starea datelor pe termen lung (persistenþa).

Accesorii sunt aplicaþii software, deseori aflate la distanþã faþã de

depozitarul central de date.

Accesorii opereazã independent asupra datelor din depozitar, în ce priveºte interogãrile ºi actualizãrile.

Controlul general este distribuit între accesori.

Existã suport pentru lucrul cu tranzacþii.

Page 319: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

Stilul repository pasiv - exemple

Baze de date clasice

Depozitar format din:

Baza de date

Sistemul de gestiune a datelor (DBMS)

� Oferã o interfaþã pentru extragere / manipulare date

� Oferã servicii pentru management date:

� tranzacþii

� securitate

� controlul concurenþei

� integritatea datelor

Page 320: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

PLAN CURS

Stiluri bazate pe evenimente

� Stiluri cu evenimente implicite

Stiluri cu date partajate

� Stilul repository pasiv

� Stilul blackboard

Page 321: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

Stilul blackboard

Stil flexibil pentru rezolvarea colaborativã a unei probleme.

Rezultat al cercetãrilor în domeniul inteligenþei artificiale.

Aplicabilitate în domeniul industrial la:

Procesare de semnale

Radare

Prelucrare de imagini

Procesarea vorbirii

Page 322: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

Stilul blackboard

Elemente

� depozitar (blackboard),

� surse de cunoºtinþe,

� control.

Relaþii între elemente

� Evenimente pentru notificarea surselor de cunoºtinþe.

� Flux de date transferat de sursele de cunoºtinþe cu depozitarul.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 323: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

Stilul blackboard

Topologie

� variabilã; sursele de cunoºtinþe legate direct ºi independent la depozitar.

Semantici

� Sursele de cunoºtinþe:

� Procese independente capabile sã rezolve probleme specifice.

� Lucreazã independent în zona lor de experizã pentru a rezolva împreunã o problemã

complexã.

� Nu interacþioneazã între ele în mod direct; nu cunosc ce alte surse de cunoºtinþe sunt active simultan.

� Depozitarul

� Partiþionat în regiuni, a.î. sursele de cunoºtinþe transferã date cu un anumit �nivel� de structurare ºi abstractizare.

� Elementul de control - este responsabil cu planificarea urmãtoarei surse de cunoºtinþe ce trebuie activatã.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 324: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

Stilul blackboard

Atribute de calitate promovate

� Legate în special de soluþionarea problemelor de inteligenþã artificialã : modificabilitate, scalabilitate, mentenabilitate, interoperabilitate, separabilitate calcule.

Atribute de calitate inhibate

� Simplitatea � dezvoltarea surselor de cunoºtinþe este complicatã ºi poate necesita expertizã

de domeniu superioarã.

� Performanþa� Fiind în mare mãsurã non-deterministice, este dificil de estimat durata obþinerii

rãspunsului.

� Problema de ansamblu este rezolvatã în manierã incrementalã, secvenþialã.

� Testabilitatea� Dificil de testat ºi de analizat corectitudinea aplicaþiei.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 325: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

Stilul blackboard - detalii

Cunoºtinþele din domeniul aplicaþiei sunt partiþionate ºi codificate într-o colecþie de componente numite surse de cunoºtinþe.

Elementele stilului:

Blackboard - depozitar organizat ierarhic în care se salveazã soluþiile generate de sursele de

cunoºtinþe.

Datele din depozitar:

� reprezintã starea completã (intermediarã /�ILQDOă) a soluþiei problemei,

� sunt deseori eterogene,

� sunt organizate ierarhic.

Surse de cunoºtinþe� Rãspund la modificãrile din starea blackboard-lui.

� Genereazã soluþii independente ºi scriu în blackboard soluþii complete sau parþiale.

Modulul de control (scheduler/control shell)

� Selecteazã (funcþie de logica aplicaþiei) o sursã de cunoºtinþe ºi o planificã pentru

execuþie.

� Determinã momentul în care problema este rezolvatã.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 326: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

Stilul blackboard - detalii

Topologie: (2 variante)

� Nu existã element explicit de control.

� Sursele de cunoºtinþe (KSs) sunt activate de starea blackboard-lui.

� Existã un element explicit de control.

� Sursele de cunoºtinþe sunt planificate/activate decãtre elementul de control, în urma monitorizãrii de

cãtre acesta a stãrii blackboard-lui.

Blackboard

KS1

KSn

::

Control

Citire/Monitorizare

stare

Planificare ºi

invocare surse de

cunoºtinþe

Blackboard

KS1

KSn

::

Proces Depozitar date Accesare date (read/write) Invocare

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 327: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

Stilul blackboard - detalii

Elementul BLACKBOARD

Structurã de date partajatã disponibilã surselor de cunoºtinþe.

� Depozitarul sistemelor blackboard serveºte ca memorie primarã (brutã) ce conþine date de intrare pentru sursele de cunoºtinþe, soluþii parþiale, alternative, soluþii finale.

� Elementul blackboard oferã mecanisme de comunicare ce permit realizarea de operaþii de citire ºi scriere de cãtre sursele de cunoºtinþe ºi de cãtre elementele de

control.

� Mecanismele pentru planificare, control ºi activare a surselor de cunoºtinþe pot fi implementate direct în blackboard sau în elemente externe acestuia.

� Modificãrile din conþinutul blackboard-lui genereazã notificãri cãtre surse de

cunoºtinþe, care vor reacþiona corespunzãtor la prezenþa sau la modificarea anumitor informaþii.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 328: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

Stilul blackboard - detalii

Elementul BLACKBOARD

Aplicaþiile tind sã aibã structuri elaborate ale blackboard-lui, cu nivele ierarhice de abstractizare.

� Datele din blackboard sunt organizate în regiuni care corespund diferitelor categorii de informaþii.

� Sursele de cunoºtinþe citesc ºi scriu informaþii din/în regiuni specifice.

� Aceste abstractizãri sunt utile proiectanþilor ºi faciliteazã cãutãri rapide ºi sistematice realizate de cãtre sursele de cunoºtinþe.

Date conþinute pot fi

� statice,

� dinamice � generate în timpul execuþiilor.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 329: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

Stilul blackboard - detalii

Elementele SURSE DE CUNOªTINÞE

Fiecare sursã de cunoºtinþe este specializatã în rezolvarea anumitor aspecte ale problemei de ansamblu.

� Funcþionare independentã de alte surse de cunoºtinþe; sursele de cunoºtinþe nu se cunosc între ele.

� Fiecare sursã de cunoºtinþe contribuie la soluþionarea problemei.

� Sursele de cunoºtinþe sunt capabile sã transfere date cu elementul blackboard.

� Sursele de cunoºtinþe sunt capabile sã utilizeze anumite informaþii din blackboard pentru a construi sau a rafina cunoºtinþe.

� În unele aplicaþii sursele de cunoºtinþe culeg date din exterior ºi le utilizeazã pentru

a adãuga cunoºtinþe în blackboard.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 330: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

AcþiuneCondiþieinvocã, declanºeazã,

executã...

Sursã de cunoºtinþe (KS)

Stilul blackboard - detalii

Elementele SURSE DE CUNOªTINÞE

Implementãrile sunt partiþionate pe bazã de condiþii ºi acþiuni.

� Specificã o condiþie în care sursa de cunoºtinþe contribuie la rezolvarea problemei.

� La îndeplinirea condiþiei se invocã

acþiunea corespunzãtoare.

� Modificare sau plasare de cunoºtinþe noi în blackboard.

� Acþiunile pot include noi condiþii.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 331: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

Stilul blackboard - detalii

Elementul de CONTROL

Responsabilitãþile generale ale elementului de control:

� Dirijarea întregului proces de rezolvare a problemei prin coordonarea surselor de cunoºtinþe în a rãspunde la modificãrile din conþinutul blackboard.

� Pe baza rezultatelor�DFWLYăULL�XQHL�VXUVH�GH�FXQRºtinþe, elementul de control poate

� determina sursa de cunoºtinþe cea mai potrivitã a fi activatã la pasul urmãtor,

� planifica execuþia surselor de cunoºtinþe,

� estima fidelitatea soluþiei,

� finaliza rezolvarea problemei.

Controlul poate sã difere în mod substanþial la diferite implementãri ale

stilului.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 332: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

Stilul blackboard

Situaþii în care se sugereazã utilizarea stilului blackboard:

Existã mai multe moduri de a rezolva problema.

Existã mai multe rãspunsuri corecte.

Rãspunsul cel mai bun poate varia ºi depinde de mai mulþi factori.

Sunt necesare expertize diverse pentru soluþionarea problemei.

Existã incertitudini, erori ºi variaþii la nivelul surselor de date disponibile (ex. Raport scãzut între semnal ºi zgomot).

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 333: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

Stilul blackboard � problematica proiectãrii

Reprezentare date - Comunicarea între elemente se face prin intermediul informaþiilor din blackboard.

Sensibilizare - Elementele trebuie sã devinã conºtiente de evenimentele relevante.

Investigare - Crearea de elemente care pot gãsi informaþii relevante în mod eficient.

Interacþiune - Crearea de elemente capabile sã utilizeze datele intermediare produse de alte elemente.

Integrare - Combinarea sub forma unui rãspuns coeziv a rezultatelor produse de diferite elemente.

Coordonare - Determinarea elementelor sã-ºi concentreze activitãþile pe lucrurile potrivite la momentul potrivit.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 334: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

Stilul blackboard � problematica proiectãrii

Proiectarea surselor de cunoºtinþe

� Codificarea ºi reprezentarea cunoºtinþelor

� Formatul de reprezentare a datelor specifice

� Formate de date recunoscute

� Mecanisme de preluare a datelor din blackboard

� Posibile surse externe de date

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 335: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

Stilul blackboard � problematica proiectãrii

Proiectarea surselor de cunoºtinþe (cont.)

� Împachetarea codului sub formã de fir de execuþie, proces sau obiect

� Nivelul de detaliu al contribuþiei la blackboard (doar rezultatul, expunerea

rezultatelor intermediare, etc.); are impact asupra performanþei.

� Modul de gãsire a soluþiilor: în paralel, întreþesut, secvenþial.

� Concurenþa îmbunãtãþeºte performanþa dar creºte foarte mult complexitatea sistemului.

� Unele probleme nu pot fi rezolvate cu o abordare concurentã.

� Modul de înºtiinþare despre modificãrile din blackboard

� Interogare

� Evenimente

� Apel de metodã

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 336: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 54

Stilul blackboard � problematica proiectãrii

Proiectarea elementului blackboard

� Reprezentarea informaþiilor :

� compromis între expresivitatea reprezentãrilor înþelese de puþine surse de cunoºtinþe ºi reprezentãri mai generale înþelese de toate sursele de cunoºtinþe.

� abstractizãri de reprezentare mai expresive au impact negativ asupra performanþei.

� Organizarea ºi structurarea datelor

� Rolul jucat în controlul sistemului : controlul poate fi inclus în elementul blackboard sau poate fi realizat de alt element din sistem.

� Gestionarea relaþiilor : detectarea ºi eliminarea informaþiilor duplicat.

� Gestionarea grupãrii atributelor : detectarea de atribute similare în obiecte diferite ºi gruparea lor într-un singur obiect.

� Gestionarea propagãrii valorilor : detectarea de modificãri ale valorilor din

informaþiile înrudite ºi reacþionarea în mod corespunzãtor.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 337: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 55

Stilul blackboard � problematica proiectãrii

Proiectarea controlului

� Implementarea controlului într-un element separat sau în blackboard �compromis referitor la separarea problemelor ºi modificabilitate.

� Abordarea arbitrãrii surselor de cunoºtinþe: Planificare vs. Selectarea urmãtoarei surse de cunoºtinþe.

� Maximizarea progresului soluþionãrii problemei ºi minimizarea efortului de calcul.

� Determinarea momentului obþinerii soluþiei � necesitã suficiente informaþii despre blackboard fãrã însã a avea expertiza colectivã a surselor de cunoºtinþe.

� Codificarea rãspunsului (dificilã)

� Uºor de construit sisteme blackboard cu criterii de terminare suboptime.

� Soluþia idealã e mai uºor de codificat decât soluþiile practice suficiente.

� Multe obiective ºi soluþii sunt bazate pe euristici.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 338: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 56

Stilul blackboard � problematica proiectãrii

Proiectarea controlului (cont.)

Modelul de rezolvare a problemei utilizat:

� Raþionament backward ��GH�OD�VWDUHD�ILQDOă�FăWUH�VWDUHD�LQLþialã.

� Raþionament forward � de la starea iniþialã cãtre atingerea obiectivului.

� Raþionament oportunistic

� Începe cu un set de fapte cunoscute.

� Continuã în funcþie de direcþia care pare cea mai productivã.

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 339: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 57

Stilul blackboard � exemplu

Control

Surse de cunoºtinþe

Condiþie

Acþiune

Blackboard Monitor

Coadã

Condiþie

Acþiune

Condiþie

Acþiune

Control Planificator

Blackboard

Strat n

:

Strat 3

Strat 2

Strat 1

date

control

Semantici ºi atribute de calitate

Detalii

Problematica proiectãrii

Page 340: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 7

id13341924 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 341: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

PLAN CURS

Perspectiva staticã � module views

� Stilul decomposition

� Stilul uses

� Stilul generalization

� Stilul layered

� Stilul aspects

� Stilul data model

Perspectiva alocãrii � allocation views

� Stilul deployment

� Stilul install

� Stilul work assignment

Page 342: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

Perspectiva staticã � module views

Perspectiva staticã � modul în care sistemul este structurat ca set

de unitãþi de implementare (cod).

Vederile reprezintã modulele sistemului. Tipul de vedere este

Module Viewtype.

Tipuri elemente :

� modul ��XQLWDWH�GH�LPSOHPHQWDUH�D�XQXL�VHW�FRHUHQW�GH�responsabilitãþi

Tipuri relaþii:

� is part of � descompunere în submodule/subsisteme

� depends on � uses, allowed to use, crosscuts, data relationship

� is a � generalizare, realizare interfaþã

Page 343: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Perspectiva staticã � module views

Module views ilustreazã:

structura sistemului � descompus în unitãþi de cod

�LSRWH]H�DVXSUD�VHUYLFLLORU�RIHULWH�GH�PRGXOH

agregarea unitãþilor în ansamble

structurile globale de date (afectate de sau cu impact asupra mai multor module)

Page 344: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Perspectiva staticã � module views

Utilitate

Schiþã (plan, model) pentru construirea codului

Definirea alocãrii sarcinilor, timpului, bugetului de dezvoltare

Planificarea dezvoltãrii incrementale

Analiza trasabilitãþii cerinþelor (îndeplinirea cerinþelor prin colaborarea modulelor)

Analiza impactului modificãrilor (pe baza relaþiilor dintre module)

Explicarea funcþionalitãþii sistemului

Explicarea structurii codului

Ilustrarea structurii informaþiilor persistente

Page 345: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Perspectiva staticã � module views

Modul ��SURSULHWăþi tipice

Nume

Set coerent de responsabilitãþi� Acþiunile realizate

� Cunoºtinþele gestionate

� Deciziile

� Rolul în cadrul ansamblului sistemului, relativ la funcþionalitate ºi atribute de calitate.

Interfeþele ºi vizibilitatea acestora

Informaþii de implementare� Corespondenþa cu unitãþile de cod sursã (fiºiere cod, date, test, configurare)

� Informaþii testare (plan, cazuri de testare, structuri, date)

� Informaþii management (anticipare buget, grafic)

� Constrângeri de implementare

Proprietãþi specifice stilului

Page 346: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

PLAN CURS

Perspectiva staticã � module views

� Stilul decomposition

� Stilul uses

� Stilul generalization

� Stilul layered

� Stilul aspects

� Stilul data model

Perspectiva alocãrii � allocation views

� Stilul deployment

� Stilul install

� Stilul work assignment

Page 347: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

Stilul decomposition

Definirea structurii sistemului în termeni de module ºi submodule ale acestora.

Primul pas în dezvoltarea modelului arhitectural. Defineºte modulele ce apar în restul vederilor statice ºi organizarea lor.

Tipuri de elemente : modul, subsistem

Tipuri de relaþii : is part of

Constrângeri :

nu sunt permise bucle în graful descompunerii

un modul poate fi conþinut într-un singur modul

Figure from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 348: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

Stilul decomposition

Subsistem (grup de module) ��SDUWH�D�XQXL�VLVWHP�FDUH:

Implementeazã un subset coeziv al funcþionalitãþii sistemului

Poate fi executat ºi testat independent (corespunde unui grup de componente)

Util în dezvoltare ºi repartizare incrementalã.

Obs.

Subsisteme diferite pot avea pãrþi comune

Nu orice parte a unui sistem este subsistem (ex. bibliotecã cu funcþii utilitare)

Page 349: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Stilul decomposition

Criterii de descompunere:

Îndeplinire atribute de calitate

Ex. Modificabilitate aplicarea principiului de ascundere a informaþiilor încapsulare aspecte modificabile în module separate �ORFDOL]DUHD�PRGLILFăULORU.

Decizii de reutilizare

Reutilizare �UHVSRQVDELOLWăþi predefinite �DORFDUHD�UHVWXOXL�GH�UHVSRQVDELOLWăþi.

Implementare linii de produse software � diferenþiere module comune de module variabile.

Repartizare sarcini ��GH]YROWDUH�SDUDOHOă; competenþe echipã.

Page 350: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

Stilul decomposition

Notaþii:

Informale

casete cu nume, incluse

liste identate

UML

pachete ºi clase

subsisteme

adnotãri ��UHVSRQVDELOLWăþile

stereotipuri - informaþii suplimentare de tip

Figures from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 351: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

PLAN CURS

Perspectiva staticã � module views

� Stilul decomposition

� Stilul uses

� Stilul generalization

� Stilul layered

� Stilul aspects

� Stilul data model

Perspectiva alocãrii � allocation views

� Stilul deployment

� Stilul install

� Stilul work assignment

Page 352: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Stilul uses

Defineºte relaþii de dependenþã între module.

Tipuri de elemente : modul, subsistem

Tipuri de relaþii : uses (specializare a relaþiei depends on)

A uses B = A depinde de existenþa ºi corectitudinea lui B.

Ex. A utilizeazã un dispozitiv partajat lãsat într-o stare utilizabilã de cãtre B

A utilizeazã un rezultat lãsat de B într-o variabilã partajatã

A sleeps�SkQă�FH�%�WULPLWH�XQ�VHPQDO�awaken.

Contra Ex: A calls B (exception handler) - - B nu influenþeazã corectitudinea lui A.

Page 353: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Stilul usesNotaþii: Informale UML DSMboxes and lines pachete, clase, subsisteme Dependency Structure Matrixtabelar asociere stereotipatã

Figures from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 354: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

Stilul uses

Utilitate importantã:

Suport pentru dezvoltare ºi repartizare incrementalã:

Definire increment pe bazã de subset coeziv construit ca închiderea tranzitivã a unui

modul în raport cu relaþia uses.

Figure from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 355: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Corespondenþã vederi

Specificaþii sistem: Acceptã flux de caractere pe intrare. Produce flux de caractere pe ieºire conform

unei configuraþii date.

stdiofiecare conductã

(pipe)

merge, config, stdio

Merge

to_upper, config, stdio

To_upper

to_lower, config, stdio

To_lower

split, config, stdio

Split

mainsistemul

Module view

C&C view

Maparea elementelor vederilor

Figure from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 356: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

PLAN CURS

Perspectiva staticã � module views

� Stilul decomposition

� Stilul uses

� Stilul generalization

� Stilul layered

� Stilul aspects

� Stilul data model

Perspectiva alocãrii � allocation views

� Stilul deployment

� Stilul install

� Stilul work assignment

Page 357: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

Stilul generalization

Defineºte relaþii de generalizare/specializare între module.

Generalizare ��FDSWXUDUH�WUăVăWXUL�FRPXQH

Specializare � capturare variaþii

Extindere ��DGăXJDUH/eliminare/modificare specializãri

Evoluþia trãsãturilor comune ��PRGLILFDUH�JHQHUDOL]ăUL

Tipuri de elemente : modul

Tipuri de relaþii : is a

Constrângeri : nu sunt permise cicluriNu se recomandã moºtenirea multiplã!

Page 358: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

Stilul generalization

Notaþii:

UML

interfeþe ºi clase

generalizare clasã / interfaþã

realizare interfaþã

Figures from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 359: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Stilul generalization

Utilizare � în modele OO

Proiectarea incrementalã a unui modul prin extensii succesive

Modelare variaþii prin modificãri locale

Reutilizarea abstractizãrilor

Page 360: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

PLAN CURS

Perspectiva staticã � module views

� Stilul decomposition

� Stilul uses

� Stilul generalization

� Stilul layered

� Stilul aspects

� Stilul data model

Perspectiva alocãrii � allocation views

� Stilul deployment

� Stilul install

� Stilul work assignment

Page 361: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

Stilul layered

Defineºte seturi coezive de servicii (grupuri de module) ºi permisiuni de utilizare între acestea.

Portabilitate � la nivel de strat (layer)

Modificabilitate � izolare implementare strat

Tipuri de elemente : strat - layer (grup de module ce oferã un set coeziv de servicii)

Tipuri de relaþii : allowed to use

A is allowed to use �%�= Implementarea oricãrui modul din stratul A poate utiliza

oricare din facilitãþile publice oferite de stratul B.

Figure from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 362: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Stilul layered

Constrângeri :

un modul aparþine unui singur strat (layer)

existã cel puþin 2 straturi

relaþia nu e circularã

un element software de pe un strat poate utiliza elemente {din orice strat inferior, doar elemente de pe stratul imediat inferior}.

un element de pe un strat {poate, nu poate} utiliza un element de pe acelaºi strat.

Page 363: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Stilul layered

Criterii grupare:

Se anticipeazã evoluþie independentã

Nivele de competenþe necesare în dezvoltare

Ex. Presentation layer asignat unei echipe competente în utilizarea tehnologiilor GUI

Nivele de reutilizare

Nivele de abstractizare

Necesitãþi de portabilitate

Layere-le inferioare sunt independente de cele superioare.

Fiecare layer prezintã o interfaþã care ascunde dependenþele de layere-le inferioare.

Page 364: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

Stilul layered

Notaþii:

Informale

Stivã cu/farã sãgeþi

Straturi segmentate

Inele concentrice

Straturi transversale

Straturi tridimensionale

UML

pachete stereotipate

dependenþã stereotipatã

Reprezentare:

�Straturi

�Conþinut straturi

�Relaþii : între straturi, între segmente

Figures from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 365: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Stilul layered

Mecanismul call-back:

Invocare dintr-un modul de pe nivel inferior a unui handler de eroare/eveniment de pe nivel superior.

Ex. Manevrã utilizator (click mouse) : întrerupere hardware → handler la nivelul SO (driver mouse) →

handler la nivelului aplicaþiei (modul cod corespunzãtor).

Nu violeazã constrângerile stilului deoarece funcþionarea corectã a

hardware-lui nu depinde de existenþa ºi funcþionarea corectã a SO, iar funcþionarea corectã a SO nu depinde de existenþa ºi funcþionarea corectã

a aplicaþiei.

Hardware

SO

Aplicaþie

allowed to use

callback

Key

layer

Page 366: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Stilul layered

Utilizare DSM pentru depistare dependenþe care violeazã semanticile

stilului.

(a) Allow to use doar pentru nivelul imediat inferior.

(b) Allow to use pentru orice nivel inferior.

Figures from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 367: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

Comparaþie: layers vs. tiers

Structuri multistrat (layers) vs. structuri în trepte (tiers).

Elementele unei structuri multistrat sunt orientate pe cod ºi sunt reprezentate cu vederi de tip modular (ex. biblioteci).

Straturile dispar deseori la execuþie.

Elementele de tip trepte sunt procese/fire de execuþie care sunt vizibile la momentul execuþiei; sunt reprezentate în vederi de tip C&C.

EXEMPLU

Aplicaþie

Servicii comune

Abstractizãri SO

Fie urmãtoarele trei straturi�

dupã compilare�

rezultã � structurã vizibilã laexecuþie�

Data Tier

Broker

UI

PERSPECTIVA STATICÃ PERSPECTIVA DINAMICÃ

Page 368: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

Comparaþie: layers vs. decomposition

Avionics system

Hardware-hiding module Software-decission hiding module

Behavior-hiding module

Figure from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 369: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

PLAN CURS

Perspectiva staticã � module views

� Stilul decomposition

� Stilul uses

� Stilul generalization

� Stilul layered

� Stilul aspects

� Stilul data model

Perspectiva alocãrii � allocation views

� Stilul deployment

� Stilul install

� Stilul work assignment

Page 370: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

Stilul aspects

Defineºte module ce implementeazã interese transversale ºi relaþii ale acestora cu restul modulelor.

Interese transversale � ex. : controlul accesului, managementul tranzacþiilor, jurnalizare

Modificabilitate ��VLPSOLILFDUHD�PRGXOHORU�FH�LPSOHPHQWHD]ă�IXQFþionalitate business: extragerea codului ce implementeazã interes transversal ºi plasarea acestuia într-un modul separat (aspect).

Tipuri de elemente : aspect (tip modul specific AOP), modul clasic

Tipuri de relaþii : crosscutts � leagã modul aspect de alt modul

Constrângeri :

un modul aspect nu se poate lega cu el însuºi.

Page 371: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

Notaþii: UML

Aspect���clasã stereotipatã

Pointcut specification (lista modulelor afectate) : comentariu descriptiv sau relaþie stereotipatã

Stilul aspects

Figures from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 372: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

PLAN CURS

Perspectiva staticã � module views

� Stilul decomposition

� Stilul uses

� Stilul generalization

� Stilul layered

� Stilul aspects

� Stilul data model

Perspectiva alocãrii � allocation views

� Stilul deployment

� Stilul install

� Stilul work assignment

Page 373: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

Stilul data model

Descrie structura staticã a informaþiilor în termeni de entitãþi ºi relaþii între acestea.

Nivele de abstractizare:

conceptual

logic

fizic

Tipuri de elemente : data entity � obiect cu informaþii ce trebuie reprezentate în sistem

Tipuri de relaþii : asociere, generalizare/specializare

Constrângeri :

De evitat dependenþele funcþionale.

Page 374: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

Stilul data model

Notaþii:

ERD (Entity-Relationship Diagram)

�crow�s foot� ERD

UML

Diagramã clase

Figures from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 375: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

Stilul data model

Model conceptual

- domeniul problemei

Model logic

- conformarea cu o tehnologie de management (ex. relaþional, OO)

Model fizic

-detalii de implementare

-optimizãri

Evoluþie model date

Figures from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 376: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

PLAN CURS

Perspectiva staticã � module views

� Stilul decomposition

� Stilul uses

� Stilul generalization

� Stilul layered

� Stilul aspects

� Stilul data model

Perspectiva alocãrii � allocation views

� Stilul deployment

� Stilul install

� Stilul work assignment

Page 377: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

Perspectiva alocãrii � allocation views

Perspectiva alocãrii � modul în care sistemul se relaþioneazã cu

structurile (software ºi non-software) din contextul�VăX.

Vederile reprezintã modul de alocare a structurilor arhitecturii software pe structurile (software ºi non-software) din contectul sistemului. Tipul de vedere este Allocation Viewtype.

Tipuri elemente :

� element software ��FDUDFWHUL]DW�GH�SURSULHWăþi solicitate contextului

� element de context ��DUH�SURSULHWăþi oferite sistemului

Tipuri relaþii:

� allocated to � un element software este alocat unui element de context.

Page 378: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

Perspectiva alocãrii � allocation views

Stilurile fundamentale ale perspectivei alocãrii.

Figure from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 379: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

PLAN CURS

Perspectiva staticã � module views

� Stilul decomposition

� Stilul uses

� Stilul generalization

� Stilul layered

� Stilul aspects

� Stilul data model

Perspectiva alocãrii � allocation views

� Stilul deployment

� Stilul install

� Stilul work assignment

Page 380: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

Stilul deployment

Defineºte amplasarea componentelor ºi conectorilor arhitecturii software pe infrastructura hardware/software.

Tipuri de elemente :

software : componentã, conector

de context : procesor, memorie, disk reþea (router, canal comunicare, firewall, bridge)

Tipuri de relaþii : allocated to, migrates to, copy migrates to, execution mogrates to (alocare dinamicã)

Page 381: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

Stilul deployment

Utilitate:

Analiza ºi îmbunãtãþirea unor atribute de calitate

Performanþa Echilibrare încãrcare

Diminuare trafic (volumul ºi frecvenþa comunicãrilor între elemente de infrastructurã)

Creºterea performanþei infrastructurii (adãugare/înlocuire elemente de infrastructurã)

Disponibilitatea ºi fiabilitatea Duplicate ale componentelor software Migrarea componentelor software

Securitatea Limitarea serviciilor accesibile pe fiecare gazdã Limitare acces la zone sensibile (folosind firewall, router, bridge) Masuri de securitate la nivel fizic

Planificarea testãrii ºi integrãrii sistemului

Evaluare costuri

Page 382: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

Stilul deployment

Notaþii:

UML

Deployment diagram

Formale

AADL (Architecture Analysis and Design Language)

SysML (System Modelling Language)

Figure from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Page 383: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

PLAN CURS

Perspectiva staticã � module views

� Stilul decomposition

� Stilul uses

� Stilul generalization

� Stilul layered

� Stilul aspects

� Stilul data model

Perspectiva alocãrii � allocation views

� Stilul deployment

� Stilul install

� Stilul work assignment

Page 384: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

Stilul install

Defineºte organizarea componentelor arhitecturii software ca structurã

de fiºiere.

Tipuri de elemente :

software : componentã

de context : element configuraþie (fiºier, folder)

Tipuri de relaþii :

allocated to -�FRPSRQHQWă�DORFDWă�OD�HOHPHQW�FRILJXUDþie

containment � element configuraþie conþinut în element cofiguraþie

Page 385: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

Stilul install

Utilitate:

Creare de proceduri pentru build-and-deploy

Navigare/cãutare în structura de fiºiere a sistemului instalat

Selectare ºi configurare fiºiere pentru construirea unui pachet specific de instalare (ex. o anumitã versiune)

Actualizarea ºi configurarea fiºierelor unei versiuni cu instalãri multiple

Identificare fiºier lipsã sau defect

Proiectarea ºi implementarea unei caracteristici de �actualizare��DXWRPDWă

Page 386: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

Stilul install

Notaþii: UML informale <<artifact>> - element configuraþie<<manifest>> - relaþia containment

Figures from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

*.jar � Java archive

*.war � Web archive

*.ear � Enterprise archive

Page 387: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

PLAN CURS

Perspectiva staticã � module views

� Stilul decomposition

� Stilul uses

� Stilul generalization

� Stilul layered

� Stilul aspects

� Stilul data model

Perspectiva alocãrii � allocation views

� Stilul deployment

� Stilul install

� Stilul work assignment

Page 388: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

Stilul work assignment

Defineºte repartizarea componentelor arhitecturii software la echipele de dezvoltare.

Tipuri de elemente :

software : modul

de context : unitate organizaþionalã (persoanã, echipã, departament, subcontractor)

Tipuri de relaþii :

allocated to

Page 389: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

Stilul work assignment

Utilitate:

Repartizarea activitãþilor de dezvoltare

Definirea instrumentelor ºi contextelor de dezvoltare

Managementul resursei umane

Bazã pentru divizarea sarcinilor (WBS)

Bazã pentru estimarea bugetului ºi a graficului de realizare a produsului software

Page 390: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

Stilul work assignment

Notaþii: informale

Figure from : Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, Documenting Software Architectures: Views and Beyond, Addison Wesley Longman, 2010

Provenite din vederea descompunerii (stilul decomposition)

Page 391: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

Alte stiluri ale alocãrii

Stilul implementation � repartizarea artefactelor de dezvoltare (clase, programe, script-uri,

cazuri de testare, fiºiere make, documentaþie, ...) pe structura de fiºiere a contextului de dezvoltare

Stilul data stores ��UHSDUWL]DUHD�HQWLWăþilor de date (ex. tabele) pe servere hardware

Specializãri ale stilului deployment pentru tehnologie

� Microsoft (Tiered Distribution)

� IBM�s WebSphere �topologies�

Specializãri ale stilului work assignment

� Stilul platform � repartizare artefacte de dezvoltare la locaþii de dezvoltare cu platforme specializate

� Stilul competence-center � repartizare artefacte de dezvoltare pe centre de competenþã

� Stilul open-source � repartizare artefacte de dezvoltare pe dezvoltatori independenþi, în conformitate cu o strategie de integrare tehnicã.

Page 392: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 8

id3549734 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 393: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

Procesul de proiectare arhitecturalã

Stakeholder-i

arhitect

Decizii de

proiectare

Constrângeri

de proiectare

Cerinþe ºi nevoi

nestructurate

Cic

lul d

e in

fluenþe

Ghid pentru arhitect

Constrângeri business ºi tehnice

Atribute de calitateFuncþionalitate globalã

Page 394: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

Proiectarea arhitecturalã

Proiectul arhitecturii (design-ul arhitectural)

Este primul artefact al proiectãrii

La trecerea de la CE este necesar la CUM se realizeazã.

Activitãþile arhitectului software:

Partiþioneazã sistemul în elemente

Defineºte responsabilitãþile elementelor

Defineºte relaþiile�GLQWUH�HOHPHQWH

Creazã documentaþia

Proiectarea arhitecturalã este influenþatã de:

Organizaþie

Caracteristicile produsului

Procesul de dezvoltare de software

Repetã (de câte ori e necesar)

Page 395: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Influenþa caracteristicilor produsului

Exemplu: caracteristica : Complexitatea sistemului

Arhitectura sistemelor complexe este ierarhicã:

Spaþiul de proiectare al unui arhitect este element pentru alt arhitect

Poate necesita utilizarea arhitecturii întregului sistem/întreprindere

Necesitã echipe de arhitecþi

Plasarea în context:

Arhitectura întreprinderii

Arhitectura sistemului

Arhitectura software-lui

Proiectul de detaliu pentru software

CONSTRÂNGE

Page 396: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Influenþa factorilor organizaþionali

Constrângeri impuse de :

� Încadrarea într-un grafic al livrabilelor

� Dezvoltare distribuitã

� Dimensiunea organizaþiei

� Structura organizaþiei

Arhitectul trebuie sã înþeleagã factorii organizaþionali ºi impactul lor asupra arhitecturii sistemului software.

Page 397: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Influenþa ciclului procesului de dezvoltare de software

Proiectarea arhitecturalã poate fi utilizatã în orice model de proces de dezvoltare de software:� iterativ� waterfall, etc.

Proiectarea arhitecturalã poate începe imediat ce au fost identificate câteva cerinþe:

� Nu este necesarã identificarea tuturor cerinþelor înainte de a începe proiectarea arhitecturalã.

� Proiectul arhitecturii va permite descoperirea de cerinþe necunoscute sau puþin înþelese ºi poate ajuta, de asemenea, la rafinarea cerinþelor.

� Se recomandã ca proiectarea arhitecturalã sã fie iterativã, indiferent de modelul procesului software.

Page 398: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

Pre- ºi Post- condiþii ale procesului de proiectare a arhitecturii

Intrãri � cerinþe ºi constrângeri (architectural drivers)

� Cerinþe funcþionale de nivel superior (generale).

� Cerinþe pentru atributele de calitate.

� Constrângeri tehice ºi business.

Ieºiri

� Descompunerea arhitecturalã: elemente, responsabilitãþi, relaþii ºiinterfeþe

� Documentaþia :

� reprezentãri ale arhitecturii din cele 3 perspective fundamentale

� date, motivaþii, prozã descriptivã, etc.

Page 399: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

Cerinþe funcþionale ºi constrângeri

Cerinþele funcþionale de nivel superior sunt acele cerinþe funcþionale care au impact asupra arhitecturii

� Descrierile textuale ale comportamentului obligatoriu al sistemului (...�shall�...).

� Cazurile de utilizare ce descriu modul în care opereazã sistemul.

Constrângerile includ

� Constrângerile tehnice - devin cerinþe în care deciziile de proiectare sunt pre-specificate.

� Constrângerile business sau programatice -�QX�VXQW�GH�QDWXUă�tehnicã dar au un impact indirect profund asupra proiectului

arhitecturii.

Page 400: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

Atribute de calitate

Cerinþele pentru atributele de calitate sunt deseori derivate din specificaþii abstracte

� �Competitivitate pe o piaþã cu costuri scãzute.�

� �Sistemul trebuie sã fie sigur.�

� �Sistemul trebuie sã fie modificabil.�

QAW (Quality Attribute Workshop) este o tehnicã bunã pentru

obþinerea de scenarii iniþiale pentru atributele de calitate, DAR

� De obicei se obþin doar puncte de pornire bune� lipsesc detalii necesare pentru a sprijini proiectarea.

� Se ocupã doar de proiectare preliminarã, prototipare ºi/sau dialog cu stakeholder-ii.

Page 401: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Rafinare scenariu pentru atribut de calitate

Exemplu de cerinþã pentru un atribut de calitate:

�Un mesaj neanticipat este recepþionat de un proces al sistemului în timpul funcþionãrii

normale. Procesul trebuie sã informeze operatorul ºi sã continue operarea în mod normal, fãrã a avea perioade de nefuncþionare.�

Atributul de calitate vizat �����

Este o descriere rezonabilã a acestuia (în sensul cã se poate proiecta o arhitecturã

utilizând acest scenariu) ?

Arhitectul va rafina scenariile iniþiale imature pentru atributele de calitate ºi va defini scenarii de caz :

Exemplu:�Indicatorul de eroare de la rutina de acces a discului produce: Un mesaj ce va fi trimis la operator Comutarea sistemului în starea anterioarã corectã

Re-iniþializarea discului în background.�

Page 402: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

Rafinare continuã

Se pot utiliza componentele scenariului pentru atribute de calitate (v.curs 3 slide

19)�SHQWUX�UDILQDUHD�FRQWLQXă�D�VFHQDULLORU�SHQWUX�DWULEXWHOH�GH�FDlitate.

� Sursã pentru stimul � entitatea care a generat un stimul

� Stimul � o condiþie care afecteazã sistemul

� Context � contextul (referitor la sistem) în care a apãrut stimulul

� Artefact � elementul sistemului ce a fost stimulat de cãtre stimul

� Rãspuns � activitatea ce rezultã în sistem din cauza stimulului

� Mãsuri ale rãspunsului � mãsura prin care va fi evaluat rãspunsul sistemului la stimul

Se rafineazã scenariile atributelor de calitate pe mãsurã ce se analizeazã, se descompune ºi/sau se modificã arhitectura sistemului software.

Page 403: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

Cerinþe ºi constrângeri vs. specificaþii de sistem

Nu sunt necesare specificaþii detaliate înainte de a se începe proiectarea arhitecturalã.

� Pe mãsurã ce se exploreazã ºi se analizeazã cerinþele ºi constrângerile în dialog cu stakeholder-ii, se fac noi descoperiri despre spaþiul cerinþelor. De obicei nu apar noi cerinþe ci se ajunge la o mai bunã înþelegere a celor existente.

� Proiectul arhitecturii oferã un instrument natural pentru rafinarea ºi stabilizarea cerinþelor ºi ajutã la descoperirea zonelor potenþial problematice.

Toate cerinþele se vor maturiza pe mãsurã ce se dezvoltã proiectul

arhitecturii.

Page 404: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Exemplu

Fie urmãtorul scenariu pentru atribut de calitate:

�În condiþii de operare normalã ºi pentru orice configuraþia de vehicul aerian, simulatorulsoftware preia eºantioane de date de intrare de la toate comenzile de intrare de la pilot ºi actualizeazã toate afiºajele cu o frecvenþã de 75Hz.�

În esenþã, arhitectul trebuie sã rãspundã la urmãtoarea întrebare:

�Fiind dat acest stimul provenit din aceastã sursã, la aceste artefacte, în aceste condiþii (context), rãspunde sistemul aºa cum este precizat în mãsura�LQGLFDWă�SHQWUX�

rãspuns?�

�Sursã pentru stimul

�Stimul�Context�Artefact�Rãspuns

�Mãsuri ale rãspunsului

Page 405: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Ghid pentru arhitectul software

Identificarea contextului

Selectarea unui element de pornire, descompunere, rafinare

Consolidarea documentaþiei

Evaluarea arhitecturii

Repetare procedurã

Obs. Dacã sunt implicate ºi sisteme legacy atunci trebuie în prealabil descoperitã ºi evaluatã

arhitectura acestora.

Page 406: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

Exemplu

Simulator de zbor

Intrãri de la pilot : cârmã, elevator, eleron, acceleraþie

Ieºiri : afiºãrile simulatorului, miºcarea simulatorului

Page 407: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Exemplu � contextul business

Specificaþiile sistemului

Obiectivul : construirea unui simulator general pentru antrenare, ieftin ºi portabil

Controlul miºcãrii se face simplu ºi e bazat pe sistem cardanic

Suport pentru max. 3 (243cm X 138cm X 9,5 cm) panouri de afiºare plate pentru vederile din exteriorul cabinei de pilotaj

Un panou de afiºare plat mic pentru instrumentele de mãsurã

Procesoare bazate Intel ��H�DJUHDWă�VROXþia cu procresoare multiple.

Responsabilitãþi contractuale:

Contractorul principal este responsabil pentru sistemul cardanic, carcasa simulatorului, controalele pilotului (cârmã, elevator, eleron, acceleraþie) ºi pentru panourile de afiºare.

Presupunem cã suntem subcontractori pentru dezvoltarea software-lui, contractorul principal având responsabilitatea construirii simulatorului.

Page 408: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

Hardware-ul simulatorului

Aparate de mãsurã

Afiºaj lateralAfiºaj frontal

Intrare

Comenzi pilot

Carcasa

Pilot

Sistem cardanic

Vedere lateralã

Afiºaj lateral

Afiºaj frontal

Comenzi pilot

Carcasa

Pilot

Aparate de mãsurã

Afiºaj lateral

Vedere de sus

Page 409: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

Cerinþe cheie (1)

C1. Sistemul acceptã intrãri de la pilot prin intermediul cârmei, elevatorului, eleronului ºi acceleraþiei

� Actualizeazã 3 afiºaje pentru a oferi imagini din afara cabinei.

� Actualizeazã afiºajul pentru instrumentele de mãsurã (altitudine, orizont artificial, poziþie, combustibil, senzor RPM, unghiul de urcare/coborâre).

� Activeazã sistemul cardanic pentru a simula forþele aeronavei asupra pilotului din simulator.

C2. Sistemul trebuie sã ofere suport pentru instruirea de bazã, dar sã

permitã simularea unei game de aeronave prin configurarea

simplã a regulilor de zbor la setarea/pornirea simulatorului.

Page 410: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

Cerinþe cheie (2)

C3. Sistemul trebuie sã ofere rãspuns instantaneu (actualizarea imaginilor ºi a miºcãrii) la comenzile pilotului, a.î. sã ofere o

experienþã realistã ºi sã previnã �rãul de simulator�.

C4. Sistemul trebuie sã fie uºor de dezasamblat ºi mutat în altã locaþie.

C5. Ulterior punerii sale în funcþiune, sistemul trebuie sã permitã

editarea de noi controale de zbor.

Este evident necesarã rafinarea ºi analiza acestor cerinþe înainte de începerea proiectãrii.

Page 411: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Stabilire context

Problematicã generalã:

Poziþia arhitectului software în raport cu alte activitãþi de proiectare

� Sistem, întreprindere, software, toate.

Cãrui proiectant îi va impune restricþii arhitectura software realizatã

� Arhitecþi, proiectanþi de detaliu pentru software, programatori.

Elemente externe arhitecturii proiectate:

Surse de date, evenimente, interfeþe externe

Sisteme legacy

Factori de mediu

Page 412: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

Stabilire context - exemplu

Simulator Software

Cârmã

Elevator

Eleron

Acceleraþie

Afiºaj stânga

Afiºaj dreapta

Afiºaj central

Instrumente de mãsurã

Gimbal

Limitele sistemului

Intrare pentru sistem

Ieºire sistem

Sistem

Page 413: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

Ghid pentru arhitectul software

Identificarea contextului

Selectarea unui element de pornire, descompunere, rafinare

Consolidarea documentaþiei

Evaluarea arhitecturii

Repetare procedurã

Page 414: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Descompunere (1)

Contextul sistemului stabileºte scena pentru descompunerile ulterioare ale sistemului.

Un context lipsit de acurateþe, incomplet, sau imprecis stabilit are consecinþe negative asupra descompunerii sistemului ºi asupra implementãrii.

EXEMPLE:

� Responsabilitãþi greºit definite între organizaþii

� Intrãri/ieºiri nedefinite

� Dificultãþi de integrare (agravate în dezvoltarea distribuitã)

� Aºteptãri care nu se potrivesc

�Selectare element de pornire

�Descompunere

�Rafinare

Page 415: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Descompunere (2)

Istoric, descompunerea a fost dirijatã de funcþionalitate.

Din discuþiile de la acest curs rezultã cã structura unui sistem are puþin în comun cu funcþionalitatea purã ºi mai mult cu satisfacerea:

� Constrângerilor:

� Constrîngerile devin limite pentru spaþiul de proiectare: fie le satisfacem fie negociem relaxarea lor.

� Atributelor de calitate:

� Cerinþele pentru atributele de calitate sunt deseori împletite cu funcþionalitatea, dar mãsura în care sunt satisfãcute atributele ne

conduce de obicei cãtre structurã.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 416: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

EXEMPLU � scenarii pentru atribute de calitate cheie

Fie urmãtoarele scenarii pentru atribute de calitate cu prioritate mare:

Sistemul trebuie sã poatã fi reamplasat într-o locaþie nouã. Sistemul poate fi dezasamblat ºi împachetat pentru transport în 4 ore ºi reasamblat la noua locaþie în 4 ore.

Simulatorul trebuie reconfigurat pentru a simula un aeroplan de performanþã. Pentru aceasta sistemul este oprit (shut down), sunt încãrcate noile reguli de zbor pentru

aeroplanul performant, sistemul este repornit ºi pregãtit de utilizare în mai puþin de 15 minute.

În condiþii de operare normalã ºi pentru orice configuraþia de vehicul aerian, simulatorul software preia eºantioane de date de intrare de la toate comenzile de intrare de la pilot ºi actualizeazã toate afiºajele, cu o frecvenþã de 75Hz.

Page 417: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Selectarea unui element de pornire

Se selecteazã perspectiva iniþialã � aceasta trebuie menþinutã pe

parcursul operaþiei de descompunere;

Comutarea cãtre o altã perspectivã se va face în mod conºtient!

Se selecteazã un stil arhitectural global care satisface cerinþele ºi constrângerile cheie.

DISCUÞIE:

� Unele probleme pot sugera un stil particular.� Stilurile sunt puncte de plecare ºi trebuie rafinate.

� Deºi la nivel global sistemul poate expune un anume stil, sistemele reale sunt ansambluri de stiluri.

� Un singur stil nu poate optimiza toate cerinþele ºi constrângerile � trebuie fãcute compromisuri. Aceasta evidenþiazã importanþa prioritizãrii cerinþelor ºi constrângerilor.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 418: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Dacã nu este evident un stil de pornire, descompunerea începe cu �sistemul�.

Decompunerea este condusã utilizând toate cerinþele ºi constrângerile.

Se începe cu constrângerile, se continuã cu atributele de calitate ºi în final se considerã funcþionalitatea.

Sistemul este descompus în �elemente� care sunt consistente cu perspectiva.

Forþele de

proiectare

Constrângeri

Funcþionalitate de nivel înalt

Atribute de calitate Proiectul

arhitecturii

Structuri

:

Arhitect

Selectarea unui element de pornire

�Selectare element de pornire

�Descompunere

�Rafinare

Page 419: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

Exemplu (1)

Simulatorul de zbor

� O constrângere cheie � �trebuie utilizate procesoare Intel�.

Forþeazã aceasta alte constângeri ca:

� Utilizarea unui anumit limbaj

� Utilizarea unui anumit sistem de operare ?

Ce atribute de calitate ar putea fi determinante pentru descompunere:

� Abilitatea de a adãuga controale la simulator

� Abilitatea de a modifica regulile de zbor,

� Portabilitatea fizicã

� Necesitãþile de performanþã,... sau altceva?

Aceºti factori trebuie sã vã motiveze intuiþia.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 420: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

Exemplu (2)

Un simulator este un sistem de control clasic ºi existã douã stiluri pe

care le putem lua în considerare:

� Stilul polling (I/E cu aºteptare în buclã)

� Stilul bazat pe întreruperi (interrupt/event)

ÎNTREBÃRI :

Este unul dintre acestea o poziþie de pornire rezonabilã?

Care sunt avantajele ºi dezavantajele fiecãrui stil considerat?

Ce ar putea motiva selectarea unuia dintre aceste stiluri sau a unei alte abordãri?

�Selectare element de pornire

�Descompunere

�Rafinare

Page 421: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

Exemplu (3)

Propunere: luarea în considerare atributului de calitate performanþã.Astfel sistemul trebuie considerat din perspectivã dinamicã ºi descompus în procese. Se ºtie cã buclele de I/E sunt rapide ºi deterministice. Totuºi utilizarea unei singure bucle este limitatã necesitatea de a gândi sistemul în termeni de bucle concurente.

Simulator

Software

cârmã

elevator

eleron

acceleraþie

afiºaj stânga

afiºaj dreapta

afiºaj central

instrumente de mãsurã

gimbal

Limita sistemului

Intrare

Ieºire

Sistem

Depozitar

afiºaj dreapta Buclã

actualizare afiºaje

afiºaj stânga

afiºaj central

instrumente de mãsurã

Buclã

actualizare

sistem cardanic

gimbal x

gimbal y

gimbal z

Buclã citire

date de intrare

cârmãelevatoreleronacceleraþie

proces memorie date scriere

date

citire

date

�Selectare element de pornire

�Descompunere

�Rafinare

Page 422: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

Exemplu (4)

Descompunerea este ºi trebuie sã fie ghidatã în mare mãsurã de

intuiþie ºi experienþã.

Cunoaºterea structurilor este utilã ºi deseori tempereazã deciziile

instinctive.

În exemplu:

Stilul predominant este �polling� (cu aºteptare în buclã), dar este utilizat ºi un depozitar ansamblu de stiluri.

Concurenþa este aplicatã ca tacticã asupra stilului selectat iniþial, cu scopul creºterii suplimentare a performanþei.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 423: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

Ghid pentru descompunere (1)

Scopul descompunerii iniþiale este de a decide asupra partiþionãrii

grosiere a sistemului în elemente.

Rafinarea�DFHVWRU�HOHPHQWH�VH�IDFH�SULQ�GHFRPSXQHUL�XOWHULRDUH.

Dupã descompunerea iniþialã, descompunerea elementelor are loc în manierã iterativã.

Operaþii:

� Asignarea corespunzãtoare la elemente a responsabilitãþilorderivate din cerinþe funcþionale, cerinþe de calitate ºi constrângeri.

� Rafinarea elementelor prin selectarea de stiluri subordonate ºi/sau prin decompunere ulterioarã.

� Aplicarea corespunzãtoare de tactici de rafinare.

� Dezvoltarea ºi definirea interfeþelor elementelor subordonate.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 424: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

Ghid pentru descompunere (2)

Recomandãri pentru operaþia de descompunere a sistemului:

� Pãstrarea consistenþei cu perspectiva ºi cu elementele ºi relaþiile specifice acesteia.

� Este utilã creare la început a unei legende.

Ordinea descompunerii / rafinãrii variazã:

� Utilizarea eficientã a expertizei speciale descompunere în adâncime.

� Cunoaºterea domeniului �GHVFRPSXQHUH�RUL]RQWDOă.

� Tehnologie nouã nevoia de prototipuri descompunere în adâncime.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 425: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

Asignarea responsabilitãþilor

Responsabilitãþile sunt derivate din cerinþele funcþionale, cerinþele de calitate ºi constrângeri.

� Cerinþele funcþionale � descrise textual ºi cu cazuri de utilizare

� Atributele de calitate � descrise cu scenarii

� Constrângeri business ºi constrângeri tehnice

Responsabilitãþile funcþionale ºi constrângerile tehnice sunt asignate la elemente specifice.

Atributele de calitate ºi unele constrângeri business�VXQW�VDWLVIăFXWH�GH�

însãºi partiþionarea sistemului.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 426: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

Asignarea responsabilitãþilor - exemplu

Depozitar

afiºaj dreapta Buclã

actualizare afiºaje

afiºaj stânga

afiºaj central

instrumente de mãsurã

Buclã

actualizare

sistem cardanic

gimbal x

gimbal y

gimbal z

Buclã citire

date de intrare

cârmãelevatoreleronacceleraþie

proces memorie date scriere

date

citire

date

Citire date de intrare: Preia eºantioane de la controalele pilotului ºi scrie date într-o tabelã cu valori curente (TVC).Depozitar: Memorie volatilã ce gãzduieºte TVC. Aceastã structurã conþine ultimele valori citite de la intrarea datelor de la pilot.

Actualizare afiºaje: Citeºte date din TVC ºi actualizeazã afiºajele cu informaþii din exteriorul cabinei de comandã conform regulilor de zbor specifice aeronavei pentru care a fost configurat simulatorul.

Actualizare sistem cardanic: Citeºte date din TVC ºi scrie date la dispozitivul hardware de control al sistemului cardanic pentru a miºca simulatorul conform regulilor de zbor specifice aeronavei pentru care a fost configurat simulatorul.

Structura generalã: Structura generalã a fost aleasã astfel încât sã maximizeze performanþasistemului ºi conþine trei bucle concurente. Alternativa rejectatã include� rejectatã din motivele�

�Selectare element de pornire

�Descompunere

�Rafinare

Page 427: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

Rafinarea elementelor -�PHWRGă

Dupã descompunerea iniþialã ºi alocarea responsabilitãþilor.

Recursiv - descompunerea ºi rafinarea fiecãrui element al sistemului:

� Asignarea de responsabilitãþi la elemente, extrase din cerinþe ºi constrângeri.

� Complementarea cu tactici a stilurilor arhitecturale sau a descompunerii iniþiale.

� Rafinarea elementelor subordonate.

� Definirea interfeþelor elementelor subordonate.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 428: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

Rafinarea elementelor - impact

Descompunerile elementelor ar putea necesita rafinarea cazurilor de utilizare, a scenariilor pentru atribute de calitate ºi a constângerilor.

� De exemplu, un caz de utilizare care iniþializeazã întregul sistem trebuie divizatîn cazuri de utilizare care iniþializeazã subsistemele în condiþii variate.

Rafinarea ºi descompunerea elementelor are impact asupra satisfacerii responsabilitãþilor.

Responsabilitãþile unui element descompus sunt delegate elementelor subordonate acestuia

� Pot fi implicate elemente subordonate la nivel individual o responsabilitate este satisfãcutã de un element subordonat ce nu mai este descompus.

� Poate fi necesarã coordonarea de elemente subordonate �VDWLVIDFHUHD�XQHL�responsabilitãþi implicã cooperarea mai multor elemente subordonate ºi devine o responsabilitate distribuitã.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 429: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

Exemplu (1)

Fie cerinþa de a oferi suport pentru configurarea de vehicule multiple pe baza regulilor de zbor � primul pas este revizitarea scenariului de configurare.

Acest scenariu oferã o informaþie crucialã asupra momentului când trebuie sã fie

fãcutã configurarea ºi cât de repede trebuie sã reporneascã sistemul.

Reconfigurarea este descrisã în termeni de performanþã � acesta este un lucru obiºnuit ºi ilustreazã natura complexã ºi obscurã a cerinþelor pentru atribute de calitate.

Configurarea nu a fost încã asignatã ca responsabilitate nu s-a încheiat proiectarea arhitecturalã.

�Simulatorul trebuie reconfigurat pentru a simula un aeroplan performant. Sistemul este oprit (shut down), sunt încãrcate noile reguli de zbor pentru aeroplanul

performant, sistemul este repornit ºi pregãtit de utilizare în mai puþin de 15 minute.�

�Selectare element de pornire

�Descompunere

�Rafinare

Page 430: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

Exemplu (2)

Depozitar

afiºaj dreapta Buclã

actualizare afiºaje

afiºaj stânga

afiºaj central

instrumente de mãsurã

Buclã

actualizare

sistem cardanic

gimbal x

gimbal y

gimbal z

Buclã citire

date de intrare

cârmãelevatoreleronacceleraþie

proces memorie date scriere

date

citire

date

Pe baza descompunerii iniþiale, pare rezonabil ca responsabilitatea pentru reconfigurarea simulatorului sã fie legatã de controlul afiºajelor ºi al sistemului cardanic, deoarece actualizarea acestor elemente depinde de regulile de zbor configurate.

Trebuie însã sã analizãm în detaliu aceste elemente pentru a înþelege cum funcþioneazã

configurarea, pentru a asigna responsabilitatea ºi pentru a vedea dacã putem satisface

mãsurile rãspunsului exprimate în scenariu.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 431: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

Exemplu (3)

Depozitar

afiºaj dreapta Buclã

actualizare afiºaje

afiºaj stânga

afiºaj central

instrumente de mãsurã

Buclã

actualizare

sistem cardanic

gimbal x

gimbal y

gimbal z

Buclã citire

date de intrare

cârmãelevatoreleronacceleraþie

proces memorie date scriere

date

citire

date

afiºaj stânga

Depozitar

fiºiere

de configurare

Proces de

iniþializare sistem

Buclã

actualizare

sistem cardanic

gimbal x

gimbal y

gimbal z

afiºaj dreapta Buclã

actualizare afiºajeafiºaj central

instrumente de mãsurã

DepozitarTVC

Buclã citire

date de intrare

cârmãelevatoreleronacceleraþie

Instanþiazã

�Selectare element de pornire

�Descompunere

�Rafinare

Page 432: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

Exemplu (4)

Responsabilitãþile de pornire ºi de reconfigurare a sistemului, nealocate anterior, au fost asignate procesului de iniþializare�D�VLVWHPXOXL.

Responsabilitãþile trebuie actualizate de câte ori modificãm

descompunerea !.

Procesul de iniþializare a sistemului: Responsabil de citirea ºi parsarea fiºierelor de configurare, verificându-le totodatã ºi corectitudinea.

Dupã validarea configurãrii, procesul de iniþializare a sistemului va configura corespunzãtor ºi va instanþia procesele de actualizare afiºaje, de actualizare sistem cardanic, ºi de citire date de intrare.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 433: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

Schimbarea perspectivei

Perspective diferite permit analizarea a diferite calitãþi ale sistemului.

În cursul descompunerii ºi asignãrii de responsabilitãþi poate fi necesarã

schimbarea perspectivei ºi începerea descompunerii dintr-o perspectivã nouã.

Fie urmãtoarea cerinþã:

�Modificarea software-lui pentru simulator, a.î. sã poatã încorpora clapete ulterior lansãrii facilitãþilor iniþiale de operare. Modificarea trebuie realizatã în mai puþin de 3 luni-om, inclusiv testare.�

Dacã utilizãm vederi dinamice, este imposibilã analiza, proiectarea ºi asignarea de responsabilitãþi referitoare la aceastã cerinþã de

modificare.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 434: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

Exemplu (1)

afiºaj stânga

Depozitar

fiºiere

de configurare

Proces de

iniþializare sistem

Buclã

actualizare

sistem cardanic

gimbal x

gimbal y

gimbal z

afiºaj dreapta Buclã

actualizare afiºajeafiºaj central

instrumente de mãsurã

DepozitarTVC

Buclã citire

date de intrare

cârmãelevatoreleronacceleraþie

Instanþiazã

Pentru a permite funcþionarea clapetelor ar putea fi implicate procesele de citire a datelor de intrare, de actualizare a afiºajelor ºi de actualizare a sistemului cardanic, justificând astfel analiza suplimentarã a

acestor elemente � probabil este o modificare localã dar este greu de precizat din aceastã perspectivã.

Pentru a proiecta aceastã modificare potenþialã este necesar sã apelãm la vederile

modulare ale acestor procese (din perspectiva staticã).

�Selectare element de pornire

�Descompunere

�Rafinare

Page 435: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

Exemplu (2)

Reprezentarea sistemului din perspective diferite contribuie la o analizã mai profundã ºi la un design mai complet.Pentru procesul de citire date de intrare vom înþelege: posibilitãþile�GH�DGăXJDUH�D�FODSHWHORU, impactul�adãugãrii clapetelor asupra performanþei, dacã e suficient un acelaºi driver de dispozitiv pentru toate clapetele sau sunt necesare drivere separate, dacã existã abordãri mai bune.

proces Memorie date

Scriere

date

Citire

dateBuclã citire

date de intrare

cârmãelevatoreleronacceleraþie

InstanþiazãDepozitar

TVC

Bucla principalã de citire

Cititor date cârmã

Cititor date elevator

Cititor date eleron

Cititor date acceleraþie

Modul scriere în TVC

Driver dispozitiv Driver dispozitiv Driver dispozitiv Driver dispozitiv

invocare modul

�Selectare element de pornire

�Descompunere

�Rafinare

Page 436: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

Exemplu (3)

afiºaj dreaptaBuclã

actualizare afiºaje

afiºaj stânga

afiºaj central

instrumente de mãsurã

Dupã descompunerea ºi analiza din perspectivã staticã (vedere modularã) a procesului de actualizare a afiºajelor�UH]XOWă�Fă�modificãrile pot fi izolate în afiºajul instrumentelor de mãsurã deoarece doar în afiºajele corespunzãtoare sunt vizibile efectele clapetelor � efectele sunt configurabile în fiºierele de configurare a vehiculului.

Actualizare afiºaje (Main)

Calcul poligoane

exterioare cabinei

de comandã

Refresh afiºaje Citire TVC

Refresh

afiºaj stânga

Refresh

afiºaj central

Refresh

afiºaj dreapta

Calcul aparate de

mãsurã

Refresh afiºaj

instrumente de

mãsurã

�Selectare element de pornire

�Descompunere

�Rafinare

Page 437: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

Exemplu (4)

Buclã actualizare

sistem cardanic

gimbal x

gimbal y

gimbal z

Actualizare sistem cardanic (Main)

Calcul

miºcare

Actualizare sistem cardanic Citire TVC

Scrie Gimbal X Scrie Gimbal Y Scrie Gimbal Z

Driver dispozitiv Driver dispozitiv Driver dispozitiv

Dupã descompunerea ºi analiza din perspectivã staticã (vedere modularã) a procesului de actualizare a sistemului cardanic rezultã cã modificãrile pentru adãugarea de clapete nu vor afecta software-ul. Clapetele vor schimba miºcarea dispozitivului cardanic, dar efectele sunt configurabile în fiºierele de configurare a vehiculului.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 438: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

Selectare tactici pentru rafinarea elementelor (1)

Tacticile rafineazã stilurile ºi pot ajuta la echilibrarea efectelor negative ale unui stil.

Factori ce ghideazã selectarea tacticilor:

Cerinþele ºi consrângerile (în particular cerinþele pentru atributele de calitate).

Efectele colaterale pe care un stil care implementeazã tactica le are asupra cerinþelor funcþionale, cerinþelor de calitate ºi constrângerilor.

Aplicarea tacticilor înseamnã rafinarea deciziilor arhitecturale iniþiale.

Metafora �dialog� pentru rafinarea elementelor:Tacticã: bucle concurenteTactica promoveazã: performanþaTactica inhibã: o anume modificabilitate,

simplitatea.Etc.

Cerinþa: crearea unui simulator de zbor generalStil iniþial: pollingStilul promoveazã: simplitate, uºurinþã în testareStilul inhibã: performanþa

�Selectare element de pornire

�Descompunere

�Rafinare

Page 439: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

Selectare tactici pentru rafinarea elementelor (2)

Valoarea stilurilor ºi tacticilor selectate în exemplul anterior depinde de importanþa relativã a performanþei ºi modificabilitãþii.

Aceasta ilustreazã noþiunea de compromis arhitectural ºi importanþa prioritizãrii cerinþelor ºi constrângerilor.

Arhitecþii trebuie sã realizeze compromisurile necesare menþinerii echilibrului stilurilor ºi tacticilor a.î. proiectul arhitecturii sã îndeplineascã proprietãþile dorite pentru sistem.

�Selectare element de pornire

�Descompunere

�Rafinare

Page 440: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

Definirea interfeþelor

Interfeþele elementelor se bazeazã pe relaþiile între elemente.

Interfeþele constau din:

Serviciile ºi proprietãþile pe care le necesitã ºi pe care le oferã un element de proiectare, identificate în cursul alocãrii de responsabilitãþi.

Fluxurile de date ºi de control necesitate de fiecare element, conform definiþiei sale.

Nivelul de detaliu poate fi mai grosier decât signatura �GHOHJDUHD, cãtre

proiectanþi, a stabilirii detaliilor de comunicare.

Se pot utiliza cazurile de utilizare ºi scenariile pentru a înþelege mai bine interfeþele:� Interacþiunile� Dependenþele� Informaþiile partajate ºi schimbate de componente

�Selectare element de pornire

�Descompunere

�Rafinare

Page 441: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

Ghid pentru arhitectul software

Identificarea contextului

Selectarea unui element de pornire, descompunere, rafinare

Consolidarea documentaþiei

Evaluarea arhitecturii

Repetare procedurã

Page 442: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

Documentarea arhitecturii (1)

1. Precizarea contextului proiectului.

2. Documentarea cerinþelor ºi constrângerilor ºi a prioritãþilor�ORU�UHODWLYH.

3. Crearea reprezentãrilor arhitecturii iniþiale� Considerarea perspectivei ºi consistenþa cu perspectiva� Stabilirea contextului sistemului ºi contextului software-lui� Includerea de explicaþii�SHQWUX�UHSUH]HQWăULOH�JUDILFH

4. Documentarea responsabilitãþilor elementelor ºi a relaþiilor dintre ele.

5. Documentarea motivaþiilor deciziilor de proiectare� Responsabilitãþile elementelor� Alegerile fãcute ºi variantele respinse� Ipotezele considerate

6. Prezentarea rezultatelor analizei / prototipurilor care au venit în sprijinul deciziilor de proiectare luate.

7. Documentarea responsabilitãþilor ºi interfeþelor pentru fiecare element ºi actualizarea acestora la fiecare modificare.

Page 443: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

Documentarea arhitecturii (2)

Documentarea arhitecturii pe parcursul proiectãrii ei.

� Capturarea corectã a informaþiilor de proiectare (în special motivaþiile).

� Capturarea permanentã a informaþiilor pentru a evita uitarea lor ºi aglomerarea activitãþilor de realizare a documentaþiei.

Page 444: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

Ghid pentru arhitectul software

Identificarea contextului

Selectarea unui element de pornire, descompunere, rafinare

Consolidarea documentaþiei

Evaluarea arhitecturii

Repetare procedurã

Page 445: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 54

Metode de evaluare a arhitecturii

Utilizarea scenariilor derivate din cazurile de utilizare funcþionalã, pentru a �testa��Fă�DUKLWHFWXUD�întruneºte cerinþele funcþionale cheie de nivel înalt.

Utilizarea scenariilor pentru atributele de calitate ºi a cazurilor de utilizare, pentru a �testa��Fă�DUKLWHFWXUD�întruneºte cerinþele cheie pentru atributele de calitate.

ATAM (Architecture Tradeoff Analysis Method) este o modalitate de a ne asigura cã arhitectura satisface cerinþele funcþionale, cerinþele de calitate ºi constrângerile. (http://www.sei.cmu.edu)

Page 446: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 55

Recomandare

Evaluarea continuã pe parcursul elaborãrii arhitecturii.

Problemele apãrute pot fi diminuate prin

reproiectare,

experimentare,

studiere suplimentarã.

Page 447: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 56

Ghid pentru arhitectul software

Identificarea contextului

Selectarea unui element de pornire, descompunere, rafinare

Consolidarea documentaþiei

Evaluarea arhitecturii

Repetare procedurã

Page 448: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 57

Repetare procedurã (1)

Am definit:� Elemente ºi relaþii� Responsabilitãþi atribuite� Interfeþe� Documentaþie

Descompunerea, rafinarea, evaluarea ºi documentarea continuã pânã când:

� Elementele ºi relaþiile sunt definite ºi suficient documentate.

� Responsabilitãþile derivate din cerinþe funcþionale, de calitate ºi constrângeri sunt asignate elementelor.

� Interfeþele elementelor sunt definite.

� Documentaþia arhitecturalã este suficient de completã; este prescriptivã

ºi descriptivã.

� Arhitectura a fost evaluatã ºi acceptatã.

Page 449: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 58

Repetare procedurã (2)

Factori de care depinde reluarea:� domeniul ºi complexitatea.� asigurarea unei documentaþii suficiente.

Cel mai important factor este intuiþia arhitectului.

De fapt nu se terminã niciodatã.

Proiectarea arhitecturii trebuie sã fie o activitate continuã pe durata de viaþã a

produsului.

Dupã punerea în funcþiune arhitectura joacã un rol semnificativ în gestionarea modificãrilor ºi în estimarea costului ºi impactului acestora. Arhitectura împarte modificãrile în:

� Locale � în interiorul unui singur element

� Non-locale ��VH�SURSDJă�GLQFROR�GH�OLPLWHOH�XQXL�VLQJXU�HOHPHQW

� Arhitecturale ��HURGHD]ă�VWUXFWXUD�IXQGDPHQWDOă�D�VLVWHPXOXL

Aceastã analizã este imposibilã în lipsa unei arhitecturi explicite ºi bine documentate.

Page 450: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 59

Revizitarea contextului business (1)

Dacã apar situaþii speciale este important sã revizitãm stakeholder-ii ºi cerinþele business generale.

Fie urmãtoarea cerinþã:�Pentru a permite antrenarea în grup, simulatoarele trebuie interconectate într-o reþea pentru

a crea un singur mediu de simulare în care utilizatorii pot interacþiona.

Aceastã cerinþã intrã în conflict cu o serie de cerinþe ºi constrângeri iniþiale.

Pe durata de viaþã a unui produs pot sã aparã oricând cerinþe aflate în conflict.�De aceea poate sã aparã necesitatea de a revizita contextul business oricând pe

durata de viaþã a produsului.

Page 451: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 60

Revizitarea contextului business (2)

Contextul original ��VLPXODWRU�XQLF, de sine stãtãtor.Noua cerinþã modificã domeniul sistemului în mod semnificativ.

simulator

simulator

simulator

simulator Alte probleme ce necesitã atenþie:

� Cum vor fi conectate simulatoarele individuale pentru a forma un�VLVWHP. Existã un standard?

� Simulatoarele se comportã bine individual, dar cum se vor comporta ca federaþie?

� Cum va fi reprezentat spaþiul simulatorului într-un mediu de simulare distribuit?

Arhitectul trebuie sã fie preocupat de:

� Modul în care entitãþile de la alte simulatoare apar pe afiºaj.

� Ce informaþie trebuie trimisã la alte simulatoare ºi cum este trimisã

aceasta.

Page 452: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 61

Revizitarea contextului business (3)

Problemele puse anterior sunt de naturã tehnicã.În termeni de context business ele devin:

� Ce stakeholder-i au nevoie de aceastã caracteristicã ºi de ce?

� Este asta ceea ce vrem sã facem cu adevãrat?

� Este suficientã piaþã pentru aceastã caracteristicã?

� Suntem dispuºi sã plãtim pentru complexitatea adãugatã?

� Se poate adãuga aceastã caracteristicã mai târziu?

� Cât de târziu?

� Dacã o adãugãm mai târziu suntem dispuºi sã plãtim acum mai mult pentru un

proiect care va permite adãugarea mai uºoarã sau vom relua atunci proiectarea

de la zero?

Acestea sunt întrebãri la care trebuie sã rãspundem înainte de a ne ocupa de detalii tehnice.

Page 453: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 62

Revizitarea contextului business (4)

Arhitecþii nu trebuie sã încerce rezolvarea acestui gen de probleme doar cu metode tehnice.

Pe de altã parte, managerii nu vor lua singuri decizii cu impact tehnic.

Modificãrile apãrute în urmãtoarele zone indicã necesitatea revizitãrii

contextului business:

� Modelele business

� Structurile organizaþionale

� Stakeholder-i cheie

� Pieþele

� Tehnologiile

Page 454: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 63

Bibliografie suplimentarã

The Architecture Based Design Methodhttp://www.sei.cmu.edu/reports/00tr001.pdf

Attribute-Driven Design (ADD), Version 2.0http://www.sei.cmu.edu/reports/06tr023.pdf

A Practical Example of Applying Attribute-Driven Design (ADD), Version 2.0http://www.sei.cmu.edu/reports/07tr005.pdf

Architecture-Centric Engineering (ACE) Initiativehttp://www.sei.cmu.edu/library/assets/brochures/RTSS_ACE_2010.pdf

(disponibile ºi în secþiunea �Documentaþii� de pe site-ul cursului)

Page 455: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sistemesoftware

Curs 9

id752431 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 456: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

PLAN CURS

SOA ��$UKLWHFWXUă�RULHQWDWă�SH�VHUYLFLL Caracteristicile serviciilor

Perspectiva C&C

Atribute de calitate promovate si inhibate

Cloud computing

Caracteristici, avantaje, aplicabilitate

Modele pentru CC

CC & SOA

Page 457: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

SOA genericã

Page 458: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Mecanism SOA

Page 459: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

SOA � Arhitecturã orientatã pe servicii

SOA � abordare arhitecturalã pentru construirea de sisteme sau de

aplicații care utilizeazã un set de servicii.

Serviciu � o implementare a unei funcționalitãți bine definitã, cu o interfațã

publicatã care se poate descoperi și care poate fi utilizatã de consumatorii

serviciului la construirea de aplicații sau de procese business.

SOA definește funcționalitatea unei aplicații ca un set de servicii partajate, reutilizabile.

SOA � stil arhitectural în care sistemele sunt compuse din consumatori de servicii și furnizori de servicii.

Page 460: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

SOA � Arhitecturã orientatã pe servicii

SOA � soluþie de integrare de aplicaþii disparate într-un context web aflate pe platforme multiple de implementare.

SOA defineºte interfaþa serviciului în termeni de protocol ºi funcþionalitate.

Endpoint � punct de acces la serviciu.

SOA ��VHW�GH�XQLWăþi de funcþionalitate distincte � servicii - care sunt disponibile într-o reþea pentru a permite combinarea ºi reutilizarea lor în producerea de aplicaþii.

Comunicarea � transfer de date în formate bine definite sau coordonare activitãþi între douã sau mai multe servicii.

Page 461: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

SOA � Arhitecturã orientatã pe servicii

SOA frameworks � servicii reutilizabile ce constituie scheletul unei arhitecturi.

� Incorporeazã ºabloane de proiectare ºi bune practici de inginerie software

� Specificã responsabilitãþile componentelor din fiecare strat ºi colaborãrile

dintre acestea.

Avantaje framework:

� Proiectarea, dezvoltarea ºi repartizarea rapidã de servicii web, aplicaþii ºi portlet-uri modulare, flexibile, scalabile, suportive.

� Îmbunãtãþirea consistenþei software-lui livrat.

� Autocontrol asupra sa ºi asupra aplicaþiei ºi serviciilor create în cadrul acestuia.

�Nivel de abstractizare ridicat

�Tipice unui domeniu

�Scalabile

Page 462: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

SOA � Arhitecturã orientatã pe servicii

Alte definiții

� �A service-oriented architecture (SOA) is an application framework that takes everyday business applications and breaks them down into individual business functions and processes, called services. An SOA lets you build, deploy and integrate these services independent of applications and the computing platforms on which they run.��IBM Corporation

� �Service-Oriented Architecture is an approach to organizing information technology in which data, logic, and infrastructure resources are accessed by routing messages between network interfaces.��Microsoft

� A SOA is �a set of components which can be invoked, and whose interface descriptions can be published and discovered.��Worldwide Web Consortium [W3C 04]

Page 463: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

PLAN CURS

SOA ��$UKLWHFWXUă�RULHQWDWă�SH�VHUYLFLL

Caracteristicile serviciilor Perspectiva C&C

Atribute de calitate promovate si inhibate

Cloud computing

Caracteristici, avantaje, aplicabilitate

Modele pentru CC

CC & SOA

Page 464: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Caracteristicile serviciilor

� Reutilizabile

� Expun un contract formal - definește termenii schimbului de informații (interfața) și alte informații de descriere a serviciului

� Implementare invizibilã și irelevantã pentru consumatorii serviciului

� Slab cuplate

� Compozabile � aplicațiile pot fi organizate pe mai multe nivele de abstractizare

� Autonome � în limitele logicii implementate

� Nu memoreazã stare (stateless)

� Pot fi descoperite � pe bazã de descrieri publicate

� Au interfațã adresabilã prin rețea � suportã accese de la distanțã

� Localizare transparentã � suport pentru migrare; pãstratã într-un registry

Page 465: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

Caracteristicile serviciilor

Compozabile:

Creare aplicație = asamblarea și coordonarea activitãților serviciilor necesare implementãrii procesului business.

Se poate scrie cod suplimentar pentru implementarea funcționalitãții specifice aplicației.

Surse de servicii:� Existente în companie și reutilizate� Externe� Construite special pentru aplicația curentã

Problematicã proiectare:

� Identificare funcþionalitate pentru serviciu

� Stabilire granularitate serviciu

Page 466: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

PLAN CURS

SOA ��$UKLWHFWXUă�RULHQWDWă�SH�VHUYLFLL

Caracteristicile serviciilor

Perspectiva C&C Atribute de calitate promovate si inhibate

Cloud computing

Caracteristici, avantaje, aplicabilitate

Modele pentru CC

CC & SOA

Page 467: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Perspectiva arhitecturalã

Interacþiunea consumator � furnizor serviciu : manifestatã la runtime.

Perspectiva si viewtypeDinamicã, C&C

OBS:Diagramele C&C sunt complementate cu diagrame de comportament (ex. diagrame

de secvenþe) care descriu secvenþele de interacþiuni ce au loc în diferite tranzacþii.

Page 468: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Tipuri de componente ºi conectori

Tipuri de componente

� Consumator serviciu

- Furnizor serviciu- Componente speciale

-�PDJLVWUDOă�(ESB - enterprise service bus)

- registru

Tipuri de conectori:- apeluri sincrone/asincrone utilizând

� SOAP� HTTP� Infrastructurã pentru transfer mesaje

Page 469: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15OPC � Order Processing Center

Specificul descrierii arhitecturale

În general - descrierea arhitecturii centratã pe structurile sistemului ce

trebuie implementat.

Soluþiile SOA ��QHFHVLWă�înþelegerea ºi documentarea fluxului procesului business.

EXEMPLU din: Bianco P., Kotermanski R., Merson P., Evaluating a Service-Oriented Architecture, sept. 2007

Page 470: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Semantici

� Consumatorul serviciului trimite cereri la furnizorul serviciului

� Furnizorul serviciului furnizeazã serviciul pe baza cererii

consumatorului serviciului

� Furnizorul de serviciu poate fi consumator al altui serviciu

� Registrul ��SăVWUHD]ă�LQIRUPDții despre servicii,�SH�FDUH�OH�furnizeazã la cerere consumatorilor în vederea descoperirii serviciilor

� Magistrala -�PHGLD]ă�LQWHUDFțiunea orientatã pe evenimente

dintre consumatorii și furnizorii de servicii

Page 471: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

PLAN CURS

SOA ��$UKLWHFWXUă�RULHQWDWă�SH�VHUYLFLL

Caracteristicile serviciilor

Perspectiva C&C

Atribute de calitate promovate si inhibate

Cloud computing

Caracteristici, avantaje, aplicabilitate

Modele pentru CC

CC & SOA

Page 472: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

Atribute de calitate promovate

Interoperabilitatea : abilitatea unei colecții de entitãți care comunicã de a

partaja informație specificã și de a opera cu aceasta conform unor semantici operaționale agreate.

SOA asigurã interoperabilitatea serviciilor dezvoltate în limbajediferite și repartizate pe platforme diferite (tehnologii diferite: .NET,

Java EE, PHP, etc).

Page 473: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

Atribute de calitate promovate

Extensibilitatea : ușurința de a extinde capabilitãțile serviciilor fãrã a

afecta alte servicii sau pãrți ale sistemului.

Extindere:

- arhitecturã, adãugând noi servicii

- servicii, fãrã modificarea interfeței

- servicii, cu modificarea interfeței

� Depinde de extensibilitatea mesajelor interfeței.

� Limitare vocabular și structurã mesaje ��LPSOLFă�R�FRPXQLFDUH�PDL�eficientã

Compromis : eficiențã comunicare vs. extensibilitate

Page 474: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Atribute de calitate promovate

Modificabilitatea : abilitatea de a face rapid și eficient modificãri la un sistem

Cuplare slabã între consumatori ºi furnizori

Servicii auto-conþinute, modulare, accesate prin interfeþe coezive

Dependenþe puþine ºi controlate între elementele arhitecturii

Promovatã modificabilitatea implementãrilor

Inhibatã modificabilitatea interfeþei deoarece este dificil de identificat consumatorii serviciului.

Page 475: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

Atribute de calitate parțial promovate

Fiabilitatea : abilitatea unui sistem de a se menþine în operare.

- fiabilitatea mesajelor � sintagme ale furnizãrii mesajelor:1. in-order � Mesajele sunt livrate în ordinea în care au fost trimise.

2. at-least-once � Fiecare mesaj trimis este livrat cel puþin o datã.

3. at-most-once � Fiecare mesaj trimis este livrat cel mult o datã (nu existã duplicate).

4. exactly once � Fiecare mesaj trimis este livrat exact o datã.

- fiabilitatea serviciilor

Page 476: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

Atribute de calitate parțial promovate

Adaptabilitatea : ușurința cu care un sistem poate fi schimbat pentru a servi noi cerințe.

Independenþã localizare ºi politici declarative

Descoperire ºi negociere dinamicã a metodei de legare la serviciu ºi a comportamentului expus de acesta

Modificare transparentã a serviciilor: implementare, adaptare la noi platforme

Adãugare de noi servcicii

Modificare a modurilor de combinare a serviciilor

Problemã: Nu existã standarde. Gestionarea adaptabilitãþii este fãcutã de consumatorii ºi furnizorii de servicii ºi depinde de fiecare situaþie în parte.

Page 477: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Atribute de calitate parțial promovate

Disponibilitatea : gradul în care un serviciu este operaþional ºi accesibil atunci când trebuie utilizat.

� monitorizatã la furnizor și la consumator

� contracte SLA (service level agreement) -�VSHFLILFă�IXUQL]RUXO�VHUYLFLXOXL, disponibilitatea garantatã pentru serviciu, penalitãți pentru furnizor.

Page 478: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Atribute de calitate parțial promovate

Utilizabilitatea :�PăVXUD�FDOLWăþii experienþei utilizatorului în interacþiunea cu informaþii sau servicii.

La furnizor:

� Granularitate mai mare a datelor trimise de serviciu : implicã transfer redus în rețea (ex. opțiuni de selecție, informații suplimentare pentru clarificare date).

� Operații tipice pentru utilizabilitate: anulare cerere, undo, serviciu pe date agregate, informații de feedback (ex. procent�UHDOL]DW, timp estimat pânã la finalizare)

La consumator:

- posibilitatea de a reface o stare

- resincronizarea cu un serviciu cu care s-a întrerupt comunicarea

Page 479: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

Atribute de calitate parțial promovate

Scalabilitatea : abilitatea de a funcționa, fãrã degradarea altor atribute de

calitate, atunci când sistemul îºi�VFKLPEă�GLPHQVLXQHD�VDX�YROXPXO�FX�scopul de a îndeplini nevoile utilizatorilor.

Depinde de implementarea serviciilor folosite.

Soluții pentru creșterea scalabilitãții:

� Scalabilitate orizontalã : distribuirea încãrcãrii pe mai multe calculatoare

� Scalabilitate verticalã : upgrade hardware la site-ul serviciului

Page 480: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Atribute de calitate inhibate

Securitatea : confidenþialitate, autentificare, integritate, disponibilitate

� Servicii furnizate de terþi

� Autentificarea nu este întotdeauna suficientã

� �3URWHMDUHD�GDWHORU�H�QHFHVDUă�OD�WUDQVPLVLH�GDU�ºi pe perioada stocãrii

� Mecanisme pentru gestionarea drepturilor de acces

� Informaþiile din registrul de servicii trebuie sã fie la zi ºi adãugate de furnizori

valizi

Page 481: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Atribute de calitate inhibate

Performanța :�WLPS�GH�UăVSXQV, numãr de cereri procesate în unitatea de timp, abilitatea de a respecta termene (deadlines).

� Comunicare în sisteme distribuite

� Reþelele tipice nu garanteazã latenþã deterministicã

� Apeluri suplimentare pentru descoperire servicii

� Overhead-ul introdus de protocoalele de comunicare (stub/skeleton, motoare SOAP, proxy, etc.)

Soluþii pentru îmbunãtãþirea performanþei:

� Transparenþa localizãrii serviciilor replicarea serviciului ºi aplicarea unei strategii de echilibrare a încãrcãrii creºterea numãrului de cereri

procesate în unitatea de timp ºi a disponibilitãþii sistemului.

� Posibilitatea de a funcþiona în regim asincron.

Page 482: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

Atribute de calitate inhibate

Testabilitatea : gradul în care este facilitatã stabilirea criteriilor de testare

și performanța testelor în a determina îndeplinirea acestora.

� Testarea de elemente distribuite� Codul sursã al serviciilor nu este în general disponibil� Servicii descoperite la runtime nedecidabil ce serviciu concret va fi folosit� Dificil de replicat într-un context de testare cauzele problemelor apãrute la

execuþie:� Aplicaþie

� Serviciu utilizat de aplicaþie

� Infrastructura aplicaþiei sau cea a serviciului

� Încãrcarea platformei pe care ruleazã serviciul

� Agentul care descoperã ºi localizeazã serviciul

Soluþii:� Furnizorul oferã servicii ºi infrastructuri adiþionale ca suport pentru procesele

de testare ºi de depanare desfãºurate atât la furnizor cât ºi la client.� Instrumente pentru testare servicii individuale ºi testare de integrare.

Page 483: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

Discuþie

Soluþiile SOA -�XWLOL]HD]ă�OHJDUH�GLQDPLFă�SHQWUX�D�SHUPLWH�FăL�DOWHUQDWLYH�de execuþie ºi ordonãri diferite ale mesajelor.

Atributele de calitate sunt mai dificil de estimat ºi de analizat.

SOA ��FRQHFWDUH�GH�VLVWHPH, entitãþi business ºi tehnologii multiple trebuie analizate complexitatea ansamblului ºi forþele politice pentru a decide compromisurile arhitecturale necesare (mai mult decât în cazul proiectãrii unei singure aplicaþii, unde predominã preocupãrile tehnice).

Evaluarea unei arhitecturi SOA trebuie sã echilibreze aspectele specifice SOA cu aspecte relevante pentru restul stilurilor implicate în arhitectura finalã a sistemului dezvoltat.

Page 484: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

PLAN CURS

SOA ��$UKLWHFWXUă�RULHQWDWă�SH�VHUYLFLL

Caracteristicile serviciilor

Perspectiva C&C

Atribute de calitate promovate si inhibate

Cloud computing Caracteristici, avantaje, aplicabilitate

Modele pentru CC

CC & SOA

Page 485: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

Cloud computing

Cloud computing (CC) � Opțiune (soluție) arhitecturalã pentru dezvoltare

de software folosind resurse virtualizate ºi scalabile dinamic,�Jă]GXLWH, executate și administrate în centre mari de date și accesibile la cerere sub�formã de servicii în rețea (internet).

Suport flexibil pentru:

� creare/utilizare funcționalitate pentru aplicație (SaaS)

� dezvoltare și rulare aplicație (PaaS)

� repartizarea aplicației (IaaS)

Altã perspectivã ��SDUWDMDUH�WUDQVSDUHQWă�și flexibilã de resurse distribuite

hw și sw de cãtre utilizatori multipli.

Cloud = system of systems

Page 486: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

Cloud computing

Componente

� Furnizor� Consumator

Semantici:� Consumatorul solicitã resurse pe care le poate configura

� Furnizorul furnizeazã resurse sub formã de servicii cloud

� Consumatorii îºi pot extinde cererea de resurse ºi nu trebuie sã

achiziþioneze hw/sw suplimentare pentru a utiliza serviciul

� Furnizorii gestioneazã infrastructura (hw și sw) ºi pun în comun resurse de capacitatea celor cerute de consumatori.

Page 487: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

Cloud computing

Tehnologii suport:

Virtualizare : procesul de substituire în care resurse fizice sunt substituite prin resurse logice (virtuale) care�YRU�DYHD�SURSULHWăți derivate din cele ale resurselor originale dar capacitate diferitã.

Software as a service � furnizarea online de funcționalitate software, similar cu furnizarea acesteia de pe mașina localã.

Arhitecturi grid - servicii de tip cluster

Page 488: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

Cloud computing

Proiectarea în contextul CC se bazeazã pe principiul unei arhitecturiscalabile ca poate fi utilizatã de inginerii sistemului.

� Oferã un mod tipic de a obþine ºi gestiona resurse IT pe scarã largã.

� Resursele de calcul sunt furnizate ca utilitãþi.� Resursele sunt configurabile funcție de necesitãțile consumatorului.

� Resursele fizic distribuite devin resurse logice locale.

Page 489: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

Cloud computing � analizã economicã

CC � model economic pentru un mod specific de a obþine ºi gestiona resurse IT.

Consumatorul nu deþine bunuri IT proprii.Procurare/eliberare resurse - la cerere, funcție de necesitãțile consumatorului.

Modelele de taxare - flexibile și predictibilePermit planificarea la consumator.

Consumatori

� întreprinderi mici - majoritatea

� întreprinderi mari -�H[SORUHD]ă�SDUDGLJPD

�Pay per use�Pay per subscription�Pay per transaction

Page 490: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

Cloud computing

CC ��DVFXQGH�FRQVXPDWRULORU�GH�UHVXUVH�DFWLYLWățile de achiziție,

întreținere, monitorizare pentru infrastructura necesarã.

Activitãțile de management al resurselor sunt implementate de o

infrastructurã dedicatã a furnizorului.

Ex. Webmail

Furnizorul - întreþine spaþiul server ºi oferã acces.

Consumatorul ��LQWURGXFH�R�DGUHVă�ZHE�în browser ºi trimite informaþiile de acces la

un cont.

Page 491: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

Cloud computing

Page 492: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

PLAN CURS

SOA ��$UKLWHFWXUă�RULHQWDWă�SH�VHUYLFLL

Caracteristicile serviciilor

Perspectiva C&C

Atribute de calitate promovate si inhibate

Cloud computing

Caracteristici, avantaje, aplicabilitate Modele pentru CC

CC & SOA

Page 493: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

Caracteristici cheie

Resurse la cerere � consumatorul achiziționeazã unilateral capabilitãți de calcul funcție de necesitãți, fãrã interacțiune umanã cu fiecare furnizor de servicii.

Acces omniprezent la rețea ��FDSDELOLWățile sunt disponibile în rețea și accesate prin mecanisme standard ce permit utilizare de platforme client eterogene (e.g., telefon

mobil, laptop, PDA).

Punerea în comun a resurselor independent de locațiile acestora �resursele de calcul ale furnizorului sunt constituite în rezervoare pentru a servi consumatorii conform unui model de chiriași multipli (multitenant). Diferite resurse fizice și virtuale sunt asignate dinamic și reasignate conform cererilor consumatorilor. Consumatorul nu are control asupra localizãrii resursei primite.

Elasticitate rapidã � capabilitãțile sunt furnizate/eliberate rapid și elastic. Consumatorul�SHUFHSH�Fă�UHVXUVHOH�VXQW�LQILQLWH�și pot fi cumpãrate oricând și în orice cantitate.

Servicii mãsurate. Capabilitãțile sunt taxate pe bazã de mãsurãtori, utilizând un

model de taxare care sã permitã promovarea optimizãrii utilizãrii resurselor.

Page 494: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

Avantaje

Disponibilitate � acces oricând la resurse prin intermediul unei conexiuni internet standard.

Colaborare � modalitate de a lucra simultan pe date ºi informaþii comune.

Elasticitate � furnizorul gestioneazã transparent utilizarea resurselor, pe bazã de cerinþe care se

schimbã dinamic.

Infrastructurã la cost redus � modelul de taxare permite consumatorului sã plãteascã doar

resursele necesare, fãrã investiþie în resurse fizice ºi fãrã costuri de mentenanþã ºi upgrade.

Mobilitate � datele ºi aplicaþiile pot fi accesate de oriunde.

Reducere risc � utilizare pentru testare de idei ºi concepte înainte de a se face investiþii majore în

tehnologie.

Scalabilitate � acces la resurse scalabile funcþie de cererea consumatorilor.

Virtualizare � fiecare consumator are o vedere unicã a resurselor disponibile, independent de organizarea acestora în termeni de dispozitive fizice; furnizorul poate optimiza utilizarea resurselor de cãtre

mai mulþi consumatori.

Implementare rapidã ºi inovativã ��HOXGDUHD�DFWLYLWăþilor de achiziþionare, instalare, testare platformã; reutilizare servicii inovate continuu de cãtre furnizori.

�Green� ��UHGXFH�FRQVXPXO�GH�HQHUJLH�HOHFWULFă.

Page 495: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

Dezavantaje

Interoperabilitate � nu existã încã un set universal de standarde ºi/sau interfeþe, ceea ce poate duce

la blocare pe furnizor.

Latenþã � accesul se face prin internet, ceea ce introduce latenþã pentru fiecare comunicare dintre

consumator ºi cloud.

Constrângeri de platformã ºi limbaj � unii furnizori suportã doar anumite platforme ºi limbaje.

Regulamente � jurisdicþie, protecþie date, practici corecte de manipulare a informaþiilor, transferul datelor internaþionale preocupã în special organizaþiile care gestioneazã date sensibile.

Fiabilitate � dependentã de fiabilitatea infrastructurii hw de la furnizori.

Control resurse � Nivelul de control al consumatorului asupra furnizorului ºi resurselor variazã de la

un furnizor la altul.

Securitate � se oferã securitate bazatã pe autentificare cu ID ºi parolã ºi pe criptare date.

Referitor la confidenþialitatea datelor, informaþiile sunt expuse în mediu necontrolat de consumator.

Soluþie la o parte din probleme: SLA (service level agreement) = contract între furnizor ºi consumator în care sunt prevãzute nivele de calitate pentru serviciu ºi penalizãri dacã acestea nu sunt

îndeplinite.

Page 496: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

CC recomandat

� Procese, aplicații și date puternic independente, slab cuplate cu alte aplicații sau informații.

� Puncte de integrare bine definite în care aplicația poate partaja date, comportament și procese.

� Este suficient un nivel redus de securitate.

� Nucleul arhitecturii interne este bine organizat.

� Platforma doritã este Web/Internet sau este acceptatã repartizarea

GUI într-un browser.

� Costul conteazã și se identificã un beneficiu clar.

� Aplicații noi

Page 497: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

CC nerecomandat

� Procese, date și aplicații strâns cuplate, puternic interdependente

� Puncte de integrare nedefinite, lipsa mecanismelor de sincronizare între componentele din cloud și cele din întreprindere. (interfețe)

� Necesitatea unui nivel ridicat de securitate.

� Controlul este critic.

� Nucleul arhitecturii interne nu este suficient de ordonat.

� Aplicația necesitã interfațã nativã.

� Balanțã defavorabilã a costului.

� Aplicații legacy.

Page 498: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

PLAN CURS

SOA ��$UKLWHFWXUă�RULHQWDWă�SH�VHUYLFLL

Caracteristicile serviciilor

Perspectiva C&C

Atribute de calitate promovate si inhibate

Cloud computing

Caracteristici, avantaje, aplicabilitate

Modele pentru CC

SOA & CC

Page 499: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

Cloud computing - clasificãri

Page 500: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

SaaS

Capabilitate: Software-as-a-Service (SaaS, AaaS). Capabilitãþi specifice nivelului business (ex. E-mail, CRM)

SaaS � tehnicã de a oferi aplicații software utilizatorilor finali fãrã a cereacestora sã ruleze aplicația pe calculatorul propriu.

Exemple de furnizori:

� Google Apps: oferã instrumente de birou bazate web (ex. E-mail, calendar, management documente)

� salesforce.com: aplicație pentru managementul relațiilor cu clienții (customer relationship management - CRM)

� zoho.com: gamã largã de aplicații bazate web, în cea mai mare parte pentru utilizare la nivelenterprise

http://sites.force.com/appexchange/home � cloud computing marketplace

Page 501: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

PaaS

Capabilitate: Platform-as-a-Service (PaaS). Capabilitãþi specifice dezvoltãrii ºi execuþiei de aplicaþii.

Utilizarea resurselor oferite de furnizor pentru a crea ºi rula aplicaþii mai vaste decât cele pe care consumatorul le poate gestiona pe resursele proprii.

Exemple de furnizori:

� Akamai EdgePlatform: platformã pentru calcul distribuit pe care consumatorii îºi pot pune aplicaþii web proprii.

� Force.com: platformã de dezvoltare ºi execuþie aplicaþii ºi componente cumpãrate de la AppExchange sau aplicaþii ale consumatorului.

� Google App Engine: stivã completã pentru dezvoltare ºi execuþie de aplicaþii

� Microsoft Azure Services Platform: servicii de calcul ºi stocare la cerere, precum ºi o platformã de

dezvoltare bazatã pe Windows Azure

� Yahoo! Open Strategy (Y!OS): similar

Page 502: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

IaaS

Capabilitate: Infrastructure-as-a-Service (IaaS). Infrastructurã computaþionalã (ex. CPU, memorie, rețea, mașinã virtualã)

Permite consumatorilor sã-ºi extindã în mod flexibil și eficient infrastructura IT.

Exemple de furnizori:

� Amazon Elastic Compute Cloud (EC2): oferã o maºinã virtualã specialã (AMI) ce poate fi repartizatã

pe infrastructura EC2

� Amazon Simple Storage Solution (S3): oferã acces la resurse de stocare scalabile dinamic

� GoGrid: oferã acces la resurse scalabile dinamic de calcul ºi de stocare, ca ºi la servere dedicate

� IBM Computing on Demand (CoD): oferã acces la servere configurabile ºi la servicii de stocare date

� Microsoft Live Mesh: oferã acces la un sistem de fiºiere distribuit pentru uz individual

� Rackspace Cloud: oferã acces la resurse scalabile dinamic de calcul ºi stocare ºi la aplicaþii ºi instrumente cloud oferite de furnizori terþi

Page 503: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

Public ºi Privat

Cloud public � resurse oferite ca servicii, de obicei printr-o conexiune la internet, pentru o taxã calculatã pe bazã de utilizare.

Cloud privat � resurse repartizate în interiorul unui firewall, gestionate și folosite de organizaþia proprietarã.

Exemple de companii ce oferã resurse pentru construirea de cloud privat: 3tera;Eucalyptus; Oracle (Fusion); Ubuntu.

Specializãri ale acestor tipuri:

Cloud comunitar � resurse partajate de mai multe organizaþii; sprijinã

nevoile ºi problemele specifice comunitãþii

Cloud hibrid � combinaþie de cloud public, privat, community.

Page 504: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

CC - discuþie

Utilizarea resurselor din cloud extinderea arhitecturii dincolo de graniþele întreprinderii pentru a incorpora resursele cloud arhitectura nu se opreºte la firewall.

Înþelegerea atât a resurselor care existã în întreprindere cât ºi a celor furnizate de cloud este chiar mai criticã, deoarece aceste resurse trebuie configurate corect în contextul unei arhitecturi cu scopul de a îndeplini cerinþele.

Utilizarea Web-ului a revoluþionat modul în care se acceseazã ºi se vizualizeazã

informaþiile.

CC va revoluþioneazã modul în care privim resursele IT.

Page 505: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

Tehnologii CC - detalii

Page 506: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

PLAN CURS

SOA ��$UKLWHFWXUă�RULHQWDWă�SH�VHUYLFLL

Caracteristicile serviciilor

Perspectiva C&C

Atribute de calitate promovate si inhibate

Cloud computing

Caracteristici, avantaje, aplicabilitate

Modele pentru CC

CC & SOA

Page 507: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

CC & SOA

� Concepte diferite

� În relaþie

� SOA � ºablon arhitectural - La nivel strategic � decizie funcþie de cerinþe ºi constrângeri

� CC � instanþã de arhitecturã (opþiune arhitecturalã)- La nivel tactic � mod de a rezolva problema

� Combinaþie recomandatã pentru probleme la nivel de întreprindere.

Page 508: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 54

CC & SOA

Se pot utiliza independent.

DARCC este definit ºi funcþioneazã în termeni de servicii, oferind servicii externe.

CC este o soluþie arhitecturalã pentru SOA.

CC � extensie a SOA peste resursele furnizate de cloud (ex. storage-as-a-service, data-as-a-service, platform-as-a-service).

SOA poate utiliza resursele CC ca servicii, incluzându-le în arhitecturã ca

atare.

Problema arhitectului -�Vă decidã ce servicii, informaþii ºi procese sunt candidate pentru a fi plasate în cloud ºi sã decidã ce servicii cloud trebuie

abstractizate în cadrul SOA existentã sau emergentã.

Page 509: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 55

CC & SOA

SOA poate utiliza resursele CC ca servicii, incluzându-le în arhitecturã ca atare

SOA se poate realiza utilizând CC.

Page 510: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 56

CC & SOA

Structurarea sistemului conform stilului SOA este mecanism pentru reutilizare ºi agilitate ºi oferã ºi abilitatea de a ne da seama ce trebuie sã

rãmânã local ºi ce poate fi pus în cloud.

Arhitecturã SOA bunã strategie bunã CC reducerea costurilor ºi creºterea agilitãþii.

Serviciile cloud sunt model de proiectare bunã pentru utilizabilitate, durabilitate, scalabilitate.

Serviciile SOA sunt guvernate (control ºi implementare de politici) : se pot seta politici la nilvel de servicii ºi se controleazã modificãrile serviciilor.

Page 511: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 57

CC & SOA

SOA utilizând CC este o abordare arhitecturalã foarte bunã:

� Abilitatea de a folosi resurse utilizând configuraþia cea mai bunã posibil

� Transparenþa localizãrii resurselor

� Scalabilitatea resurselor

Proiectarea arhitecturalã pentru SOA & CC este esenþialã !!!

CC oferã opþiuni arhitecturale referitoare la platforme (noi) mai eficiente ºi mai ieftine.

În cursul proiectãrii arhitecturale se pot reloca ºi/sau crea componente arhitecturale pe platforme CC.

Page 512: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 58

CC & SOA - viitor

Mutarea mai multor resurse de tip infrastructurã pe platforme CC, incluzând

memorie, baze de date, procesare tranzacþii, dezvoltare aplicaþii.

Mixarea ºi potrivirea acestor resurse în contextul arhitecturii unei aplicaþii.

Exemplu:

Baza de date poate fi la un furnizor, platforma de dezvoltare la altul, iar serverul de proces ºi motorul de reguli la un al treilea.

Cu alte cuvinte putem �împrãºtia��DUKLWHFWXUD�OD�DFHL�IXUQL]RUL�GH�FORXG�FH�RIHUă�FHD�mai bunã funcþionalitate, fiabilitate ºi preþ, iar resursele furnizate de cloud vor colabora fãrã probleme cu toate resursele locale.

Page 513: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 10

id15173538 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 514: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

PLAN CURS

Concepte referitoare la documentaþie

Tehnici de realizare a documentaþiei

Utilizarea UML pentru reprezentarea arhitecturii

Page 515: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

Documentarea arhitecturii software

Architectura software serveºte ca plan general pentru sistem ºi pentru proiectul de dezvoltare a acestuia.

� Este artefactul cel mai potrivit pentru realizarea analizelor în fazele iniþiale de dezvoltare de software.

� Este purtãtorul principal al atributelor de calitate.

� Este cheia întreþinerii ºi evoluþiei�VLVWHPXOXL�GXSă�GDUHa acestuia în funcþiune.

Documentarea arhitecturii este un pas esenþial în realizarea ei.

�Rol

�Principii

�Elemente

Page 516: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Rolul documentaþiei

Documentaþia arhitecturalã are rolul de a comunica informaþii ºi idei.

Documentaþia trebuie realizatã a.î. cel ce o citeºte sã înþeleagã corect ºi completinformaþiile ºi ideile transmise.

Probleme ale practicii curente:

� Diagrame box-and-line ambigue

� Justificare insuficientã a motivaþiilor

� Lipsa discutãrii de variante alternative

� Utilizarea inconsistentã a notaþiilor

� Combinaþii confuze de perspective ºi tipuri de vederi

�Rol

�Principii

�Elemente

Page 517: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Principiile documentaþiei complete

1. Scrisã din punctul de vedere al cititorului.

2. Evitarea repetãrilor nenecesare.

3. Evitarea abiguitãþilor.

4. Utilizarea unei organizãri standard.

5. Explicarea motivaþiilor pentru deciziile arhitecturale.

6. Pãstrarea documentaþiei�OD�FXUHQW�FX�PRGLILFăULOH.

7. Revizuirea documentaþiei.

Majoritatea acestor principii se aplicã pentru documentaþie în general, nu doar pentru documentaþia arhitecturilor software.

�Rol

�Principii

�Elemente

Page 518: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Principiile documentaþiei complete

Evitarea ambiguitãþilor

Dacã se utilizeazã diagrame box-and-line, atunci se vor defini precis semnificaþiile casetelor ºi ale liniilor (ex. prin includerea unei legende).

Precizarea semnificaþiei sãgeþilor:

� Flux de control? Flux de date? Invocare serviciu?

Indicarea faptului cã se foloseºte o notaþie standard (ex. UML).

Tipurile de vederi nu se vor combina decât în mod controlat ºi cu precizarea acestui lucru.

Suplimentarea notaþiilor grafice cu explicaþii.

�Rol

�Principii

�Elemente

Page 519: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

Corect:

� Liniile ºi casetele au forme/culori diferite ºi o cheie de explicare a semnificaþiei acestora

� Se utilizeazã tabele pentru rezumarea dimensiunilor/variantelor

� Diagramele nu încearcã sã transmitã prea multe:

� Separare pe vederi, unde este necesar

� Încercarea de a încadra fiecare vedere a arhitecturii într-o singurã paginã

� Utilizarea unei ierarhii

� Distincþie clarã între perspective (tipuri de vederi)

� Separarea problemelor (concerns)

� Precizarea corespondenþelor, acolo unde e posibil ºi necesar

Principiile documentaþiei complete

Evitarea ambiguitãþilor

�Rol

�Principii

�Elemente

Page 520: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

Incorect:

� Toate liniile aratã la fel

� Sãgeþile nu înseamnã nimic

� Sãgeþile înseamnã mai multe lucruri

� Confuzie între implementare ºi abstractizare arhitecturalã

� Lipsa unei legende sau a unei chei de interpretare

EXEMPLU:

Semnificaþii posibile pentru sãgeþi într-o vedere C&C

� A transferã controlul la B

� A transferã date la B

� A preia o valoare de la B

� A transmite flux de date la B

� A trimite mesaj la B

� �

BA

Principiile documentaþiei complete

Evitarea ambiguitãþilor

�Rol

�Principii

�Elemente

Page 521: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

Exemplu de documentaþie bunãvedere din perspectiva C&C

Web Component

LDAP Directory

RDBMS

Direct Adapter

Indirect Adapter

Controller

Interface

SOAP Connector

& roles

LDAP Connector

& roles

DB Connector

& roles

RMI Connector

& roles

Event Bus

Connector

& roles

Legend

Viewer

Rule &

Configuration DB

Integrated

Data Rep

External

LDAP1

External

LDAP2

External

DB1

External

DB2

Change Log

Me

ta

Vie

we

r

Dire

ct

Adapte

r1

Dire

ct

Adapte

r2

Indire

ct

Aapte

r1

Indire

ct

Aapte

r2

Adapte

r

Manager

Administrator

Console

Jo

in

En

gin

e

Façade

Component

Transaction Log

Adapter

Registry

System Boundary

�Rol

�Principii

�Elemente

Page 522: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Elementele esenþiale ale documentaþiei arhitecturale (1)

Enunþul cerinþelor

� Contextul business, motivaþia produsului, domeniul

� Atributele de calitate, preferabil în termeni de scenarii

Enunþul constrângerilor

� business, de implementare, de repartizare

Descrierea contextului

� Sistemele cu care trebuie sã interacþioneze, interfeþele externe

Diagramele de reprezentare a arhitecturii

� Cu precizarea clarã a semnificaþiilor liniilor ºi casetelor

� Extinse cu prozã explicativã

� Conþinând vederile relevante

�Rol

�Principii

�Elemente

Page 523: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

Elementele esenþiale ale documentaþiei arhitecturale (2)

Motivarea deciziilor arhitecturale

� Modul în care se adreseazã cerinþele ºi constrângerile

� Alternativele considerate

Caracteristici de aplicare stil / linie de produse

� Dimensiunile de variabilitate pronosticate

� Aspectele ce trebuie schimbate

Probleme de management

� Implicaþii asupra structurii organizaþionale a echipei de dezvoltare

� Utilizarea revizuirilor arhitecturii

Alte probleme de proiectare

� OA&M (operaþii, administrare ºi întreþinere)

�Rol

�Principii

�Elemente

Page 524: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

PLAN CURS

Concepte referitoare la documentaþie

Tehnici de realizare a documentaþiei

Utilizarea UML pentru reprezentarea arhitecturii

Page 525: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Tehnici de realizare a documentaþiei ahitecturale

� Diagrame de context

Tipuri de vederi diferite au diagrame de context diferite

� Combinarea mai multor vederi

Stiluri suprapuse ºi combinate

� Utilizare ierarhii

Pentru componente ºi conectori

� Documentarea interfeþelor

Diagrame de secvenþe

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 526: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Tehnici de realizare a documentaþiei ahitecturale

Utilitate: înþelegerea arhitecturii (sub)sistemului necesitã atât cunoaºterea elementelor ºi relaþiilor sale componente cât ºi a elementelor contextului ºi a relaþiilor cu acestea.

Pe diagrama de context se reprezintã:

� Contextul cu care interacþioneazã sistemul

� Interfeþele externe

� Alte (sub)sisteme pe care se bazeazã

Diagrama de context - variante:

� În perspectivã staticã cu vedere modularã - (sub)sistemul ºi alte straturi

� În perspectivã dinamicã cu vedere C&C -�FăLOH�GH�LQWHUDFþiune ale (sub)sistemului cu elemente externe acestuia

� În perspectiva alocãrii cu vedere de repartizare -�DOWH�VLVWHPH�FX�FDUH�partajeazã aceleaºi resurse ale contextului.

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 527: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

Diagrama de context � exemplu 1

KEY

Interaction

Interaction

Algorithms

Exchange Data

Data AcquisitionRequest

LOR Data

Higher levelAMSR-E dataproducts

ACRIM L0 data & higher level products

ASTER GDS

Other Users

Science ComputingFacilities

LPS

AMSR-E SCF

ACRIM SCF

SAGE III MOC

SAGE IIILO data

ScienceData

ProcessingSegment

SAGE III SCF

SAGE IIILO data

SAGE IIIhigher levelproducts

MOPITT SCF

MOPITT LOdata

MOPITT LOhigher levelproducts

EDOS/EBnet

GLAS SCF

MODAPS

GLAS higherlevel products

LO data

GLAS LOdata

MODIS L1A/L1B, ancillarydata

MODIS higherlevel products

SystemExternalEntity

X interacts with YX Y

Data flows fromX to Y

X Y

Remarcaþi:

� Indicarea clarã a

sistemului ºi a contextului

� Etichetarea conectorilor externi

� Utilizarea uneichei/legende

� Reprezentarea multiplicitãþii

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 528: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Diagrama de context � exemplu 2

AdministratorAdministrator

Manage Project Data

HR SystemHR SystemPersonnel Data

LEGEND

Database connection

TSP SupportTool

System

TSP SupportTool

System

Interaction

Manage personalProcess, product data

Create Project

Refer other project data

External Entity(People)

System

Memberof Other Team

Memberof Other Team

TeamMember

TeamMember Team LeaderTeam Leader

External Entity(System)

SMTPServer

SMTPServer

Notification Data

Message

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 529: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

Diagrama de context � exemplu 3

External LDAP server1

ExternalLDAP server2

External DB server1

External DB server2

User Query

UserInformation

User Information

Administrator

UserInformation

AdministratingOperation

System

Boundary

External Directory

Interaction

Legend

Metadirectory

External RDBMS

Web Client

UsersUsers

UsersUsers

LDAP user ( Application,

LDAP Client and so on)

UserInformation

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 530: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

Combinarea vederilor multiple

Separarea vederilor ne permite sã divizãm ºi sã dominãm

complexitatea arhitecturii.

� Oferã o separare clarã a problemelor (concerns)

� Genereazã însã probleme de relaþionare a lor

Documentaþia informalã are tendinþa de a estompa problematica

� În special problemele ce depãºesc frontierele tipurilor de vederi

Precizarea modului în care sunt relaþionate vederile dã informaþii despre profunzimea înþelegerii întregii arhitecturi!

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 531: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

Combinarea vederilor multiple

Relaþionarea vederilor unui sistem - prin precizarea corespondenþelor dintre:

module ºi componente ºi connectori

descompunerea modularã ºi straturi

componente ºi connectori ºi decizii de repartizare

straturi ºi asignare de sarcini de dezvoltare

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 532: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Combinarea vederilor multiple

PROCEDURÃ:

1. Construire vedere combinatã care aratã elementele ºi relaþiile a douã vederi constitutive

A. Utilizare suprapuneri

B. Definire a unui stil hibrid care combinã elemente ºi relaþii ale ambelor vederi

2. Creare a unui document de legãturã care conþine corespondenþele dintre elementele ºi relaþiile dintr-o vedere cu elementele ºi relaþiile din cealaltã vedere.

Ex. Aratã cum modulele sunt replicate în componente ºi conectori.

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 533: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

Combinarea vederilor multiple � exemplu 1

Software Decision Module Application Data Type Module

Numeric Data Type Module State Transition Event Mod.

Data Banker Module Singular Values Module Complex Event Module

Filter Behavior ModulePhysical Models Module

Aircraft Motion ModuleEarth Characteristics ModuleHuman Factors Module Target Behavior ModuleWeapon Behavior Module

Software Utility ModulePower-Up Initialization ModuleNumerical Algorithms Module

System Generation ModuleSystem Generation Parameter Mod.Support Software Module

Behavior-Hiding Module Function Driver Module

Air Data Computer ModuleAudible Signal ModuleComputer Fail Signal ModuleDoppler Radar ModuleFlight Information Display ModuleForward Looking Radar ModuleHead-Up Display ModuleInertial Measurement Set ModulePanel ModuleProjected Map Display Set ModuleShipboard Inertial Nav. Sys. Mod.Visual Indicator ModuleWeapon Release ModuleGround Test Module

Shared Services ModuleMode Determination Module Panel I/O Support Module Shared Subroutine Module Stage Director Module System Value Module Shared Services

Extended Computer

Function Driver

SoftwareUtilities

Device Interfaces

DataBanker

Application Data Types

PhysicalModels

FilterBehaviors

KEY Behavior-hidingmodule

Software decision-hiding module

Hardware-hidingmodule

Metodã simplã de combinare în aceeaºi vedere a informaþiilor din douã stiluri (stilul de descompunere ºi stilul stratificat).

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 534: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

Combinarea vederilor multiple � exemplu 2

763�'DWD +5�'DWD

'DWD�7LHU

%URZVHU

1

$SSOLFDWLRQ

1

:$3

%URZVHU�1

&OLHQW�7LHU

:HE�6HUYHU

-DYD%HDQV

-63 6HUYOHW

6HUYOHW�&RQWDLQHU

-63 6HUYOHW

6HUYOHW�&RQWDLQHU

-DYD%HDQV

/RJLF�7LHU

/RFDO

5HS0DQ

/RFDO

5HS0DQ

*OREDO

5HS0DQ

&KHFN

3RLQWHU

/2*

)LOH

/2*

)LOH

&KHFN

3RLQWHU

C

:$3�6HUYHU$SSOLFDWLRQ

%URZVHU

6073

/LQNDJH

7DVN

&KHFNRU

+5�6\VWHP

,QWHUIDFH

Suprapunere vedere C&C de detaliu cu stilul în trei trepte.

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 535: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Combinarea vederilor multiple � exemplu 3

Suprapunere vedere C&C cu vedere de alocare.

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 536: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Combinarea vederilor multiple � exemplu 4

Combinare printr-o punte a stilului pipe-and-filter cu un stil cu date partajate.

BridgingElement

Filters

Database

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 537: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

Utilizare ierarhii

Scop: Pãstrarea descrierii arhitecturale în limite controlabile

� Detaliile elementelor sunt definite în vederi separate.

Stiluri diferite expun relaþii arhitecturale diferite:

� Relaþia �parte-întreg��HVWH�VSHFLILFă�YHGHULL�FH�UHSUH]LQWă�descompunerea în module.

� Relaþia �substructurã� apare în vederi de tip C&C reprezentatepe trepte multiple.

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 538: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Utilizare ierarhii � exemplu

Web Component

LDAP Directory

RDBMS

Direct Adapter

Indirect Adapter

Controller

Interface

SOAP Connector

& roles

LDAP Connector

& roles

DB Connector

& roles

RMI Connector

& roles

Event Bus

Connector

& roles

Legend

Viewer

Rule &

Configuration DB

Integrated

Data Rep

External

LDAP1

External

LDAP2

External

DB1

External

DB2

Change Log

Me

ta

Vie

we

r

Dire

ct

Adapte

r1

Dire

ct

Adapte

r2

Indire

ct

Aapte

r1

Indire

ct

Aapte

r2

Adapte

r

Manager

Administrator

Console

Jo

in

En

gin

e

Façade

Component

Transaction Log

Adapter

Registry

System Boundary

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 539: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Rule

Translator

Router

Transaction

Coordinator

Receiver

Rule Set

Manager

Call &

Return

Legend

Message

Handler

Interface

Agent

Join

Engin

e

Context

<Event Bus>

Rule

and

<Config

ura

tion D

B>

<Façade

Component>

Send port

Receive port

Utilizare ierarhii � exemplu Detaliere componentei �Join Engine�

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 540: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

Utilizare ierarhii � exemplu

Web Component

LDAP Directory

RDBMS

Direct Adapter

Indirect Adapter

Controller

Interface

SOAP Connector

& roles

LDAP Connector

& roles

DB Connector

& roles

RMI Connector

& roles

Event Bus

Connector

& roles

Legend

Viewer

Rule &

Configuration DB

Integrated

Data Rep

External

LDAP1

External

LDAP2

External

DB1

External

DB2

Change Log

Me

ta

Vie

we

r

Dire

ct

Adapte

r1

Dire

ct

Adapte

r2

Indire

ct

Aapte

r1

Indire

ct

Aapte

r2

Adapte

r

Manager

Administrator

Console

Jo

in

En

gin

e

Façade

Component

Transaction Log

Adapter

Registry

System Boundary

Web Component

LDAP Directory

RDBMS

Direct Adapter

Indirect Adapter

Controller

Interface

SOAP Connector

& roles

LDAP Connector

& roles

DB Connector

& roles

RMI Connector

& roles

Event Bus

Connector

& roles

Legend

Viewer

Rule &

Configuration DB

Integrated

Data Rep

External

LDAP1

External

LDAP2

External

DB1

External

DB2

Change Log

Me

ta

Vie

we

r

Dire

ct

Adapte

r1

Dire

ct

Adapte

r2

Indire

ct

Aapte

r1

Indire

ct

Aapte

r2

Adapte

r

Manager

Administrator

Console

Jo

in

En

gin

e

Façade

Component

Transaction Log

Adapter

Registry

System Boundary

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 541: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

Utilizare ierarhii � exemplu Detaliere componentei �Direct Adapter�

Transaction

Coordinator

LDAP

Directory

Schema

Cache

Change

Notifier

Call &

Return

Legend

Message

Handler

Interface

Agent

Sensor

Sender

To the System

Load Sensor

Receiver

From the

system

Context

<External DB>

<Tra

nsactio

n

Log>

<Event Bus>

<Adapter

Manager>

Dire

ct

Adapte

r2

<Change

Log>

Connection

Manager

Cache

Cache

Access

Send port

Receive port

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 542: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

Utilizare ierarhii � exemplu Detaliere componentei �Indirect Adapter�

LDIF

Converter

Sender

To The

System

Receiver

From the

System

Connection

Manager

LDIF Rule

Manager

Load Sensor

Call &

Return

Legend

Message

Handler

Interface

Agent

Context

<External DB>

<Tra

nsactio

n L

og>

Indire

ct

Aapte

r2

<Event Bus>

<Adapter

Manager>

Transaction

Coordinator

Sensor

Send port

Receive port

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 543: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

Documentarea interfeþelor ºi a comportamentului

Etapã cheie la trecerea de la diagrame informale de nivel înalt la specificaþii arhitecturale mai detaliate.

Natura documentaþiei depinde de:

� Tipul de vedere ºi de stil

� Nivelul de detaliu dorit

� Notaþiile utilizate

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 544: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

Documentarea interfeþelor

Interfaþã = frontierã prin care interacþioneazã sau comunicã douã

elemente.

Specificaþie de interfaþã = un enunþ�DO�SURSULHWăþilor, pe care arhitectul alege sã le facã cunoscute, ale elementului�FH�SUH]LQWă�LQWHUIDþa.

� Ceea ce este exprimat este la latitudinea arhitectului.

� Poate evolua în timp.

Actor (pentru un anumit element) = element, utilizator sau sistem cu care interacþioneazã elementul considerat.

Resursã (a unei interfeþe)� �facilitate adresabilã în cadrul unei interfeþe.

Ex. Funcþie, metodã, flux de date, variabilã globalã, endpoint mesaj, declanºator eveniment.

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 545: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

Documentarea interfeþelor

Principii:

Toate elementele au interfeþe

Interfaþa unui element este separatã de implementarea acesteia

Un element poate avea mai multe interfeþe

Elementele oferã interfeþe (provided)

Elementele pot solicita interfeþe (required)

Mai mulþi actori pot interacþiona simultan cu un element prin intermediul

unei interfeþe a acestuia

Interfeþele pot fi extinse prin specializare

�2�FRPSRQHQWă�SRDWH�RIHUL�PDL�PXOWH�LQVWDQþe ale aceleiaºi interfeþe

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 546: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

Exemplu � mod de organizare a documentaþiei interfeþelor

Extras din Documenting Software Architectures: Views and Beyond, Clements, et al. 2010

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Syntax � signatura : include orice informaþie necesarã

pentru a scrie corect un program ce utilizeazã resursa.

Semantics ��UH]XOWDWXO�XWLOL]ăULL�UHVXUVHL�GLQ�SHUVSHFWLYD�actorului ce o invocã (schimbare stare element, evenimente/mesaje transmise, etc); efecte colaterale; restricþii de utilizare a resursei.

Error Handling � condiþii de eroare ºi excepþii ridicate de resursã, respectiv comune tuturor resurselor interfeþei.

Variability � parametrii de configurare ºi modul în care aceºtia afecteazã semanticile interacþiunii.

Quality-Attribute Characteristics � valorile promise pentru atribute de calitate. (ex. SLA)

Page 547: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

Interfeþe module vs. Interfeþe în vederi C&C

Interfaþã modul:

Defineºte (cel puþin) un set de rutine ce pot fi apelate.

Poate defini ºi rutine, din alte zone ale sistemului, necesare modului.

Interfaþã componentã în vedere C&C:

Defineºte un punct de interacþiune a componentei cu contextul sãu în timpul execuþiei.

Numitã �port�, pentru a face distincþia de interfaþa unui modul.

Exemplu: Filtru�)�FX�GRXă�LHºiri,

ambele scriind caractere într-o conductã.

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

FF<<Interface>>

OutputPorturi

Page 548: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

Documentarea comportamentului

Limitãri ale definiþiilor de interfaþã:

� Nu precizeazã ordinea interacþiunilor

� Nu precizeazã modul de interacþiune între elemente multiple.

Soluþie � exprimare comportament

(notaþii diferite; nivelul de detaliere este ales de arhitect)

Exemplu: diagramã de secvenþe

�Diagrame de context

�Combinare vederi

�Utilizare ierarhii

�Documentare interfeþe

Page 549: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

Documentaþie �beyond views�

Extras din Documenting Software Architectures: Views and Beyond, Clements, et al. 2010

Page 550: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

CONCLUZII

Documentaþia nu înseamnã doar casete ºi linii

Vederi diferite necesitã notaþii diferite

Nivelul de detaliu depinde de contextul de utilizare al documentaþiei

Realizarea unei documentaþii bune nu este o activitate trivialã

Efortul meritã fãcut

Page 551: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

PLAN CURS

Concepte referitoare la documentaþie

Tehnici de realizare a documentaþiei

Utilizarea UML pentru reprezentarea arhitecturii

Page 552: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

UML

UML � limbaj vizual de specificare, proiectare ºi documentare a artefactelor sistemelor software.

Standard de fapt ºi de drept pentru reprezentarea proiectelor software.

Utilizat în majoritatea instrumentelor pentru MDA (Model Driven Architecture) ºi pentru inginerie inversã.

Extensibil:

Oferã mecanisme de extensie (ex. exprimare constrângeri, stereotipuri ºi valori etichetate).

Se pot crea profile UML � grupuri de extensii.

Page 553: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

UML

Poate fi utilizat pentru documentarea urmãtoarelor tipuri de reprezentãri

pentru structurile sistemului software:

Vederi ale modulelor (structuri statice)

Vederi ale structurilor dinamice

Vederi de alocare

Modelul datelorUML nu este întotdeauna notaþia cea mai potrivitã.

Documentarea comportamentului complementeazã vederile asupra

structurii.

�Perspectiva staticã

�Perspectiva dinamicã

�Perspectiva alocãrii

�Modelul datelor

Page 554: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

UML

Atenþie:

Documentaþia unei vederi arhitecturale include diagrama DAR ºi o serie de elemente explicative.

Extras din Documenting Software Architectures: Views and Beyond, Clements, et al. 2010

Page 555: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

UML ��SHUVSHFWLYD�VWDWLFă�module viewtype

Tip de element : - modul� �unitate de cod ce implementeazã un set de

responsabilitãþi.

Tipuri de relaþii :- �is part of� � relaþia parte-întreg- �depends on� � relaþia de dependenþã- �is a� � relaþie de specializare/generalizaresau de implementare

REPREZENTÃRI folosind UML:�Diagrama de clase (clase ºi interfeþe)�Diagrama de pachete

�is part of�Diagramã de pachete

conþine (sub) pachete ºi clase

�depends on�Dependenþa poate fi de mai multe tipuri, specificate prin stereotip (<<refine>>, <<instantiate>>,�)

�is a�Generalizare clasã

Realizare interfaþã

Obs. UML oferã ºi alte relaþii standard, care pot fi specializate utilizând stereotipuri.

�Perspectiva staticã

�Perspectiva dinamicã

�Perspectiva alocãrii

�Modelul datelor

Page 556: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

UML ��SHUVSHFWLYD�VWDWLFă�module viewtype

reprezentarea DESCOMPUNERII MODULARE

�Perspectiva staticã

�Perspectiva dinamicã

�Perspectiva alocãrii

�Modelul datelor

Page 557: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

UML ��SHUVSHFWLYD�VWDWLFă�module viewtype

reprezentarea descompunerii modulare ºi a DEPENDENÞELOR între MODULE

�Perspectiva staticã

�Perspectiva dinamicã

�Perspectiva alocãrii

�Modelul datelor

Page 558: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

UML ��SHUVSHFWLYD�VWDWLFă�module viewtype

Exemplu de rafinare pachet (2 nivele de rafinare)

�Perspectiva staticã

�Perspectiva dinamicã

�Perspectiva alocãrii

�Modelul datelor

Page 559: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

UML ��SHUVSHFWLYD�GLQDPLFă�C&C viewtype

Tipuri de elemente : -�FRPSRQHQWă = de execuþie (proces, fir de execuþie, EJB, servlet, DLL, obiect,...) sau de date.- conector� ��coadã de aºteptare, conductã, RMI,...).

Tipuri de relaþii :Diverse mecanisme de interacþiune�Apel procedurã (local, remote)�Comunicare(sincronã, asincronã)

REPREZENTARE folosind UML:�Diagrama de componente

�Componentã

�Port (poate avea instanþe multiple)

�Interfeþe (provided ºi required)

�Conectori de asamblare

�Conectori de delegare

�Perspectiva staticã

�Perspectiva dinamicã

�Perspectiva alocãrii

�Modelul datelor

Page 560: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

Notaþii pentru interfeþe

�Perspectiva staticã

�Perspectiva dinamicã

�Perspectiva alocãrii

�Modelul datelor

Page 561: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

Notaþii pentru conectori

Limitare:

Conectorii UML nu au structurã internã, atribute sau descriere comportament.

În realitate, conectorii pot fi structuri complexe.

Alternative de reprezentare conector în UML:

componentã UML sau clasã de asociere.

element UML stereotipat cu <<tip conector>>, cu valori etichetate (tagged values) ºi alte adnotãri.

�Perspectiva staticã

�Perspectiva dinamicã

�Perspectiva alocãrii

�Modelul datelor

Pentru detalii vezi raportul tehnic C&C_cu_UML.pdf

Page 562: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

UML ��SHUVSHFWLYD�DORFăULLallocation viewtype

Tipuri de elemente : - nod = de execuþie ºi de comunicare (maºinã

server, router,...).- Artefact software = fiºier, director.

Tipuri de relaþii :- Canal de comunicare- �conþinut în�

REPREZENTARE folosind UML:�Diagrama de repartizare

Nod - dispozitiv

Nod � mediu de execuþie

Artefact software

�Perspectiva staticã

�Perspectiva dinamicã

�Perspectiva alocãrii

�Modelul datelor

Page 563: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

UML � modelul datelor

Tip de element : - entitate = element persistent

Tipuri de relaþii :- Asociere (1:1, 1:n, n:n)- Generalizare/specializare- Agregare

REPREZENTARE folosind UML:�Diagrama de clase

�Perspectiva staticã

�Perspectiva dinamicã

�Perspectiva alocãrii

�Modelul datelor

Page 564: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

UML � reprezentare comportament

Arhitectura software se ocupã în mod esenþial cu structurile�VLVWHPHORU�software.

Diagramele structurale ilustreazã toate interacþiunile potenþiale între elementele software ºi cu contextul.

Descrierea structurilor sistemului software trebuie complementatã prin diagrame

de comportament. Acestea ilustreazã ºabloane specifice de interacþiune�prin care sistemul rãspunde la stimuli.

Variante de REPREZENTARE folosind UML:�Diagrama secvenþe�Diagrama de comunicare�Diagrama de activitate�Diagrama de timp�Diagrama de stãri

Page 565: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

UML - Combinarea vederilor multipleExemplu

Mapare între 2 vederi: allocation view ºi module view.

Page 566: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 11

id5504234 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 567: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

PLAN CURS

Concepte generale în evaluarea arhitecturilor software

SAAM (Software Architecture Analysis Method)

ATAM (Architecture Tradeoff Analysis Method)

ACDM (Architecture Centric Design Method)

Page 568: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

Practica curentã

Analiza ºi evaluarea arhitecturilor software este în curs de maturizare.

Au început sã aparã câteva metode industriale de evaluare puternice

� SAAM, ATAM, ALMA, FAAM, ...

SEI (Software Engineering Institute) � cercetare de pionierat ºi vastã în domeniul evaluãrii arhitecturilor software.

Page 569: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Motivaþii pentru analizarea arhitecturilor software

Toate proiectele implicã compromisuri.

Arhitectura software este artefactul cel mai timpuriu din ciclul de dezvoltare de software, ºi cuprinde decizii de proiectare semnificative.

Timpul, costul ºi consecinþele defectãrilor asociate cu sistemele mari ºi complexe intensiv software justificã costurile evaluãrii arhitecturii software.

CONCLUZIE:

Evaluarea arhitecturii software este un mod eficient de a descoperi consecinþele deciziilor arhitecturale

� înainte de proiectarea de detaliu ºi de implementare,�VDX� dacã actualizarea sistemului angajeazã resurse majore.

Page 570: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Metode pentru evaluarea arhitecturilor software

SAAM (Software Architecture Analysis Method)

ATAM (Architecture Tradeoff Analysis Method)

ACDM (Architecture Centric Design Method)

dezvoltate la SEI (Software Engineering Institute)

Altele:

Specifice unui domeniu

De interes industrial restrâns

Mai puþin codificate

Page 571: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

PLAN CURS

Concepte generale în evaluarea arhitecturilor software

SAAM (Software Architecture Analysis Method)

ATAM (Architecture Tradeoff Analysis Method)

ACDM (Architecture Centric Design Method)

Page 572: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

SAAM (Software Architecture Analysis Method)

SAAM dezvoltatã la SEI

Una din primele metode de evaluare a arhitecturilor software

Predecesor al ATAM

Metodã de evaluare a arhitecturilor în scopul asigurãrii îndeplinirii cerinþelor pentru atribute de calitate la sistemele intensiv software.

Cuprinde 6 paºi.

Page 573: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

SAAM - procedura

Pas 1 � Dezvoltarea de scenarii pentru atribute de calitate via brainstorming.

Pas 2 � Descrierea arhitecturii/arhitecturilor candidat.

Pas 3 � Clasificarea scenariilor în directe sau indirecte.

Pas 4 � Evaluarea scenariilor.

Pas 5 � Evaluarea interacþiunilor dintre scenarii.

Pas 6 � Evaluarea de ansamblu.

Scenariu direct � poate fi îndeplinit fãrã nici o modificare la sistem.Scenariu indirect � poate fi îndeplinit prin modificarea sistemului.

Arhitectul:�demonstreazã executarea scenariului direct,�descrie modul în care arhitectura ar trebui schimbatã pentru a îndeplini scenariul indirect.

�Douã scenarii indirecte interacþioneazã

dacã necesitã modificãri la acelaºi element al sistemului. �Zone cu interacþiuni semnificativeîntre scenarii pot revela o potenþialã

slabã separare a problemelor.�Ataºare ponderi la fiecare scenariu ºi interacþiune între scenarii, funcþie de importanþã.�Dacã arhitectura satisface scenariul, primeºte valoarea ponderatã corespunzãtor.

Page 574: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

SAAM - probleme

Codificare slabã

Pot exista diferenþe de aplicare de la evaluator la evaluator.

Rezultatele sunt deseori impredictibile.

Durata de realizare a evaluãrilor variazã.

La momentul creãrii SAAM, maturitatea disciplinei �arhitecturi software��HUD�relativ scãzutã � puþine informaþii referitoare la:

� Atributele de calitate ºi relaþia acestora cu structura

� Scenarii pentru atribute de calitate

� Tactici

� Documentarea arhitecturilor, ...

Lipsã modele, instrumente sau instruire pentru evaluatori.

SAAM -�FHQWUDWă�SH�

� funcþionalitate relativ la scenariile directe

� diferite feluri de modificabilitate (scalabilitate, portabilitate, ...) relativ la scenariile indirecte.

Page 575: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

PLAN CURS

Concepte generale în evaluarea arhitecturilor software

SAAM (Software Architecture Analysis Method)

ATAM (Architecture Tradeoff Analysis Method)

ACDM (Architecture Centric Design Method)

Page 576: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

ATAM (Architecture Tradeoff Analysis Method)

Obiectiv � evaluarea consecinþelor deciziilor arhitecturale în raport cucerinþele pentru atribute de calitate ºi obiectivele business.

Metodã bazatã pe scenarii:

Se pleacã de la premiza cã organizaþia nu a identificat sau codificat în mod explicit cerinþele pentru atribute de calitate.

Scenariile sunt dezvoltate de stakeholder-i ºi utilizate pentru analizarea arhitecturii în vederea descoperirii de riscuri.

Riscurile descoperite pe parcursul evaluãrii ATAM pot deveni apoi þinta activitãþilor de diminuare, cum ar fi analizã ºi proiectare ulterioare, prototipare, cercetare,�HWF.

Compromisurile apãrute, non-riscurile ºi punctele sensibile pot fi identificate explicit ºi documentate.

Page 577: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

ATAM

NU

Fixarea, prioritizarea sau determinarea impactului riscurilor (activitate ulterioarã

ATAM).

Oferã analize precise ºi formale.

DA

Descoperã tendinþe generale � corelaþii între deciziile arhitecturale ºi proprietãþile sistemului.

Descoperã orice risc, punct sensibil, compromis ºi non-risc, create de deciziile arhitecturale.

Page 578: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

ATAM - utilizare

Pe parcursul ciclului de dezvoltare de software, dacã existã o arhitecturã

de evaluat.

Dupã ce arhitectura a fost specificatã dar existã cod puþin sau deloc.

Pentru evaluarea alternativelor arhitecturale.

Pentru evaluarea arhitecturii unui sistem existent.

Arhitecturã de evaluat = reprezentãri arhitecturale ale unui sistem existent sau a

unuia ce urmeazã a fi dezvoltat.

Page 579: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

ATAM - procedura

Faza 0:Partneriat

ºiPregãtire

Faza 1:Evaluare iniþialã

Faza 2:Evaluare completã

Faza 3:Urmarire

Durata: variazãComunicare: telefon, email

Durata: 1.5 - 2 zile pentru fiecare fazã.Comunicare: ºedinþã condusã în mod tipic la sediul clientului.

Durata: variazãComunicare: telefon, email.

Page 580: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

ATAM � Faza 0

Precede partea tehnicã a evaluãrii.

Clientul ºi o parte din echipa de evaluare fac schimb de pãreri referitoare la metodã ºi la sistemul a cãrui arhitecturã trebuie evaluatã.

Conducãtorul evaluãrii va lua decizia de a realiza sau nu evaluarea.

Dacã decizia este pozitivã, atunci este elaborat un agreement de realizare a evaluãrii.

Se creazã nucleul echipei de evaluare.

Echipa de evaluare citeºte documentaþia arhitecturalã oferitã.

Se prezintã evaluatorilor determinanþii business ºi arhitectura.

Sunt identificaþi stakeholder-ii corespunzãtori, iar aceºtia sunt deciºi sã

participe la evaluarea ATAM. Echipa de evaluare primeºte lista participanþilor cu rolurile acestora în raport cu sistemul.

Page 581: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

ATAM � Faza 0

Decizia de realizare a evaluãrii

Condiþii: Evaluatorii trebuie sã înþeleagã suficient de bine starea arhitecturii pentru a se lua o

decizie ºi a se putea asigura cã sistemul candidat este pregãtit pentru evaluare.

Dacã se ia o decizie negativã, atunci trebuie explicate clienþilor motivele acesteia ºi sugerate operaþii de remediere, sau trebuie lucrat împreunã cu clienþii la dezvoltarea arhitecturii.

Consideraþii cheie: A fost identificat un arhitect responsabil ºi acesta este decis sã participe la

evaluarea ATAM.

A fost identificat un manager business, manager de program ºi/sau sponsorul sistemului, ºi acesta este decis sã participe la evaluarea ATAM.

Echipa de evaluare a primit documentaþie arhitecturalã suficientã pentru a proceda

la evaluarea ATAM.

� Existã o reprezentare a contextului ºi mai multe reprezentãri ale sistemului (module, C&C, alocare)

� Existã suficient text descriptiv.

Page 582: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

ATAM � echipa de evaluare

4 � 6 persoane

Roluri:

� Conducãtor

� Moderator ��IDFLOLWHD]ă�GLVFXþii, brainstorming ºi analizã

� Secretar ��FRPSOHWHD]ă�IRUPXODUXO�HOHFWURQLF�$7$0�FX�DUERUHOH�XWLOLWDU�DO�atributelor de calitate, scenarii brute, riscuri, sensibilitãþi ºi compromisuri.

� Observator proces ��PRQLWRUL]HD]ă�HWDSHOH�SURFHVXOXL de evaluare, ia notiþe despre acesta ºi despre modul în care ar putea fi îmbunãtãþit.

� Organizator timp ��LQGLFă�PRGHUDWRUXOXL�PRPHQWXO�H[SLUăULL�WLPSXOXL�DORFDW�pentru o etapã.

� Specialist(i) ��ULGLFă�SUREOHPH�OD�FDUH�QX�V-au gândit stakeholder-ii; pune întrebãri bazate pe modul în care atributele de calitate de interes sunt corelate cu stilurile arhitecturale.

Page 583: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

ATAM � Paºii procesului

1. Prezentarea metodei ATAM

2. Prezentarea determinãrilor business

3. Prezentarea arhitecturii

4. Identificarea abordãrilor arhitecturale

5. Generarea arborelui utilitar al atributelor de calitate

6. Analiza abordãrilor arhitecturale

7. Brainstorm ºi prioritizare scenarii

8. Analiza abordãrilor arhitecturale

9. Prezentarea rezultatelor

10. Producerea unui raport final pentru client

11. Evaluarea calitãþii procesului de evaluare ºi a materialelor ATAM.

Faza 1

Faza 2

Faza 3

Page 584: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

ATAM � Faza 1

Implicã un grup restrâns de stakeholder-i, orientaþi predominant pe partea tehnicã.

Faza 1 este:

Centratã pe arhitecturã

Concentratã pe obþinerea informaþiilor arhitecturale detaliate ºi pe analiza acestora.

Analizã în manierã descendentã (top-down).

Page 585: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

ATAM � Faza 1

Pasul 1: Prezentarea ATAM - echipa de evaluare:

Motivele evaluãrii arhitecturilor software

Paºii, pe scurt Tehnicile Ieºirile produse de metodã

Pasul 2: Prezentarea determinanþilor business - un reprezentant al clientului ATAM

Contextul business al sistemului

Cerinþele funcþionale de nivel înalt

Cerinþele de nivel înalt pentru atributele de calitate� Determinãrile arhitecturale � atributele de calitate care dau forma arhitecturii

� Cerinþele critice � cerinþele de calitate care sunt esenþiale pentru succesul sistemului

Evaluatorii trebuie sã ASCULTE CU ATENÞIE: Atributele de calitate sunt derivate din obiectivele business.

Exemple: Sistemul trebuie sã fie disponibil 24/7 disponibilitate.

Datele utilizator nu vor fi compromise în nici o situaþie securitate.

Page 586: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

ATAM � Faza 1

Pasul 3: Prezentarea arhitecturii - arhitectul

Constrângerile tehnice (sistem de operare, hardware, middleware)

Alte sisteme cu care sistemul trebuie sã interacþioneze

Abordãrile arhitecturale utilizate pentru a rãspunde la cerinþele pentru atribute de calitate.

Pasul 4: Identificarea abordãrilor arhitecturale � echipa de evaluare

Distilarea atributelor de calitate ºi asocierea lor cu determinanþii business.

Distilarea determinanþilor arhitecturii (funcþii, calitãþi, constrângeri).

Identificarea abordãrilor arhitecturale predominante ºi motivele pentru care au fost selectate de arhitect.

Identificarea tacticilor, ºabloanelor ºi altor mecanisme, în cadrul arhitecturii, care sunt cheie în realizarea atributelor de calitate urmãrite.

Page 587: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

ATAM � Faza 1

Pasul 5: Generarea arborelui utilitar al atributelor de calitate � echipa de evaluare

ATAM pleacã de la ipoteza cã atributele de calitate nu au fost identificate formal de cãtre client

Atributele de calitate sunt identificate, prioritizate ºi rafinate prin construirea unui arbore utilitar:

Arbore utilitar �� Obiectivele de calitate cele mai importante sunt plasate în nodurile de nivel înalt (în mod

tipic performanþa, modificabilitatea, securitatea ºi disponibilitatea)

� Scenariile sunt plasate în nodurile terminale.

� Conþine 3 pãrþi majore

Page 588: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

ATAM � Faza 1

Pasul 5: Generarea arborelui utilitar al atributelor de calitate � echipa de evaluare

Realizat pe bazã de SCENARII

Utilitate scenarii:

Reprezentarea intereselor stakeholder-ilor

Înþelegerea cerinþelor pentru atributele de calitate

Acoperire scenarii:

Utilizãri anticipate ale sistemului

Modificãri anticipate ale sistemului

Presiuni neanticipate asupra sistemului

Acceptare scenarii:

Precizeazã clar stimulul ºi rãspunsurile de interes

Este foarte specific

Page 589: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

ATAM � Faza 1

Pasul 5: Generarea arborelui utilitar al atributelor de calitate � echipa de evaluare

SCENARII: stimuli � context - rãspunsuri

Exemple:

Scenariu de utilizare:

Utilizatorul remote solicitã un raport din baza de date via Web pe timpul perioadei de vârf

ºi îl obþine în 5 secunde.

Scenariu de extindere:

Adãugarea unui nou server de date pentru a reduce latenþa din scenariul 1 la 2,5 secunde cu un efort de o persoanã timp de o sãptãmânã.

Scenariu exploratoriu:

Jumãtate dintre servere se defecteazã în timpul operãrii normale fãrã a afecta

disponibilitatea gobalã a sistemului.

Page 590: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

ATAM � Faza 1

Pasul 6: Analiza abordãrilor arhitecturale

Scenariul brut este expandat într-un scenariu format din 6 pãrþi: sursã, stimul, context, artefact, rãspuns, mãsurã pentru�UăVSXQV.

Arhitectului i se pun întrebãri de forma:

�Fiind dat <stimul>, din sursa <sursã>, afectând <artefact>, în condiþiile definite de <context>, arãtaþi cum arhitectura rãspunde în cadrul <mãsurii�SHQWUX�rãspuns>�LQGLFDWă�în scenariu.�

Page 591: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

ATAM � Faza 1

ªablon pentru analiza ATAM

Page 592: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

ATAM � Faza 1

Pasul 6: Analiza abordãrilor arhitecturale

Arhitectul utilizeazã reprezentãrile arhitecturale pentru a parcurge scenariul ºi a descrie modul în care arhitectura rãspunde la stimul.

Evaluatorii ATAM ºi stakeholder-ii pot pune întrebãri, utile pentru a descoperi:

Riscurile

Non-riscurile

Punctele sensibile

Compromisurile

Risc ��GHFL]LH�DUKLWHFWXUDOă�FX�SRWHQþial problematic.

Non-risc ��GHFL]LH�DUKLWHFWXUDOă�EXQă.

Punct sensibil � proprietate a uneia sau mai multor componente (ºi/sau relaþii între componente),�FULWLFă�SHQWUX�REþinerea unui anumit atribut de calitate.

Compromis ��SURSULHWDWH�FH�DIHFWHD]ă�PDL�PXOWH�DWULEXWH�ºi este punct sensibil pentru mai multe atribute.

Page 593: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

ATAM � Faza 1

Pasul 6: Analiza abordãrilor arhitecturale - exemple

Risc ��GHFL]LH�DUKLWHFWXUDOă�cu potenþial problematic.

Compromis ��SURSULHWDWH�FH�afecteazã mai multe atribute ºi este punct sensibil pentru mai multe atribute.

Punct sensibil � proprietate a uneia sau mai multor componente (ºi/sau relaþii între componenente),�criticã pentru obþinerea unui anumit atribut de calitate.

Non-risc ��GHFL]LH�DUKLWHFWXUDOă�EXQă.

�Regulile de scriere a modulelor logicii business din treapta a 2-a a arhitecturii în 3 trepte nu sunt clar articulate. Aceasta ar putea rezulta în replicare de funcþionalitate, compromiþând astfel

modificabilitatea treptei a 3-a.�

�Schimbarea nivelului de criptare poate avea un impact semnificativ atât asupra securitãþii cât ºi asupra performanþei.�

�Valoarea medie a efortului de întreþinere al unui sistem, mãsuratã în numãr de zile-om, poate fi sensibilã la gradul

de încapsulare al protocoalelor de comunicare ºi al formatelor fiºierelor.�

�În ipoteza cã rata de sosire a mesajelor este de 1 mesaj pe secundã, cã timpul de

procesare mesaj este mai mic de 30ms ºi cã existã un proces cu prioritate mai

mare, un termen limitã soft de o secundã pare rezonabil.�

Page 594: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

ATAM � Faza 2

Faza 2 � caracteristici: Implicã un grup mai mare de stakeholder-i.

Concentratã pe obþinerea punctelor de vedere ale diferiþilor stakeholder-i ºi pe verificarea rezultatelor fazei 1.

Centratã pe stakeholder.

Analizã ascendentã (bottom-up).

Activitãþi ale echipei de evaluare în perioada dintre faza 1 ºi faza 2:

Consolidarea notiþelor, arborelui utilitar, riscurilor, non-riscurilor, punctelor de sensibilitate ºi compromisurilor.

Construirea unei reprezentãri pentru faza 2 care recapituleazã rezultatele fazei 1.

Stabilire de teme de risc potenþial.

Începerea creãrii prezentãrii finale ºi scrierii raportului final.

Planificarea logisticii pentru faza 2.

Page 595: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

ATAM

Stabilire temã de risc potenþial - exemplu

Risc: �Nu au fost stabilite bugete pentru sincronizarea activitãþilor lucrative � dificil de prezis timpul de rãspuns�

Risc: �Modificãri minore la

sincronizãrile unor activitãþilucrative�DX�LPSDFW�impredictibil asupra altor activitãþi�

Risc: �Cerinþele de memorie pentru sistem nu pot fi prezise pânã ce nu sunt

integrate toate activitãþile.�

Risc: �Alocarea resurselor sistemului nu este parte a arhitecturii, iar resursele necesare nu pot fi estimate sau bugetate�

Temã de risc: �Nu existã o abordare holisticã la managementul resurselor��

Impact asupra: �Cost, timp de lansare pe piaþã, abilitatea de a concura cu competitorii�

Risc: �Nu existã o abordare

disciplinatã a activitãþilor de planificare � planul este realizat din mers�

Page 596: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

ATAM � Faza 2

Paºii

1. Prezentarea ATAM

2. Prezentarea determinãrilor business

3. Prezentarea arhitecturii

4. Identificarea abordãrilor arhitecturale

5. Generarea arborelui utilitar al atributelor de calitate

6. Analiza abordãrilor arhitecturale

7. Brainstorm ºi prioritizare scenarii

8. Analiza abordãrilor arhitecturale

9. Prezentarea rezultatelor

Page 597: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

ATAM � Faza 2

Pasul 7: Brainstorm ºi prioritizare scenarii

Grupul de stakeholder-i este mai mare ºi mai divers decât în faza 1.

Stakeholder-ii genereazã scenarii în cadrul unui proces de brainstorming cu moderator.

Scenariile din nodurile terminale ale arborelui utilitar sunt folosite ca exemple

Fiecare stakeholder are alocat un numãr de voturi egal cu 30% din numãrul scenariilor generate.

Prioritatea scenariilor se stabileºte prin vot.

Page 598: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

ATAM � Faza 2

Pasul 8: Analiza abordãrilor arhitecturale

Se continuã analiza de la pasul 6, cu grupul extins de stakeholder-i ºi utilizând noile scenarii:

� Se identificã noi riscuri ºi non-riscuri.

� Se adnoteazã informaþii arhitecturale suplimentare pe mãsurã ce sunt

descoperite.

La terminare echipa va solicita o pauzã de aprox. 2 ore, timp în care se va completa prezentarea finalã.

Page 599: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

ATAM � Faza 2

Pasul 9: Prezentarea rezultatelor

Conducãtorul echipei de evaluare face, în mod tipic,�SUH]HQWDUHD�ILQDOă.

Prezentarea se va concentra pe informaþiile de nivel înalt :

Procesul ATAM, durata, participanþii,

Prezentare generalã a obiectivelor business,

Prezentare generalã a arhitecturii sistemului,

Arborele utilitar al atributelor de calitate,

Rezumatul analizelor realizate,

Rezumat al riscurilor, punctelor sensibile, non-riscurilor ºi compromisurilor,

Temele de risc.

Page 600: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

ATAM � Fluxul conceptual

Decizii arhitecturale

ScenariiAtribute

de calitate

Abordãri

arhitecturale

Determinãrile

business

Arhitectura software

impact

Teme de risc

distilateîn

Analiza

Riscuri

Puncte sensibile

Compromisuri

Non-riscuri

Page 601: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

ATAM - probleme

Procedurã disruptivã ��QHFHVLWă�întrerupere, pregãtire, evaluare ºi corectare.

Potrivitã în special pentru procese software mari, de tip waterfall, cu bugete mari.

Evaluare greoaie ºi costisitoare reticenþã în aplicarea ei la proiecte ºi organizaþii mici.

Calitatea analizei ATAM (paºii 6 ºi 8) depinde de antrenamentul, intuiþia ºi experienþa evaluatorilor.

Nu existã instrumente suport.

Nu se precizeazã ce se poate face cu cu rezultatul evaluãrii ºi nu existã

un proces formal pentru utilizarea acestuia.

Adaptarea, utilizarea ºi practicarea curentã a ATAM în cadrul unei firme necesitã o infrastructurã semnificativã.

Page 602: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

PLAN CURS

Concepte generale în evaluarea arhitecturilor software

SAAM (Software Architecture Analysis Method)

ATAM (Architecture Tradeoff Analysis Method)

ACDM (Architecture Centric Design Method)

Page 603: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

Evaluare continuã

Alternativã la o procedurã disruptivã.

Posibila împletire a arhitecturii în ciclul de producþie ºi de mentenanþã.

Utilizarea arhitecturii ca o ancorã a întregului proiect, pentru dezvoltarea de planuri, pentru diminuarea riscurilor, pentru alinierea forþei de muncã, etc.

Metoda ��$&'0�(Architecture Centric Design Method)

- Evaluare continuã a arhitecturii.

- Rafinare incrementalã a arhitecturii.

Page 604: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

ACDM (Architecture Centric Design Method)

etapa 1 Stabilirea determinaþilor arhitecturali

etapa 2 Determinarea ºi stabilirea domeniului proiectului

etapa 3 Creare/rafinare proiect arhitectural

etapa 4 Evaluare proiect arhitectural

etapa 5 DECIZIA

Stage 8 Producþia

Per

ioad

a de

ince

rtitu

dine

Per

ioad

a de

ce

rtitu

dine

etapa 6 Planificare/conducere experimente

NU

Stage 7 Planificarea producþiei

DA

Page 605: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

ACDM (Architecture Centric Design Method)

Avantaje

Adreseazã proiectul arhitectural într-o manierã detaliatã.

Implicã proiectarea iterativã a arhitecturii.

Evaluarea iterativã ºi experimentarea constituie o modalitate extrem de eficientã pentru a adresa ºi diminua riscurile de naturã tehnicã într-un mod structurat.

Rolurile definite în ACDM sunt utile pentru formarea iniþialã de echipe a.î. fiecare membru îºi înþelege responsabilitãþile.

Ghidul, tabelele, modelele ºi listele de verificare oferite de ACDM sunt deosebit de utile.

Page 606: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

ACDM (Architecture Centric Design Method)

Zone ce pot fi îmbunãtãþite:

Necesitã un antrenament semnificativ pe tematica arhitecturilor software pentru a înþelege eficient, a aprecia ºi a utiliza tehnicile cuprinse în metodã.

Îmbunãtãþire prin:

� Ghidare suplimentarã referitoare la modul de proiectare ºi de evaluare a arhitecturilor software,

� Ghidare suplimentarã referitoare la utilizarea arhitecturii pentru activitãþi de întreþinere ºi extindere a sistemului,

� Ghidare ºi instrumente pentru documentarea arhitecturilor,

� Tehnici de recuperare a proiectelor arhitecturale pierdute (reconstrucþia arhitecturii),

� Tehnici pentru mãsurarea conformanþei cu proiectul arhitectural.

Sunt necesare adaptãri, pentru împletirea ACDM cu procesul global de dezvoltare de software.

Page 607: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

ACDM (Architecture Centric Design Method)

Lattanze, A., 2008. Architecting Software Intensive Systems: A Practitioners Guide, AuerbachPublishing, New York, NY.

Abecedar al arhitecturilor software.

Ghid de proiectare arhitecturalã ºi de utilizare a ACDM.

Ghid de utilizare ACDM împreunã cu alte cadre (frameworks) pentru procesul de dezvoltare de software.

etapa 1 etapa 2 etapa 3 etapa 4 etapa 5 etapa 6 etapa 7 etapa 8

Metodã de

obþinere, de la

stakeholder-i,

a determinaþilor

arhitecturii.

Metode pentru

organizarea ºi

documentarea

determinaþilor

arhitecturii.

Modele de

planificare

pentru

perioada de

incertitudine.

Ghid de

proiectare ºi

documentare a

arhitecturii

teoretice.

Modele pentru

proiectare,

înregistrare

element ºi

responsabilitãþi

de relaþionare;

modele pentru

înregistrare

motivaþii.

Metodã pentru

revizuirea

proiectului

arhitectural.

Liste de

verificare

pentru

recenzori.

Modele pentru

înregistrare

probleme.

Ghid pentru

clasificarea ºi

analizarea

problemelor ºi

pentru luarea

deciziei de

realizare sau nu

a sistemului.

Modele pentru

planificarea

experimentelor.

Liste de

verificare ºi

modele pentru

actualizarea

planurilor din

perioada de

incertitudine.

Modele, liste de

verificare ºi

metodã pentru

estimarea ºi

planificarea

producþiei.

Modele ºi liste

de verificare

pentru

urmãrire ºi

supraveghere

a producþiei

utilizînd

arhitectura ºi

planurile de

producþie.

Page 608: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 10

id761925 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 609: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

Observaþii preliminare

1. Cerinþele pentru atributele de calitate sunt elementele fundamentale de dirijare a proiectãrii unei arhitecturi software.

Dovada 1:�GDFă�DU�IL�LPSRUWDQWă�GRDU�IXQFþionalitatea, ar fi suficient doar un sistem monolitic.

DAR existã:

Structuri redundante - pentru fiabilitate

Structuri concurente - pentru performanþã

Straturi (layers) - pentru modificabilitate

Dovada 2: restructurarea unui sistem se face de obicei din motive de calitate: îmbunãtãþire performanþã, securitate, modificabilitate, ...

2. Pentru multe atribute de calitate existã o istorie îndelungatã ºi o bazã

bogatã de cunoºtinþe cadre (framework) valoroase utilizate la analizarea arhitecturilor.

Ex. Performanþã � teoria cozilor de aºteptare, teoria�SODQLILFăULLFiabilitate � modele Markov

Page 610: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

PLAN CURS

Principii de proiectare pentru atribute de calitate

Scenarii generale

Tactici

ADD (Attribute Driven Design)

Exemplu de aplicare ADD

Proiectare arhitecturã pentru SECURITATE

Arhitectura securitãþii

Principii ale ingineriei securitãþii

Ciclul de dezvoltare a arhitecturii securitãþii

Page 611: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Problema

Obiectiv: Trecerea sistematicã de la un set de cerinþe la o arhitecturã

software care le satisface.

Cunoºtinþe necesare:

De domeniu

Atribute de calitate

Proiectare arhitecturalã

Metodologie de proiectare

...

Obiectiv general: proiectarea metodicã de arhitecturi software a.î. sã

îndeplineascã atribute de calitate în mod predictibil.

Page 612: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Exprimare cerinþe

Elementele de dirijare a proiectãrii arhitecturale:

Constrângeri � decizii de proiectare pre-definite.

Caracteristici � funcþii ce adaugã valoare pentru utilizator.

Atribute de calitate.

Cerinþele funcþionale � importanþã minorã

Atributele de calitate ºi constrângerile � importanþã majorã

Abordarea metodologicã a proiectãrii propusã:

Determinarea precisã a atributelor de calitate în termeni de scenarii

Exploatarea �structurii� modelelor pentru atributele de calitate, pentru definirea structurii arhitecturilor bine formate.

Page 613: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Exprimare cerinþe

Model pentru specificarea atributelor de calitate:

Utilizarea de scenarii generale pentru atributele de calitate, independente de sistem, ca ghid pentru specificarea cerinþelor pentru atributele de calitate.

Caracterizarea cerinþelor pentru atributele de calitate ale unui anume sistem printr-o colecþie de scenarii concrete pentru atributele de calitate. Acestea sunt instanþe ale scenariilor generale.

Pãrþile componente ale unui scenariu: Stimul Sursã stimul

Contextul în care apare stimulul Artefactul influenþat de stimul Rãspunsul sistemului la stimul

Mãsurile rãspunsului

Page 614: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

Scenarii generale � exempleScenariu pentru disponibilitate

Tabela de generare scenarii pentru disponibilitate:

Sursã stimul:

� Internã sistemului

� Externã sistemului

Context:

� Operare normalã

� Mod degradat

Rãspuns:

� Înregistrare

� Notificare parteneri

� Operare în mod normal sau degradat

Stimul:

� Eveniment neanticipat

� Actualizare la o sursã de date

Artefact:

� Proces

� Memorie persistentã

Mãsuri rãspuns:

� Procentaj de disponibilitate

� Interval de timp în care sistemul poate funcþiona în mod degradat

Exemplu de Scenariu:�Un mesaj neanticipat este recepþionat de un proces al sistemului în timpul funcþionãrii

normale. Procesul trebuie sã-l înregistreze, sã informeze partenerii corespunzãtori ºi sã continue funcþionarea în mod normal,�IăUă�întreruperi.�

Page 615: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

Scenarii generale � exempleScenariu pentru performanþã

Tabela de generare scenarii pentru performanþã:

Sursã stimul:

� Eveniment declanºat de sistem

� Eveniment extern

Context:

� Condiþii normale

� Condiþii critice (ex. supraîncãrcare)

Rãspuns:

� Procesare stimul

� Modificarea nivelului serviciului

Stimul:

� Periodic

� Stocastic

� Sporadic

Artefact:

� Sistem

Mãsuri rãspuns:

� Latenþã

� Termen limitã

� Ratã de transfer

� etc

Exemplu de scenariu:�Un eveniment extern sporadic este recepþionat de sistem în condiþii de funcþionare normalã.�6LVWHPXO�WUHEXLH�Vă�SURFHVH]H�VWLPXOXO�într-un termen limitã specificat.�

Page 616: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

Scenarii generale � exempleScenariu pentru modificabilitate

Tabela de generare scenarii pentru modificabilitate:Sursã stimul:

� Utilizator final

� Administrator

� Dezvoltator

� Sistem

Context:

� La execuþie

� La compilare

� La construire (build)

� La proiectare

Rãspuns:

� Identificarea locurilor modificãrilor

� Realizare modificare fãrã afectarea celorlalte funcþii

� Testare modificare

� Repartizare (deploy) modificare

Stimul:

� Adãugare / ºtergere / variaþie

funcþionalitate, calitate, capacitate

Artefact:

� Sistem

� Interfaþã utilizator

� Context

� Platformã

� Produs COTS

Mãsuri rãspuns:

� Dificultate în termeni de timp ºi / sau cost

Page 617: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Scenarii generale � exempleScenariu pentru securitate

Tabela de generare scenarii pentru securitate:

Sursã stimul:

� Individ sau sistem

� Identificat corect

� Anonim

� Identificat incorect

Context:

� În timp ce utilizatorul foloseºte sistemul

� Din afara sistemului

Rãspuns:

� Autentificare utilizator

� Ascunde identificarea utilizatorului

� Permite / blocheazã accesul la date / servicii (inclusiv drepturi)

� Înregistrare modificãri / acces pe baza identitãþii

� Memorare informaþii într-un format ce nu poate fi citit

Stimul:� Încercare de

� Afiºare informaþii� Utilizarea unui serviciu al sistemului� Modificare / ºtergere informaþii� Reducerea disponibilitãþii resurselor sistemului

Artefact:� Sistem� Date din sistem

Mãsuri rãspuns:� Nivel / timp / resurse de competenþã necesare

eludãrii cu probabilitate de succes a

mecanismelor de securitate � ...

Page 618: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

Scenarii generale � exempleScenariu pentru utilizabilitate

Tabela de generare scenarii pentru utilizabilitate:

Sursã stimul:

� Utilizator final

Context:

� La execuþie

� La configurare

Rãspuns:

� Sistem de help

� Interfaþã familiarã

� Agregare dete / comenzi

� Reutilizare de informaþii

� Undo

� Cancel

� Personalizare

� Internaþionalizare

� ...

Stimul:

� Caracteristicile de instruire ale sistemului

� Utilizarea eficientã a sistemului

� Minimizarea impactului erorilor

� Adaptarea sistemului la nevoile utilizatorului

� Utilizarea confortabilã a sistemului

Artefact:

� Sistem

Mãsuri rãspuns:

� Timp de realizare sarcini

� Numãrul de erori

� ...

Page 619: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

PLAN CURS

Principii de proiectare pentru atribute de calitate

Scenarii generale

Tactici

ADD (Attribute Driven Design)

Exemplu de aplicare ADD

Proiectare arhitecturã pentru SECURITATE

Arhitectura securitãþii

Principii ale ingineriei securitãþii

Ciclul de dezvoltare a arhitecturii securitãþii

Page 620: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Tactici arhitecturale

Tacticã arhitecturalã = mijloc de satisfacere a unei mãsuri pentru un atribut de calitate, prin manipularea unui aspect al unui model pentru atributul de calitate prin decizii de proiectare arhitecturalã.

Aplicare tacticã arhitecturalã :

face trecerea de la o arhitecturã la alta

un parametru al modelului�DWULEXWXOXL�GH�FDOLWDWH�YDULD]ă�într-o anumitã direcþie.

Page 621: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Tactici arhitecturale � exemple

Tactici pentru performanþã

Performanþã

Gestionare solicitare

�Creºterea eficienþei calculelor

�Reducerea overhead-lui de calcul

�Gestionarea ratei de apariþie a evenimentului

�Controlul frecvenþei de eºantionare

�Limitarea timpilor de execuþie

Arbitrare solicitare

� Introducerea concurenþei

�Determinarea politicii de planificare

�Utilizare protocoale de sincronizare

Gestionare resurse multiple

�Creºterea concurenþei fizice

�Echilibrarea alocãrii

resurselor

�Creºterea localitãþii datelor

Page 622: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

Tactici arhitecturale � exemple

Tactici pentru modificabilitate

Modificabilitate

Localizare modificãri

�Coerenþã semanticã

�Anticiparea schimbãrilor

�Generalizare modul

�Limitarea opþiunilor posibile

�Servicii comune abstracte

Prevenirea efectului de propagare

�Ascundere informaþii

�Pãstrarea interfeþelor existente

�Restricþionarea cãilor de

comunicare

�Utilizarea unui intermediar

Amânarea stabilirii

de legãturi

� Înregistrare la momentul execuþiei

�Fiºiere de configurare

�Polimorfism

�Componente înlocuibile

�Aderare la protocoale

Page 623: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Tactici arhitecturale � exemple

Tactici pentru disponibilitate

Disponibilitate

Detecþie defecte

Recuperare -�pregãtire ºi

reparare

Recuperare �reintroducere

Prevenire

�Ping/Echo

�Heartbeat (PULS)

�Excepþii

�Votare

�Redundanþã activã

�Redundanþã pasivã

�Rezerve

�Shadow

�Resincronizare stãri

�Rollback

� Îndepãrtare de

la serviciu

�Tranzacþii

�Monitorizare proces

Page 624: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

Principii de proiectare pentru atribute de calitate

Scenarii generale

Tactici

ADD (Attribute Driven Design)

Exemplu de aplicare ADD

Proiectare arhitecturã pentru SECURITATE

Arhitectura securitãþii

Principii ale ingineriei securitãþii

Ciclul de dezvoltare a arhitecturii securitãþii

PLAN CURS

Page 625: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

ADD � Attribute Driven Design

ADD � metodã�GH�SURLHFWDUH�DUKLWHFWXUDOă�în care procesul este condus de

cerințele pentru atributele de calitate.

Definitã ca proces recursiv de descompunere a unui (sub)sistem aplicând

tactici arhitecturale și șabloane care satisfac cerințele principale pentru

atribute de calitate.

Bibliografie la www.sei.cmu.edu

Wojcic R., Bachmann F., Bass L., Clements P., Merson P., Nord R., Wood B., Attribute Driven Design (ADD) Version 2.0, Technical Report CMU/SEI-2006-TR-023, nov 2006

Page 626: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

ADD � Attribute Driven Design

Pas 1: Stabilirea suficienței specificațiilor pentru cerințe

� cerințele funcționale

� constrângerile de proiectare

� scenariile pentru atributele de calitate

Pas 2: Alegerea elementului ce va fi descompus

- inițial � întregul sistem; ulterior � subsistemele identificate în trecerile anterioare

Pas 3: Identificarea cerințelor candidat care dirijeazã arhitectura

Pas 4: Alegerea unui concept de proiectare ce satisface cerințele care dirijeazã

arhitectura: se iau decizii arhitecturale.

�������/LVWDUHD�PDMRULWăþii alternativelor de proiectare

� Selectarea ºabloanelor preferate

� Evaluarea pentru validarea proiectului arhitectural

�������5HDOL]DUHD�GH�PRGLILFăUL�SHQWUX�FRUHFWDUHD�GHILFLHQþelor detectate.

Pas 5: Instanțierea elementelor arhitecturii și alocarea de responsabilitãți

Pas 6: Definirea interfețelor pentru elementele instanțiate

Pas 7: Verificarea și rafinarea cerințelor și transformarea lor în constrângeri pentru

elementele instanțiate.

bine definite și prioritizate

Page 627: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Principii de proiectare pentru atribute de calitate

Scenarii generale

Tactici

ADD (Attribute Driven Design)

Exemplu de aplicare ADD

Proiectare arhitecturã pentru SECURITATE

Arhitectura securitãþii

Principii ale ingineriei securitãþii

Ciclul de dezvoltare a arhitecturii securitãþii

PLAN CURS

Page 628: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

ADD � Exemplu

Aplicarea ADD�SHQWUX�SURLHFWDUHD�XQXL�VXEVLVWHP�FH�RIHUă�VHUYLFLL�GH�toleranțã la defecte, identificat într-o primã etapã de aplicare a metodei pentru proiectarea unui sistem de urmãrire.

Detalii la www.sei.cmu.edu

Wood W.G., A Practical Example of Applyng Attribute-Driven Design (ADD) Version 2.0, Technical Report CMU/SEI-2007-TR-005, febr 2007

Sistem urmãrireSistem

Interogare stare / rãspuns

Actualizare stare

Actor interogare

Actor actualizare

Page 629: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

ADD cerinþe funcþionale

R1. Actor actualizare ��WULPLWH�OD�LQWHUYDO�GH�1 sec. actualizãri la serviciul urmãrire;

Serviciul poate tolera pierderi ocazionale de date, în special în condiþii tranzitorii cauzate de defectarea echipamentului: serviciul se poate redresa�GXSă�UDWDUHD�D�2 actualizãri atunci când o primeºte pe a 3-a; dacã se pierd mai mult de 3 actualizãri consecutive, operatorul trebuie sã asiste serviciul în procesul de redresare pentru a evita intervenþia operatorului, procesarea trebuie sã

reînceapã în mai puþin de 2 sec. dupã o cãdere.

R2. Actor interogare � trimite sporadic cereri de interogare date ºi trebuie sã primeascã

exact un rãspuns la fiecare interogare.

Categorii actori�LQWHURJDUH: -�FHUHUL�IUHFYHQWH�SHQWUX�FDQWLWăþi mici de date;�-�FHUHUL�RFD]LRQDOH�SHQWUX�FDQWLWăþi mari de date.

Timpul de rãspuns pentru interogãri trebuie sã fie mai mic decât�GXEOXO�WLPSXOXL�QRUPDO�

de rãspuns pentru o interogare particularã.

Page 630: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

ADD constrângeri de proiectare

C1. capacitate: � coeficient utilizare procesor și memorie 50%; coeficient utilizare

rețea 50%� 100 clienți de actualizare; 25 clienți de interogare� se�HVWLPHD]ă�100 actualizãri și 5�LQWHURJăUL�SH�secundã

C2. dispozitiv�PHPRULH�SHUVLVWHQWă�:� informații de stare salvate cel puțin odatã pe minut de cãtre serviciul

urmãrire; folosite ca date de restart dacã toate replicile serviciului urmãrire cad.

C3. replici: � serviciul urmãrire ºi memoria persistentã vor avea câte 2 replici

pentru asigurare disponibilitate, fiabilitate ºi mentenabilitate.

Page 631: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

ADD scenarii cerinþe pentru atribute de calitate agreate de pãrþile interesate

Serviciul este disponibil în max.���min.

Starea componentei la revenire diferã cu max. 1 min. faþã de starea acesteia la momentul

producerii avariei.

Replica secundarã devine replicã primarã; începe procesarea cererilor de actualizare în mai puþin de 2 sec. de la avariere.Toate cererile de interogare trebuie onorate cu o întârziere medie de max. 3 sec.

Mãsurã

rãspuns

Informare clienþi - serviciu indisponibil.

Relansare serviciu. Informare clienþi ��DFFHSWDUH�actualizãri.

Corelare actualizãri cu informaþiile anterioare (automat / cu asistenþã administrator).

Informare clienþi ��DFFHSWDUH�LQWHURJăUL.

Onorarea tuturor cererilor efectuate anterior ºi pe timpul avariei. Cererile de actualizare pot fi ignorate max. 2 sec.

Rãspuns

Serviciul urmãrireServiciul urmãrireArtefact

Doar o replicã a serviciului urmãrire oferã servicii. O copie a componentei este disponibilã pe

memoria persistentã ºi poate fi transferatã la un

procesor de rezervã via LAN.

Existã douã replici în sistem.

Componenta serveºte mai mulþi clienþi concurenþi ºi pot exista ºi alte cereri într-o coadã de aºteptare

Context

Componenta ce se defecteazãComponenta ce se defecteazãSursã stimul

Cade o componentã hw/ sw a serviciului urmãrireCade o componentã hw/sw a serviciului urmãrire

Stimul

Scenariul S2��5HYHQLUH�OHQWă:Scenariul S1��5HYHQLUH�UDSLGă:

Page 632: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

ADD Rezultatul primei etape

Comunicare sincronã

Comunicare asincronã

Reprezentare simplificatã

Server urmãrire

Serviciucomunicareasincronã

Client interogare

Memoriepersistentã

A B

Serviciucomunicare

sincronã

Client actualizare

Client interogare

Client interogare

Client actualizare

Client actualizare

Serviciupornire

Serviciunaming

Serviciuînregistrare

Serviciutoleranþã

la defecte Funcþii sistem

Servicii middleware

Serviciu de descompus

Citire/scriere stare

Page 633: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

ADD Rezultatul primei etape

� Stil ales: client � server

� Divizare server în douã componente A ºi B

Strategii de repartizare:

1. A ºi B pe acelaºi procesor 50% utilizare procesor, 100 clienþi actualizare, 30 clienþi interogare

2. A ºi B în procesoare diferite 50% utilizare procesoare, 150 clienþi actualizare, 50 clienþi interogare

� Servicii pentru implementare mecanisme de comunicare sincron ºi asincron.

� Timpi refacere stare din memoria persistentã: A � 0.8 sec, B � 0,6 sec.

� Serviciu înregistrare � refuzã clienþi noi dacã nu se poate pãstra o rezervã predefinitã de

memorie.

� Serviciu de naming � înregistrare interfeþe la componentele server-ului.

� Client actualizare / interogare � apeleazã serviciu de comunicare asincronã / sincronã care

apeleazã iniþial serviciul naming pentru gãsire serviciu (A sau B) ºi pãstrazã aceastã informaþie în cache pentru apeluri ulterioare.

Page 634: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

ADD Etapa 2

Obiectiv: Proiectarea serviciului toleranþã la defecte � parþial, referitor la serviciu urmãrire.

Directive pentru proiectantul arhitecturii serviciului toleranþã la defecte:

- Se vor utiliza cerinþe, modelul existent al elementului critic, scenariile pentru atributele de calitate, cu scopul de a adãuga toleranþã la defecte serviciului urmãrire.

- Dacã cerinþele care dirijeazã arhitectura dirijeazã la o soluþie prea complexã, se vor renegocia în sensul relaxãrii lor.

- Se vor documenta variantele arhitecturale considerate ºi raþiunile pentru alegerea fãcutã.

- Proiectarea serviciului pornire este responsabilitatea unei alte echipe, iar soluþiile vor fi unificate într-o etapã ulterioarã.

Important: se cere un model arhitectural preliminar ce va fi unificat cu alte modele arhitecturale ce sunt dezvoltate în paralel �VH�YD�XUPăUL�GRDU�VDWLVIDFHUHD�FHULQþelor care dirijeazã arhitectura, nu se va realiza un proiect de detaliu.

Page 635: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

ADD Etapa 2

2. Alegerea elementului ce va fi descompus : Serviciul toleranþã la defecte.

Obs. Doar problematica referitoare la serviciul urmãrire.

3. Identificarea cerinþelor candidat care dirijeazã arhitectura:

Obs. Identificate folosind ºi constângerile de proiectare rezultate din etapa 1.

maremareRezultat etapa 1: timpi�UHIDFHUH�VWDUH�GLQ�PHPRULD�SHUVLVWHQWă�(P3)

micãmareRezultat etapa 1: mecanisme de comunicare (P2)

maremareRezultat etapa 1: caracteristici de repartizare (P1)

maremareCerinþã proiectare: douã replici (C3)

micãmedieCerinþã proiectare: serviciu memorie persistentã (C2)

maremareCerinþã proiectare: restricþii de capacitate (C1)

maremareCerinþã: funcþionalitatea serviciului urmãrire (R1 ºi R2)

mediemedieScenariu: Revenire lentã (S2)

maremareScenariu: Revenire rapidã (S1)

DificultateImportanþãCerinþe ce dirijeazã arhitectura

Page 636: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

ADD Etapa 2

Pas 4: Alegerea unui concept de proiectare ce satisface cerințele care dirijeazã

arhitectura

4.1 Identificarea intereselor asociate cerinþelor care dirijeazã arhitectura

Interese (concerns) asociate cu serviciile de toleranþã la defecte:

� Pregãtire ��WDFWLFL�GH�UXWLQă�SH�SHULRDGD�QRUPDOă�GH�IXQFþionare pentru a asigura revenirea sistemului

� Detecþie � tactici asociate cu detectarea avariilor ºi notificarea unui element de rezolvare a problemei

� Refacere � operaþii realizate în perioada de tranziþie de la cãderea sistemului pânã la

revenirea acestuia la regimul de funcþionare normalã.

Page 637: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

ADD Etapa 2Alegere concept de proiectare

Toleranþã la defecte

Pregãtire Detecþie Recuperare

�Restart

�Deployment

� Integritate date

�Monitorizare stare de funcþionare

�Transparenþã la clienþi

�Pornire replicã nouã

�Comportament client actualizare dupã avarie

tranzitorie

�Comportament client actualizare dupã avarie

hard (element de backup indisponibil)

�Comportament client interogare dupã avarie

tranzitorie

�Comportament client interogare dupã avarie hard (element de backup indisponibil)

4.1 Identificarea intereselor asociate cerinþelor care dirijeazã arhitectura - detalii

Page 638: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

4.2 Creare listã de ºabloane potrivite cu fiecare interes, identificare parametrii discriminatori si valorile acestora. 4.3 Selectare ºabloane

ADD Etapa 2Alegere concept de proiectare

nu> 50 msecactivãLoad sharing

nu> 50 msecactivãMaster / Master

posibil> 0.3 secpasivãWarm restart

da> 2 minpasivãCold restart

Pierdere serviciiEstimare duratã nefuncþionareTip replicãNume ºablon

Interes = Restart Parametrii discriminatori

Raþionament :�Conform R1 ºi S1 : timp maxim de repornire = 2 sec.�Warm restart: mai simplu de implementat.

Consecinþe :�Server-ul primar (A ºi B) recepþioneazã toate cererile ºi rãspunde la ele.�Server-ul secundar (standby: A� ºi B�) este încãrcat pe alt procesor ºi preia starea din memoria persistentã atunci când e promovat ca primar.

Page 639: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

ADD Etapa 2Alegere concept de proiectare

A�, B

A�, B�

P#2

A�, B

A�, B�

A cade

150

100

# actualizãri

0.850A, B�Separat

1.430A, BGrupat

Timp revenire#interogãriP#1Nume ºablon

Interes = Deployment Parametrii discriminatori

Raþionament :

�Arhitectul este familiar cu ºablonul Grupat, chiar�GDFă�UHYHQLUHD�SUHVXSXQH�FLWLUHD�VWăULORU�ambelor componente A ºi B din memoria persistentã.

�Totuºi sunt îndeplinite cerinþele.

Consecinþe :

�Componentele server-ului primar (A ºi B)�SDUWDMHD]ă�DFHODºi procesor. Similar, componentele server-ului secundar (A� ºi B�) partajeazã un alt procesor.

�Sistemul nu va fi operaþional cu componentele server-ului primar în procesoare diferite.

Page 640: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

ADD Etapa 2Alegere concept de proiectare

nu1.2 sec per minut + 1 mesaj per x sec.Ckp + Bundled Log Changes

Copie actualizatã a stãrii1.2 sec per minut + 1 mesaj per x sec.Ckp + Sync Primary & Backup

nu1.2 sec per minut + 100 mesaje per sec.Ckp + Log Changes

nu1.2 sec la fiecare 2 secundeFast checkpoint

nu1.2 sec la fiecare minutSlow checkpoint (Ckp)

Încãrcare procesor standbyÎncãrcare de comunicareNume ºablon

Interes = Integritate date Parametrii discriminatori

Raþionament :�Conform S2 : checkpoint la fiecare minut�Conform S1 : timp maxim actualizare 2 sec.�Se alege x=2 ºi varianta cea mai simplã.

Consecinþe :�Replica primar: salveazã starea odatã pe minut în fiºierul Ckp; adunã toate schimbãrile de

stare ºi le salveazã în fiºierul Log la fiecare 2 sec.

�Server-ul promovat ca primar: calculeazã starea conform informaþiilor din Ckp ºi Log ºi lanseazã salvarea ei în memoria persistentã; fãrã a se bloca în aºteptarea încheierii acestei operaþii, continuã procesarea actualizãrilor ºi interogãrilor.

Page 641: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

ADD Etapa 2Alegere concept de proiectare

8 mesaje (ping ºi echo pt. A, A�, B, B�)Ping / Echo

0 mesajeUpdate client detects failure

0 mesajeQuery client detects failure

4 mesaje (pt. A, A�, B, B�)Heartbeat (PULS)

Încãrcarea liniei de comunicareNume ºablon

Interes = Monitorizare stare funcþionare Parametru discriminator

Raþionament :

�Se preferã controlul de cãtre dezvoltatorii aplicaþiei a cerinþelor de temporizare.

�Se alege varianta cea mai simplã ºi care necesitã lãrgime de bandã mai micã.

�PULS setat la 0.25 sec 4 mesaje per sec.

Consecinþe :

�1.2 sec (iniþializarea celor 2 fiºiere Ckp) + 0.25 sec (PULS) ��.55 sec rezervã.�

�O componentã de monitorizare a stãrii de funcþionare detecteazã lipsa unui PULS ºi informeazã toate elementele interesate.

�Mecanismul de comunicare a unei avarii interne detectatã de A sau B este sã nu se trimitã

PULS.

Page 642: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

ADD Etapa 2Alegere concept de proiectare

infrastructurãmulticastInfrastructura gestioneazã avaria

ProxyunicastProxy gestioneazã avaria

clientunicastClientul gestioneazã avaria

Loc timeoutProtocol necesarNume ºablon

Interes = Transparenþã la clienþi Parametrii discriminatori

Raþionament :�Se preferã ca clienþii sã nu gestioneze avaria ca sã nu aparã uºor interpretãri greºite.�Infrastructura nu are capabilitate multicast inclusã; adãugarea ei este costisitoare iar simularea ei

cu unicast multiplu dubleazã utilizarea sistemului de comunicare.

Consecinþe :�Serviciul Proxy înregistreazã elementele A ºi B la serviciul de nume ºi apoi porneºte componentele primare ºi secundare, înregistrându-le la serviciul de nume sub nume diferite de cele anterioare.�Clientul invocã serviciul de nume ºi obþine referinþa la A sau B,�FX�FDUH�LQYRFă�R�RSHUDþie la serviciul de comunicare corespunzãtor. Acesta foloseºte Proxy pentru a determina replica primarã. Apoi obþine de la serviciul de nume referinþa corespunzãtoare, pe care o va folosi în apelurile ulterioare.�Dacã replica primarã cade, componenta de monitorizare a stãrii detecteazã lipsã PULS la aceasta ºi informeazã serviciul Proxy.�Proxy informeazã serviciile de comunicare despre avarie. Aceste elemente trimit cererile cãtre

serverul primar nou promovat, obþinând referinþele corespunzãtoare de la serviciul de nume.

Page 643: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

ADD Etapa 2Alegere concept de proiectare

Interes = pornire replicã nouã

Amânare decizie pânã la corelarea cu activitatea echipei responsabilã cu proiectarea

mecanismului de pornire.

Interes = comportament client actualizare dupã avarie tranzitorie

����0RQLWRUXO�VWăULL�GH�IXQFþionare informeazã componenta Proxy despre avarie ºi promoveazã replica secundarã la rang de replicã primarã.

� Proxy trimite un nou cod de acces secundar la fiecare mecanism de comunicare asincronã, cod ce va fi folosit pentru urmãtoarea cerere de actualizare.

Page 644: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

ADD Etapa 2Alegere concept de proiectare

Încãrcare mesaje mari la pornireSalvare actualizãri într-un fiºier

Linie de comunicare liberã pe durata nefuncþionãriiOprire trimitere actualizãri

Trimitere date inutilizabileContinuare trimitere actualizãri

ImpactNume ºablon

Interes = Comportament client actualizare dupã avarie hard Parametru discriminator

Raþionament :

�Conform S2 se acceptã comportament degradat ºi restart.

�Nu are rost trimiterea de date inutilizabile

Consecinþe :

�Clienþii trebuie sã fie capabili sã

� accepte o intrare care sã-i informeze cã serviciul urmãrire a cãzut,

� opreascã trimiterea de actualizãri.

Page 645: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

ADD Etapa 2Alegere concept de proiectare

Interes = comportament client interogare dupã avarie tranzitorie

���0RQLWRUXO�VWăULL�GH�IXQFþionare informeazã componenta Proxy despre avarie ºi promoveazã replica secundarã la rang de replicã primarã.

� Proxy trimite un nou cod de acces secundar la fiecare mecanism�GH�FRPXQLFDUH�sincronã, cod ce va fi folosit pentru urmãtoarea cerere de actualizare sau la relansarea cererii în curs.

� În ultimul caz serviciul de comunicare sincronã poate primi rãspuns dublu ºi trebuie sã

poatã renunþa la unul dintre acestea.

Interes = comportament client interogare dupã avarie hard

Similar cu comportament client actualizare dupã avarie hard.

Page 646: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

4.4 Determinarea relaþiei între ºabloane ºi cerinþele care dirijeazã arhitectura

ADD Etapa 2Alegere concept de proiectare

C3, S1 Warm standbyRestart

C1GrupatDeployment

C2, C1, S1, S2Checkpoint + Bundled Log ChangesIntegritate date

C1, S1, arhitectPULSDetecþie defecte

C1, arhitectProxy gestioneazã avariaTransparenþã la clienþi

n/aProxy gestioneazã avariaClient actualizare � defect tranzitoriu

C1, S2Stop trimitere actualizãriClient actualizare � defect hard

n/aProxy gestioneazã avariaClient interogare � defect tranzitoriu

C1, S2Stop trimitere interogãriClient interogare � defect hard

C3Douã repliciNumãr replici

Bazã decizieªablon selectatInteres

Page 647: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

4.5 Capturarea vederilor arhitecturale preliminare

ADD Etapa 2Alegere concept de proiectare

Elementele sistemului ºi iteraþia ADD în care au fost definite

Fiºier LogBServiciu înregistrare

Fiºier LogAServiciu nume

Fiºier CkpBServiciu comunicare asincronãMemorie persistentã

Fiºier CkpAServiciu comunicare sincronãClienþi actualizare

ProxyServiciu urmãrire BClienþi interogare

Monitor stare funcþionareServiciu urmãrire AServiciu urmãrire

Elemente definite în iteraþia 2Elemente definite în iteraþia 1Elemente definite direct din cerinþe

Page 648: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

ADD Etapa 2Alegere concept de proiectare

Reprezentare simplificatã

Serviciucomunicareasincronã

Client interogare

CkpA, CkpBLogA, LogB

Server urmãrire

primar

A B

Serviciu comunicare

sincronã

Client actualizare

Client interogare

Client interogare

Client actualizare

Client actualizare

Serviciupornire

Serviciunaming

Serviciuînregistrare

Serviciu toleranþã la defecte Comunicare sincronã

Comunicare asincronã

Funcþii sistem

Servicii middleware

Servicii toleranþã la

defecte

Citire/scriere stare

Notificare avarie

Monitor starefuncþionare

Proxy

Server urmãrire

secundar

A� B�

PULS

Pe durata revenirii

Page 649: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

ADD Etapa 2Alegere concept de proiectare

Comportamentul sistemului pentru detecþie avarie ºi recuperare din avarie � exemplu.

Page 650: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

ADD Etapa 2Alegere concept de proiectare

Cazul cel mai defavorabil:

T =Tps + Th + TrA + TrB + TrL + Tus = 2 + 0.25 + 0,8 + 0.6 + 0,2 + 0.1 = 3,95 inacceptabil

� Tps � periodicitate salvare în fiºier Log (2s)

� Th � periodicitate PULS (0.25s)

� TrA, TrB ��WLPS�GH�UHIDFHUH�VWDUH�$, B�FX�GDWH�GLQ�PHPRULD�SHUVLVWHQWă�(0.8s+0.6s)

� TrL � timp refacere fiºier Log cu date din memoria persistentã (0.2s)

� Tus � timp actualizare stare A ºi B cu date din fiºier Log (0.1s)

Page 651: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

4.6 Evaluarea ºi rezolvarea inconsistenþelor

ADD Etapa 2Alegere concept de proiectare

Variante îmbunãtãþire sistem:

1. Reducere periodicitate salvare în Log; sincronizare cu PULS.

Tps=1s. (Tps+Th) de la 2.25s la 1s T nou= 2.7s.

Tps=0.5s. încãrcare prea mare a mecanismului de comunicare.

2. Periodicitate salvare în Log =��.5 sec; salvare echivalentã cu PULS recunoscut de

memoria persistentã extindere funcþionalitate memorie persistentã cu recunoaºtere cãdere ºi informare alte elemente din sistem.

Necesitã modificarea modelului proiectat anterior : doar dacã va fi necesar.

3. Cele trei accese la memoria persistentã � concurente.

Reducere teoreticã a TrA+TrB+TrL de la 1.6s la 0.8s, practic însã existã partajare de

resurse 1s. T nou= 2.1 sec.

4. Deployment cu A ºi B pe procesoare diferite refacerea unei singure componente.

max(TrA || TrL, TrB || TrL)=0.85s. T nou=1.95s.

Page 652: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

ADD Etapa 2Alegere concept de proiectare

Variante îmbunãtãþire sistem (cont.):

5. Integritate date cu pãstrarea la secundar a unei copii actualizate a stãrii primarulului.

Necesitã modificarea modelului proiectat anterior : doar dacã va fi necesar.

6. Reducerea dimensiunii stãrii ce trebuie salvatã prin recalcularea la restart a unor date de stare.

Necesitã modificarea modelului proiectat anterior �QHFHVLWă�DFRUGXO�HFKLSHL�FH�D�UHDOL]DW�

etapa 1. Acordul obþinut TrA=TrB=0.6s. TrA || TrL=0.65s. T nou = 1.75s.

Page 653: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

Pas 5: Instanþierea elementelor arhitecturale ºi alocarea responsabilitãþilor.

Element A (B) :� Primeºte mesaje de la clienþi, actualizeazã starea ºi rãspunde la interogãri.� A este repartizat pe acelaºi procesor cu B� dupã o cãdere a B, va funcþiona pe acelaºi procesor

cu noul B primar pânã la instanþierea unui nou B pe celãlalt procesor care va prelua rolul de primar (proces nedefinit încã).

� Trimite PULS la monitorul stãrii de funcþionare la fiecare 0.25s� Salveazã starea în fiºierul CkpA la fiecare minut.� Cumuleazã schimbãrile de stare ºi scrie în fiºierul Log la fiecare 1s; sincronizare cu salvare în CkpA.� Pornirea elementelor va fi adresata ulterior, împreunã cu echipa de proiectare a arhitecturii

serviciului Pornire.� Dacã ambele A ºi B� sunt defecte, elementul Proxy va notifica actorii interesaþi.

Memoria persistentã:Conþine fiºierele CkpA, CkpB, LogA ºi LogB, suprascrise la fiecare actualizare.

Monitorul stãrii de funcþionareUtilizeazã un timer pentru a verifica pulsurile primite de la A, A�,B ºi B�. Dacã lipseºte un semnal PULS

notificã elementul Proxy.

ADD Etapa 2

Page 654: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

Serviciu comunicare asincronã :� Primeºte cereri de la clienþii actualizare ºi o direcþioneazã cãtre elementul corespunzãtor, folosind

serviciile elementului Proxy. Dacã ambele replici sunt inactive cere clienþilor sã întrerupã trimiterea

mesajelor de actualizare.

Serviciu comunicare asincronã :Primeºte cereri de la clienþii interogare. Funcþioneazã similar cu serviciul comunicare asincronã, cu

diferenþa cã blocheazã clienþii pânã la obþinerea rãspunsului la interogare.

Proxy:Înregistreazã toate metodele elementelor A ºi B la serviciul de nume. Porneºte efectiv elementele A, A�,B ºi B� ºi le înregistreazã metodele cu nume diferite la registrul de nume. Determinã statutul de primar sau

secundar pentru fiecare element. Captureazã toate cererile ºi le direcþioneazã cãtre elementul primar

corespunzãtor. Dupã detectarea unei avarii trimite serviciilor de comunicare referinþele la metodele din secundarul promovat ca primar.

Client actualizare / interogareCãderea unei componente ºi revenirea din avarie sunt transparente pentru clienþi. Se pot pierde un numãr

acceptat de actualizãri, respectiv poate sã aparã o întârizere acceptatã a rãspunsului la interogare.La apariþia unei cãderi hard (fãrã backup) clienþii vor fi notificaþi pentru a opri trimiterea de mesaje.

ADD Etapa 2

Page 655: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

Pas 6: Definirea interfeþelor elementelor instanþiate.

ADD Etapa 2

La refacerePrimaryFailedServiciu comunicare (s/a)Proxy

Avarie ambele repliciStopServiciu comunicare (s/a)Proxy

aleatorInterogareA (B) primarServiciu comunicare sincronã

1sActualizareA (B) primarServiciu comunicare sincronã

1sWriteLogMemoria persistentã LogA(B)A (B) primar

0.25sPULSMonitor stare funcþionareA (B) primar, secundar

La refacereReadCkpMemoria persistentã CkpA(B)A (B) primar

La refacereReadLogMemoria persistentã LogA(B)A (B) primar

max. 1s de la detectareAvariePrimarProxyMonitor stare funcþionare

aleatorInterogareServiciu comunicare sincronãClient interogare

1sActualizareServiciu comunicare asincronãClient actualizare

La pornireRegister NamingProxy

WriteCkp

Interfaþã

60s

Timp

Memoria persistentã CkpA(B)A (B) primar

FurnizorSolicitant

Page 656: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

Pas 7 Verificarea îndeplinirii cerinþelor de cãtre arhitectura componentei

dezvoltatã la pasul curent, rafinarea cerinþelor ºi transformarea lor în constrângeri pentru elementele proiectate.

ADD Etapa 2

renegociat TrA=TrB=0.6sRezultat etapa 1: timpi�UHIDFHUH�VWDUH�GLQ�PHPRULD�SHUVLVWHQW�(P3)

serviciu comunicare (s/a), ProxyRezultat etapa 1: mecanisme de comunicare (P2)

warm restart, deployment distribuitRezultat etapa 1: caracteristici de repartizare (P1)

warm restart, deployment distribuitCerinþã proiectare: douã replici (C3)

integritate date Ckp60s & Log1sCerinþã proiectare: serviciu memorie persistentã (C2)

deployment distribuitCerinþã proiectare: restricþii de capacitate (C1)

warm restartCerinþã: funcþionalitatea serviciului urmãrire (R1 ºi R2)

integritate date Ckp60s & Log1sScenariu: Revenire lentã (S2)

warm restart; deployment distribuit; integritate date Ckp60s & Log1s; detecþie avarie PULS la 0.25s; citiri paralele din Ckp & Log pentru refacere.

Scenariu: Revenire rapidã (S1)

Realizare & Constrângeri noiCerinþe ce dirijeazã arhitectura

Page 657: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

Principii de proiectare pentru atribute de calitate

Scenarii generale

Tactici

ADD (Attribute Driven Design)

Exemplu de aplicare ADD

Proiectare arhitecturã pentru SECURITATE

Arhitectura securitãþii

Principii ale ingineriei securitãþii

Ciclul de dezvoltare a arhitecturii securitãþii

PLAN CURS

Page 658: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

Arhitectura securitãþii

Arhitectura securitãþii = politicile de securitate ºi elementele de controlpentru diminuarea riscurilor, care sunt integrate în arhitectura sistemuluiîn scopul reducerii riscului unei ameninþãri.

Obiective ale arhitecturii securitãþii:

Confidenþialitate ��SUHYHQLUHD�GLYXOJăULL�GH�LQIRUPDþii utilizatorilor, entitãþilor sau proceselor neautorizate.

Integritate ��SUHYHQLUHD�PRGLILFăULL�VDX�GLVWUXJHULL�HOHPHQWHORU�GH�valoare de cãtre utilizator sau entitate neautorizatã.

Disponibilitate � protecþia faþã de atacuri de tip �denial-of-service� cu impact asupra accesului utilizatorilor la sistem.

Non-repudiere ��DVLJXUDUHD�Fă�QLFL�XQXL�SDUWLFLSDQW�OD�R�LQWHUDFþiune nu i se refuzã rolul în cadrul interacþiunii.

Page 659: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

Ameninþãri, atacuri ºi vulnerabilitãþi

Ameninþare (Threat) = eveniment potenþial ce duce la compromiterea sistemului.

Atac � instanþã sau realizare a unei ameninþãri.

Vulnerabilitate (V) � un viciu sau un defect în procedurile de securitate ale sistemului, în design-ul, în implementarea sau în elementele interne de control ale acestuia care,�dacã este exploatat, poate rezulta în compromiterea securitãþii.

Page 660: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

Elemente de control pentru diminuarea riscurilor

Proceduri de securitate

Rutare separatã pentru PIN ºi card ATM.

Dubla împachetare a materialelor / datelor sensibile înainte de expediere.

Schimbarea frecventã a parolelor utilizatorilor.

Tehnologii de securitate

Firewall

SSL (secure socket layer)

Software de verificare conturi (audit)

Detectarea intruziunilor

Page 661: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 54

Cerinþe pentru arhitectura securitãþii

Autentificare ��SURFHVXO�GH�VWDELOLUH�D�YDOLGLWăþii unei identitãþi pretinse.

Autorizare ��SURFHVXO�GH�GHWHUPLQDUH�Fă�R�HQWLWDWH�YDOLGDWă�DUH�DFFHVXO�permis la un element securizat.

Audit � abilitatea de a identifica ºi de a asocia o entitate cu interacþiunea sa cu un element securizat.

! Obiective nerealiste de proiectare !:

Predicþia cu acurateþe maximã a riscurilor de securitate

Eliminarea tuturor riscurilor de securitate

Securitate complet automatã

Eliminarea totalã a intervenþiei umane

Integrarea produselor comerciale (COTS) cu pãstrarea integralã a securitãþii

Page 662: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 55

Tensorii proiectãrii arhitecturale pentru securitate

Arhitectura

sistemului

Obie

ctive o

rtogonale

Obiective opuseSecuritate

Disponibilitate mare

Robusteþe

Reconstruirea evenimentelor

Uºurinþã în utilizare

Adaptabilitate

Evoluþie

Performanþã

Scalabilitate

Interoperabilitate

Mentenabilitate

Portabilitate

Page 663: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 56

Controlul securitãþii

Comunicaþii protejate

ResursãProces/utilizator

Autentificare Non-repudiere

Impunerea controlului accesului

Authorizare Tranzacþiiprivate

IDs

Audit

Integritate

Restaurare

Protecþiile sistemului

Identificare

Gestionarea cheilor criptografice

Administrarea securitãþiiControale suport

Controale detecþie ºi recuperare

Controale prevenþie

Page 664: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 57

Principii de proiectare pentru atribute de calitate

Scenarii generale

Tactici

ADD (Attribute Driven Design)

Exemplu de aplicare ADD

Proiectare arhitecturã pentru SECURITATE

Arhitectura securitãþii

Principii ale ingineriei securitãþii

Ciclul de dezvoltare a arhitecturii securitãþii

PLAN CURS

Page 665: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 58

Principii ale ingineriei securitãþii

Securitatea este parte integrantã a arhitecturii sistemului

Apãrare în adâncime (protejare, detectare, recuperare)

Stabilirea ºi separarea zonelor de încredere

Privilegiul minim

Simplitate

Echilibrarea balanþei risc � cost

Protejarea informaþiilor aflate în tranzit ºi a celor de pe suporturile de memorare

Nu existã securitate absolutã

Page 666: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 59

Apãrare în adâncime

Protecþie

Detecþie

Recuperare

Page 667: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 60

Exemplu � sistem portal webCerinþã : autentificare ºi autorizare

Laptops

Web Server

Application Servers

Data

Workstations

Authentication/Authorization Server

Protecþie

Detecþie

Recuperare

Page 668: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 61

Exemplu � sistem portal webCerinþã : audit

Laptops

Web Server

Application Servers

Data

SSL

SSL

Workstations

Authentication/Authorization Server

Security

Audit Server

AuditData

Audit Workstation

Protecþie

Detecþie

Recuperare

Page 669: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 62

Exemplu � sistem portal webCerinþã : autentificare puternicã

Security

Audit Server

AuditData

Laptops

Web Server

Application Servers

Data

SSL

SSL

Workstations

Authentication/Authorization Server

Audit Workstation

S D

Protecþie

Detecþie

Recuperare

Page 670: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 63

Exemplu � sistem portal webZone de încredere

Middle Tier

FirewallWeb Clients

Security

Audit Server

AuditData

Laptops

Application Servers

Data

SSL

SSL

Workstations

Authentication/Authorization Server

Audit Workstation

SD

ServerFirewall

Firewall

Protecþie

Detecþie

Recuperare

Page 671: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 64

SD

Apãrare în adâncime

Detecþie

Protecþie

Detecþie

Recuperare

Page 672: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 65

Apãrare în adâncime

Recuperare

%DFNXS

'DWD

:HE�6HUYHU�Z�

,'6

0LGGOH�7LHU

)LUHZDOO

:HE�&OLHQWV

6HFXULW\

$XGLW�6HUYHU

$XGLW

'DWD

/DSWRSV

$SSOLFDWLRQ�6HUYHUV

'DWD

66/

66/

1HWZRUN�,'6

:RUNVWDWLRQV

$XWKHQWLFDWLRQ�$XWKRUL]DWLRQ�6HUYHU

$XGLW�:RUNVWDWLRQ

SD

5HGXQGDQW

6HUYHU

)LUHZDOO)LUHZDOO

Protecþie

Detecþie

Recuperare

Page 673: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 66

Principii de proiectare pentru atribute de calitate

Scenarii generale

Tactici

ADD (Attribute Driven Design)

Exemplu de aplicare ADD

Proiectare arhitecturã pentru SECURITATE

Arhitectura securitãþii

Principii ale ingineriei securitãþii

Ciclul de dezvoltare a arhitecturii securitãþii

PLAN CURS

Page 674: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 67

Ciclul de dezvoltare a arhitecturii securitãþii

Stabilire politici

Implementare Proiectare

Evaluare Evaluare risc

CerinþeGestionare

Page 675: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 68

Ciclul de dezvoltare a arhitecturii securitãþii

Planificareproiect

Definirecerinþe

Proiectare

Dezvoltare

Integrare& Test

Instalare& Acceptare

Sta

bilir

e po

litic

i

Eva

luar

e ris

c

Cer

inþe

Pro

iect

are

Impl

emen

tare

Gestionare

Evaluare

În fazele mentenanþei/evoluþiei SW

Stabilire politici

Implementare Proiectare

Evaluare Evaluare risc

CerinþeGestionare

Page 676: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 13

id5757248 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 677: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

Observaþii preliminare

1. Cerinþele pentru atributele de calitate sunt elementele fundamentale de dirijare�D�SURLHFWăULL�XQHL�DUKLWHFWXUL�VRIWZDUH.

Dovada 1:�GDFă�DU�IL�LPSRUWDQWă�GRDU�IXQFþionalitatea, ar fi suficient doar un sistem monolitic.

DAR existã:

Structuri redundante - pentru fiabilitate

Structuri concurente - pentru performanþã

Straturi (layers) - pentru modificabilitate

Dovada 2: restructurarea unui sistem se face de obicei din motive de calitate: îmbunãtãþire performanþã, securitate, modificabilitate, ...

2. Pentru multe atribute de calitate existã o istorie îndelungatã ºi o bazã

bogatã de cunoºtinþe cadre (framework) valoroase utilizate la analizarea arhitecturilor.

Ex. Performanþã � teoria cozilor de aºteptare, teoria�SODQLILFăULLFiabilitate � modele Markov

Page 678: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

PLAN CURS

Utilizabilitatea sistemelor software

ªabloane arhitecturale pentru utilizabilitate bazate pe separare

ªabloane arhitecturale suport pentru utilizabilitate (USAP)

Un exemplu de USAP

Page 679: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Utilizabilitate

Def. Utilizabilitate = mãsura calitãþii experimentate de utilizator în interacþiunea cu informaþii sau servicii.

Chiar dacã funcþionalitatea este corectã,

Chiar dacã UI este separatã de funcþionalitate,

Deciziile arhitecturale realizate iniþial pot împiedica implementarea unui sistem utilizabil.

E posibil ca o anumitã modificare solicitatã (de caracteristicã sau de funcþionalitate) în sensul creºterii utilizabilitãþii sã ajungã prea adânc în arhitectura sistemului pentru a permite realizarea ei viabilã din punct de vedere economic ºi de timp.

Page 680: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Utilizabilitate � exemple de scenarii generale

Feedback warning/status/alert

�Se vor afiºa indicatori de stare sau de alertã când sunt satisfãcute condiþiile corespunzãtoare.�

Profil utilizator

�Fiecare utilizator trebuie sã poatã seta diferiþi parametrii care controleazã

prezentarea.�

Agregare comenzi

�Utilizatorul trebuie sã poatã invoca executarea unei colecþii de comenzi.�

Recuperarea din avarie

�La cãderea sistemului, procesorului sau reþelei, utilizatorul nu trebuie sã piardã

starea curentã.�

Suport pentru internaþionalizare

�Utilizatorul trebuie sã poatã folosi un limbaj ºi un format de afiºare care îi este familiar.�

Page 681: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Obiective curs

Înþelegerea principiilor de bazã ale arhitecturilor software pentru sisteme interactive.

Înþelegerea modului în care aceste principii afecteazã utilizabilitatea�VLVWHPXOXL.

Motivul utilizãrii de ºabloane bazate pe separare.

Cazuri în care ºabloanele bazate pe separare nu sunt suficiente.

Page 682: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

Practici obiºnuite în proiectarea de detaliu a sistemelor interactive

Toate tehnicile HCI (Human Computer Interaction) suport pentru proiectarea de detaliu a interfeþei utilizator sunt bazate pe proiectare iterativã.

(i.e proiectare, testare (analizã sau mãsurare), modificare, re-testare)

Odatã ce software-ul a fost dezvoltat, iterarea implicã modificãri ale acestuia.

Inginerii software pregãtesc realizarea acestor modificãri prin izolarea secþiunii ce va fi modificatã (separare).

Page 683: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

PLAN CURS

Utilizabilitatea sistemelor software

ªabloane arhitecturale pentru utilizabilitate bazate pe separare

ªabloane arhitecturale suport pentru utilizabilitate (USAP)

Un exemplu de USAP

Page 684: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

ªabloane arhitecturale pentru utilizabilitatebazate pe separabilitate

MVC (Model-View-Controller) (1980, Smalltalk)

Adaptat pentru context web pe platforma Java EE de la Sun

Recomandat de Microsoft pentru .NET

Documentat în Buschmann (Pattern-Oriented Software Architecture, vol 1)

PAC (Presentation-Abstraction-Control) (1980 � univ. Din Grenoble)

Reacþie la dezavantajele MVC

Utilizate curent în practicã, cu succes dovedit.

Page 685: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

MVC

Orientat obiect

Model � starea ºi funcþionalitatea aplicaþiei(operaþii).

View ��UHGă�PRGHOH�ºi trimite gesturile utilizatorului la controller.

Controller ��DFWXDOL]HD]ă�modelul, selecteazã vedere, defineºte comportamentul aplicaþiei (interacþiuni, flux).

Command Processor

Command Processor

ModelCommand Processor

Command Processor

View

Controller

Dispozitiv de intrare

Dispozitiv de ieºire

Page 686: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

MVC

Avantaje

Suport pentru vederi multiple asupra aceloraºi date

� Utilizatorul are perspective multiple asupra aceloraºi date (ex. vederi de tip outline ºi de tip layout)

� Diferite dispozitive prezintã aceleaºi informaþii în moduri corespunzãtoare

platformelor pe care se aflã (ex. PDA, laptop)

� Diferiþi utilizatori au acces simultan la aceleaºi date

Separare prezentare (view) de aplicaþie �SHUPLWH�UHDOL]DUHD�GH�PRGLILFăUL�DOH�prezentãrii independent de restul aplicaþiei.

Page 687: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

ªabloane bazate pe separare

Larg utilizate în practicã.

Suport pentru dezvoltarea de instrumente specializate

Biblioteci de widget-uri

Diferite tipuri de controller-e

Separarea prezentãrii de aplicaþie este foarte importantã.

DAR ºabloanele bazate pe separare nu sunt suficiente pentru sistemeleinteractive.

Page 688: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

ªabloane bazate pe separare ºi proiectarea iterativã

Cerinþe revelate pe parcursul proiectãrii iterative:

Modificãri ale funcþionalitãþii

Modificãri ale UI referitoare la conþinutul ecranelor

Modificãri ale UI dincolo de conþinutul ecranului

Zona de modificãri dificil de realizat

Modificãri facilitate de

arhitectura software

Cerinþe descoperite pe parcursul proiectãrii

iterative

Page 689: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

MVC ºi proiectarea iterativã (1)

Modificare asupra caracteristicilor afiºãrii modificare view : view conþine toatã

logica de afiºare.

Ex. Modificare culori, font, aºezare în paginã (layout).

Modificare la fluxul prezentãrii modificare controller : controller-ul defineºte fluxul prezentãrii.

Ex. Modificarea ordinii dialogurilor.

Page 690: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

MVC ºi proiectarea iterativã (2)

Adãugarea abilitãþii de a anula o comandã cu duratã mare de execuþie.

Modificari la toate componentele arhitecturii:

� View ��EXWRQ�&DQFHO�VDX�DOWă�PRGDOLWDWH�GH�D�FRPDQGD�DQXODUHD�

� Controller ��ORJLFD�GH�UăVSXQV�OD�FRPDQGă�ºi de executare a funcþiei corespunzãtoare

� Model � modul de alocare a resurselor, ...

Probleme:

� Implicã toate componentele arhitecturii

� Localizare slabã

� Dacã cerinþa apare târziu,�YD�QHFHVLWD�PRGLILFăUL�FRQVLGHUDELOH�DOH�DUKLWHFWXULL

Page 691: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Concluzii

Proiectarea de detaliu a interfeþei utilizator se bazeazã pe

abordare iterativã.

Proiectarea iterativã este suportatã de ºabloanele bazate pe separare.

Unele probleme de utilizabilitate implicã mai multe componente de diferite tipuri ale ºabloanelor bazate pe separare.

Page 692: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

PLAN CURS

Utilizabilitatea sistemelor software

ªabloane arhitecturale pentru utilizabilitate bazate pe separare

ªabloane arhitecturale suport pentru utilizabilitate (USAP)

Un exemplu de USAP

Page 693: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

ªabloane arhitecturale suport pentru utilizabilitate(USAP � Usability Supporting Architectural Patterns)

Obiectiv � recunoaºterea ºi prevenirea problemelor obiºnuite de utilizabilitate care nu sunt suportate de principiul separãrii.

Soluþie - USAP:

Identificarea aspectelor de utilizabilitate care sunt sensibile din punct de vedere arhitectural ºi reprezentarea lor cu scenarii simple.

Oferirea unui mod de analizã a forþelor ce acþioneazã, în aceste scenarii, asupra arhitecturii proiectate.

Oferirea unei liste de verificare�D�UHVSRQVDELOLWăþilor software importante.

Oferirea de ºabloane arhitecturale�FX�SRVLELOLWăþi de satisfacere a acestor scenarii.

Page 694: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

ªabloane arhitecturale suport pentru utilizabilitate(USAP)

Sensibilitate din punct de vedere arhitectural

Un scenariu de utilizabilitate este considerat sensibil din punct de vedere arhitectural dacã

satisfacerea acestuia poate necesita modificãri la arhitectura sistemului.

Într-un ºablon bazat pe separare, aceasta înseamnã cã implementarea modificãrii va avea

impact atât asupra prezentãrii cât ºi asupra abstractizãrii (modelului).

ªabloanele bazate pe separare sunt destinate localizãrii modificãrilor referitoare la prezentarea informaþiilor.

Rezultã - exemplu:

� Modificãri de culori ºi font ��QX�VXQW�VHQVLELOH�GLQ�SXQFW�GH�YHGHUH�DUKLWHFWXUDO

� Adãugarea opþiunii de anulare (Cancel) ��HVWH�VHQVLELOă�GLQ�SXQFW�GH�YHGHUH�DUKLWHFWXUDO.

Page 695: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

ªabloane arhitecturale suport pentru utilizabilitate(USAP)

Scenariu de utilizabilitate sensibil din punct de vedere arhitectural - exemplu.

Anulare comenzi

�Utilizatorul trimite o comandã, apoi se rãzgândeºte dorind oprirea operaþiei ºi revenirea sistemului la starea dinaintea lansãrii comenzii. Nu conteazã motivul

utilizatorului: poate fi o greºealã a sa, poate fi din cauzã cã sistemul nu

rãspunde la comandã, sau poate s-a modificat contextul.�

Page 696: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

ªabloane arhitecturale suport pentru utilizabilitate(USAP)

Exemple de modificãri sensibile din punct de vedere arhitectural.

Agregarea datelor Agregarea comenzilor Alerte Anulare comenzi Verificarea corectitudinii Evaluarea sistemului Validare formã/câmp

Jurnalizare istoric Menþinerea independenþei dispozitivelor

(diferite metode de acces) Menþinerea compatibilitãþii cu alte sisteme Accesibilizarea vederilor Modificarea interfeþelor Navigarea în cadrul unei singure vederi Observarea stãrii sistemului

Operare consistentã la traversarea vederilor

Feedback al progresului Help performant (Context-Sensitive Help)

Recuperarea din defecte Reutilizare informaþii Extragere parole uitate Indicare stare Suport pentru cãutãri extensive

Suport pentru internaþionalizare(diferite limbi)

Suport pentru activitãþi multiple Suport pentru Undo Suport pentru personalizare

(profil utilizator) Suport pentru vizualizare Tur Utilizare concurentã

(Multi-tasking) Verificare resurse Wizard Model�DO�IOX[XOXL�GH�DFWLYLWăþi Lucru în ritmul utilizatorului Lucru în context nefamiliar

Page 697: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

Procesul de dezvoltare

Echipa de dezvoltare:

Ingineri software

Specialiºti în utilizabilitate

Manager proiect

Scenariile de utilizabilitate sensibile din punct de vedere arhitectural sunt surse de cerinþe, deci

Trebuie sã fie concrete

Trebuie sã fie eficace pentru un sistem particular.

Page 698: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Procesul de dezvoltare

În plus faþã de scenariile de utilizabilitate sensibile din punct de vedere

arhitectural, sunt necesare:

Determinarea balanþei cost-beneficiu în implementarea scenariului

Oferirea unui ghid pentru echipa de dezvoltare referitor la problemele asociate cu implementarea soluþiei.

Ghid:

Pentru ingineri software

� Lista responsabilitãþilor ce trebuie considerate de cãtre orice soluþie de implementare a scenariului

� Exemplu de soluþie care alocã responsabilitãþi modulelor bazate pe MVC

Pentru specialiºtii în utilizabilitate

� Tipurile de beneficii aºteptate de la scenariul propus

Ingineri software � costSpecialiºti în utilizabilitate - beneficiiManager proiect - arbitru

Page 699: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Forþele ce acþioneazã asupra proiectului arhitectural

Reguli organizaþionale la utilizator

Activitate în context

Forþe

Sistem

Utilizator

Dorinþe ºi capabilitãþi

Software

Starea software-lui

Responsabilitãþigenerale

Soluþie specificã

(mai multe detalii)Ex. Tactici.

Forþe

Forþe

Forþe

Decizii de proiectare anterioare

ForþeBeneficii

Beneficiioferite de soluþie

Forþe diferite motiveazã aspecte

particulare ale soluþiei.

Page 700: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

Discuþie despre proiectarea arhitecturii

Forþele provin din diferite surse:

� Activitatea implicatã ºi contextul în care opereazã utilizatorul.

� Ex. �Cancel� este util doar dacã operaþia este de lungã duratã.

� Dorinþele ºi capabilitãþile factorului uman.

� Ex., Utilizatorii fac greºeli. �Cancel� oferã un mod de a corecta greºeli.

� Starea sistemului (software-lui).

� Ex. Reþelele cad. Dând utilizatorului posibilitatea de anulare a unei operaþii, acesta poate preveni blocarea datoratã unei cãderi de reþea.

Page 701: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Beneficiile utilizabilitãþii

Elementele ce definesc utilizabilitatea unui sistem software depind de contextul de utilizare al acestuia.

Aspecte comune:

� Eficienþa utilizãrii

� Timpul necesar învãþãrii modului de utilizare eficientã

� Suport pentru explorare ºi pentru rezolvarea problemelor

� Satisfacþia utilizatorului (ex. încredere, confort, acceptare de cãtre

utilizatorii discreþionari)

Beneficiile utilizabilitãþii pot fi organizate ierarhic.

Page 702: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Beneficiile utilizabilitãþii � o ierarhie

Creºte eficienþa utilizatorului individual

Reduce impactul erorilor sistemului

Creºte încrederea ºi confortul utilizatorului

Creºte performanþa activitãþilor de rutinã

Creºte performanþa activitãþilor non-rutiniere

Reduce impactul erorilor utilizatorului datorate lipsei de cunoºtinþe

Previne erorile sistemului

Tolereazã erorile sistemului

Accelereazã porþiunea liberã de erori a activitãþilor de rutinã

Reduce impactul erorilor utilizator la operaþiile de rutinã(scãpãri din vedere)

Sprijinã rezolvarea problemelor

Faciliteazã învãþarea

Previne greºelile Se adapteazã

greºelilor

Page 703: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

Proiectare arhitecturã

Existã o multitudine de metode diferite pentru a satisface un scenariu particular.

Majoritatea sistemelor utilizeazã ºabloane arhitecturale bazate pe separare, ca bazã pentru proiectul de ansamblu al sistemului.

În USAP sunt oferite douã componente diferite ale soluþiei:

Soluþia generalã ��UHVSRQVDELOLWăþile software-lui ce trebuie îndeplinite de orice soluþie.

Soluþia specificã � un ºablon arhitectural care aratã cum trebuie

implementatã soluþia generalã în contextul unui ºablon bazat pe separare.

Pentru exemplificare, vom considera MVC ca fiind un ºablon bazat pe separare acoperitor.

Page 704: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

ªabloane arhitecturale suport pentru utilizabilitate (USAP)

Documentarea ºablonului

Context Situaþia � scenarii de utilizabilitate sensibile din punct de vedere arhitectural.

Condiþiile � constrângeri asupra momentelor când situaþia este relevantã.

Beneficiile utilizabilitãþii � enumerarea beneficiilor aduse utilizatorului prin adoptarea acestui scenariu.

Ghid cost-implementare Soluþia generalã ��VHW�GH�UHVSRQVDELOLWăþi pe care fiecare soluþie trebuie sã le

satisfacã.

Raþiuni fundamentale pentru fiecare responsabilitate în termeni de forþe aflate în conflict:� Forþele exercitate de activitate ºi de context,

� Forþele exercitate de dorinþele ºi capabilitãþile factorului uman,

� Forþele exercitate de starea software-lui atunci când utilizatorul doreºte sã aplice

scenariul sensibil din punct de vedere arhitectural.

Soluþia specificã � ºablonul arhitectural pentru rezolvarea situaþiei, prin asumarea unui ºablon bazat pe separare acoperitor (ex. MVC).

Page 705: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

Concluzii

ªabloanele bazate pe separare nu oferã suport pentru toate scenariile de utilizabilitate sensibile din punct de vedere arhitectural.

Abordarea prezentatã este împachetatã în USAP ºi conþine:

Identificare scenariu de utilizabilitate sensibil din punct de vedere arhitectural

Oferirea de informaþii a.î. echipa de dezvoltare sã poatã face aprecieri în cunoºtinþã de cauzã despre aplicabilitatea scenariului

� Condiþiile în care este aplicabil scenariul

� Beneficiile oferite de implementarea scenariului

� Responsabilitãþile generale utile în orice situaþie, împreunã cu raþiunile fundamentale pentru fiecare responsabilitate

� Soluþie specificã bazatã pe MVC.

Page 706: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

PLAN CURS

Utilizabilitatea sistemelor software

ªabloane arhitecturale pentru utilizabilitate bazate pe separare

ªabloane arhitecturale suport pentru utilizabilitate (USAP)

Un exemplu de USAP

Page 707: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

USAP � exemplu �Cancel�

Situaþia: �8WLOL]DWRUXO�WULPLWH�R�FRPDQGă�ºi apoi se rãzgândeºte, dorind sã

opreascã operaþia ºi sã readucã sistemul în starea de dinainte de lansarea comenzii. Nu conteazã motivul utilizatorului: poate fi o greºealã a sa, poate fi din cauzã cã sistemul nu rãspunde la comandã, sau poate s-a modificat contextul.

Condiþii asupra situaþiei:��Un utilizator lucreazã într-un sistem în care software-ul executã comenzi cu

duratã mare, i.e. mai mult de 1 sec.

Comanda de anulare poate fi trimisã explicit de cãtre utilizator sau se poate lansa automat prin sesizarea unui anumit context.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 708: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

USAP � exemplu �Cancel�

Creºte eficienþa utilizatorului individual� Creºte performanþa activitãþilor de rutinã

� Accelereazã porþiunea liberã de erori a performanþei operaþiilor de rutinã

Cancel permite utilizatorilor sã revoce comenzi lansate accidental ºi sã revinã la la

activitatea anterioarã mai repede decât dacã ar aºtepta terminarea comenzii eronate.

� Creºte performanþa activitãþilor non-rutiniere� Sprijinã rezolvarea problemelor

Cancel permite utilizatorului sã aplice comenzi ºi sã exploreze fãrã teamã, deoarece îºi poate oricând anula acþiunile.

� Reduce impactul erorilor utilizatorului cauzate de lipsa de cunoºtinþe (greºeli)� Se adapteazã greºelilor

Cancel permite utilizatorilor sã anuleze comenzile pe care le-au invocat din necunoaºtere ºi sã revinã la activitatea anterioarã mai repede decât dacã ar

aºtepta terminarea comenzii eronate.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 709: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

USAP � exemplu �Cancel�

Reduce impactul erorilor sistemului� Tolereazã erorile sistemului

Cancel permite utilizatorilor sã anuleze comenzi care nu lucreazã corespunzãtor.

Creºte încrederea ºi confortul utilizatoruluiCancel permite utilizatorilor sã lucreze fãrã teamã deoarece îºi pot oricînd anula

acþiunile.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 710: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

USAP � exemplu �Cancel�

R1: Se va oferi un buton, o opþiune de menu, un accelerator ºi/sau alte mijloace de a anula comanda curentã.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii îºi comunicã intenþiile prin gesturi speciale (ex.�DSăVDUH�EXWRQ)

Forþe dinspre softwarePentru a executa ceva, software-ul trebuie sã recepþioneze un gest utilizator.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 711: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

USAP � exemplu �Cancel�

R2: Permanent sistemul trebuie sã asculte pentru comanda Cancel

sau pentru modificãrile de context.

Forþe dinspre context ºi dinspre activitate

Nimeni nu poate prezice când apare o schimbare în context.

Forþe dinspre utilizator

Nimeni nu poate prezice când utilizatorii vor dori sã anuleze o comandã.

Forþe dinspre software

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 712: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

USAP � exemplu �Cancel�

R3: Sistemul trebuie sã culeagã permanent informaþii (stare, utilizare resurse, gesturi utilizator,�HWF.) care permit recuperarea stãrii sale

de dinainte de executarea comenzii curente.

Forþe dinspre context ºi dinspre activitate

Nimeni nu poate prezice când apare o schimbare în context.

Forþe dinspre utilizator

Nimeni nu poate prezice când utilizatorii vor dori sã anuleze o comandã.

Forþe dinspre software

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 713: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

USAP � exemplu �Cancel�

R4: Sistemul trebuie sã confirme recepþionarea corespunzãtoare a

comenzii de anulare în timp de 150 ms. Confirmarea trebuie sã

corespundã cu maniera în care a fost trimisã comanda.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorul trebuie sã afle în 150 ms�Fă�L-a fost recepþionatã comanda, altfel va încerca din nou.

Forþe dinspre software

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 714: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

USAP � exemplu �Cancel�

R5: Dacã comanda este capabilã sã se anuleze direct la momentul

anulãrii, comanda trebuie sã rãspundã prin anularea sa.

Forþe dinspre context ºi dinspre activitate

Activitatea sau contextul a indicat faptul cã activitatea trebuie sã se termine (ex. memorie insuficientã).

Forþe dinspre utilizatorUtilizatorul ºi-a comunicat dorinþa de a se termina comanda.

Forþe dinspre softwareComanda este reactivã în momentul anulãrii.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 715: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

USAP � exemplu �Cancel�

R6: Dacã comanda nu este capabilã sã se anuleze direct la momentul

anulãrii, comanda trebuie anulatã de cãtre o porþiune activã a

sistemului.

Forþe dinspre context ºi dinspre activitate

Activitatea sau contextul a indicat faptul cã activitatea trebuie sã se termine (ex. memorie insuficientã).

Forþe dinspre utilizatorUtilizatorul ºi-a comunicat dorinþa de a se termina comanda.

Forþe dinspre softwareComanda nu este reactivã în momentul anulãrii.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 716: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

USAP � exemplu �Cancel�

R7: Dacã comanda a invocat procese pentru colaborare, aceste procese trebuie informate despre anularea comenzii ce le-a invocat (aceste procese au responsabilitãþi proprii pe care trebuie sã le realizeze ca

rãspuns la aceastã informare, posibil tratând-o ca pe o anulare). Informaþia datã proceselor colaborator poate include cerere de

anulare, progresul anulãrii ºi/sau încheierea anulãrii.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Forþe dinspre software

Comanda a invocat procese colaborator.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 717: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

USAP � exemplu �Cancel�

R8: Dacã sistemul este capabil sã deruleze înapoi toate modificãrile, pânã la starea anterioarã executãrii comenzii de anulat, starea sistemului trebuie restauratã la starea anterioarã executãrii

acesteia.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii doresc ca sistemul sã funcþioneze ca ºi când comanda anulatã nu ar fi fost

lansatã.

Forþe dinspre software

Sistemul este capabil sã deruleze înapoi toate schimbãrile, pânã la starea de dinaintea

executãrii comenzii.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 718: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

USAP � exemplu �Cancel�

R9: Dacã sistemul nu este capabil sã deruleze înapoi unele modificãri

realizate pe durata executãrii comenzii de anulat pânã la momentul anulãrii, sistemul trebuie restaurat într-o stare cât mai apropiatã de

cea anterioarã executãrii comenzii de anulat.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii doresc ca sistemul sã funcþioneze ca ºi când comanda anulatã nu ar fi fost

lansatã.

Forþe dinspre software

Sistemul nu este capabil sã deruleze înapoi toate schimbãrile, pânã la starea de

dinaintea executãrii comenzii.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 719: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

USAP � exemplu �Cancel�

R10: Dacã sistemul nu este capabil sã deruleze înapoi unele modificãri

realizate pe durata executãrii comenzii de anulat pânã la momentul anulãrii, sistemul trebuie sã informeze utilizatorul despre diferenþa, dacã existã, dintre starea restauratã ºi cea anterioarã lansãrii

comenzii de anulat.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii doresc ca sistemul sã funcþioneze ca ºi când comanda anulatã nu ar fi fost

lansatã. Dacã utilizatorii nu sunt conºtienþi de schimbãrile de stare, atunci este posibil sã producã erori ulterioare.

Forþe dinspre software

Sistemul nu este capabil sã deruleze înapoi toate schimbãrile, pânã la starea de

dinaintea executãrii comenzii.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 720: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

USAP � exemplu �Cancel�

R11: Sistemul trebuie sã elibereze toate resursele (pe care le poate elibera) consumate pentru procesarea comenzii de anulat.

Forþe dinspre context ºi dinspre activitate

Sistemul trebuie sã rãmânã stabil în timp.�'DFă�H[LVWă�UHVXUVH�QHHOLEHUDWH, aceasta poate conduce la degradãri ºi cãderi ulterioare ale sistemului (ex. memory leak).

Forþe dinspre utilizatorUtilizatorii doresc ca sistemul sã revinã în starea de dinaintea lansãrii comenzii.

Forþe dinspre software

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 721: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

USAP � exemplu �Cancel�

R12: Dacã unele resurse au fost consumate irevocabil ºi nu pot fi restaurate, sistemul trebuie sã informeze utilizatorul într-o manierã

vizibilã despre resursele restaurate doar parþial.

Forþe dinspre context ºi dinspre activitate

Sistemul trebuie sã rãmânã stabil în timp.�'DFă�H[LVWă�UHVXUVH�QHHOLEHUDWH, aceasta poate conduce la degradãri ºi cãderi ulterioare ale sistemului (ex. memory leak)

Forþe dinspre utilizatorUtilizatorii doresc ca sistemul sã revinã în starea de dinaintea lansãrii comenzii.

Forþe dinspre softwareResursele au fost consumate irevocabil ºi nu pot fi restaurate.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 722: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

USAP � exemplu �Cancel�

R13: Dacã procesul de anulare a comenzii dureazã mai mult de 1 sec, controlul trebuie returnat la utilizator (dacã în contextul respectiv este necesarã continuarea lucrului cu sistemul).

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii doresc sã lucreze în paralel dacã trebuie sã aºtepte prea mult anularea comenzii.

Forþe dinspre software

Procesul de anulare a comenzii dureazã mai mult de 1 sec.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 723: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

USAP � exemplu �Cancel�

R14: Estimarea duratei procesului de anulare a comenzii. Dacã durata

estimatã este între 1 ºi 10 sec, atunci forma cursorului va fi modificatã pentru a reflecta o stare �busy�. Dacã durata estimatã

este mai mare de 10 sec, utilizatorului i se va prezenta un indicator al progresului.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii doresc sã lucreze în paralel dacã trebuie sã aºtepte prea mult anularea comenzii.

Forþe dinspre software

Procesul de anulare a comenzii dureazã mai mult de 1 sec.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 724: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

USAP � exemplu �Cancel�

R15: La terminarea procesului de anulare, sistemul trebuie sã ofere

feedback utilizatorului referitor la acest lucru (ex. refacerea formei cursorului, eliminarea barei cu indicatorul de progres, închiderea casetei de dialog).

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizatorUtilizatorii doresc sã fie notificaþi la încheierea procesului de anulare.

Forþe dinspre software

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 725: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

USAP � exemplu �Cancel�

Alte responsabilitãþi posibile:

În cazul în care comanda anulatã este criticã, pot fi necesare ºi alte acþiuni.

Exemple: Blocarea posibilitãþii ca utilizatorul sã mai trimitã ºi alte comenzi.

Solicitarea de confirmãri, dacã anumite resurse nu sunt eliberate.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 726: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

Observaþii

1. Programatorul ar putea trece cu vederea unele detalii.Exemple: Eliberarea resurselor

Feedback dacã nu se poate termina anularea

Informarea colaboratorilor

2. Se recomandã realizarea unei tabele pentru analiza relaþiei cost/beneficiu:

Exemplu de intrare în tabelã:

Beneficiul : eficienþã crescutã - utilizatorul doreºte sã lucreze în paralel cu un proces de anulare de lungã duratã

Costul : poate fi prea mare, funcþie de contextul sistemului.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 727: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

ªabloane acoperitoare

În general proiectanþii nu construiesc proiectul sistemului pe baza scenariilor de utilizabilitate sensibile din punct de vedere arhitectural.

Proiectanþii au câteva ºabloane acoperitoare pe care le utilizeazã (ex. MVC).

Un ºablon arhitectural introduce forþe suplimentare dinspre software asupra soluþiei specifice.

Vom utiliza MVC pentru a ilustra:

Efectul ºablonului acoperitor asupra soluþiei specifice

Utilizarea unui ºablon larg folosit în aplicaþii Web

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 728: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

Soluþia specificã

Vedere arhitecturalã -�SUH]LQWă�XQXO�VDX�PDL�PXOWH�DVSHFWH�DOH�arhitecturii.

Vederi comune reprezentate în UML:

Diagrama de componente ��SUH]LQWă�XQLWăþile majore de software dar nu ilustreazã comportamentul dinamic sau asignarea unitãþilor la diferite procesoare.

Diagrama de secvenþe ��DUDWă�VHFYHQþa activitãþilor pentru un singur fir de control în cadrul sistemului.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 729: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 54

Soluþia specificã

Contextul soluþiei specifice � MVC

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

:Controller

:View Active-Command:Model

:Controller:Controller

:View:View Active-Command:Model

Active-Command:Model

Page 730: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 55

Soluþia specificã

Contextul soluþiei specifice � MVCDiagrama de componente pentru o soluþie specificã pentru Cancel.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Prior-State-Manager:Model

:Controller

Cancellation-Manager:Model

Listener:Controller

:View Active-Command:Model

Collaborating-Process:Model

Prior-State-Manager:Model

Prior-State-Manager:Model

:Controller:Controller

Cancellation-Manager:Model

Cancellation-Manager:Model

Listener:ControllerListener:Controller

:View:View Active-Command:Model

Active-Command:Model

Collaborating-Process:Model

Collaborating-Process:Model

Page 731: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 56

Soluþia specificã Responsabilitãþile componentelor noi

Listener� Tip: controller� Trebuie sã asculte permanent pentru comenzile de anulare sau pentru modificãrile de

context (R2) Cancellation Manager

� Tip: model� Permanent ascultã ºi culege informaþii (R2, R3)� Trateazã anularea dacã nu primeºte rãspuns de la Active Command (R6) �� Elibereazã resursele (R11)� Estimeazã durata procesului de anulare (R13, R14)� Informeazã utilizatorul despre progresul procesului de anulare (R14, R15).

Prior State Manager� Tip: model� Culege permanent informaþii (în colaborare cu Cancellation Manager � stare, utilizare

resurse, acþiuni,...) ce permit refacerea stãrii sistemului anterioarã executãrii comenzii curente (R3)

� Dacã nu se primeºte rãspuns de la Active Command (R6), colaboreazã cu

Cancellation Manager pentru a restaura sistemul în starea anterioarã executãrii

comenzii curente (R18) sau într-o stare cât mai apropiatã de aceasta (R9).

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 732: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 57

Soluþia specificã Responsabilitãþile noi pentru componentele vechi

View� Tip: view� Oferã buton, opþiune menu, accelerator ºi/sau altã modalitate de anulare a

comenzii curente (R1)� Trebuie sã asculte permanent pentru comenzile de anulare sau pentru

modificãrile de context (R2)� Prezintã utilizatorului informaþiile de feedback despre progresul procesului de

anulare (R4, R14, R15) Active Command

� Tip: model� Culege permanent informaþii (R3)� Trateazã anularea prin terminarea proceselor ºi restaurarea stãrii ºi

resurselor(R5, R8, R11) �� Trimite feedback corespunzãtor cãtre utilizator (R12, R14, R15)

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 733: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 58

Soluþia specificã

Diagrama de secvenþe a activitãþilor anterioare lansãrii comenzii de anulare.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

:View :Controller Active-Command:Model

Prior-State-Manager:Model

Cancellation-Manager:Model

:User

normal operation

invokeregister (R3)

save current state (R3)

normal operation

Page 734: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 59

Soluþia specificã

Diagrama de secvenþe a activitãþilor de dupã lansarea comenzii de anulare.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

command (R4)

:View Listener :Controller

Active-Command :Model

Prior-State-Manager :Model

Cancellation-Manager :Model

press cancel

button (R1) send cancel request (R1, R2) cancel active

command (R2)

change cursor shape (R14)

acknowledge user�s

estimates canceltime between

1 and 10 secs(R14, busy cursor

needed)are you alive? (R5)

yes (R5)

return original state (R9)

original state (R9)

release resources (R11)

exiting R15)

xrestore cursor (R15)

:User

Page 735: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 60

ªabloane arhitecturale suport pentru utilizabilitate (USAP) similare cu Cancel

Undo Similaritate ��(VWH�QHFHVDUă�UHYHQLUHD�OD�R�VWDUH�DQWHULRDUă�FXQRVFXWă. Diferenþã � �Undo��VH�H[HFXWă�GRDU�GXSă�WHUPLQDUHD�FRPHQ]LL. În acest caz nu

este necesarã operaþia de ascultare permanentã.

Recuperarea din defecte Similaritate � Nu se poate prezice momentul apariþiei. Diferenþã ��1X�VH�DIOă�VXE�FRQWUROXO�XWLOL]DWRUXOXL�LDU�GHUXODUHD�înapoi se face

cât mai puþin posibil (nu neaparat pânã la starea de dinaintea lansãrii ultimei

comenzi).

Page 736: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 61

ªabloane arhitecturale suport pentru utilizabilitate (USAP) Concluzii

Separarea UI de logica aplicaþiei ��SUDFWLFă�FXUHQWă�în proiectarea software-lui.

Este suportatã proiectarea iterativã a UI, dar sunt introduse probleme de utilizabilitate sensibile din punct de vedere arhitectural.

Aceste probleme apar, în general, în cazul cerinþelor de utilizabilitate care traverseazã componentele separate.

ªabloanele arhitecturale suport pentru utilizabilitate (USAP) sunt o abordare pentru soluþionarea problemelor de utilizabilitate sensibile din punct de vedere arhitectural.

Page 737: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 62

BIBLIOGRAFIE

Bass L., John B.E, Kates J., Achieving Usability Through Software Architecture, Technical Report CMU/SEI-2001-TR-005, 2001

Stoll P., Bass L., John B.E., Usability and Software Architecture, SATURN May 2009, Pittsburg, US

www.automationworld.com/control/abb-product-architecture-supports-usability

Lee J., Bass L., Elements of Usability Reasoning Framework, Technical Note CMU/SEI-2005-TN-030, 2005

Page 738: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 13

id5778288 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 739: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

Observaþii preliminare

1. Cerinþele pentru atributele de calitate sunt elementele fundamentale de dirijare�D�SURLHFWăULL�XQHL�DUKLWHFWXUL�VRIWZDUH.

Dovada 1:�GDFă�DU�IL�LPSRUWDQWă�GRDU�IXQFþionalitatea, ar fi suficient doar un sistem monolitic.

DAR existã:

Structuri redundante - pentru fiabilitate

Structuri concurente - pentru performanþã

Straturi (layers) - pentru modificabilitate

Dovada 2: restructurarea unui sistem se face de obicei din motive de calitate: îmbunãtãþire performanþã, securitate, modificabilitate, ...

2. Pentru multe atribute de calitate existã o istorie îndelungatã ºi o bazã

bogatã de cunoºtinþe cadre (framework) valoroase utilizate la analizarea arhitecturilor.

Ex. Performanþã � teoria cozilor de aºteptare, teoria�SODQLILFăULLFiabilitate � modele Markov

Page 740: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

PLAN CURS

Utilizabilitatea sistemelor software

ªabloane arhitecturale pentru utilizabilitate bazate pe separare

ªabloane arhitecturale suport pentru utilizabilitate (USAP)

Un exemplu de USAP

Page 741: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Utilizabilitate

Def. Utilizabilitate = mãsura calitãþii experimentate de utilizator în interacþiunea cu informaþii sau servicii.

Chiar dacã funcþionalitatea este corectã,

Chiar dacã UI este separatã de funcþionalitate,

Deciziile arhitecturale realizate iniþial pot împiedica implementarea unui sistem utilizabil.

E posibil ca o anumitã modificare solicitatã (de caracteristicã sau de funcþionalitate) în sensul creºterii utilizabilitãþii sã ajungã prea adânc în arhitectura sistemului pentru a permite realizarea ei viabilã din punct de vedere economic ºi de timp.

Page 742: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Utilizabilitate � exemple de scenarii generale

Feedback warning/status/alert

�Se vor afiºa indicatori de stare sau de alertã când sunt satisfãcute condiþiile corespunzãtoare.�

Profil utilizator

�Fiecare utilizator trebuie sã poatã seta diferiþi parametrii care controleazã

prezentarea.�

Agregare comenzi

�Utilizatorul trebuie sã poatã invoca executarea unei colecþii de comenzi.�

Recuperarea din avarie

�La cãderea sistemului, procesorului sau reþelei, utilizatorul nu trebuie sã piardã

starea curentã.�

Suport pentru internaþionalizare

�Utilizatorul trebuie sã poatã folosi un limbaj ºi un format de afiºare care îi este familiar.�

Page 743: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Obiective curs

Înþelegerea principiilor de bazã ale arhitecturilor software pentru sisteme interactive.

Înþelegerea modului în care aceste principii afecteazã utilizabilitatea�VLVWHPXOXL.

Motivul utilizãrii de ºabloane bazate pe separare.

Cazuri în care ºabloanele bazate pe separare nu sunt suficiente.

Page 744: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

Practici obiºnuite în proiectarea de detaliu a sistemelor interactive

Toate tehnicile HCI (Human Computer Interaction) suport pentru proiectarea de detaliu a interfeþei utilizator sunt bazate pe proiectare iterativã.

(i.e proiectare, testare (analizã sau mãsurare), modificare, re-testare)

Odatã ce software-ul a fost dezvoltat, iterarea implicã modificãri ale acestuia.

Inginerii software pregãtesc realizarea acestor modificãri prin izolarea secþiunii ce va fi modificatã (separare).

Page 745: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

PLAN CURS

Utilizabilitatea sistemelor software

ªabloane arhitecturale pentru utilizabilitate bazate pe separare

ªabloane arhitecturale suport pentru utilizabilitate (USAP)

Un exemplu de USAP

Page 746: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

ªabloane arhitecturale pentru utilizabilitatebazate pe separabilitate

MVC (Model-View-Controller) (1980, Smalltalk)

Adaptat pentru context web pe platforma Java EE de la Sun

Recomandat de Microsoft pentru .NET

Documentat în Buschmann (Pattern-Oriented Software Architecture, vol 1)

PAC (Presentation-Abstraction-Control) (1980 � univ. Din Grenoble)

Reacþie la dezavantajele MVC

Utilizate curent în practicã, cu succes dovedit.

Page 747: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

MVC

Orientat obiect

Model � starea ºi funcþionalitatea aplicaþiei(operaþii).

View ��UHGă�PRGHOH�ºi trimite gesturile utilizatorului la controller.

Controller ��DFWXDOL]HD]ă�modelul, selecteazã vedere, defineºte comportamentul aplicaþiei (interacþiuni, flux).

Command Processor

Command Processor

ModelCommand Processor

Command Processor

View

Controller

Dispozitiv de intrare

Dispozitiv de ieºire

Page 748: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

MVC

Avantaje

Suport pentru vederi multiple asupra aceloraºi date

� Utilizatorul are perspective multiple asupra aceloraºi date (ex. vederi de tip outline ºi de tip layout)

� Diferite dispozitive prezintã aceleaºi informaþii în moduri corespunzãtoare

platformelor pe care se aflã (ex. PDA, laptop)

� Diferiþi utilizatori au acces simultan la aceleaºi date

Separare prezentare (view) de aplicaþie �SHUPLWH�UHDOL]DUHD�GH�PRGLILFăUL�DOH�prezentãrii independent de restul aplicaþiei.

Page 749: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

ªabloane bazate pe separare

Larg utilizate în practicã.

Suport pentru dezvoltarea de instrumente specializate

Biblioteci de widget-uri

Diferite tipuri de controller-e

Separarea prezentãrii de aplicaþie este foarte importantã.

DAR ºabloanele bazate pe separare nu sunt suficiente pentru sistemeleinteractive.

Page 750: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

ªabloane bazate pe separare ºi proiectarea iterativã

Cerinþe revelate pe parcursul proiectãrii iterative:

Modificãri ale funcþionalitãþii

Modificãri ale UI referitoare la conþinutul ecranelor

Modificãri ale UI dincolo de conþinutul ecranului

Zona de modificãri dificil de realizat

Modificãri facilitate de

arhitectura software

Cerinþe descoperite pe parcursul proiectãrii

iterative

Page 751: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

MVC ºi proiectarea iterativã (1)

Modificare asupra caracteristicilor afiºãrii modificare view : view conþine toatã

logica de afiºare.

Ex. Modificare culori, font, aºezare în paginã (layout).

Modificare la fluxul prezentãrii modificare controller : controller-ul defineºte fluxul prezentãrii.

Ex. Modificarea ordinii dialogurilor.

Page 752: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

MVC ºi proiectarea iterativã (2)

Adãugarea abilitãþii de a anula o comandã cu duratã mare de execuþie.

Modificari la toate componentele arhitecturii:

� View ��EXWRQ�&DQFHO�VDX�DOWă�PRGDOLWDWH�GH�D�FRPDQGD�DQXODUHD�

� Controller ��ORJLFD�GH�UăVSXQV�OD�FRPDQGă�ºi de executare a funcþiei corespunzãtoare

� Model � modul de alocare a resurselor, ...

Probleme:

� Implicã toate componentele arhitecturii

� Localizare slabã

� Dacã cerinþa apare târziu,�YD�QHFHVLWD�PRGLILFăUL�FRQVLGHUDELOH�DOH�DUKLWHFWXULL

Page 753: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Concluzii

Proiectarea de detaliu a interfeþei utilizator se bazeazã pe

abordare iterativã.

Proiectarea iterativã este suportatã de ºabloanele bazate pe separare.

Unele probleme de utilizabilitate implicã mai multe componente de diferite tipuri ale ºabloanelor bazate pe separare.

Page 754: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

PLAN CURS

Utilizabilitatea sistemelor software

ªabloane arhitecturale pentru utilizabilitate bazate pe separare

ªabloane arhitecturale suport pentru utilizabilitate (USAP)

Un exemplu de USAP

Page 755: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

ªabloane arhitecturale suport pentru utilizabilitate(USAP � Usability Supporting Architectural Patterns)

Obiectiv � recunoaºterea ºi prevenirea problemelor obiºnuite de utilizabilitate care nu sunt suportate de principiul separãrii.

Soluþie - USAP:

Identificarea aspectelor de utilizabilitate care sunt sensibile din punct de vedere arhitectural ºi reprezentarea lor cu scenarii simple.

Oferirea unui mod de analizã a forþelor ce acþioneazã, în aceste scenarii, asupra arhitecturii proiectate.

Oferirea unei liste de verificare�D�UHVSRQVDELOLWăþilor software importante.

Oferirea de ºabloane arhitecturale�FX�SRVLELOLWăþi de satisfacere a acestor scenarii.

Page 756: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

ªabloane arhitecturale suport pentru utilizabilitate(USAP)

Sensibilitate din punct de vedere arhitectural

Un scenariu de utilizabilitate este considerat sensibil din punct de vedere arhitectural dacã

satisfacerea acestuia poate necesita modificãri la arhitectura sistemului.

Într-un ºablon bazat pe separare, aceasta înseamnã cã implementarea modificãrii va avea

impact atât asupra prezentãrii cât ºi asupra abstractizãrii (modelului).

ªabloanele bazate pe separare sunt destinate localizãrii modificãrilor referitoare la prezentarea informaþiilor.

Rezultã - exemplu:

� Modificãri de culori ºi font ��QX�VXQW�VHQVLELOH�GLQ�SXQFW�GH�YHGHUH�DUKLWHFWXUDO

� Adãugarea opþiunii de anulare (Cancel) ��HVWH�VHQVLELOă�GLQ�SXQFW�GH�YHGHUH�DUKLWHFWXUDO.

Page 757: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

ªabloane arhitecturale suport pentru utilizabilitate(USAP)

Scenariu de utilizabilitate sensibil din punct de vedere arhitectural - exemplu.

Anulare comenzi

�Utilizatorul trimite o comandã, apoi se rãzgândeºte dorind oprirea operaþiei ºi revenirea sistemului la starea dinaintea lansãrii comenzii. Nu conteazã motivul

utilizatorului: poate fi o greºealã a sa, poate fi din cauzã cã sistemul nu

rãspunde la comandã, sau poate s-a modificat contextul.�

Page 758: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

ªabloane arhitecturale suport pentru utilizabilitate(USAP)

Exemple de modificãri sensibile din punct de vedere arhitectural.

Agregarea datelor Agregarea comenzilor Alerte Anulare comenzi Verificarea corectitudinii Evaluarea sistemului Validare formã/câmp

Jurnalizare istoric Menþinerea independenþei dispozitivelor

(diferite metode de acces) Menþinerea compatibilitãþii cu alte sisteme Accesibilizarea vederilor Modificarea interfeþelor Navigarea în cadrul unei singure vederi Observarea stãrii sistemului

Operare consistentã la traversarea vederilor

Feedback al progresului Help performant (Context-Sensitive Help)

Recuperarea din defecte Reutilizare informaþii Extragere parole uitate Indicare stare Suport pentru cãutãri extensive

Suport pentru internaþionalizare(diferite limbi)

Suport pentru activitãþi multiple Suport pentru Undo Suport pentru personalizare

(profil utilizator) Suport pentru vizualizare Tur Utilizare concurentã

(Multi-tasking) Verificare resurse Wizard Model�DO�IOX[XOXL�GH�DFWLYLWăþi Lucru în ritmul utilizatorului Lucru în context nefamiliar

Page 759: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

Procesul de dezvoltare

Echipa de dezvoltare:

Ingineri software

Specialiºti în utilizabilitate

Manager proiect

Scenariile de utilizabilitate sensibile din punct de vedere arhitectural sunt surse de cerinþe, deci

Trebuie sã fie concrete

Trebuie sã fie eficace pentru un sistem particular.

Page 760: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Procesul de dezvoltare

În plus faþã de scenariile de utilizabilitate sensibile din punct de vedere

arhitectural, sunt necesare:

Determinarea balanþei cost-beneficiu în implementarea scenariului

Oferirea unui ghid pentru echipa de dezvoltare referitor la problemele asociate cu implementarea soluþiei.

Ghid:

Pentru ingineri software

� Lista responsabilitãþilor ce trebuie considerate de cãtre orice soluþie de implementare a scenariului

� Exemplu de soluþie care alocã responsabilitãþi modulelor bazate pe MVC

Pentru specialiºtii în utilizabilitate

� Tipurile de beneficii aºteptate de la scenariul propus

Ingineri software � costSpecialiºti în utilizabilitate - beneficiiManager proiect - arbitru

Page 761: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

Forþele ce acþioneazã asupra proiectului arhitectural

Reguli organizaþionale la utilizator

Activitate în context

Forþe

Sistem

Utilizator

Dorinþe ºi capabilitãþi

Software

Starea software-lui

Responsabilitãþigenerale

Soluþie specificã

(mai multe detalii)Ex. Tactici.

Forþe

Forþe

Forþe

Decizii de proiectare anterioare

ForþeBeneficii

Beneficiioferite de soluþie

Forþe diferite motiveazã aspecte

particulare ale soluþiei.

Page 762: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

Discuþie despre proiectarea arhitecturii

Forþele provin din diferite surse:

� Activitatea implicatã ºi contextul în care opereazã utilizatorul.

� Ex. �Cancel� este util doar dacã operaþia este de lungã duratã.

� Dorinþele ºi capabilitãþile factorului uman.

� Ex., Utilizatorii fac greºeli. �Cancel� oferã un mod de a corecta greºeli.

� Starea sistemului (software-lui).

� Ex. Reþelele cad. Dând utilizatorului posibilitatea de anulare a unei operaþii, acesta poate preveni blocarea datoratã unei cãderi de reþea.

Page 763: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Beneficiile utilizabilitãþii

Elementele ce definesc utilizabilitatea unui sistem software depind de contextul de utilizare al acestuia.

Aspecte comune:

� Eficienþa utilizãrii

� Timpul necesar învãþãrii modului de utilizare eficientã

� Suport pentru explorare ºi pentru rezolvarea problemelor

� Satisfacþia utilizatorului (ex. încredere, confort, acceptare de cãtre

utilizatorii discreþionari)

Beneficiile utilizabilitãþii pot fi organizate ierarhic.

Page 764: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Beneficiile utilizabilitãþii � o ierarhie

Creºte eficienþa utilizatorului individual

Reduce impactul erorilor sistemului

Creºte încrederea ºi confortul utilizatorului

Creºte performanþa activitãþilor de rutinã

Creºte performanþa activitãþilor non-rutiniere

Reduce impactul erorilor utilizatorului datorate lipsei de cunoºtinþe

Previne erorile sistemului

Tolereazã erorile sistemului

Accelereazã porþiunea liberã de erori a activitãþilor de rutinã

Reduce impactul erorilor utilizator la operaþiile de rutinã(scãpãri din vedere)

Sprijinã rezolvarea problemelor

Faciliteazã învãþarea

Previne greºelile Se adapteazã

greºelilor

Page 765: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

Proiectare arhitecturã

Existã o multitudine de metode diferite pentru a satisface un scenariu particular.

Majoritatea sistemelor utilizeazã ºabloane arhitecturale bazate pe separare, ca bazã pentru proiectul de ansamblu al sistemului.

În USAP sunt oferite douã componente diferite ale soluþiei:

Soluþia generalã ��UHVSRQVDELOLWăþile software-lui ce trebuie îndeplinite de orice soluþie.

Soluþia specificã � un ºablon arhitectural care aratã cum trebuie

implementatã soluþia generalã în contextul unui ºablon bazat pe separare.

Pentru exemplificare, vom considera MVC ca fiind un ºablon bazat pe separare acoperitor.

Page 766: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

ªabloane arhitecturale suport pentru utilizabilitate (USAP)

Documentarea ºablonului

Context Situaþia � scenarii de utilizabilitate sensibile din punct de vedere arhitectural.

Condiþiile � constrângeri asupra momentelor când situaþia este relevantã.

Beneficiile utilizabilitãþii � enumerarea beneficiilor aduse utilizatorului prin adoptarea acestui scenariu.

Ghid cost-implementare Soluþia generalã ��VHW�GH�UHVSRQVDELOLWăþi pe care fiecare soluþie trebuie sã le

satisfacã.

Raþiuni fundamentale pentru fiecare responsabilitate în termeni de forþe aflate în conflict:� Forþele exercitate de activitate ºi de context,

� Forþele exercitate de dorinþele ºi capabilitãþile factorului uman,

� Forþele exercitate de starea software-lui atunci când utilizatorul doreºte sã aplice

scenariul sensibil din punct de vedere arhitectural.

Soluþia specificã � ºablonul arhitectural pentru rezolvarea situaþiei, prin asumarea unui ºablon bazat pe separare acoperitor (ex. MVC).

Page 767: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

Concluzii

ªabloanele bazate pe separare nu oferã suport pentru toate scenariile de utilizabilitate sensibile din punct de vedere arhitectural.

Abordarea prezentatã este împachetatã în USAP ºi conþine:

Identificare scenariu de utilizabilitate sensibil din punct de vedere arhitectural

Oferirea de informaþii a.î. echipa de dezvoltare sã poatã face aprecieri în cunoºtinþã de cauzã despre aplicabilitatea scenariului

� Condiþiile în care este aplicabil scenariul

� Beneficiile oferite de implementarea scenariului

� Responsabilitãþile generale utile în orice situaþie, împreunã cu raþiunile fundamentale pentru fiecare responsabilitate

� Soluþie specificã bazatã pe MVC.

Page 768: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

PLAN CURS

Utilizabilitatea sistemelor software

ªabloane arhitecturale pentru utilizabilitate bazate pe separare

ªabloane arhitecturale suport pentru utilizabilitate (USAP)

Un exemplu de USAP

Page 769: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

USAP � exemplu �Cancel�

Situaþia: �8WLOL]DWRUXO�WULPLWH�R�FRPDQGă�ºi apoi se rãzgândeºte, dorind sã

opreascã operaþia ºi sã readucã sistemul în starea de dinainte de lansarea comenzii. Nu conteazã motivul utilizatorului: poate fi o greºealã a sa, poate fi din cauzã cã sistemul nu rãspunde la comandã, sau poate s-a modificat contextul.

Condiþii asupra situaþiei:��Un utilizator lucreazã într-un sistem în care software-ul executã comenzi cu

duratã mare, i.e. mai mult de 1 sec.

Comanda de anulare poate fi trimisã explicit de cãtre utilizator sau se poate lansa automat prin sesizarea unui anumit context.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 770: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

USAP � exemplu �Cancel�

Creºte eficienþa utilizatorului individual� Creºte performanþa activitãþilor de rutinã

� Accelereazã porþiunea liberã de erori a performanþei operaþiilor de rutinã

Cancel permite utilizatorilor sã revoce comenzi lansate accidental ºi sã revinã la la

activitatea anterioarã mai repede decât dacã ar aºtepta terminarea comenzii eronate.

� Creºte performanþa activitãþilor non-rutiniere� Sprijinã rezolvarea problemelor

Cancel permite utilizatorului sã aplice comenzi ºi sã exploreze fãrã teamã, deoarece îºi poate oricând anula acþiunile.

� Reduce impactul erorilor utilizatorului cauzate de lipsa de cunoºtinþe (greºeli)� Se adapteazã greºelilor

Cancel permite utilizatorilor sã anuleze comenzile pe care le-au invocat din necunoaºtere ºi sã revinã la activitatea anterioarã mai repede decât dacã ar

aºtepta terminarea comenzii eronate.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 771: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

USAP � exemplu �Cancel�

Reduce impactul erorilor sistemului� Tolereazã erorile sistemului

Cancel permite utilizatorilor sã anuleze comenzi care nu lucreazã corespunzãtor.

Creºte încrederea ºi confortul utilizatoruluiCancel permite utilizatorilor sã lucreze fãrã teamã deoarece îºi pot oricînd anula

acþiunile.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 772: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

USAP � exemplu �Cancel�

R1: Se va oferi un buton, o opþiune de menu, un accelerator ºi/sau alte mijloace de a anula comanda curentã.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii îºi comunicã intenþiile prin gesturi speciale (ex.�DSăVDUH�EXWRQ)

Forþe dinspre softwarePentru a executa ceva, software-ul trebuie sã recepþioneze un gest utilizator.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 773: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

USAP � exemplu �Cancel�

R2: Permanent sistemul trebuie sã asculte pentru comanda Cancel

sau pentru modificãrile de context.

Forþe dinspre context ºi dinspre activitate

Nimeni nu poate prezice când apare o schimbare în context.

Forþe dinspre utilizator

Nimeni nu poate prezice când utilizatorii vor dori sã anuleze o comandã.

Forþe dinspre software

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 774: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

USAP � exemplu �Cancel�

R3: Sistemul trebuie sã culeagã permanent informaþii (stare, utilizare resurse, gesturi utilizator,�HWF.) care permit recuperarea stãrii sale

de dinainte de executarea comenzii curente.

Forþe dinspre context ºi dinspre activitate

Nimeni nu poate prezice când apare o schimbare în context.

Forþe dinspre utilizator

Nimeni nu poate prezice când utilizatorii vor dori sã anuleze o comandã.

Forþe dinspre software

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 775: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

USAP � exemplu �Cancel�

R4: Sistemul trebuie sã confirme recepþionarea corespunzãtoare a

comenzii de anulare în timp de 150 ms. Confirmarea trebuie sã

corespundã cu maniera în care a fost trimisã comanda.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorul trebuie sã afle în 150 ms�Fă�L-a fost recepþionatã comanda, altfel va încerca din nou.

Forþe dinspre software

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 776: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

USAP � exemplu �Cancel�

R5: Dacã comanda este capabilã sã se anuleze direct la momentul

anulãrii, comanda trebuie sã rãspundã prin anularea sa.

Forþe dinspre context ºi dinspre activitate

Activitatea sau contextul a indicat faptul cã activitatea trebuie sã se termine (ex. memorie insuficientã).

Forþe dinspre utilizatorUtilizatorul ºi-a comunicat dorinþa de a se termina comanda.

Forþe dinspre softwareComanda este reactivã în momentul anulãrii.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 777: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

USAP � exemplu �Cancel�

R6: Dacã comanda nu este capabilã sã se anuleze direct la momentul

anulãrii, comanda trebuie anulatã de cãtre o porþiune activã a

sistemului.

Forþe dinspre context ºi dinspre activitate

Activitatea sau contextul a indicat faptul cã activitatea trebuie sã se termine (ex. memorie insuficientã).

Forþe dinspre utilizatorUtilizatorul ºi-a comunicat dorinþa de a se termina comanda.

Forþe dinspre softwareComanda nu este reactivã în momentul anulãrii.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 778: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

USAP � exemplu �Cancel�

R7: Dacã comanda a invocat procese pentru colaborare, aceste procese trebuie informate despre anularea comenzii ce le-a invocat (aceste procese au responsabilitãþi proprii pe care trebuie sã le realizeze ca

rãspuns la aceastã informare, posibil tratând-o ca pe o anulare). Informaþia datã proceselor colaborator poate include cerere de

anulare, progresul anulãrii ºi/sau încheierea anulãrii.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Forþe dinspre software

Comanda a invocat procese colaborator.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 779: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

USAP � exemplu �Cancel�

R8: Dacã sistemul este capabil sã deruleze înapoi toate modificãrile, pânã la starea anterioarã executãrii comenzii de anulat, starea sistemului trebuie restauratã la starea anterioarã executãrii

acesteia.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii doresc ca sistemul sã funcþioneze ca ºi când comanda anulatã nu ar fi fost

lansatã.

Forþe dinspre software

Sistemul este capabil sã deruleze înapoi toate schimbãrile, pânã la starea de dinaintea

executãrii comenzii.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 780: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

USAP � exemplu �Cancel�

R9: Dacã sistemul nu este capabil sã deruleze înapoi unele modificãri

realizate pe durata executãrii comenzii de anulat pânã la momentul anulãrii, sistemul trebuie restaurat într-o stare cât mai apropiatã de

cea anterioarã executãrii comenzii de anulat.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii doresc ca sistemul sã funcþioneze ca ºi când comanda anulatã nu ar fi fost

lansatã.

Forþe dinspre software

Sistemul nu este capabil sã deruleze înapoi toate schimbãrile, pânã la starea de

dinaintea executãrii comenzii.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 781: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

USAP � exemplu �Cancel�

R10: Dacã sistemul nu este capabil sã deruleze înapoi unele modificãri

realizate pe durata executãrii comenzii de anulat pânã la momentul anulãrii, sistemul trebuie sã informeze utilizatorul despre diferenþa, dacã existã, dintre starea restauratã ºi cea anterioarã lansãrii

comenzii de anulat.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii doresc ca sistemul sã funcþioneze ca ºi când comanda anulatã nu ar fi fost

lansatã. Dacã utilizatorii nu sunt conºtienþi de schimbãrile de stare, atunci este posibil sã producã erori ulterioare.

Forþe dinspre software

Sistemul nu este capabil sã deruleze înapoi toate schimbãrile, pânã la starea de

dinaintea executãrii comenzii.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 782: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

USAP � exemplu �Cancel�

R11: Sistemul trebuie sã elibereze toate resursele (pe care le poate elibera) consumate pentru procesarea comenzii de anulat.

Forþe dinspre context ºi dinspre activitate

Sistemul trebuie sã rãmânã stabil în timp.�'DFă�H[LVWă�UHVXUVH�QHHOLEHUDWH, aceasta poate conduce la degradãri ºi cãderi ulterioare ale sistemului (ex. memory leak).

Forþe dinspre utilizatorUtilizatorii doresc ca sistemul sã revinã în starea de dinaintea lansãrii comenzii.

Forþe dinspre software

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 783: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

USAP � exemplu �Cancel�

R12: Dacã unele resurse au fost consumate irevocabil ºi nu pot fi restaurate, sistemul trebuie sã informeze utilizatorul într-o manierã

vizibilã despre resursele restaurate doar parþial.

Forþe dinspre context ºi dinspre activitate

Sistemul trebuie sã rãmânã stabil în timp.�'DFă�H[LVWă�UHVXUVH�QHHOLEHUDWH, aceasta poate conduce la degradãri ºi cãderi ulterioare ale sistemului (ex. memory leak)

Forþe dinspre utilizatorUtilizatorii doresc ca sistemul sã revinã în starea de dinaintea lansãrii comenzii.

Forþe dinspre softwareResursele au fost consumate irevocabil ºi nu pot fi restaurate.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 784: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

USAP � exemplu �Cancel�

R13: Dacã procesul de anulare a comenzii dureazã mai mult de 1 sec, controlul trebuie returnat la utilizator (dacã în contextul respectiv este necesarã continuarea lucrului cu sistemul).

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii doresc sã lucreze în paralel dacã trebuie sã aºtepte prea mult anularea comenzii.

Forþe dinspre software

Procesul de anulare a comenzii dureazã mai mult de 1 sec.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 785: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

USAP � exemplu �Cancel�

R14: Estimarea duratei procesului de anulare a comenzii. Dacã durata

estimatã este între 1 ºi 10 sec, atunci forma cursorului va fi modificatã pentru a reflecta o stare �busy�. Dacã durata estimatã

este mai mare de 10 sec, utilizatorului i se va prezenta un indicator al progresului.

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizator

Utilizatorii doresc sã lucreze în paralel dacã trebuie sã aºtepte prea mult anularea comenzii.

Forþe dinspre software

Procesul de anulare a comenzii dureazã mai mult de 1 sec.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 786: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

USAP � exemplu �Cancel�

R15: La terminarea procesului de anulare, sistemul trebuie sã ofere

feedback utilizatorului referitor la acest lucru (ex. refacerea formei cursorului, eliminarea barei cu indicatorul de progres, închiderea casetei de dialog).

Forþe dinspre context ºi dinspre activitate

Forþe dinspre utilizatorUtilizatorii doresc sã fie notificaþi la încheierea procesului de anulare.

Forþe dinspre software

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 787: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

USAP � exemplu �Cancel�

Alte responsabilitãþi posibile:

În cazul în care comanda anulatã este criticã, pot fi necesare ºi alte acþiuni.

Exemple: Blocarea posibilitãþii ca utilizatorul sã mai trimitã ºi alte comenzi.

Solicitarea de confirmãri, dacã anumite resurse nu sunt eliberate.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 788: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

Observaþii

1. Programatorul ar putea trece cu vederea unele detalii.Exemple: Eliberarea resurselor

Feedback dacã nu se poate termina anularea

Informarea colaboratorilor

2. Se recomandã realizarea unei tabele pentru analiza relaþiei cost/beneficiu:

Exemplu de intrare în tabelã:

Beneficiul : eficienþã crescutã - utilizatorul doreºte sã lucreze în paralel cu un proces de anulare de lungã duratã

Costul : poate fi prea mare, funcþie de contextul sistemului.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 789: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

ªabloane acoperitoare

În general proiectanþii nu construiesc proiectul sistemului pe baza scenariilor de utilizabilitate sensibile din punct de vedere arhitectural.

Proiectanþii au câteva ºabloane acoperitoare pe care le utilizeazã (ex. MVC).

Un ºablon arhitectural introduce forþe suplimentare dinspre software asupra soluþiei specifice.

Vom utiliza MVC pentru a ilustra:

Efectul ºablonului acoperitor asupra soluþiei specifice

Utilizarea unui ºablon larg folosit în aplicaþii Web

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 790: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

Soluþia specificã

Vedere arhitecturalã -�SUH]LQWă�XQXO�VDX�PDL�PXOWH�DVSHFWH�DOH�arhitecturii.

Vederi comune reprezentate în UML:

Diagrama de componente ��SUH]LQWă�XQLWăþile majore de software dar nu ilustreazã comportamentul dinamic sau asignarea unitãþilor la diferite procesoare.

Diagrama de secvenþe ��DUDWă�VHFYHQþa activitãþilor pentru un singur fir de control în cadrul sistemului.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 791: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 54

Soluþia specificã

Contextul soluþiei specifice � MVC

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

:Controller

:View Active-Command:Model

:Controller:Controller

:View:View Active-Command:Model

Active-Command:Model

Page 792: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 55

Soluþia specificã

Contextul soluþiei specifice � MVCDiagrama de componente pentru o soluþie specificã pentru Cancel.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Prior-State-Manager:Model

:Controller

Cancellation-Manager:Model

Listener:Controller

:View Active-Command:Model

Collaborating-Process:Model

Prior-State-Manager:Model

Prior-State-Manager:Model

:Controller:Controller

Cancellation-Manager:Model

Cancellation-Manager:Model

Listener:ControllerListener:Controller

:View:View Active-Command:Model

Active-Command:Model

Collaborating-Process:Model

Collaborating-Process:Model

Page 793: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 56

Soluþia specificã Responsabilitãþile componentelor noi

Listener� Tip: controller� Trebuie sã asculte permanent pentru comenzile de anulare sau pentru modificãrile de

context (R2) Cancellation Manager

� Tip: model� Permanent ascultã ºi culege informaþii (R2, R3)� Trateazã anularea dacã nu primeºte rãspuns de la Active Command (R6) �� Elibereazã resursele (R11)� Estimeazã durata procesului de anulare (R13, R14)� Informeazã utilizatorul despre progresul procesului de anulare (R14, R15).

Prior State Manager� Tip: model� Culege permanent informaþii (în colaborare cu Cancellation Manager � stare, utilizare

resurse, acþiuni,...) ce permit refacerea stãrii sistemului anterioarã executãrii comenzii curente (R3)

� Dacã nu se primeºte rãspuns de la Active Command (R6), colaboreazã cu

Cancellation Manager pentru a restaura sistemul în starea anterioarã executãrii

comenzii curente (R18) sau într-o stare cât mai apropiatã de aceasta (R9).

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 794: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 57

Soluþia specificã Responsabilitãþile noi pentru componentele vechi

View� Tip: view� Oferã buton, opþiune menu, accelerator ºi/sau altã modalitate de anulare a

comenzii curente (R1)� Trebuie sã asculte permanent pentru comenzile de anulare sau pentru

modificãrile de context (R2)� Prezintã utilizatorului informaþiile de feedback despre progresul procesului de

anulare (R4, R14, R15) Active Command

� Tip: model� Culege permanent informaþii (R3)� Trateazã anularea prin terminarea proceselor ºi restaurarea stãrii ºi

resurselor(R5, R8, R11) �� Trimite feedback corespunzãtor cãtre utilizator (R12, R14, R15)

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

Page 795: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 58

Soluþia specificã

Diagrama de secvenþe a activitãþilor anterioare lansãrii comenzii de anulare.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

:View :Controller Active-Command:Model

Prior-State-Manager:Model

Cancellation-Manager:Model

:User

normal operation

invokeregister (R3)

save current state (R3)

normal operation

Page 796: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 59

Soluþia specificã

Diagrama de secvenþe a activitãþilor de dupã lansarea comenzii de anulare.

ContextulBeneficiileResponsabilitãþile generaleSoluþia specificã

command (R4)

:View Listener :Controller

Active-Command :Model

Prior-State-Manager :Model

Cancellation-Manager :Model

press cancel

button (R1) send cancel request (R1, R2) cancel active

command (R2)

change cursor shape (R14)

acknowledge user�s

estimates canceltime between

1 and 10 secs(R14, busy cursor

needed)are you alive? (R5)

yes (R5)

return original state (R9)

original state (R9)

release resources (R11)

exiting R15)

xrestore cursor (R15)

:User

Page 797: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 60

ªabloane arhitecturale suport pentru utilizabilitate (USAP) similare cu Cancel

Undo Similaritate ��(VWH�QHFHVDUă�UHYHQLUHD�OD�R�VWDUH�DQWHULRDUă�FXQRVFXWă. Diferenþã � �Undo��VH�H[HFXWă�GRDU�GXSă�WHUPLQDUHD�FRPHQ]LL. În acest caz nu

este necesarã operaþia de ascultare permanentã.

Recuperarea din defecte Similaritate � Nu se poate prezice momentul apariþiei. Diferenþã ��1X�VH�DIOă�VXE�FRQWUROXO�XWLOL]DWRUXOXL�LDU�GHUXODUHD�înapoi se face

cât mai puþin posibil (nu neaparat pânã la starea de dinaintea lansãrii ultimei

comenzi).

Page 798: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 61

ªabloane arhitecturale suport pentru utilizabilitate (USAP) Concluzii

Separarea UI de logica aplicaþiei ��SUDFWLFă�FXUHQWă�în proiectarea software-lui.

Este suportatã proiectarea iterativã a UI, dar sunt introduse probleme de utilizabilitate sensibile din punct de vedere arhitectural.

Aceste probleme apar, în general, în cazul cerinþelor de utilizabilitate care traverseazã componentele separate.

ªabloanele arhitecturale suport pentru utilizabilitate (USAP) sunt o abordare pentru soluþionarea problemelor de utilizabilitate sensibile din punct de vedere arhitectural.

Page 799: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 62

BIBLIOGRAFIE

Bass L., John B.E, Kates J., Achieving Usability Through Software Architecture, Technical Report CMU/SEI-2001-TR-005, 2001

Stoll P., Bass L., John B.E., Usability and Software Architecture, SATURN May 2009, Pittsburg, US

www.automationworld.com/control/abb-product-architecture-supports-usability

Lee J., Bass L., Elements of Usability Reasoning Framework, Technical Note CMU/SEI-2005-TN-030, 2005

Page 800: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 1

Arhitecturi pentru sisteme software

Curs 14

id25002101 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 801: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 2

PLAN CURS

Linii de produse software

Domeniul liniei de produse

Potenþial de reutilizare

Arhitectura software ��UHVXUVă�UHXWLOL]DELOă

Rolul arhitecturii în linia de produse

Variabilitate

Documentarea ºi evaluarea arhitecturii

Problematica adoptãrii liniilor de produse

Studiu de caz - linia de produse osciloscoape Tektronix

Standarde pentru integrare de componente

Page 802: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 3

Reutilizare în producþia de bunuri

Soluþie productivitate:

Linii de producþie (iniþiator: Ford) � producþie pentru piaþã masivã, dar cu posibilitãþi reduse de diversificare.

Cerinþã:

Personalizare în masã (mass customization) = producþia pe scarã largã de bunuri

croite conform cerinþelor clienþilor individuali.

Soluþie productivitate:

Platformã = bazã de tehnologii pe care sunt construite alte tehnologii sau procese.

Page 803: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 4

Reutilizare în dezvoltarea de software

Ideal: Construirea de sisteme software asamblându-le din piese existente deja (ca într-un puzzle).

Real: Seamãnã mai curând cu construirea de jucãrii având la dispoziþie o cutie plinã cu

piese din diferite jocuri (Puzzle, Lego, ...), ºi încã o mulþime de alte kit-uri incompatibile� culegem piese ºi ne aºteptãm sã se potriveascã.�

O soluþie � linii de produse software

Utilizarea unui set de active de bazã pentru producerea unui set de produse înrudite.

Flexibilitatea = caracteristica cheie pentru liniile de produse.

Page 804: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 5

Reutilizare - istoric

Liniile de produse software bazate pe caracteristici comune ale produselor reprezintã un concept inovativ ºi în evoluþie al ingineriei software.

Linda Northrop, Software Product Lines Essentials, 2008http://www.sei.cmu.edu

Page 805: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 6

Linii de produse � o definiþie

Def. Linie de produse software = set de sisteme intensiv software

care au un set comun, gestionat, de caracteristici care satisfac necesitãþile specifice unui

anumit segment de piaþã sau unui anumit scop

ºi care sunt dezvoltate dintr-un nucleu comun de active (resurse) de bazã, într-un mod

prestabilit.

Strategie de piaþã/ Domeniu de aplicare

Arhitecturã

Componente

PartajeazãEste satisfãcut de

Utilizatã pentru a structura

Referitor la

Sunt construite din

Produse

Page 806: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 7

Concepte fundamentale

Nucleu comun de active de bazã = colecþie de artefacte ºi resurse.

Diferenþierea produselor � prin adaptarea�DFWLYHORU�GH�ED]ă:

planificatã înainte de dezvoltarea produsului

uºor de utilizat de cãtre dezvoltatori

fãrã a periclita proprietãþile existente ale activelor de bazã

REUTILIZARE STRATEGICÃ.

Strategie � plan de acþiune pentru atingerea unui anumit scop.

Construirea de produse particulare conform unui plan�GH�UHXWLOL]DUH�D�DFWLYHORU�GH�bazã ºi a variabilitãþilor implementate în acestea.

Page 807: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 8

Concepte fundamentale

Activ de bazã� �artefact sau resursã construit pentru a fi utilizat în producerea mai multor produse ale liniei de produse.

Variabilitate = abilitatea unui sistem, a unui activ sau a unui mediu de dezvoltare de a oferi suport pentru producerea unui set de artefacte care diferã între ele într-o manierã

preplanificatã.

Variabilitate LP� �abilitatea unui activ de bazã de a se adapta la utilizãri în diferite contexte ale produselor din cadrul domeniului LP

Activ de produs = artefact parte a unui produs din linia de produse software.

Domeniu = mulþime de cunoºtinþe specializate,�GRPHQLX�GH�H[SHUWL]ă, sau colecþie de funcþionalitãþi corelate.

Practicã a liniei de produse software� �utilizarea sistematicã a activelor de bazã pentru

asamblarea, instanþierea, sau generarea de produse multiple care constituie linia de produse software; implicã reutilizare strategicã, cu granularitate mare.

Page 808: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 9

Variabilitate

Parte variabilã� �parte ce poate sã varieze a unui activ.

Variaþie = modul în care diferã douã sau mai multe variante ��GHVFULVă�în termeni de capabilitãþi sau proprietãþi pe care le au variantele.

Mecanism de variaþie� �mecanism care sprijinã crearea ºi/sau selectarea de variante conforme cu constrângerile pentru partea variabilã a activului de bazã. (încapsuleazã partea variabilã)

Variantã� �realizarea unei pãrþi variabile a unui activ de bazã prin exercitarea

mecanismelor sale de variaþie.

Variabilitate în timp = existenþa de versiuni diferite ale unui artefact care sunt valide la diferite momente de timp.

Variabilitate în spaþiu = existenþa unui artefact sub diferite forme în acelaºi timp.

Page 809: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 10

Variabilitate - exemple

listã protocoale de comunicare prin

interfaþa respectivãprotocol comunicareinterfaþã subsistem

UI dispozitive mobile, GUI desktop, GUI Web

tip UIUI

autentificare, firewall, criptaremodel securitatesecurizare

LAN cablat, LAN wireless, PANtip reþea comunicarereþea comunicare

VariantãVariaþieParte variabilã

Page 810: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 11

Variabilitate - exemple

Neil Mather, Concepts and Implementation Techniques for Web Systems Product-Lines Using Existing Frameworks, ACM Digital Library 2011

Exemple de spaþii de variabilitate.

Page 811: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 12

Ingineria liniilor de produse software

Dezvoltare linie de produse � procesul de creare de active de bazã sau de produse ale liniei de produse.

Ingineria domeniului � procesul în care sunt definite ºi realizate elementele comune(similitudinile) ºi variabilitatea liniei de produse. realizarea platformei (elementele comune ºi suportul pentru variabilitate). � dezvoltarea�DFWLYHORU�GH�ED]ă

Subprocese cheie: managementul produsului, ingineria cerinþelor de domeniu, modelarea domeniului, realizarea domeniului (implementarea modelului), testarea domeniului

Ex. www.methodsandtools.com-archive-archive.php?id=49Features � concepte abstracte pentru descrierea aspectelor comune ºi aspectelor variabile.

Ingineria aplicaþiilor � procesul în care sunt construite aplicaþiile liniei de produse prin reutilizarea artefactelor domeniului ºi exploatarea variabilitãþii liniei de produse. �dezvoltarea produselor.

Page 812: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 13

Ingineria liniilor de produse software

Haitham S. Hamza, Gamal M. Aly, Using Product Line Architectures to Leverage Systematic Reuse of Business Knowledge: An Industrial Experience, ACM Digital Library 2010

Page 813: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 14

Variabilitate

Cerinþã:

Gestionarea variabilitãþii, în mod consistent, pentru întreaga linie de produse

Soluþie:

Crearea activelor de bazã cu variabilitate inclusã.

Modelarea explicitã a variabilitãþii

Modelul de variabilitate:

activele de bazã

aspectele variabile la fiecare activ de bazã

condiþiile pentru variaþii în fiecare activ de bazã

mecanismele de variaþie

consecinþele aplicãrii variaþiei

Page 814: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 15

Exemplu

Felix Bachmann, Paul C. Clements, Variability in Software Product Lines, Technical report 2005http://www.sei.cmu.edu

Page 815: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 16

Ingineria liniilor de produse software

Dezvoltare activ de bazã

Determinarea a ceea ce rãmâne neschimbat în fiecare produs ce-l foloseºte ºi ceea ce trebuie sã varieze de la un produs la altul.

Alegerea unui mecanism de variaþie care sprijinã variaþia necesarã, permiþând totodatã

ca ceea ce este comun sã fie oferit fãrã variaþie de la un produs la altul.

Furnizarea de instrucþiuni (sub forma unui plan de producþie) care explicã dezvoltatorilor

de produse cum trebuie sã utilizeze mecanismele de variaþie incluse în activele de bazã

pentru a crea produsul.

Dezvoltare produs

Adaptarea ºi configurarea activelor reutilizabile pentru a îndeplini cerinþe specifice

Aplicarea planului de producþie pentru setul activelor de bazã ce intrã în componenþa produsului dezvoltat.

Executarea procesului de aplicare a fiecãrui mecanism de variaþie necesar.

Page 816: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 17

Variabilitatea în liniile de produse

Bachmann F, Clements P.C, Variability in Software Product Lines, technical report 2005http://www.sei.cmu.edu/reports/05tr012.pdf

Activ de bazã

Parte variabilã Variantã

Mecanism de variaþie

Proces de aplicare mecanism de variaþie

Condiþie de aplicare mecanism de variaþie

Page 817: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 18

Ingineria liniilor de produse software

Instrumente specializate:

http://www.biglever.com/?source=splsite

http://www.pure-systems.com/Home.142.0.html

http://www.esi.es/plum/

OpenSource

http://gsd.uwaterloo.ca:8088/SPLOT/splot_open_source.html

Lista instrumente aplicabile

http://www.softdevtools.com/modules/weblinks/viewcat.php?cid=92

Site:

http://www.softwareproductlines.com/

Page 818: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 19

Avantaje

Eficienþã ºi productivitate crescute.

Îmbunãtãþirile remarcabile pentru

� cost,

� timp de lansare pe piaþã

� productivitate

EXEMPLE

� Nokia raporteazã producerea a 25 - 30 de modele diferite de telefoane pe an prin abordarea liniilor de produse.

� Cummins a redus timpul de produse a software-lui pentru un motor diesel de la 1 an la 1 sãptamânã.

� Motorola a realizat o creºtere cu 400% a productivitãþii la o familie de pager-e unidirecþionale.

� Hewlett-Packard a redus timpul de lansare pe piaþã cu un factor de 7 ºi a crescut productivitatea cu un factor de 4 la o familie de imprimante.

Page 819: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 20

Exemplu - Nokia

Variabilitate

numãr de taste

dimensiune afiºaj

setul de caracteristici

suport pentru limbã ºi þarã

protocol de comunicare

caracteristici configurabile

comportament

etc.

Page 820: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 21

PLAN CURS

Linii de produse software

Domeniul liniei de produse

Potenþial de reutilizare

Arhitectura software ��UHVXUVă�UHXWLOL]DELOă

Rolul arhitecturii în linia de produse

Variabilitate

Documentarea ºi evaluarea arhitecturii

Problematica adoptãrii liniilor de produse

Studiu de caz - linia de produse osciloscoape Tektronix

Standarde pentru integrare de componente

Page 821: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 22

Domeniul liniei de produse (1)

Domeniul unei linii de produse delimiteazã sistemele care aparþin de cele care nu aparþin liniei de produse.

Reprezintã predicþia cea mai bunã a organizaþiei referitoare la ce produse îi vor fi solicitate în viitor.

Este determinat de :

Realizatorii planurilor stategice

Marketing

Analiºtii de domeniu

Nevoia de a construi mai multe produse similare

Page 822: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 23

Domeniul liniei de produse (2)

Analiza variabilitãþii liniei de produse � discerne între aspectele comunepentru toþi membrii familiei ºi aspectele variabile de la un membru la altul.

Implicã studiul pieþelor, stakeholder-ilor ºi proiectare în scopul identificãrii

elementelor comune.

Discuþie - dimensiunea domeniului liniei de produse:

Domeniu prea îngust (produsele varizã în cadrul unui numãr redus de caracteristici) �

numãr insuficient de produse pentru a se justifica linia de produse.

Domeniu prea larg (produsele variazã ca tipuri ºi caracteristici) costuri prea mari pentru� construirea de produse individuale,

� întreþinerea resurselor de bazã.

Page 823: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 24

PLAN CURS

Linii de produse software

Domeniul liniei de produse

Potenþial de reutilizare

Arhitectura software ��UHVXUVă�UHXWLOL]DELOă

Rolul arhitecturii în linia de produse

Variabilitate

Documentarea ºi evaluarea arhitecturii

Problematica adoptãrii liniilor de produse

Studiu de caz - linia de produse osciloscoape Tektronix

Standarde pentru integrare de componente

Page 824: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 25

Potenþial de reutilizare (1)

Cerinþe� Majoritatea cerinþelor sunt comune cu cele ale sistemelor instanþiate anterior din

linia de produse, deci pot fi re-utilizate.

Proiect arhitectural� O arhitecturã reprezintã o investiþie de timp semnificativã din partea celor mai

talentaþi ingineri ai firmei.

� Pentru un produs nou, pasul cel mai important al proiectãrii este deja fãcut.

Modele, cod ºi documentaþie� Pe lângã reutilizarea codului, reutilizarea elementelor include artefacte de

proiectare ºi documentaþie.

Analizã� Modele pentru performanþã, analize ale graficului de timp, analize ale sistemelor

distribuite, alocarea proceselor la procesoare, toleranþa la defecte, încãrcarea

reþelei, ºi altele asemenea, pot fi reutilizate la toate produsele din linia de produse.

Page 825: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 26

Potenþial de reutilizare (2)

Testare� Planurile, procesele, cazurile, datele, încãrcãrile, instrumentele de testare,

raportarea defectelor ºi urmãrirea proceselor, pot fi stabilite o singurã datã pentru

o linie de produse.

Eliminare defecte� Liniile de produse duc la îmbunãtãþirea mai rapidã a calitãþii produselor deoarece

fiecare sistem nou preia avantajele legate de eliminarea defectelor din sistemele ce l-au precedat.

� Pot fi remediate clase largi de produse atunci când un client gãseºte un defect la un membru al familiei.

� Cu fiecare instanþiere de produs nou, creºte încrederea dezvoltatorului ºi a clientului.

� Cu cât sistemul este mai complicat, cu atât este mai mare avantajul primit la rezolvarea problemelor dificile pentru întreaga familie de produse.

Page 826: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 27

Potenþial de reutilizare (3)

Exemplare de sisteme� Produsele puse în funcþiune servesc ca prototipuri de demonstrare ºi ca modele

de inginerie pentru produsele viitoare.

Personal calificat� Expertiza este aplicabilã întregii linii de produse.

Planificare proiect� Bugetarea ºi planificarea sunt mai predictibile deoarece experienþa este cel mai

bun indicator al performanþei viitoare.

� Structurile de divizare a activitãþii (WBS) nu trebuie reinventate.

� Dimensiunea ºi compoziþia echipei sunt uºor de determinat pe baza experienþei anterioare.

Procese, metode ºi instrumente� Controlul configuraþiilor, facilitãþile, planurile, procesele de aprobare,

instrumentele, procesele de punere în funcþiune, standardele de codificare, ºi o varietate de activitãþi suport zilnice odatã stabilite sunt valabile pentru întreaga linie de produse.

Page 827: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 28

PLAN CURS

Linii de produse software

Domeniul liniei de produse

Potenþial de reutilizare

Arhitectura software ��UHVXUVă�UHXWLOL]DELOă

Rolul arhitecturii în linia de produse

Variabilitate

Documentarea ºi evaluarea arhitecturii

Problematica adoptãrii liniilor de produse

Studiu de caz - linia de produse osciloscoape Tektronix

Standarde pentru integrare de componente

Page 828: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 29

Reutilizarea arhitecturii software

Majoritatea firmelor produc familii formate din produse înrudite, diferenþiate printr-o serie de caracteristici.

� Aceastã situaþie poate oferi o oportunitate de reutilizare a arhitecturilorºi a restului activelor de bazã corelate cu acestea.

Dezvoltarea unei arhitecturi software reprezintã o investiþie semnificativã.

� Investiþia ar putea fi amortizatã prin utilizarea ei la mai multe sisteme.

� Reutilizarea poate oferi un avantaj competitiv major.

Pentru a stabili o linie de produse viabilã este necesarã proiectarea arhitecturii software cu intenþia de a fi reutilizatã.

Page 829: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 30

Arhitecturi pentru linii de produse

Observaþia de bazã :�H[LVWă�VLPLODULWăþi între produse anterioare ºi viitoare.

Se pot obþine economii de producþie prin:

� Definirea aspectelor comune.

� Oferirea unei infrastructuri reutilizabile (cadru) care sã fie suport pentru

aceste aspecte comune.

� Definirea unui mod de a specializa cadrul pentru un produs particular.

La baza acestui efort se regãseºte în mod tipic o arhitecturã software care stabileºte o viziune comunã pentru structura, conþinutul ºi variabilitateaproduselor din familie.

Page 830: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 31

Arhitectura liniei de produse

Într-o strategie bazatã pe linii de produse, produsele sunt instanþiate dintr-o arhitecturã comunã.

Arhitectura liniei de produse

� Oferã structura tuturor produselor din familia liniei de produse.

� Defineºte elementele, relaþiile, interfeþele,º.a., care constituie baza de resurse.

� Stã la baza planurilor de producþie care definesc modul în care produsele sunt instanþiate din arhitectura liniei de produse, utilizând ºi elemente din baza de resurse.

Centrarea pe arhitecturã sprijinã reutilizarea strategicã (care este diferitã de reutilizarea aleatoare.)

Page 831: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 32

Rolul arhitecturii în liniile de produse

Arhitectura joacã un rol cheie în liniile de produse.

Structurile arhitecturale (ºabloane, stiluri,...)

tipizeazã o familie de soluþii la probleme recurente specifice unui domeniu particular.

pot conduce la arhitecturi de referinþã

care reprezintã modele reutilizabile de cunoºtinþe.

Arhitecturile de referinþã

definesc esenþa arhitecturii sistemelor pentru un anumit domeniu

pot fi utilizate pentru a crea cadre de implementare.

Cadrele de implementare�QX�VXQW�DUKLWHFWXUD�SURGXVXOXL�GDU�RIHUă�XQ�DYDQWDM�HFRQRPLF�semnificativ prin reducerea:� timpului necesar proiectãrii, codificãrii ºi testãrii de funcþionalitate similarã,� numãrului de defecte introduse în produs.

�Promoveazã ceea ce este comun produselor.�Faciliteazã reutilizarea ºi liniile de produse.�Reduce curba de învãþare.Exemple din industrie: ERP, CRM, avionicã, telecomunicaþii.

Page 832: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 33

Cadrele de implementare bazate pe arhitecturi de referinþã sunt folosite pentru construirea de

produse pentru domeniul respectiv.

Exemplu: derivare cadru de implementare pentru aplicaþii business orientate web.

Putem aplica deliberat acest concept pentru o familie de produse înrudite, adicã vom

defini arhitectura familiei de produse din care vom deriva un cadru de dezvoltare a produselor familiei respective.

Arhitecturi ºi cadre de dezvoltare de aplicaþii

Stilul: client serverpe n trepte

Domeniul: E-business

Cadrul de implementare: JBoss

Cunoaºtere

codificatã:

� contabilitate

� management al

clienþilor

:

Cunoaºtere

codificatã:

� reþelisticã

� protocoale

� partiþionare ºi

responsabilitãþi ale

elementelor

:

Cunoaºtere

codificatã:

� specificaþii servicii

� limbaj

� modele de fire de

execuþie

:

Cunoaºtere codificatã:

� biblioteci de servicii

� servicii de securitate

� servicii de

tranzacþionare

� Modele de dezvoltare

:

Arhitectura dereferinþã: Standardul JavaEE

Page 833: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 34

Arhitecturã de referinþã � înglobeazã cunoaºtere despre cum se proiecteazã

arhitecturi concrete de sisteme pentru un anumit domeniu de aplicaþii.

Arhitecturã linie de produse ��VSHFLDOL]DWă�SH�XQ�VXEVHW�

specific de sisteme software dintr-un domeniu; soluþie standardizatã pentru o familie de produse.

Produs

Arhitecturi ºi cadre de dezvoltare

Page 834: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 35

Linii de produse � atribute de calitate

Calitãþi necesare arhitecturilor software pentru linii de produse :

� Modificabilitate � abilitatea de a asambla diferite elemente în diferite combinaþii

� Portabilitate � abilitatea de a utiliza diferite elemente hardware

� Scalabilitate � abilitatea de a suporta extinderi în dimensiune, funcþionalitate,... SAU abilitatea de a suporta scãderi în dimensiune.

� Extensibilitate ��DELOLWDWHD�GH�D�DGăXJD�QRL�FDUDFWHULVWLFL�IDPLOLHL�GH�SURGXVH.

Calitãþi necesare produselor instanþiate din linia de produse :

� Performanþã

� Cost

� Funcþionalitate

Obs. O arhitecturã bunã nu implicã necesitatea sau posibilitatea unei linii de produse.

Page 835: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 36

Arhitectura liniei de produse

Arhitectura software � rolul central în grupul activelor de bazã ale liniei de produse.

Responsabilitãþi ale arhitectului�XQHL�OLQLL�GH�SURGXVH:

Identificã pãrþile variabile ale produselor

Oferã suport pentru variabilitate în cadrul arhitecturii

Evalueazã adecvarea arhitecturii la linia de produse

Caracteristici ale arhitecturii�XQHL�OLQLL�GH�SURGXVH:

Se aplicã tuturor membrilor liniei de produse ��FKLDU�GDFă�IXQFþiile ºi calitãþile lor diferã.

Conþine atât aspectele comune cât ºi aspectele variabile ale membrilor familiei.

Page 836: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 37

PLAN CURS

Linii de produse software

Domeniul liniei de produse

Potenþial de reutilizare

Arhitectura software ��UHVXUVă�UHXWLOL]DELOă

Rolul arhitecturii în linia de produse

Variabilitate

Documentarea ºi evaluarea arhitecturii

Problematica adoptãrii liniilor de produse

Studiu de caz - linia de produse osciloscoape Tektronix

Standarde pentru integrare de componente

Page 837: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 38

Identificarea variaþiilor

Def. Variaþie = o diferenþã dintre douã sau mai multe produse.Exemple:

Dirijori arhitecturali: funcþionalitate, constrângeri, atribute de calitate

Platforme

Pieþe þintã

Interfeþe (culturã/limbã), etc.

Variaþiile produselor trebuie identificate în cadrul procesului de culegere ºi analizã a cerinþelor.

Identificarea variaþiilor trebuie sã fie o activitate continuã de-a lungul ciclului de viaþã al liniei de produse.

Page 838: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 39

Mecanisme de variaþie

Mecanism de variaþie - introdus în active de bazã.

Exemple:

� moºtenire,

� substituire componente,

� plug-ins,

� template,

� parametri,

� generator,

� aspecte,

� configurator,

� execuþii condiþionale

Page 839: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 40

Mecanisme de variaþie

Includerea sau omiterea de elemente

De exemplu, compilare condiþionalã sau proceduri de construire (build) care includ sau exclud diferite elemente pentru diferite instanþieri de produse.

Includerea unui numãr diferit de elemente replicate

De exemplu, pentru a creºte capacitatea se pot produce variante prin adãugare de servere.

Selectarea sau configurarea elementelor care oferã diferite caracteristici de comportament ºi/sau atribute de calitate.

De exemplu, sã considerãm douã produse ce utilizeazã acelaºi element:�HOHPHQWXO�VXSRUWă�dezactivarea sau reactivarea unor caracteristici, funcþie de produsul la care este folosit.

Specializarea ºi/sau generalizarea claselor care conþin elementele de variaþie.

Clasele pot fi scrise a.î. sã se poatã adapta unei varietãþi de specializãri ce pot fi scrise pentru

fiecare produs.

Configurare la momentul execuþiei (runtime):

Configurarea la execuþie bazatã pe parametri incluºi în elemente, ca suport pentru variabilitate.

Configurare dinamicã de tip plug-and-play.

Page 840: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 41

PLAN CURS

Linii de produse software

Domeniul liniei de produse

Potenþial de reutilizare

Arhitectura software ��UHVXUVă�UHXWLOL]DELOă

Rolul arhitecturii în linia de produse

Variabilitate

Documentarea ºi evaluarea arhitecturii

Problematica adoptãrii liniilor de produse

Studiu de caz - linia de produse osciloscoape Tektronix

Standarde pentru integrare de componente

Page 841: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 42

Documentaþie

Documentaþie (suplimentarã) specificã liniilor de produse:

Documentaþie pentru toate activele de bazã (incluzând cerinþe, proiectare, etc.)

Pãrþile variabile� Motivaþii de stabilire a pãrþii variabile legate de domeniul curent al liniei de

produse.

� Descrierea locului ºi motivelor variaþiilor din produse ºi a modului în care acesta sunt tratate.

� Combinaþiile de elemente permise ºi interzise.

Planul de producþie�FDUH�LQGLFă�PRGXO�în care vor fi construite sau instanþiate produsele.

Page 842: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 43

Evaluarea arhitecturii unei linii de produse

Evaluare în raport cu adecvarea la obiectiv (ca pentru orice arhitecturã software).

Motivaþii pentru realizarea evaluãrii:

Multe sisteme depind de arhitecturã

Crearea arhitecturii este o investiþie semnificativã

Succesul unei firme poate sta în arhitectura liniei de produse

Arhitectura trebuie sã poatã suporta cerinþele de COMPORTAMENT ªI cele pentru ATRIBUTE DE CALITATE pentru TOÞI membrii liniei de produse.

Evaluatorii trebuie sã dezvolte scenarii care implicã instanþierea arhitecturii pentru diferite produse din familia de produse.

� Centrare pe pãrþile variabile, care trebuie sã:� adreseze corespunzãtor fiecare membru al familiei de produse,

� ofere suficientã flexibilitate pentru a acoperi domeniul liniei de produse,

� permitã construirea produselor cît mai repede posibil,

� nu impunã costuri sau riscuri inacceptabile la producerea nici unui membru al familiei.

Page 843: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 44

Evaluarea arhitecturii unei linii de produse

Momente în care se realizeazã:

Dupã crearea arhitecturii pentru întreaga familie de produse.

La crearea primului produs �instanþã� utilizând arhitectura.

Dupã revizuiri majore ale arhitecturii liniei de produse.

Când cerinþe de piaþã, domeniul sau stakeholder-ii se modificã semnificativ.

Când este propus un nou produs ce pare a fi în afara domeniului liniei de produse ��DUKLWHFWXUD�OLQLHL�GH�SURGXVH�WUHEXLH�HYDOXDWă�SHQWUX�D�VH�YHGHa dacã este suficientã.

Page 844: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 45

PLAN CURS

Linii de produse software

Domeniul liniei de produse

Potenþial de reutilizare

Arhitectura software ��UHVXUVă�UHXWLOL]DELOă

Rolul arhitecturii în linia de produse

Variabilitate

Documentarea ºi evaluarea arhitecturii

Problematica adoptãrii liniilor de produse

Studiu de caz - linia de produse osciloscoape Tektronix

Standarde pentru integrare de componente

Page 845: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 46

Problematica adoptãrii liniilor de produse

Firmã

Majoritatea firmelor construiesc produse izolate.

Proces

Un proces de dezvoltare existent trebuie modificat radical pentru a suporta linii de produse. �

E posibil ca o firmã maturã sã fi investit deja mult în îmbunãtãþirea unui proces de dezvoltare existent.

Afacere

Este necesar un caz business valid pentru a se justifica costul unei linii de produse.

Poate fi dificil de cuantificat economiile ºi costurile de amortizare.

Tehnologie

Angajare fermã în crearea ºi întreþinerea arhitecturii software.

Cost

Costurile iniþiale de creare a unei linii de produse sunt mari.

Page 846: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 47

Problematica adoptãrii liniilor de produse

Caracteristici specificeResursã

Trebuie sã suporte variaþia inerentã liniei de

produse.Arhitecturã

Trebuie proiectate pentru a fi generale, dar fãrã

a se pierde din performanþã; trebuie sã conþinã

pãrþi variabile.

Componente software

Reutilizarea analizei ar putea impune constrângeri alocãrii pe procesoare.

Modelarea ºi analiza performanþei

Trebuie sã ia în considerare pãrþile variabile ºi instanþele multiple ale liniei de produse: fiecare plan va fi dependent de gradul de reutilizare.

Planuri de test, cazuri de testare, date de test, planuri proiect

Trebuie sã fie mai robuste; trebuie sã implice

instruire ºi expertizã centrate pe resursele ºi procedurile asociate cu linia de produse.

Instrumente, procese, personal, competenþe, instruire

Page 847: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 48

Strategii de adoptare

Adoptarea unei linii de produse -�SUREOHPă�GH�WLS�inserþie de tehnologie.

Abordãri: Descendentã ��XQ�PDQDJHU�GHFUHWHD]ă�Fă�ILUPD�YD�XWLOL]D�R�DERUGDUH�GH�WLS�OLQie de

produse.

� Problemã � modificarea comportamentului dezvoltatorilor.

Ascendentã � proiectanþii descoperã valoarea ºi oportunitatea exploatãrii liniilor de

produse.

� Problemã � managerii sunt deseori refractari în a cheltui bani pe ceva ce nu se transformã în funcþionalitate imediatã.

Adoptarea este favorizatã de �Avocat� care înþelege perfect liniile de produse ºi impactul acestora asupra companiei.

Arhitect talentat care înþelege liniile de produse.

Rãbdarea ºi suportul managerilor.

Consideraþii la adoptare Istoria companiei, cultura companiei, starea curentã ºi starea doritã.

Page 848: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 49

Eºecuri

Factori de eºec:

Lipsa unei persoane care înþelege liniile de produse ºi care este într-o poziþie cu autoritate ºi vizibilitate.

Lipsa experienþei arhitecturale în proiectarea unei arhitecturi suport pentru o linie de produse.

Lipsa unui suport susþinut ºi ferm din partea managerilor,�OLQLD�GH�SURGXVH�ILLQG�abandonatã la primul semn de dificultate.

Reticenþa managerilor intermediari de a renunþa la controlul autocratic asupra proiectelor.

Eºec în a identifica un caz business ºi economic clar pentru adoptarea abordãrii bazatã

pe linii de produse.

Inabilitatea de a echilibra finanþarea liniei ºi a produselor în mod corespunzãtor.

Probleme de securitate sau de confidenþialitate între produsele familiei de produse.

Eºec în antrenarea adecvatã a personalului pentru a lucra în cadrul unei abordãri bazatã

pe linii de produse.

Page 849: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 50

Linii de produse ��DQDOL]ă�HFRQRPLFă

Efortul de dezvoltare

COTS(sistem de operare, instrumente, compilator, ...)

Cadre pentru linii de produse(bunuri ale companiei)

Dezvoltare produs individual

Costcumulativ

Numãrul de produse construite

Fãrã arhitecturã pentru linie de produse

Cu arhitecturã pentru linie de produse

Page 850: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 51

Linii de produseCONCLUZII

Linii de produse software ��SDUDGLJPă�GH�GH]YROWDUH�GH�VRIWZDUH�bazatã

pe arhitecturã.

Abordarea bazatã pe linii de produse devine din ce în ce mai popularã pe

mãsurã ce companiile realizeazã avantaje remarcabile de cost, timp ºi calitate prin utilizarea acesteia.

Adoptarea unei linii de produse nu este simplã ºi poate fi ameninþatã de

mai multe probleme; adoptarea trebuie consideratã cu atenþie ºi implementarea sa trebuie atent planificatã.

Page 851: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 52

Linii de produseBibliografie

Northrop, L. & Clements, P. A Framework for Software Product Line Practice, Version 5.0.<http://www.sei.cmu.edu/productlines/framework.html>.

Brownsword, Lisa & Clements, Paul. A Case Study in Successful Product Line Development, CMU/SEI-96-TR-016.

Clements, Paul C. & Northrop, Linda M. Salion, Inc.: A Software Product Line Case Study, CMU/SEI-2002-TR-038.

Clements, Paul; Cohen, Sholom; Donohoe, Patrick; Northrop, Linda. Control Channel Toolkit: A Software Product Line Case Study, CMU/SEI-2001-TR-030.

Bergey, John K. & Goethert, Wolfhart B. Developing a Product Line Acquisition Strategy for a DoDOrganization: A Case Study, CMU/SEI-2001-TN-021.

Cohen, Sholom. Case Study: Building and Communicating a Business Case for a DoD Product Line,CMU/SEI-2001-TN-020.

O'Brien, Liam. Architecture Reconstruction to Support a Product Line Effort: Case Study, CMU/SEI-2001-TN-015.

Page 852: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 53

PLAN CURS

Linii de produse software

Domeniul liniei de produse

Potenþial de reutilizare

Arhitectura software ��UHVXUVă�UHXWLOL]DELOă

Rolul arhitecturii în linia de produse

Variabilitate

Documentarea ºi evaluarea arhitecturii

Problematica adoptãrii liniilor de produse

Studiu de caz - linia de produse osciloscoape Tektronix

Standarde pentru integrare de componente

Page 853: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 54

Stiluri arhitecturale specializate

Stiluri arhitecturale� Generice

� Specifice (specializate pe domenii)

Specializarea suportã analize, reutilizare cod, instrumente.

Standarde generice

pentru integrarede componente

Standardede domeniu

pentru integrare de componente

Stilurigenerice

Specializãri destiluri generice

Linii de produse

Flux dateCall-Return

...

Pipes & Filters�

Multitier...

CORBACOM

JavaBeans...

Tektronix OscilloscopesXerox Network Scanning

Arch...

EJBHLA

...

Specificitate

�Stilul arhitectual este specializat pentru o anumitã familie de produse.

Page 854: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 55

Specializare stiluri

Relaþie între stiluri

Specializarea constrângeri suplimentare, specificitate de domeniu.

Exemplu:

Data FlowStyles

Pipe and FilterBatchSequential

Control Systems

Unix PF

Page 855: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 56

Studiu de caz Linia de produse: osciloscoape Tektronix

Contextul de apariþie:

Creºterea complexitãþii instrumentelor de mãsurã

Creºterea rolului software-lui în produse ce erau preponderent hardware.

Aºteptãri crescute ale utilizatorilor.

�Culturi� de dezvoltare separate

Produse similare dezvoltate de divizii diferite

Slabã partajare

Metode de construire de la zero

Hardware nou sau UI nouã software nou.

Produse inflexibile ºi fragile

Erori din ce în ce mai serioase datorate funcþionãrii în regim de task-uri concurente.

Timp de lansare pe piaþã excesiv (4-5 ani)

Page 856: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 57

Studiu de caz Linia de produse: osciloscoape Tektronix

Page 857: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 58

Studiu de caz Linia de produse: osciloscoape Tektronix

PROVOCAREA

Posibilitãþi de reutilizare între diviziile de producþie.

Construirea sistemelor de instrumentaþie din generaþia viitoare.

Suport pentru un rãspuns interactiv mai bun.

Platforme hardware multiple pentru aceeaºi interfaþã utilizator.

Interfeþe utilizator multiple pentru aceeaºi platformã (pieþe verticale).

Reducerea timpului de lansare pe piaþã.

Page 858: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 59

Studiu de caz Linia de produse: osciloscoape Tektronix

Osciloscop

semnale forme de undãImagini ale formelor de undãºi valori mãsurate

Page 859: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 60

Studiu de caz Linia de produse: osciloscoape Tektronix

Soluþie: Varianta 1 � descompunere OO.

forme de undã

forme de undãx-y

forme de undã cumulate

forme de undã max-min

waveformw: time-> voltagemax: -> voltagemin: -> voltageinvert: ...add: ...

Rezultat: Sute de clase, structurã slabã, nu se identificã un ºablon general.

Page 860: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 61

Studiu de caz Linia de produse: osciloscoape Tektronix

Soluþie: Varianta 2 ��DUKLWHFWXUă�în straturi.

Hardware

Digitizare

Vizualizare

Interfaþã utilizator

Rezultat: Limitele de abstractizare nu sunt realiste.

Page 861: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 62

Studiu de caz Linia de produse: osciloscoape Tektronix

Soluþie: Varianta 3 ��DUKLWHFWXUă�SLSH-and-filter.

Rezultat: Un model mai bun, dar nu este clar cum se modeleazã intrãrile de la utilizator.

Subsistem de declanºare

Cuplare Achiziþie To-XY Clip

Mãsurare

Semnal

Forme de undã Grafic

Valoare mãsuratã

Impulsuri

Page 862: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 63

Studiu de caz Linia de produse: osciloscoape Tektronix

Soluþie: Varianta 4 ��DUKLWHFWXUă�SLSH-and-filter cu filtre parametrizate.

Rezultat: Model elegant, dar relativ dificil de înþeles de cãtre implementatatori.

Cuplare Fel, ratã Transform Dimensiune

Cuplare Achiziþie ClipTo-XY

Mãsurare

Semnal

Forme de undã Grafic

Valori mãsurate

Impulsuri

Sistem de declanºare

Page 863: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 64

Studiu de caz Linia de produse: osciloscoape Tektronix

Soluþie: Varianta 5 ��DUKLWHFWXUă�SLSH-and-filter cu filtre parametrizate ºi conducte colorate.

Rezultat: Model elegant ºi implementabil.

Cuplare Achiziþie ClipTo-XY

Mãsurare

Semnal

Forme de undã Grafic

Valori mãsurate

Impulsuri

Cuplare Fel, ratã Transform Dimensiune

Sistem de declanºare

Page 864: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 65

Studiu de caz Linia de produse: osciloscoape Tektronix

REZULTATE

Stilul arhitectural a fost utilizat ca bazã pentru urmãtoarea generaþie de produse osciloscop.

S-a obþinut un cadru(framework) reuºit, în care timpul de lansare pe piaþã a scãzut dramatic pentru produsele familiei.

A fost îmbunãtãþitã fiabilitatea produsului.

Interfaþa utilizator a devenit extensibilã.

A condus la cadre noi, dincolo de domeniul osciloscoapelor.

Un nou imbold pentru colaborãri de cercetare ºi dezvoltare.

Page 865: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 66

Alte modele arhitecturale

Dezvoltarea ulterioarã a liniei de produse a implicat ºi crearea altor cadre arhitecturalepentru gestionarea altor aspecte ale sistemelor de instrumentare ºi a altor pãrþi ale software-lui.

Framework PF (pipe-and-filter) extins:

� Date partajate

� Filtre trigger-ate

� Rate variabile

� Utilizare flexibilã a intrãrilor

Arhitectura interfeþei utilizator:

� Flux de control de la panourile frontale cãtre interior

� Ierarhii de menu-uri

Page 866: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 67

Mecanisme utile

Utilizarea prototipãrii

Concurentã cu proiectarea

Concentratã pe traducerea în concepte OO ºi performanþã

Mediu de dezvoltare (pentru ingineri)

Aplicabilitate, odatã ce stilul arhitectural a fost definit

Revizuiri frecvente ale design-lui

Conectarea design-lui la realitate

Competenþe ºi motivare

Experþi de domeniu ºi dezvoltatori de sistem

Expertizã în abstractizare ºi modele formale

Dorinþa de a abandona modele vechi de proiectare

Dorinþa de a rejecta arhitecturi necorespunzãtoare

Instrumente

Nu sunt necesare în perioada de conceptualizare

Esenþiale pe parcursul dezvoltãrii

Management

Iniþial -�Vă�ODVH�OLEHUWDWH

Ulterior -�Vă�DMXWH�OD�LPSXQHUHD�VWDQGDUGHORU

Page 867: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 68

Concluzii

Proiectarea arhitecturii liniilor de produse implicã iteraþii.

Proiectarea arhitecturii liniilor de produse implicã interacþiune.

Problematica ºi implementarea cerinþelor extra-funcþionale afecteazã alegerile arhitecturale.

Avantajele oferite de liniile de produse:

� Reducere semnificativã a timpului de lansare pe piaþã.

� Creºtere semnificativã a calitãþii.

Page 868: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 69

PLAN CURS

Linii de produse software

Domeniul liniei de produse

Potenþial de reutilizare

Arhitectura software ��UHVXUVă�UHXWLOL]DELOă

Rolul arhitecturii în linia de produse

Variabilitate

Documentarea ºi evaluarea arhitecturii

Problematica adoptãrii liniilor de produse

Studiu de caz - linia de produse osciloscoape Tektronix

Standarde pentru integrare de componente

Page 869: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 70

Standarde pentru integrare de componente

În general este dificil de dezvoltat aplicaþii din componente realizate de furnizori diferiþi.

Conformitatea signaturii nu este suficientã; sunt, de asemenea, relevante:

� Ordinea de invocare

� Ipoteze referitoare la localizarea controlului

� Reprezentãri ale datelor

� Condiþii de sincronizare

� Cãutare / descoperire / numire

� Gestionarea defectelor

Modalitate de ameliorare : agrearea unor standarde de interoperabilitate, numite standarde pentru integrare de componente.

Page 870: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 71

Standarde pentru integrare de componente

Exemplu: NIST ECMA � model de referinþã pentru CASE

Memorare ºi management date

Management grupuri de entitãþi

Definiþii ºi execuþie modele de procese

Dezvoltarea interfeþei utilizator

Comunicare instrument-instrument ºi instrument-context

Page 871: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 72

Standarde pentru integrare de componenteExemplu: Middleware

ProcesulClient

ProcesulServer

Interfaþa server-lui

Scrisã într-un limbaj neutru pentru definire de interfeþe (IDL)

Implementarea server-lui(într-un limbaj de programare)Implementarea clientului

(într-un limbaj de programare)

Middleware Middleware

Un protocol peste TCP/IP

CompilatorulIDL

Client-side�Glue�

Server-side�Glue�Scrise într-un limbaj de programare,

dar independent de clienþi

Page 872: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 73

Standarde pentru integrare de componenteDefiniþie

Standard arhitectural ce permite compunerea flexibilã de componente realizate de terþi.

Defineºte:

1. Structura generalã a aplicaþiei în termenii tipurilor majore ale componentelor constituente.

2. Set de interfeþe�VWDQGDUG�FH�GHVFULX�FDSDELOLWăþile cerute componentelor.

3. Infrastructurã reutilizabilã ce sprijinã integrarea componentelor prin servicii partajate ºi canale de comunicare.

Page 873: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 74

Standarde pentru integrare de componenteConþinut

Reguli referitoare la interfeþele componentelor

� Structurã, conþinut, capabilitãþi necesare

Reguli ºi infrastructurã pentru conectori

� Definirea modurilor permise de interacþiune între componente

� Infrastructura suport pentru interoperabilitate

� (în general) API la servicii de comunicare low-level

Convenþii de numire ºi descoperire

� De obicei, folosind un serviciu specializat de tip �registry�.

Bazã de elemente reutilizabile

� Blocuri fundamentale pentru construire de componente.

� Instrumente pentru generare sistem.

Page 874: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 75

Standarde pentru integrare de componentePolitici

�Standarde� de facto

� Impuse de furnizor (ex. IBM, Microsoft, Oracle)

� Exemple: COM, .NET, JEE

Standarde definite în colaborare (de cãtre un segment al industriei sau de

cãtre organizaþii speciale � standards body �.)

� Proiectate în mod tipic de o comisie

� Deseori apar ca reacþie la cele de facto

� Exemple: NIST/ECMA model pentru instrumente CASE, standarde OMG (DCE, UML, ...); HLA

Page 875: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 76

Observaþii generale referitoare la standardele pentru integrare de componente

Conectorii�VXQW, de obicei,�SDUWHD�FHD�PDL�LPSRUWDQWă.

� Înþelegerea acestui lucru este criticã pentru succes.

Un API este fundamental, dar nu suficient.

� Trebuie înþelese, de asemenea, temporizãrile, protocoalele, etc.

Forma de bazã a interacþiunii este doar o micã parte a arhitecturii.

� Se adaugã: managementul pãrþilor, tratarea erorilor, pause-resume, negocieri referitoare la date partajate, caracteristici pentru creºterea performanþei.

Testul de conformanþã�HVWH�R�SUREOHPă�VHULRDVă.

� Pentru furnizorii de componente ºi furnizorii de infrastructurã.

Page 876: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 77

CONCLUZII

Arhitecturile pentru liniile de produse ºi arhitecturile standardelor pentru integrare de componente oferã avantaje plãtite cu scãderea gradului de generalitate.

Deseori acestea sunt specializãri sau combinaþii ale stilurilor pure.

Dacã sunt proiectate corect, au un impact mare asupra dezvoltãrii de

produse software ºi asupra industriei în general.

Realizarea ºi utilizarea lor corectã sunt dificile

� Procesul trebuie sã fie iterativ, experimental, colectiv.

� Trebuie oferit mai mult decât un API.

Page 877: Arhitecturi pt Sisteme Software - Prof. Mindruta - Cursuri 1-14

Cristina Mîndruþã Arhitecturi pentru sisteme software Slide 78

Studiu suplimentar

Din secþiunea �Documentaþii� studiaþi:

spl-essentials.pdf

Variability_in_spl_2005_05tr012.pdf

SPLEng_Diagram.pdf