Please enable JavaScript.
Coggle requires JavaScript to display documents.
Stili architetturali Lez. 18-19a - Coggle Diagram
Stili architetturali
Lez. 18-19a
Da applicare ad inizio progetto, costituendo un pacchetto di decisioni
Organizzati in famiglie
di pattern
Riguardano l'architettura complessiva
1-Domain model
C:
Inizio progettazione sistema sw, necessario dargli una struttra
P:
Progetto deve essere
di facile comprensione
S:
Creare modello (di dominio) che definisce responsabilità del dominio e usarlo come modello per l'architettura del sistema
Modello che descrive dominio del problema
2-Domain object
C:
Decomposizione sistema per semplificare elementi architetturali complessi
P:
Decomposizione sistema deve sostenere i suoi interessi
S:
Incapsulare responsabilità funzionale in un elemento auto contenuto (oggetto di dominio)
Elementi con specifica responsabilità, non generici (es. "sicurezza")
3-Layers
C:
Decomposizione sistema per evitare sistemi monolitici
P:
Parti devono essere sviluppate affinché possano evolvere in modo indipendente
S:
Gerarchia verticale di strati, ognuno con responsabilità specifica e interfaccia separata
Dipendenze
strati
Da se stesso e inferiori
Rilassata: qualsiasi
strato inferiore
Stretta: solo quello direttamente inferiore
In genere, scendo
richieste, salgono risposte
Dinamiche principali
di comunicazione
Top-down
Bottom-up
Strati non coinvolti
(es. cache)
Criteri per
scelta strati
Livello di astrazione e dipendenza dall'applicazione
Alti -> astratti
Bassi -> Concreti
Tasso di cambiamento
atteso
Strati stabili in basso, perché
alti dipendono da loro
Granularità
Elementi più piccoli in basso
Distanza da hw
Bassi più vicino ad hw
Conseguenze
'+ modificabilità
'+ sicurezza
'+ affidabilità
'- prestazioni
4-Pipes & Filters
C:
Sistema deve elaborare flusso di dati
Riceve in ingresso, trasforma e produce flusso in uscita
P:
Decomposizione in passi di elaborazione
Ad ogni passo avviene trasformazione minima non accoppiata con altre
Gestire sincronizzazione richiesta-risposta
S:
Implementare ogni passo mediante filtri inseriti in una pipeline e interconnessi tramite pipe che riducono accoppiamento
Pipe gestiscono comunicazione e buffering
Filtri operano in modo concorrente
Scenari
principali
4.1-Pipeline Push: dati spinti in avanti dalla sorgente
4.2-Pipeline Pull: destinazione richiede dati a ultimo elemento e così via ...
4.3-Misto pull/push: elemento centrale fa pull precedenti e push successivi
4.4-Più fltri attivi
Più diffuso
Ogni filtro lavora
in pull-push
Le pipe sincronizzano i filters e bufferizzano dati
Conseguenze
Buona modificabilità perché filtri disaccoppiati
Buone prestazioni per concorrenza
Buona sicurezza usando filtri per cifrare e decifrare dati
Scarsa affidabilità per gestire errori