object oriented software engineering - sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1....
TRANSCRIPT
![Page 1: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/1.jpg)
Object Oriented Software Engineering
Ali KamandiSharif University of Technology
[email protected] 2006
![Page 2: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/2.jpg)
2006٢
Outline
Historical aspectsEconomic aspectsThe Object-Oriented Process ModelStrengths of the Object-Oriented ParadigmRequirements, analysis, and design aspectsThe object-oriented paradigmBasic Principles of Object OrientationBasic Concepts of Object OrientationStrengths of Object OrientationOO Project Metrics
![Page 3: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/3.jpg)
2006٣
1. Historical Aspects
1968 NATO Conference, Garmisch, Germany
Aim: To solve the software crisis
Software is deliveredLateOver budgetWith residual faults
![Page 4: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/4.jpg)
2006۴
Truck
Chemical Process
Linked List
What is an Object?
Informally, an object represents an entity, either physical, conceptual, or software
Physical entity
Conceptual entity
Software entity
![Page 5: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/5.jpg)
2006۵
: Professor
Professor Clark
a + b = 10
ProfessorClark : Professor
ProfessorClark
Class Name Only
Object Name Only
Class and Object Name
Representing Objects
An object is represented as rectangles with underlined names
![Page 6: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/6.jpg)
2006۶
Object Definition
An abstraction of something in problem domain, reflecting the capabilities of the system to keep information about it, interact with it, or both.
[Coad & Yourdon 1990]
![Page 7: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/7.jpg)
2006٧
Object Definition
We define an object as a concept, abstraction, or thing with crisp boundaries and meaning for the problem in hand. Objects serve two purpose: They Promote understanding of the real world and provide a practical basis for computer implementation.
[Rumbaugh 1991]
![Page 8: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/8.jpg)
2006٨
Object Definition
Object has state, behavior and identity.
[Booch 1994]
![Page 9: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/9.jpg)
2006٩
Object Definition
Objects are deliberately characterized as if each were a person, with a role in the system that is based on its answer to these questions:What am I?What can I do?What do I know?
[Wirfs-Brock 1990]
![Page 10: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/10.jpg)
2006١٠
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 characteristicsSuppresses other characteristics
![Page 11: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/11.jpg)
2006١١
a + b = 10
ClassCourse
PropertiesName
LocationDays offeredCredit hours
Start timeEnd time
BehaviorAdd a student
Delete a studentGet course roster
Determine if it is full
Sample Class
![Page 12: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/12.jpg)
2006١٢
ProfessornameempID
create( )save( )delete( )change( )
Class Name
Attributes
Operations
Class Compartments
A class is comprised of three sectionsThe first section contains the class nameThe second section shows the structure (attributes)The third section shows the behavior (operations)
![Page 13: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/13.jpg)
2006١٣
:CourseOfferingnumber = 101startTime = 900endTime = 1100
:CourseOfferingnumber = 104startTime = 1300endTime = 1500
CourseOfferingnumberstartTime endTime
Class
Attribute
Object
Attribute Value
What is an Attribute?
![Page 14: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/14.jpg)
2006١۴
CourseOffering
addStudent deleteStudentgetStartTimegetEndTime
Class
Operation
What is an Operation?
![Page 15: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/15.jpg)
2006١۵
Introduction to Object-Oriented
We live in a world of objects.They can be categorized, described, organized, combined, manipulated, and created.Object-Oriented view is an abstraction that models the world in ways that help us to better understand and navigate it.OO approach was first proposed in the late 1960s.As time passes, object technologies are replacing classical software development approaches. Why?The answer is not simple. Object technologies lead to reuse, OO software is easier to maintain, to adapt, and to scale.
![Page 16: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/16.jpg)
2006١۶
Standish Group Data
Data on 28,000 projects completed in 2000
![Page 17: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/17.jpg)
2006١٧
Cutter Consortium Data
2002 survey of information technology organizations
78% have been involved in disputes ending in litigation
![Page 18: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/18.jpg)
2006١٨
Cutter Consortium Data
For the organizations that entered into litigation:
In 67% of the disputes, the functionality of the information system as delivered did not meet up to the claims of the developersIn 56% of the disputes, the promised delivery date slipped several timesIn 45% of the disputes, the defects were so severe that the information system was unusable
![Page 19: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/19.jpg)
2006١٩
Mismanagement of a project leads to:
Producing the wrong product.
Producing a product of inferior quality.
Being late.
Working 80 hour weeks.
![Page 20: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/20.jpg)
2006٢٠
The Delivery Date is Frozen
![Page 21: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/21.jpg)
2006٢١
The
Spec
V1
The
Spec
V2
The
Spec
V3
The
Spec
V3
The
Spec
VN.1
The
Spec
VN.2
The Spec is Never Frozen
![Page 22: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/22.jpg)
2006٢٢
Analysis
Design
Implementation
DFDERD
DDST
1 May 1 Nov1 Jul 1 Sep
The Waterfall Model
Managing the Development of Large Software SystemsDr. Winston W. Royce — 1970
![Page 23: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/23.jpg)
2006٢٣
Code Waste
In a study of 400 waterfall projects:
Only 5% - 15% of the code was ever used.
![Page 24: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/24.jpg)
2006٢۴
Long Projects Fail.
Project S uccess . 23 ,000 pro jec ts
0
5
10
15
20
25
30
35
40
45
6 9 12 18 24 36
Months
Per
cen
t su
cces
s
![Page 25: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/25.jpg)
2006٢۵
Without data, all you can manage is:
! !
!
![Page 26: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/26.jpg)
2006٢۶
Without data managers can:
This project will be done on time!
Or HEADS will ROLL!
![Page 27: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/27.jpg)
2006٢٧
OR….
You are great.
I have faith in you.
I know you can do it!
I sure hope
you can
![Page 28: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/28.jpg)
2006٢٨
Modern Maintenance Definition
In 1995, the International Standards Organization and International Electrotechnical Commission defined maintenance operationally
Maintenance is nowadays defined asThe process that occurs when a software artifact is modified because of a problem or because of a need for improvement or adaptation
![Page 29: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/29.jpg)
2006٢٩
Modern Maintenance Definition (contd)
In terms of the ISO/IEC definitionMaintenance occurs whenever software is modifiedRegardless of whether this takes place before or after installation of the software product
The ISO/IEC definition has also been adopted by IEEE and EIA
![Page 30: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/30.jpg)
2006٣٠
Time (= Cost) of Postdelivery Maintenance
Figure 1.3
(a) Between 1976 and 1981(b) Between 1992 and 1998
![Page 31: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/31.jpg)
2006٣١
The Costs of the Classical Phases
Surprisingly, the costs of the classical phases have hardly changed
![Page 32: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/32.jpg)
2006٣٢
Consequence of Relative Costs of Phases
Return to CTold and CTnew
Reducing the coding cost by 10% yields at most a 0.85% reduction in total costs
Consider the expenses and disruption incurred
Reducing postdelivery maintenance cost by 10% yields a 7.5% reduction in overall costs
![Page 33: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/33.jpg)
2006٣٣
1.9 The Object-Oriented Paradigm
The structured paradigm was successful initiallyIt started to fail with larger products (> 50,000 LOC)
Postdelivery maintenance problems (today, 70 to 80 percent of total effort)
Reason: Structured methods are Action oriented (e.g., finite state machines, data flow diagrams); or Data oriented (e.g., entity-relationship diagrams, Jackson’s method);But not both
![Page 34: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/34.jpg)
2006٣۴
Conclusion
The software crisis has not been solved
Perhaps it should be called the software depression
Long durationPoor prognosis
![Page 35: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/35.jpg)
2006٣۵
2. Economic Aspects
Coding method CMnew is 10 percent faster than currently used method CMold. Should it be used?Common sense answer
Of course!
Software Engineering answer Consider the cost of trainingConsider the impact of introducing a new technologyConsider the effect of CMnew on maintenance
![Page 36: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/36.jpg)
2006٣۶
Object-Oriented Paradigm
For many years, the term OO was used to denote a software development approach that used one of a number of OO programming languages(e.g. Ada 95, C++, Eiffel, Smalltalk)Today, the OO paradigm encompasses a complete view of software engineering.
Software engineers and their managers must consider OORA, OOD, OODA(domain anal.), OODBMS, OOCASE.Why should OO be any different?
![Page 37: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/37.jpg)
2006٣٧
Object-Oriented Paradigm
Although any one of process models, discussed in Chapter 2, could be adapted for use with OO, the best choice would be an evolutionary process model.It would be exceedingly difficult to define all
necessary classes for a major system or product in a single iteration.
As the OO analysis and design models evolve, the need for additional classes becomes apparent.
![Page 38: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/38.jpg)
2006٣٨
An Evolutionary (Spiral) Model
CustomerCommunication
Planning
Construction & ReleaseCustomerEvaluation
Engineering
Risk Analysis
![Page 39: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/39.jpg)
2006٣٩
The Component-Based Process Model
![Page 40: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/40.jpg)
2006۴٠
The OO Process Model
CustomerCommunication
Planning
Construction & ReleaseCustomerEvaluation
Engineering,
Risk Analysis look-upclasses
in library
extractclasses
if available
engineerclasses
if unavailable
constructnth iterationof system
put newclassesin library
OO analysisOO designOO programmingOO testing
identifycandidateclasses
![Page 41: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/41.jpg)
2006۴١
The OO Process Model: RUP
![Page 42: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/42.jpg)
2006۴٢
Object Orientation
Inhe
ritan
ce
En
cap
sula
tio
n
Poly
mor
phis
m
Basic Principles of Object Orientation
![Page 43: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/43.jpg)
2006۴٣
Improves Resiliency
What is Encapsulation?
Hide implementation from clientsClients depend on interface
How does an object encapsulate?What does it encapsulate?
![Page 44: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/44.jpg)
2006۴۴
Encapsulation/Hiding
The object encapsulatesboth data and the logicalprocedures required tomanipulate the data
Achieves “information hiding”
method # 1
data
method # 2
method # 4
method # 5
method # 6
method # 2
![Page 45: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/45.jpg)
2006۴۵
Accountbalancenamenumber
Withdraw()CreateStatement()
Checking
Withdraw()
Savings
GetInterest()Withdraw()
Superclass (parent)
Subclasses
Generalization Relationship
Ancestor
Descendents
Example: Single Inheritance
One class inherits from another
![Page 46: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/46.jpg)
2006۴۶
Airplane Helicopter Wolf Horse
FlyingThing Animal
Bird
multipleinheritance
Use multiple inheritance only when needed, and always with caution !
Example: Multiple Inheritance
A class can inherit from several other classes
![Page 47: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/47.jpg)
Sharif University of Technology 2006
Inheritance leverages the similarities among classes
What Gets Inherited?
A subclass inherits its parent’s attributes, operations, and relationshipsA subclass may:
Add additional attributes, operations, relationshipsRedefine inherited operations (use caution!)
Common attributes, operations, and/or relationships are shown at the highest applicable level in the hierarchy
![Page 48: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/48.jpg)
2006۴٨
Truck
tonnage
GroundVehicle
weight
licenseNumber
Car
owner
register( )
getTax( )
Person
0..*
Trailer
1Superclass
(parent)
Subclass
generalization
size
Example: What Gets Inherited
![Page 49: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/49.jpg)
2006۴٩
Manufacturer AManufacturer B
Manufacturer C
OO Principle:Encapsulation
What is Polymorphism?The ability to hide many different implementations behind a single interface
![Page 50: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/50.jpg)
2006۵٠
Strengths of the Object-Oriented Technology
It leads to reuseReuse leads to faster software development
Reuse leads to higher quality programsOO software is easier to maintainOO systems are easier to adapt and easier to scale
![Page 51: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/51.jpg)
2006۵١
Basic Concepts of Object OrientationObjectClass
AttributeOperationMessageInterface (Polymorphism)Component
PackageSubsystemRelationships
![Page 52: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/52.jpg)
2006۵٢
OO Project Metrics and Estimation
Number of scenario scriptsNumber of key classesNumber of support classesAverage number of support classes per key class
2-3 in GUI application1-2 in GUI application
Number of subsytems
![Page 53: Object Oriented Software Engineering - Sharifce.sharif.edu/courses/85-86/1/ce924/resources/root/1. Kamandi... · Object Oriented Software Engineering Ali Kamandi Sharif University](https://reader033.vdocuments.us/reader033/viewer/2022052305/5b5b4ac67f8b9a302a8da415/html5/thumbnails/53.jpg)
2006۵٣
The End