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.

Introduction to UML

3,240 views

Published on

An introduction to understanding and using UML for object-oriented design.

Published in: Technology
  • Be the first to comment

Introduction to UML

  1. 1. Introduction to UML Diagramming
  2. 2. Problems have many solutions
  3. 3. Design is about choosing one http://morguefile.com/archive/?display=66493 http://flickr.com/photos/chidorian/4795357/in/set-384742/
  4. 4. Why model?
  5. 5. To visualize http://www.rohdesign.com/weblog/archives/000896.html
  6. 6. To communicate Electronic schematic of GEE radar (AMES type 7000) used in second world war by the allies
  7. 7. To emphasize DaVinci’s Flush Toilet
  8. 8. The UML is a standard graphical notation for describing object-oriented software systems
  9. 9. Use UML to visualize, communicate, and emphasize your choices
  10. 10. 1 Library checkout 1 Membership return start : Date renewal : Date * due : Date LendRecord Lendable 1 returned : Boolean id newArrival : Boolean * LendRecord(lendable, member, date) calcDueDate(member): Date isDue() : Boolean renew(Date) * Book CD 1 * Member DVD Goal: Understand this
  11. 11. : Library aMember aLendable checkout(lendable, member) canBorrow(lendable) numOut(member) opt calcDueDate(member) { canBorrow == true } dueDate record new aLendRecord And this
  12. 12. Class Diagram Elements Class Package Class Attributes Operations
  13. 13. Class Diagram Elements Association multiplicity navigability role
  14. 14. Class Diagram Elements Complex Associations association class key value
  15. 15. Class Diagram Elements Dependency depends on
  16. 16. Class Diagram Elements Generalization superclass subclasses
  17. 17. Class Diagram Elements Providing and Requiring Interfaces implementor uses interface
  18. 18. left BinaryTree 1 0..1 0..1 1 add(obj: Obect) remove(obj) root TreeNode Object contains(obj):bool 0..1 right <<interface>> TreeIterator hasNext : bool next : Object PrefixTreeIterator PostfixTreeIterator InfixTreeIterator Example: Binary tree
  19. 19. 1 Library checkout 1 Membership return start : Date renewal : Date * due : Date LendRecord Lendable 1 returned : Boolean id newArrival : Boolean * LendRecord(lendable, member, date) calcDueDate(member): Date isDue() : Boolean renew(Date) * Book CD 1 * Member DVD Example: Library Classes
  20. 20. Sequence Diagram Elements Object lifeline object lifeline
  21. 21. Sequence diagram elements Object activation message activation return bar
  22. 22. Sequence diagram elements Object creation and deletion object creation object destruction
  23. 23. Sequence diagram elements Callbacks
  24. 24. Sequence diagram elements Object calling itself
  25. 25. Sequence diagram elements Loops operator guard interaction frame
  26. 26. Sequence diagram elements Conditionals alternative separator
  27. 27. aPanel child : Component dc : DrawingContext paint(dc) loop paint(dc) drawOperation(args) { forEach child } Example: Panel painting
  28. 28. : Library aMember aLendable checkout(lendable, member) canBorrow(lendable) numOut(member) opt calcDueDate(member) { canBorrow == true } dueDate record new aLendRecord Example: Library Checkout
  29. 29. 1: checkout(lendable, member) 1.1: canBorrow(lendable) :Library 1.3: record aMember 1.1.1: numOut(member) 1.2: calcDueDate(member) <<create>> 1.3.1: new aLendable aLendRecord Communication Diagram
  30. 30. Data View Model SQLServer Oracle Package Diagram
  31. 31. Actor Actor Actor start Activity fork Activity Activity {condition} Activity Activity {condition} join end Activity Diagram
  32. 32. <<include>> Common Role Use Case Use Case Role <<include>> Use Case Use Case Role Role Use Case Diagram
  33. 33. UML in UML
  34. 34. Resources • UML Distilled by Martin Fowler • http://bdn.borland.com/article/ 0,1410,31863,00.html • http://www.uml.org • http://www.agilemodeling.com
  35. 35. (cc) 2006 Lou Franco Released under the following creative commons license Attribution-NonCommercial-ShareAlike 2.0 http://creativecommons.org/licenses/by-nc-sa/2.0 Each photograph used has a URL for attribution. Please see the original site for the photo’s license.

×