You are on page 1of 61

Introduction to Object Modeling

Object-oriented analysis (OOA) – an approach used
to
1. study existing objects to see if they can be reused or adapted
for new uses
2. define new or modified objects that will be combined with
existing objects into a useful business computing application

Object modeling – a technique for identifying objects
within the systems environment and the relationships
between those objects.

Object Oriented Analysis and Design 1

Introduction to the UML
Unified Modeling Language (UML)
– a set of modeling conventions that
is used to specify or describe a
software system in terms of objects.
– The UML does not prescribe a method
for developing systems—only a notation
that is now widely accepted as a
standard for object modeling.

Object Oriented Analysis and Design 2

Analysis and Design
• Analysis • Design
– Captures requirements – Makes strategic and
and problem domain tactical decisions to
meet requirements
– What to do – How to do it (above
code level)

– Creates analysis – Creates design models
models • Static class view
• Use case view • State machine view
• Static class view • Interaction view
Object Oriented Analysis and Design 3

et al Statecharts Before and after Frameworks and patterns.Mellor Odell Object lifecycles Classification Object Oriented Analysis and Design 4 . conditions HP Fusion Booch Operation descriptions and Booch method message numbering Embley Rumbaugh Singleton classes and OMT high-level view Jacobson Wirfs-Brock OOSE Responsibilities Shlaer . Contributions to the UML Harel Meyer Gamma.

Basic Principles of Object Orientation Object Orientation Encapsulation Abstraction Modularity Hierarchy Object Oriented Analysis and Design 5 .

What is Abstraction? Salesperso n Not saying Which salesperso n – just a salesperso n in Product Customer general!!! Manages Complexity Object Oriented Analysis and Design 6 .

What is Encapsulation? • Hide implementation from clients – Clients depend on interface How does an object encapsulate? What does it encapsulate? Improves Resiliency Object Oriented Analysis and Design 7 .

What is Modularity? • The breaking up of something complex into manageable pieces Order Entry Order Processing System Order Fulfillment Billing Manages Complexity Object Oriented Analysis and Design 8 .

What is Hierarchy? Increasing • Levels of abstraction Asset abstraction BankAccount Security RealEstate Savings Checking Stock Bond Decreasing Elements at the same level of the hierarchy abstraction should be at the same level of abstraction Object Oriented Analysis and Design 9 .

vehicle. videotape Attribute – the data that represent characteristics of interest about an object. Object Oriented Analysis and Design 10 . touched. customer. or event. student – Warehouse. room – Product.Objects. building. & Instances Object – something that is or is capable of being seen. computer. office. and about which users store data and associate behavior. place. Object instance – each specific person. – Person. thing. instructor. or otherwise sensed. place. Attributes. as well as the values for the attributes of that object. thing. or event – Employee.

an object represents an entity. conceptual. or software – Physical entity Truck – Conceptual entity Chemical Process – Software entity Linked List Object Oriented Analysis and Design 11 . either physical. What is an Object? • Informally.

abstraction. or thing with sharp boundaries and meaning for an application • An object is something that has: – State – Behavior – Identity Object Oriented Analysis and Design 12 . A More Formal Definition • An object is a concept.

Representing Objects • An object is represented as rectangles with underlined names a + b = 10 : Professor ProfessorClark Professor Clark Class Name Only Object Name Only ProfessorClark : Professor Class and Object Name Object Oriented Analysis and Design 13 .

and semantics – An object is an instance of a class • A class is an abstraction in that it: – Emphasizes relevant characteristics – Suppresses other characteristics OO Principle: Abstraction Object Oriented Analysis and Design 14 . What is a Class? • A class is a description of a group of objects with common properties (attributes). relationships. behavior (operations).

Sample Class Class Course Properties Behavior Name Add a student Location Delete a student a + b = 10 Days offered Get course roster Credit hours Determine if it is full Start time End time Object Oriented Analysis and Design 15 .

Representing Classes • A class is represented using a compartmented rectangle a + b = 10 Professor Professor Clark Object Oriented Analysis and Design 16 .

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) Class Name Professor name Attributes empID Operations create( ) save( ) delete( ) change( ) Object Oriented Analysis and Design 17 .

Exercise: How many classes could you find here? Jet Drone VTOL Military Space Shuttle Glider Helicopter Object Oriented Analysis and Design Turboprop Airship 18 .

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 Object Oriented Analysis and Design 19 .

What is an Operation? CourseOffering Class addStudent deleteStudent getStartTime getEndTime Operation Object Oriented Analysis and Design 20 .

What is Polymorphism? • The ability to hide many different implementations behind a single interface Manufacturer B Manufacturer A Manufacturer C OO Principle: Encapsulation Object Oriented Analysis and Design 21 .

What is an Interface? • Interfaces formalize polymorphism • Interfaces support “plug-and-play” architectures Tube <<interface>> Shape Pyramid Draw Move Scale Rotate Cube Object Oriented Analysis and Design 22 .

