| Programma |
Introduzione (0.5 crediti)
Unified Modelling Language Che cos’è UML, una breve storia di UML, caratteristiche generali di UML, la Model Driven architecture, la Struttura di UML.
Unified Process Introduzione a UP, storia di UP, UP e RUP, istanziazione di UP su un progetto, assiomi di UP, iterazioni e flussi di lavoro, struttura di UP, le fasi di UP.
Gestione dei Requisiti (0.5 crediti)
Il flusso di lavoro dei requisiti Introduzione, requisiti del software: meta-modello, definizione dei requisiti, individuazione dei requisiti.
Modellazione dei casi d’uso Introduzione, individuazione degli attori e dei casi d’uso, descrizione di un caso d’uso, mapping dei requisiti, applicazione della modellazione dei casi d’uso, generalizzazione tra attori, generalizzazione tra casi d’uso, estensione e inclusione tra casi d’uso.
Analisi (1.5 crediti)
Il flusso di lavoro dell’analisi Introduzione, il modello di analisi.
Classi e oggetti Cosa sono gli oggetti, notazione UML per gli oggetti, cosa sono le classi, notazione UML per le classi, ambito, creazione e distruzione degli oggetti.
Individuazione delle classi di analisi Analisi di un caso d’uso, cosa sono le classi di analisi, individuazione delle classi, costruzione di una prima bozza di modello di analisi.
Relazioni Cos’è una relazione, cos’è un collegamento, cos’è un’associazione.
Ereditarietà e polimorfismo Generalizzazione, ereditarietà di classe, polimorfismo, esempi di polimorfismo, generalizzazione avanzata.
Package di analisi Che cos’è è un package, package e spazi dei nomi, package annidati, dipendenze tra package, generalizzazione tra package, analisi dell’architettura.
Realizzazione dei casi d’uso Analisi di un caso d’uso, realizzazione dei casi d’uso, interazioni, linee di vita, messaggi, diagrammi di interazione, diagrammi di sequenza, diagrammi di comunicazione.
Diagramma di attività Che cosa sono i diagrammi di attività, i diagrammi di attività e UP, attività, semantica delle attività, partizioni delle attività, nodi azione, nodi controllo, nodi oggetto, pin.
Progettazione (2 crediti)
Il flusso di lavoro della progettazione Introduzione, manufatti della progettazione: il meta-modello, progettazione dell’architettura.
Classi di progettazione Progettazione di una classe, cosa sono le classi di progettazione, anatomia di una classe di progettazione, classi di progettazione ben formate, ereditarietà, template di classe, classi annidate.
Raffinare le relazioni di analisi Relazioni di progettazione, aggregazione e composizione, semantica dell’aggregazione, semantica della composizione, raffinamento delle relazioni di analisi, relazioni reificate, esaminare la composizione con le classi strutturate.
Interfacce e componenti Progettazione di un sottosistema, cos’è un’interfaccia, interfacce richieste e fornite, realizzazione di interfacce ed ereditarietà, porte, interfacce e sviluppo basato sui componenti, cos’è un componente, stereotipi dei componenti, sottosistemi, individuare le interfacce, progettare usando le interfacce, vantaggi e svantaggi delle interfacce.
I Pattern Introduzione ai pattern, pattern architetturali, design pattern e idiomi, il significato dei design pattern, la storia dei design pattern, elementi caratterizzanti dei design pattern, il cluster dei pattern GoF, il pattern architetturale di layering, il design pattern Model-View-Controller, il pattern DAO, il pattern Abstract Factory, il pattern Builder, il pattern Factory Method, il pattern Singleton, il pattern Adapter, il pattern Composite, il pattern Façade, il pattern Proxy, il pattern Command, il pattern Observer, il pattern Strategy, il pattern Template Method.
Progettazione della realizzazione dei casi d’uso Progettazione di un caso d’uso, progettazione della realizzazione di un caso d’uso, diagrammi di interazione di progettazione, modellazione della concorrenza, interazioni a livello di sottosistema, diagrammi di temporizzazione.
Macchine a stati Introduzione alle macchine a stati, le macchine a stati e UP, diagrammi delle macchine a stati, stati, transizioni, eventi, stati compositi, stati della sotto-macchina, comunicazioni tra sotto-macchine, stati con memoria.
Implementazione (0.5 crediti)
Il flusso di lavoro dell’implementazione Introduzione, manufatti dell’implementazione: meta-modello, descrizione del flusso di lavoro dell’implementazione.
Deployment Implementazione dell’architettura, il diagramma di deployment, nodi, manufatti, deployment.
Nozioni di Project Management (0.5 crediti)
Ciclo di vita di un progetto e metodologie di processo La nozione di ciclo di vita, varie tipologie di cicli di vita, valutazione dei rischi, metodologie di processo.
Management, lavoro di squadra e controllo della qualità Management, lavoro di squadra, leadership, controllo della qualità.
Il software come prodotto Premessa, rapporti tra committente e sviluppatore, il mese-uomo, pianificazione delle risorse, costo del software, metriche software, tecniche di stima dei costi del software, diagrammi di Gantt, configuration management.
I Function Point Obiettivi e principi cardine, punto di vista dell’utente, approssimazione e misurazione, il conteggio dei Function Point: approccio generale, individuazione e calcolo dei function type, conteggio delle funzioni dati, conteggio delle funzioni transazionali, Value Adjustment Factor, conteggio relativo ad un progetto di sviluppo, conteggio relativo alla manutenzione evolutiva, conteggio applicativo, analisi di alcuni casi di studio, conteggio a partire da GUI, il conteggio nel paradigma OOP, il conteggio di Web Application, da FP a KSLOC.
Verifica, validazione e test Premessa, revisione di qualità, verifica, validazione, testing, revisioni e ispezione del codice.
Dalla Teoria alla Pratica (0.5 crediti)
Progettazione di un’applicazione Web mediante definizione dell’architettura e mock-up.
|
| Testi docente |
• J. Arlow, I. Neustadt, “UML 2 e Unified Process – Analisi e progettazione Object-Oriented”, Seconda Edizione, McGraw-Hill, 2006. • P. Stevens, R. Pooley, “Usare UML”, Seconda Edizione, Pearson Education, 2008 • C. Larman, “Applicare UML e i pattern”, Pearson Education, 2005 • E. Damiani, M. Madravio, A. Bohm, “UML Pratico”, Seconda Edizione, Pearson Education, 2007. • M. Fowler, “UML distilled”, Terza Edizione, Pearson Education, 2004. • L. Baresi, L. Lavazza, M. Pianciamore, “Dall’idea al codice con UML 2”, Pearson Education, 2006.
Dispense fornite dal docente
|