Docente: G. Denaro
Crediti: 6 CFU
Descrizione e Programma del Corso
Prerequisiti: nozioni di base di programmazione, progettazione e
ingegneria del software
Conoscenze e abilità: Il corso affronta i problemi organizzativi, metodologici e tecnologici relativi alla gestione e al compimento di progetti software di grosse dimensioni. Al termine del corso, lo studente avrà maturato, migliorato e sperimentato la propria conoscenza delle problematiche fondamentali dell'ingegneria del software di sistemi complessi. Saranno approfondite le tematiche relative ai possibili modelli di processo per la produzione del
software (modelli a cascata, evolutivi, a spirale, unified process,
open-source, processi agili), alla definizione e gestione dei criteri di
successo e dei rischi di progetto, all'organizzazione delle attività e delle risorse, alla misurazione del software e del processo. Dal punto di vista tecnologico, si approfondiranno inoltre i pattern per il progetto architetturale per la modularità e il riuso nell'ambito di applicazioni enterprise.
Programma
Parte I: La gestione del processo software
- Dimensioni e obiettivi dell'ingegneria del software di sistemi complessi
- Modelli di processo a cascata, evolutivi, "a spirale"
- Attività di pianificazione e monitoraggio
- Milestone fondamentali di un progetto: LCO: Life-Cycle Objectives; LCA: Life-Cycle Architecture; IOC: Initial Operational Capability
- Gestione e uso di prototipi
- Gestione di gruppi di lavoro
Parte II: Metriche e stima dei costi
- Fondamenti di teoria della misura
- Metriche di prodotto e metriche di processo
- COCOMO software cost model
- Maturità dei processi software e Capability Maturità Model (CMM)
Parte III: Progetto architetturale per modularità e riuso
- Analisi e sviluppo basati su componenti
- Pattern di disegno architetturale per applicazioni "enterprise"
- Tecnologie di supporto
Vai al sito Web del corso