Ingegneria del software
Numero di crediti ECTS: 10 (96 ore frontali)
SSD di riferimento: INF/01
Docente: F. Ricca
Prerequisiti
Conoscenza di almeno un linguaggio di Programmazione ad oggetti, e delle nozioni di base delle Basi di Dati.
Interfacce grafiche e programmazione ad eventi
Obiettivi
Lo studente acquisirà i concetti di base dell'Ingegneria del software, concentrando l'attenzione sullo sviluppo di sistemi con linguaggi ad oggetti.
Programma
- Concetti Generali
- Introduzione all'ingegneria del software
- I processi software
- Analisi dei requisiti
- Progettazione
- Sviluppo
Verifica e convalida (Testing & Validation)
- Gestione e Manutenzione
- Utilizzo di UML
- Ingegneria del Software Orientata agli Oggetti
- Sviluppo agile ispirato al Rational Unified Process
- Design patterns
- Anti-patterns
- Refactoring
- Strumenti e framework
Eclipse & plug-in
Bibliografia
- C. Larman - "Applying UML and patterns - An Intro to OOA/D and Iterative Development" - Prentice Hall
- Ian Sommerville - "Software Engineering" 8th ed. - Pearson Education
- M. Fowler, K. Scott - "UML Distilled" - Addison-Wesley
- E. Gamma, R. Helm, R. Johnson, J. Vlissides - "Design Patterns" - Addison-Wesley
- M. Fowler, K. Beck, J. Brant, W. Opdyke, D. Roberts - "Refactoring: Improving the Design of Existing Code" - Addison-Wesley Professional
Tipologia di attività didattiche
Lezioni frontali seguite da esercitazioni guidate e sviluppo di un progetto didattico. Gli studenti svolgono e presentano le soluzioni dei propri esercizi alla fine di ogni ciclo di esercitazioni ed il progetto didattico alla fine del corso.
Metodi di valutazione
Svolgimento di un Progetto didattico oppure scritto seguito da un esame orale.