SlideShare a Scribd company logo
1 of 31
Download to read offline
WATERFALL
Analisi dei requisiti
Progettazione
Implementazione
Integrazione
Manutenzione
ARCHITETTURA
• È IL LIVELLO PIÙ ALTO DELLA PROGETTAZIONE
• GLI ARCHITETTI SONO IL COLLEGAMENTO TRA IDEA E REALTÀ
• L’ARCHITETTURA NON PUÒ ESSERE (RAGIONEVOLMENTE)
RIPARATA, UNA VOLTA IMPLEMENTATA
• NEL SOFTWARE: UNA ARCHITETTURA SBAGLIATA NON PUÒ
ESSERE CORRETTA CON UNA BUONA PROGRAMMAZIONE
• IN ALTRI CAMPI: IMMAGINATE DI DOVER INTERVENIRE PER UN
ERRORE SULLE FONDAMENTA DI UN GRATTACIELO, QUANDO
NE SONO STATI REALIZZATI GIÀ TRE PIANI!
PANORAMICA
• NEL SOFTWARE, L’ARCHITETTURA CONSISTE NEL
SEPARARE SISTEMI GRANDI IN SISTEMI PIÙ PICCOLI E
FOCALIZZATI
• PENSARE UNA BUONA ARCHITETTURA NON È FACILE
• UN SOFTWARE DEVE AVERE UNA BUONA ARCHITETTURA
PER ESSERE MANUTENIBILE
• ERRORI NELL’ARCHITETTURA SONO QUASI IMPOSSIBILI DA
RISOLVERE, UNA VOLTA INIZIATA LA PROGRAMMAZIONE
VANTAGGI
• UNA BUONA ARCHITETTURA PERMETTE
• UNA MIGLIORE ALLOCAZIONE DEI TASK
• DI VELOCIZZARE LO SVILUPPO
• DECIDERE SE COMPRARE O SVILUPPARE
ESEMPIO: SITO WEB
1. TUTTO IL CODICE IN UNA PAGINA (1.000 RIGHE)
2. CODICE DIVISO IN
• FRONT END (500 RIGHE)
• BACK END (500 RIGHE)
3. CODICE DIVISO IN
• FRONT END
• MAIN (400 RIGHE)
• LOGIN (90 RIGHE)
• FORM (10 RIGHE)
• BACK END (500 RIGHE)
ESEMPIO: GAME
• GRAFICA
• DATI UTENTE
• LOGICA
• PUNTEGGI
• …
Background game
Foreground game
Menus
Graphics controller
Input controller
Progression controller
Score controller
Graphics logic
Game control logic
Score logic
Database logic
Personal server
Cloud server
ARCHITECTURAL PATTERNS
• UN PATTERN ARCHITETTURALE È UNA SOLUZIONE GENERALE E RIUTILIZZABILE A UN
PROBLEMA RICORRENTE NELL’ARCHITETTURA DEL SOFTWARE IN UN DETERMINATO
CONTESTO
LAYERED PATTERN
• QUESTO MODELLO PUÒ ESSERE UTILIZZATO PER
STRUTTURARE PROGRAMMI CHE POSSONO ESSERE
SCOMPOSTI IN GRUPPI DI SOTTO-ATTIVITÀ
• CIASCUNA DI QUESTE RAPPRESENTA UN
PARTICOLARE LIVELLO DI ASTRAZIONE
• OGNI LIVELLO FORNISCE SERVIZI AL LIVELLO AD
ESSO SUPERIORE
LAYERED PATTERN
• LAYER PIÙ COMUNEMENTE UTILIZZATI
• LIVELLO DI PRESENTAZIONE (NOTO ANCHE COME LIVELLO UI)
• LIVELLO APPLICAZIONE (NOTO ANCHE COME LIVELLO DI SERVIZIO)
• LIVELLO DI LOGICA AZIENDALE (NOTO ANCHE COME LIVELLO DI DOMINIO)
• LIVELLO DI ACCESSO AI DATI (NOTO ANCHE COME LIVELLO DI PERSISTENZA)
UTILIZZO
Applicazioni
desktop
generiche
Applicazioni
web per il
commercio
elettronico
CLIENT-SERVER PATTERN
• QUESTO MODELLO È COMPOSTO DA DUE PARTI
• UN SERVER
• UNO O PIÙ CLIENT
• IL COMPONENTE SERVER FORNIRÀ SERVIZI A PIÙ
COMPONENTI CLIENT
• I CLIENT RICHIEDONO SERVIZI DAL SERVER E IL SERVER
FORNISCE SERVIZI PERTINENTI A TALI CLIENT
• IL SERVER CONTINUA AD ASCOLTARE LE RICHIESTE DEL
CLIENT
• APPLICAZIONI ONLINE COME E-MAIL, CONDIVISIONE DI
DOCUMENTI E OPERAZIONI BANCARIE.
MASTER-SLAVE PATTERN
• QUESTO MODELLO È COMPOSTO DA DUE PARTI
• MASTER
• SLAVES
• IL COMPONENTE MASTER DISTRIBUISCE IL LAVORO
TRA COMPONENTI SLAVE IDENTICI E CALCOLA UN
RISULTATO FINALE DAI RISULTATI RESTITUITI DAGLI
SLAVE
UTILIZZO
Nella replica di
database, il database
master è considerato
l'origine autorevole e i
database slave sono
sincronizzati con esso
Periferiche collegate a
un bus in un sistema
informatico (unità master
e slave)
MODEL-VIEW-CONTROLLER PATTERN
• DIVIDE UN'APPLICAZIONE IN 3 PARTI
• MODEL: CONTIENE LE FUNZIONALITÀ E I DATI PRINCIPALI
• VIEW: MOSTRA LE INFORMAZIONI ALL'UTENTE (È
POSSIBILE DEFINIRE PIÙ DI UNA VISTA)
• CONTROLLER: GESTISCE L'INPUT DELL'UTENTE
• VIENE FATTO PER SEPARARE LE RAPPRESENTAZIONI
INTERNE DELLE INFORMAZIONI DAI MODI IN CUI LE
INFORMAZIONI VENGONO PRESENTATE E ACCETTATE
DALL'UTENTE. DISACCOPPIA I COMPONENTI E
CONSENTE UN EFFICIENTE RIUTILIZZO DEL CODICE
UTILIZZO
Sviluppo Apple
Architettura per
applicazioni
World Wide
Web
Framework Web
come Django e
Rails
PIPE-FILTER
PATTERN
• QUESTO MODELLO PUÒ ESSERE UTILIZZATO PER
STRUTTURARE SISTEMI CHE PRODUCONO ED ELABORANO
UN FLUSSO DI DATI
• OGNI FASE DI ELABORAZIONE È RACCHIUSA ALL'INTERNO DI
UN COMPONENTE FILTRO
• I DATI DA ELABORARE VENGONO PASSATI ATTRAVERSO PIPE
• QUESTE PIPE POSSONO ESSERE UTILIZZATE PER IL BUFFERING
O PER SCOPI DI SINCRONIZZAZIONE.
UTILIZZO
Compilatori. I filtri
consecutivi eseguono
l'analisi lessicale,
l'analisi, l'analisi
semantica e la
generazione del codice
Flussi di lavoro in
bioinformatica
BROKER PATTERN
• SISTEMI DISTRIBUITI CON COMPONENTI DISACCOPPIATI
• QUESTI COMPONENTI POSSONO INTERAGIRE TRA
LORO MEDIANTE CHIAMATE DI SERVIZI REMOTI
• UN COMPONENTE BROKER È RESPONSABILE DEL
COORDINAMENTO DELLA COMUNICAZIONE TRA I
COMPONENTI
• I SERVER PUBBLICANO LE LORO CAPACITÀ (SERVIZI E
CARATTERISTICHE) A UN BROKER
• I CLIENT RICHIEDONO UN SERVIZIO DAL BROKER E IL
BROKER REINDIRIZZA QUINDI IL CLIENT A UN SERVIZIO
ADATTO DAL SUO REGISTRO.
UTILIZZO
Software
message
broker come
Apache
ActiveMQ
Apache
Kafka RabbitMQ JBoss
Messaging
PEER-TO-PEER PATTERN
• I SINGOLI COMPONENTI SONO NOTI COME PEER
• I PEER POSSONO FUNZIONARE SIA COME CLIENT,
RICHIEDENDO SERVIZI DA ALTRI PEER, SIA COME
SERVER, FORNENDO SERVIZI AD ALTRI PEER
• UN PEER PUÒ AGIRE COME CLIENT O COME SERVER
O COME ENTRAMBI E PUÒ CAMBIARE IL PROPRIO
RUOLO IN MODO DINAMICO NEL TEMPO
UTILIZZO
Reti di
condivisione file
come Gnutella e
G2
Protocolli
multimediali
come P2PTV e
PDTP
Prodotti basati
su criptovaluta
come Bitcoin e
Blockchain
EVENT-BUS PATTERN
• QUESTO MODELLO SI OCCUPA PRINCIPALMENTE DI EVENTI E HA 4
COMPONENTI PRINCIPALI
• SORGENTE DI EVENTI
• LISTENER DI EVENTI
• CANALE
• BUS DI EVENTI
• LE ORIGINI PUBBLICANO MESSAGGI SU CANALI PARTICOLARI SU UN
BUS DI EVENTI
• GLI ASCOLTATORI SI ISCRIVONO A DETERMINATI CANALI E RICEVONO
UNA NOTIFICA DEI MESSAGGI PUBBLICATI SUI CANALI A CUI SONO
ISCRITTI
UTILIZZO
Sviluppo
Android
Servizi di
notifica
BLACKBOARD PATTERN
• UTILE PER PROBLEMI PER I QUALI NON SONO NOTE STRATEGIE DI SOLUZIONE
DETERMINISTICHE. IL MODELLO DELLA LAVAGNA È COMPOSTO DA 3 COMPONENTI
PRINCIPALI
• LAVAGNA: UNA MEMORIA GLOBALE STRUTTURATA CONTENENTE OGGETTI
DALLO SPAZIO DELLE SOLUZIONI
• FONTE DI CONOSCENZA: MODULI SPECIALIZZATI CON LA PROPRIA
RAPPRESENTAZIONE
• COMPONENTE DI CONTROLLO: SELEZIONA, CONFIGURA ED ESEGUE I MODULI
• TUTTI I COMPONENTI HANNO ACCESSO ALLA LAVAGNA
• I COMPONENTI POSSONO PRODURRE NUOVI OGGETTI DATI CHE VENGONO
AGGIUNTI ALLA LAVAGNA
• I COMPONENTI CERCANO PARTICOLARI TIPI DI DATI SULLA LAVAGNA E POSSONO
TROVARLI CONFRONTANDO IL MODELLO CON LA FONTE DI CONOSCENZA ESISTENTE.
UTILIZZO
Riconoscimento
vocale
Identificazione
e tracciamento
di veicoli
Identificazione
di strutture
proteiche
Interpretazione
di segnali
sonar
INTERPRETER PATTERN
• PER PROGETTARE UN COMPONENTE CHE
INTERPRETA I PROGRAMMI SCRITTI IN UN
LINGUAGGIO DEDICATO
• SPECIFICA PRINCIPALMENTE COME VALUTARE RIGHE
DI PROGRAMMI, NOTE COME FRASI O ESPRESSIONI
SCRITTE IN UNA PARTICOLARE LINGUA
• L'IDEA DI BASE È DI AVERE UNA CLASSE PER OGNI
SIMBOLO DELLA LINGUA
UTILIZZO
Linguaggi di
query del
database come
SQL
Linguaggi usati
per descrivere i
protocolli di
comunicazione
ATTIVITÀ IN
CLASSE
PROPORRE UN’ARCHITETTURA
1. PER OGNI PROGETTO DEFINITO PRIMA, PROPORRE UN’ARCHITETTURA, SFRUTTANDO ANCHE GLI
ARCHITECTURAL PATTERNS ILLUSTRATI

