Please enable JavaScript.
Coggle requires JavaScript to display documents.
Stili architetturali #2 Lez. 19b-20 - Coggle Diagram
Stili architetturali #2
Lez. 19b-20
5-MVC
Model View Controller
C:
Applicazione interattiva con interfaccia utente flessibile
P:
UI soggette a frequenti modifiche che non devono impattare su strati inferiori
S:
Suddividere applicazioni in Model, View, Controller
Modello incapsula funzionalità applicazione in modo indipendente dalla vista
1 modello, più viste e controller
Vista ha controller che riceve input e delega gestione a modello
Possibile avere meccanismo di propagazione cambiamenti da M a CV
Conseguenze
UI flessibile
Alta complessità per alto
numero di elementi
e propagazione
Framework per
semplificare
Pattern molto diffuso
6-Shared repository
C:
Sistema guidato dai dati (ruolo fondamentale)
Es. database
P:
Interazioni tra componenti dipendono dai dati su cui operano
S:
Mantenere dati in un repository condiviso
Logica applicativa guidata da disponibilità, qualità e stato dei dati
Possibile notificare cambiamenti con observer o trigger
Conseguenze
'+ modificabilità
'+ affidabilità
'~ sicurezza
7-Microkernel
C:
Applicazione adattabile a diversi scenari di deployment
Versioni diverse, comportamenti diversi
P:
Realizzare versioni multiple di applicazione minimizzando sforzo di sviluppo ed evoluzione
S:
Nucleo comune di estensioni tramite infrastruttura
Plug&Play
Implementa funzionalità condivise da tutte le versioni e fornisce infrastruttura per estenderle
Server interno
Implementa funzionalità
Comuni e specifiche
Server esterno
Interazioni utenti e
altri sistemi
Vantaggi
Versioni multiple di un'applicazione
Nuove versioni app
Minimizzare sforzi sviluppo e manutenzione
Possibile interconnettere server interni ed esterni per ottenere applicazioni differenti
Funzionalità
principali
Registrazione funzionalità server interni
Richieste server esterni
8-Reflection
C:
Sistema che deve garantire variazioni funzionali in ogni momento, anche a runtime
P:
Importante poter modificare sistemi a lunga vita, ma difficile prevedere modifiche
S:
Rappresentare esplicitamente proprietà variabili di un sistema tramite insieme di meta-oggetti
Ognuno rappresenta punto di variazione
del comportamento del sistema
Componenti
Meta-Livello:
definisce comportamento e parametri attuali
Livello base:
funzionalità che dipendono dal meta-livello
Livello base può interrogare
meta per sapere come comportarsi
Necessario collegare livello in modo che cambiamenti nei meta-oggetti influiscano su comportamento del sistema
Necessario protocollo per amministrare/modificare meta oggetti
Conseguenze
'+ modificabilità
'+ complessità
'- prestazioni