Insegnamento INGEGNERIA DEL SOFTWARE

Nome del corso Informatica
Codice insegnamento 55024706
Curriculum Comune a tutti i curricula
Docente responsabile Francesco Betti Sorbelli
Docenti
  • Francesco Betti Sorbelli
Ore
  • 42 ore - Francesco Betti Sorbelli
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