1 / 51

SEG4110 – Advanced Software Design and Reengineering

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.

thom
Download Presentation

SEG4110 – Advanced Software Design and Reengineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SEG4110 – Advanced Software Design and Reengineering 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 A- Review of UML

  4. 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

  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. 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

  7. Selected patterns • class University { • singleton; • String name; • } • Open the above in UmpleOnline SEG4110 - Topic C - Advanced UML and Umple

  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 worksFor 1 Employee Company * SEG4110 - Topic A- Review of UML

  10. * 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

  11. 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

  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 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

  20. Avoiding having instances change class • An instance should never need to change class SEG4110 - Topic A- Review of UML

  21. 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

  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. 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

  29. 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

  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 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

  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

More Related