More Related Content

Similar to Waterfall Software Development Life Cycle

Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
Yeser Rema
 
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
Marco Suma
 
Lucierna - Application Performance Manager - APM
Lucierna - Application Performance Manager - APMLucierna - Application Performance Manager - APM
Lucierna - Application Performance Manager - APM
Alessandro Salvatico
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-max
DotNetCampus
 
Signal r to the-max
Signal r to the-maxSignal r to the-max
Signal r to the-max
DotNetCampus
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
GiacomoZorzin
 

Similar to Waterfall Software Development Life Cycle (20)

Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
 
Web app slots and WebAPI versioning
Web app slots and WebAPI versioningWeb app slots and WebAPI versioning
Web app slots and WebAPI versioning
 
Web app slots and webapi versioning
Web app slots and webapi versioningWeb app slots and webapi versioning
Web app slots and webapi versioning
 
Cac Es3 2009
Cac Es3 2009Cac Es3 2009
Cac Es3 2009
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big Data
 
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
 
Lucierna - Application Performance Manager - APM
Lucierna - Application Performance Manager - APMLucierna - Application Performance Manager - APM
Lucierna - Application Performance Manager - APM
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)
 
Lezione 8: Introduzione ai Web Service
Lezione 8: Introduzione ai Web ServiceLezione 8: Introduzione ai Web Service
Lezione 8: Introduzione ai Web Service
 
API Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaAPI Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole Italia
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-max
 
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
 
Signal r to the-max
Signal r to the-maxSignal r to the-max
Signal r to the-max
 
DIAVASO
DIAVASODIAVASO
DIAVASO
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costs
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 

Recently uploaded

Recently uploaded (10)

a scuola di biblioVerifica: come utilizzare CHATBOT secondo UNESCO
a scuola di biblioVerifica: come utilizzare CHATBOT secondo UNESCOa scuola di biblioVerifica: come utilizzare CHATBOT secondo UNESCO
a scuola di biblioVerifica: come utilizzare CHATBOT secondo UNESCO
 
Stati Uniti PPT geografia power point..
Stati Uniti  PPT geografia power point..Stati Uniti  PPT geografia power point..
Stati Uniti PPT geografia power point..
 
AccessibleEU: oggi per l’accessibilità di domani
AccessibleEU: oggi per l’accessibilità di domaniAccessibleEU: oggi per l’accessibilità di domani
AccessibleEU: oggi per l’accessibilità di domani
 
Ostia antica da porta di Roma a porta d'Europa
Ostia antica da porta di Roma a porta d'EuropaOstia antica da porta di Roma a porta d'Europa
Ostia antica da porta di Roma a porta d'Europa
 
Accessibilità, tra miti e realtà: gli errori da non compiere e le azioni da i...
Accessibilità, tra miti e realtà: gli errori da non compiere e le azioni da i...Accessibilità, tra miti e realtà: gli errori da non compiere e le azioni da i...
Accessibilità, tra miti e realtà: gli errori da non compiere e le azioni da i...
 
