1. Get the Gist:
UML
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
2. Definition
UML stands for Unified Modeling Language:
• The UML specification is managed and now
owned by the Object Management Group
(OMG), a not for profit industry specifications
consortium.
• It is a general purpose, non-proprietary
modeling (specification) ‘language’.
• Includes standardized notation.
• Used to create an abstract model of a system.
• Is methodology independent.
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
3. History
It grew out of the work of three competing
modeling techniques:
1. Grady Booch’s ‘Booch Method’
2. James Rumbaugh’s ‘Object Modeling
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
Technique’ (OMT)
3. Ivar Jacobson’s ‘Object Oriented Software
Engineering’ (OOSE)
Work developing UML was originally done at
Rational software by these three individuals,
collectively known as ‘the three amigos’.
4. Understanding Abstract Models
• Abstract models cannot be fully captured
by any notation.
• Abstract models are practically captured
instead by ‘views’ into the abstract model.
In theory, if the correct ‘views’ are provided
into a system, it can be usefully described
sufficient to implement.
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
5. UML Abstract Models
• UML abstract models are captured in the form of
a collection of all the objects included in a
system and the relevant world in which it will
operate (the domain), which are stereotyped as
classes, activities, actors, relationships, use
cases, etc.
• ‘Views’ into the system and its operating domain
are captured in the form of UML ‘diagrams’.
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
6. Perspectives of an abstract model
There are theoretically three perspectives
required to completely describe an
abstract model:
1. Functional – the functions of the system
from the user and external system’s point
of view.
2. Structural (object)- the internal structure
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
of the system.
3. Behavioral (dynamic) – the internal
behavior of the system.
7. Views to provide perspectives
The perspectives of an abstract model are
provided through one or more ‘views’, which are
identified as ‘diagrams’ in UML.
UML diagrams can be categorized by one of the
three perspectives of an abstract model.
In UML 2.0, diagrams are categorized a little
differently, but in concept each still provides a
view from one of the three perspectives of the
abstract model.
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
8. UML 2.0 Diagrams
In UML 2.0, there are 13 types of diagrams:
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
9. Reality check
However, only a few are commonly used,
and they can still each be grouped into
providing a view into one of the three
perspectives into an abstract model in
order of most commonly used to least:
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
10. Functional
Primary:
• Use case diagram – useful for determining functional
requirements, communicating with stakeholders, developing test
cases.
Secondary to clarify operation of primary:
• Sequence diagram
• Activity diagram
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
11. Example use case diagram
Compass Point, Inc.
Submit campaign
Create campaign
from assets
«include»
503.329.1138 info@compass-point.net
www.compass-point.net
Creative
Advertiser
Traffic
Manage orders
assets
Submit Campaigns
Approve Campaigns
View order
statistics
Manage digital
assets
Manage campaigns
«include»
«include»
«include»
«include»
Commit
reservations to schedule
Manage shedules
«include»
Identify
non-advertisement campaigns
«include»
Iterate / review
campaign assets
Iterate / review
campaigns
«include»
«include»
12. Activity diagram to describe
functional process ad Inception activ ity
ELABORATION LAUNCH ASSESSMENT document
Describe proposed system and effort that wi l l be required for
elaboration phase for business approval .
- State value drivers and value proposi tion of system in terms
of major jeatures that wi l l del iver value proposed.
- Identi fy single authori tative business stakeholder.
- Identi fy what is in scope and out of scope for this project.
- Identi fy expected chal lenges (risks).
- Propose elaboration phase level of effort and impl ied cost.
Compass Point, Inc.
New product or new version?
Official name?
Value proposi tion
- feature overview statement
- benefi ts statement
- for whom (customer)
- di fferentiation
Determine ini tial sense of
- requirements risk
- technical risks
- ski l ls risks
- pol i tical risks
Discuss future roadmap.
503.329.1138 info@compass-point.net
www.compass-point.net
Inception phase begins:
action requested on project
Inception: dev elop
business case for project
Produce analysis phase
plan and estimates
Get approv al for
elaboration phase plan
Inception phase ends - no elaboration phase
[Approved]
[Not approved]
Inception phase ends - continue to elaboration phase
13. Sequence diagram describing roles
participating in functional process
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
sd Inception Sequence
Business steering
comittee
Sponsor Program manager BA Architect PM
Submit Project Proposal
Request elaboration plan
Capture business case
Solicit value proposition, etc.
Request technical risk assessment
Solicit info to determine technical risks and future arch. value opptys.
Produce elaboration plan with PMO resources and estimates
Deliver elaboration plan
Deliver elaboration plan for approval
14. Structural
• Class diagram
• Deployment diagram
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
15. Example class diagram
1
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
cd Retail
BLL::Pricer
+ GetHandl ingCost(int, StoreIdenti ty, CatalogItemCol lection) : void
+ GetPrice(StoreIdenti ty, CatalogItem) : long
Catalog::MasterCatalog
+ GetCatalogItems(SearchCri teria) : CatalogItemCol lection
+ ReduceCatalogItemQuanti ty(int, CatalogItem) : void
+ Val idateCatalogItem(CatalogItem) : boolean
Store::Store
Store::Cart
- expires: int
+ AddToCart(int, CatalogItem) : void
+ Checkout() : void
+ RemoveFromCart(int, CatalogItem) : void
Store::
StoreManager
Catalog::Catalog
1
0..*
1..*
1
16. Example deployment diagram
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
Load Monitor
client.foundation.dll
client.ms.dll
client.msproduction.dll
client.winapplication.exe
common.net.dll
framework.dll
app.config
node namespace
aspx pages
node.ms.dll
node.foundation.dll
client adapter subsystems
Server
common.net.dll
framework.dll
Server.service.exe
app.config
17. Behavioral
Primary:
• Sequence diagram
• Activity diagram
Secondary when required:
• Interaction overview diagram
• Communication diagram
• State machine diagram
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
19. Conclusion
• Abstract models cannot be observed directly, but must be perceived through views.
• UML is a powerful way to abstract model any system interacting in its domain,
software systems, people workflow systems, hardware systems, etc.
• In UML, views into the abstract model are through diagrams.
• UML has a bewildering array of diagrams, but really only a few are used (and
necessary) to describe the function, structure, and behaviors of a system.
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net
20. Resources
A good and quick online tutorial in UML is at:
http://bdn.borland.com/article/0,1410,31863,00.html
A good perspective and deeper treatment of UML is the first chapter of the book:
Real-Time Design Patterns (Robust Scalable Architecture for Real-Time Systems) by Bruce
Powel Douglass, Addison Wesley – Chapter 1.
Compass Point, Inc.
503.329.1138 info@compass-point.net
www.compass-point.net