©Renato Conte - UML: INTRODUZIONE - 1 -
IN T R O DU Z IO N E
Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno 2006-07 Corso di Ingegneria del Software ©Renato Conte - UML: INTRODUZIONE - 2
Quick Tour
• Pe rc h é a b b ia m o b is og no d i un m od e ll o ? • M od e ll az io ne v is ua le • C h e c os ’è U M L ? • E le m e nt i b as e
©Renato Conte - UML: INTRODUZIONE - 3 -• pe r fo rn ir e u na s tr ut tu ra a l “ pr ob le m so lv in g ” • pe r sp e ri m e nt ar e e d e sp lo ra re p iù s ol uz io ni • pe r fo rn ir e l ’a st ra zi on e n e ce ss ar ia p e r ge st ir e l a co m pl e ss it à • pe r ri d ur re i t e m pi e i c os ti d i sv il up po • pe r ge st ir e il r is ch io d i e rr or i
Pe rc h é a b b ia m o b is og no d i un m od e ll o?
©Renato Conte - UML: INTRODUZIONE - 5 -
Pe rc h é m od e ll a re g ra fi ca m e nt e ? • “G ra ph ic s re ve al d at a”
–Edward Tufte The Visual Display of Quantitative Information, 1983• “1 b it m ap = 1 m e ga w or d ”
–Anonymous visual modeler Dalle slide “Object Modeling with OMG UML Tutorial Series” di Cris Kobryn ©Renato Conte - UML: INTRODUZIONE - 6 -B e ne fi ci d i un a m od e ll a zi on e v is ua le (g ra fi ca ) • C at tu ra i l pr oc e ss o az ie nd al e ( e n on s ol o) • M ig li or a la c om un ic az io ne
(supera le differenze di terminologie e di linguaggi diversi)• G e st is ce l a co m pl e ss it à
(oggetti separati, viste diverse, diversi livelli di astrazione, ...)• D e fi ni sc e l ’a rc h it e tt ur a • C on se nt e i l ri us o
©Renato Conte - UML: INTRODUZIONE - 7 -A rc h it e tt ur a d i un s is te m a
©Renato Conte - UML: INTRODUZIONE - 8 -• U M L e ’ u n li ng ua gg io g ra fi co s ta nd ar d p e r - sp e ci fi ca re – vi su al iz za re – co ns tr ui re – d oc um e nt ar e gl i a rt e fa tt i ( ar ti fa ct ) d e i si st e m i so ft w ar e
UML
©Renato Conte - UML: INTRODUZIONE - 9 -
Booch methodOMT
Unified Method 0.8OOPSLA ´95 OOSEOther methods
UML 0.9Web - June ´96
public feedbackFinal submission to OMG, Sep ‘97 First submission to OMG, Jan ´97UML 1.1
OMG Acceptance, Nov 1997UML 1.5 UML 1.0UML partners
UML 2.0Next major revision will be UML 2.0 Sett. 2002 -------
S vi lu pp o d i U M L
©Renato Conte - UML: INTRODUZIONE - 10O b je ct M an ag e m e nt G ro up or ga ni zz az io ne d i pr od ut to ri d i pr og ra m m i or ie nt at i ag li o gg e tt i h tt p: // w w w .o m g. or g/
O M G
©Renato Conte - UML: INTRODUZIONE - 11 -Schema di Evoluzione OMG UML 2003 <<document>> UML 2.0 Infrastructure
<<document>> UML 2.0 <<document>> UML 2.0 Superstructure <<document>> UML 2.0 OCL
composition (whole-part) relationship 1997(adopted by OMG)
1998
1999
Q1 2001 Editorial revision without significant technical changes. <<document>> UML 1.1
<<document>> UML 1.2
<<document>> UML 1.3
<<document>> UML 1.4dependency relationship
<<document>> UML 1.52002
<<document>> UML 2.0 diagram interchange ©Renato Conte - UML: INTRODUZIONE - 12
O M G U M L C on tr ib ut or s
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 MartinMicrosoft ObjecTime Oracle Ptech OAO Technology Solutions Rational Software Reich SAP Softeam Sterling Software Sun Taskon Telelogic Unisys …
©Renato Conte - UML: INTRODUZIONE - 13 -
•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
C a ra tt e ri st ic h e d i U M L
©Renato Conte - UML: INTRODUZIONE - 14 -O b ie tt iv i d i U M L • F or ni sc e m e cc an is m i d i e st e nd ib il it à e sp e ci al iz za zi on e p e r e st e nd e re c on ce tt i b as e • E ’ i nd ip e nd e nt e d a un p ar ti co la re l in gu ag gi o d i pr og ra m m az io ne o d i pr oc e ss o d i sv il up po • In co ra gg ia l a cr e sc it a d i st ru m e nt i d i sv il up po or ie nt at i ag li o gg e tt i • S up po rt a co nc e tt i d i sv il up po a d a lt o li ve ll o co m e : co lla b or at io ns , fr am ew or ks , pa tt er ns e co m po ne nt s
©Renato Conte - UML: INTRODUZIONE - 15 -• E ’ u no s ta nd ar d a pe rt o • S up po rt a l’i nt e ro c ic lo d i sv il up po d e l so ft w ar e • S up po rt a d iv e rs e “ ap pl ic at io ns a re as ” • E ’ b as at o su ll ’e sp e ri e nz a e d i b is og ni d e ll a co m un it à d e gl i ut il iz za to ri • S up po rt at o d a m ol ti “ to ol s”
I l va lo re d i U M L
©Renato Conte - UML: INTRODUZIONE - 16 -L in gu a gg io U M L • li ng uag gi o = si nt as si + s e m an ti ca
–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 - 17 -
•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
B ui ld in g B lo ck s
©Renato Conte - UML: INTRODUZIONE - 18T ip i d i d ia gr a m m i e C la ss if ic a zi on i
• Versione 1.4 • Versione 2.0 ©Renato Conte - UML: INTRODUZIONE - 20UML 2.0 Diagram Structure DiagramBehavior Diagram Interaction DiagramUse Case DiagramActivity Diagram Composite Structure Diagram
Class DiagramComponent Diagram Deployment Diagram Sequence DiagramInteraction Overview Diagram
Object DiagramState Machine Diagram Package Diagram Communication DiagramTiming Diagram
©Renato Conte - UML: INTRODUZIONE - 21 -
Esempi di diagrammi UML Validazione Transazione <<actor>> Clientevendere acquistare
sistema commercio elettronico <<include>><<include>> Controller Diagram Elements Domain ElementsGraphics Core
«access» «access» «access» «access»
«access» *[for all Purchase] getSubtotal()
:Articolo:Fattura getUnitPrice() computeTotal
:Acquisto
Person name placeOfBirth dateOfBirth placeOfDeath dateOfDeath Union placeOfMarriage dateOfMarriage dateOfDivorce
parents0..1
child * child***malePartner*0..1child *
femalePartner0..1
WomanMan *
{ AND } ©Renato Conte - UML: INTRODUZIONE - 22 -
Higher technical complexity - Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High performance Lower technical complexity - Mostly 4GL, or component-based - Application reengineering - Interactive performance
Higher management complexity - Large scale - Contractual - Many stake holders - “Projects”
Lower management complexity - Small scale - Informal - Single stakeholder - “Products”
An average software project: - 5-10 people - 10-15 month duration - 3-5 external interfaces - Some unknowns & risks National Air Traffic Control System Defense MIS SystemDefense Weapon SystemTelecom Switch CASE Tool Enterprise IS (Family of IS Applications)
Commercial Compiler Business Spreadsheet
IS Application Distributed Objects (Order Entry)
Small Scientific Simulation Large-Scale Organization/Entity Simulation
Embedded Automotive Software IS Application GUI / RDB (Order Entry)
Software complexity ©Renato Conte - UML: INTRODUZIONE - 23 -
Link •OMG - UML resource center http://www.omg.org/uml/ •Rational Software-UML Resource Center (IBM) 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 ©Renato Conte - UML: INTRODUZIONE - 24 -
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)