Chapter
II
Object Orientation the new software
paradigm
Chapter
Outline
The potential benefits of object orientation
The potential drawbacks of object
orientation
Object standards
The object orientation software process
Structured vs. Object Orientation
paradigm
Structured paradigm
It is a development strategy based on the concept that a system should be separated
into two parts:
• Data and functionality (modeled using a process model).
Using the structured approach, you develop applications in which data is separated
from behavior in both the design model and in the system implementation.
Object-oriented Paradigm
The main concept behind the object-oriented paradigm is that instead of defining
systems as two separate parts (data and functionality), the system is defined as a
collection of interacting objects.
– Describes and build system that consists object.
Cntd…
An object-oriented system comprises several software objects that interact to achieve the
system objective.
The Potential Benefits of the Object Oriented
paradigm
I ncreased reusability: The OO paradigm provides opportunities for reuse through
the concepts of inheritance, polymorphism, encapsulation, modularity,
coupling, and cohesion.
It provides more opportunities for reuse than the structured paradigm
Increased extensibility: Because classes have both data and functionality when
you add new features to the system you need to make changes in one place, the
class
Improved Quality: Quality systems are on time, on budget, and meet or
exceed the expectations of their users.
• Improved quality comes from increased participation of users in systems development.
•OO systems development techniques provide greater opportunity for users to
participate in the development process. 5
Cntd..
.
F inancial benefits
• Reusability, extensibility, and improved quality are all technical benefits.
• Object orientation enables you to build systems better, faster and cheaper (BFC)
• The benefits OO are realized through out the entire development life cycle, not
just
programming
Increased Chance of Project success
• A project is successful if it is on time, on budget and meets the needs of the its
users.
• Users are expert at business and they are the only ones who can tell you what they
need.
• You need to know the right question to ask, know the business very well.
• You need models that communicate the required information and that users
Cntd…
Reduce maintenance Burdon
Software organizations currently spend significant resources (80%) maintaining
and
operating software, and because of the long waiting list of work to be done,
it takes significant time to get new projects started.
These two problems are respectively called
– the maintenance Burdon and
– The application backlog
• These are problems that object orientation can help you to overcome
The Potential Drawbacks of
OO
Nothing is perfect including OO. While many exciting benefits exist to OO, they
come at a price:
1. OO requires greater concentration on requirements analysis and design
You cannot build a system that meets users needs unless you know what those
needs are( you need to do requirements)
You cannot build a system unless you know how it all fits together (you need
to do analysis and design)
2. Developers must closely work with users
Users are the experts but they have their jobs to do (busy)
3. OO requires a complete change in the mindset on the part of individuals
they should understand the benefits of OO
Cntd…
4. OO requires the development culture of the IS dept to change
The change in the mind set of individual developers actually reflect an over all
change
in the development culture
Do more analysis and design but (less programming) and working with users
5. OO is just more than programming
6. Many OO benefits are long term
– OO truly pays off when you extend and enhance your system
7. OO demands up front investments in training education and tools
– Organizations must train and educate their development staff.
– Buy books, development tools and magazines
Cntd…
8. OO techniques do not guarantee you will build the right system
– While OO increases the probability of project success, it still depends on the
ability of individuals involved.
– developers, users, and managers must be working together to have a good working
atmosphere
9. OO necessitates increased testing
– O-O is typically iterative in nature, and probably developing complex
systems using the objects, the result is you need to spend more time in
testing.
10. OO is only part of the solution
– You still need CASE tools
– Need to perform quality assurance (QA)
Object
Standards
OO orientation today becomes the significant part of the software development .
Objects are the primary enabling technology for components.
It also stays in the future because of the standard set by the OMG.
CORBA( Common object request broker architecture): the standard
architecture for
supporting distributed objects.
UML ( Unified modeling language)-the standard modeling language for the object
oriented software.
ANSI(Americans National Standards Institute)-Defined standards
for C++. Http://[Link]
Cntd…
Sun Microsystems ,Http://[Link] actively maintains, enhances and supports a de
facto
standard definition for java and related standards such as Enterprise Java Beans (EJB).
The Object Database Management group (ODMG)- Http://[Link] actively maintains,
enhances and supports a standard definition for object oriented databases and object query
language (OQL).
The object orientation software
process
The Object-Oriented Modeling (OOM) technique visualizes things in an
application by
using models organized around objects.
Any software development approach goes through the following stages:
Analysis
Design and
Implementation
.
software engineering, the software developer identifies
In object-oriented and
organizes the application in terms of object-oriented concepts, prior to their final
representation in any specific programming language or software tools.
Cntd…
Phases in Object-Oriented Software Development
The major phases of software development using object– oriented methodology
are object-oriented analysis, object-oriented design, and object-oriented
implementation.
i. Object–Oriented Analysis
In this stage, the problem is formulated, user requirements are identified, and
then a model is built based upon real– world objects.
The analysis produces models on how the desired system should function and
how it must be developed.
The models don’t include any implementation details so that it can be
understood and
Cntd…
ii. Object–Oriented Design
Object-oriented design includes two main stages, namely, system design and object
design.
I . System Design:
In this stage, the complete architecture of the desired system is designed.
The system is considered as a set of interacting subsystems that in turn is
composed of a hierarchy of interacting objects, grouped into classes.
System design is done according to both the system analysis model and the
proposed system architecture.
Here, the emphasis is on the objects comprising the system rather than the
processes in the system.
Cntd…
II. Object Design: In this phase, a design model is developed based on both the models
developed in the system analysis phase and the architecture designed in the system design
phase.
All the classes required are identified.
The designer decides whether: new classes are to be created from scratch,
any existing classes can be used in their original form, or
new classes should be inherited from the existing classes
The associations between the identified classes are established and the hierarchies of
classes are identified.
Besides, the developer designs the internal details of the classes and their
associations, i.e., the data structure for each attribute and the algorithms for the
operations.
Cntd…
I I I . Object–Oriented I mplementation and Testing
In this stage, the design model developed in the object design is translated into
code.
In an appropriate programming language or software tool.
The databases are created and the specific hardware requirements
are ascertained.
Once the code is in shape, it is tested using specialized techniques
to identify and remove the errors in the code
E nd of Chapter Tw o
Any Question?