Viste e punti di vista architetturali - Roma Tre...
Transcript of Viste e punti di vista architetturali - Roma Tre...
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
* *
*