Object Oriented Software Engineering
Ali KamandiSharif University of Technology
[email protected] 2006
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
2006٣
1. Historical Aspects
1968 NATO Conference, Garmisch, Germany
Aim: To solve the software crisis
Software is deliveredLateOver budgetWith residual faults
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
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
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]
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]
2006٨
Object Definition
Object has state, behavior and identity.
[Booch 1994]
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]
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
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
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)
2006١٣
:CourseOfferingnumber = 101startTime = 900endTime = 1100
:CourseOfferingnumber = 104startTime = 1300endTime = 1500
CourseOfferingnumberstartTime endTime
Class
Attribute
Object
Attribute Value
What is an Attribute?
2006١۴
CourseOffering
addStudent deleteStudentgetStartTimegetEndTime
Class
Operation
What is an Operation?
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.
2006١۶
Standish Group Data
Data on 28,000 projects completed in 2000
2006١٧
Cutter Consortium Data
2002 survey of information technology organizations
78% have been involved in disputes ending in litigation
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
2006١٩
Mismanagement of a project leads to:
Producing the wrong product.
Producing a product of inferior quality.
Being late.
Working 80 hour weeks.
2006٢٠
The Delivery Date is Frozen
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
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
2006٢٣
Code Waste
In a study of 400 waterfall projects:
Only 5% - 15% of the code was ever used.
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
2006٢۵
Without data, all you can manage is:
! !
!
2006٢۶
Without data managers can:
This project will be done on time!
Or HEADS will ROLL!
2006٢٧
OR….
You are great.
I have faith in you.
I know you can do it!
I sure hope
you can
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
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
2006٣٠
Time (= Cost) of Postdelivery Maintenance
Figure 1.3
(a) Between 1976 and 1981(b) Between 1992 and 1998
2006٣١
The Costs of the Classical Phases
Surprisingly, the costs of the classical phases have hardly changed
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
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
2006٣۴
Conclusion
The software crisis has not been solved
Perhaps it should be called the software depression
Long durationPoor prognosis
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
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?
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.
2006٣٨
An Evolutionary (Spiral) Model
CustomerCommunication
Planning
Construction & ReleaseCustomerEvaluation
Engineering
Risk Analysis
2006٣٩
The Component-Based Process Model
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
2006۴١
The OO Process Model: RUP
2006۴٢
Object Orientation
Inhe
ritan
ce
En
cap
sula
tio
n
Poly
mor
phis
m
Basic Principles of Object Orientation
2006۴٣
Improves Resiliency
What is Encapsulation?
Hide implementation from clientsClients depend on interface
How does an object encapsulate?What does it encapsulate?
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
2006۴۵
Accountbalancenamenumber
Withdraw()CreateStatement()
Checking
Withdraw()
Savings
GetInterest()Withdraw()
Superclass (parent)
Subclasses
Generalization Relationship
Ancestor
Descendents
Example: Single Inheritance
One class inherits from another
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
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
2006۴٨
Truck
tonnage
GroundVehicle
weight
licenseNumber
Car
owner
register( )
getTax( )
Person
0..*
Trailer
1Superclass
(parent)
Subclass
generalization
size
Example: What Gets Inherited
2006۴٩
Manufacturer AManufacturer B
Manufacturer C
OO Principle:Encapsulation
What is Polymorphism?The ability to hide many different implementations behind a single interface
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
2006۵١
Basic Concepts of Object OrientationObjectClass
AttributeOperationMessageInterface (Polymorphism)Component
PackageSubsystemRelationships
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
2006۵٣
The End