Studiare
In questa sezione è possibile reperire le informazioni riguardanti l'organizzazione pratica del corso, lo svolgimento delle attività didattiche, le opportunità formative e i contatti utili durante tutto il percorso di studi, fino al conseguimento del titolo finale.
Piano Didattico
Queste informazioni sono destinate esclusivamente agli studenti e alle studentesse già iscritti a questo corso.Se sei un nuovo studente interessato all'immatricolazione, trovi le informazioni sul percorso di studi alla pagina del corso:
Laurea magistrale in Ingegneria e scienze informatiche - Immatricolazione dal 2025/2026Il piano didattico è l'elenco degli insegnamenti e delle altre attività formative che devono essere sostenute nel corso della propria carriera universitaria.
Selezionare il piano didattico in base all'anno accademico di iscrizione.
1° Anno
2° Anno Attivato nell'A.A. 2023/2024
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
4 insegnamenti a scelta
2 insegnamenti a scelta (A.A. 2022/23: Quantum computing non erogato; A.A. 2023/24: Progettazione ad alte prestazioni in C++ non erogato)
3 insegnamenti a scelta (A.A. 2022/23 Quantum computing non erogato)
Legenda | Tipo Attività Formativa (TAF)
TAF (Tipologia Attività Formativa) Tutti gli insegnamenti e le attività sono classificate in diversi tipi di attività formativa, indicati da una lettera.
Fondamenti di ingegneria del software (2022/2023)
Codice insegnamento
4S008899
Crediti
6
Lingua di erogazione
Italiano
Settore Scientifico Disciplinare (SSD)
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
L'insegnamento è organizzato come segue:
Teoria
Laboratorio
Obiettivi di apprendimento
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.
Prerequisiti e nozioni di base
Conoscenza di fondamenti di programmazione, in particolare in Java
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.
Bibliografia
Modalità didattiche
Lezioni frontali, esercitazioni in laboratorio e discussione in aula.
Modalità di verifica dell'apprendimento
Homework assegnati durante il corso, progetto alla fine del corso e esame scritto.
Criteri di valutazione
Chiarezza e completezza delle risposte alle domande scritte. Qualità e completezza del progetto.
Criteri di composizione del voto finale
Valutazione homework, valutazione esame scritto e valutazione progetto.
Lingua dell'esame
Italiano