Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 15

Chapter 1

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.
• 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
Through the concepts
 Inheritance
 Polymorphism
 Encapsulation
 Modularity
 Coupling
 Cohesion
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
On time, on budget, meet user expectations
OO devt techniques provide greater opportunity for
users to participate in the development process.
Bulk requirement definitions
 Essential Use Case and CRC models
• 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
Success - On time, On budget, meeting user needs
OO is the way to develop systems quickly and
inexpensively
• 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
• 2-5 year AB exists

Project Project System


Idea Proposed Begins Released

Application Backlog Development time

Total Implementation Time


• Because OO techniques are more productive,
organizations are able to free up resources sooner to
tackle new projects
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
• 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
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
Deliver Maintain and
Initiate Construct Support
Define and Test in
Test in
Justif validate
Model
the Release
initial the
Large Support
y requiremen
ts
Small

Define Initial Progra Identity


Management
Define
Infrastructure
Generalize
m
Rework Assess Defects and
Documents Enhancements

Assure quality, Manage the Project, Train and Educate, Manage People, Manage Risk, Manage
Reuse, Manage Metrics, Manage Deliverables, Manage Infrastructure
Software process
 Set of project phases, stages, methods, techniques, and
practices that people employ to develop and maintain
software and its associated artifacts
 Enables orgns to increase productivity when developing
software

You might also like