Sie sind auf Seite 1von 37

Object-Oriented Systems Development

Life Cycle
(CH-3)

School of Computer Engineering,


KIIT University
CONTENTS
3.1 INTRODUCTION
3.2 THE SOFTWARE DEVELOPMENT PROCESS
3.3 BUILDING HIGH-QUALITY SOFTWARE
3.4 OOSD: A USE CASE DRIVEN APPROACH
3.4.1 OOA A USE CASE DRIVEN
3.4.2 OOD
3.4.3 PROTOTYPING
3.4.4 IMPLEMENTATION-COMPONENT BASED
DEVELOPMENT
3.4.5 INCREMENTAL TESTING
3.5 REUSABILITY
School of Computer Engineering
2
KIIT University
3.1 INTRODUCTION
He who does not lay his foundations
beforehand may by great abilities do so
afterwards, although with great trouble to the
architect and danger to the building.

NICCOLO MACHIAVELLI-
The Prince

School of Computer Engineering


3
KIIT University
3.1 INTRODUCTION contd..
The essence of the software development
process that consists of :
Analysis
Design
Implementation
Testing &
Refinement
is to transform users needs into a software
solution that satisfies those needs.
School of Computer Engineering
4
KIIT University
3.1 INTRODUCTION contd..
We need not see code until after 25 to 30 % of
the development time. Because ?
We need to spend more time in:
Gathering REQUIREMENTS,
Developing a requirement model
Developing an analysis model
Developing a design model
Finally code can be developed quickly.
Emphasize is on building high quality software.
i.e (Meeting specifications & being adaptable for
change.)
School of Computer Engineering
5
KIIT University
3.2 THE SOFTWARE DEVELOPMENT
Goals for OOSD:
The software development process
Building high-quality software
Object-oriented systems development
Use-case driven systems development
Prototyping
The system development can be viewed as a
process.

School of Computer Engineering


6
KIIT University
What is Process?
It is an extensive set of guidelines that address
the technical and organizational aspects of
software development focusing on requirements,
analysis and design.

Process basically encapsulates the activities


leading to the orderly construction of system
model.

OO model supports the iterative and incremental


model for the process.

School of Computer Engineering


7
KIIT University
More about Process
Guidance as to the order of teams activities
It specifies what artifacts should be developed
It directs the task of individual developers and team as
a whole
It offers criteria for monitoring and measuring project
activities
Framework for the every stage of software
development life cycle.
The selection of particular process will vary greatly
depending upon things like problem domain,
implementation technology and skills of team

School of Computer Engineering


8
KIIT University
3.2 SOFTWARE DEVELOPMENT
PROCESS contd..
The essence of the software process is the
transformation of Users needs to the application
domain into a software solution.
The development itself is a process of :
Change
Refinement
Transformation or
Addition to existing system
Within the process we can replace one subsystem
with a new one as long as it has same interface.
School of Computer Engineering
9
KIIT University
3.2 THE SOFTWARE DEVELOPMENT
PROCESS contd..
The process can be divided into small, interacting
phases subprocesses.
Each subprocess must have the following:
A description in terms how it works
Specification of the input required for the process
Specification of the output to be produced
Software development process can be viewed as
a series of transformation where:
The output of one transformation becomes the
input of the subsequent transformation.

School of Computer Engineering


10
KIIT University
3.2 THE SOFTWARE DEVELOPMENT PROCESS
contd..
Problem
Transformation 1
Statements
What are the uses
of the system.?
Needs Analysis
Need
Transformation 2

Design System
Implementation Transformation 3 Software
Detail Product
School of Computer Engineering
11
KIIT University
3.2 THE SOFTWARE DEVELOPMENT
PROCESS contd..
Transformation 1 (Analysis): Translates the users
need into systems requirements &
responsibilities.
Transformation 2 (Design): Begins with a problem
statement and ends with a detail design that can
be transformed into an operational system.
Transformation 3 (Implementation): Refines the
detail design into the system deployment that
will satisfy the users needs.
School of Computer Engineering
12
KIIT University
3.2 THE SOFTWARE DEVELOPMENT
PROCESS contd..
W hat

H ow

D o It

Ex: The traditional T e st


Waterfall software
development U se

