1 progettazione architetturale. 2 obiettivo: stabilire la struttura globale di un sistema software...
TRANSCRIPT
![Page 1: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/1.jpg)
1
Progettazione Architetturale
![Page 2: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/2.jpg)
2
Progettazione Architetturale Obiettivo: stabilire la struttura globale di un
sistema software Descriveremo diversi tipi di modello di
architettura, e come l’architettura di un singolo sistema può essere modellata in diversi modi
![Page 3: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/3.jpg)
3
Processo di progettazione architetturale Strutturazione del sistema
Il sistema viene diviso in sottosistemi, e vengono identificato come i sottosistemi comunicano
Modellazione del controllo
Viene stabilito un modello delle relazioni di controllo tra le differenti parti del sistema
Scomposizione modulare
I sottosistemi vengono a loro volta divisi in moduli
![Page 4: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/4.jpg)
4
Sottosistemi e moduli Un sottosistema è un sistema di per sè: le sue operazioni
sono indipendenti dai servizi offerti dagli altri sotto-sistemi Un modulo è una componente del sistema che offre
servizi ad altre componenti, ma che non può essere considerato un sistema a se stante
![Page 5: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/5.jpg)
5
Strutturare un sistema Significa scomporre il sistema in sottosistemi L’architettura viene espressa di solito con un diagramma
a blocchi, che presenta una visione d’insieme della struttura del sistema
Si possono sviluppare modelli più specifici, che mostrano come i sottosistemi siano distribuiti e condividono dati, e che mostrano le interfacce tra i vari sottosistemi
![Page 6: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/6.jpg)
6
Sistema di controllo di un robot di impacchettamento
Visionsystem
Objectidentification
system
Armcontroller
Grippercontroller
Packagingselectionsystem
Packingsystem
Conveyorcontroller
![Page 7: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/7.jpg)
7
Il modello “repository” I sottosistemi possono scambiarsi dei dati. Questo può
essere fatto in due modi: I dati condivisi sono mantenuti in un database
centrale (o deposito) al quale possono accedere tutti i sottosistemi
Ogni sottosistema mantiene un proprio database e passa i dati esplicitamente agli altri sottosistemi
Quando devono essere condivise grosse quantità di dati, viene usualmente scelto il modello di deposito (repository model)
![Page 8: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/8.jpg)
8
Architettura di un toolset CASE
Projectrepository
Designtranslator
Programeditor
Designeditor
Codegenerator
Designanalyser
Reportgenerator
![Page 9: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/9.jpg)
9
Caratteristiche del modello a deposito Vantaggi
Modo efficiente di condividere grandi quantità di dati I sottosistemi possono disinteressarsi a come i dati vengono
prodotti, alle operazioni di backup, sicurezza ecc.
Svantaggi I sottosistemi devono concordare su un modello dei dati, che
inevitabilmente è un compremesso tra esigenze diverse L’evoluzione dei dati è difficoltosa e dispendiosa Non c’è spazio per politiche specifiche di gestione dei dati La distribuzione dei dati non è efficiente
![Page 10: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/10.jpg)
10
Modello “client-server” Modello per sistemi distribuiti, che mostra come dati e
processi sono distribuiti su un insieme di componenti Insieme di servers autonomi che offrono servizi specifici,
ad es. di stampa, di gestione dei dati... Insieme di clienti che richiedono questi servizi Rete che permette ai clienti di accedere ai server
![Page 11: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/11.jpg)
11
Emeroteca
Catalogueserver
Catalogue
Videoserver
Film clipfiles
Pictureserver
Digitizedphotographs
Hypertextserver
Hypertextweb
Client 1 Client 2 Client 3 Client 4
Wide-bandwidth network
![Page 12: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/12.jpg)
12
Computers in una rete client-sever
Network
SC1SC2
CC1 CC2 CC3
CC5 CC6CC4
Servercomputer
Clientcomputer
s1, s2 s3, s4
c5, c6, c7
c1 c2 c3, c4
c8, c9 c10, c11, c12
![Page 13: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/13.jpg)
13
Strati funzionali nell’architettura client-server (three tier architecture)
Presentation layer Si preoccupa di presentare I
risultati della computazione agli utenti del sistema e di gestire gli input da parte degli utenti.
Application processing layer Si preoccupa di offrire le
funzionalita’ specifiche dell’applicazione
Data management layer Si preoccupa di gestire la
comunicazione con il DBMS
Presentation layer
Application processinglayer
Data managementlayer
![Page 14: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/14.jpg)
14
Client
Server
Datamanagement
PresentationServer
Applicationprocessing
Three-tier architecture – struttura ed esempio
Database server
Customeraccountdatabase
Web server
Client
Client
Client
Client
Account serviceprovision
SQLSQL query
HTTP interaction
![Page 15: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/15.jpg)
15
Caratteristiche del modello client-server Vantaggi
La distribuzione dei dati è semplice Fa uso effettivo del sistema di rete, e può richiedere hardware
economico E’ facile aggiungere nuovi server o fare l’upgrade dei server esistenti
Svantaggi Non c’è un modello dei dati condiviso da tutti i sottosistemi, quindi i
sottosistemi possono usare organizzazioni diverse dei dati e lo scambio dei dati può risultare inefficiente
Gestione di dati ridondante in ogni server Non c’è un registro centrale dei nomi e dei servizi: può risultare
difficile sapere quali dati/servizi sono disponibili
![Page 16: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/16.jpg)
16
Modello “macchina astratta” Usato per modellare l’interfaccia tra sottosistemi Organizza il sistema in un insieme di livelli (o macchine
astratte) ognuno dei quali offre un insieme di servizi Supporta lo sviluppo incrementale di sottosistemi a livelli
diversi: quando l’interfaccia di un livello cambia, ne è affetto solo il livello adiacente
![Page 17: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/17.jpg)
17
Sistema di gestione delle versioni
Operatingsystem
Database system
Object management
Version management
![Page 18: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/18.jpg)
18
Riassumendo (1)
Modelli di struttura di un sistema: Repository Client-server Macchina astratta
![Page 19: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/19.jpg)
19
Modelli di controllo (tra sottosistemi)
Controllo centralizzato Un sottosistema ha il controllo globale e dà inizio e fine agli altri
sottosistemi Modello “call-return”: gerarchia di procedure, in cui il controllo
viene gestito top-down. Applicabile a sistemi sequenziali. Modello “manager”: una componente del sistema controlla
l’interruzione, l’inizio e il coordinamento degli altri processi. Applicabile a sistemi concorrenti. Può essere implementato in sistemi sequenziali con un comando “case”.
Controllo basato sugli eventi Ogni sottosistema può rispondere ad eventi generati dall’esterno
da altri sottosistemi o dall’ambiente esterno al sistema
![Page 20: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/20.jpg)
20
Modello Call-return
Routine 1.2Routine 1.1 Routine 3.2Routine 3.1
Routine 2 Routine 3Routine 1
Mainprogram
![Page 21: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/21.jpg)
21
Modello Manager
Systemcontroller
Userinterface
Faulthandler
Computationprocesses
Actuatorprocesses
Sensorprocesses
![Page 22: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/22.jpg)
22
Modello basato sugli eventi Guidato da eventi generati dall’esterno, dove la
temporizzazione degli eventi è fuori dal controllo dei sottosistemi che gestiscono l’evento
Due modelli “event-driven” principali Modello “broadcast”: un evento è trasmesso a tutti i
sottosistemi. Ogni evento è trasmesso a tutti i sottosistemi. Ogni sottosistema in grado di gestire l’evento può farlo.
Modello “interrupt-driven”. Usato nei sistemi real-time dove le interruzioni sono individuate da ogni gestore di interruzioni e passate a qualche altra componente per processarle
![Page 23: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/23.jpg)
23
Modello broadcast
Efficace per integrare sottosistemi su diversi computer in rete
Ogni sottosistema si dichiara “interessato” a degli eventi specifici. Quando questi occorrono, il controllo viene trasferito ai sottosistemi che possono gestirlo
Le politiche di controllo non sono interne all’evento o al gestore del messaggio. E’ tutto lasciato ai sottosistemi. Tuttavia i sottosistemi non sanno se e quando l’evento sarà gestito.
![Page 24: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/24.jpg)
24
Broadcasting selettivo
Sub-system1
Event and message handler
Sub-system2
Sub-system3
Sub-system4
![Page 25: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/25.jpg)
25
Sistemi “interrupt-driven” Usati in sistemi real-time, dove la velocità di risposta ad
un evento è essenziale Ci sono tipi di interruzione noti, con un gestore definito in
corrispondenza ad ogni tipo Ogni tipo è associato a una locazione di memoria e uno
switch hardware lo trasferisce al suo gestore Consentono rapidità di risposta, ma sono complicati da
programmare e difficili da validare
![Page 26: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/26.jpg)
26
Controllo interrupt-driven
Handler1
Handler2
Handler3
Handler4
Process1
Process2
Process3
Process4
Interrupts
Interruptvector
![Page 27: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/27.jpg)
27
Riassumendo (2)
Modelli di controllo centralizzato Call-return Manager
Modelli di controllo basato su eventi Broadcast Interrupt-driven
![Page 28: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/28.jpg)
28
Scomposizione modulare E’ un ulteriore livello strutturale: i sottosistemi sono
scomposti in moduli Due modelli di scomposizione:
Un modello a oggetti, dove il sistema è scomposto in oggetti che interagiscono
Un modello data-flow, dove il sistema è scomposto in moduli funzionali che trasformano inputs in outputs (modello pipeline)
Se possibile, ogni decisione rispetto alla concorrenza dovrebbe essere posticipata fino all’implementazione dei moduli
![Page 29: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/29.jpg)
29
Modelli a oggetti Consiste nello strutturare il sotto-sistema in un insieme di
oggetti con accoppiamento lasco e interfacce ben definite La scomposizione orientata ad oggetti significa
identificare le classi degli oggetti, gli attributi (campi) e le operazioni (metodi)
Quando vengono implementati, gli oggetti sono istanze di queste classi e qualche modello di controllo è usato per coordinarne i metodi
![Page 30: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/30.jpg)
30
Sistema di smaltimento fatture
IssueSend reminderAccept paymentSend receipt
invoice #dateamountcustomer
Invoice
customer #nameaddresscredit period
Customer
invoice #dateamountcustomer #
Receipt
invoice #dateamountcustomer #
Payment
![Page 31: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/31.jpg)
31
Modelli “data-flow” Trasformazioni funzionali che producono un output a
partire da un input Possono riferirsi ad un modello a “pipe” e a filtri (come la
shell Unix) Quando le trasformazioni sono sequenziali, è un modello
batch sequenziale molto usato nei sistemi di gestione dati Il modello “data-flow” non si adatta bene a sistemi
interattivi
![Page 32: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/32.jpg)
32
Sistema smaltimento fatture
Read issuedinvoices
Identifypayments
Issuereceipts
Findpayments
due
Receipts
Issuepaymentreminder
Reminders
Invoices Payments
![Page 33: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/33.jpg)
33
Architetture “domain-specific” Modelli di architettura di sistema che sono specifici rispetto
a qualche dominio di applicazione Due tipi di modelli “domain-specific”:
Modelli generici: sono astrazioni da un certo insieme di sistemi reali e contengono le caratteristiche principali di questi sistemiDi solito sono modelli bottom-up
Modelli di riferimento: sono modelli idealizzati, più astratti. Offrono informazione su quella classe di sistemi e permettono di confrontare diverse architettureDi solito sono modelli top-down
![Page 34: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/34.jpg)
34
Modelli generici: un compilatore
Lexicalanalysis
Syntacticanalysis
Semanticanalysis
Codegeneration
Symboltable
![Page 35: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/35.jpg)
35
Modelli generici: un sistema di analisi di linguaggio
Syntaxanalyser
Lexicalanalyser
Semanticanalyser
Abstractsyntax tree
Grammardefinition
Symboltable
Outputdefinition
Pretty-printer
Editor
Optimizer
Codegenerator
Repository
![Page 36: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/36.jpg)
36
Architetture di riferimento Modelli di riferimento: sono ottenuti studiando il dominio
di applicazione piuttosto che i sistemi esistenti Possono essere usati come base per implementare
sistemi o per confrontare diversi sistemi. Hanno il ruolo di “standard” rispetto ai quali valutare un
sistema Esempio: il modello OSI è un modello di riferimento per i
sistemi di comunicazione
![Page 37: 1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb73497959361e8dacc3/html5/thumbnails/37.jpg)
37
Modello di riferimento OSI
Application
Presentation
Session
Transport
Network
Data link
Physical
7
6
5
4
3
2
1
Communica tions medium
Network
Data link
Physical
Application
Presentation
Session
Transport
Network
Data link
Physical