Your SlideShare is downloading. ×
0
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Rebooting the UML
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Rebooting the UML

309

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

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
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
309
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Rebooting the UML Emphasising “Language” Over “Modelling” Phil Robinson LonsdaleSystems.comLonsdaleSystems.com 1
  • 2. Mmmm… Wonder what I will be doing in 10 years time? AUSOUGConference 1999LonsdaleSystems.com 2
  • 3. UNIFIED Formed or united into a wholeLonsdaleSystems.com 4
  • 4. The act of representingMODELLING something (usually on a smaller scale) LonsdaleSystems.com 5
  • 5. A systematic means of communicating by the use of sounds or conventionalLANGUAGE symbols LonsdaleSystems.com 6
  • 6. Software Development Languages Ambiguity Low High Program code High Natural language Rigour Low Box and arrow diagramsLonsdaleSystems.com 7
  • 7. Program Code • Compiler enforces rigour • Testing resolves ambiguityLonsdaleSystems.com 8
  • 8. Natural Language Rigour• Word types – Noun – Adjective – Verb – Adverb• Word order – Subject Verb Object Mary had a little lambLonsdaleSystems.com 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. “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. “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. 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. Box and Arrow DiagramsLonsdaleSystems.com 15
  • 14. Languages and Software Development Ambiguity Low High Program code High UML Natural language Rigour Low Box and arrow diagramsLonsdaleSystems.com 16
  • 15. «artifact» Object Artifact Vocabulary Package ClassUML Symbols Use Case Actor Node ComponentLonsdaleSystems.com 17
  • 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. 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. 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. UML Class Diagrams Chair responsibilities Indicate status Support peopleLonsdaleSystems.com 21
  • 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. 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. 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. 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. 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. UML Activity Diagram «centralBuffer» chair stack :Chair :Chair Arrange Stack chairs chairs :Chair :ChairLonsdaleSystems.com 27
  • 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. Rebooting the UML Emphasising “Language” Over “Modelling” Questions LonsdaleSystems.com conference.lonsdalesystems.comLonsdaleSystems.com 29

×