Examples of Diagrams
Examples of Diagrams
• Is an open standard
• Supports the entire software development
lifecycle
• Supports diverse applications areas
• Is based on experience and needs of the
user community
• Supported by many tools
Creating the UML
UML 1.3
OMG Acceptance, Nov 1997
Final submission to OMG, Sep ‘97 UML 1.1
public First submission to OMG, Jan ´97
feedback
UML partners UML 1.0
Embley
Rumbaugh
Singleton classes and
OMT
high-level view
Jacobson Wirfs-Brock
OOSE Responsibilities
Shlaer - Mellor Odell
Scenario State
Scenario
Diagrams State
Diagrams
Collaboration
Diagrams Models Component
Diagrams
Diagrams Diagrams
Scenario Component
Scenario
Diagrams
Component
Diagrams
Deployment
Statechart
Diagrams Diagrams
Diagrams Diagrams
Activity
Diagrams
Diagrams
• A diagram is a view into a model
– Presented from the aspect of a particular
stakeholder
– Provides a partial representation of the system
– Is semantically consistent with other views
• In the UML, there are nine standard diagrams
– Static views: use case, class, object, component,
deployment
– Dynamic views: sequence, collaboration, statechart,
activity
Use Case Diagram
• Captures system functionality as seen by
users
Use Case Diagram
• Captures system functionality as seen by
users
• Built in early stages of development
• Purpose
– Specify the context of a system
– Capture the requirements of a system
– Validate a system’s architecture
– Drive implementation and generate test cases
• Developed by analysts and domain experts
Class Diagram
• Captures the vocabulary of a system
Class Diagram
• Captures the vocabulary of a system
• Built and refined throughout development
• Purpose
– Name and model concepts in the system
– Specify collaborations
– Specify logical database schemas
• Developed by analysts, designers, and
implementers
Object Diagram
• Captures instances and links
Object Diagram
• Shows instances and links
• Built during analysis and design
• Purpose
– Illustrate data/object structures
– Specify snapshots
• Developed by analysts, designers, and
implementers
Component Diagram
• Captures the physical structure of the
implementation
Component Diagram
• Captures the physical structure of the
implementation
• Built as part of architectural specification
• Purpose
– Organize source code
– Construct an executable release
– Specify a physical database
• Developed by architects and programmers
Deployment Diagram
• Captures the topology of a system’s
hardware
Deployment Diagram
• Captures the topology of a system’s
hardware
• Built as part of architectural specification
• Purpose
– Specify the distribution of components
– Identify performance bottlenecks
• Developed by architects, networking
engineers, and system engineers
Sequence Diagram
• Captures dynamic behavior (time-oriented)
Sequence Diagram
• Captures dynamic behavior (time-oriented)
• Purpose
– Model flow of control
– Illustrate typical scenarios
Collaboration Diagram
Classes, interfaces,
collaborations Components
Use cases
Organization Dynamics
Package, subsystem Interaction
State machine
Unified Process structure
Phases
Process Workflows Inception Elaboration Construction Transition
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration Mgmt
Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
Iterations
Architecture and Iterations
Content
Patterns
• A pattern is a solution to a problem in a
context
• A pattern codifies specific knowledge
collected from experience in a domain
• All well-structured systems are full of patterns
– Idioms
– Design patterns
– Architectural patterns
daVinci
Mechanisms
Screws Brakes
Keys Pipes
Rivets Valves
Bearings Springs
Pins, axles, shafts Cranks and rods
Couplings Cams
Ropes, belts, and chains Pulleys
Friction wheels Engaging gears
Toothed wheels
Flywheels
Levers and connecting rods
Click wheels and gears
Ratchets
Design Patterns
Gamma et al
Design patterns
• Creational patterns
– Abstract factory
– Prototype
• Structural patterns
– Adapter
– Bridge
– Proxy
• Behavioral patterns
– Chain of responsibility
– Mediator
– Visitor
• Mechanisms are the soul of an architecture
Modeling a design pattern
Modeling a design pattern (cont.)
Modeling a design pattern (cont.)