0a5079b1u2 KK Agrawal
0a5079b1u2 KK Agrawal
2 h e ultimate
Models
objective of software
frame
engineering
and at
is to produce
affordable cost.
This
good
is
be
quality
possible
maintainable
a c h i e v a b l e only
to
if w e
determine
within r e a s o n a b l e
time
process,
it should This c a n
software it. For a m a t u r e the final product.
matured processes
to produce to produce the soft-
nave effort will be required must
measure
20
Software Life Cycle Models
ero
o
Build
code
Coct
Fix a Mailnauc
dpicut
Fig. 2.1: Build and fix model
very high as compared to the cost of a properly specified and carefully designed
product. In addition, maintenance of the productcan be extremely dificult without specification
or design documents.
Requirement analysis
& Specification
Design
ovonl softunane,
Ovon d nehairtue
documula)
Sys SDD
tnt SDD
Implementation &
Solhware
PANe Unit testing
Integration &System
testing
Operation&
Maintenance
after release is very significant. Despite the fact that it is a very important and challenging
task; it is routinely the poorly managed headache that nobody wants to face.
Software maintenance is a very broad activity that includes error correction, enhance
ment of capabilities, deletion of obsolete capabilities, and optimization/The purpose of this
phase is to preserve the value of the software over time This phase may span for 5 to 50 years m
whereas development may be 1 to 3 years.
This model is easy to understand and renforces the notion ofkdefine before desie and
("design before codeThis model expects complete and accurate requirements early in the
process, which 18 unrealistic. Working software is not available until relatively late in the
process, thus delaying the discovery of serious errors. It also does not incorporate any kind of
risk assessment.
Problems of waterfall model
i) It is difficult to define all requirements at the beginning of a project.
NaCoy (ti) This model is not suitable for accomodating any change.
i i ) A working version of the system is not seen until late in the project's lif.
v ) It does not scale up well to large projects.
(0) Real projects are rarely sequentil. .
Due to these weaknesses, the application of waterfall model should be limited to situa-
ions where therequirements and their implementation are well understood. For example, if
an organisation has experience in developing accounting systems then buildinga new acounting
system based on existing designs could be easily managed with the waterfall model.
24 is the
delivery of
a complete,
opera-
Release II
Release ll
enhancement model
Fig. 2.3: terative
Ule uweRAnmuut
Development (RAD)
Model h yheud
2.3.2 The Rapid Application IBM in the 1980s and
incremental process model
and w a s developed by
This model is a n Development"(Here, user
James Martin entitled "Rapid Application
described in the book of product. The
continuous
(i) Requirements planning phase: Requirements are captured using any group
elicitation technique. Some techniques are discussed in
chapter 3. Only issue is the activee
involvement of users for
understanding the project.
(ii) User description: Joint teams of
developers and users are constítuted to prepare,
understand and review the requirements. The team may use automated
tools to captkre
information from the other users,
iii)Construction phase: This phase combines the defailéd desigk, codingarktestin
phase of waterfallmodel Here, we release the product to customer. ft is expected to Use Code
generators, sereen generators and other types of productivity tools
(iv) Cut over phase:This phase incorporates acceptancetesting by the usersinstallation
of the system, and user training,
Inthis modet quickinitíalviews about the product are possibledue to delivery of rapid
prototype.the development time of the product may bereduced due to use pf powerful
developmenttools. It may use CASE tools and framewotks toincrease productivity.(nvolvement
of user may increase the acceptability of the
product.
fuser gnotbeinvolved throughout the life cycle, this may not be an appropriate
model, Developiment tim may not be reduced very significantly,if reusablecomponents are
not available. Highly specialized and skilled developers are expected and such developers may
not be available very
easilyIt may notbeeffective, if system can not be properly modularised.
2.4 EVOLUTIONARY PROCESS MODELS
Evolutionary process model resembles iterative enhancement model The same phases as de
finedtorthe waterfall modeloccur here in acyclicalfashion.This model differs from iterative
enhancement modelin the sensethatthizdoes not requirea useabte producrat theend of each
cycle.jln evolutionary development, reáunements aTe mpiemented y taegory rather than
by priórity
For êxample, in a simple database application, one cycle might implement the graphical
user interface (GUI; another file manipulation; another queries; and another updates. All
four cycles must complete before there is working product available. GUI allows the users to
interact with the system; file manipulation allows data to be saved and retrieved; queries
allow users to get data out of the system,and updates allow users to put data into the system
With any one of those parts missing, the system would be unusable.
In contrast, an iterative enhancement modelwouldstart by developing a very simplistic,
but usable databasg. On the completion of each cycle, the system would hecome more
Sophisticated. It, would, however, provide all the critical functionality by the end of the first
cycle. Evolutionary development and iterative enhancement are somewhat interchangeable.
PEvolutionary development should beused whenit isnotnecessaryto provide a minimal version
volution
Requirements
wt tHg Refinement of
requirements as
per suggestions
Impleme
Accepted by customer
Design
S /
d s u
extra cost, but overall cost might turnout to be lower than that of an
using the waterfall model. equivalent system developed
The developers should
develop prototype as early as possible to speed up the software
development process. After all, the sole use of this is to determine the customer's real needs.
Once this has been determined, the
prototype discarded. For this
is
of the prototype is not very important [SCHA96). hotobula reason, mah
the internalstructure
After the finalization of software SR
requirement and specification
(SRS) document, the
prototype is discarded and actual system is then developed using the waterfall
itis used as an input to waterfall model approach,Thus,
and produces maintainable and good quality
This model requires extensive participation and involvement of software.
the customer, which is not
always possible.
2.4.2 Spiral Model
The problem with traditional software process models is that theydo not deal
the uncertainty, which is inherent to software sufficiently with
because project risks were neglected
projects Impurtant software projects have failed
and nobody was prepared when something unforeseen
happened.|Barry Boehm recognized this and tried to incorporate the project riskSactor into
a life cycle model. The result is the spiral model, which was presented in 1986 [BOEH86] and
is shown in Fig. 2.6.
The radial dimension of the model represents the cumulative costs, Each path
the spiral is indicative of increased around
costs.The angular dimension represents the progress made
in
completing each cycle. Each loop of the spiral from X-axis
clockwise through 360° represents
one phase One phase is split roughly into four sectors of major activities:
Progress
through
steps
Evaluate alternatives
icdetity, resolve riakss
Prototype 3 Operational
Risk analysis
ototype
Commitment
Proto
Prototype 1 ype 2
Partition Rats plan
lde cycle Concept of Simulations Models Benchmarks
plan 0peration
Software Software
rqts. product Detailed
Review Develop design design
ment plan Requirements
validation
Code
integration
and test
Design validation
and verification
Unit
test
Integration
and test
Plan
next phases Implemen Acceptance
tation test
Develop, verify
next-level product
V
Process
2.5.1 The Phases of the Unified 2.7. Each
and the life cycle ís shown in the Figure
There are four phases in the unified process to improve the quality of the
be reviewed, if required,
phase has a specific outcome which can
process.
2.7: The phases of unified process alongwith outcomes ater each phase
Fig.
these change can be accomodated due to iterative nature of the process. The outcome of the
phase is cleár definition of the objectives of the/project.
(it) Elaboration: How do we plan and design the project ? What resources are required?
What type of architecture may be suitable ? These questions are answered in this phase. We
specify the features and prepare the baselihe of the architecture. This is similar to design
phase of waterfall model. The outcome is the planning and architecture documents of the
project
(u) Construction: The objectives are translated in design and architecture documents.
These documents are the inputs to construction phase and output is the product. We build and
test the product in this phase. The outcome of this phase is the deliverable product to the
Customer sometimes may be
and as beta treated release
(iu) Transition: Transitioning the product to the customers involves many activities
ike deivering,training, supporting, and maintaining the product. The ultimate objective is
the customer's satisfaction. The
phase activities may
continue customers are til the satisfied.
The outeome is the product releasé which also concludes the life cycle of unified process.
These four phases (Inception, Elaboration, Construction and Transition) constitute a
development cycle and produce a'software generation. In the first iteration i.e., initial develop-
ment cycle, first version of the software is produced. The software will be used by users. The
Software Engineering
30 failure reports etc.
functionality,
may
feedback of the sers in terms of additional
The s a m e process
through ince otivate
inception,elaboration, construction
ction us
to work for second versio generation of the software n on and
to evolve the next ct. Tho
transition phases will repeat 2.8. With several evoluti
cyclesas shown infigure cycles,ofnew
Cycles are known asevolution produced. This process will continue upto the rots
generations of the product
are
tirement the
software product.
Version 1
Construction Transition
Inception Elaboration
Initial development cycle
Version 2
Inception Elaboration Construction Transition
Evolution cycle
Version 3
Inoepton Elaboration Construction Transition
Evalution cycle
Continue till
the product is
retired.
inception Elaboration
Constréction Transition
Tme
teration-1
Iterafion-2 Iteration-3 Iteá- Itera- Itera- lteration-7 lteration-8
tign-4| tion-5 tion-6
Interal
First extemal Final release
release
release (beta
release)
Fig. 2.9: Iterations within a phase
Each iteration follows a
contains the activities of
pattern which is similar to waterfall model. Hence, the work-flow
requirements elicitation and analysis, design, implementation ana
testing. However, from one
various activities will iteration
to the next and from
on phase to the next, the emphasi5
one
of activities over time change. Figure 2.10 shows the relative emphasis of the variouS ype
executed concurrently
[KRUC 99]. These activities are not
separated in time. Rather, they are
not much
code is written
throughout the lifetime of the
project. As we have seen in figure
éarly, in the .i
projected, most of the requirements areproject life cycle; but the amount is not zero. Late in u
the project matures, the known, but some new ones are still
emphasis on certain activities identified. Thus, a
are allowed to execute at any time increases or decreases, but
throughout the lifetime of the project acviu
[BO0C 98|.
31
Software Life Cycle Models
Requirements
elicitation and
analysis
Design
Implementation
Test
Iteration-1 lteration-2 terat-Itera- tera-ltera Itera
Priliminaryy iion-n tion-n ition-n ition-m tion-m+1
iteration/ +1 +2
Inception
Initial project
Vision
document Initial use glossary
case model
of Inception phase
Fig. 2.11: The outconmes
The vision document's emphasis is on requirements and scope of the project. It give
overall ohjective and expectations from the project. Initial use case model
an idea about
use case diagram alongwith actors etc. It may also consist of use cases that can be identifed
at
this early stage.
Initial business case may include revenue model, market conditions, business difficnl
ties and financial forecast etc. Project plan document may include pnses and iterations for
thedevelopment of the project. Prototypes are very useful for the undefstanding of the project
(optional item). A business model may be required to provide ideg about "time to marke"
marketing strategies, cash flows andthresats.
The elaboration phase has the focus on the analysis of problem domain, establishes a
sound architectural foundation, develops project plans and eliminates the risk elements. Some
of the objectives and activities are:
Establishing architectural foundations
Design of use case model
Elaborating the process, infrastructure and development environment
Selecting component, if possiple, for the project
Demonstrating that architecture supportsthe vision at reasonable cost and with speci-
fied time.
The outcomes are given in Fig. 2.12.
A developmert
Revised risk
plan documen
A use case model (at least 80% complete) is prepared. All use cases are identified
alongwith associated actors. Supplementary requirements document (with nonfunctional
requirements) and software architecture description document are also prepared. A prototyps
is also designed for the customer to give an idea about the final product. A development plan
with iterations, workflows etc. is also prepared. A preliminary user manual, although optional,
may also be prepared in this phase and will refine in the subsequent phases.
The construction phase produces the product for the customer. The objectives and
activities are:
Implementing the project
Minimising development cost
Managing and optimizing resources
.Testing the product
Assessing the product releases against acceptance criteria.
The outcome of this phase is a product ready to use for the customers and is shown in
Fig. 2.13.
Test outline
Operatioral manuais
Test suite
Documentation Construction
manuals
A description
of the current
Software release
product User
manualsS
User
feedback
Product
release Beta test
reports
be used Wlab ua
No No Yes Yes No Yes
Availability of training,
if required,udal
PALALUlie-nabaRAD
An appropriatemodel may be selected based on options given in four Tables (i.e., Table
2.1 to 2.4). Firstly, we have to answer the questions presented for each category by circling a
yes or no in each table. Rank the importance of each category, or question within the category,
in terms of the project for which we want to select a model. The total number of
circled responses
for each column in the tables decide an
appropriate model. We may also use the category
ranking to resolve the conflicts between models if the total in either case is close or the same.
REFERENCES
[BASI75] Basili V.R., Iterative Enhancement: A Practical Technique for Software Development",
IEEE Trans on Software Engineering, SE-1, No. 4, 390-396, December 1975.
[BOEH86] Boehm B., A Spiral Model for Sofiuware Development and Enhancement', ACM Software
Engineering Notes, 14-24, August, 1986.
[BOOC98] Booch G. et. al., "Object Oriented Analysis and Design with Applications", 2nd ed., Addison
Wesley Longman Inc., 1998.
[JACO98] Jacobson I., Booch G. and Rumbaugh J., "The Unified Softuware Development Process",
Reading, MA : Addison Wesley Longmen, 1998.
[KRUC99] Kruchten P, "The Rational Unified Process-An Introduction", Addison Wesley Longman
Inc. 1999.
[RAKI971 Rakitin S.R, "Softuware Verification and Validation", Artech House Inc., Norwood, MA, /
1997.
ISCHA96J Schach S., Classical and Object Oriented Software Enginering", IRWIN, USA, 1996.
ITAKA96] Takang A.A. and Grubb P.A., "Software Maintenance-Concepts and Practice", Int. Thomson
Computer Press, Cambridge, U.K, 1996.
37
Software Life Cycle Models