Anno di corso: 1

Anno di corso: 2

Crediti: 6
Crediti: 6
Crediti: 6
Tipo: A scelta dello studente
Crediti: 12
Tipo: A scelta dello studente
Crediti: 33
Tipo: Lingua/Prova Finale

PROCESSO E SVILUPPO DEL SOFTWARE

Scheda dell'insegnamento

Anno accademico di regolamento: 
2018/2019
Anno di corso: 
1
Anno accademico di erogazione: 
2018/2019
Tipo di attività: 
Obbligatorio
Lingua: 
Italiano
Crediti: 
6
Ciclo: 
Primo Semestre
Ore di attivita' didattica: 
56
Prerequisiti: 

Conoscenza elementare di Java, SQL, e delle tecnologie Web (HTML, http, etc.)

Moduli

Metodi di valutazione

Tipo di esame: 
Orale
Modalita' di verifica dell'apprendimento: 

Diverse opzioni disponibili:

- frequenza delle lezioni + esercizi: gli studenti che frequentano le lezioni possono superare l’esame facendo delle consegne in itinere.

- esercizi + colloquio orale: gli studenti che non frequentano ma producono le consegne in itinere possono superare l’esame svolgendo un colloquio orale a fine corso.

- esame scritto + colloquio orale: in tutti gli altri casi gli studenti possono superare l’esame svolgendo una prova scritta, tipicamente contenente tre esercizi uno per ciascuna parte del corso, e una prova orale.

Valutazione: 
Voto Finale

Obiettivi formativi

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 di ultima generazione.

Contenuti

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 di ultima generazione e tecnologia J2EE.

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 (Struts e JSF); JPA - Java Persistence API

EJB 3.0, sviluppo di applicazioni J2EE

Bibliografia consigliata

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.

Metodi didattici

Lezione, esercitazione, test autovalutazione e materiale e-Learning.