Viste e punti di vista architetturali - Roma Tre...

26
Architettura dei Sistemi Software Luca Cabibbo Luca Cabibbo ASW Luca Cabibbo ASW Viste e punti di vista architetturali dispensa asw130 marzo 2020 Viste e punti di vista architetturali 1 These pictures are meant to entertain you. There is no significant meaning to the arrows between the boxes. A speaker at a software architecture conference Luca Cabibbo ASW - Fonti [SAP] Chapter 1, What is Software Architecture? [SAP] Chapter 18, Documenting Software Architectures [SSA] Chapter 2, Software Architecture Concepts [SSA] Chapter 3, Viewpoints and Views [SSA] Chapter 10, Identifying and Using Scenarios Kruchten, P. The “4+1” View Model of Software Architecture. IEEE Software, 1995. Clements et al. Documenting Software Architectures: Views and Beyond, second edition. SEI, 2010. ISO/IEC/IEEE 42010:2011. Systems and Software Engineering – Architecture Description. 2011. Viste e punti di vista architetturali 2

Transcript of Viste e punti di vista architetturali - Roma Tre...

Page 1: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Architettura dei Sistemi

Software

Luca Cabibbo

Luca Cabibbo ASWLuca Cabibbo ASW

Viste e punti di vista architetturali

dispensa asw130

marzo 2020

Viste e punti di vista architetturali1

These pictures are meant to entertain you.

There is no significant meaning to the arrows between the boxes.

A speaker at a software architecture conference

Luca Cabibbo ASW

- Fonti

[SAP] Chapter 1, What is Software Architecture?

[SAP] Chapter 18, Documenting Software Architectures

[SSA] Chapter 2, Software Architecture Concepts

[SSA] Chapter 3, Viewpoints and Views

[SSA] Chapter 10, Identifying and Using Scenarios

Kruchten, P. The “4+1” View Model of Software Architecture. IEEE Software, 1995.

Clements et al. Documenting Software Architectures: Views and Beyond, second edition. SEI, 2010.

ISO/IEC/IEEE 42010:2011. Systems and Software Engineering – Architecture Description. 2011.

Viste e punti di vista architetturali2

Page 2: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

- Obiettivi e argomenti

Obiettivi

introdurre le descrizioni architetturali

discutere viste e punti di vista

presentare alcuni cataloghi rappresentativi di punti di vista

Argomenti

descrizioni architetturali

viste architetturali

punti di vista (e cataloghi di punti di vista)

punti di vista di [SSA]

benefici e rischi legati alle viste

scenari e applicazione di scenari

tipi di viste di [SAP]

discussione

Viste e punti di vista architetturali3

Luca Cabibbo ASW

* Descrizioni architetturali

Nel processo di definizione dell’architettura – e, più in generale, nel ciclo di vita di un’architettura software – è necessario

progettare l’architettura – con le sue strutture e i suoi elementi

ragionare sull’architettura

comunicare l’architettura

Queste attività possono essere sostenute da un’opportuna modellazione dell’architettura

una descrizione architetturale è un insieme di modelli usati per descrivere un’architettura – ma che sostiene anche ragionamenti e comunicazione

per questo, il processo di definizione dell’architettura di un sistema software comprende anche la realizzazione di un’opportuna descrizione architetturale

Viste e punti di vista architetturali4

Page 3: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Descrizioni architetturali

Una descrizione architetturale (AD) [SSA, ISO-42010] è un insieme di prodotti/elaborati che descrivono/documentano un’architettura

i prodotti che costituiscono una AD comprendono modelli architetturali (viste architetturali, discusse più avanti) – ma anche i principali interessi, la definizione della portata del sistema, i vincoli, i principi rilevanti, le scelte di progetto (comprese quelle considerate ma scartate), nonché una giustificazione logica

Viste e punti di vista architetturali5

Luca Cabibbo ASW

Descrizioni architetturali

Una buona AD non ha solo lo scopo di “descrivere” o “documentare” un’architettura – ma anche quello di favorire la sua comprensione e la sua comunicazione

supporta ragionamenti sull’architettura

è la base per le decisioni iniziali di progetto e la loro analisi

consente di dimostrare se l’architettura soddisfa gli interessi delle parti interessate

sostiene la comunicazione con le parti interessate

deve essere comprensibile da diverse parti (tecniche e non tecniche)

è una guida per lo sviluppo e l’evoluzione del sistema

