Insegnamento INGEGNERIA DEL SOFTWARE
| Nome del corso | Informatica |
|---|---|
| Codice insegnamento | 55024706 |
| Curriculum | Comune a tutti i curricula |
| Docente responsabile | Francesco Betti Sorbelli |
| Docenti |
|
| Ore |
|
| CFU | 6 |
| Regolamento | Coorte 2024 |
| Erogato | Erogato nel 2025/26 |
| Erogato altro regolamento | |
| Attività | Base |
| Ambito | Formazione informatica di base |
| Settore | INF/01 |
| Tipo insegnamento | Obbligatorio (Required) |
| Tipo attività | Attività formativa monodisciplinare |
| Lingua insegnamento | ITALIANO |
| Contenuti | Il corso offre una panoramica introduttiva sull’ingegneria del software, concentrandosi sui principi e sui modelli fondamentali che guidano la progettazione e lo sviluppo di sistemi digitali. Verranno affrontati i metodi di analisi e progettazione, insieme alle principali tecniche per garantire qualità, manutenzione ed evoluzione del software. Una parte del corso sarà dedicata ai metodi di verifica e validazione, alle buone pratiche di programmazione e agli aspetti essenziali di sicurezza. Saranno inoltre presentate strategie per il riuso, l’integrazione e la gestione di componenti software già esistenti, con l’obiettivo di fornire una visione moderna e flessibile del processo di sviluppo. |
| Testi di riferimento | I materiali principali del corso consistono negli appunti e nelle slide messe a disposizione sulla piattaforma UniStudium. Il testo di riferimento è il volume di I. Sommerville, *Software Engineering* (Pearson, ultima edizione), eventualmente affiancato da ulteriori risorse consigliate dal docente per approfondimenti specifici. |
| Obiettivi formativi | L’obiettivo del corso è fornire una comprensione essenziale delle tecniche di progettazione del software e delle principali fasi del processo di sviluppo, dalla definizione dei requisiti alla manutenzione, in linea con metodologie e buone pratiche riconosciute a livello internazionale. Al termine del corso lo studente acquisirà conoscenze di base sulle tecniche e sugli standard per l’analisi, la progettazione e lo sviluppo del software, sulle metriche di valutazione dei sistemi informatici, sulle principali pratiche di testing e sicurezza, sui design pattern e sui metodi di integrazione software. Le abilità sviluppate includono la capacità di applicare tecniche di analisi, progettazione e test a semplici casi di studio, di collaborare in attività di gruppo legate a un progetto software e di riconoscere quando adottare pattern di progettazione e strategie di integrazione adeguate. |
| Prerequisiti | I prerequisiti per apprendere e comprendere efficacemente i contenuti di questo insegnamento includono conoscenze di base di programmazione, familiarità con la programmazione a oggetti, elementi di logica e una comprensione dei concetti fondamentali di complessità, efficienza degli algoritmi e strutture dati. |
| Metodi didattici | Lezioni frontali. |
| Altre informazioni | Piattaforma di e-learning del corso con materiale e altre informazioni su http://www.unistudium.unipg.it |
| Modalità di verifica dell'apprendimento | L'esame consiste in una prova scritta. |
| Programma esteso | Il corso introduce il software come processo e come prodotto, presentando i principali modelli di ciclo di vita e le metodologie che guidano l’analisi, la progettazione, lo sviluppo, il test e la manutenzione dei sistemi informatici. Vengono illustrati i concetti fondamentali per la definizione dei requisiti, l’organizzazione del progetto, la verifica e la validazione, con riferimento a tecniche, modelli e linguaggi comunemente utilizzati in ambito industriale. Una parte del corso è dedicata ai fondamenti della modellazione, con particolare attenzione ai linguaggi standard per rappresentare requisiti, architetture e comportamenti. Sono previste esercitazioni pratiche su casi applicativi e l’uso di strumenti di supporto allo sviluppo, alla gestione delle versioni e alla documentazione. Il corso affronta inoltre i principi di qualità del software e le principali metriche di valutazione, insieme ai concetti essenziali di affidabilità, sicurezza e testing, con esempi relativi alle pratiche più diffuse per la progettazione sicura. Infine vengono introdotti i concetti fondamentali relativi al riuso del software, ai design pattern e alle tecniche per l’integrazione di componenti e servizi, offrendo una panoramica delle soluzioni più comuni utilizzate per costruire sistemi software complessi e interoperabili. |
| Obiettivi Agenda 2030 per lo sviluppo sostenibile | Istruzione di qualità Industria, innovazione e infrastrutture Città e comunità sostenibili |


