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 utilizzando framework Java.
Contenuti sintetici
Il corso presenta metodi, tecniche e tecnologie per la gestione di progetti complessi. Il corso si compone di tre parti. La prima parte è dedicata ai processi di sviluppo agili e DevOps, alla stima dei costi e all’analisi dei rischi. La seconda parte è dedicata all’analisi e alla specifica dei requisiti. La terza parte è dedicata al progetto e sviluppo di applicazioni usando framework Java.
Programma esteso
Processi di sviluppo agili (principi generali, Extreme Programming, Scrum) e DevOps.
Gestione di Progetto: stima dei costi, 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.
Progetto e Sviluppo: design patterns per applicazioni enterprise; framework MVC (Spring); JPA - Java Persistence API, EJB 3.0, sviluppo di applicazioni J2EE
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.
Nel periodo di emergenza Covid-19 le lezioni si svolgeranno online con modalità mista (registrate e sincrone).
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.
Enterprise JavaBeans 3.0, O’Reilly Media, Richard Monson-Haefel, Bill Burke, 2006.
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 e superando infine una prova scritta.
- esame scritto + colloquio orale: altrimenti gli studenti possono superare l’esame svolgendo una prova scritta e una prova orale.
Nel periodo di emergenza Covid-19 i colloqui orali si svolgeranno online.
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 using Java frameworks.
Contents
The course describes methods, techniques and technologies for managing complex software projects. The course is organized in three parts. The first part is dedicated to agile software processes, DevOps, cost estimation and risk analysis. The second part is dedicated to the analysis and specification of software requirements. The third part is dedicated to the design and development of software applications using Java frameworks.
Detailed program
Agile software processes (basic principles, Extreme Programming, Scrum) and DevOps.
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 and development: design patterns for enterprise applications; framework MVC (Spring); JPA - Java Persistence API EJB 3.0, development of J2EE 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.
*During covid-19 emergency, the lectures will be given online, both wth recorded lectures and synchronous meetings.
Textbook and teaching resource
Textboooks (selected chapters)
Requirements Engineering, Axel van Lamsweerde, Wiley, 2009.
Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2002.
Enterprise JavaBeans 3.0, O’Reilly Media, Richard Monson-Haefel, Bill Burke, 2006.
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 in addition to taking a written exam
- written exam + oral assessment: otherwise, the students can pass the course by taking a written exam followed by an oral assessment.
During COVID-19 emergency, the oral exams will be taken online.
Office hours
On appointment.