1、Object Oriented Analysis and Design Using the UML Version 4.2,Introduction to Object Orientation,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 Apprecia
2、te the strengths of object orientation Understand some basic UML modeling mechanisms,Introduction to Object Orientation Topics,Basic Principles of Object Orientation Basic Concepts of Object Orientation Strengths of Object Orientation General UML Modeling Mechanisms,Basic Principles of Object Orient
3、ation,Salesperson Not saying Which salesperson just a salesperson in general!,Customer,Product,Manages Complexity,What is Abstraction?,Improves Resiliency,What is Encapsulation?,Hide implementation from clients Clients depend on interface,How does an object encapsulate? What does it encapsulate?,Ord
4、er Processing System,Billing,Order Entry,Order Fulfillment,Manages Complexity,What is Modularity?,The breaking up of something complex into manageable pieces,Asset,RealEstate,Savings,BankAccount,Checking,Stock,Security,Bond,Elements at the same level of the hierarchy should be at the same level of a
5、bstraction,What is Hierarchy?,Levels of abstraction,Introduction to Object Orientation Topics,Basic Principles of Object Orientation Basic Concepts of Object Orientation Strengths of Object Orientation General UML Modeling Mechanisms,Basic Concepts of Object Orientation,Object Class Attribute Operat
6、ion Interface (Polymorphism) Component Package Subsystem Relationships,Basic Concepts of Object Orientation,Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships,Chemical Process,What is an Object?,Informally, an object represents an entity, either physi
7、cal, conceptual, or software Physical entity Conceptual entity Software entity,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: State Behavior Identity,: Professor,a + b = 10,ProfessorClark :
8、Professor,ProfessorClark,Class Name Only,Object Name Only,Class and Object Name,(stay tuned for classes),Representing Objects,An object is represented as rectangles with underlined names,Basic Concepts of Object Orientation,Object Class Attribute Operation Interface (Polymorphism) Component Package
9、Subsystem Relationships,OO Principle: Abstraction,What is a Class?,A class is a description of a group of objects with common properties (attributes), behavior (operations), relationships, and semantics An object is an instance of a class A class is an abstraction in that it: Emphasizes relevant cha
10、racteristics Suppresses other characteristics,a + b = 10,Class Course,Properties Name Location Days offered Credit hours Start time End time,Behavior Add a student Delete a student Get course roster Determine if it is full,Sample Class,Professor,Professor Clark,a + b = 10,Representing Classes,A clas
11、s is represented using a compartmented rectangle,Class Compartments,A class is comprised of three sections The first section contains the class name The second section shows the structure (attributes) The third section shows the behavior (operations),Classes of Objects,How many classes do you see?,O
12、bjects,Class,Professor,The Relationship Between Classes and Objects,A class is an abstract definition of an object It defines the structure and behavior of each object in the class It serves as a template for creating objects Objects are grouped into classes,Basic Concepts of Object Orientation,Obje
13、ct Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships,Class,Attribute,Object,Attribute Value,What is an Attribute?,Basic Concepts of Object Orientation,Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships,Class,
14、Operation,What is an Operation?,Basic Concepts of Object Orientation,Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships,OO Principle: Encapsulation,What is Polymorphism?,The ability to hide many different implementations behind a single interface,Real
15、ization relationship,(stay tuned for realization relationships),What is an Interface?,Interfaces formalize polymorphism Interfaces support “plug-and-play” architectures,Shape,Elided/Iconic Representation (“lollipop”),Canonical (Class/Stereotype) Representation,(stay tuned for realization relationshi
16、ps),Interface Representations,Basic Concepts of Object Orientation,Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships,Source File Name, Executable Name,OO Principle: Encapsulation,What is a Component?,A non-trivial, nearly independent, and replaceable
17、 part of a system that fulfills a clear function in the context of a well-defined architecture A component may be A source code component A run time components or An executable component,Basic Concepts of Object Orientation,Object Class Attribute Operation Interface (Polymorphism) Component Package
18、Subsystem Relationships,Package Name,OO Principle: Modularity,What is a Package?,A package is a general purpose mechanism for organizing elements into groups A model element which can contain other model elementsUses Organize the model under development A unit of configuration management,Basic Conce
19、pts of Object Orientation,Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships,OO Principles: Encapsulation and Modularity,(stay tuned for realization relationship),What is a Subsystem?,A combination of a package (can contain other model elements) and a
20、 class (has behavior) Realizes one or more interfaces which define its behavior,Component Name,Design Model,Implementation Model,Component Interface,OO Principles: Encapsulation and Modularity,Subsystems and Components,Components are the physical realization of an abstraction in the design Subsystem
21、s can be used to represent the component in the design,Basic Concepts of Object Orientation,Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships,Relationships,Association Aggregation Composition Dependency Generalization Realization,Employer,Employee,Ro
22、le Names,Relationships: Association,Models a semantic connection among classes,Whole,Aggregation,Part,Relationships: Aggregation,A special form of association that models a whole-part relationship between an aggregate (the whole) and its parts,Whole,Aggregation,Part,Relationships: Composition,A form
23、 of aggregation with strong ownership and coincident lifetimes The parts cannot survive the whole/aggregate,Association: Multiplicity and Navigation,Multiplicity defines how many objects participate in a relationships The number of instances of one class related to ONE instance of the other class Sp
24、ecified 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 If navigation is restricted, an arrowhead is added to indicate the direction of the navigation,Association: Multiplicity,1,Unspecifie
25、d Exactly one Zero or more (many, unlimited)One or more Zero or one Specified range Multiple, disjoint ranges,1,0*,Multiplicity,Navigation,Example: Multiplicity and Navigation,Client,Supplier,Package,ClientPackage,SupplierPackage,Client,Supplier,Class,Dependency relationship,Dependency relationship,
26、Component,Relationships: Dependency,A relationship between two model elements where a change in one may cause a change in the other Non-structural, “using” relationship,Relationships: Generalization,A relationship among classes where one class shares the structure and/or behavior of one or more clas
27、ses Defines a hierarchy of abstractions in which a subclass inherits from one or more superclasses Single inheritance Multiple inheritance Generalization is an “is-a-kind of” relationship,Superclass (parent),Subclasses,Generalization Relationship,Ancestor,Descendents,Example: Single Inheritance,One
28、class inherits from another,Airplane,Helicopter,Wolf,Horse,FlyingThing,Animal,Bird,multiple inheritance,Use multiple inheritance only when needed, and always with caution !,Example: Multiple Inheritance,A class can inherit from several other classes,Inheritance leverages the similarities among class
29、es,What Gets Inherited?,A subclass inherits its parents attributes, operations, and relationships A subclass may: Add additional attributes, operations, relationships Redefine inherited operations (use caution!) Common attributes, operations, and/or relationships are shown at the highest applicable
30、level in the hierarchy,Truck,tonnage,GroundVehicle,weight,licenseNumber,Car,owner,register( ),getTax( ),0*,1,Superclass (parent),Subclass,generalization,size,Example: What Gets Inherited,Elided form,Canonical form,Relationships: Realization,One classifier serves as the contract that the other classi
31、fier agrees to carry out Found between: Interfaces and the classifiers that realize themUse cases and the collaborations that realize them,In,Basic Principles of Object Orientation Basic Concepts of Object Orientation Strengths of Object Orientation General UML Modeling Mechanisms,Strengths of Objec
32、t Orientation,A single paradigm Facilitates architectural and code reuse Models more closely reflect the real world More accurately describe corporate data and processes Decomposed based on natural partitioning Easier to understand and maintain Stability A small change in requirements does not mean
33、massive changes in the system under development,Class Diagram for the Sales Example,seller,buyer,item sold,shipping mechanism,Effect of Requirements Change,Suppose you need a new type of shipping vehicle .,Salesperson,Product,Sale,Corporate,Customer,Individual,Vehicle,seller,buyer,item sold,shipping
34、 mechanism,Introduction to Object Orientation Topics,Basic Principles of Object Orientation Basic Concepts of Object Orientation Strengths of Object Orientation General UML Modeling Mechanisms,Stereotypes,Classify and extend the UML notational elements Define a new model element in terms of another
35、model element May be applied to all modeling elements Represented with name in guillemets or as a different icon,Processor #1,Processor #1,Example: Stereotypes,Sample boundary class (stereotype) Stereotype of dependency relation Stereotype of These create new symbols using accustomed graphics.,There
36、 can be up to one,MaintainScheduleForm per,user session.,MaintainScheduleForm,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,Tagged Values,Extensions of the p
37、roperties, or specific attributes, of a UML element Some properties are defined by UML Persistence Location (e.g., client, server) Properties can be created by UML modelers for any purpose,Professor,Department,Member,Department Head,subset,1*,1,1,1,Constraints,Supports the addition of new rules or m
38、odification of existing rules,This notation is used to capture two relationships between Professor-type objectsand Department-type objects; where one relationship is a subset of another.Shows how UML can be tailored to correctly modeling exact relationships.,(continued),Review: Introduction to Objec
39、t 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?,Review
40、: 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.,