process.
School of Computer Engineering
13
KIIT University
3.3 BUILDING HIGH-QUALITY
SOFTWARE
To achieve high quality in software we need to
be able to answer the following questions:
How do we determine the system is ready for
delivery ?
Is it now an operational system that satisfies
users need ?
Is it correct and operating as we thought it
should ?
Does it pass an evaluation process ?

School of Computer Engineering


14
KIIT University
3.3 BUILDING HIGH-QUALITY
SOFTWARE contd..
Two basic approaches for system testing:
We can test a system according to how it has been
built or alternatively
What it should do ?
Blums four quality measures for systems
evaluation:
CORRESPONDENCE
CORRECTNESS
VERIFICATION &
VALIDATION
School of Computer Engineering
15
KIIT University
3.3 BUILDING HIGH-QUALITY
SOFTWARE contd..
CORRESPONDENCE : Measures how well the
delivered system matches the needs of the
operational environment, as described in the original
requirements statement.
VALIDATION : It is the task of predicting
correspondence .
CORRECTNESS : Measures the consistency of the
product requirements w.r.t the design specification.
VERIFICATION : It is the exercise of determining
correctness.

School of Computer Engineering


16
KIIT University
3.3 BUILDING HIGH-QUALITY
SOFTWARE contd..
VALIDATION : Am I building the right product ?
VERIFICATION : Am I building the product right ?
Validation begins as soon as the project starts.
Verification can begin only after specification
has been accepted.
Both are independent of each other.

School of Computer Engineering


17
KIIT University
3.3 BUILDING HIGH-QUALITY
SOFTWARE contd..
Correspondence measures how well the
delivered system corresponds to the needs of
the operational environment.

N eeds R e q u ir e m e n ts D e s ig n S o f tw a r e

C o rresp o n d en c e

School of Computer Engineering


18
KIIT University
3.3 BUILDING HIGH-QUALITY
SOFTWARE contd..
Correctness measures the consistency of the
product requirements with respect to the
design specification.

N eeds R e q u ir e m e n ts D e s ig n S o f tw a r e

C o rre c tn e s s

School of Computer Engineering


19
KIIT University
3.3 BUILDING HIGH-QUALITY
SOFTWARE contd..
Validation - "Am I building the right product?
Verification- "Am I building the product right?"
V a l i d a ti o n
V e rific a tio n

N eeds R e q u ir e m e n ts D e s ig n S o f tw a r e

School of Computer Engineering


20
KIIT University
3.4 O-O SYSTEMS DEVELOPMENT: A
USE CASE DRIVEN APPROACH
The O-O software development life cycle
(SDLC) consists of three macro processes:
Object-Oriented Analysis
Object-Oriented Design
Object-Oriented Implementation
The use case model can be employed
throughout most activities.

School of Computer Engineering


21
KIIT University
3.4 O-O SYSTEMS DEVELOPMENT: A
USE CASE DRIVEN APPROACH contd..
Builduse-case
Build
Use-Cases Validate/ Test
model
Object
analysis
Validate/
test

O-O Analysis (Transformation 1)

Iteration and Reuse


Using TOOLS
User Design classes, Build object Build UI
CASE and/or
OO programing satisfaction define & dynamic and
Usability & attributes and
languages
QA Tests
model prototype
methods
O-O User satisfaction test,
usability test
quality assurance test
Implementation O-O Design

(Transformation 3) (Transformation 2)

Fig: OBJECT ORIENTED SYSTEM DEVELOPMENT APPROACH


School of Computer Engineering
22
KIIT University
3.4 O-O SYSTEMS DEVELOPMENT: A
USE CASE DRIVEN APPROACH contd..
One can produce designs that are traceable
across :
Requirements
Analysis
Design
Implementation &
Testing
(Shown by Life Cycle Model of Jacobson, Ericsson
and Jacobson in next slide..)

School of Computer Engineering


23
KIIT University
Life Cycle Model of Jacobson, Ericsson
and Jacobson

Use case
models/
documnet

OOA: Identify OOA: Use case OOA: Courses of


Actors Model action

Object Design
interaction classes
diagram, etc. UI

Dynamic model OOA: Object OOD: Dynamic Testing: Usage


Model model Scenarios

School of Computer Engineering


