SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.
-
Upload
owen-walters -
Category
Documents
-
view
237 -
download
2
Transcript of SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.
![Page 1: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/1.jpg)
SEG4110 – Advanced Software Design and Reengineering
TOPIC A
Review of UML
![Page 2: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/2.jpg)
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
![Page 3: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/3.jpg)
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
![Page 4: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/4.jpg)
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
![Page 5: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/5.jpg)
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
![Page 6: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/6.jpg)
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
![Page 7: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/7.jpg)
SEG4110 - Topic C - Advanced UML and Umple 7
Selected patterns
class University {
singleton;
String name;
}
Open the above in UmpleOnline
![Page 8: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/8.jpg)
SEG4110 - Topic A- Review of UML 8
Reminder about Labelling associations
• Each association can be labelled, to make explicit the nature of the association
![Page 9: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/9.jpg)
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
![Page 10: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/10.jpg)
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
![Page 11: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/11.jpg)
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
![Page 12: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/12.jpg)
SEG4110 - Topic A- Review of UML 12
Analyzing and validating associations
Avoid unnecessary one-to-one associations
Avoid this do this
![Page 13: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/13.jpg)
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
![Page 14: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/14.jpg)
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)
![Page 15: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/15.jpg)
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
![Page 16: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/16.jpg)
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
![Page 17: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/17.jpg)
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!
![Page 18: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/18.jpg)
SEG4110 - Topic A- Review of UML 18
Inheritance, Polymorphism and Variables
![Page 19: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/19.jpg)
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
![Page 20: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/20.jpg)
SEG4110 - Topic A- Review of UML 20
Avoiding having instances change class
• An instance should never need to change class
![Page 21: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/21.jpg)
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
![Page 22: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/22.jpg)
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
![Page 23: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/23.jpg)
SEG4110 - Topic A- Review of UML 23
OCL – More to come in a later lecture
![Page 24: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/24.jpg)
SEG4110 - Topic A- Review of UML 24
Use Case Diagrams
![Page 25: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/25.jpg)
SEG4110 - Topic A- Review of UML 25
Example of generalization, extension and inclusion
![Page 26: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/26.jpg)
SEG4110 - Topic A- Review of UML 26
Example Description of a Use Case
![Page 27: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/27.jpg)
SEG4110 - Topic A- Review of UML 27
Sequence diagrams – an example
![Page 28: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/28.jpg)
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
![Page 29: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/29.jpg)
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
![Page 30: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/30.jpg)
SEG4110 - Topic A- Review of UML 30
State Diagrams – an Example of Transitions with Time-outs and Conditions
![Page 31: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/31.jpg)
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
![Page 32: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/32.jpg)
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
![Page 33: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/33.jpg)
SEG4110 - Topic A- Review of UML 33
Activity Diagrams – An Example –Course Registration
![Page 34: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/34.jpg)
SEG4110 - Topic A- Review of UML 34
Package Diagrams
![Page 35: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/35.jpg)
SEG4110 - Topic A- Review of UML 35
Example of Multi-Layer Systems
![Page 36: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/36.jpg)
SEG4110 - Topic A- Review of UML 36
Component Diagrams
![Page 37: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/37.jpg)
SEG4110 - Topic A- Review of UML 37
An Example of a Distributed System
![Page 38: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/38.jpg)
SEG4110 - Topic A- Review of UML 38
Example of a Broker System
![Page 39: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/39.jpg)
SEG4110 - Topic A- Review of UML 39
Example of a Pipe-and-Filter System -Sound Processing
![Page 40: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/40.jpg)
SEG4110 - Topic A- Review of UML 40
Example of the MVC Architecture for a User Interface
![Page 41: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/41.jpg)
SEG4110 - Topic A- Review of UML 41
Example of the Service-Oriented Architecture
![Page 42: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/42.jpg)
SEG4110 - Topic A- Review of UML 42
Abstraction-Occurrence
![Page 43: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/43.jpg)
SEG4110 - Topic A- Review of UML 43
Abstraction-Occurrence
Square variant
![Page 44: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/44.jpg)
SEG4110 - Topic A- Review of UML 44
General Hierarchy
![Page 45: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/45.jpg)
SEG4110 - Topic A- Review of UML 45
Player-Role
![Page 46: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/46.jpg)
SEG4110 - Topic A- Review of UML 46
Singleton
![Page 47: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/47.jpg)
SEG4110 - Topic A- Review of UML 47
Observer
![Page 48: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/48.jpg)
SEG4110 - Topic A- Review of UML 48
Delegation
![Page 49: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/49.jpg)
SEG4110 - Topic A- Review of UML 49
Façade
![Page 50: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/50.jpg)
SEG4110 - Topic A- Review of UML 50
Proxy
![Page 51: SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML.](https://reader036.fdocuments.net/reader036/viewer/2022062318/551bee71550346af588b6561/html5/thumbnails/51.jpg)
SEG4110 - Topic A- Review of UML 51
Deployment Diagrams