- *
LMS - Linguaggi di Modellazione del Software
Concetti di: progetto, attività, risorsa, task, workproduct, sistema, modello, documento, obiettivi (goal), requisiti, vincoli, notazioni, metodi e metodologie. Le fasi principali dello sviluppo: raccolta requisiti, analisi dei requisiti, progetto di sistema, progetto esecutivo o degli oggetti, implementazione, gestione del progetto, testing, ciclo di vita del software. Introduzione all'UML, diagrammi dei casi d'uso, diagrammi delle classi, diagrammi di sequenza e collaborazione, diagrammi di stato, diagrammi di attività, diagrammi di dislocazione, organizzazione dei diagrammi, estensione dei diagrammi, concetti di sistema, modello e vista. Modellazione object-oriented.
- *
AR - Analisi dei Requisiti
Introduzione. Modelli di analisi: funzionale, degli oggetti, dinamico. Concetti di analisi: oggetti di tipo entità, di confine e di controllo. Associazioni multiple (uno a uno, uno a molti, molti a molti). La relazione di generalizzazione. Attività di analisi: dai casi d'uso agli oggetti, identificazione degli oggetti entità, identificazione degli oggetti di confine, identificazione degli oggetti di controllo, modellazione delle interazioni, identificazione delle associazioni e degli attributi, modellazione del comportamento degli oggetti. Diagramma di interconnessione delle attività di analisi
- *
ASW - Architetture Software
Introduzione. Concetti della progettazione di sistema: sottosistemi e classi, servizi e interfacce dei sottosistemi, accoppiamento e coerenza, livelli e partizioni, architettura software: client-server peer to peer, pipe and filter. Attività della progettazione di sistema: identificazione degli obiettivi di progetto (criteri di performance, affidabilità, costo, manutenzione, utente finale). Identificazione dei sottosistemi. La mappatura dei sottosistemi su processori e componenti: la selezione di una configurazione hardware e una piattaforma, l'allocazione degli oggetti e sottosistemi sui nodi. La definizione dei depositi di dati (file, DB relazionali, DB ad oggetti). La definizione dal controllo l'accesso. La progettazione del flusso di controllo: procedure-driven, event-driven, threads. La progettazione delle condizioni di confine. La documentazione della progettazione di sistema.
- *
PSC - Progettazione del Software e Codifica
Introduzione, concetti della progettazione del modello ad oggetti. Attività della progettazione del modello oggetti; oggetti d'analisi e oggetti della soluzione; Tipi, signature, visibilità. Contratti: invarianti, pre-condizioni, post-condizioni; Object Constraint Language. Attività della progettazione del modello ad oggetti: identificazione degli attributi e delle operazioni mancanti; specifica di tipi, signature e visibilità; specifica dei vincoli (constraint); specifica delle eccezioni; identificazione e adattamento delle librerie di classi; realizzazione delle associazioni (uno a uno unidirezionale e bidirezionale, una molti, molti e molti, associazioni come oggetti separati, associazioni qualificate). Incrementare il riuso. Documentazione del progetto del modello ad oggetti.
- *
PSS - Processi di Sviluppo del Software
I paradigmi di progettazione. Introduzione. Le Macro fasi della produzione del sw. I principali paradigmi dell'ingegneria del software (cascata, prototipale, incrementale, spirale). Le qualità del sw. I processi di progettazione del software. Unified Process. I processi agili. Project Management Elementi fondamentali del project management. Caratteristiche fondamentali del progetto. Attività (ordinarie, di riepilogo, cardine) . Struttura delle attività . Relazioni tra attività. Le risorse (il calendario, i costi). I costi fissi del progetto. Le relazioni di progetto. La gestione del progetto. Il progetto iniziale. Il progetto con previsioni. Il progetto con variazioni.
- *
TVV - Testing, Verifica e Validazione
Introduzione; tecniche di controllo della qualità; tecniche per evitare guasti; tecniche per la scoperta dei guasti tecniche per tollerare i guasti. Concetti di test: componente, guasto, errore, malfunzionamento,test case, test stub/driver, correzione. Attività di testing: ispezione dei componenti; unit testing (equivalence testing, boundary testing, path testing , state-based testing); test di integrazione: strategie del test di integrazione (big bang, bottom-up, top-down, sandwich, modified sandwich). Test di sistema: test funzionale, test di performance, test pilota (alpha test, beta test), test di accettazione e test di installazione. Pianificazione del test; documentazione del test.