Architettura Logica Flashcards
Come si passa dal “cosa deve fare il sistema” al “come il sistema si comporta”?
Si definisce la struttura della soluzione ad un alto livello di astrazione
Cos’è l’architettura SW?
E’ l’insieme che raggruppa:
- le decisioni significative sull’organizzazione di un sistema SW
- gli elementi strutturali, delle relative interfacce e collaborazioni
- la composizione in sottosistemi
- lo stile architetturale
Cos’è l’architettura logica?
E’ l’organizzazione su larga scala delle classi SW in package, sottoinsiemi e strati
Quale è uno stile comune per l’architettura logica?
Lo stile a strati
Quando ha senso parlare di architetture SW?
Quando si ha a che fare con sistemi di grosse dimensioni
Cos’è uno strato?
E’ un gruppo a grana molto grossa di classi, package o sottosistemi, che ha delle responsabilità coese rispetto a un aspetto importante del sistema
Cosa significa “architettura a strati stretta”?
Che uno strato può solo richiamare i servizi dello strato immediatamente più basso
Cosa significa “architettura a strati rilassata”?
Che uno strato può richiamare i servizi di uno qualsiasi degli strati più in basso
In genere cosa cambia tra gli stati inferiori e superiori?
In genere gli strati inferiori espongono servizi generali, mentre quelli superiori sono più specifici per l’applicazione
Che “direzione” ha l’accoppiamento nell’architettura a strati?
Dall’alto al basso
Quali sono i vantaggi di una buona progettazione a strati?
- La separazione degli interessi permette una minore dipendenza tra gli oggetti e una maggiore coesione e possibilità di riuso
- Ogni strato può essere ulteriormente scomposto
- Alcuni strati possono essere sostituiti da nuove implementazioni
- Gli strati più bassi contengono funzioni riusabili
- Lo sviluppo in team è favorito dalla segmentazione logica
Quali problematiche si possono affrontare nello sviluppo di un’ architettura SW?
- Alto accoppiamento che comporta una difficile evoluzione del sistema
- La logica applicativa può essere condivisa con le GUI
Cos’è un oggetto di dominio?
Un oggetto SW che rappresenta una cosa nello spazio del dominio del problema e ha una logica applicativa correlata
Cos’è lo strato di dominio?
Uno strato dell’architettura che contiene gli oggetti di dominio per gestire la logica applicativa
Quali tipi di pattern esistono?
- Pattern architetturali, si applicano su larga scala (es. pattern layers)
- Design pattern, si applicano su una scala piccola-media (es. GoF)
- Idiomi, cioè soluzioni progettuali di basso livello (es. singleton)
- “Strategie”, cioè consigli per risolvere un problema in modo efficace
A cosa servono i package?
Raggruppano un insieme di responsabilità coese
Cosa dice il principio di separazione modello-vista?
Che gli oggetti di dominio (modello) non devono essere connessi direttamente agli oggetti UI (vista)
Come si può aderire semplicemente al principio modello-vista?
Usando il design pattern observer, infatti gli oggetti del livello di dominio non sanno con quali elementi della UI sono associati
Nell’MVC di cosa si occupa il model?
Incapsula lo stato della applicazione
Nell’MVC di cosa si occupa il controller?
Definisce il comportamento dell’applicazione
Nell’MVC di cosa si occupa la view?
Fa il rendering del model e fa richieste al controller