- Docente: Paolo Ciancarini
- Crediti formativi: 9
- SSD: INFO-01/A
- Lingua di insegnamento: Italiano
- Moduli: Paolo Ciancarini (Modulo 1) Giancarlo Succi (Modulo 2)
- Modalità didattica: Lezioni contemporaneamente in presenza e a distanza - Blended Learning (Modulo 1); Lezioni contemporaneamente in presenza e a distanza - Blended Learning (Modulo 2)
- Campus: Bologna
- Corso: Laurea in Informatica (cod. 8009)
-
Orario delle lezioni (Modulo 1)
dal 22/09/2026 al 16/12/2026
-
Orario delle lezioni (Modulo 2)
dal 21/09/2026 al 15/12/2026
Conoscenze e abilità da conseguire
Al termine del corso, lo studente conosce metodi e strumenti di analisi, progettazione e misura di sistemi software. Comprende il ruolo dei modelli di processo di sviluppo del software, specialmente quelli orientati alla collaborazione agile. È in grado di descrivere un sistema software con il formalismo UML, di programmarlo con un linguaggio orientato agli oggetti, utilizzando strumenti collaborativi per le gestione delle versioni e della qualità del codice.
Contenuti
Il corso introduce i principi e le pratiche dell’ingegneria del software, con attenzione al ciclo di vita, alla qualità, ai requisiti e ai processi di sviluppo. Include anche l’uso critico degli LLM come supporto ad analisi, progettazione, documentazione e test, per sviluppare software in modo efficace, iterativo e orientato al valore.
-
Produzione e natura del software, ruolo del software nell’industria e nei servizi.
-
Ciclo di vita del software e attività di sviluppo: requisiti, progettazione, codifica, test, rilascio e manutenzione.
-
Processi di sviluppo e modelli di processo, con focus sui metodi agili e sul lavoro iterativo.
-
Scrum: ruoli, eventi, artefatti e dinamiche di team.
-
Requisiti software: raccolta, analisi, specifica e gestione del cambiamento, anche con supporto di LLM per sintesi e riformulazione.
-
User stories, product backlog, prioritizzazione e Definition of Done, con attenzione all’uso di LLM per brainstorming e revisione dei requisiti.
-
Product Owner, stakeholder e gestione del valore di prodotto.
-
Qualità, produttività, rischi e aspetti economici dello sviluppo software, includendo riflessioni sull’uso responsabile degli LLM nello sviluppo.
Testi/Bibliografia
P.Jalote, A Concise Introduction to Software Engineering: With Open Source and GenAI, Springer 2025
Metodi didattici
Il corso si svolge in forma blended, alternando lezioni in aula e attività online, con un approccio progressivo e applicativo. Le lezioni introducono i concetti fondamentali, mentre esercitazioni, discussioni ed esempi guidano l’uso degli strumenti e dei metodi del software engineering, inclusi LLM e pratiche agili
Modalità di verifica e valutazione dell'apprendimento
Verifica dell’apprendimento mediante prova finale orale e/o scritta, volta ad accertare la comprensione dei contenuti del corso e la capacità di applicarli a casi di studio e situazioni progettuali.
Strumenti a supporto della didattica
Gli strumenti a supporto della didattica comprendono slide, esercitazioni guidate, casi di studio, strumenti per la gestione dei backlog e delle attività di gruppo, e ambienti di collaborazione digitale. Nel corso potranno essere utilizzati anche strumenti open source e LLM per analisi, scrittura e revisione di requisiti, test e documentazione
Orario di ricevimento
Consulta il sito web di Paolo Ciancarini
Consulta il sito web di Giancarlo Succi
SDGs
L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.