Nuova ricerca

Giacomo CABRI

Professore Ordinario
Dipartimento di Scienze Fisiche, Informatiche e Matematiche sede ex-Matematica

Insegnamento: Metodologie di sviluppo software

Informatica (Offerta formativa 2020)

Obiettivi formativi

Gli obiettivi dell'insegnamento sono:
- Presentare i modelli di sviluppo del software e i concetti di gestione dei progetti
- Presentare alcuni esempi di metodologie
- Presentare i pattern architetturali
- Presentare i principi di test del software

Prerequisiti

Conoscenza di linguaggi di modellazione del software

Programma del corso

Modelli e metodologie di sviluppo software
* Modello a cascata
* Modello evolutivo
* Modello incrementale
* Modello a spirale
* Esempi di metodologie
Metodologie agili
* Principi e tecniche agili
* Esempi di metodologie agili
Tecniche di stima dei progetti
* COCOMO
* Putnam
* PERT/CPM
Design pattern
* Pattern creazionali
* Pattern strutturali
* Pattern comportamentali

Metodi didattici

Lezioni frontali tramite slide sulla teoria ed esercitazioni in aula di applicazione della teoria.
Gli studenti non frequentanti possono accedere alle slide delle lezioni e al materiale delle esercitazioni.

In base alla evoluzione dell'emergenza sanitaria COVID19 e alle specificita' delle attivita' didattiche verra' valutata l'erogazione anche in presenza.

Testi di riferimento

Dispense a cura del docente.
Libri consigliati:
- C. Ghezzi, D. Mandrioli, M. Jazayeri. Ingegneria del Software (2/Ed.). Pearson Education Italia
- E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns. Pearson
- Eric Freeman, Elisabeth Robson. Head First Design Patterns. O'Reilly Media
- Ian Sommerville. Ingegneria del software. Pearson

Verifica dell'apprendimento

La verifica consisterà in una prova orale atta a verificare la comprensione dei contenuti di tutto il programma svolto e la capacità di applicare le tecniche di stima dei progetti.

La prova potrebbe essere svolta in presenza o a distanza a seconda dell'evoluzione della situazione COVID19.

Risultati attesi

Conoscenza e comprensione
Lo studente conoscerà metodologie e architetture per sviluppare sistemi software.
Lo studente conoscerà le tecniche di stima dei progetti software.

Capacità di applicare conoscenza e comprensione
Lo studente avrà la capacità di applicare metodologie per progettare, sviluppare e testare applicazioni software

Autonomia di giudizio
Lo studente avrà la capacità di giudicare le tecnologie e le metodologie più adatte a ogni contesto, valutando le possibili alternative;

Abilità comunicative
Lo studente avrà la capacità di comunicare le scelte tecnologiche fatte.

Capacità di apprendimento
Lo studente avrà la capacità di:
- valutare la propria preparazione in relazione allo stato dell'arte delle metodologie di sviluppo;
- individuare le competenze mancanti per affrontare il lavoro che gli viene proposto;
- fare formazione continua per colmare le lacune e mantenersi aggiornato;

- sfruttare le fonti appropriate;

- affrontare problemi sempre nuovi con un approccio scientifico e metodologico.