|
Ingegneria
del Software |
Ultimo aggiornamento: 9 febbraio
2020, ore 12:40
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 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 che gli studenti dovranno seguire nello svolgimento del
progetto didattico, la cui realizzazione effettiva inizierà intorno a fine
novembre, per poi proseguire nel II semestre.
Il progetto didattico si svolgerà secondo il seguente calendario:
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 |
2 |
7 ottobre |
T1 |
Vardanega | Introduzione Per approfondire #1: No Silver Bullet. Essence and Accidents of Software Engineering Per approfondire #2: ACM Code of Ethics |
|
|
10 ottobre |
T2 |
Vardanega |
|
|||
11 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 | |
3 | 14 ottobre | T4 | Vardanega |
Continuazione lezione 3 |
||
17 ottobre |
T5 |
Vardanega |
Il ciclo di vita del software |
|
§3 | |
18 ottobre |
T6 |
Vardanega |
Gestione di progetto |
§7,12 | §19,20 | |
4 |
21 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 | §22 |
24 ottobre | T8 | Vardanega | Analisi dei requisiti Per approfondire #13: Struttura del documento di specifica dei requisiti secondo IEEE 830-1998 (accessibile entro rete Ateneo) |
§1 | §4 | |
25 ottobre | T9 | Vardanega | ||||
5 |
28 ottobre | E1 | Cardin | UML Introduzione Diagrammi delle classi Diagrammi dei package |
||
31 ottobre | T10 | 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 | |
6 |
4 novembre |
E2 | Cardin |
UML Diagrammi di sequenza Diagrammi di attività |
|
|
7 novembre | T11 | Vardanega | Continuazione lezione T10 | |||
8 novembre (8:30-10:15) |
E3 | Cardin |
UML Diagrammi dei casi d'uso |
|||
7 |
11 novembre | E4 | Cardin | Rivisitazione
dei principi OOP Per approfondire #17-18: dal blog di R. Cardin |
||
14 novembre | P1 | Vardanega | Regolamento
del progetto didattico Regolamento aggiudicazione capitolati Regolamento organigramma |
|||
14 novembre (16:30-18:00) |
P2 | Vardanega | Formazione dei gruppi I lotto | |||
15 novembre | P3 |
Vardanega |
Presentazione dei capitolati
d'appalto |
|||
8 |
18 novembre | E5 | Cardin | Dipendenza: il distruttore dell'OOP Per approfondire #19: dal blog di R.Cardin (parte 1, parte 2) |
||
21 novembre | T12 | Vardanega |
Qualità
di prodotto |
§10 | §21 | |
22 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 |
§8 |
||
22 novembre (12:30-13:30) |
P4 | imola informatica |
Approfondimenti tecnologici sul capitolato C5 (Stalker) | |||
9 |
25 novembre | E6 | Cardin | Design pattern strutturali:
Decorator, Proxy, Facade, Adapter |
||
26 novembre (12:30-13:30 1AD100) |
P5 | Zucchetti | Approfondimenti tecnologici sul capitolato C4 (Predire in Grafana) | |||
28 novembre | T13 | Vardanega | Qualità di processo Per approfondire #20: Elementi dello standard ISO 9000 Per approfondire #21: Sintesi di ISO IEC 90003:2004 |
|||
29 novembre | Conferenza
sul tema: metriche di misurazione del software |
|||||
29 novembre (12:30-13:30 1BC50) |
P6 | teal.blue | Approfondimenti tecnologici sul capitolato C3 (NaturalAPI) | |||
10 |
2 dicembre |
E7 | Cardin | Design
pattern creazionali: Singleton, Builder, Abstract Factory |
||
2 dicembre (12:30-13:30) |
P7 | Zero12 | Approfondimenti tecnologici sul capitolato C1 (Autonomous Highlights) | |||
4
dicembre (08:30-10:30) |
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 | ||
6 dicembre | T14 | Vardanega | Verifica e validazione: introduzione Per approfondire #22: Martin Fowler sui "test double" Per approfondire #23: Fagan Inspection & Walkthrough Per approfondire #24: Bertrand Meyer sul testing |
§5 | ||
6
dicembre
(12:00-13:00) |
P8 | Sanmarco Informatica | Approfondimenti tecnologici sul capitolato C6 (ThiReMa) | |||
6
dicembre (15:00-16:00 1BC45) |
P9 | RedBabel | Approfondimenti tecnologici sul capitolato C2 (Etherless) | |||
Questionario
valutazione didattica: restituzione 13 dicembre Valutazione via Uniweb: 7 maggio - 18 luglio 2020 |
||||||
11 |
09 dicembre |
E8 |
Cardin |
Design
pattern comportamentali: Observer, Template Method, Command, Strategy, Iterator |
||
12 dicembre | T15 | Vardanega | Verifica e validazione: analisi statica | |||
13 dicembre | T16 | Vardanega | Verifica e validazione:
analisi dinamica Per approfondire #25: Effetti indesiderabili del dynamic binding |
§4 |
§8 |
|
13 dicembre (16:30-18:00) |
P10 | Vardanega | Incontro con i gruppi del I lotto | |||
12 |
16 dicembre | E9 | Cardin |
Design pattern architetturali: Dependency Injection |
||
20 dicembre (08:30-10:00) |
E10 | Cardin | Recupero lezione E9 |
|||
Domande e risposte - Sul numero di versione - Sul modello di sviluppo incrementale |
||||||
13 |
9 gennaio | T17 |
Vardanega | Continuazione lezione 16 Informazioni sulla prova scritta |
||
14 |
13 gennaio | - |
Vardanega | Incontro informativo sugli stage curricolari | ||
|
RR 21 gennaio 2020 |
P11 |
Revisione dei Requisiti
(RR) ore 17:00 di martedì 14 gennaio
2020
|
|||
Calendario II semestre |
Le lezioni indicate in calendario si terranno nelle aule e con l'orario indicati sul sito del CCS di Informatica.
Il ricevimento studenti si tiene per appuntamento in studio #400 il:
mercoledì 16:30 - 17:30
giovedì 16:30 - 17:30
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:
Liste di iscrizione alle prove scritte individuali verranno
pubblicate sul sistema UniWeb
nelle due settimane precedenti l'appello corrispondente.
Per la partecipazione ai compitini che precedono le prove scritte
"ufficiali", gli studenti dovranno rivolgersi al docente.