# Ingegneria del Software *[Aggiornamento: 29/08/2020: Pubblicati i risultati del V appello scritto (calendario del corso).]* **ATTENZIONE**<br/> Nel correggere le consegne della II prova d'esame, abbiamo rilevato casi evidenti di copiatura, cio&egrave; di consegna identica (identicamente errata) tra studenti diversi, per una delle due prove specificate per svolgimento individuale. Per questa occasione, abbiamo punito con **5 punti di penalizzazione** ogni riscontro di tale violazione delle regole di condotta. Gli studenti oggetto di penalizzazione verranno convocati dai docenti per discutere delle loro posizione. A partire dalla prossima prova d'esame, una eventualmente analoga violazione sar&agrave; sanzionata con l'**annullamento della prova per tutti i partecipanti**. ## 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&agrave; pratiche nel II semestre. L'insegnamento si propone di fornire allo studente gli strumenti metodologici per e l'opportunit&agrave; 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&agrave;, a partire dalla seconda met&agrave; di novembre, per poi proseguire nel II semestre. 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&agrave;. Lo sviluppo dell'architettura software del prodotto proceder&agrave; 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 &egrave; comprensiva di design pattern contestualizzati all'architettura. ### Propedeuticit&agrave; obbligatorie strette Programmazione a Oggetti, Basi di Dati ### Materiale didattico Il materiale didattico presentato durante le lezioni sar&agrave; progressivamente pubblicato, in formato elettronico, tramite collegamento alla lezione corrispondente. Sono altres&igrave; 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: <a href="https://docs.google.com/spreadsheets/d/1Unw2dytEcRLb7WkPpkANpPQUWHaJSxGavhyPSVaoNSg/edit?usp=sharing" target="_blank">Calendario Ingegneria del Software, II semestre</a>. Le lezioni indicate in calendario si terranno nelle aule 1C/150 con l'orario e la collocazione seguenti: + luned&igrave;, 08:30-10:15, aula 1C/150 + marted&igrave;, 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, in modalit&agrave; _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&agrave; utilizzato per la connessione Hangouts &egrave; **swe.baselines [at] gmail.com**. Di seguito si riporta il calendario relativo alle _Technology Baseline_: <a href="https://docs.google.com/spreadsheets/d/1mxQb23NpIFg864rDYVzUz2ET0k483oUbF78Pur-l9kY/edit?usp=sharing" target="_blank">Calendario prenotazioni</a> <br/> Di seguito si riporta il calendario relativo alle _Product Baseline_: <a href="https://docs.google.com/spreadsheets/d/1gCTtF5XGyfxJoif4ZuCy8eaprKIyi5acf3H9ieZVXuc/edit?usp=sharing" target="_blank">Calendario prenotazioni</a> <br/> ## 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.