# Ingegneria del Software
*[Aggiornamento: 21/09/2018: Pubblicati i risultati del VI. Pubblicato l'aggiornamento delle valutazioni finali.]*
## Presentazione del corso
### Obiettivi formativi
L'insegnamento di Ingegneria del Software si sviluppa su due semestri, collocando la maggior parte della didattica d'aula all'interno del I semestre, e la parte prevalente delle attività pratiche nel II semestre.
L'insegnamento si propone di fornire allo studente gli strumenti metodologici per e l'opportunità di sviluppare con successo un impegnativo **progetto didattico di sviluppo software** da svolgersi in gruppo, secondo canoni rigorosi di metodo di conduzione e di gestione del rapporto cliente-fornitore.
L'insegnamento si concentra sull'illustrazione di strumenti intellettuali per comprendere e sistematizzare l'insieme di conoscenze essenziali della disciplina detta Software Engineering. A tal fine, il corso illustra ciascuna delle aree di conoscenza rilevanti nell'ambito, correlandovi le regole metodologiche che gli studenti dovranno seguire nello svolgimento del progetto didattico, la cui realizzazione effettiva avverrà, a partire dalla seconda metà di novembre, per poi proseguire nel II semestre.
Da quest'anno, utilizzeremo un approccio "Agile" allo sviluppo del prodotto software, lasciando immutate le esigenze di documentazione correlata con la gestione dell'avanzamento di progetto e le verifiche di qualità.
Lo sviluppo dell'architettura software del prodotto procederà attraverso due momenti propedeutici all'ammissione alle corrispondenti revisioni di avanzamento (RP e RQ rispettivamente), e si svolgeranno attraverso colloqui dedicati gruppi - docente.
- **Technology Baseline**:
Selezione delle tecnologie, framework e librerie tramite _Proof of Concept_ (l'abbozzo di un dimostratore funzionante, che evidenzi come la tecnologia selezionata possa servire efficacemente allo sviluppo del prodotto atteso). Il PoC deve essere accedibile su GitHub.
- **Product Baseline**:
Baseline architetturale, coerente con quanto mostrato in _Technology Baseline_, viene presentata tramite diagrammi delle classi e di sequenza. L'analisi è comprensiva di design pattern
contestualizzati all'architettura.
### Propedeuticità obbligatorie strette
Programmazione a Oggetti, Basi di Dati
### Materiale didattico
Il materiale didattico presentato durante le lezioni sarà progressivamente pubblicato, in formato elettronico, tramite collegamento alla lezione corrispondente.
Sono altresì consigliati i seguenti testi:
+ [Software Engineering (9th edition)](http://www.pearsonhighered.com/educator/product/Software-Engineering/9780137035151.page), Ian Sommerville, Pearson Education | Addison-Wesley
+ [Design Patterns](http://www.pearsoned.co.uk/bookshop/detail.asp?item=171742), E. Gamma, R. Helm, R. Johnson, J. Vlissides, Pearson Education | Addison-Wesley
## Calendario delle lezioni e degli appelli di esame
Segue il calendario delle lezioni del corso, delle revisioni e degli appelli d'esame.
| Data | Orario | Docente | Tema | Slides |
| :---: | :----: | :---: | ---- |
| 26 feb. | 08:30 - 10:15 | Cardin | Errori comuni revisione dei requisiti | [pdf](sweb/2018/Esercitazione%20-%20Errori%20comuni%20RR_4x4.pdf) |
| 27 feb. | 08:30 - 10:15 | Vardanega | Incontro con i gruppi (nuovi e già costituiti) | [pdf](sweb/2018/IG.pdf) |
| 27 feb. | -- | Cardin | Inizio colloqui per _Technology Baseline_ | |
| 02 mar. | 14:30 | Vardanega | Formazione gruppi II lotto (aula **1C150**) | |
| 06 mar. | 08:45 - 10:30 | [Kiratech](https://www.kiratech.it/) | Architetture a microservizi, container, DevOps workflow | [pdf](sweb/2018/DevOps_workshop_UniPD.pdf) |
| 12 mar. | 08:30 - 10:15 | Cardin | Stili architetturali | [pdf](sweb/2018/Software%20Architecture%20Patterns_4x4.pdf) |
| 12 mar. | -- | Cardin | Termine colloqui per _Technology Baseline_ | |
| 12 mar. | 17:00 | -- | Scadenza presentazione materiale ingresso RP | |
| 13 mar. | 08:45 - 10:30 | Spindox | [Essere digital dev oggi](sweb/2018/SPINDOX_13%20maggio%202018.jpg) | |
| 19 mar. | 08:30 | Cardin / Vardanega| Revisione di progettazione | |
| -- | -- | -- | [Esito revisione di avanzamento](http://www.math.unipd.it/~tullio/IS-1/2017/Progetto/RP.html) (revisione di progettazione) | |
| 20 mar. | 08:45 - 10:30 | SyncLab | TDD in ambiente Enterprise | |
| 22 mar. | 12:30 - 14:15 | Vardanega | Misurazione del software (**1C150**) | [pdf](sweb/2018/MI.pdf) |
| 26 mar. | 08:30 - 10:15 | Cardin | Principi di programmazione SOLID | [pdf](sweb/2018/SOLID%20Principles%20of%20Object-Oriented%20Design_4x4.pdf) |
| 27 mar. | 08:30 - 10:15 | Cardin | Esercitazione in preparazione dell'esame (scritto) I | [pdf](sweb/2018/Esercitazione%20-%20Preparazione%20Esame_4x4.pdf) |
| 27 mar. | -- | Cardin | Inizio colloqui per _Product Baseline_ | |
| 09 apr. | 08:30 - 10:15 | Cardin | Esercitazione in preparazione dell'esame (scritto) II | [pdf](sweb/2018/Esercitazione%20-%20Preparazione%20Esame%202_4x4.pdf) |
| 10 apr. | 10:30 - 18:00 | -- | [STAGE-IT 2018, Padova Fiere](sweb/2018/STAGE-IT%202018%20Programma.pdf). **È richiesta la registrazione all'evento sul portale SIAGAS, caricando il proprio _curriculum vitae_ in formato PDF** | |
| 11 apr. | -- | Cardin | Termine colloqui per _Product Baseline_ | |
| 13 apr. | 17:00 | -- | Scadenza presentazione materiale ingresso RR | |
| 16 apr. | 08:30 - 10:15 | Cardin | Esercitazione in preparazione dell'esame (scritto) III (esercizi su appelli A.A. 2017) | |
| 16 apr. | 17:00 | -- | Scadenza presentazione materiale ingresso revisione di avanzamento (RP, RQ) | |
| 23 apr. | 08:30 - 13:30 | Cardin / Vardanega | Revisione di avanzamento (aula **1C150**) | |
| 23 apr. | 14:30 - 18:30 | -- | I prova scritta individuale (aula **1AD100**) | |
| -- | -- | -- | [Esito revisione di avanzamento](http://www.math.unipd.it/~tullio/IS-1/2017/Progetto/RR.html) (revisione dei requisiti) | |
| -- | -- | -- | [Esito revisione di avanzamento](http://www.math.unipd.it/~tullio/IS-1/2017/Progetto/RP.html) (revisione di progettazione) | |
| -- | -- | -- | [Esito revisione di avanzamento](http://www.math.unipd.it/~tullio/IS-1/2017/Progetto/RQ.html) (revisione di qualifica) | |
| 02 mag. | -- | Cardin | Inizio colloqui per _Technology / Product Baseline_ | |
| -- | -- | -- | [Risultati I prova scritta individuale](sweb/2018/esami/IS%20scritto%2020180423%20Risultati.pdf) | |
| -- | -- | -- | [Soluzione I prova scritta individuale](sweb/2018/esami/Soluzioni_Appello_2018-04-23.pdf) | |
| 07 mag. | 17:00 | -- | Scadenza presentazione materiale ingresso revisione di avanzamento (RP, RQ) | |
| 09 mag. | 16:30 | -- | Visione compiti I prova scritta individuale (aula **1A150**) | |
| 11 mag. | -- | Cardin | Termine colloqui per _Technology / Product Baseline_ | |
| 14 mag. | tbd | -- | Revisione di avanzamento (RQ, RP) e II prova scritta individuale | |
| -- | -- | -- | [Risultati Revisione di Accettazione](sweb/2018/Valutazione%20Finale%202017-18.pdf) |
| -- | -- | -- | [Esito revisione di avanzamento](http://www.math.unipd.it/~tullio/IS-1/2017/Progetto/RP.html) (revisione di progettazione) | |
| -- | -- | -- | [Esito revisione di avanzamento](http://www.math.unipd.it/~tullio/IS-1/2017/Progetto/RQ.html) (revisione di qualifica) | |
| -- | -- | -- | [Risultati II prova scritta individuale](sweb/2018/esami/IS%20scritto%2020180514%20Risultati.pdf) | |
| -- | -- | -- | [Soluzione II prova scritta individuale](sweb/2018/esami/Soluzioni_Appello_2018-05-14.pdf) | |
| -- | -- | -- | [Risultati Revisione di Accettazione (aggiornamento)](sweb/2018/Valutazione%20Finale%202017-18.pdf) |
| 01 giu. | 12:30 - 13:30 | -- | Visione e correzione compiti II prova scritta individuale (aula **2BC45**) | |
| 08 giu. | 17:00 | -- | Scadenza presentazione materiale ingresso revisione di avanzamento (RP, RQ) | |
| 15 giu. | tbd | -- | Revisione di avanzamento (RA, RQ, RP) e III prova scritta individuale | |
| -- | -- | -- | [Risultati Revisione di Accettazione](sweb/2018/Valutazione%20Finale%202017-18.pdf) |
| -- | -- | -- | [Esito revisione di avanzamento](http://www.math.unipd.it/~tullio/IS-1/2017/Progetto/RP.html) (revisione di progettazione) | |
| -- | -- | -- | [Esito revisione di avanzamento](http://www.math.unipd.it/~tullio/IS-1/2017/Progetto/RQ.html) (revisione di qualifica) | |
| -- | -- | -- | [Risultati III prova scritta individuale](sweb/2018/esami/IS%20scritto%2020180615%20Risultati.pdf) | |
| -- | -- | -- | [Soluzione III prova scritta individuale](sweb/2018/esami/Soluzioni_Appello_2018-06-15.pdf) Per chiarimenti e/o correzioni contattare direttamente i docenti. | |
| 13 lug. | 17:00 | -- | Scadenza presentazione materiale ingresso revisione di avanzamento (RP, RQ) | |
| 20 lug. | 08:30 - 13:00 | -- | Revisione di avanzamento (RA, RQ, RP) (aula **1C150**) | |
| 20 lug. | 14:30 - 18:00 | -- | IV prova scritta individuale (aula **1C150**) | |
| -- | -- | -- | [Esito revisione di avanzamento](http://www.math.unipd.it/~tullio/IS-1/2017/Progetto/RQ.html) (revisione di qualifica) | |
| -- | -- | -- | [Risultati Revisione di Accettazione (aggiornamento)](sweb/2018/Valutazione%20Finale%202017-18.pdf) |
| -- | -- | -- | [Risultati IV prova scritta individuale](sweb/2018/esami/IS%20scritto%2020180720%20Risultati.pdf) | |
| -- | -- | -- | [Soluzione IV prova scritta individuale](sweb/2018/esami/Soluzioni_Appello_2018-07-20.pdf) Per chiarimenti e/o correzioni contattare direttamente i docenti. | |
| 17 ago. | 17:00 | -- | Scadenza presentazione materiale ingresso revisione di avanzamento (RP, RQ) | |
| 24 ago. | tbd | -- | Revisione di avanzamento (RA, RQ) e V prova scritta individuale | |
| -- | -- | -- | [Esito revisione di avanzamento](http://www.math.unipd.it/~tullio/IS-1/2017/Progetto/RQ.html) (revisione di qualifica) | |
| -- | -- | -- | [Soluzione V prova scritta individuale](sweb/2018/esami/Soluzioni_Appello_2018-08-24.pdf) | |
| -- | -- | -- | [Risultati V prova scritta individuale](sweb/2018/esami/IS%20scritto%2020180824%20Risultati.pdf) | |
| -- | -- | -- | [Risultati Revisione di Accettazione (aggiornamento)](sweb/2018/Valutazione%20Finale%202017-18.pdf) |
| 07 set. | 13:00 - 14:00 | -- | Visione e correzione compiti V prova scritta individuale (aula **1BC45**) | |
| 09 set. | -- | -- | Per appuntamento: consegna materiale ingresso RA | |
| 10 set. | tbd | -- | RA e VI prova scritta individuale | |
| -- | -- | -- | [Risultati VI prova scritta individuale](sweb/2018/esami/IS%20scritto%2020180910%20Risultati.pdf) | |
| -- | -- | -- | [Risultati Revisione di Accettazione (finale)](sweb/2018/Valutazione%20Finale%202017-18.pdf) |
Le lezioni indicate in calendario si terranno nelle aule 1C/150 con l'orario e la collocazione seguenti:
+ lunedì, 08:30-10:15, aula 1C/150
+ martedì, 08:30-10:15, aula 1C/150
Le consegne in ingresso alla RA si effettuano, per appuntamento con il professor Vardanega, il giorno prima della data di revisione.
### Colloqui remoti
I colloqui remoti avverranno utilizzando Google Hangout, in finestre temporali giornaliere che vanno dalle 12:45 alle 13:45, in modalità _first-come-first-served_. I gruppi
possono prenotare il colloqui scrivendo a **rcardin [at] math.unipt.it** entro le 17:00 del giorno prima della data del colloquio. L'account Google che
verrà utilizzato per la connessione Hangout è **swe.baselines [at] gmail.com**.
Di seguito si riporta il calendario relativo alle _Technology Baseline_: [Calendario prenotazioni](https://docs.google.com/spreadsheets/d/1F_eDPre28Z8mcElS45ZUghdA7avrudwwgqPTFNdp7Yc/edit?usp=sharing)
Di seguito si riporta il calendario relativo alle _Product Baseline_: [Calendario prenotazioni](https://docs.google.com/spreadsheets/d/1V9C6_7foi8jSdtdDtpBnAMLeLNk_o_y8KssX7r3Y8ms/edit?usp=sharing)
## Calendario degli appelli d'esame
Liste di iscrizione all'esame (del quale sono previsti 5 appelli, calendarizzati tra la fine del mod. B e la sessione di recupero estivo) verranno pubblicate sul sistema [UniWeb](https://uniweb.unipd.it/Home.do) nelle due settimane precedenti l'appello corrispondente.