# Ingegneria del Software
*[Aggiornamento: 22/09/2019: Pubblicati i risultati e la soluzione del VI appello scritto (calendario del corso).]*
**ATTENZIONE: Gli studenti che abbiano ottenuto un voto finale devono contattare direttamente il prof. Vardanega per la sua registrazione.**
## 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
Il calendario del corso può essere visionato al seguente collegamento esterno: Calendario Ingegneria del Software, II semestre.
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.unipd.it** entro le 17:00 del giorno prima della data del colloquio. L'account Google che
verrà utilizzato per la connessione Hangouts è **swe.baselines [at] gmail.com**.
Di seguito si riporta il calendario relativo alle _Technology Baseline_: Calendario prenotazioni
Di seguito si riporta il calendario relativo alle _Product Baseline_: Calendario prenotazioni
## 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.