Introduzione a UML
Transcript
Introduzione a UML
INTRODUZIONE Ottobre 2014 v1.0 © Renato Conte - UML: INTRODUZIONE - 1 / 25 - Quick Tour • Perché abbiamo bisogno di un modello ? • Modellazione visuale • Che cos’è UML ? • Elementi base © Renato Conte - UML: INTRODUZIONE - 2 / 25 - Perché abbiamo bisogno di un modello? • per fornire una struttura al “problem solving” • per sperimentare ed esplorare più soluzioni • per fornire l’astrazione necessaria per gestire la complessità • per ridurre i tempi e i costi di sviluppo • per gestire il rischio di errori © Renato Conte - UML: INTRODUZIONE - 3 / 25 - Problem solving Generalmente il Problem Solving può essere definito come l'arte di risolvere problemi siano essi di natura personale, interpersonale o delle organizzazioni (aziende, enti, comunità, ecc.), o problemi software (come nel nostro caso), mediante l'utilizzo di tattiche e tecniche, con la massima efficacia (soluzione del problema) ed efficienza (tempo e sforzi impiegati) © Renato Conte - UML: INTRODUZIONE - 4 / 25 - Perché modellare graficamente? • “Graphics reveal data” – Edward Tufte The Visual Display of Quantitative Information, 1983 • “1 bitmap = 1 megaword” – Anonymous visual modeler Dalle slide “Object Modeling with OMG UML Tutorial Series” di Cris Kobryn © Renato Conte - UML: INTRODUZIONE - 5 / 25 - Benefici di una modellazione visuale (grafica) • Cattura il processo aziendale (e non solo) • Migliora la comunicazione (supera le differenze di terminologie e di linguaggi diversi) • Gestisce la complessità (oggetti separati, viste diverse, diversi livelli di astrazione, ...) • Definisce l’architettura • Consente il riuso © Renato Conte - UML: INTRODUZIONE - 6 / 25 - Architettura di un sistema © Renato Conte - UML: INTRODUZIONE - 7 / 25 - • UML (Unified Modeling Language) UML e’ un linguaggio grafico standard per - specificare – visualizzare – costruire – documentare gli artefatti (artifact) dei sistemi software © Renato Conte - UML: INTRODUZIONE - 8 / 25 - Sviluppo di UML UML 2.5 UML 2.0 Next major revision will be UML 2.0 Sett. 2002 ------- UML 1.5 OMG Acceptance, Nov 1997 public feedback UML 1.1 Final submission to OMG, Sep ‘97 First submission to OMG, Jan ´97 UML 1.0 UML partners UML 0.9 Web - June ´96 OOPSLA ´95 Other methods 1997 as a standard by the Object Management Group (OMG) Unified Method 0.8 Booch method OMT OOSE © Renato Conte - UML: INTRODUZIONE - 9 / 25 - OMG http://www.omg.org/ Object Management Group organizzazione di produttori di programmi orientati agli oggetti E' un consorzio per la definizione di standard per l'industria dei computer Gli standard più importanti che sono stati proposti riguardano l'architettura CORBA, il linguaggio di modellazione UML e lo standard XMI © Renato Conte - UML: INTRODUZIONE - 10 / 25 - Schema di Evoluzione OMG UML <<document>> UML 2.0 Superstructure 2003 <<document>> UML 2.0 diagram interchange <<document>> UML 2.0 Infrastructure <<document>> UML 2.0 OCL <<document>> UML 1.5 2002 <<document>> UML 1.4 Q1 2001 dependency relationship <<document>> UML 1.3 1999 1998 composition (whole-part) relationship <<document>> UML 2.x Editorial revision without significant technical changes. 1997 (adopted by OMG) <<document>> UML 1.2 <<document>> UML 1.1 © Renato Conte - UML: INTRODUZIONE - 11 / 25 - OMG UML Contributors Aonix Colorado State University Computer Associates Concept Five Data Access EDS Enea Data Hewlett-Packard IBM I-Logix InLine Software Intellicorp Kabira Technologies Klasse Objecten Lockheed Martin Microsoft ObjecTime Oracle Ptech OAO Technology Solutions Rational Software Reich SAP Softeam Sterling Software Sun Taskon Telelogic Unisys … © Renato Conte - UML: INTRODUZIONE - 12 / 25 - Caratteristiche di UML • Definisce un linguaggio di modellazione visuale facile da imparare ma semanticamente ricco • Unifica i linguaggi di modellazione di Booch, OMT, Objectory modeling language, e altri • Incorpora la miglior esperienza sviluppata a livello industriale • Si adatta ai moderni bisogni di sviluppo del software (scalabilità, distribuzione, concorrenza, etc.) • Ha la flessibilità necessaria per adattarsi a diversi processi di sviluppo © Renato Conte - UML: INTRODUZIONE - 13 / 25 - Obiettivi di UML • Fornisce meccanismi di estendibilità e specializzazione per estendere concetti base • E’ indipendente da un particolare linguaggio di programmazione o di processo di sviluppo • Incoraggia la crescita di strumenti di sviluppo orientati agli oggetti • Supporta concetti di sviluppo ad alto livello come: collaborations, frameworks, patterns e components © Renato Conte - UML: INTRODUZIONE - 14 / 25 - Il valore di UML • E’ uno standard aperto • Supporta l’intero ciclo di sviluppo del software • Supporta diverse “applications areas” • E’ basato sull’esperienza ed i bisogni della comunità degli utilizzatori • Supportato da molti “tools” © Renato Conte - UML: INTRODUZIONE - 15 / 25 - Linguaggio UML • linguaggio = sintassi + semantica – sintassi = regole attraverso le quali gli elementi del linguaggio (es. parole) sono assemblate in espressioni (es. frasi, clausole) – semantica = regole attraverso le quali alle espressioni sintattiche viane assegnato un significato • UML Notation Guide - definisce la sintassi grafica di UML • UML Semantics – definisce la semantica di UML © Renato Conte - UML: INTRODUZIONE - 16 / 25 - Building Blocks • Gli elementi base di UML sono: – elementi di modellazione (classi, interfacce, componenti, use cases, etc.) – relazioni (associazioni, generalizzazioni, dipendenze, etc.) – diagrammi (class diagrams, use case diagrams, interaction diagrams, etc.) Semplici elementi base (building blocks ) sono usati per creare strutture grandi e complesse © Renato Conte - UML: INTRODUZIONE - 17 / 25 - Tipi di diagrammi e Classificazioni • Versione 1.4 • Versione 2.x © Renato Conte - UML: INTRODUZIONE - 18 / 25 - Viste dinamiche Diagrammi di Interazione Use Case Use Case Diagrams Diagrammi Diagrams Use Case Use Case Use Case Diagrams Diagrammi Diagrams di Sequenza Scenario Scenario Diagrammi di Diagrams Diagrams Collaborazione (comunicazione (2.0) ) Viste Statiche State State Diagrams Diagrammi Diagrams delle Classi State State Diagrams Diagrammi Diagrams degli oggetti “modelli” Scenario Scenario Diagrams Diagrammi Diagrams Statechart Component Component Diagrams Deployment Diagrams State State Diagrams Diagrammi Diagrams dei componenti Diagrams Diagrammi di Attività Diagrammi di Implementazione Diagrammi di comportamento UML 2.0 Diagram Behavior Diagram Structure Diagram Class Diagram Component Diagram Object Diagram Activity Diagram Use Case Diagram State Machine Diagram Composite Structure Diagram Deployment Package Diagram Diagram Interaction Diagram Sequence Diagram Interaction Overview Diagram Communication Diagram Timing Diagram © Renato Conte - UML: INTRODUZIONE - 20 / 25 - UML 2.5 © Renato Conte - UML: INTRODUZIONE - 21 / 25 - Esempi di diagrammi UML Person name placeOfBirth dateOfBirth placeOfDeath dateOfDeath sistema commercio elettronico child * Validazione Transazione <<include>> <<actor>> Cliente Woman <<include>> Man femalePartner 0..1 * 0..1 child childmalePartner vendere acquistare { AND } * * Union placeOfMarriage dateOfMarriage dateOfDivorce Controller 0..1 parents «access» « access» :Fattura « access» Diagram Elements « access» Domain Elements Graphics Core « access» :Acquisto *[for all Purchase] getSubtotal() :Articolo getUnitPrice() computeTotal © Renato Conte - UML: INTRODUZIONE - 22 / 25 - Software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High performance An average software project: - 5-10 people - 10-15 month duration - 3-5 external interfaces - Some unknowns & risks Lower management complexity Defense Weapon System Telecom Switch Embedded Automotive Software Commercia l Compiler CASE Tool National Air Traffic Control System Large-Scale Organization/Entity Simulation Higher management complexity - Large scale - Contractual - Many stake holders - “Projects” - Small scale - Informal Small Scientific - Single stakeholder Simulation - “Products” IS Application Distributed Objects (Order Entry) Enterprise IS (Family of IS Applications) Defense MIS System IS Application GUI / RDB (Order Entry) Business Spreadsheet Lower technical complexity - Mostly 4GL, or component-based - Application reengineering - Interactive performance © Renato Conte - UML: INTRODUZIONE - 23 / 25 - Web Link • OMG - UML resource center http://www.omg.org/uml/ • (IBM) Rational Software-UML Resource Center http://www.rational.com/uml/ http://www-306.ibm.com/software/rational/uml/ • UML - elenco di risorse e siti http://www.cetus-links.org/oo_uml.html http://en.wikipedia.org/wiki/Unified_Modeling_Language © Renato Conte - UML: INTRODUZIONE - 24 / 25 - Bibliografia The Unified Modeling Language Reference Manual James Rumbaugh, Ivar Jacobson, Grady Booch Addison Wesley, (1999) The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar Jacobson Addison Wesley , (1999) The Unified Software Development Process Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, (1999) © Renato Conte - UML: INTRODUZIONE - 25 / 25 -