View
235
Download
2
Category
Tags:
Preview:
Citation preview
SEG4110 – Advanced Software Design and Reengineering
TOPIC A
Review of UML
SEG4110 - Topic A- Review of UML 2
What is UML?
The Unified Modelling Language is a standard graphical language for modelling object oriented software
• Developed when Booch, Rumbagh and Jacobson merged their approaches.
• In 1997 the Object Management Group (OMG) started the process of UML standardization
SEG4110 - Topic A- Review of UML 3
Reminder about Naming classes
• Use capital letters—E.g. BankAccount not bankAccount
• Use singular nouns
• Use the right level of generality—E.g. Municipality, not City
• Make sure the name has only one meaning—E.g. ‘bus’ has several meanings
SEG4110 - Topic C - Advanced UML and Umple 4
Umple
A technology for programming in UML
• Model-Oriented Programming
Adds associations and attributes to programming languages
•Java
•PHP
•Ruby
Stand alone code-generator is online at
•http://cruise.site.uottawa.ca/umpleonline/index.php
SEG4110 - Topic C - Advanced UML and Umple 5
Declaration of classes and attributes in Umple
class Student
{
studentNumber; // defaults to String
String grade;
Integer entryAverage; // implemented as int
}
Open in UmpleOnline
SEG4110 - Topic C - Advanced UML and Umple 6
Associationsclass Student { id; name; }
class Course { description; code; }
class CourseSection {
sectionLetter;
1..* -- 1 Course;
}
association {
* CourseSection;
* Student registrant;
}
Open the above in UmpleOnline
SEG4110 - Topic C - Advanced UML and Umple 7
Selected patterns
class University {
singleton;
String name;
}
Open the above in UmpleOnline
SEG4110 - Topic A- Review of UML 8
Reminder about Labelling associations
• Each association can be labelled, to make explicit the nature of the association
SEG4110 - Topic A- Review of UML 9
Analyzing and validating associations 1
• Many-to-one
—A company has many employees,
—An employee can only work for one company.- This company will not store data about the moonlighting
activities of employees!
—A company can have zero employees- E.g. a ‘shell’ company
—It is not possible to be an employee unless you work for a company
*worksForEmployee Company1
SEG4110 - Topic A- Review of UML 10
Analyzing and validating associations 2
• Many-to-many
—A secretary can work for many managers
—A manager can have many secretaries
—Secretaries can work in pools
—Managers can have a group of secretaries
—Some managers might have zero secretaries.
—Is it possible for a secretary to have, perhaps temporarily, zero managers?
*
supervisor
*****1..*Assistant Manager
SEG4110 - Topic A- Review of UML 11
Analyzing and validating associations 3
• One-to-one
—For each company, there is exactly one board of directors
—A board is the board of only one company
—A company must always have a board
—A board must always be of some company
11
SEG4110 - Topic A- Review of UML 12
Analyzing and validating associations
Avoid unnecessary one-to-one associations
Avoid this do this
SEG4110 - Topic A- Review of UML 13
Association classes
• Sometimes, an attribute that concerns two associated classes cannot be placed in either of the classes
• The following are equivalent
SEG4110 - Topic A- Review of UML 14
Reflexive associations
• It is possible for an association to connect a class to itself
class Course
{
* prerequisite -- * Course successor;
* self multuallyExclusive;
}
Open in Umple (the symmetric reflexive association doesn’t show graphically yet)
SEG4110 - Topic A- Review of UML 15
Directionality in associations
• Associations are by default bi-directional
• It is possible to limit the direction of an association by adding an arrow at one end
• Open in Umple
SEG4110 - Topic A- Review of UML 16
Object Diagrams
• A link is an instance of an association
—In the same way that we say an object is an instance of a class
SEG4110 - Topic A- Review of UML 17
Inheritance and the Isa Rule
Inheritance• The implicit possession by all subclasses of features
defined in its superclasses
Always check generalizations to ensure they obey the isa rule
• “A checking account is an account”• “A village is a municipality”
Should ‘Province’ be a subclass of ‘Country’?• No, it violates the isa rule
—“A province is a country” is invalid!
SEG4110 - Topic A- Review of UML 18
Inheritance, Polymorphism and Variables
SEG4110 - Topic A- Review of UML 19
Avoiding unnecessarygeneralizations
rockbluesclassicaljazzmusic video
video audio
subcategory subcategorysubcategorysubcategorysubcategory
:RecordingCategory :RecordingCategory
:RecordingCategory :RecordingCategory :RecordingCategory :RecordingCategory:RecordingCategory
9th Symphony
:Recording
Let it be
:Recording
The BeatlesBeethoven
Inappropriate hierarchy ofclasses, which should beinstances
Improved class diagram,with its correspondinginstance diagram
SEG4110 - Topic A- Review of UML 20
Avoiding having instances change class
• An instance should never need to change class
SEG4110 - Topic A- Review of UML 21
• A composition is a strong kind of aggregation
—if the aggregate is destroyed, then the parts are destroyed as well
Composition
SEG4110 - Topic A- Review of UML 22
Interfaces
An interface describes a portion of the visible behaviour of a set of objects.
• An interface is similar to a class, except it lacks instance variables and implemented methods
SEG4110 - Topic A- Review of UML 23
OCL – More to come in a later lecture
SEG4110 - Topic A- Review of UML 24
Use Case Diagrams
SEG4110 - Topic A- Review of UML 25
Example of generalization, extension and inclusion
SEG4110 - Topic A- Review of UML 26
Example Description of a Use Case
SEG4110 - Topic A- Review of UML 27
Sequence diagrams – an example
SEG4110 - Topic A- Review of UML 28
• An iteration over objects is indicated by an asterisk preceding the message name
Sequence Diagrams – an example with replicated messages
SEG4110 - Topic A- Review of UML 29
• If an object’s life ends, this is shown with an X at the end of the lifeline
Sequence Diagrams – an example with object deletion
SEG4110 - Topic A- Review of UML 30
State Diagrams – an Example of Transitions with Time-outs and Conditions
SEG4110 - Topic A- Review of UML 31
State Diagrams – Example with Conditional Transitions - CourseSection class
requestToRegister (aStudent)/createRegistration
ClosedclassSize >= maximum
cancel
openRegistration
Planned
OpenEnoughStudents
OpenNotEnoughStudents
classSize >= minimum
requestToRegister (aStudent)/createRegistration
closeRegistration
closeRegistration
cancel
Cancelled
SEG4110 - Topic A- Review of UML 32
State Diagram – An Example with Substates CourseSection Class Again
Open the previous page and this one in Umple
SEG4110 - Topic A- Review of UML 33
Activity Diagrams – An Example –Course Registration
SEG4110 - Topic A- Review of UML 34
Package Diagrams
SEG4110 - Topic A- Review of UML 35
Example of Multi-Layer Systems
SEG4110 - Topic A- Review of UML 36
Component Diagrams
SEG4110 - Topic A- Review of UML 37
An Example of a Distributed System
SEG4110 - Topic A- Review of UML 38
Example of a Broker System
SEG4110 - Topic A- Review of UML 39
Example of a Pipe-and-Filter System -Sound Processing
SEG4110 - Topic A- Review of UML 40
Example of the MVC Architecture for a User Interface
SEG4110 - Topic A- Review of UML 41
Example of the Service-Oriented Architecture
SEG4110 - Topic A- Review of UML 42
Abstraction-Occurrence
SEG4110 - Topic A- Review of UML 43
Abstraction-Occurrence
Square variant
SEG4110 - Topic A- Review of UML 44
General Hierarchy
SEG4110 - Topic A- Review of UML 45
Player-Role
SEG4110 - Topic A- Review of UML 46
Singleton
SEG4110 - Topic A- Review of UML 47
Observer
SEG4110 - Topic A- Review of UML 48
Delegation
SEG4110 - Topic A- Review of UML 49
Façade
SEG4110 - Topic A- Review of UML 50
Proxy
SEG4110 - Topic A- Review of UML 51
Deployment Diagrams
Recommended