MyEdu Club: il magazine di MyEdu dedicato ai genitori
MyEdu Club: il magazine di MyEdu dedicato ai genitoriMyEdu Club: il magazine di MyEdu dedicato ai genitori
MyEdu Club: il magazine di MyEdu dedicato ai genitori
 
Powerpoint tesi di laurea
Powerpoint tesi di laurea Powerpoint tesi di laurea
Powerpoint tesi di laurea
 
Lo Schema Diapositiva con LibreOffice Impress
Lo Schema Diapositiva con LibreOffice ImpressLo Schema Diapositiva con LibreOffice Impress
Lo Schema Diapositiva con LibreOffice Impress
 
No. Nessuno strumento automatico verifica o ripara l’accessibilità di un sito...
No. Nessuno strumento automatico verifica o ripara l’accessibilità di un sito...No. Nessuno strumento automatico verifica o ripara l’accessibilità di un sito...
No. Nessuno strumento automatico verifica o ripara l’accessibilità di un sito...
 
Ticonzero news 149.pdf, maggio 2024, content
Ticonzero news 149.pdf, maggio 2024, contentTiconzero news 149.pdf, maggio 2024, content
Ticonzero news 149.pdf, maggio 2024, content
 

Waterfall Software Development Life Cycle

  • 2. ARCHITETTURA • È IL LIVELLO PIÙ ALTO DELLA PROGETTAZIONE • GLI ARCHITETTI SONO IL COLLEGAMENTO TRA IDEA E REALTÀ • L’ARCHITETTURA NON PUÒ ESSERE (RAGIONEVOLMENTE) RIPARATA, UNA VOLTA IMPLEMENTATA • NEL SOFTWARE: UNA ARCHITETTURA SBAGLIATA NON PUÒ ESSERE CORRETTA CON UNA BUONA PROGRAMMAZIONE • IN ALTRI CAMPI: IMMAGINATE DI DOVER INTERVENIRE PER UN ERRORE SULLE FONDAMENTA DI UN GRATTACIELO, QUANDO NE SONO STATI REALIZZATI GIÀ TRE PIANI!
  • 3. PANORAMICA • NEL SOFTWARE, L’ARCHITETTURA CONSISTE NEL SEPARARE SISTEMI GRANDI IN SISTEMI PIÙ PICCOLI E FOCALIZZATI • PENSARE UNA BUONA ARCHITETTURA NON È FACILE • UN SOFTWARE DEVE AVERE UNA BUONA ARCHITETTURA PER ESSERE MANUTENIBILE • ERRORI NELL’ARCHITETTURA SONO QUASI IMPOSSIBILI DA RISOLVERE, UNA VOLTA INIZIATA LA PROGRAMMAZIONE
  • 4. VANTAGGI • UNA BUONA ARCHITETTURA PERMETTE • UNA MIGLIORE ALLOCAZIONE DEI TASK • DI VELOCIZZARE LO SVILUPPO • DECIDERE SE COMPRARE O SVILUPPARE
  • 5. ESEMPIO: SITO WEB 1. TUTTO IL CODICE IN UNA PAGINA (1.000 RIGHE) 2. CODICE DIVISO IN • FRONT END (500 RIGHE) • BACK END (500 RIGHE) 3. CODICE DIVISO IN • FRONT END • MAIN (400 RIGHE) • LOGIN (90 RIGHE) • FORM (10 RIGHE) • BACK END (500 RIGHE)
  • 6. ESEMPIO: GAME • GRAFICA • DATI UTENTE • LOGICA • PUNTEGGI • …
  • 7. Background game Foreground game Menus Graphics controller Input controller Progression controller Score controller Graphics logic Game control logic Score logic Database logic Personal server Cloud server
  • 8.
  • 9. ARCHITECTURAL PATTERNS • UN PATTERN ARCHITETTURALE È UNA SOLUZIONE GENERALE E RIUTILIZZABILE A UN PROBLEMA RICORRENTE NELL’ARCHITETTURA DEL SOFTWARE IN UN DETERMINATO CONTESTO
  • 10. LAYERED PATTERN • QUESTO MODELLO PUÒ ESSERE UTILIZZATO PER STRUTTURARE PROGRAMMI CHE POSSONO ESSERE SCOMPOSTI IN GRUPPI DI SOTTO-ATTIVITÀ • CIASCUNA DI QUESTE RAPPRESENTA UN PARTICOLARE LIVELLO DI ASTRAZIONE • OGNI LIVELLO FORNISCE SERVIZI AL LIVELLO AD ESSO SUPERIORE
  • 11. LAYERED PATTERN • LAYER PIÙ COMUNEMENTE UTILIZZATI • LIVELLO DI PRESENTAZIONE (NOTO ANCHE COME LIVELLO UI) • LIVELLO APPLICAZIONE (NOTO ANCHE COME LIVELLO DI SERVIZIO) • LIVELLO DI LOGICA AZIENDALE (NOTO ANCHE COME LIVELLO DI DOMINIO) • LIVELLO DI ACCESSO AI DATI (NOTO ANCHE COME LIVELLO DI PERSISTENZA)
  • 13. CLIENT-SERVER PATTERN • QUESTO MODELLO È COMPOSTO DA DUE PARTI • UN SERVER • UNO O PIÙ CLIENT • IL COMPONENTE SERVER FORNIRÀ SERVIZI A PIÙ COMPONENTI CLIENT • I CLIENT RICHIEDONO SERVIZI DAL SERVER E IL SERVER FORNISCE SERVIZI PERTINENTI A TALI CLIENT • IL SERVER CONTINUA AD ASCOLTARE LE RICHIESTE DEL CLIENT • APPLICAZIONI ONLINE COME E-MAIL, CONDIVISIONE DI DOCUMENTI E OPERAZIONI BANCARIE.
  • 14. MASTER-SLAVE PATTERN • QUESTO MODELLO È COMPOSTO DA DUE PARTI • MASTER • SLAVES • IL COMPONENTE MASTER DISTRIBUISCE IL LAVORO TRA COMPONENTI SLAVE IDENTICI E CALCOLA UN RISULTATO FINALE DAI RISULTATI RESTITUITI DAGLI SLAVE
  • 15. UTILIZZO Nella replica di database, il database master è considerato l'origine autorevole e i database slave sono sincronizzati con esso Periferiche collegate a un bus in un sistema informatico (unità master e slave)
  • 16. MODEL-VIEW-CONTROLLER PATTERN • DIVIDE UN'APPLICAZIONE IN 3 PARTI • MODEL: CONTIENE LE FUNZIONALITÀ E I DATI PRINCIPALI • VIEW: MOSTRA LE INFORMAZIONI ALL'UTENTE (È POSSIBILE DEFINIRE PIÙ DI UNA VISTA) • CONTROLLER: GESTISCE L'INPUT DELL'UTENTE • VIENE FATTO PER SEPARARE LE RAPPRESENTAZIONI INTERNE DELLE INFORMAZIONI DAI MODI IN CUI LE INFORMAZIONI VENGONO PRESENTATE E ACCETTATE DALL'UTENTE. DISACCOPPIA I COMPONENTI E CONSENTE UN EFFICIENTE RIUTILIZZO DEL CODICE
  • 17. UTILIZZO Sviluppo Apple Architettura per applicazioni World Wide Web Framework Web come Django e Rails
  • 18. PIPE-FILTER PATTERN • QUESTO MODELLO PUÒ ESSERE UTILIZZATO PER STRUTTURARE SISTEMI CHE PRODUCONO ED ELABORANO UN FLUSSO DI DATI • OGNI FASE DI ELABORAZIONE È RACCHIUSA ALL'INTERNO DI UN COMPONENTE FILTRO • I DATI DA ELABORARE VENGONO PASSATI ATTRAVERSO PIPE • QUESTE PIPE POSSONO ESSERE UTILIZZATE PER IL BUFFERING O PER SCOPI DI SINCRONIZZAZIONE.
  • 19. UTILIZZO Compilatori. I filtri consecutivi eseguono l'analisi lessicale, l'analisi, l'analisi semantica e la generazione del codice Flussi di lavoro in bioinformatica
  • 20. BROKER PATTERN • SISTEMI DISTRIBUITI CON COMPONENTI DISACCOPPIATI • QUESTI COMPONENTI POSSONO INTERAGIRE TRA LORO MEDIANTE CHIAMATE DI SERVIZI REMOTI • UN COMPONENTE BROKER È RESPONSABILE DEL COORDINAMENTO DELLA COMUNICAZIONE TRA I COMPONENTI • I SERVER PUBBLICANO LE LORO CAPACITÀ (SERVIZI E CARATTERISTICHE) A UN BROKER • I CLIENT RICHIEDONO UN SERVIZIO DAL BROKER E IL BROKER REINDIRIZZA QUINDI IL CLIENT A UN SERVIZIO ADATTO DAL SUO REGISTRO.
  • 22. PEER-TO-PEER PATTERN • I SINGOLI COMPONENTI SONO NOTI COME PEER • I PEER POSSONO FUNZIONARE SIA COME CLIENT, RICHIEDENDO SERVIZI DA ALTRI PEER, SIA COME SERVER, FORNENDO SERVIZI AD ALTRI PEER • UN PEER PUÒ AGIRE COME CLIENT O COME SERVER O COME ENTRAMBI E PUÒ CAMBIARE IL PROPRIO RUOLO IN MODO DINAMICO NEL TEMPO
  • 23. UTILIZZO Reti di condivisione file come Gnutella e G2 Protocolli multimediali come P2PTV e PDTP Prodotti basati su criptovaluta come Bitcoin e Blockchain
  • 24. EVENT-BUS PATTERN • QUESTO MODELLO SI OCCUPA PRINCIPALMENTE DI EVENTI E HA 4 COMPONENTI PRINCIPALI • SORGENTE DI EVENTI • LISTENER DI EVENTI • CANALE • BUS DI EVENTI • LE ORIGINI PUBBLICANO MESSAGGI SU CANALI PARTICOLARI SU UN BUS DI EVENTI • GLI ASCOLTATORI SI ISCRIVONO A DETERMINATI CANALI E RICEVONO UNA NOTIFICA DEI MESSAGGI PUBBLICATI SUI CANALI A CUI SONO ISCRITTI
  • 26. BLACKBOARD PATTERN • UTILE PER PROBLEMI PER I QUALI NON SONO NOTE STRATEGIE DI SOLUZIONE DETERMINISTICHE. IL MODELLO DELLA LAVAGNA È COMPOSTO DA 3 COMPONENTI PRINCIPALI • LAVAGNA: UNA MEMORIA GLOBALE STRUTTURATA CONTENENTE OGGETTI DALLO SPAZIO DELLE SOLUZIONI • FONTE DI CONOSCENZA: MODULI SPECIALIZZATI CON LA PROPRIA RAPPRESENTAZIONE • COMPONENTE DI CONTROLLO: SELEZIONA, CONFIGURA ED ESEGUE I MODULI • TUTTI I COMPONENTI HANNO ACCESSO ALLA LAVAGNA • I COMPONENTI POSSONO PRODURRE NUOVI OGGETTI DATI CHE VENGONO AGGIUNTI ALLA LAVAGNA • I COMPONENTI CERCANO PARTICOLARI TIPI DI DATI SULLA LAVAGNA E POSSONO TROVARLI CONFRONTANDO IL MODELLO CON LA FONTE DI CONOSCENZA ESISTENTE.
  • 28. INTERPRETER PATTERN • PER PROGETTARE UN COMPONENTE CHE INTERPRETA I PROGRAMMI SCRITTI IN UN LINGUAGGIO DEDICATO • SPECIFICA PRINCIPALMENTE COME VALUTARE RIGHE DI PROGRAMMI, NOTE COME FRASI O ESPRESSIONI SCRITTE IN UNA PARTICOLARE LINGUA • L'IDEA DI BASE È DI AVERE UNA CLASSE PER OGNI SIMBOLO DELLA LINGUA
  • 29. UTILIZZO Linguaggi di query del database come SQL Linguaggi usati per descrivere i protocolli di comunicazione
  • 31. PROPORRE UN’ARCHITETTURA 1. PER OGNI PROGETTO DEFINITO PRIMA, PROPORRE UN’ARCHITETTURA, SFRUTTANDO ANCHE GLI ARCHITECTURAL PATTERNS ILLUSTRATI