Title: Unified Modeling Language UML
1Unified Modeling Language (UML)
- CSCI 6050 Software Engineering
- January 19, 2005
- Trentin Bishop
- Micah Lewis
- Amit Mathew
- Rufin Tshinanga
- Stephen Upchurch
2Why do we need models?
- To create a simplified representation of a real
software system
3What is UML?
- A popular, standardized modeling language for
object-oriented software - The Object Management Group (OMG) is the group
that dictates the UML standard - Created by Grady Booch, James Rumbaugh, and Ivar
Jacobson
4UML Models
- Functional Models
- Use case diagrams
- Structural Models
- Class diagrams
- Dynamic/Behavioral Models
- Statechart diagrams
- Sequence diagrams
- Activity diagrams
5UML Conventions
- Rectangles are classes or instances
- Ovals are functions or use cases
- Instances are underlined
- Types are not underlined
6Poseidon for UML
- Available from http//www.gentleware.com/
- Get the free Community Edition
- Caveat Slow on older computers, a little
sluggish on newer ones
7Poseidon for UML demo
8Use case diagrams
9Use case diagrams
- Describes the functional behavior of the system
from the users point of view - Used during the requirements elicitation stage to
represent external behavior - Actor User, external system, or a physical
environment - Use case a class of functionality provided by
the system as an event flow - Has entry and exit conditions, flow of events,
and participating actors
10Use case diagram symbols
Actor
Relationships
Use case
System
11Use case example
Report location
Find arrival times
Passenger
GPS System
Report error
12Use case example explanation
- Actors dont have to be people
- Shows how actors interact with the system
- Three use cases
13Class diagrams
14UML Class Diagram
- Depict the classes within the model
- Illustrates the class attributes (member
variables), operations (member functions), and
relationships with other classes
15UML Class Diagram Symbols
CLASS
Class Name
Number of links each class object may contain
Composition relationship Class 1 is composed of a
Class 2
Aggregation A collection of other classes
Inheritance relationship Class 2 and Class 3
derive from Class 1
16UML Class Diagram Example
SimpleWatch class contains 2 PushButtons 1
Display 2 Batteries 1 Time
17UML Class Diagram Example
http//pigseye.kennesaw.edu/dbraun/csis4650/AD/U
ML_tutorial/class.htm
18UML Class Diagram Example
The class Order is associated with the class
Customer The multiplicity denotes the number of
objects For example, Order object can be
associated only one customer but a
customer can be associated to many orders
19Statechart diagrams
20UML Statechart Diagram
- A statechart diagram shows the behavior of
classes in response to external stimuli - This diagram models the dynamic flow of control
from state to state within a system.
21Basic Statechart Diagram Symbols and Notations
- States represent situations during the life of an
object - A solid arrow represents the path between
different states of an object - A filled circle followed by an arrow represents
the object's initial state. - An arrow pointing to a filled circle nested
inside another circle represents the object's
final state.
22(No Transcript)
23Description of state chart diagram
- State
- Display alarm time
- Display clock time
- No sound
- Sound on
- Buzzing
- Playing radio
- Transition
- On
- Off
- Hold alarm
- Alarm switch off
- Change Hrs/Min
- Radio
- Activity
- Do/wait for clock time to alarm time
24Sequence diagrams
25Sequence Diagrams
- Describe the dynamic behavior between actors and
the system and between objects of the system - Used during requirements analysis
- To refine use case descriptions
- To find additional objects
- Used during system design
- To refine subsystem interfaces
26Sequence diagram notation
- Classes are represented by columns
- Messages are represented by arrows
- Activations represented by narrow rectangles
- Lifelines are represented by dashed lines
27Example- sequence diagram for SimpleWatch
- O
- - - SimpleWatch
Display
Time - / \
- WatchUser
- pressButton1()
blinkHours()
- ???????? ?????????????
- pressButton1()
blinkMinutes()
- ???????? ?????????????
-
- pressButton2()
- ????????
incrementMinutes() -
??????????????????????????????? -
refresh() - pressButton1And2()
?????????????? - ????????
-
commitNewTime()
-
???????????????????????????????? -
- stopBlinking()
28Example cont.
- -The left-most column represents the timeline of
the WatchUser who initiates the use case. - -The other columns represent the timeline of the
objects that participate in this use case.
29Activity diagrams
30Activity Diagrams
- Used to represent the behavior of a system in
terms of activities and their precedence
constraints - Compared to flowchart diagrams because
- They can be used to represent control flow (order
in which operations occur) - They can be used to represent data flow (objects
exchanged among operations) -
- The completion of an activity triggers an
outgoing transition which may initiate another
activity
31Symbols
- Synchronization of the control flow
- Activities in the system
- Transitions between activities
32Activity Diagram Example
Allocate Resources
Open Incident
Coordinate Resources
Archive Incident
Document Incident
33Example Explained
- The 1st activity initiated is Open Activity.
After all the operations in this activity have
been executed, the activities Allocate Resources,
Coordinate Resources Document Incident are
initiated. (Note There is a complex transition
between Open Activity and the next three
activities). - These three activities may occur in sequence or
concurrently. - Even if the three activities dont occur
concurrently, Archive Incident is not initiated
until all three have been completed.
34References
- B. Bruegge, A. Dutoit. Object-Oriented Software
Engineering Using UML, Patterns and Java, Second
Edition. 2003.
35Questions?