UML Sequence and Class Diagrams
UML Sequence and Class Diagrams
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 diagrams are created to visualize the relationships between actors and use cases
Maintain Curriculum
Page 2
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
Page 3
Sequence Diagram
: Student
math 101
Page 4
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
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
Classes
RegistrationForm RegistrationManager Course Student ScheduleAlgorithm
Professor CourseOffering
Page 7
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
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
Page 9
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
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:
Page 11
Relationships
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
Page 13
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
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
Page 15
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
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
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
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
Open
entry: Register student exit: Increment count
[ count = 10 ]
Cancel
Closed
do: Finalize course
Page 20