Haramaya University
College of Computing and Informatics
Department of Information Systems
Chapter Two
Object Orientation the new software paradigm
G..
hak
Yi se
nst:
I
Contents
Structured paradigm vs object-oriented paradigm
The Potential Benefits of Object Orientation
Drawbacks of OO
The Object-Oriented Software Process Lifecycle
Structured paradigm vs object oriented paradigm
The structured paradigm is a development strategy based on the concept
that a system should be separated into two parts: data and functionality
where on the other hand, the main concept behind the object-oriented
paradigm is that instead of defining systems as two separate parts, you
now define systems as collection of interacting objects.
The Potential Benefits of Object Orientation
Popularized in the late 1980’s
Became the standard in mid – 1990s
Benefits
Increased reusability
Increased extensibility
Improved quality
Financial benefits
Increased chance of project success
Reduced maintenance burden
Reduced application backlog
Managed complexity
Con’d
Increased Reusability
Through the concepts
Inheritance
Polymorphism
Encapsulation
Modularity
Coupling
Cohesion
Con’d
Increased Extensibility
Because classes have both data and functionality when you add new
features to the system, you only need to make changes in one place: the
applicable class
Structured – change in single business rule could affect many programs
Objects encapsulate both functionality and data, making it easier to
maintain your software
Inheritance enables you to reuse existing behaviors, making it easier to
enhance your software
Con’d
Improved Quality
On time, on budget, meet user expectations
OO dev’t techniques provide greater opportunity for users to participate in the
development process.
Bulk requirement definitions
Essential Use Case and CRC models
Con’d
Financial Benefits
The previous benefits are all technical benefits – giving business
benefits of OO
Better Faster Cheaper (BFC)
The less code the less effort to maintain
A system that is easily extensible is easy to maintain
System that meets user needs receive fewer changes
Benefits of OO are realized throughout the entire development
lifecycle, not just during programming
Therefore, because Technical Benefits are achieved BFC can be
achieved
Con’d
Increased Chance of Project Success
Success - On time, On budget, meeting user needs
OO is the way to develop systems quickly and inexpensively
Con’d
Reduced Maintenance Burden
Problems
Maintenance Burden – Spending Significant Resources maintaining software
Application Backlog – Long waiting list of things to be done making new projects not
to start
The Maintenance Burden exists for several reasons
Many systems were developed in the past that are still in use
System documentation is poor, if it exists at all
Compared to the standards of today, legacy systems are poorly built
Con’d
Reduced Application Backlog
2-5 year AB exists
Because OO techniques are more productive, organizations are able to
free up resources sooner to tackle new projects
Con’d
Managed Complexity
You can build complex software from well designed reusable objects
Expect the software you build today will need to be changed
tomorrow
Well designed object oriented software enables you to react quickly to
changes in your environment
Drawbacks of OO
Requires a greater concentration on requirement analysis which is
often ignored in reality
Developers must work closely with users, which is easier said than
done
Requires a complete change in mindset on the part of individuals
Is more than just programming, not easy and not that quick
Benefits are on the long run
Demands up-front investments in training, education and tools
Con’d
Techniques do not guarantee you will build the right system
Necessitates increased testing
OO is only part of the solution – not a silver bullet or a panacea
Need CASE tools
Quality Assurance Tasks
Develop user interface tasks
The Object Oriented Software Process Lifecycle
Con’d
Software process
Set of project phases, stages, methods, techniques, and practices that
people employ to develop and maintain software and its associated
artifacts
Enables organs' to increase productivity when developing software
Thank You!!!