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
Il 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
Insegnamenti | Crediti | TAF | SSD |
---|
2° Anno Attivato nell'A.A. 2023/2024
Insegnamenti | Crediti | TAF | SSD |
---|
3° Anno Attivato nell'A.A. 2024/2025
Insegnamenti | Crediti | TAF | SSD |
---|
1 insegnamento a scelta
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
1 insegnamento a scelta
Insegnamenti | Crediti | TAF | SSD |
---|
Altre attività formative: lo studente può scegliere tra le 2 seguenti opzioni:
a) 2 CFU di seminari - di cui 1 CFU al 1 anno e 1 CFU al 2 anno - e 7 CFU di tirocinio al 3 anno;
b) 9 CFU di tirocinio al 3 anno. Non sono previste ulteriori opzioni.
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.
Ingegneria del software (2024/2025)
Codice insegnamento
4S009888
Crediti
6
Coordinatore
Non ancora assegnato
Lingua di erogazione
Italiano
Settore Scientifico Disciplinare (SSD)
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Corsi Singoli
Autorizzato
L'insegnamento è organizzato come segue:
Teoria
Crediti
5
Periodo
II semestre
Docenti
Carlo Combi
Laboratorio
Crediti
1
Periodo
II semestre
Docenti
Pietro Sala
Programma
------------------------
UL: Teoria
------------------------
------------------------
MM: Teoria ed esercitazioni
------------------------
* Introduzione all'ingegneria del software
- Definizione di Ingegneria del Software
- Tipi di Software
- Caratteristiche dei software
- Ingegneria del Software e aspetti etici
* Processi software
- Introduzione
- Modelli dei processi software
- Attività dei processi
- Gestione dei cambiamenti
* Sviluppo agile del sotware
- Metodi agili
- La metodologia SCRUM e sue applicazioni
* Ingegneria dei requisiti
- Requisiti funzionali e non funzionali
- Processi di ingegneria dei requisiti
- Ingegneria dei requisiti e UML Use Case
* Progettazione architetturale
- Introduzione
- Pattern di architettura
-- MVC
-- Repository
-- Client server
-- Pipe and filter
* Progettazione e implementazione con approccio agli oggetti
- Caratteristiche principali
- Metodologie ad oggetti: concetti di base
- Modellazione di sistemi orientata agli oggetti con UML
-- UML Class Diagram
-- Use Case diagram
-- Activity Diagram
-- Sequence Diagram
- Fasi della progettazione
- Design pattern
-- Introduzione
-- Singleton
-- Observer
-- Template
-- Iterator
-- Factory
-- Abstract factory
-- Proxy
-- Facade
-- Decorator
* Verifica e Validazione
- Introduzione
- Ispezione e test
- Vari tipi di test
- Progettazione basata su test
* Evoluzione e mantenimento del software
- Gestione del cambiamento del SW
- Sistemi Legacy
- Manutenzione del SW
------------------------
UL: Laboratorio
------------------------
Questo corso di laboratorio, della durata di 12 ore, si concentra sugli strumenti e i framework per l'ingegneria del software moderna e la visualizzazione dei dati utilizzando JavaFX. Il programma è strutturato per fornire agli studenti un'esperienza pratica completa nello sviluppo di applicazioni desktop moderne.
Il corso inizia con un'introduzione alle basi di JavaFX, insegnando agli studenti come creare interfacce utente interattive e responsive. Successivamente, si approfondisce la gestione efficiente dei dati attraverso l'uso delle Observable Collections di JavaFX, permettendo agli studenti di sviluppare applicazioni reattive e dinamiche.
Una parte significativa del corso è dedicata all'uso di FXML e Scene Builder. Gli studenti impareranno a definire interfacce utente utilizzando FXML, un linguaggio basato su XML, e a sfruttare Scene Builder, un potente strumento visuale per la creazione rapida e intuitiva di UI JavaFX.
Il corso pone particolare enfasi sull'architettura Model-View-Controller (MVC), un pattern fondamentale nello sviluppo software. Gli studenti apprenderanno come strutturare le loro applicazioni JavaFX secondo questo modello, separando chiaramente le responsabilità tra Model (dati e logica di business), View (interfaccia utente) e Controller (gestione degli eventi e coordinamento). Questa approccio permetterà loro di creare applicazioni più modulari, mantenibili e scalabili.
Infine, il corso si conclude con l'introduzione allo scheduling delle operazioni in JavaFX. Gli studenti impareranno a utilizzare la classe Timeline per programmare e gestire operazioni temporizzate, includendo l'esecuzione di task periodici.
Non si esclude che lo stesso programma venga svolto utilizzando la libreria Dash di Python qualora ve ne sia una forte richiesta da parte della componente studentesca.
Modalità di verifica dell'apprendimento
La verifica del profitto, sia per gli studenti frequentanti sia per i non frequentanti, avviene mediante un piccolo progetto, inerente l'attività di laboratorio, e un esame orale sugli argomenti del programma. Oltre alla capacità di presentare correttamente tutti gli aspetti di un progetto software, l'esame farà emergere sia aspetti di conoscenza astratta sia capacità di applicazione dei concetti appresi.