Inheritance (cont.) Object Oriented Analysis and Design 23 .

Supertype. Subtype – an object class that inherits attributes and behaviors from a supertype class and then may contain other attributes and behaviors that are unique to it. Generalization/Specialization. Object Oriented Analysis and Design 24 . if it exists at the lowest level of the inheritance hierarchy. – Also referred to as abstract or parent class. – Also referred to as a child class and. The attributes and methods of the supertype object class are then inherited by those object classes. called a supertype. Supertype – an entity that contains attributes and behaviors that are common to one or more class subtypes. as concrete class. and Subtype Generalization/specialization – a technique wherein the attributes and behaviors that are common to several types of object classes are grouped (or abstracted) into their own class.

UML Representation of Generalization/Specialization Object Oriented Analysis and Design 25 .

Exercise: Refine the number of classes here? Jet Drone VTOL Military Space Shuttle Glider Helicopter Object Oriented Analysis and Design Turboprop Airship 26 .

interfaces. Object Oriented Analysis and Design 27 . Inheritance Relationship • A class can Inherit the instance variables. and instance methods of another class. • The class inherit them as if they were defined in the class. – The derived class ISA a base class. – A class providing the inheritance is a base class – The class getting the inheritance is a derived class • A derived class can override/extend the base class – The base class methods can be redefined – The base class can define new variables and methods • A derived class can be used anyplace a base class can be used.

Object Oriented Analysis and Design 28 . – The derived class ISA base class for every base class inherited • This class can be used any place any of the original base classes could be used. Multiple Inheritance Relationship • A derived class can inherit from multiple base classes – It will contain all the variables and methods of every base class.

Object Oriented Analysis and Design 29 . Object/Class Relationships Object/class relationship – a natural business association that exists between one or more objects and classes.

Multiplicity and UML Multiplicity Notations Multiplicity – the minimum and maximum number of occurrences of one object/class for a single occurrence of the related object/class. Object Oriented Analysis and Design 30 .

Conversely. Aggregation Aggregation – a relationship in which one larger “whole” class contains one or more smaller “parts” classes. a smaller “part” class is part of a “whole” larger class. Object Oriented Analysis and Design 31 .

Object Oriented Analysis and Design 32 .” If the “whole” were to die. the “part” would die with it. Composition Composition – an aggregation relationship in which the “whole” is responsible for the creation and destruction of its “parts.

