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 -