510 likes | 665 Views
SEG4110 – Advanced Software Design and Reengineering. TOPIC A Review of UML. 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.
E N D
SEG4110 – Advanced Software Design and Reengineering TOPIC A Review of UML
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
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 A- Review of UML
Umple • A technology for programming in UML • Model-Oriented Programming • Adds associations and attributes to programming languages • Java • PHP • Ruby • Standalone code-generator is online at • http://cruise.site.uottawa.ca/umpleonline/index.php SEG4110 - Topic C - Advanced UML and Umple
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
Associations • class 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
Selected patterns • class University { • singleton; • String name; • } • Open the above in UmpleOnline SEG4110 - Topic C - Advanced UML and Umple
Reminder about Labelling associations • Each association can be labelled, to make explicit the nature of the association SEG4110 - Topic A- Review of UML
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 worksFor 1 Employee Company * SEG4110 - Topic A- Review of UML
* 1..* * * * * * Assistant Manager supervisor 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? SEG4110 - Topic A- Review of UML
1 1 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 SEG4110 - Topic A- Review of UML
Analyzing and validating associations • Avoid unnecessary one-to-one associations • Avoid this do this SEG4110 - Topic A- Review of UML
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
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
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
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
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
Inheritance, Polymorphism and Variables SEG4110 - Topic A- Review of UML
Avoiding unnecessarygeneralizations Inappropriate hierarchy of classes, which should be instances Improved class diagram, with its corresponding instance diagram :RecordingCategory :RecordingCategory video audio subcategory subcategory subcategory subcategory subcategory :RecordingCategory :RecordingCategory :RecordingCategory :RecordingCategory :RecordingCategory music video jazz classical blues rock :Recording :Recording Let it be 9th Symphony The Beatles Beethoven SEG4110 - Topic A- Review of UML
Avoiding having instances change class • An instance should never need to change class SEG4110 - Topic A- Review of UML
Composition • A composition is a strong kind of aggregation • if the aggregate is destroyed, then the parts are destroyed as well SEG4110 - Topic A- Review of UML
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
OCL – More to come in a later lecture SEG4110 - Topic A- Review of UML
Use Case Diagrams SEG4110 - Topic A- Review of UML
Example of generalization, extension and inclusion SEG4110 - Topic A- Review of UML
Example Description of a Use Case SEG4110 - Topic A- Review of UML
Sequence diagrams – an example SEG4110 - Topic A- Review of UML
Sequence Diagrams – an example with replicated messages • An iteration over objects is indicated by an asterisk preceding the message name SEG4110 - Topic A- Review of UML
Sequence Diagrams – an example with object deletion • If an object’s life ends, this is shown with an X at the end of the lifeline SEG4110 - Topic A- Review of UML
State Diagrams – an Example of Transitions with Time-outs and Conditions SEG4110 - Topic A- Review of UML
State Diagrams – Example with Conditional Transitions - CourseSection class Planned openRegistration closeRegistration requestToRegister (aStudent) OpenNotEnoughStudents Cancelled cancel /createRegistration classSize >= minimum cancel closeRegistration requestToRegister (aStudent) Closed OpenEnoughStudents classSize >= maximum /createRegistration SEG4110 - Topic A- Review of UML
State Diagram – An Example with Substates CourseSection Class Again Open the previous page and this one in Umple SEG4110 - Topic A- Review of UML
Activity Diagrams – An Example –Course Registration SEG4110 - Topic A- Review of UML
Package Diagrams SEG4110 - Topic A- Review of UML
Example of Multi-Layer Systems SEG4110 - Topic A- Review of UML
Component Diagrams SEG4110 - Topic A- Review of UML
An Example of a Distributed System SEG4110 - Topic A- Review of UML
Example of a Broker System SEG4110 - Topic A- Review of UML
Example of a Pipe-and-Filter System -Sound Processing SEG4110 - Topic A- Review of UML
Example of the MVC Architecture for a User Interface SEG4110 - Topic A- Review of UML
Example of the Service-Oriented Architecture SEG4110 - Topic A- Review of UML
Abstraction-Occurrence SEG4110 - Topic A- Review of UML
Abstraction-Occurrence • Square variant SEG4110 - Topic A- Review of UML
General Hierarchy SEG4110 - Topic A- Review of UML
Player-Role SEG4110 - Topic A- Review of UML
Singleton SEG4110 - Topic A- Review of UML
Observer SEG4110 - Topic A- Review of UML
Delegation SEG4110 - Topic A- Review of UML
Façade SEG4110 - Topic A- Review of UML
Proxy SEG4110 - Topic A- Review of UML