Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to...
Transcript of Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to...
![Page 1: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/1.jpg)
1
Introduction to Object Orientation: in UML flavors
Fall 2004, CSC532
![Page 2: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/2.jpg)
2
Objective: Introduction to Object Orientation
• Understand the basic principle 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
![Page 3: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/3.jpg)
3
Introduction to Object Orientation Topics
• Basic Principles of Object Orientation• Basic Concepts of Object Orientation• Strengths of Object Orientation• General UML Modeling Mechanisms
![Page 4: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/4.jpg)
4
Basic Principles of Object Orientation
Object Orientation
• Abstraction• Encapsulation• Modularity• Hierarchy
![Page 5: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/5.jpg)
5
What is Abstraction?
Salesperson
Customer Product
• An example of an order processing abstraction
• A model that includes most important aspects of a given problem while ignoring less important details
![Page 6: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/6.jpg)
6
What is Encapsulation
• Hide implementation from clients• Clients depend on interface
![Page 7: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/7.jpg)
7
What is Modularity?
• The breaking up of something complex into manageable pieces
Order Processing System
Order Entry
Order Fulfillment
Billing
![Page 8: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/8.jpg)
8
What is Hierarchy?
• Level of abstraction
Increasing abstraction
Decreasing Abstraction
Asset
Bank Account Security Real Estate
Savings Checking Stock Bond
![Page 9: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/9.jpg)
9
Basic Concepts Of Object Orientation
• Object• Class• Attributes• Operation• Interface (Polymorphism)• Components• Package• Subsystem• Relationships
![Page 10: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/10.jpg)
10
What is an Object?
• Informally, an object represents an entity, either physical, conceptual, or software• Physical entity
• Conceptual entity
• Software entity
truck
Chemical Process
Linked List
![Page 11: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/11.jpg)
11
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
![Page 12: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/12.jpg)
12
An Object Has State
• The state of an object is one of the possible conditions in which an object may exist
• The state of an object normally changes over time
• Represented by: Attribute values + Links (relationship instances)
Professor Clark
Name
Employee ID
Date hired
Status
Joy Clark
567138
March 21, 1987
Tenured
![Page 13: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/13.jpg)
13
An Object Has Behavior
• Behavior determines how an object acts and reacts to requests from other objects
• Behavior is represented by the set of messages it can respond to (the operations the object can perform)
Registration System
Assign Prof. Clark(Returns: conformation)
Algebra 101 Course
![Page 14: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/14.jpg)
14
An Object Has Identity
• Each object has a unique identity, even if its state is identical to that of another object
Prof. “J. Clark”Teaches algebra
Prof. “J. Clark”Teaches algebra
Prof. “J. Clark”Teaches algebra
![Page 15: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/15.jpg)
15
Representing Objects
• An object is represented as rectangles with underlined names
: Professor
ProfessorClark : Professor
Class Name Only
Class and Object Name
ProfessorClark
Object Name Only
![Page 16: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/16.jpg)
16
Example: Objects
Intro to OO 180
Algebra 110
World History 200
Music History 200
Geology 110
Geology 110
English 101
![Page 17: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/17.jpg)
17
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 emphasizes relevant characteristics
![Page 18: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/18.jpg)
18
Sample Class
•Class
CourseProperties
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
![Page 19: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/19.jpg)
19
Representing Classes
• A class is represented using a compartmented rectangle
Professor
![Page 20: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/20.jpg)
20
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)Professor
Name
save()change()
delete()
empIDcreate()
![Page 21: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/21.jpg)
21
Class Compartments (cont.)
• The second and third sections may be suppressed if they need not be visible on the diagram
ProfessorName
save()change()
delete()
empIDcreate()
ProfessorName
empID
Professor
save()change()
delete()
create()
Professor
Professor
![Page 22: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/22.jpg)
22
Example: Class
CourseOffering
Intro to OO 180
Algebra 110
World History 200
English 101
Music History 200
Geology 110
Geology 110
![Page 23: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/23.jpg)
23
Classes of Objects
• How many class can you see?
![Page 24: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/24.jpg)
24
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 may be grouped into classesProfessor
Professor Smith Professor Jones Professor Mellon
![Page 25: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/25.jpg)
25
What is Attribute?
Class
Attribute
CourseOfferingnumber
startTimeendTime
:CourseOfferingNumber=110
endTime=1100startTime=900
Object
Attribute Value
:CourseOfferingNumber=104
endTime=1500startTime=1300
![Page 26: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/26.jpg)
26
What is Operation?
:CourseOffering
addStudent()deleteStudent()getStartTime()
getEndTime()
Class
Operation
![Page 27: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/27.jpg)
27
What is Polymorphism?
• The ability to hide many different implementations behind a single interface
Manufacture A Manufacture B Manufacture C
OO Principle:
Encapsulation
![Page 28: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/28.jpg)
28
What is an Interface?
• Interface formalize polymorphism• Interface support “plug-and-play”
architecture<<interface>>
Shape
ScaleMove
Rotate
Draw
Tube
Pyramid
Cube
![Page 29: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/29.jpg)
29
Interface Representations
<<interface>>
Shape
ScaleMove
Rotate
Draw
Tube
Pyramid
Cube
Canonical
(Class/Stereotype)
presentation
Tube
Pyramid
Cube
Elided/Iconic
Representation
(“lollipop”)
![Page 30: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/30.jpg)
30
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
![Page 31: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/31.jpg)
31
What is a Component?(Cont.)
Source File
Name
<<EXE>>
Executable Name
<<DLL>>
Component Name
•A component may be•A source code component
•A run time component or
•An executable component
![Page 32: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/32.jpg)
32
Source Code Coponents
• Visualize compilation dependencies between source code files
Account.h
Report.cpp Account.cpp
![Page 33: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/33.jpg)
33
Executable and Run-time Components
• Visualizing all of the pieces of an executable release, their interfaces, and their relationships
<<EXE>>
ATM
Bank <<DLL>>
Account
Iaccount Ibank
![Page 34: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/34.jpg)
34
Interfaces and Components
• Interfaces can be realized by components
Source File
Name
Implementation Model
Component
Interface
![Page 35: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/35.jpg)
35
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
• Uses• Organize the model under development• A unit of configuration management
Package Name
![Page 36: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/36.jpg)
36
What is a Subsystem?
• A “cross between” a package (can contain other model elements) and a class (has behavior)
• Realizes one or more interfaces which define its behavior
<<subsystem>>
Subsystem Nameinterface
RealizationSubsystem
![Page 37: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/37.jpg)
37
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
<<subsystem>>
Component NameCurrent Interface
Design Model
Component Name
Implementation Model
Component Interface
![Page 38: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/38.jpg)
38
Relationships
• Association• Aggregation• Composition
• Dependency• Generalization• Realization
![Page 39: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/39.jpg)
39
Relationships: Association
• Models a semantic connection among classes– Association name and/or Role name
Professor University
Professor University
Class
Association name
Works for
Association
Employee Employer
Role Names
![Page 40: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/40.jpg)
40
Relationship: Aggregation
• A special form of association that models a whole-part relationship between an aggregate (the whole) and its parts
Student Schedule
WholePart
Aggregation
![Page 41: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/41.jpg)
41
Relationship: Composition
• A form of aggregation with strong ownership and coincident lifetimes• The parts cannot survive the whole/aggregate
Student Schedule
Aggregation
WholePart
![Page 42: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/42.jpg)
42
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• 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• If navigation is restricted, an arrowhead is added
to indicate the direction of the navigation
![Page 43: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/43.jpg)
43
Association: Multiplicity
• Unspecified• Exactly one• Zero or more (many, unlimited)
• One or more• Zero or one• Specified range• Multiple, disjoint ranges
1
0..*
*
1..*
0..1
2..4
2,4..6
![Page 44: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/44.jpg)
44
Example: Multiplicity and Navigation
Student Schedule
Navigation
0..*1
Multiplicity
![Page 45: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/45.jpg)
45
Relationship: Dependency
• A relationship between two model elements where a change in one may cause a change in the other
• None-structural, “using” relationshipClient Supplier
ClientPackage SupplierPackage
Client Supplier
Class
Package Dependency relationship
Component
Dependency relationship
![Page 46: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/46.jpg)
46
Relationship: 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 super classes– Single inheritance– Multiple inheritance
• Generalization is an “is-a-kind of”relationship
![Page 47: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/47.jpg)
47
Example: Single Inheritance
• One class inherits from another
Accountbalance
numbername
Withdraw()CreateStatement()
Checking
Withdraw()
Savings
GetInterest()Withdraw()
Subclasses
Superclass
(parent)
Ancestor
Descendents
Generalization Relationship
![Page 48: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/48.jpg)
48
Multiple Inheritance
• A class can inherit from several other classes
FlyingThing Animal
Airplane Helicopter Bird Wolf Horse
multiple inheritance
![Page 49: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/49.jpg)
49
What Gets Inherited?
• A subclass inherits its parent’s 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 level in the hierarchy
![Page 50: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/50.jpg)
50
Example: What Gets Inherited
GroundVehicleweightlicenseNumberregister()
Person
Carsize
getTax()
Trucktonnage
Trailer
0..* 1owner
Generalization
Superclass
(parent)
Subclasses
![Page 51: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/51.jpg)
51
Relationship: Realization
• One classifier serves as the contract that the other classifier agrees to carry out
• Found between– Interfaces and the classifiers that realize them
ClassSubsystem Client
–Use cases and the collaborations that realize themElided form
Interface Interface Interface
Canonical form
Use Case Use-Case Realization
![Page 52: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/52.jpg)
52
Strengths of Object 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
massive changes in the system under development
![Page 53: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/53.jpg)
53
A simple Sales Order Example
Order
Product
Ship via
![Page 54: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/54.jpg)
54
Class Diagram for the Sales Example
Sale
Salesperson Customer VehicleProduct
Corporate Individual Truck Train
seller buyer Item sold Shipping mechanism
![Page 55: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/55.jpg)
55
Effect of Requirements Change
Sale
Salesperson Customer VehicleProduct
Corporate Individual Truck Train
seller buyer Item sold Shipping mechanism
Airplane
Suppose you need a new type of shipping vehicle …
![Page 56: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/56.jpg)
56
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
![Page 57: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/57.jpg)
57
Example: Stereotypes
<<boundary>>
<<boundary>>
DesignClass
<<trace>>
<<Processor>>Processor #1
<<Processor>>Processor #1
![Page 58: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/58.jpg)
58
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
MaintainScheduleForm
There can be up to one MaintainScheduleForm per user session.
![Page 59: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/59.jpg)
59
Properties
• A property, or specific attribute, of a UML element
• Also called tagged values• Some properties are defined by UML
– Persistence– Location (e.g., client, server)
• Properties can be created by UML modelers for any purpose
PersistentClass
{persistence}anObject: ClassA
{location=server}
![Page 60: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/60.jpg)
60
constraints
• Supports the addition of new rules or modification of existing rules
Professor DepartmentMember
Department Head
11..*
1 1
{subset}
![Page 61: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/61.jpg)
61
Group exercise
Design class diagram for paid e-mail services
• must include relationships• Ask questions if you need more input
– 5-10 min for customer interviews– 10-15 min for team to work on the solution
![Page 62: Introduction to Object Orientation: in UML flavorsbox/ase/intro_oo.pdf2 Objective: Introduction to Object Orientation • Understand the basic principle of object orientation • Understand](https://reader033.fdocuments.in/reader033/viewer/2022051106/5ae760a27f8b9acc268e9433/html5/thumbnails/62.jpg)
62