Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rebooting the UML

1,130 views

Published on

It is more than 10 years since the author gave his first presentation on the UML at an Oracle conference in Perth. Since then, many would argue that the UML has failed to take the world by storm. Some see the popularity of Agile techniques as a backlash against bloated “methodologies” that advocate “modelling for modelling’s sake”.

This paper takes a second look at the “Unified Modelling Language” and argues that perhaps the mistake has been to place too much emphasis on "modelling" and not enough on "language".

The session is packed with practical tips on how to apply the UML in new and innovative ways.

Presented at WA Oracle User Conference (AUSOUG) 2009 - voted best paper.

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Rebooting the UML

  1. 1. Rebooting the UML Emphasising “Language” Over “Modelling” Phil Robinson LonsdaleSystems.comLonsdaleSystems.com 1
  2. 2. Mmmm… Wonder what I will be doing in 10 years time? AUSOUGConference 1999LonsdaleSystems.com 2
  3. 3. UNIFIED Formed or united into a wholeLonsdaleSystems.com 4
  4. 4. The act of representingMODELLING something (usually on a smaller scale) LonsdaleSystems.com 5
  5. 5. A systematic means of communicating by the use of sounds or conventionalLANGUAGE symbols LonsdaleSystems.com 6
  6. 6. Software Development Languages Ambiguity Low High Program code High Natural language Rigour Low Box and arrow diagramsLonsdaleSystems.com 7
  7. 7. Program Code • Compiler enforces rigour • Testing resolves ambiguityLonsdaleSystems.com 8
  8. 8. Natural Language Rigour• Word types – Noun – Adjective – Verb – Adverb• Word order – Subject Verb Object Mary had a little lambLonsdaleSystems.com 9
  9. 9. Natural language Ambiguity • … the 500 words used most in the English language … • … each have an average of 23 different meanings … Oxford English DictionaryLonsdaleSystems.com 10
  10. 10. “Have” verb and auxiliary verb; past plural “Had”1. to possess; own; hold for use; 11. to partake of; eat or drink contain 12. to permit or allow2. to hold, possess, or accept in 13. to assert, maintain, or represent some relation, as of kindred or as being relative position 14. to know, understand, or be3. to get, receive, or take skilled in4. to experience, undergo, or 15. to beget or give birth to endure, as joy or 16. to hold an advantage over5. to hold in mind, sight, etc 17. to outwit, deceive, or cheat6. to cause to, as by command or 18. to control or possess through invitation bribery; bribe7. to be related to or be in a 19. to gain possession of certain relation to 20. to hold or put in a certain8. to show or exhibit in action or position or situation words 21. to exercise, display, or make use9. to be identified or distinguished of by; possess the characteristic of 22. to invite or cause to be present as a companion or guest10. to engage in or carry on LonsdaleSystems.com 11
  11. 11. “Lamb” noun 1. a young sheep 2. the meat of a young sheep 3. a person who is gentle, meek or innocent 4. a person who is easily cheated or outsmartedLonsdaleSystems.com 12
  12. 12. Natural Language Ambiguity• Mary possessed a young sheep• Mary eat a small portion of meat from a young sheep• Mary received a small portion of meat from a young sheep• Mary took a small portion of meat from a young sheep• Mary gave birth to a young sheep• Mary had in mind a gentle person• Mary possessed the characteristics of an innocent person• Mary invited an innocent person• Mary cheated a naive person• Mary controlled an inexperienced person LonsdaleSystems.com 13
  13. 13. Box and Arrow DiagramsLonsdaleSystems.com 15
  14. 14. Languages and Software Development Ambiguity Low High Program code High UML Natural language Rigour Low Box and arrow diagramsLonsdaleSystems.com 16
  15. 15. «artifact» Object Artifact Vocabulary Package ClassUML Symbols Use Case Actor Node ComponentLonsdaleSystems.com 17
  16. 16. DiagramsBox and arrow Car Cardiagrams RepositoryUML Repository Person Driver Passenger Car Trip UML Meta-Model Grammar Artifact Object Class Package Actor Use Case Node Component LonsdaleSystems.com 18
  17. 17. UML Object Diagrams had pet mary :Person :Sheep age < 10 years age < 6 months mary :Sheep mother had offspring :Sheep gender = female age = 0 age > 18 months mary :Person diner had lamb :Meal portion size = small mary :Person con artist had victim :Person personality = naieveLonsdaleSystems.com 19
  18. 18. UML Class public class Chair { Diagrams private private ChairStyle style; float minHeight; private float maxHeight; Chair private boolean isAdjustableHeight; - style: ChairStyle - minHeight: float public sit(Person occupant){ - maxHeight: float … - hasAdjustableHeight: boolean } + sit(occupant :Person) + stand(occupant :Person) public stand(Person occupant){ … } «enumeration» } ChairStyle Dining public enum ChairStyle { Lounge Dining, Sofa Swivel Lounge, Reclining Sofa, Stool Swivel, Reclining, StoolLonsdaleSystems.com } 20
  19. 19. UML Class Diagrams Chair responsibilities Indicate status Support peopleLonsdaleSystems.com 21
  20. 20. UML Class Diagrams Chair responsibilities Indicate status Support people constraints {height >= 40 cm} {height <= 85 cm} {must be stable} {must be comfortable}LonsdaleSystems.com 22
  21. 21. UML Class Diagrams Table Chair responsibilities organises Arranged around responsibilitiesProvide social organisation Indicate status 0..1 {at any instant in time} 0..* Support peopleSupport objects constraints constraints{height >= 50 cm} organises Arranged around {height >= 40 cm}{height <= 1.2 m} {height <= 85 cm}{must be stable} 1..* {over time} 0..* {must be stable} {must be comfortable} LonsdaleSystems.com 23
  22. 22. UML Class Diagrams Chair responsibilities Indicate status Support people constraints {height >= 40 cm} {height <= 85 cm} {must be stable} {must be comfortable} part 1..4 ChairLeg responsibilities Provide stability Support seat constraints {capable of supporting a person}LonsdaleSystems.com 24
  23. 23. UML Class Diagrams Suite responsibilities Ensure consistent style constraints {chairs must have matching styles} member 2..* Chair responsibilities Indicate status Support people constraints {height >= 40 cm} {height <= 85 cm} {must be stable} {must be comfortable}LonsdaleSystems.com 25
  24. 24. Furniture UML Class Diagrams {abstract} responsibilities Satisfy symbolic or religous purposes Support human activities Chair Table Storage {abstract} responsibilities responsibilitiesIndicate status Provide social organisation responsibilitiesSupport people Support objects Store objects ::Furniture constraints constraints Support human activities{height >= 40 cm} {height >= 50 cm} Satisfy symbolic or religous purposes{height <= 85 cm} {height <= 1.2 m}{must be stable} {must be stable}{must be comfortable} Cabinet Wardrobe Bookcase Safe responsibilities responsibilities responsibilities responsibilities ::Storage Store clothes Display books Provide secure object storageStore objects ::Storage Store books ::Storage ::Furniture Store objects ::Storage Store objectsSupport human activities ::Furniture Store objects ::FurnitureSatisfy symbolic or religous purposes Support human activities ::Furniture Support human activities Satisfy symbolic or religous purposes Support human activities Satisfy symbolic or religous purposes Satisfy symbolic or religous purposes constraints {must have a locking mechanism}LonsdaleSystems.com 26
  25. 25. UML Activity Diagram «centralBuffer» chair stack :Chair :Chair Arrange Stack chairs chairs :Chair :ChairLonsdaleSystems.com 27
  26. 26. UML State Machine Diagram Stacked + do / store + exit / check for damage /Stack chairs /Arrange chairs Arranged + entry / wipe clean + do / useLonsdaleSystems.com 28
  27. 27. Rebooting the UML Emphasising “Language” Over “Modelling” Questions LonsdaleSystems.com conference.lonsdalesystems.comLonsdaleSystems.com 29

×