Programma di Costruzione Del Software:

 

DOCENTI

Prof. Ing. Giovanni Cantone         5CFU

Dott. Ing. Manuel Mastrofini, PhD   3 CFU

Dott. Fabio Armani                        1 CFU

 

OBIETTIVI FORMATOVI E RISULTATI DI APPRENDIMENTO ATTESI

OBIETTIVI FORMATIVI: Tecniche industriali di costruzione di software con sviluppo agile in gruppo ampio e con attività di laboratorio anche distribuito. Metriche software: loro ontologie, sviluppo e impiego. Metodi e strategie per il miglioramento continuo della qualità basato su metriche.

CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Sviluppo e comprensione di progetti software per il web. Metriche per la misura del software. Pianificazione strategica e piano di misure.

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Applicazione di pattern progettuali allo sviluppo di applicazioni software per il web. Metriche per la misura del software. Pianificazione strategica basata su dati.

AUTONOMIA DI GIUDIZIO: Utilità di una metrica e stadio del suo ciclo di vita. Valutazione del grado di realizzazione di obiettivi strategici di qualità. Valutazione di qualità di architetture software. Esperienza con lavoro di gruppo e conseguente resilienza.

 

PREREQUISITI

Basi di dati. Ingegneria del Software I e II (comprensivi di UML, Software patterns, Sofware testing, Elementi di Machine Learning per l’Ingegneria del software). Elementi di architetture web e programmazione web. Sistemi distribuiti.

PROGRAMMA

Il programma del corso include:

  • Evoluzione delle ontologie per la misurazione del software.
  • Ulteriori pattern per la progettazione del software.
  • Richiami di architetture software e linguaggi per il web
  • Tecniche avanzate di storicizzazione dei dati: pattern, tecniche e strumenti
  • Evoluzione dell'approccio Agile per lo sviluppo software: Scrum, Xp, Lean, Scrum scaled
  • Progettazione di back-end: pattern, tecniche e strumenti
  • Progettazione di front-end: pattern, tecniche e strumenti
  • Dalla definizione dei requisiti allo sviluppo di un progetto di taglio industriale con approccio Scrum.

 

 

ARGOMENTI E LORO PESI

  • La misura del software: ontologie e produzione di modelli (33%)
  • Approcci Agile allo sviluppo del software (11%)
  • Costruzione software (56%)
  • Framework per la persistenza: da Hibernate a Spring
  • Architettura e sviluppo di applicazioni web
  • Sviluppo software orientato ai Servizi: da SOAP a RESTfull  
  • Framework per la progettazione e implementazione di Front-end: AngularJS | Angular | ReactJS 
  • Impiego di misure software come componenti funzionali di prodotti software
  • Stack tecnologici a supporto del "Big-data! e relativo impiego
  • Introduzione all'organizzazione e all'impiego di ulteriori tecnologie software: Adobe XD, Git, IntelliJIdea, Slack, Miro, Atlassian Jira, Weka, etc.
  • Sviluppo di un progetto software di tipo industriale basandosi su Scrum e impiegando molte delle metodologie, tecniche e tecnologie erogate in questo e in precedenti corsi. I docenti, oltre a ruoli di Special Domain Expert, svolgeranno ruoli di Sensei, Scrum Coach, Scrum Master e di Product owner. Un istruttore di provenienza industriale sarà l'Esperto di Programmazione di Front-end. Eventuali esperti del dominio di impiego del prodotto fungeranno da consulenti del Product owner e del l'intero team.

MODALITA’ DI VALUTAZIONE

  • Valutazione in itinere
    • Valutazione di progetto
    • Prova di laboratorio
    • Prova orale

DESCRIZIONE DELLE MODALITA’ E DEI CRITERI DI VERIFICA DELL’APPRENDIMENTO

PROVA SCRITTA. l candidato dimostra, in apposito incontro, di conoscere teoria e pratica delle metriche software, come presentate nel corso, e loro impiego in approcci di miglioramento continuo della qualità.

