Putting the UML to Work
The ESU University wants to computerize their registration system
The Registrar sets up the curriculum for a semester One course may have multiple course offerings Students select 4 primary courses and 2 alternate courses Once a student registers for a semester, the billing system is notified so the student may be billed for the semester Students may use the system to add/drop courses for a period of time after registration Professors use the system to receive their course offering rosters Users of the registration system are assigned passwords which are used at logon validation
Copyright 1997 by Rational Software Corporation
Page 1
Use Case Diagram
Use case diagrams are created to visualize the relationships between actors and use cases
Request Course Roster Student Maintain Schedule Professor
Billing System Registrar
Copyright 1997 by Rational Software Corporation
Maintain Curriculum
Page 2
Use Case Realizations
The use case diagram presents an outside view of the system Interaction diagrams describe how use cases are realized as interactions among societies of objects Two types of interaction diagrams
Sequence diagrams Collaboration diagrams
Page 3
Copyright 1997 by Rational Software Corporation
Sequence Diagram
A sequence diagram displays object interactions arranged in a time sequence
registration form registration manager
: Student
math 101
math 101 section 1
1: fill in info 2: submit 3: add course(joe, math 01)
4: are you open? 5: are you open?
6: add (joe) 7: add (joe)
Page 4
Copyright 1997 by Rational Software Corporation
Class Diagrams
A class diagram shows the existence of classes and their relationships in the logical view of a system UML modeling elements in class diagrams
Classes and their structure and behavior Association, aggregation, dependency, and inheritance relationships Multiplicity and navigation indicators Role names
Page 5
Copyright 1997 by Rational Software Corporation
Classes
A class is a collection of objects with common structure, common behavior, common relationships and common semantics Classes are found by examining the objects in sequence and collaboration diagram A class is drawn as a rectangle with three compartments Classes should be named using the vocabulary of the domain
Naming standards should be created e.g., all classes are singular nouns starting with a capital letter
Page 6
Copyright 1997 by Rational Software Corporation
Classes
RegistrationForm RegistrationManager Course Student ScheduleAlgorithm
Professor CourseOffering
Page 7
Copyright 1997 by Rational Software Corporation
Operations
The behavior of a class is represented by its operations Operations may be found by examining interaction diagrams
registration form registration manager
RegistrationManager
3: add course(joe, math 01)
addCourse(Student,Course)
Page 8
Copyright 1997 by Rational Software Corporation
Attributes
The structure of a class is represented by its attributes Attributes may be found by examining class definitions, the problem requirements, and by applying domain knowledge
Each course offering has a number, location and time
CourseOffering number location time
Page 9
Copyright 1997 by Rational Software Corporation
Classes
RegistrationForm RegistrationManager
addStudent(Course, StudentInfo)
ScheduleAlgorithm
Course
name numberCredits
Student
name major
open() addStudent(StudentInfo)
Professor
name tenureStatus
CourseOffering
location open() addStudent(StudentInfo)
Page 10
Copyright 1997 by Rational Software Corporation
Relationships
Relationships provide a pathway for communication between objects Sequence and/or collaboration diagrams are examined to determine what links between objects need to exist to accomplish the behavior -- if two objects need to talk there must be a link between them Three types of relationships are:
Association Aggregation Dependency
Page 11
Copyright 1997 by Rational Software Corporation
Relationships
An association is a bi-directional connection between classes
An association is shown as a line connecting the related classes
An aggregation is a stronger form of relationship where the relationship is between a whole and its parts
An aggregation is shown as a line connecting the related classes with a diamond next to the class representing the whole
A dependency relationship is a weaker form of relationship showing a relationship between a client and a supplier where the client does not have semantic knowledge of the supplier A dependency is shown as a dashed line pointing from the client to the supplier
Copyright 1997 by Rational Software Corporation
Page 12
Finding Relationships
Relationships are discovered by examining interaction diagrams
If two objects must talk there must be a pathway for communication
RegistrationManager Registration Manager Math 101: Course
3: add student(joe) Course
Page 13
Copyright 1997 by Rational Software Corporation
Relationships
RegistrationForm RegistrationManager
addStudent(Course, StudentInfo)
ScheduleAlgorithm
Course
name numberCredits
Student
name major
open() addStudent(StudentInfo)
Professor
name tenureStatus
CourseOffering
location open() addStudent(StudentInfo)
Page 14
Copyright 1997 by Rational Software Corporation
Multiplicity and Navigation
Multiplicity defines how many objects participate in a relationships
Multiplicity is the number of instances of one class related to ONE instance of the other class For each association and aggregation, there are two multiplicity decisions to make: one for each end of the relationship
Although associations and aggregations are bi-directional by default, it is often desirable to restrict navigation to one direction
If navigation is restricted, an arrowhead is added to indicate the direction of the navigation
Page 15
Copyright 1997 by Rational Software Corporation
Multiplicity and Navigation
RegistrationForm 0..* 1 RegistrationManager
addStudent(Course, StudentInfo)
ScheduleAlgorithm
1 0..* Student
major
Course
name numberCredits open() addStudent(StudentInfo)
1 3..10 Professor
tenureStatus
4 1 0..4
1..* CourseOffering
location open() addStudent(StudentInfo)
Page 16
Copyright 1997 by Rational Software Corporation
Inheritance
Inheritance is a relationships between a superclass and its subclasses There are two ways to find inheritance:
Generalization Specialization
Common attributes, operations, and/or relationships are shown at the highest applicable level in the hierarchy
Page 17
Copyright 1997 by Rational Software Corporation
Inheritance
RegistrationForm RegistrationManager
addStudent(Course, StudentInfo)
ScheduleAlgorithm
Course RegistrationUser
name name numberCredits
Student
major
open() addStudent(StudentInfo)
Professor
tenureStatus
CourseOffering
location open() addStudent(StudentInfo)
Page 18
Copyright 1997 by Rational Software Corporation
The State of an Object
A state transition diagram shows
The life history of a given class The events that cause a transition from one state to another The actions that result from a state change
State transition diagrams are created for objects with significant dynamic behavior
Page 19
Copyright 1997 by Rational Software Corporation
State Transition Diagram
Add student[ count < 10 ] Initialization
do: Initialize course
Add Student / Set count = 0
Open
entry: Register student exit: Increment count
Cancel Cancel Canceled
do: Notify registered students
[ count = 10 ]
Cancel
Closed
do: Finalize course
Page 20
Copyright 1997 by Rational Software Corporation