[go: up one dir, main page]

0% found this document useful (0 votes)
178 views36 pages

Chapter One: Object Orientation The New Software Paradigm

This document introduces object-oriented concepts including identity, classification, inheritance, and polymorphism. It discusses the object-oriented paradigm and open closed principle. Object-oriented development focuses on organizing concepts from the application domain through the software engineering life cycle for improved modularity, reusability, and maintenance.

Uploaded by

Biruk Kindu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
178 views36 pages

Chapter One: Object Orientation The New Software Paradigm

This document introduces object-oriented concepts including identity, classification, inheritance, and polymorphism. It discusses the object-oriented paradigm and open closed principle. Object-oriented development focuses on organizing concepts from the application domain through the software engineering life cycle for improved modularity, reusability, and maintenance.

Uploaded by

Biruk Kindu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

Introduction

Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Chapter One
Object Orientation the New Software Paradigm

Abebaw Degu

Debre Berhan University


College of Computing
Department of Software Engineering
Object Oriented System Analysis and Modeling (SENG 3081)

October 17, 2019

1 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Outline

1 Introduction
2 Object - Orientation
Object Oriented Paradigm
Open Closed Principle
Object-oriented development
3 Structured paradigm Vs object oriented paradigm
4 The potential benefits of object orientation
5 The potential drawbacks of object orientation
6 The Object orientation software process
The object orientation software process phases

2 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Introduction
OO modeling and design is a way of thinking about problems
using models organized around real world concepts
Fundamental construct is the object, which combines both
data structure and behavior
OO modeling and design promotes
Better understanding of requirements
OO characteristics
Identity
•Data is quantized into discrete, distinguishable entities called
objects
Each object has is own inherent identity
Two objects are distinct even if all their attribute values are
identical
3 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Introduction[2]
OO Characteristics continued...
Classification
•Objects with the same data structure (attributes) and behaviour
(operations) are grouped into a class.
•A class is an abstraction that describes properties important to an
application and ignores the rest
•Each class describes an infinite set of individual objects
•An Object is an instance of a class

4 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Introduction[3]

OO Characteristics continued...
Object and Classes

5 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Introduction
OO Characteristics continued...
Examples for Class and Object

6 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Introduction[4]

OO Characteristics continued...
•An object is an instance of a class
Inheritance
Sharing of attributes and operations (features) among classes
based on a hierarchical relationship
•Super class has general information that subclasses refine and
elaborate
•Each subclass incorporates, or inherits, all the features of its
super class and adds its own unique features
Greatly reduce repetition
•factor out common features of several classes into a super class

7 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Introduction[5]
OO Characteristics continued...
Polymorphism
•Same operation behaves differently for different classes
•An operation is a procedure or transformation that an object
performs
Method
•An implementation of an operation by a specific class
•Each object “ knows how” to perform its own operation.
•OO operator is polymorphic

8 / 37
Introduction
Object - Orientation
Object Oriented Paradigm
Structured paradigm Vs object oriented paradigm
Open Closed Principle
The potential benefits of object orientation
Object-oriented development
The potential drawbacks of object orientation
The Object orientation software process

Object - Orientation
•The term Object-oriented (OO) means that we organize
software as a collection of discrete objects that incorporate both
data structure and behavior.
Includes 4 aspects:
Identity
Classification
Inheritance
Polymorphism
Object Oriented Paradigm
An approach to solution to problems in which all
computations are performed in the context of objects
A running program can be seen as a collection of objects
collaborating to perform a given task.
An OO-paradigm emphasizes modularity and re-usability.
9 / 37
Introduction
Object - Orientation
Object Oriented Paradigm
Structured paradigm Vs object oriented paradigm
Open Closed Principle
The potential benefits of object orientation
Object-oriented development
The potential drawbacks of object orientation
The Object orientation software process

Open Closed principle

The goal of an object-oriented approach is to satisfy the


