Fondamenti di ingegneria del software (2020/2021)



Codice insegnamento
4S008899
Crediti
6
Coordinatore
Mariano Ceccato
Settore disciplinare
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Lingua di erogazione
Italiano
L'insegnamento è organizzato come segue:
Attività Crediti Periodo Docenti Orario
Teoria 5 I semestre Mariano Ceccato

Vai all'orario delle lezioni

Laboratorio 1 I semestre Mariano Ceccato

Vai all'orario delle lezioni

Obiettivi formativi

L’insegnamento si propone di presentare e applicare le principali metodologie e tecnologie da adottare nella progettazione e sviluppo di sistemi software. Al termine del corso, lo studente saprà quali strumenti mettere in campo per la definizione dei requisiti, la progettazione, l’implementazione e la verifica del software. Queste conoscenze consentiranno allo studente di partecipare proattivamente e consapevolmente ad attività di sviluppo software, padroneggiando le metodologie e le tecnologie di supporto alle varie fasi dello sviluppo.

Programma

Il programma del corso include le seguenti tematiche:
• Introduzione all’ingegneria di software: definizioni, considerazioni etiche, casi di studio.
• Processi di sviluppo del software: modello a cascata, modello a spirale, modelli agili.
• Ingegneria dei requisiti: metodologie per la raccolta e validazione dei requisiti, interazione con gli stakeholders.
• Progettazione del software: linguaggio UML e suo utilizzo per progettazione e documentazione del software. Class diagram, sequence diagram, object diagram, package diagram, use case diagram, activity diagram.
• Implementazione del software: gestione della configurazione, build system, integrated development environment (IDE).
• Architetture software: progettazione e vista architetturale. Pattern di architetture software: Layers, Pipes and filters, Repository, Client server, MVC.
• Validazione del software: test di unità, test di integrazione e test di sistema. Test black-box e white-box. Copertura e adeguatezza dei casi di test. Mutation testing.
• Gestione del software: gestione del rischio, gestione di progetto.
• Evoluzione del software: refactoring e bad smells.

Modalità d'esame

Gli studenti verranno valutati mediante un esame orale ed attività di laboratorio.

Testi di riferimento
Attività Autore Titolo Casa editrice Anno ISBN Note
Teoria Ian Sommerville Ingegneria del software - 10/Ed. (Edizione 10) Pearson 2017 9788891902245
Laboratorio Ian Sommerville Ingegneria del software - 10/Ed. (Edizione 10) Pearson 2017 9788891902245