in ogni caso, è spesso necessario (perché effettivamente utile) “documentare” l’architettura progettata

Viste e punti di vista architetturali6

Page 4: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

- Organizzare una descrizione architetturale

Una descrizione architetturale deve cogliere le caratteristiche funzionali e le proprietà di qualità del sistema – e deve essere comprensibile e di valore a tutte le parti interessate

in pratica, non è utile organizzare la descrizione architetturale di un sistema complesso mediante un “singolo modello”

piuttosto, l’architettura di un sistema software può essere descritta in modo efficace tramite un insieme di modelli chiamate viste, separate ma correlate, ciascuna delle quali descrive un aspetto diverso dell’architettura

collettivamente, le viste descrivono l’intero sistema – le sue caratteristiche funzionali e proprietà di qualità – e dimostrano come il sistema può raggiungere i suoi obiettivi

questo è conforme con il fatto che un’architettura software è composta da un insieme di strutture – ciascuna vista ha lo scopo di descrivere una di queste strutture

Viste e punti di vista architetturali7

Luca Cabibbo ASW

- Organizzare una descrizione architetturale

Una descrizione architetturale deve cogliere le caratteristiche funzionali e le proprietà di qualità del sistema – e deve essere comprensibile e di valore a tutte le parti interessate

in pratica, non è utile organizzare la descrizione architetturale di un sistema complesso mediante un “singolo modello”

piuttosto, l’architettura di un sistema software può essere descritta in modo efficace tramite un insieme di modelli chiamate viste, separate ma correlate, ciascuna delle quali descrive un aspetto diverso dell’architettura

collettivamente, le viste descrivono l’intero sistema – le sue caratteristiche funzionali e proprietà di qualità – e dimostrano come il sistema può raggiungere i suoi obiettivi

questo è conforme con il fatto che un’architettura software è composta da un insieme di strutture – ciascuna vista ha lo scopo di descrivere una di queste strutture

Viste e punti di vista architetturali8

Qui il suggerimento è di operare una decomposizione di un sistema complesso in

un insieme di viste separate.Poiché bisogna gestire la complessità, vanno prese in considerazione in modo

opportuno anche le correlazioni tra le parti –le viste devono essere correlate.

Page 5: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Un’analogia

Medici specialisti diversi sono interessati a viste differenti del corpo umano – che, pur distinte, sono inerentemente correlate

Viste e punti di vista architetturali9

Luca Cabibbo ASW

* Viste architetturali

Una AD è composta da un insieme di viste, separate ma correlate

Una vista architetturale [ISO-42010, SSA, SAP] è un elaborato/modello

che rappresenta uno o più aspetti strutturali dell’architettura di un sistema

dunque, è la rappresentazione di un insieme coeso di elementi architetturali e delle relazioni tra di essi

e che illustra come l’architettura affronta uno o più interessi di una o più delle sue parti interessate

dunque, rappresenta l’architettura del sistema secondo la prospettiva di specifici interessi del sistema

Viste e punti di vista architetturali10

Page 6: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Viste architetturali

Dunque, in una AD, ciascuna vista ha lo scopo di descrivere un insieme di elementi del sistema e di relazioni tra di essi che sono rilevanti rispetto a un certo interesse (o insieme di interessi)

si notino due aspetti rilevanti nella definizione di ciascuna vista

una vista descrive un insieme di elementi e di relazioni tra elementi

ogni vista è centrata su uno specifico insieme di interessi

pertanto, ciascuna vista descriverà (tutti e soli) gli elementi dell’architettura che sono rilevanti nei confronti di quegli specifici interessi (ma non di altri interessi)

ad es., una “vista funzionale”

è guidata da interessi funzionali – per questo, è composta da elementi che hanno responsabilità funzionali

non si occupa, però, di interessi come disponibilità o scalabilità

Viste e punti di vista architetturali11

Luca Cabibbo ASW

Due questioni con le viste

Due questioni (per ora) con le viste architetturali

quante e quali viste creare in una descrizione architetturale?

questo dipende fortemente dal sistema

intuitivamente, quelle che servono a descrivere (ed affrontare) tutti gli interessi rilevanti delle parti interessate a quello specifico sistema

come creare ciascuna vista architetturale?

quali elementi includere nella vista? a quale livello di dettaglio? come sostenere l’analisi delle qualità? come sostenere la comunicazione con le parti interessate?

