Introduzione a UML
Transcript
Introduzione a UML
PROGETTAZIONE DEL SOFTWARE EMILIANO CASALICCHIO DIPARTIMENTO DI INFORMATICA E SISTEMISTICA SAPIENZA UNIVERSITÀ DI ROMA – SEDE DI RIETI HTTP://WWW.CE.UNIROMA2.IT/COURSES/PSW UNIFIED MODELING LANGUAGE •! •! •! •! •! Cos’è UML Linguaggi di modellazione formali e informali Livelli d’uso di UML Viste del modello Panoramica sui diagrammi –! –! –! –! –! –! Note e Stereotipi Use Case Activity Diagram State Machine Diagram Class/Object Diagram Sequence Diagram E.Casalicchio -- Progettazione del Software a.a. 2009/2010 2 LA STORIA DI UML •! UML sta per Unified Modeling Language, perché il progetto UML nasce nel 1994 come unificazione di: –! Booch –! Rumbaugh: OMT (Object Medeling Technique) –! Jacobson: OOSE (Object-Oriented Software Engineering) •! Storia –! –! –! –! –! 1995: Versione 0.8 (Booch, Rumbaugh) 1996: Versione 0.9 (Booch, Rumbaugh, Jacbson) Versione 1.0 (BRJ + Digital, IBM, HP, ...) 1999, 2004: Versione 1,3, 1.4, 1.5, UML si diffonde universalmente 2005: Versione 2.0, nuova versione (estende la versione 1.5) •! Riferimento: –! G. Booch, J. Rumbaugh, I. Jacobson, “The unified modeling language user guide”, Addison Wesley, 1999. (2° ed. 2005) –! http://www.uml.org/ E.Casalicchio (basato su materiale di G.De Giacomo) Progettazione del SW – II Parte 3 COS’È UML •! Il linuaggio di modellazione standard per lo sviluppo di software e sistemi •! UML permette di –! Tenere traccia dei componenti di cui si ha bisogno e la loro funzione –! Quali requisiti del cliente soddisfano –! Condividere il lavoro (ossia i vari artefatti progettuali) •! UML permette di modellare un sistema –! Astrarre i dettagli inutili –! Dare una visione semplificata del sistema/problema •! Un linguaggio di modellazione formale permette di essere “precisi” come con un linguaggio di programmazine •! “precisione”=machine-readability, intrepretability, executability, and transformation E.Casalicchio -- Progettazione del Software a.a. 2009/2010 4 LINGUAGGIO DI MODELLAZIONE •! Notazione + Semantica •! Notazione = elementi descrittivi quali –! –! –! –! –! –! Pseudo-codice Codice Figure Diagrammi Descrizione testuale … •! Semantica = descrizione del significato degli elementi descrittivi •! Perche’ UML? Ha 6 vantagi E.Casalicchio -- Progettazione del Software a.a. 2009/2010 5 VANTAGGI DI UML •! •! •! •! •! •! E’ un linguaggio formale E’ conciso E’ completo E’ Scalabile Costruito sull’esperienza (on lesson learned) E’ standard E.Casalicchio -- Progettazione del Software a.a. 2009/2010 6 ESEMPIO: MODELLAZIONE MEDIANTE CODICE E.Casalicchio -- Progettazione del Software a.a. 2009/2010 7 ESEMPIO: MODELLAZIONE MEDIANTE CODICE •! •! •! •! Nessun dettaglio viene astratto Modella solo l’implementazione del SW Completo e non-ambiguo Non mi da informazioni su –! Come verrà usato il sw –! Chi utilizzarà il software –! Come verrà sviluppato, distribuito e supportato •! Non da una visione globale “the big picture is missing entirely” •! Non mi da strumenti per comunicare, ossia SPIEGARE il software –! Come, le varie componenti interaggiscono e come soddisfano i requisiti? •! Il codice non sempre può essere riutilizzato, un modello può spesso essere riutilizzato E.Casalicchio -- Progettazione del Software a.a. 2009/2010 8 MODELLARE CON LINGUAGGI INFORMALI •! Verbosità, ambiguità e confusione •! Non ci sono regole esatte per la notazione •! Il modelo non può essere trasformato, e.g. non si può generare codice a partire dal modelo E.Casalicchio -- Progettazione del Software a.a. 2009/2010 9 MODELLARE CON LINGUAGGI INFORMALI E.Casalicchio -- Progettazione del Software a.a. 2009/2010 10 MODELLARE CON LINGUAGGI FORMALI •! No-ambiguità, giusto livello di verbosità, no confisione •! Preciso significato attribuito alla notazione •! Un diagramma (composizione di elementi della notazione) descrive una parte del modello ma non tutto •! Possibilità di trasformare il modello, e.g. generare codice E.Casalicchio -- Progettazione del Software a.a. 2009/2010 11 ESEMPIO DI DIAGRAMMA FORMALE: IL CLASS DIAGRAM E.Casalicchio -- Progettazione del Software a.a. 2009/2010 12 FORMALISMO = DISAMBIGUAZIONE E.Casalicchio -- Progettazione del Software a.a. 2009/2010 13 LIVELLI DI UTILIZZO DI UML •! Come una bozza (as a sketch) •! Come una mappa/disegno tecnico (as a blueprint) •! Come un linguaggio di programmazione E.Casalicchio -- Progettazione del Software a.a. 2009/2010 14 KRUCTHEN 4+1 VIEW MODEL •! Vista Logica –! Parti del sistema –! Class, object, state machine, interaction diagram •! Vista di Processo Logical View Use Case View –! Processo nel sistema –! Activity diagram •! Vista Fisica Process View Physical View Development View –! Come il processo “è portato alla vita” –! Deployment diagram •! Vista Use Case –! Funzionalità del sistema viste dal mondo esterno –! Use Case, description, overview diagram E.Casalicchio -- Progettazione del Software a.a. 2009/2010 15 UN’ALTRA CLASSIFICAZIONE DEI DIAGRAMMI UML •! Diagrammi strutturali: –! Diagramma delle classi e degli oggetti (class and object diagram) •! Diagrammi comportamentali: –! Diagramma degli use case (use case diagram), –! Diagramma degli stati e delle transizioni (state/transition diagram), –! Interaction (Sequence e Collaboration diagram), –! Activity diagram •! Diagrammi architetturali: –! Component diagram –! Deployment diagram E.Casalicchio (basato su materiale di G.De Giacomo) Progettazione del SW – II Parte 16 UNIFIED MODELING LANGUAGE •! •! •! •! •! Cos’è UML Linguaggi di modellazione formali e informali Livelli d’uso di UML Viste del modello Panoramica sui diagrammi –! –! –! –! –! –! Note e Stereotipi Use Case Activity Diagram State Machine Diagram Class/Object Diagram Sequence Diagram E.Casalicchio -- Progettazione del Software a.a. 2009/2010 17 NOTE •! Note: commenti addizionali = commenti nel codice E.Casalicchio -- Progettazione del Software a.a. 2009/2010 18 STEREOTIPI •! Sterotype: uso speciale o intento d’uso di un elemento –! applicabile ad ogni elemento E.Casalicchio -- Progettazione del Software a.a. 2009/2010 19 USE CASE DIAGRAM •! Composto da Actors e Use Case •! Funzionalità del sistema viste dal mondo esterno E.Casalicchio -- Progettazione del Software a.a. 2009/2010 20 USE CASE: BOUNDARIES E REFINEMENT (INCLUDE) E.Casalicchio -- Progettazione del Software a.a. 2009/2010 Logical View Process View 21 ACTIVITY DIAGRAM Use Case View Physical View Development View •! come il sistema svolgerà i suoi compiti •! simile ai flow-chart •! modellazione dei business process E.Casalicchio -- Progettazione del Software a.a. 2009/2010 22 ACTIVITY DIAGRAM: ACTIVITY AND ACTIONS E.Casalicchio -- Progettazione del Software a.a. 2009/2010 23 ACTIVITY DIAGRAM: DECISION E.Casalicchio -- Progettazione del Software a.a. 2009/2010 24 ACTIVITY DIAGRAM: DECISION E.Casalicchio -- Progettazione del Software a.a. 2009/2010 25 ACTIVITY DIAGRAM: UML 1.X VS UML 2.0 E.Casalicchio -- Progettazione del Software a.a. 2009/2010 26 ACTIVITY DIAGRAM: FORK AND JOIN E.Casalicchio -- Progettazione del Software a.a. 2009/2010 27 ACTIVITY DIAGRAM: CHIAMATA DI ATTIVITÀ E.Casalicchio -- Progettazione del Software a.a. 2009/2010 28 ACTIVITY DIAGRAM: PASSAGGIO DI OGGETTI, INPUT/ OUTPUT, TRASFORMAZIONI E.Casalicchio -- Progettazione del Software a.a. 2009/2010 29 ACTIVITY DIAGRAM: CAMBIAMENTO DI STATO E.Casalicchio -- Progettazione del Software a.a. 2009/2010 30 ACTIVITY DIAGRAM: SWIMLANE •! Partecipanti differenti (gruppi, ruoli) E.Casalicchio -- Progettazione del Software a.a. 2009/2010 CLASS DIAGRAM •! Il diagramm UML più conosciuto •! descrive i differenti tipi di oggetti presenti nel sistema e le relazioni che intercorrono tra le classi di oggetti. E.Casalicchio -- Progettazione del Software a.a. 2009/2010 31 Logical View Process View Use Case View Physical View Development View 32 CLASS DIAGRAM E.Casalicchio -- Progettazione del Software a.a. 2009/2010 33 CLASS DIAGRAM: ATTRIBUTI E OPERAZIONI E.Casalicchio -- Progettazione del Software a.a. 2009/2010 34 SEQUENCE DIAGRAM •! Come le parti di un sistema interagiscono •! Catturano l’ordine delle interazioni tra le parti E.Casalicchio -- Progettazione del Software a.a. 2009/2010 35 SEQUENCE DIAGRAM E.Casalicchio -- Progettazione del Software a.a. 2009/2010 36 SEQUENCE DIAGRAM E.Casalicchio -- Progettazione del Software a.a. 2009/2010 STATE MACHINE DIAGRAM •! Quando lo stato di un oggetto/sistema è un elemento importante 37 Logical View Process View Use Case View –! real-time, mission critical systems –! Dedicated devices il cui comportamento è Physical View definito dallo stato (ATM) –! First-person shooter games (Doom, Half-life) E.Casalicchio -- Progettazione del Software a.a. 2009/2010 Development View 38 STATE MACHINE DIAGRAM: TRIGGER, GUARDIE E TRANSIZIONI E.Casalicchio -- Progettazione del Software a.a. 2009/2010 39 STATE MACHINE DIAGRAM: TRIGGER, GUARDIE E TRANSIZIONI E.Casalicchio -- Progettazione del Software a.a. 2009/2010 40