1 / 62

Arhitecturi pentru sisteme soft w are

Arhitecturi pentru sisteme soft w are. Curs 2. PLAN CURS. Sec ţiunile cursului Tipuri de vederi (viewtypes), stiluri şi vederi Definiţii Perspectiva statică Perspectiva dinamică Perspectiva alocării Concluzie Limbajul Acme şi instrumentul AcmeStudio. Secţiunile cursului.

lily
Download Presentation

Arhitecturi pentru sisteme soft w are

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arhitecturi pentru sisteme software Curs 2

  2. PLAN CURS • Secţiunile cursului • Tipuri de vederi (viewtypes), stiluri şi vederi • Definiţii • Perspectiva statică • Perspectiva dinamică • Perspectiva alocării • Concluzie • Limbajul Acme şi instrumentul AcmeStudio

  3. Secţiunile cursului • Definiţie şi concepte • Stiluri arhitecturale clasice • Tehnici • Arhitecturi pentru X

  4. Secţiunile cursului - Definiţie şi concepte Definiţie - “Arhitectura software a unui program sau a unui sistem de calcul constă din structura sau structurile sistemului şi conţine elementele software, proprietăţile vizibile din exterior ale acestor elemente şi relaţiile dintre elemente.” Concepte • Structură – element real al arhitecturii unui sistem, reprezentabil prin abstractizări arhitecturale. • Element software – “parte” a unui sistem software. • Proprietate arhitecturală – proprietate funcţională sau non-funcţională (calitate) vizibilă din exterior. • Relaţie – interacţiune între elemente prin intermediul interfeţelor publice. • Perspectivă – punct de vedere limitat asupra sistemului. • Vedere (view) şi tip de vedere (viewtype) – (View) reprezentare a unei structuri văzută dintr-o anumită perspectivă; (Viewtype) mod de reprezentare specific unei anumite perspective. • Stil arhitectural • Şablon arhitectural

  5. Secţiunile cursului – Stiluri arhitecturale clasice • Descriere stil • Caracteristici distinctive şi specializări • Euristici pentru alegere stil • Tehnici de implementare • Formalizări • Studii de caz Familii de stiluri (din perspectiva dinamică - C&C) • Dataflow • Call-return • Event-based • Shared Data • Communicating Processes • Altele

  6. Secţiunile cursului – Tehnici Suportul pentru proiectarea arhitecturală • Notaţii pentru reprezentare arhitecturi • Tehnici de alegere a unei arhitecturi bune • Analiza compromisurilor • Instrumente • Prezentări eficiente ale arhitecturii • Documentarea arhitecturilor software • Convieţuirea cu eterogenitatea şi cu părţi ce nu se potrivesc • Ingineria liniilor de producţie Arhitectura face trecerea de la cerinţe la implementare • Relaţiile dintre cerinţe şi arhitectură • Relaţiile dintre arhitectură şi implementări • Relaţiile dintre arhitecturi

  7. Secţiunile cursului – Arhitecturi pentru X Modul de adaptare a tehnicilor de bază şi a stilurilor arhitecturale la anumite atribute de calitate şi la anumite domenii. X {performanţă, securitate, utilizabilitate, sistem enterprise, E-commerce}

  8. PLAN CURS • Secţiunile cursului • Tipuri de vederi (viewtypes), stiluri şi vederi • Definiţii • Perspectiva statică • Perspectiva dinamică • Perspectiva alocării • Concluzie • Limbajul Acme şi instrumentul AcmeStudio

  9. Tipuri de vederi, stiluri şi vederi “Arhitectura software a unui program sau a unui sistem de calcul constă din structura sau structurile sistemului şi conţine elementele software, proprietăţile vizibile din exterior ale acestor elemente şi relaţiile dintre elemente.” Într-o vedere arhitecturală este reprezentat un anumit fel de structură – 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.

  10. 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ă este caracterizată de un 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.

  11. 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 din contextul său. Vederile reprezintă modul de alocare a structurilor software pe structurile non-software ale sistemului. Tipul de vedere este Allocation Viewtype.

  12. 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.

  13. 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

  14. PLAN CURS • Secţiunile cursului • Tipuri de vederi (viewtypes), stiluri şi vederi • Definiţii • Perspectiva statică • Perspectiva dinamică • Perspectiva alocării • Concluzie • Limbajul Acme şi instrumentul AcmeStudio

  15. 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

  16. 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 se bazează pe unităţile de implementare. • Managementul proiectului, bugetarea, planificarea şi monitorizarea utilizează frecvent aceste module.

  17. Perspectiva statică – Module Viewtype NOTAŢII Informale : box-and-lines, cu încuibare UML : diagrame de clase

  18. Perspectiva statică – Module Viewtype STILURI Stilul de descompunere • descompunerea ierarhică a modulelor • 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 virtuale • suportă portabilitate, reutilizare • STILURI • Descompunere • Generalizare • Stratificare

  19. 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 producţie 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

  20. 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

  21. Perspectiva statică – Module Viewtype Exemplu • STILURI • Descompunere • Generalizare • Stratificare

  22. 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

  23. Perspectiva statică – Module Viewtype NOTAŢII Formal : • Limbaje de programare • UML • STILURI • Descompunere • Generalizare • Stratificare

  24. Perspectiva statică – Module Viewtype • STILURI • Descompunere • Generalizare • Stratificare 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.

  25. 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

  26. Perspectiva statică – Module Viewtype NOTAŢII Informale : dreptunghiuri şi săgeţi, stivă de dreptunghiuri, inele concentrice. • STILURI • Descompunere • Generalizare • Stratificare

  27. PLAN CURS • Secţiunile cursului • Tipuri de vederi (viewtypes), stiluri şi vederi • Definiţii • Perspectiva statică • Perspectiva dinamică • Perspectiva alocării • Concluzie • Limbajul Acme şi instrumentul AcmeStudio

  28. 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 : • “attachement” – ataşare port al componentei la rol al conectorului Proprietăţi : informaţii pentru construire şi pentru analiză • Atribute de calitate – suport pentru analiză • Altele – funcţie de stil

  29. 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 şi mecanismele de comunicare. • La analiză Model pe baza căruia se analizează proprietăţile (emergente) ale sistemului (disponibilitatea, performanţa, securitatea, încrederea, etc.).

  30. Perspectiva dinamică – C&C Viewtype NOTAŢII Informale : box-and-lines UML : diagrama de componente Acme (AcmeStudio) :

  31. Perspectiva dinamică – C&C Viewtype STILURI (1) Data Flow • Batch sequential (Secvenţial în loturi de lucrări) • Pipe&filters (Reţea de flux de date) • Closed loop control Call-and-return • Main program / subroutines • Information hiding : obiecte, naiv client-server Interacting processes • Communicating processes (light-weight processes, distributed objects) • Event systems (implicit invocation, pure events)

  32. Perspectiva dinamică – C&C Viewtype STILURI (2) Data-oriented repository • Transactional databases (true client-server) • Blackboard (whiteboard) • Modern compiler Data sharing • Compound documents • Hypertext • Light-weight processes Hierarchical • Interpretor • Client-server pe N-trepte (N-tiered)

  33. PLAN CURS • Secţiunile cursului • Tipuri de vederi (viewtypes), stiluri şi vederi • Definiţii • Perspectiva statică • Perspectiva dinamică • Perspectiva alocării • Concluzie • Limbajul Acme şi instrumentul AcmeStudio

  34. 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.

  35. 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.

  36. Perspectiva alocării – Allocation Viewtype NOTAŢII Informale UML : diagrama de repartizare (deployment)

  37. Perspectiva alocării – Allocation Viewtype STILURI Stilul repartizării Alocarea elementelor software la modurile de procesare şi de comunicare • Exemple de proprietăţi : cele necesare calculării (şi obţinerii) performanţei şi disponibilităţii Stilul implementării Alocarea elementelor software la structuri din sistemul de fişiere ale 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

  38. PLAN CURS • Secţiunile cursului • Tipuri de vederi (viewtypes), stiluri şi vederi • Definiţii • Perspectiva statică • Perspectiva dinamică • Perspectiva alocării • Concluzie • Limbajul Acme şi instrumentul AcmeStudio

  39. Concluzie • Sistemele – combinaţii de stiluri Ex. 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)

  40. Exemplu – Test Parsing SystemPerspectiva statică Stilul de descompunere

  41. Exemplu – Test Parsing SystemPerspectiva dinamică Vedere C&C

  42. Exemplu – Test Parsing SystemPerspectiva alocării Stilul implementării

  43. PLAN CURS • Secţiunile cursului • Tipuri de vederi (viewtypes), stiluri şi vederi • Definiţii • Perspectiva statică • Perspectiva dinamică • Perspectiva alocării • Concluzie • Limbajul Acme şi instrumentul AcmeStudio

  44. Perspectiva dinamică • Descompunerea (generală) sistemului în componente ce interacţionează la execuţie • În general ierarhică • Utilizare abstractizări globale pentru “lipire” componente • Deseori utilizare de stiluri de proiectare comune • Analiza proprietăţilor emergente ale sistemului • performanţă, rată de transfer, întârzieri, ... • fiabilitate, securitate, toleranţă la defecte, modificabilitate dinamică, ...

  45. 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şteo familie de arhitecturi prin: • Tipuri de componente şi conectori(vocabular) • Constrângeri topologice • Constrângeri semantice

  46. Descriere arhitecturi Notaţii şi instrumente pentru perspectiva dinamică (C&C viewtype) Cerinţe: (1) Exprimarea descrierilor arhitecturale precis şi intuitiv • Atât sintaxă cât şi semantică (2) Dezvoltare de crieterii de completitudine şi de instrumentepentru verificarea acestora • Similar cu verificatoarele de tip şi editoarele de legături, în cazul codului (3) Analizarea arhitecturilorpentru determinarea propertăţilor cheie • performanţă, fiabilitate, impact al modificărilor, interoperabilitate (4) Exploatarea şabloanelorşi stilurilor • Fără proliferarea nenecesară şi izolarea unor noi limbaje de proiectare şi instrumente.

  47. 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ă

  48. Descriere arhitecturi Limbaje (ADLs) - caracteristici • Structura sistemului este definită separat de componentele individuale • Părţile sunt “independente de context” • Suportăproiectare ierarhică • Se pot defini noi tipuri de conectori • Nu trebuie realizaţi direct de o singură primitivă a unui limbaj de implementare • Au semantici bogate • Exprimă / analizează proprietăţi non-funcţionale • performanţă, fiabilitate, etc. • Suport pentru stiluri architecturale • Şabloane arhitecturale reutilizabile

  49. Descriere arhitecturi Acme – limbaj reprezentativ • Proiectat iniţial ca limbaj pentru interschimbări • Devenit ulterior limbaj de tip ADL • Î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 • Interschimbări procesabile automat

  50. Exemplu – sistem client-server 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

More Related