intuitivamente, questo dipende da quali sono gli interessi rilevanti per la vista e dalle parti interessate a cui è destinata

una risposta a queste domande è fornita dai punti di vista

Viste e punti di vista architetturali12

Page 7: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

* Punti di vista (e cataloghi di punti di vista)

Intuitivamente, un punto di vista è una tipologia standard di vista che può essere usata in una AD

Un punto di vista architetturale [ISO-42010, SSA]

è una collezione di pattern, template e convenzioni per la costruzione, l’interpretazione e l’uso di viste architetturali per inquadrare/elaborare specifici interessi del sistema

in pratica, ciascun punto di vista fa riferimento a uno specifico insieme di interessi rilevanti per le parti interessate – e definisce i principi, i modelli e le linee guida necessari per costruire viste adatte ad affrontare tali interessi

Viste e punti di vista architetturali13

Luca Cabibbo ASW

Cataloghi di punti di vista

In pratica, la scelta delle viste da produrre per descrivere un sistema viene spesso effettuata con riferimento a un catalogo di punti di vista predefiniti

esistono diversi cataloghi di punti di vista

tuttavia, non c’è nessun catalogo “standard” e “universale” di punti di vista

in ogni caso, alcuni punti di vista (e loro combinazioni) sono piuttosto diffusi in pratica

il primo catalogo di punti di viste è il modello a 4+1 viste, proposto nel 1995 da un celebre articolo di Kruchten – poi evoluto come modello a N+1 viste in RUP

nel seguito di questa dispensa vengono descritti brevemente due cataloghi rappresentativi di punti di vista

i punti di vista di [SSA]

i tipi di vista di [SAP]

Viste e punti di vista architetturali14

Page 8: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

* Punti di vista di [SSA]

[SSA] propone di organizzare una AD sulla base di un catalogo di sette punti di vista (nel seguito talvolta abbreviati in pdv)

Viste e punti di vista architetturali15

Functional Viewpoint

Information Viewpoint

Concurrency Viewpoint

Development Viewpoint

Deployment Viewpoint

Operational Viewpoint

Context Viewpoint

Luca Cabibbo ASW

Punti di vista di [SSA]

Il catalogo di punti di vista di [SSA]

il pdv del Contesto descrive le relazioni, le dipendenze e le interazioni tra il sistema e il suo ambiente

i pdv Funzionale, delle Informazioni e della Concorrenza caratterizzano l’organizzazione fondamentale del sistema

il pdv dello Sviluppo ha lo scopo di sostenere la costruzione del sistema

i pdv di Deployment (rilascio) e Operational (“operations”) sono relativi all’ambiente di esecuzione e al rilascio del software

Caratteristiche e uso

(abbastanza) indipendenti

per descrivere un sistema, alcune viste saranno più importanti di altre – dipende dal sistema!

non tutti i sistemi richiedono tutte le viste

Viste e punti di vista architetturali16

Page 9: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Punti di vista di [SSA]

In [SSA], ciascun punto di vista è definito soprattutto in termini di

quali sono i principali interessi affrontati da quel punto di vista

quali modelli possono essere utilizzati – e quali elementi e relazioni vi possono comparire

attività e linee guida per la realizzazione di tali modelli

alcune situazioni problematiche comuni

applicabilità e parti interessate

bibliografia

questa dispensa ha solo l’obiettivo di presentare l’idea dei punti di vista

altre idee importanti – come modelli, attività e linee guida –sono discusse in dispense successive

Viste e punti di vista architetturali17

Luca Cabibbo ASW

Punto di vista del Contesto [SSA]

Punto di vista del Contesto

descrive le relazioni, le dipendenze e le interazioni tra il sistema (che viene considerato a scatola nera) e il suo ambiente – le persone, i sistemi e le entità esterne con cui interagisce

la vista del Contesto svolge un ruolo importante nella comprensione della portata e delle responsabilità del sistema, e come esso si relaziona con il suo ambiente

i principali interessi affrontati da questo punto di vista sono portata e responsabilità del sistema

la portata (scope) di un sistema definisce le principali responsabilità del sistema, ovvero le capacità importanti che esso dovrà fornire

anche se, per definizione, ogni cosa che non è compresa nella portata è esclusa dalla portata, per chiarezza la portata di un sistema può indicare anche delle esclusioni specifiche

Viste e punti di vista architetturali18

Page 10: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Esempio (parziale): diagramma di contesto