”open closed principle”.
A module is open if it supports extension. If the module
provides standardized ways to add new behaviors or describe
new states.In the object-oriented paradigm this is often
accomplished by creating a new subclass of an existing class.
A module is closed if it has a well defined stable interface that
all other modules must use and that limits the interaction and
potential errors that can be introduced into one module by
changes in another. In the object-oriented paradigm this is
accomplished by defining methods that invoke services on
objects.

10 / 37
Introduction
Object - Orientation
Object Oriented Paradigm
Structured paradigm Vs object oriented paradigm
Open Closed Principle
The potential benefits of object orientation
Object-oriented development
The potential drawbacks of object orientation
The Object orientation software process

Object-oriented development
•The theme is the identification and organization of application
concepts rather than final representation in a programming
Language.
•OOD approach encourages software developers to work and think
in terms of the application domain through most of the software
engineering life cycle.
•It is a conceptual process independent of a programming
language until the final stage.
Combination of data and functionality
Focuses on object, classes, modules that can be easily
replaced, modified and reused.
Moving from one phase to another phase is easier.
decreases duration of project
Reduces complexity and redundancy
11 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Structured paradigm Vs object oriented paradigm

Structured Object Oriented


Methodology SDLC Iterative/Incremental
Focus Process Objects
Risk High Low
Reuse Low High
Maturity Mature and widespread Emerging (1997)
Suitable for stable requirements changing requirements

12 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Structured paradigm Vs object oriented paradigm[2]

13 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Structured versus object oriented paradigm[3]


In Structured approach applications are developed in such way
that the data is separated from behavior in both the design
model and in the system implementation.
the main concept behind object oriented paradigm is that
instead of defining systems as two separate parts (data and
functionality), you define it as a collection of interacting
objects.
E.g. consider the design of an information system for a
university. Taking the structured approach, you would define
the layout of a database and the design of a program to
access that data. In the database would be information about
students, professors, rooms and courses. The program would
enable users to enroll students in courses, assign professors to
teach courses, schedule courses in certain rooms, and so on.
14 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Structured vs object oriented paradigm[4]


