Architectural Pattern
Architectural Design
Indica come un sistema software deve essere organizzato e qual è la struttura del sistema.
L’output è come comunicano i componenti tra di loro
A che serve e come è definito
Può essere definito in una fase iniziale ed è volutamente informale, infatti viene definito attraverso una rappresentazione grafica con i diagrammi E/R.
Serve a mettere in discussione l’architettura utilizzata.
Caratteristiche
- performance: se devo calcolare subito o delegare
- security: qualcuno inietta del codice malevolo
- safety: c’è un bug: l’aereo si spegne
- availability: sempre funzionante (uptime)
- maintenance: aggiornare le componenti
Architectural Views
Cosa sono
La notazione che uso per descrivere i modelli architetturali
Come sono divisi
Si dividono in:
- logical: astrazioni
- physical: come sono distribuite le componenti sull’hardware
- processi: come il sistema interagisce a runtime
- dev: come viene decomposto
Architectural pattern principali
- MVC: web-browser interagisce col controller che fa la richiesta e passa al model qualcosa da fare che verrà passato alla view. La view, fa la costruzione dinamica della pagina e restituisce al controller ciò che ha costruito, che poi verrà restituito al browser.
- Layered system: tipo il modello iso-osi oppure un’app (frontend e backend)
- Repository system: shared repos (git) ⇒ cartelle condivise
- Client-server
- Pipe and filter: processa input per produrre output (es. parser)
- Application arch.: design checklist
- Transaction proc. system: tipo l’aggiornamento di un database
- Information system: tipo la layered
browser → login → data in/out → db - Web-based: sito di e-commerce
- Server implementation: il server si occupa di qualsiasi operazione