Viste e punti di vista architetturali19

Customers

«system»Online Catalog

andProduct Ordering

System

System under discussion

Type of user

Account System

Warehouse Management

System

Distribution System

«external»Distribution

System

«external»CC Validation

System

External systems

Internal systems

ProductDatabase

CustomerDatabase

Existing data sources

Luca Cabibbo ASW

Punto di vista Funzionale [SSA]

Punto di vista Funzionale

descrive gli elementi funzionali del sistema, con le loro responsabilità, interfacce e interazioni principali

complessivamente, descrive come il sistema può eseguire le funzionalità richieste

la vista funzionale è la “pietra angolare” di molte AD

in genere è la prima (e talvolta anche l’unica) parte della AD che le parti interessate provano a leggere

di solito guida la forma di altre strutture e viste

può avere un impatto significativo su alcune qualità del sistema – come la capacità del sistema di essere modificato, di essere messo in sicurezza e di sostenere le prestazioni a runtime

Viste e punti di vista architetturali20

Page 11: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Punto di vista Funzionale [SSA]

Punto di vista Funzionale

gli interessi principali sono le capacità funzionali (funzionalità) del sistema e la struttura funzionale interna del sistema

gli elementi di una vista funzionale sono elementi software (componenti e connettori) a cui sono assegnate responsabilità funzionali

questi elementi funzionali sono di solito “ispirati” al dominio del sistema

la modellazione di dominio e le decomposizioni basate sul dominio del problema sono infatti spesso rilevanti nella progettazione del software

Viste e punti di vista architetturali21

Luca Cabibbo ASW

Esempio (parziale): vista funzionale

Viste e punti di vista architetturali22

«external»Customer

Web Browser

WebShop

«external»Catalog AdminWeb Browser

CatalogManagement

Interface

ProductCatalog

«external»Stock

Inventory

OrderProcessor

«external»Order

Fulfillment

«external»Customer Care

Interface

CustomerInformation

System

«publish/subscribe»

Order Topic

Receive Message

Publish Message

Receive Message

Manage Customer

Query Customer

CustomerWeb Interface

Place Order Query Catalog

Manage Catalog

EmployeeWeb Interface

Check Level

{type=HTML user interface, protocol=HTTP,number=1000 concurrent}{number=80 concurrent}

{type=API callback} {type=RPC,protocol=LU6.2}

{type=HTML user interface, protocol=HTTP,number=15 concurrent}

Order messagepropagated via PUR1 EAI message endpoint to order fulfillment

Page 12: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Punto di vista delle Informazioni [SSA]

Punto di vista delle Informazioni

descrive il modo in cui l’architettura memorizza, manipola, gestisce e distribuisce informazioni – in termini di strutture di dati statiche e di flussi di informazioni

l’interesse principale sono le informazioni e la loro gestione

importante perché lo scopo dei sistemi informatici è gestire informazioni

Viste e punti di vista architetturali23

Luca Cabibbo ASW

Esempio (parziale): vista delle informazioni

Viste e punti di vista architetturali24

Page 13: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Punto di vista della Concorrenza [SSA]

Punto di vista della Concorrenza

descrive l’organizzazione della concorrenza e mappa gli elementi funzionali su unità di concorrenza, nonché le parti concorrenti del sistema e le loro necessità e modalità di sincronizzazione

struttura di processi e thread e meccanismi di comunicazione interprocesso

sostiene le prestazioni, ma anche disponibilità e scalabilità

Viste e punti di vista architetturali25

Luca Cabibbo ASW

Esempio (parziale): vista della concorrenza

Viste e punti di vista architetturali26

«process»DBMS Process

«thread»Query Processing Thread

{ number=1..40 }

«thread»Network Thread

«process»DBMS Client

Client Code

Client SQL Library

Network Listener

«ipc_queue»Request Queue

{type= socket stream}

Query Processor

Optimizer

Execution Engine

Access Engine

«ipc_sh_mem»I/O Request Area«thread»

I/O Thread{ number=1..10 }

Disk IO Manager

Page 14: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Punto di vista dello Sviluppo [SSA]

Punto di vista dello Sviluppo

descrive l’architettura che supporta il processo di sviluppo

ad es., organizzazione del codice, dei moduli, dei test

di interesse per chi sviluppa, verifica, mantiene e migliora il sistema – e per chi deve gestire tali persone

sostiene modificabilità e verificabilità