Now consider the university information system from object
oriented perspective. In real world, there are students,
professors, rooms and courses. All of these things would be
considered objects. They have their data (attributes) and do
things (method)
In the real world, students know things (names, addresses,
DOB, phone number and so on) and they do things (enroll in
courses, drop courses and pay tuition). Professors know things
(names, courses they teach) and they do things (input marks
and make schedule requests). Rooms know things (building
number, room number) and they do things (tell you when
they are available and enable you to reserve a room). Courses
also know things (title, description, who is taking the course)
and should be able to do things (letting students enroll in
15 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Structured VS object oriented paradigm[5]

To implement this system, we would define a collection of


classes (“Student,” Professor”, “Room”, “Course”) that
interact with each other. The collection of these classes would
make up our application, which would include both the
functionality and the data.
In object oriented approach we have an application that exists
in what is called an object space. The object space is where
both the program and the data for the application reside.

16 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

The potential benefits of object orientation


High Code Re-usability: When a new object is created, it will
automatically inherit the data attributes and characteristics of the
class from which it was spawned.
promote future reuse and reduce downstream errors and
maintenance.
Reduced maintenance: the system will enjoy a longer life while
having far smaller maintenance costs.
Because most of the processes within the system are
encapsulated, the behaviors may be reused and incorporated
into new behaviors.
Real-World Modeling: Object-oriented system tend to model the
real world in a more complete fashion than do traditional methods.
Improved Reliability and Flexibility: objects can be dynamically
called and accessed, new objects may be created at any time.
17 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

The Potential Benefits of object orientation[2]


Below are some of the advantages of object orientation.
Complex software systems become easier to understand, since
object-oriented structuring provides a closer representation of
reality than other programming techniques
In a well-designed object-oriented system, it should be possible
to implement changes at class level, without having to make
alterations at other points in the system.
Through polymorphism and inheritance, object-oriented
programming allows you to reuse individual components.
In an object-oriented system, the amount of work involved in
revising and maintaining the system is reduced, since many
problems can be detected and corrected in the design phase.
Achieving these goals requires:
Object-oriented programming languages
18 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

The potential drawbacks of object orientation

Object-oriented Development is not a technology


Object-oriented Development is not yet completely accepted
by major vendors
Cannot find qualified programmers and DBA
most managers would like to see an object technology
approach, but they do not have the time to train their staffs
in object-oriented methods.
Even though commercial object-oriented programming
languages have been on the market for several years, systems
written with object-oriented languages comprise less than 1
percent of systems today.

19 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Potential drawback of Object Orientation[2]


Steep learning curve: The thought process involved in
object-oriented programming may not be natural for some
people, and it can take time to get used to it. It is complex to
create programs based on interaction of objects.
Larger program size: Object-oriented programs typically
involve more lines of code than procedural programs.
Slower programs: Object-oriented programs are typically
slower than procedure based programs, as they typically
require more instructions to be executed.
Not suitable for all types of problems: There are problems
that lend themselves well to functional-programming style,
logic-programming style, or procedure-based programming
style, and applying object-oriented programming in those
situations will not result in efficient programs.
20 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

The Object orientation software process


Developing software is hard, and because you typically apply
object technology to solve complex problems, developing
systems using object technology often proves to be even
harder than with more simple, structured technology
The below mentioned figure depicts the minimal software
process for developing software using object-oriented
techniques.

21 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

The Object orientation software process[2]


The major object oriented software development activities are-
requirement engineering, analysis, design, programming and
testing.
Each of these activities is quite iterative in practice.
Object-oriented requirements engineering
The first step of any software development effort is to gather
requirements.
You may not gather all of your requirements at once, but you
should at least start with a few.
You cannot successfully build a system if you’re not clear on
what it should do.
The greatest problem during this stage is that many people do
not want to invest the time to elicit requirements; instead,
they want to jump right into implementation/coding.
22 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

The Object orientation software process[3]


Object-oriented analysis
The purpose of analysis is to understand what will be built.
This is similar to requirements engineering, the purpose of
which is to determine what your users would like to have built.
The main difference is that the focus of requirements
gathering is on understanding your users and their potential
use of the system, whereas the focus of analysis shifts to
understanding the system itself.
Object-oriented design
The purpose of design is to determine how you are going to
build your system – information needed to drive the actual
implementation of your system.
This is different from analysis, which focuses on
understanding what will be built.
23 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

The object orientation software process[4]

Object-oriented programming
The purpose of object-oriented programming is to build your
actual system – to develop the code that fulfills your system’s
design.
The most important implication is that design and
programming are highly interrelated and iterative.
Your programming efforts will immediately reveal weaknesses
in your design that will have to be addressed.
Perhaps the designers were unaware of specific features in the
programming environment and, therefore, did not take
advantage of them.

24 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

The Object orientation software process[5]


Object-oriented Testing
A fundamental rule of software engineering is that you should
test as early as possible.
Most mistakes are made early in the life of a project and the
cost of fixing defects increases exponentially the later they are
found.
Technical people are very good at things like design and
coding – that’s what makes them technical people.
On the other hand, technical people are often not as good at
non-technical tasks such as gathering requirements and
performing analysis
Developers make more errors during requirements definition
and analysis than during design & coding.
25 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

The object orientation software process[6]


Object oriented Testing cont...
The other motivating factor for testing early is that fixing
these defects gets costlier the later they are found.
This happens because of the nature of software development –
work is performed based on work performed previously.
For example, modeling is performed based on the information
gathered during the definition of requirements. Programming
is done based on the models that were developed, and testing
is performed on the written source code.
If a requirement was misunderstood, all modeling decisions
based on that requirement are potentially invalid, all code
written based on the models is then in question, and the
testing efforts are based on verifying the application against
the wrong conditions.
26 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

The Object orientation software process[7]

Object oriented Testing cont...


As a result, errors detected near the end of the development
life cycle or after the application has been released are likely
to be very expensive to fix.
On the other hand, errors that are detected early in the life
cycle, where they are likely to have been made, will be much
less expensive to fix because only a few documents have to be
updated.

27 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

The object orientation software process phases


Engineering stage
Inception phase
Elaboration phase
Production phase
Construction phase
Transition phase
Inception Phase: Objectives
Establish the project scope
Identify the critical use cases and scenarios
Define acceptance criteria
Demonstrate at least one candidate software architecture
Estimate the cost and schedule for the project
Define and estimate potential risks.
28 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Inception Phase: Activities


Formulate the scope of the project
Capture requirements
Result: problem space and acceptance criteria are defined
Design the software architecture
Evaluate design trade-offs, investigate solution space
Result: Feasibility of at least one candidate architecture is
explored, initial set of build vs. buy decisions
Plan and prepare a business case
Evaluate alternatives for risks, staffing problems, plans.
Inception Phase: Evaluation Criteria
Do all stakeholders concur on the scope definition and cost
and schedule estimates?
Are the requirements understood?
Is the software architecture understood?
Are cost, schedule estimates, priorities, risks credible?
29 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Elaboration Phase: Objectives


Baseline the software architecture
Establish a configuration management plan in which all
changes are tracked and maintained
Baseline the problem statement
Base line the software project management plan for the
construction phase
Demonstrate that the architecture supports the requirements
at a reasonable cost in a reasonable time
Elaboration Phase: Activities
Elaborate the problem statement (“vision”) by working out
the critical use cases
Elaborate the infrastructure.
Tailor the software process for the construction stage, identify
tools
Establish intermediate milestones and evaluation criteria. 30 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Elaboration Phase: Evaluation Criteria

Apply the following questions to the results of the inception


phase:
Is the problem statement stable?
Is the architecture stable?
Does the executable demonstration show that the major risk
elements have been addressed and credibly resolved?
Is the construction plan credible? By what claims is it backed
up?
Do all stakeholders (project participants) agree that the vision
expressed in the problem can be met if the current plan is
executed?
Are actual resource expenditures versus planned expenditures
so far acceptable?

31 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Construction Phase: Objectives

Construction Phase: Objectives


Minimize development costs by optimizing resources
Achieve adequate quality as rapidly as practical
Achieve useful version (alpha, beta, and other test releases) as
soon as possible

Construction Phase: Activities


Resource management, control and process optimization
Complete component development and testing against
evaluation criteria
Assessment of product releases against acceptance criteria

32 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Construction Phase: Evaluation Criteria

Construction Phase: Evaluation Criteria


Apply the following questions to the results of the
construction phase:
Is the product baseline mature enough to be deployed in the
user community?
Existing faults are not obstacles to do the release
Is the product baseline stable enough to be deployed in the
user community?
Pending changes are not obstacles to do the release
Are the stakeholders ready for the transition of the software
system to the user community?
Are actual resource expenditures versus planned expenditures
so far acceptable?

33 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Transition Phase
Transition Phase
The transition phase is entered when a baseline is mature
A usable subset of the system has been built with acceptable
quality levels and user documents
It can be deployed to the user community
For some projects the transition phase means the starting
point for another version of the software system
For other projects the transition phase means the complete
delivery of the software system to a third party responsible for
operation, maintenance and enhancement.

Transition Phase: Objectives


Achieve independence of user (users can support themselves)
34 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Transition Phase[2]
Transition Phase: Objectives Cont...
Deployment baseline is complete and consistent with the
criteria in the project agreement

Transition Phase: Activities


Synchronization and integration of concurrent development
increments into one consistent deployment baseline
Commercial packaging and production
Field personnel training
Test of deployment baseline against the acceptance criteria.

Transition Phase: Evaluation Criteria


•Is the user satisfied?
•Are actual resource expenditures vs planned expenditures acceptable? 35 / 37
Introduction
Object - Orientation
Structured paradigm Vs object oriented paradigm
The object orientation software process phases
The potential benefits of object orientation
The potential drawbacks of object orientation
The Object orientation software process

Thank You!!!

36 / 37

You might also like