UNIFIED ¡MODELLING ¡LANGUAGE ¡(UML) ¡ An ¡Overview ¡of ¡Diagram ¡Types ¡used ¡in ¡the ¡ Standard ¡Object ¡Modeling ¡Language ¡UML ¡2.0 ¡
What ¡is ¡UML? ¡ • Standard ¡general-‑purpose ¡modeling ¡language ¡ designed ¡for ¡OO ¡soFware ¡engineering ¡ • Used ¡to ¡create ¡visual ¡models ¡of ¡object-‑ oriented ¡soFware-‑intensive ¡systems ¡ • Developed ¡by ¡the ¡Object ¡Management ¡Group ¡ (OMG) ¡and ¡added ¡to ¡official ¡technologies ¡in ¡ 1997 ¡ • It ¡fuses ¡mulOple ¡methodologies ¡into ¡one ¡ common ¡modeling ¡language ¡ ¡
Prior ¡to ¡UML: ¡ Several ¡popular ¡techniques: ¡ – The ¡Booch ¡method ¡(Booch, ¡1993) ¡ – The ¡Object-‑Modeling ¡Technique ¡(OMT) ¡ (Rumbaugh ¡et ¡al, ¡1991) ¡ – Object-‑Oriented ¡SoFware ¡Engineering ¡(OOSE) ¡ (Jacobson, ¡1992) ¡ – “The ¡Three ¡Amigos” ¡led ¡an ¡internaOonal ¡ consorOum, ¡ UML ¡Partners , ¡in ¡development ¡of ¡ UML ¡1.1 ¡(November ¡1997) ¡ ¡
UML ¡1.x ¡ • The ¡best ¡ideas ¡from ¡the ¡Three ¡Amigos ¡and ¡the ¡ internaOonal ¡consorOum ¡were ¡combined ¡into ¡ one ¡standardized ¡form ¡ • Concepts ¡from ¡other ¡OO ¡methodologies ¡were ¡ also ¡incorporated ¡to ¡create ¡a ¡broad ¡set ¡of ¡ modeling ¡methods ¡and ¡graphical ¡tools ¡ • UML ¡is ¡an ¡internaOonal ¡standard ¡ ¡ ¡ ¡ISO/IEC19501:2005 ¡
UML ¡2.x ¡ Four ¡Parts ¡to ¡the ¡UML ¡2.x ¡SpecificaOon: ¡ 1. The ¡Superstructure ¡defining ¡the ¡notaOon ¡and ¡ semanOcs ¡for ¡diagrams ¡and ¡their ¡elements ¡ 2. Infrastructure ¡defining ¡the ¡core ¡meta-‑model ¡ (Meta-‑Object ¡Facility ¡– ¡MOF ¡used ¡in ¡model-‑ driven ¡engineering) ¡ 3. The ¡Object ¡Constraint ¡Language ¡(OCL) ¡ ¡ 4. ¡UML ¡Diagram ¡Interchange ¡– ¡how ¡diagram ¡ layouts ¡are ¡exchanged ¡
Diagram ¡Types ¡ • There ¡are ¡13 ¡official ¡diagram ¡types ¡ • Two ¡Conceptual ¡Views: ¡ – Structural ¡(staOc): ¡descripOon ¡of ¡system ¡ architecture ¡underlying ¡the ¡design ¡ – Behavioral ¡(dynamic): ¡descripOon ¡of ¡how ¡the ¡ pieces ¡of ¡the ¡system ¡interact ¡with ¡each ¡other ¡ • Most ¡Commonly ¡Used ¡ – The ¡Class ¡Diagram ¡(staOc/structural) ¡ – The ¡Sequence ¡Diagram ¡(dynamic/behavioral) ¡
Diagram ¡Types ¡
Class ¡Diagram ¡(structural) ¡ ¡ Describes ¡the ¡types ¡of ¡objects ¡in ¡a ¡ system ¡and ¡the ¡relaOonships ¡ between ¡them ¡
Class ¡Diagram ¡ • Most ¡common ¡diagram ¡with ¡the ¡widest ¡range ¡of ¡ variaOon ¡from ¡simple ¡to ¡complex ¡ • It ¡can ¡be ¡used ¡as ¡simple ¡high ¡level ¡overview ¡to ¡a ¡ detailed ¡definiOon ¡including ¡afributes/methods ¡ • Because ¡we ¡have ¡already ¡covered ¡this ¡in ¡lecture, ¡I ¡ am ¡only ¡going ¡to ¡provide ¡a ¡summary ¡of ¡notaOon ¡ • Much ¡of ¡the ¡class ¡notaOon ¡is ¡used ¡in ¡other ¡ diagram ¡types ¡
Package ¡Diagram ¡(structural) ¡ ¡ Structural ¡overview ¡of ¡how ¡the ¡ components ¡of ¡a ¡system ¡are ¡ organized ¡into ¡higher-‑level ¡units ¡
Package ¡Diagrams ¡ • Allows ¡you ¡to ¡group ¡any ¡set ¡of ¡UML ¡ components ¡into ¡higher-‑level ¡units ¡ • Most ¡commonly ¡used ¡to ¡show ¡how ¡classes ¡are ¡ organized ¡into ¡packages ¡ • Hierarchical ¡structure ¡allows ¡packages ¡to ¡be ¡ broken ¡down ¡into ¡sub-‑packages ¡and ¡classes ¡ • They ¡are ¡denoted ¡using ¡“::” ¡to ¡separate ¡levels ¡ of ¡the ¡hierarchy ¡(e.g. ¡java::uOl::Date ¡
Package ¡NotaOon ¡
Package ¡Diagrams ¡ • Primarily ¡used ¡to ¡show ¡packages ¡and ¡their ¡ dependencies ¡ • Ideally, ¡this ¡package ¡dependency ¡diagram ¡is ¡ generated ¡by ¡the ¡system ¡itself ¡so ¡that ¡you ¡can ¡ view ¡an ¡accurate ¡representaOon ¡of ¡dependencies ¡ • Good ¡package ¡structure ¡has ¡a ¡clear ¡flow ¡of ¡ dependencies ¡ • Circular ¡dependencies ¡are ¡not ¡recommended ¡and ¡ should ¡be ¡minimized ¡ • The ¡more ¡dependencies ¡coming ¡into ¡a ¡package, ¡ the ¡more ¡stable ¡the ¡package ¡interface ¡should ¡be ¡
Package ¡Diagram ¡
Composite ¡Structure ¡Diagram ¡ (structural) ¡ ¡ Allows ¡complex ¡objects ¡to ¡be ¡broken ¡ down ¡into ¡run-‑Ome ¡groupings ¡
Composite ¡Structures ¡ • New ¡feature ¡for ¡UML ¡2.0 ¡ • Allows ¡you ¡to ¡take ¡a ¡complex ¡object ¡and ¡break ¡ it ¡into ¡parts ¡ • The ¡difference ¡between ¡packages ¡and ¡ composite ¡structures ¡ – Packages ¡are ¡compile ¡Ome ¡groupings ¡ – Composite ¡structures ¡are ¡run-‑Ome ¡groupings ¡ • This ¡feature ¡is ¡new ¡and ¡so ¡there ¡isn’t ¡much ¡ informaOon ¡yet ¡about ¡how ¡useful ¡this ¡is ¡
Composite ¡Structure ¡Example ¡ This ¡example ¡shows ¡run-‑Ome ¡components ¡of ¡a ¡ classic ¡Fibonacci ¡sequence: ¡
Component ¡Diagram ¡(structural) ¡ ¡ Diagram ¡showing ¡the ¡structural ¡ relaOonships ¡between ¡the ¡logical ¡ components ¡of ¡a ¡system ¡ ¡
Component ¡Diagrams ¡ • Main ¡purpose ¡is ¡to ¡show ¡structural ¡relaOonships ¡ between ¡logical ¡components ¡of ¡a ¡system ¡ • It ¡has ¡more ¡to ¡do ¡with ¡analyzing ¡customer ¡ expectaOons ¡& ¡markeOng ¡decisions ¡than ¡the ¡ actual ¡technology ¡ • Customers ¡oFen ¡want ¡to ¡purchase ¡or ¡upgrade ¡ logical ¡enOOes ¡in ¡a ¡system ¡separately ¡ • Component: ¡a ¡logical ¡unit ¡connected ¡through ¡ implemented ¡and ¡required ¡interfaces ¡ • They ¡are ¡integrated ¡into ¡the ¡standard ¡structure ¡ of ¡the ¡class ¡diagram ¡and ¡oFen ¡uOlize ¡notaOon ¡ from ¡composite ¡structure ¡diagrams ¡
Do ¡Components ¡Exist? ¡ This ¡quote ¡sums ¡up ¡confusion ¡among ¡technologists ¡ about ¡what ¡components ¡are ¡and ¡suggests ¡how ¡ component ¡diagrams ¡are ¡used ¡as ¡part ¡of ¡the ¡design: ¡ ¡ ¡ Components ¡are ¡not ¡a ¡technology. ¡ ¡Technology ¡people ¡seem ¡to ¡find ¡ this ¡hard ¡to ¡understand. ¡Components ¡are ¡about ¡how ¡customers ¡want ¡ to ¡relate ¡to ¡so9ware. ¡ ¡They ¡want ¡to ¡be ¡able ¡to ¡buy ¡their ¡so9ware ¡a ¡ piece ¡at ¡a ¡:me, ¡and ¡to ¡be ¡able ¡to ¡upgrade ¡it ¡just ¡like ¡they ¡can ¡upgrade ¡ their ¡stereo. ¡ ¡They ¡want ¡new ¡pieces ¡to ¡work ¡seamlessly ¡with ¡their ¡old ¡ pieces, ¡and ¡to ¡be ¡able ¡to ¡upgrade ¡on ¡their ¡own ¡schedule, ¡not ¡the ¡ manufacturer’s ¡schedule. ¡ ¡They ¡want ¡to ¡be ¡able ¡to ¡mix ¡and ¡match ¡ pieces ¡from ¡various ¡manufacturers. ¡ ¡This ¡is ¡a ¡very ¡reasonable ¡ requirement. ¡ ¡It ¡is ¡just ¡hard ¡to ¡sa:sfy. ¡ ¡ Ralph ¡Johnson ¡ ¡hfp://www.cs.com/cgi/wiki?DoComponentsExist ¡ ¡
Component ¡NotaOon/Example ¡
Deployment ¡Diagram ¡(structural) ¡ ¡ Shows ¡the ¡physical ¡layout ¡of ¡the ¡ hardware ¡and ¡soFware ¡in ¡a ¡running ¡ system ¡ ¡ ¡
Deployment ¡Diagrams ¡ • It ¡contains ¡nodes ¡connected ¡by ¡communicaOon ¡ paths ¡ • Nodes ¡are ¡either ¡specific ¡hardware ¡or ¡execuOon ¡ environments ¡that ¡host ¡the ¡soFware ¡ • ArOfacts ¡contained ¡on ¡nodes ¡include: ¡ executables, ¡libraries, ¡data ¡files, ¡configuraOon ¡ files, ¡HTML ¡Documents… ¡ • Including ¡an ¡arOfact ¡in ¡the ¡node ¡indicates ¡that ¡it ¡ is ¡part ¡of ¡the ¡deployment ¡in ¡a ¡working ¡system ¡ ¡
Deployment ¡Diagram ¡
Recommend
More recommend