Chapter 3 Ooad
Chapter 3 Ooad
INTRODUCTION
Software development
Analysis, design, implementation, testing &
refinement to transform users need into
software solution that satisfies those needs
Object-oriented approach
more rigorous process to do things right
more time spent on gathering requirements,
developing requirements model & analysis model,
then turn into design model
need not see code until after 25% development
time
BUILDING HIGH-QUALITY
SOFTWARE
To achieve high quality in software we
need to be able to answer the following
questions:
How do we determine when the system
is ready for delivery?
Is it now an operational system that
satisfies users needs?
Is it correct and operating as we thought
it should?
Does it pass an evaluation process?
OOSD
Object-oriented software
development life cycle (SDLC)
consists of three macro processes
Object-oriented analysis
Object-oriented design
Object-oriented implementation
Activities
Object-oriented analysis - use case driven
Object-oriented design
Prototyping
Component-based development
Incremental testing
Encourages
viewing of system as a system of
cooperative objects
incremental development
Object-oriented analysis
concerned with determining the system requirements
and identifying classes and their relationships to other
classes in the problem domain.
Actors: The users of the system
Use case: A typical interaction btwn a user and a
system that captures users goals and needs.
Scenarios: Used to help analysts understand
requirements
Collaboration: The intersection among objects roles
to achieve a given goal is called collaboration
Use-case modeling: Expressing these high-level
processes and interactions with customers in a scenario
and analyzing it is referred to as use-case modeling.
The 80-20 rule generally applies for documentation:
80 percent of the work can be done with 20 percent of
Object-oriented design
design the classes identified during the
analysis phase and the user interface.
identify and define additional objects and
classes that support implementation of
the requirements.
Design and refine classes
Design and refine attributes
Design and refine methods
Design and refine structures
Design and refine associations
Prototyping
A prototype is a version of a software product
developed in the early stages of the products life
cycle for specific experimental purposes.
Prototypes have been categorized in various ways.
A horizontal prototype is a simulation of the
interface , but contains no functionality
A vertical prototype is a subset of the system
features with complete functionality
An analysis prototype is an aid for exploring the
problem domain.
A domain prototype is an aid for the incremental
development of the ultimate software solution.
Incremental testing
If you wait until after development to
test an application for bugs and
performance, you
could be wasting thousands of dollars
and hours of time.
Testing should be integral part of
SDLC.