Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi di Milano Lezione 9 – I pattern (1)
Costi e fallimenti Lo sviluppo di software richiede costi molto elevati e registra grandi fallimenti, perché: – “We have to build the first skyscraper every time” (Bill Gates)
Alternative possibili Esistono altre discipline dell’ingegneria che hanno una base consolidata di soluzioni a problemi ricorrenti – È possibile definirla anche per l’ingegneria del software?
Esempio dall’architettura d’interni Window Place – Se una stanza in cui soggiornano persone contiene una finestra ma non c’è un posto per sedersi vicino ad essa, le persone saranno combattute tra due impulsi: sedersi comodamente e avvicinarsi alla sorgente di luce. – Soluzione: in ogni stanza di soggiorno, occorre predisporre un “window place”
Definizione Un pattern è una descrizione di un problema di progetto ricorrente per cui è nota una soluzione. La soluzione è specificata tramite i suoi componenti, le relazioni tra di essi e le modalità di cooperazione.
Esempio dall’architettura software Model-View-Controller – Le interfacce utente hanno un’elevata variabilità rispetto al resto della logica di un’applicazione – Aggiunte e modifiche alla UI non devono comportare variazioni del “functional core” – Soluzione: dividere ogni applicazione in tre parti: processing, input e output FINE