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.

Ooad Uml

7,496 views

Published on

Published in: Technology
  • Be the first to comment

Ooad Uml

  1. 1. Object Oriented Analysis and Design Using the UML Introduction to Object Orientation
  2. 2. Objectives: Introduction to Object Orientation • Understand the basic principles of object orientation • Understand the basic concepts and terms of object orientation and the associated UML notation • Appreciate the strengths of object orientation • Understand some basic UML modeling mechanisms
  3. 3. Introduction to Object Orientation Topics • Basic Principles of Object Orientation • Basic Concepts of Object Orientation • Strengths of Object Orientation • General UML Modeling Mechanisms
  4. 4. Basic Principles of Object Orientation Object Orientation Abstraction Encapsulation Modularity Hierarchy
  5. 5. What is Abstraction? Salesperson Not saying Which salesperson – just a salesperson in general!!! Product Customer Manages Complexity
  6. 6. What is Encapsulation? • Hide implementation from clients o Clients depend on interface How does an object encapsulate? What does it encapsulate? Improves Resiliency
  7. 7. What is Modularity? • The breaking up of something complex into manageable pieces Order Entry Order Processing System Order Fulfillment Billing Manages Complexity
  8. 8. What is Hierarchy? Asset • Levels of abstraction Increasing abstraction BankAccount Security RealEstate Savings Checking Stock Bond Decreasing Elements at the same level of the hierarchy should abstraction be at the same level of abstraction
  9. 9. Introduction to Object Orientation Topics • Basic Principles of Object Orientation • Basic Concepts of Object Orientation • Strengths of Object Orientation • General UML Modeling Mechanisms
  10. 10. Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
  11. 11. Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
  12. 12. What is an Object? • Informally, an object represents an entity, either physical, conceptual, or software • • Physical entity • Truck • Conceptual entity • • Software entity Chemical Process Linked List
  13. 13. A More Formal Definition • An object is a concept, abstraction, or thing with sharp boundaries and meaning for an application • An object is something that has: o State o Behavior o Identity
  14. 14. Representing Objects • An object is represented as rectangles with underlined names : Professor a + b = 10 ProfessorClark Class Name Only Professor Clark ProfessorClark : Professor Object Name Only Class and Object Name (stay tuned for classes)
  15. 15. Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
  16. 16. What is a Class? • A class is a description of a group of objects with common properties (attributes), behavior (operations), relationships, and semantics o An object is an instance of a class • A class is an abstraction in that it: o Emphasizes relevant characteristics o Suppresses other characteristics OO Principle: Abstraction
  17. 17. Sample Class Class Course Properties Behavior Name Add a student Location Delete a student Days offered a + b = 10 Get course roster Credit hours Determine if it is full Start time End time
  18. 18. Representing Classes • A class is represented using a compartmented rectangle a + b = 10 Professor Professor Clark
  19. 19. Class Compartments • A class is comprised of three sections o The first section contains the class name o The second section shows the structure (attributes) o The third section shows the behavior (operations) Class Name Professor name Attributes empID Operations create( ) save( ) delete( ) change( )
  20. 20. Classes of Objects • How many classes do you see?
  21. 21. The Relationship Between Classes and Objects • A class is an abstract definition of an object o It defines the structure and behavior of each object in the class o It serves as a template for creating objects • Objects are grouped into classes Objects Class Professor Professor Smith Professor Mellon Professor Jones
  22. 22. Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
  23. 23. What is an Attribute? Object Class Attribute Attribute Value :CourseOffering number = 101 startTime = 900 CourseOffering endTime = 1100 number startTime endTime :CourseOffering number = 104 startTime = 1300 endTime = 1500
  24. 24. Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
  25. 25. What is an Operation? CourseOffering Class addStudent deleteStudent getStartTime Operation getEndTime
  26. 26. Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
  27. 27. What is Polymorphism? • The ability to hide many different implementations behind a single interface Manufacturer B Manufacturer A Manufacturer C OO Principle: Encapsulation
  28. 28. What is an Interface? • Interfaces formalize polymorphism • Interfaces support “plug-and-play” architectures Tube <<interface>> Shape Pyramid Draw Move Scale Rotate Cube Realization relationship (stay tuned for realization relationships)
  29. 29. Interface Representations Tube Elided/Iconic Representation (“lollipop”) Pyramid Shape Cube Canonical Tube (Class/Stereotype) <<interface>> Representation Shape Pyramid Draw Move Scale Rotate Cube (stay tuned for realization relationships)
  30. 30. Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
  31. 31. What is a Component? • A non-trivial, nearly independent, and replaceable part of a system that fulfills a clear function in the context of a well- defined architecture • A component may be o A source code component OO Principle: o A run time components or Encapsulation o An executable component Source File <<EXE>> <<DLL>> Name Executable Component Name Component Name Interface
  32. 32. Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
  33. 33. What is a Package? • A package is a general purpose mechanism for organizing elements into groups • A model element which can contain other model elements OO Principle: Package Name Modularity • Uses o Organize the model under development o A unit of configuration management
  34. 34. Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
  35. 35. What is a Subsystem? • A combination of a package (can contain other model elements) and a class (has behavior) • Realizes one or more interfaces which define its behavior Realization Subsystem <<subsystem>> Interface Subsystem Name Interface OO Principles: Encapsulation and Modularity (stay tuned for realization relationship)
  36. 36. Subsystems and Components • Components are the physical realization of an abstraction in the design • Subsystems can be used to represent the component in the design Design Model Implementation Model <<subsystem>> Component Component Name Name Component Component Interface Interface OO Principles: Encapsulation and Modularity
  37. 37. Basic Concepts of Object Orientation • Object • Class • Attribute • Operation • Interface (Polymorphism) • Component • Package • Subsystem • Relationships
  38. 38. Relationships • Association o Aggregation o Composition • Dependency • Generalization • Realization
  39. 39. Relationships: Association • Models a semantic connection among classes Association Name Professor Works for University Association Role Names Class University Professor Employee Employer
  40. 40. Relationships: Aggregation • A special form of association that models a whole-part relationship between an aggregate (the whole) and its parts Whole Part Student Schedule Aggregation
  41. 41. Relationships: Composition • A form of aggregation with strong ownership and coincident lifetimes o The parts cannot survive the whole/aggregate Whole Part Student Schedule Aggregation
  42. 42. Association: Multiplicity and Navigation • Multiplicity defines how many objects participate in a relationships o The number of instances of one class related to ONE instance of the other class o Specified for each end of the association • Associations and aggregations are bi- directional by default, but it is often desirable to restrict navigation to one direction o If navigation is restricted, an arrowhead is added to indicate the direction of the navigation
  43. 43. Association: Multiplicity • Unspecified • Exactly one 1 • Zero or more (many, unlimited) 0..* • One or more * • Zero or one 1..* • Specified range 0..1 • Multiple, disjoint ranges 2..4 2, 4..6
  44. 44. Example: Multiplicity and Navigation Multiplicity Student 1 0..* Schedule Navigation
  45. 45. Relationships: Dependency • A relationship between two model elements where a change in one may cause a change in the other • Non-structural, “using” relationship Client Supplier Component Class Package Client Supplier Dependency relationship ClientPackage SupplierPackage Dependency relationship
  46. 46. Relationships: Generalization • A relationship among classes where one class shares the structure and/or behavior of one or more classes • Defines a hierarchy of abstractions in which a subclass inherits from one or more superclasses o Single inheritance o Multiple inheritance • Generalization is an “is-a-kind of” relationship
  47. 47. Example: Single Inheritance • One class inherits from another Ancestor Account balance name Superclass number (parent) Withdraw() CreateStatement() Generalization Relationship Checking Savings Subclasses Withdraw() GetInterest() Withdraw() Descendents
  48. 48. Example: Multiple Inheritance • A class can inherit from several other classes FlyingThing Animal multiple inheritance Airplane Helicopter Bird Wolf Horse Use multiple inheritance only when needed, and always with caution !
  49. 49. What Gets Inherited? • A subclass inherits its parent’s attributes, operations, and relationships • A subclass may: o Add additional attributes, operations, relationships o Redefine inherited operations (use caution!) • Common attributes, operations, and/or relationships are shown at the highest applicable level in the hierarchy Inheritance leverages the similarities among classes
  50. 50. Example: What Gets Inherited GroundVehicle owner Person Superclass weight (parent) licenseNumber 0..* 1 register( ) generalization Car Truck Trailer Subclass size tonnage getTax( )
  51. 51. Relationships: Realization • One classifier serves as the contract that the other classifier agrees to carry out • Found between: o Interfaces and the classifiers that realize them o Use cases and the collaborations that realize them Class Component Subsystem Interface Interface Interface Elided form Canonical form Use Case Use-Case Realization
  52. 52. In • Basic Principles of Object Orientation • Basic Concepts of Object Orientation • Strengths of Object Orientation • General UML Modeling Mechanisms
  53. 53. Strengths of Object Orientation • A single paradigm • Facilitates architectural and code reuse • Models more closely reflect the real world o More accurately describe corporate data and processes o Decomposed based on natural partitioning o Easier to understand and maintain • Stability o A small change in requirements does not mean massive changes in the system under development
  54. 54. Class Diagram for the Sales Example Sale seller buyer item sold shipping mechanism Salesperson Customer Product Vehicle Corporate Individual Truck Train
  55. 55. Effect of Requirements Change Suppose you need a new type of shipping vehicle ... Sale seller buyer item sold shipping mechanism Salesperson Customer Product Vehicle Corporate Individual Truck Train Airplane Change involves adding a new subclass
  56. 56. Introduction to Object Orientation Topics • Basic Principles of Object Orientation • Basic Concepts of Object Orientation • Strengths of Object Orientation • General UML Modeling Mechanisms
  57. 57. Stereotypes • Classify and extend the UML notational elements • Define a new model element in terms of another model element • May be applied to all modeling elements • Represented with name in guillemets or as a different icon <<boundary>> MyBoundaryClass MyBoundaryClass
  58. 58. Example: Stereotypes <<boundary>> <<boundary>> Sample boundary class <<trace>> (stereotype) DesignClass Stereotype of ‘dependency relation’ Stereotype of <<Processor>> These create new symbols using accustomed graphics. <<Processor>> Processor #1 Processor #1
  59. 59. Notes • A note can be added to any UML element • Notes may be added to add more information to the diagram • It is a ‘dog eared’ rectangle • The note may be anchored to an element with a dashed line There can be up to one MaintainScheduleForm per MaintainScheduleForm user session.
  60. 60. Tagged Values • Extensions of the properties, or specific attributes, of a UML element • Some properties are defined by UML o Persistence o Location (e.g., client, server) • Properties can be created by UML modelers for any purpose PersistentClass {persistence} anObject : ClassA {location=server}
  61. 61. Constraints • Supports the addition of new rules or modification of existing rules Member 1 Professor Department 1..* {subset} Department Head 1 1 This notation is used to capture two relationships between Professor-type objects and Department-type objects; where one relationship is a subset of another…. Shows how UML can be tailored to correctly modeling exact relationships….
  62. 62. Review: Introduction to Object Orientation • What are the four basic principles of object orientation? Provide a brief description of each. • What is an Object and what is a Class? What is the difference between them? • What is an Attribute? • What is an Operation? • What is an Interface? What is Polymorphism? • What is a Component? (continued)
  63. 63. Review: Introduction to Object Orientation (cont.) • What is a Package? • What is Subsystem? How does it relate to a Component? How does it relate to a package? How does it relate to a class? • Name the 4 basic UML relationships and describe each. • Describe the strengths of object orientation. • Name and describe some general UML mechanisms. • What are stereotypes? Name some common uses of stereotypes.

×