INCONTRI INTERMEDI. Gli studenti vengono organizzati in team di sviluppo di massimo dieci persone. Un tale team incontra in classe, tipicamente con frequenza settimanale, i docenti, eventualmente anche nei ruoli di Scrum di Product-Owner e Scrum-Master. Ciascun membro del team verifica e discute gli incrementi realizzati con i docenti e con gli di ulteriori esperti industriali e di dominio applicativo eventualmente presenti. Il team riceve quindi la specifica degli incrementi da realizzare nel successivo periodo.

INCONTRO FINALE. Codice e documentazione alla mano, i docenti discutono individualmente con ogni studente di argomenti riguardanti tutto lo sviluppo del progetto.

TESTI ADOTTATI

Nessun testo specifico, le trasparenze e tutto il materiale sviluppato durante il corso sono messe a disposizione dello studente anche tramite video registrati nella piattaforma resa disponibile per la didattica dall'Università.

 

BIBLIOGRAFIA DI RIFERIMENTO

  • Trasparenze e altro materiale e link dal corso.
  • Registrazione delle lezioni e degli incontri Scrum.
  • V.R. Basili et al: GQM + Strategies: A Comprehensive Methodology for Aligning Business Strategies with Software Measurement. Fraunhofer IESE, Springer, 2014.
  • Parti di norme iSO su Sw. Measurement.

DESCRIZIONE DELLA MODALITA’ DI SVOLGIMENTO E METODI DIDATTICI ADOTTATI

Una lezione di due ore a settimana è tenuta ex catedra, su tematiche di misure software, da uno solo dei docenti, per un totale di circa trenta ore. Le altre sessanta ore del corso saranno tenute in laboratorio. Almeno dieci ore del corso saranno dedicate all’approccio Agile. Le restanti cinquanta ore saranno dedicate alla progettazione software, salvo alcune altre lezioni su metriche. Delle ore di progettazione, otto saranno dedicate alla progettazione di front-end. La parte di progettazione esecutiva e sviluppo è tenuta sempre in laboratorio da almeno due docenti, nei ruoli di Senser e Product Owner e in quello di Scrum Master, rispettivamente, con in più eventuali istruttori industriali volontari ed esperti di dominio. Un terzo docente, compatibilmente con propri impegni professionali, svolgerà il ruolo di esperto di Scrum Mastering.

Gli studenti partecipano attivamente a un gruppo di lavoro costitituito, secondo Scrum, da massimo dieci membri. Nel caso – non desiderato e non sperato – di affluenza maggiore di quella tipica dei corsi elettivi, si organizzeranno più gruppi Scrum di lavoro. Di regola, la partecipazione degli studenti al gruppo di lavoro è in presenza e le assenze dovranno essere dagli stessi motivate e possibilmente anticipate a un docente. Gli studenti si incontrano autonomemente altre volte a settimana per lo sviluppo dell'incremento loro assegnato. Per la sperimentazione dello sviluppo con team distribuito, alcuni docenti, studenti o istruttori parteciperanno, volta per volta, da remoto. In qualche caso, ciò potrà accadere per tutto il team Scrum.

MODALITA’ DI FREQUENZA

La frequenza in presenza è obbligatoria.

DESCRIZIONE DELLA MODALITA’ DI FREQUENZA

Una volta a settimana in aula. Alcune ore sono altresì dedicate alla descrizione degli approcci Lean e Agile. Per il resto, gli studenti, organizzati in gruppo di sviluppo Agile-Scrum, incontrano in laboratorio almeno due docenti e eventuali istruttori volontari ed esperti di dominio una volta a settimana.

 

MODALITA’ DI VALUTAZIONE

Il voto finale viene assegnato dai docenti a ciascuno degli studenti frequentanti in occasione di incontri formalmente schedulati alla fine del corso.