|
Ingegneria
del Software |
Ultimo aggiornamento: 05 marzo
2021, ore 12:05
L'insegnamento di Ingegneria del Software si sviluppa su due semestri, collocando la maggior parte della didattica all'interno del I semestre, e parte delle attività pratiche nel II semestre.
L'insegnamento si propone di fornire agli studenti i
principali strumenti metodologici per affrontare un impegnativo progetto
didattico di sviluppo software da svolgersi
in gruppo, secondo metodi professionali di conduzione e
di gestione del rapporto cliente-fornitore.
L'insegnamento si concentra sull'illustrazione e la sistematizzazione
delle 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 cui gli studenti dovranno conformarsi.
Il progetto didattico si svolgerà secondo il seguente calendario:
In funzione di questo impegno, gli studenti che soddisfano i prerequisiti si costituiranno in gruppi di progetto, secondo un protocollo fissato dal docente in sessione pubblica. I gruppi così formati dovranno poi competere per l'aggiudicazione del capitolato di loro interesse.
L'aggiudicazione di un appalto trasforma i gruppi vincitori dell'appalto in fornitori ufficiali, impegnati a consegnare al docente il prodotto proposto entro i tempi e i costi specificati nella corrispondente offerta tecnico-economica.
Lo svolgimento del progetto didattico verrà accompagnato da specifiche revisioni di avanzamento di progetto, secondo la prassi adottata in diversi standard internazionali.L'accettazione finale del prodotto sviluppato da ciascun gruppo nel progetto didattico soddisferà una delle due condizioni necessarie al superamento dell'esame. L'altra condizione richiede il superamento di una prova scritta individuale, che ciascuno studente potrà sostenere nelle date sopra indicate. Per ogni studente partecipante, la valutazione numerica del progetto didattico varrà il 60% del voto complessivo individuale, determinato dalla media pesata della valutazione conseguita dal proprio gruppo di progetto in ognuna delle tre revisioni di avanzamento, con una quota di ponderazione legata al rapporto tra l'impegno medio atteso e l'impegno effettivo erogato dallo studente. Il rimanente 40% verrà determinato dalla valutazione della prova scritta individuale.
L'intero svolgimento dell'insegnamento Ingegneria del Software ha un "peso" di 13 CFU, ripartiti come segue:
Programmazione a Oggetti, Basi di Dati.
Note esplicative: Il mancato
soddisfacimento della propedeuticità Programmazione a Oggetti (o
Programmazione 2 del V/O) impedisce tassativamente la partecipazione degli
studenti alla prova scritta individuale di IS, il cui superamento è
obbligatorio per il superamento dell'esame.
Possono però partecipare alle attività di progetto gli studenti che, senza
aver superato l'esame di Programmazione a Oggetti (o Programmazione 2), ne
hanno superato una prova scritta.
Il mancato soddisfacimento di tali propedeuticità non consentirà la partecipazione dello studente al progetto didattico.
Il materiale didattico presentato durante le lezioni sarà progressivamente pubblicato, in formato elettronico, tramite collegamento alla lezione corrispondente.
Il principale riferimento bibliografico di supporto al corso è il seguente:
Guide
to the Software Engineering Body of Knowledge
IEEE Computer Society. Software Engineering Coordinating Committee
(V3 2014)
(Le aree di conoscenza corrispondenti agli argomenti
trattati a lezione sono riferite nel calendario delle lezioni)
Sono inoltre consigliati i seguenti testi:
Software Engineering (10th edition)
Ian Sommerville
Pearson Education | Addison-Wesley
Design Patterns
E. Gamma, R. Helm, R. Johnson, J. Vlissides
Pearson Education | Addison-Wesley
Settimana |
Data |
Lezione |
Docente |
Contenuto |
SWEBOK |
Sommerville |
1 |
28 settembre |
T1 |
Vardanega | Introduzione Per approfondire #1: No Silver Bullet. Essence and Accidents of Software Engineering Per approfondire #2: ACM Code of Ethics |
|
§1 |
01 ottobre |
T2 |
Vardanega |
|
|||
02 ottobre |
T3 |
Vardanega |
Processi di ciclo di vita del software Per approfondire #3: Origine, formazione ed evoluzione degli standard di processo Per approfondire #4: Lo standard ISO/IEC 12207:1995 |
§8 | §2 | |
2 | 05 ottobre | T4 | Vardanega |
Continuazione lezione 3 |
||
08 ottobre |
T5 |
Vardanega |
Il ciclo di vita del
software |
|
§3 | |
09 ottobre |
T6 |
Vardanega |
Gestione di progetto |
§7,12 | §22-23 | |
3 |
12 ottobre | FC1 | Vardanega | Flipped classroom
sul tema Amministrazione di progetto Studio autonomo e discussione in aula di strumenti di (1) versionamento, (2) configurazione, (3) pianificazione, (4) coordinamento. Spunti di studio Per approfondire #12: Strumenti di collaborazione |
§6 | §24-25 |
15 ottobre | T7 | Vardanega | Analisi dei requisiti Per approfondire #13: Struttura del documento di specifica dei requisiti secondo IEEE 830-1998 |
§1 | §4 | |
16 ottobre | T8 | Vardanega | ||||
4 |
19 ottobre | E1 | Cardin | UML Diagrammi delle classi Diagrammi dei package |
||
22 ottobre | P1 | Vardanega | Regolamento
del progetto didattico |
|||
22 ottobre (16:30-18:00) |
P2 | Vardanega | Formazione gruppi I lotto | |||
23 ottobre | T9 | Vardanega | Progettazione Per approfondire #14: Fan-in e fan-out Per approfondire #15: Definizioni di architettura software Per approfondire #16: Christopher Alexander sulla teoria dei pattern |
§2-3 | §6-7 | |
5 |
26 ottobre |
E2 | Cardin |
UML Diagrammi di attività Diagrammi di sequenza |
|
|
29 ottobre | T10 | Vardanega | Continuazione lezione T9 | |||
30 ottobre | T11 |
Vardanega |
Continuazione lezione T9 |
|||
6 |
02 novembre | E3 | Cardin | UML Diagrammi dei casi d'uso |
||
05 novembre | P3 |
Vardanega |
Presentazione
dei capitolati d'appalto Regolamento aggiudicazione capitolati Regolamento organigramma |
|||
06 novembre | P4 |
Vardanega |
Preparazione alla FC2 | |||
7 |
09 novembre | - | Cardin | [Lezione annullata] | ||
12 novembre | FC2 | Vardanega | Flipped classroom sul tema documentazione Studio autonomo, presentazione e discussione in aula di soluzioni per la scrittura collaborativa, la verifica, la salvaguardia di alcuni documenti di progetto. Spunti di studio |
|||
12 novembre (17:00-18:00) |
P4 | Sync Lab | Seminario tecnologico: strumenti di apprendimento automatico (ML) | |||
13 novembre | T12 |
Vardanega |
Qualità di prodotto | §10 | §24 | |
8 |
16 novembre | E4 | Cardin | Continuazione
lezione E3 |
||
19 novembre | T13 |
Vardanega |
Qualità di processo Per approfondire #17: Elementi dello standard ISO 9000 Per approfondire #18: Sintesi di ISO IEC 90003:2004 |
|||
19 novembre (12:30-13:30) |
P5 | Zucchetti | Seminario tecnologico: esempi di visualizzazioni multidimensionali | |||
20 novembre | T14 |
Vardanega | Verifica e validazione:
introduzione Per approfondire #19: Martin Fowler sui "test double" Per approfondire #20: Fagan Inspection & Walkthrough |
§5 | ||
9 |
23 novembre | E5 | Cardin | Rivisitazione
dei principi OOP Per approfondire #21: dal blog di R. Cardin |
||
23 novembre (16:30-18:00) |
P6 | Vardanega | Incontro con i gruppi del I lotto | |||
25 novembre (17:00-18:00) |
P7 | Imola Informatica | Seminario tecnologico: Docker, Blockchain | |||
26 novembre | T15 |
Vardanega |
Verifica e validazione: analisi statica | |||
27 novembre | T16 | Vardanega | Verifica e validazione:
analisi dinamica Per approfondire #22: Bertrand Meyer sul testing Per approfondire #23: Effetti indesiderabili del dynamic binding |
§4 |
§8 |
|
10 |
30 novembre |
E6 | Cardin | Dipendenza:
il distruttore dell'OOP Per approfondire #24: dal blog di R.Cardin (parte 1, parte 2) |
||
03 dicembre | T17 | Vardanega | Continuazione lezione T16 | |||
04 dicembre (12:30-13:30) |
P8 | Zero12 |
Seminario tecnologico:
introduzione al servizio AppSync di AWS |
|||
04 dicembre (17:00-18:00) |
P9 | Sanmarco Informatica |
Seminario tecnologico:
uso di Docker in architetture di sistema |
|||
Questionario
anonimo intermedio, dal 30/11/2020 al
18/12/2020 Valutazione della didattica: precondizione alla registrazione del voto finale, dal 06/05/2021 al 17/07/2021 |
||||||
11 |
10 dicembre (11:00-12:30) |
E7 |
Cardin |
Principi di programmazione SOLID | ||
11 dicembre | FC3 | Vardanega | Flipped
classroom sul tema Modelli di sviluppo
avanzati Studio autonomo, presentazione e discussione in aula di modelli di sviluppo agile, e di principi SEMAT |
§3, §16 | ||
12 |
14 dicembre | E8 | Cardin |
Design
pattern creazionali: Singleton, Builder, Abstract Factory |
||
17 dicembre (16:30-18:00) |
P10 | Vardanega | Incontro con i gruppi del I lotto | |||
13 | 21 dicembre | E9 |
Cardin | Design
pattern strutturali: Decorator, Proxy, Facade, Adapter |
||
14 |
07 gennaio | E10 | Cardin | Design
pattern comportamentali: Observer, Template Method, Command, Strategy, Iterator |
||
08 gennaio | T18 | Vardanega | Riepilogo finale e informazioni sulla prova scritta | |||
16 |
14 gennaio | - |
Vardanega | Incontro informativo sugli stage curricolari | ||
|
RR 18 gennaio 2021 |
P11 |
Revisione dei Requisiti
(RR) ore 17:00 di lunedì 11 gennaio
2021
|
|||
Calendario II semestre |
Le lezioni indicate in calendario si terranno nelle aule e con l'orario reperibili con l'app Orari-Unipd.
Il ricevimento studenti si tiene per appuntamento, individuale o di gruppo, in modalità remota.
Le revisioni formali sono bloccanti:
la RR determina l'accesso del gruppo al progetto
didattico; la RA ne sancisce il completamento.
L'ammissione alla RA è condizionata al sostenimento della RQ,
con esito almeno sufficiente.
Le revisioni di progresso non sono bloccanti, ovvero il gruppo potrà continuare il proprio lavoro di progetto, ma un eventuale esito negativo comporterà una penalità di punteggio commisurata alla gravità dell'insufficienza, da scontare nella valutazione finale.
La partecipazione di un gruppo a una revisione di progetto si svolgerà come segue:
L'esame di questo insegnamento è costituito dalla valutazione combinata delle attività di progetto didattico collaborativo, secondo il calendario di revisioni di avanzamento riportato qui, e di una prova scritta comprendente una parte individuale e una collaborativa.
Come riportato qui, la prova scritta prevede 6 appelli, i primi due dei quali tenuti all'interno del II semestre, prima dell'apertura della corrispondente sessione di esami, al fine di facilitare il soddisfacimento dei prerequisiti di attivazione dello stage curricolare. Per questo motivo, l'iscrizione a tali due appelli non potrà avvenire tramite Uniweb, ma attraverso richiesta esplicita al docente.