Viste e punti di vista architetturali27

Luca Cabibbo ASW

Esempio (parziale): vista dello sviluppo

Viste e punti di vista architetturali28

Page 15: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Punto di vista del Deployment [SSA]

Punto di vista del Deployment

descrive l’ambiente di esecuzione in cui sarà rilasciato il sistema, comprese le dipendenze dall’ambiente runtime

elementi hardware (computer, dischi, reti, ...) e infrastrutture software di terze parti (sistemi operativi, sistemi di gestione di basi di dati, middleware, …), requisiti per questi elementi, corrispondenze tra elementi software e l’ambiente di esecuzione

sostiene disponibilità e scalabilità

Viste e punti di vista architetturali29

Luca Cabibbo ASW

Esempio (parziale): vista di deployment

Viste e punti di vista architetturali30

Calculation Server{model=V880, mftr=Sun, memory=2GB, CPU=4 x

2.4GHz}

Database Server{model=E420R,

memory=16GB, mftr=Sun, CPU=2 x 1GHz}

Primary Server{memory=8GB,

model=axyz, CPU=2 x 1.8GHz, mftr=Sun}

Production Line Interface

Disk Array{mftr=Sun,

model=se4500}

DataCapture Service

DataAccess Service

OracleDBMS Instance

Predictive Calculator

Production Planner PC{memory=1GB,

CPU=1GHz}

Production LineOperator PC

{memory=256MB, CPU=800MHz}

PlannerClient

OperatorClient

SCSI connection, not network

IAF23 interface to production line monitoring hw

UML nodes used to represent hw elements within deployment environment

attributes used to indicate required hw specifications

internode relationships show required interconnection paths

functional elements mapped to hw nodes

Page 16: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Punto di vista Operational [SSA]

Punto di vista Operational

ha a che fare con l’operations del sistema – con la gestione e l’amministrazione dell’ambiente di esecuzione e del rilascio del software in questo ambiente

per fare in modo che il sistema venga messo a disposizione e possa essere effettivamente fruito dai suoi utenti

descrive come il sistema sarà “operato”, amministrato e supportato quando sarà in esecuzione nell’ambiente di produzione

per affrontare interessi come rilascio (installazione iniziale e degli aggiornamenti), monitoraggio, gestione delle configurazioni, backup, ...

sostiene varie qualità, come disponibilità, scalabilità e modificabilità

Viste e punti di vista architetturali31

Luca Cabibbo ASW

Esempio (parziale): vista operational

Viste e punti di vista architetturali32

Page 17: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Punti di vista di [SSA]

Viste e punti di vista architetturali33

DeploymentView

OperationalView

SoftwareDesign

DevelopmentView

InformationView

FunctionalView

ConcurrencyView

defines operation of

defines implementationconstraints for

defines runtime environment for

ContextView

defines scope, context, and interfaces for

Luca Cabibbo ASW

* Benefici e rischi legati alle viste

L’uso di viste e punti di vista presenta dei vantaggi – ma anche dei possibili inconvenienti e rischi, che è necessario conoscere e sapere come evitare o mitigare

Viste e punti di vista architetturali34

Page 18: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

- Benefici legati alle viste

Separazione degli interessi

la separazione degli interessi (separation of concerns) è un principio di progettazione fondamentale – suggerisce di

separare interessi distinti in aree diverse, in modo che ciascuna area abbia uno scopo coeso

dividere il progetto in caratteristiche che si sovrappongono il meno possibile

la modellazione di un sistema con descrizioni separate ma correlate favorisce i processi di analisi, progettazione e comunicazione – poiché permette di concentrarsi separatamente su ciascun interesse

Viste e punti di vista architetturali35

Luca Cabibbo ASW

Benefici legati alle viste

Gestione della complessità

gli interessi possono essere gestiti separatamente

Miglioramento dell’attenzione/focalizzazione

in una AD, ciascun modello può essere focalizzato su un interesse e/o su una parte interessata – ad es., la AD contiene sia modelli per comunicare con gli utenti o l’acquirente, che modelli focalizzati sugli interessi degli sviluppatori

Comunicazione con le parti interessate

ciascuna parte interessata è probabilmente interessata solo a un sottoinsieme della AD

in particolare, la AD deve sostenere la comunicazione tra architetto e team di sviluppo – questo è di fondamentale importanza per il successo di un’architettura

Viste e punti di vista architetturali36

Page 19: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

