90106 - INGEGNERIA DEL SOFTWARE (9 CFU)

Anno Accademico 2026/2027

  • 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)

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.

  1. Produzione e natura del software, ruolo del software nell’industria e nei servizi.

  2. Ciclo di vita del software e attività di sviluppo: requisiti, progettazione, codifica, test, rilascio e manutenzione.

  3. Processi di sviluppo e modelli di processo, con focus sui metodi agili e sul lavoro iterativo.

  4. Scrum: ruoli, eventi, artefatti e dinamiche di team.

  5. Requisiti software: raccolta, analisi, specifica e gestione del cambiamento, anche con supporto di LLM per sintesi e riformulazione.

  6. User stories, product backlog, prioritizzazione e Definition of Done, con attenzione all’uso di LLM per brainstorming e revisione dei requisiti.

  7. Product Owner, stakeholder e gestione del valore di prodotto.

  8. 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

Istruzione di qualità Imprese innovazione e infrastrutture

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.