Contains Relationship • A class can contain another class. CDPlayer itsCDPlayer. }. • Example: HomeStereoSystem Class HomeStereoSystem { Tuner itsTuner. Object Oriented Analysis and Design 33 . • The class contains another class by having an Instance Variable of the class in it’s specification • The composition of classes into a single class allow a simpler abstraction to be defined for a highly complex group of classes. Equalizier itsEqualizer.

Messages Message – communication that occurs when one object invokes another object’s method (behavior) to request information or some action Object Oriented Analysis and Design 34 .

Polymorphism • Polymorphism means “Many Form” • Two objects are polymorphic if they have the same interface and different behavior. Object Oriented Analysis and Design 35 . • This allows clients to use them without knowing their true behavior.

” the concept that different objects can respond to the same message in different ways. Object Oriented Analysis and Design 36 . Override – a technique whereby a subclass (subtype) uses an attribute or behavior of its own instead of an attribute or behavior inherited from the class (supertype). Polymorphism Polymorphism – literally meaning “many forms.

Relationships: Association • Models a semantic connection among classes Association Name Professor University Works for Association Role Names Class University Professor Employee Employer Object Oriented Analysis and Design 37 .

Object Oriented Analysis and Design 38 . Uses Relationship • A class uses another class without containing it. • Example: HomeStereoSystem::Play(CD&) • The play interface of HomeStereoSystem takes a Compact Disc (CD) object which it can use. • The class gets access to the object when it’s passed to a class interface as an argument.

Abstract Classes
• Used to hold common operations and data
• Used in inheritance hierarchy
– Derived (child) classes provide implementations
• Documented with class name in italics
– Can also use {abstract} property
Shape Shape
+move() {abstract}
+erase() : void +move()
+draw() : void +erase() : void {abstract}
+draw() : void {abstract}

Circle Rectangle Triangle
+draw() : void +draw() : void +draw() : void
+erase() : void +erase() : void +erase() : void

Object Oriented Analysis and Design 39

UML Interfaces
• Abstract class with 0 methods or data is
an interface
• Defines public behavioral contract
• Says nothing about the implementation
– May be implemented by one or more classes
– Implementation called a realization
– This is how COM works
• Documented with <<interface>> keyword
Object Oriented Analysis and Design 40

Operation Signatures
• The "signature" of an operation is the
combination of its:
– name
– parameters
• Operations with the same signature are the same
operation
– Must be in different classes
• Operations with different signatures are different
operations
– Can be in the same class
Object Oriented Analysis and Design 41

Overloading Operations • Many OO languages allow operations to be overloaded – The name is the same. ostream& output){…} Object Oriented Analysis and Design 42 . but the parameters are different • A class can implement an operation in different ways depending on the number and type of parameters • Example void print(String& text){…} void print(String& text.

x. called Collaboration Diagrams – Sequence Diagrams • The two types are semantically equivalent • Difference is on what each emphasizes – Communication – Class relationships – Sequence – Time sequences Object Oriented Analysis and Design 43 . Modeling with UML Interaction Diagrams • Two types of Interaction Diagrams – Communication Diagrams • In UML 1.

UML Communication Diagrams • Visually shows object relationships • Useful for showing the structure of an algorithm – i. Nested interactions are clearly shown Object Oriented Analysis and Design 44 .e.

Diagram Elements • Objects • Sequence numbers • Messages • Conditionals – One-way • Iteration communication – Messages to other objects – Messages to self Object Oriented Analysis and Design 45 .

UML Communication Diagram Example comm Load Initial State Menu select (Load 2 : Verify file exists World ) : User IO : File IO 1 : Start use case 3 : Open file 4 : Pass open file stream : World CO 5 : Create new world 6 : Read world contents : World Object Oriented Analysis and Design 46 .

… • Nested (Dewey decimal) specified by UML – Can contain letters indicating thread of control • A2. B2. 2. 2.2. 2.1.1. A3. UML Communication Diagram Options • Sequence numbers – Can be flat or nested • 1.2. … or 1. B3 • Messages can contain guards – Conditional execution – 4 : [condition] some operation • Classes can communicate with themselves Object Oriented Analysis and Design 47 . 2. 3. 3. 2.

Using Communication Diagrams • Model a single instance through a scenario • Use separate diagrams or parts of diagrams to model alternate scenarios Object Oriented Analysis and Design 48 .

Sequence Diagram Elements • Time • Messages • Objects – Messages to other objects • Object Lifelines – Messages to self – Object creation – Object destruction • Synchronization • Object Activity • Returns • Conditionals • Iteration Object Oriented Analysis and Design 49 .

Sequence Diagram Basics • Time moves down – Time is relative – Exact timings require a Timing Diagram • Lifeline shows when object is active on stack – Dashed line when inactive – Double line when active Object Oriented Analysis and Design 50 .

UML Sequence Diagram Example Use Case Name sd Load Initial State Partic ipant : User IO : File IO : World CO Lifeline ow Specify File Name ll (m ay sh ) a n Sel f-c d acti vati o ke Ac tiv stac at ion Verify File Exists ga Passi n er et Open File par am ReadNewWorld ( Open File Handle) <<create>> : World Read World Contents n etur Object Oriented Analysis R and Design 51 .

stick or half arrowhead (UML 1. Sequence Diagram Options • Return arrows are optional – Data on return arrows is optional • Stack activation lines for recursion or self-calls • Arrow format is important – Synchronous flow: solid line.3) – Return: dashed line. filled arrowhead – Asynchronous flow: solid line. stick arrowhead • Messages can have guards • Variable names • Parameter values Object Oriented Analysis and Design 52 .

Using Sequence Diagrams • Model a single instance through a scenario • Use separate diagrams or parts of diagrams to model alternate scenarios Object Oriented Analysis and Design 53 .

When to use Sequence Diagrams • Model the behavior of collaborating objects over time • Model behavior of several objects in a single use case • Visualizing collaborations between several objects Object Oriented Analysis and Design 54 .

UML Activity Diagrams • Diagram elements: – Start and End symbols – Activities – Forks and Joins – Branches and Merges – Guards – Swimlanes Object Oriented Analysis and Design 55 .

Activity Diagram Example Fulfullment Customer Service Finance Partition Start (swim lane ) Receive Order Fork rners Rounded co (not a class) Cond Fill Order Send Invoice itiona n l sio D eci [priority order ] [else] Receive Payment Overnight Delivery Regular Delivery ge Mer gate) Join (AND Close Order End Object Oriented Analysis and Design 56 .

Example of an Activity Diagram Object Oriented Analysis and Design 57 .

When to Use Activity Diagrams • Analyzing a use case • Understanding workflow • Describing a complicated algorithm • Modeling multithreaded or parallel behavior Object Oriented Analysis and Design 58 .

UML State Diagrams • Diagram elements: – Start and End symbols – States • May have an associated activity – Transitions • Event • Guard • Action Object Oriented Analysis and Design 59 .

State Diagram Example Start End order processing order processing system started system stopped n io s it an Tr order processed order cancelled Waiting Tr ig ge r receive order[amount<= $25] receive order[amount> $25] C on di ti o n e Tr i ty at ig tiv St ge Ac r approved/ debit account credit rejected Processing Order Checking Credit Canceling Order Object Oriented Analysis and Design 60 .

When to use State Diagrams • DON'T use them for every class in the system • Describing the behavior of an object across several use cases • When a system is heavily event-driven Object Oriented Analysis and Design 61 .