- Rischi legati alle viste

I due problemi/rischi principali legati all’uso delle viste

Incoerenza

l’uso di più viste solleva il problema della coerenza tra viste –che può essere mitigato applicando delle verifiche di mutua coerenza tra le viste – ad es., sulla base di una checklist di verifiche da effettuare

Gestione di interessi “trasversali”

molti interessi di qualità possono essere effettivamente gestiti con riferimento (soprattutto) a una singola vista – ad es., la modificabilità

tuttavia, altre qualità possono corrispondere ad interessi trasversali a più viste – ad es., la sicurezza

come è possibile controllare ed ottenere queste qualità, in modo efficace e coerente?

Viste e punti di vista architetturali37

Luca Cabibbo ASW

Rischi legati alle viste

Ulteriori possibili problemi/rischi legati all’uso delle viste

Frammentazione

l’uso di un numero eccessivo di viste può complicare la comprensione e l’analisi della AD

pertanto è meglio concentrarsi su viste che affrontano solo interessi veramente importanti

per ridurre il numero di viste, talvolta può essere accettabile avere viste “ibride”

Selezione di un insieme sbagliato di viste

non sempre è ovvio capire quante e quali viste usare per descrivere un certo sistema

Viste e punti di vista architetturali38

Page 20: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

* Scenari e applicazione di scenari

Un approccio fondamentale per la gestione di interessi o qualità trasversali a più viste è l’applicazione di scenari

le tecniche basate sugli scenari e sulla loro applicazione sono, in generale, tra le più efficaci nelle attività legate all’architettura

queste tecniche possono essere utilizzate in diversi ambiti

per identificare, descrivere e organizzare i requisiti architetturalmente significativi

per guidare la progettazione dell’architettura

per descrivere, comunicare e comprendere l’architettura

per valutare (validare e verificare) l’architettura

Viste e punti di vista architetturali39

Luca Cabibbo ASW

Scenari architetturali

Uno scenario architetturale (o semplicemente scenario) [SSA] è (la descrizione di)

una situazione che il sistema dovrà probabilmente affrontare nel suo ambiente di produzione

insieme a una definizione della risposta richiesta dal sistema

Due tipologie di scenari architetturali

uno scenario funzionale descrive una sequenza di eventi esterni a cui il sistema deve rispondere

ad es., uno scenario di caso d’uso

uno scenario di qualità definisce come il sistema deve reagire a una situazione scatenata da un evento esterno ad esso, esibendo una o più proprietà di qualità

ad es., come gestire un qualche specifico tipo di guasto

Viste e punti di vista architetturali40

Page 21: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Applicazione di scenari

Intuitivamente, l’applicazione di uno scenario richiede di progettare/descrivere/valutare le interazioni tra un insieme di elementi architetturali – presenti in una o più viste architetturali –che sono richieste/previste per la gestione di quello scenario

l’applicazione di scenari richiede dunque di considerare gli aspetti dinamici delle interazioni tra elementi architetturali – e non solo gli aspetti statici delle strutture architetturali

ad es., se un’architettura deve essere tollerante ad uno specifico tipo di guasto, non ci si chiede solo “quali elementi servono per tollerare quel guasto?” ma anche “come fa il sistema a tollerare quel guasto?”

la progettazione (ed anche la “lettura”) congiunta delle interazioni motivate dai diversi scenari sostiene una visione complessiva dell’intero sistema

consente, ad es., di gestire interessi trasversali e di assicurare la coerenza tra le diverse viste architetturali

Viste e punti di vista architetturali41

Luca Cabibbo ASW

* Tipi di viste di [SAP]

[SAP] classifica le viste architetturali in tre categorie principali (più una) – chiamati viewtypes (tipi di vista) o view styles – di solito sulla base della natura degli elementi che contengono

viste a moduli

i moduli sono unità di implementazione

viste a componenti e connettori

con riferimento alle unità runtime di esecuzione

viste di allocazione

mostrano le relazioni tra elementi software e il loro ambiente esterno

diversamente dagli altri cataloghi, i nomi dati alle viste sono prevalentemente “sintattici” e non “semantici”

inoltre, è talvolta utile usare un altro tipo di viste – le viste per qualità – per affrontare interessi specifici

Viste e punti di vista architetturali42

Page 22: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Viste a moduli

Viste a moduli

gli elementi sono moduli – unità di implementazione (codice)

