Course Syllabus
Obiettivi
Imparare a gestire progetti complessi utilizzando metodi agili e DevOps,
Imparare ad analizzare rischi e costi di un progetto software,
Imparare ad utilizzare tecniche informali, semi-formali e formali di analisi e specifica dei requisiti,
Imparare a progettare e sviluppare applicazioni complesse.
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.
Design patterns per applicazioni enterprise.
Prerequisiti
Conoscenza elementare di Java, SQL, e delle tecnologie Web (HTML, http, etc.)
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.
Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2002.
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 + esame scritto: gli studenti che lavorano durante l'erogazione del corso possono superare l’esame facendo delle consegne in itinere (una delle consegna è sviluppata e discussa individualmente).
- esame scritto + colloquio orale: altrimenti gli studenti possono superare l’esame svolgendo una prova scritta e una prova orale.
Orario di ricevimento
Su appuntamento.
Aims
Learn how to manage complex software projects using agile methods and DevOps,
Learn how to analyze project risks and costs,
Learn how to use formal, semi-formal and informal techniques for the analysis and specification of software requirements,
Learn how to design and develop complex software applications.
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.
Design patterns for enterprise applications.
Prerequisites
Basic knowledge of Java, SQL, and Web technologies (e.g., HTML, http, etc.)
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.
Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2002.
Online resources and articles available in the platform.
Self-assessment tests.
Semester
First semester
Assessment method
Two options available:- assignments + written exams: the students who are active during the course can pass the exam by producing assignments (one assignment is also developed and 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.