24
KIIT University
3.4 O-O SYSTEMS DEVELOPMENT: A
USE CASE DRIVEN APPROACH contd..
Advantages of OOSD-By use case are:
All design decisions can be traced back directly to
user requirements.
Usage scenarios can become test scenarios.
Views problem as a system of cooperating objects.
Advocates incremental development.
Helps in identifying objects.

School of Computer Engineering


25
KIIT University
3.4.1 Object Oriented Analysis Use Case
Driven
O-O Analysis concerns with determining the
system requirements and identifying classes
and their relationships to other classes in the
problem domain.
Use case & Scenarios
Use case modeling
Documentation (80:20 Rule can be applied)
80:20 Rule: 80% of the work can be done with
20% of the documentation.
School of Computer Engineering
26
KIIT University
3.4.2 Object Oriented Design
The goal of object-oriented design (OOD)
is to design:
The classes identified during the analysis
phase,
The user interface and
Data access.

School of Computer Engineering


27
KIIT University
3.4.2 Object Oriented Design contd..
OOD activities include:
Design and refine classes.
Design and refine attributes.
Design and refine methods.
Design and refine structures.
Design and refine associations.
Design User Interface or View layer classes.
Design data Access Layer classes.

School of Computer Engineering


28
KIIT University
3.4.2 Object Oriented Design contd..
Guidelines for OOD are:
Reuse, rather than build, a new class. Know the
existing classes.
Design large number of simple classes, rather than
small number of complex classes.
Design Methods
Critique what you have proposed. If possible go
back and refine the classes.

School of Computer Engineering


29
KIIT University
3.4.3 Prototyping
A Prototype enables you to fully understand
how easy or difficult it will be to implement
some of the features of the system.
It can also give users a chance to comment on
the usability and usefulness of the design.
Types of Prototype are :
A horizontal prototype is a simulation of the
interface. (i.e UI)
A vertical prototype is a subset of the system
features with complete functionality.
School of Computer Engineering
30
KIIT University
3.4.3 Prototyping contd..
An analysis prototype is an aid for exploring
the problem domain. Proof of a concept but
its code not used in real implementation.
A domain prototype is an aid for the
incremental development of the ultimate
software. Can be evolved into a deliverable
product.
Finally a threefold review can be done.

School of Computer Engineering


31
KIIT University
3.4.4 Implementation: Component -
Based Development
Reduce cost & Time to market is the need.
CASE Tools (Modeling, Methodology &
Automated code generation)
Component Based Development: (Assemble
prebuilt, pretested, reusable software
components.)
The software components are the functional
unit of a program, building blocks offering a
collection of reusable services. (eg: SOA etc)
School of Computer Engineering
32
KIIT University
3.4.4 Implementation: Component -
Based Development contd..
RAD (Rapid Application Development) is a set
of tools and techniques that can be used to
build an application faster than typically
possible with traditional methods.
It is for quicker delivery, quality is sacrificed.
It supports prototyping
Reduces time to market
It compliments SDLC, does not replace it.
Visual tools are used.

School of Computer Engineering


33
KIIT University
3.4.5 Incremental Testing
Software development and all of its activities
including testing are an iterative process.
Testing is important to ensure that the
software meets its requirements and users
needs.
Testing will also discover bugs/errors that are
prevailing in the software.

School of Computer Engineering


34
KIIT University
3.4.5 Incremental Testing contd..
Two important types of testing
Usability Testing
More on the Interfaces of the system
Eg - Questionnaires to targeted users
Feedback from targeted users
Functionality Testing
More on the features of the system
Eg Test Plan (includes test cases)
Testing on Expected and Actual Outcome of the system

School of Computer Engineering


35
KIIT University
3.5 REUSABILITY
Benefits of Reuse ?
Increased reliability
Reduced time & cost for development
Improved consistency
The reuse strategy are :
Information hiding (Encapsulation)
Conformance to naming standard
Encouragement to strategic management of reuse as
opposed to constant redevelopment.
Establishing target of a % of the objects in the project
to be reused.

School of Computer Engineering


36
KIIT University
FINALLY
OOSD Promotes:
Object Oriented Analysis Use Case Driven
Object Oriented Design
Prototyping
Implementation: Component - Based
Development
Incremental Testing
Reusability

School of Computer Engineering


37
KIIT University