ai moduli vengono assegnate responsabilità funzionali

meno interesse sul comportamento al tempo di esecuzione

possibili relazioni tra moduli sono, ad es., usa, dipende da, estende, strati, ...

Viste e punti di vista architetturali43

Module

decomposition classuses

layered

Luca Cabibbo ASW

Viste a moduli

Le viste a moduli consentono di rispondere a domande come

quale è la responsabilità principale di un modulo?

quali altri moduli può usare un modulo?

quali altri moduli sono effettivamente usati da un certo modulo?

quali moduli specializzano altri moduli?

Viste e punti di vista architetturali44

Page 23: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Viste a componenti e connettori

Viste a componenti e connettori

gli elementi sono componenti runtime (processi, unità di calcolo) e connettori (meccanismi di interazione e comunicazione tra componenti)

punto di vista basato su processi/task/thread

le relazioni sono connessioni tra componenti e connettori –collegando “porte” con “ruoli”

Viste e punti di vista architetturali45

Component-and-Connector

client-server

processconcurrency

shared data

pipe-and-filter peer-to-peer

publish-subscribe

Luca Cabibbo ASW

Viste a componenti e connettori

Le viste a componenti e connettori consentono di rispondere a domande come

quali sono i principali componenti in esecuzione? come interagiscono?

quali sono i dati condivisi?

quali parti del sistema sono replicate?

come si muovono i dati nel sistema?

quali parti del sistema sono eseguite in parallelo?

la struttura del sistema può cambiare durante l’esecuzione?

Viste e punti di vista architetturali46

Page 24: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Viste di allocazione

Viste di allocazione

gli elementi sono in parte elementi software (ad es., moduli) e in parte elementi in ambienti esterni (in cui il software viene sviluppato o eseguito)

le relazioni sono di corrispondenza/allocazione

Viste e punti di vista architetturali47

work assignment

deployment

implementation

Allocation

Luca Cabibbo ASW

Viste di allocazione

Le viste di allocazione consentono di rispondere a domande come

su quale elemento hardware viene eseguito un componente software?

in quali file viene memorizzato un elemento – durante l’implementazione, il test e la costruzione del sistema?

quale è l’assegnazione di lavoro di elementi software a team di sviluppo?

Viste e punti di vista architetturali48

Page 25: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Viste per qualità

Viste per qualità

le viste a moduli, a componenti e connettori e di allocazione sono viste strutturali, e consentono di affrontare molti interessi

tuttavia, se certe proprietà di qualità sono pervasive o di particolare importanza in un sistema, le viste strutturali potrebbero essere inadeguate a ragionare in modo efficace su tali qualità – ad es., perché non è conveniente fare ragionamenti complessi su più viste

in tal caso, è possibile usare un ulteriore tipo di viste – le viste per qualità – dedicate ad affrontare degli specifici interessi di qualità o rivolti a delle specifiche parti interessate

ad es., una vista della sicurezza, una vista delle prestazioni e della scalabilità oppure una vista della gestione delle eccezioni e degli errori

Viste e punti di vista architetturali49

Luca Cabibbo ASW

* Discussione

I sistemi software sono troppo complessi per poter essere descritti mediante un singolo modello o diagramma

piuttosto, una descrizione architetturale è composta da più modelli o viste

ciascuna vista affronta alcuni interessi specifici del sistema e descrive una struttura fondamentale del sistema

la creazione delle viste può essere guidata da opportuni punti di vista

l’applicazione di scenari consente di effettuare ragionamenti trasversali a diverse viste architetturali

Importanza di una buona descrizione architetturale esplicita

comunicazione con le parti interessate

base per l’analisi delle decisioni iniziali di progetto

guida allo sviluppo

Viste e punti di vista architetturali50

Page 26: Viste e punti di vista architetturali - Roma Tre Universitycabibbo.dia.uniroma3.it/asw/pdf/asw130-viste... · 2020. 3. 3. · Luca Cabibbo ASW Un’analogia Medici specialisti diversi

Luca Cabibbo ASW

Relazioni tra concetti fondamentali

Viste e punti di vista architetturali51

ArchitecturalElement

Architecture

ArchitecturalDescription

System

Stakeholder

InterelementRelationship

documents architecture for

can be documented by

has an

**

*

*

comprises

relates

*2..*

comprises

*

addresses the needs of

View ConcernViewpoint

comprises

*

has

*

*conforms

to

*

addresses

* *

*