- Area di Scienze
- Corso di Laurea Magistrale
- Informatica [F1802Q - F1801Q]
- Insegnamenti
- A.A. 2026-2027
- 1° anno
- Processo e Sviluppo del Software
- Introduzione
Syllabus del corso
Obiettivi
Conoscenza e capacità di comprensione (DdD 1): gestire processi con DevOps, gestire i rischi di un progetto software, conoscere techniche informali, semi-formali e formali di analisi e specifica dei requisiti, sviluppare software agile.
Conoscenza e capacità di comprensione applicate (DdD 2): Realizzare pipeline di automazione, elicitare i requisiti di un progetto software, scrivere codice Clean, analizzare i rischi di un progetto.
Contenuti sintetici
L'insegnamento presenta metodi, tecniche e tecnologie per la gestione di progetti complessi. In particolare, l'insegnamento prevede lo studio dei processi di sviluppo agili e DevOps, la realizzazione di pipeline di CI/CD, e l’analisi dei rischi. Il corso prevede inoltro lo studio di tecniche di analisi e specifica dei requisiti.
Programma esteso
Processi di sviluppo agili (principi generali, Extreme Programming, Scrum) e DevOps. Costruzione di pipeline ci CI/CD.
Gestione di Progetto: analisi dei rischi, maturità dei modelli (CMMI)
Ingegnerizzazione dei Requisiti: introduzione, comprensione ed elicitazione dei requisiti, valutazione dei requisiti, specifica e documentazione dei requisiti (linguaggio naturale, diagrammi, metodi formali), controllo qualità dei requisiti, evoluzione dei requisiti.
Sviluppo Clean Code e automazione.
Prerequisiti
Conoscenza elementare dei processi di sviluppo software. Conoscenza di un linguaggio di programmazione.
Modalità didattica
Lezione, esercitazione, test autovalutazione e materiale e-Learning. La lingua di erogazione del corso è l'Italiano.
Le lezioni in classe prevedono una modalità erogative e interattiva. Le attività di studio in piattaforma prevedono anche essere la modalità erogative e interattiva.
Materiale didattico
Libri di testo (selezione di capitoli)
Requirements Engineering, Axel van Lamsweerde, Wiley, 2009.
Clean Code: A Handbook of Agile Software Craftsmanship, Robert C. Martin, 2025.
Risorse online e articoli caricati in piattaforma.
Esercizi di autovalutazione.
Periodo di erogazione dell'insegnamento
1° semestre
Modalità di verifica del profitto e valutazione
Due opzioni disponibili:
- esercizi + colloquio: gli studenti che lavorano durante l'erogazione del corso possono superare l’esame facendo delle consegne in itinere che sono poi discusse individualmente.
- esame scritto + orale: altrimenti gli studenti possono superare l’esame svolgendo una prova scritta e una prova orale.
Orario di ricevimento
Su appuntamento.
Aims
Knowledge and understanding (DdD 1): manage DevOps processes; handle the risks of a software project; understand informal, semi‑formal, and formal techniques for requirements analysis and specification; develop software following agile principles.
Applied knowledge and understanding (DdD 2): build automation pipelines; elicit the requirements of a software project; write Clean Code; analyze the risks associated with a project.
Contents
The course describes methods, techniques and technologies for managing complex software projects. In particular, the course covers the topic of agile software processes, DevOps, pipeline development, and risk analysis. Moreover, the course covers the analysis and specification of software requirements.
Detailed program
Agile software processes (basic principles, Extreme Programming, Scrum) and DevOps. CI/CD pipelines.
Process management: project cost estimation, risk analysis, capability maturity model (CMMI)
Requirements engineering: introduction, domain understanding and requirements elicitation, requirements evaluation, requirements specification and documentation (natural language, diagrammatic notations, formal specifications), requirements quality assurance, requirements evolution.
Software development according with Clean Code and software automation.
Prerequisites
Basic knowledge of software development processes. Knowledge of a programming language.
Teaching form
Lectures, exercises, self-assessment tests and e-learning material. The course is taught in Italian.
The in-class lectures follow the "modalità erogativa" and "modalità interattiva" modes. The activities performed on the elearning platform also follow both modes.
Textbook and teaching resource
Textboooks (selected chapters)
Requirements Engineering, Axel van Lamsweerde, Wiley, 2009.
Clean Code: A Handbook of Agile Software Craftsmanship, Robert C. Martin, 2025.
Online resources and articles available in the platform.
Self-assessment tests.
Semester
First semester
Assessment method
Two options available:
- assignments + oral discussion: the students who are active during the course can pass the exam by producing assignments that are discussed individually
- written exam + oral assessment: otherwise, the students can pass the course by taking a written exam followed by an oral assessment.
Office hours
On appointment.
Scheda del corso
Staff
-
Leonardo Mariani