Insegnamento dedicato alle metodologie per lo sviluppo di sistemi software complessi. Il corso copre la specifica dei requisiti (UML, standard IEEE 830), il ciclo di vita del software, l'uso di Design Patterns per la risoluzione di problemi ricorrenti e i principi della modularità e qualità del codice. L'obiettivo è fornire strumenti modellistici e pratici per gestire la complessità e la manutenzione del software come prodotto industriale.