2. The phased life-cycle
Milestones, documents, and reviews
The cost model
The prototype life-cycle model
Successive versions
3. Planning the software development process involves
several important considerations.
The first consideration is to define a product life –cycle
model. The software life cycle encompasses all activities
required to define, develop, test , operate and maintain a
software product.
Different models emphasize different aspects of the life
cycle and no single life cycle model is appropriate for all
software products.
4. The phased model segments the software life cycle into a
series of successive activities. Each phase requires well
defined input information, utilizes, well defined process
and result in well defined products
Resources are required too complete the processes in
each phase and each phase accomplished through the
application of explicit methods tools and techniques.
5. We consider the phased model to consist of the following
phases:
Analysis design implementation system testing and
maintenance. the model is sometimes called a waterfall
chart, the implication being that products cascade from
one level to the next in smooth progression analysis
consists of two sub phases:
The products of planning are a system definition and
project plan.
6. The system definition is typically expressed in English or
some other natural language and may incorporate chart,
figures, graphs, tables and equations of various kinds. The
exact notations used in the system definition are highly
dependent on the problem area.
The project plan contains the life cycle model to be used the
organizational structure for the project, the preliminary
development schedule, preliminary cost and resources
estimates, preliminary staffing requirements, tools and
techniques to be used, and standard practices to be followed.
7. During the planning phase cost estimates and work
schedules will be preliminary in nature because it is
usually not possible to make accurate estimates without
doing some design.
Requirements definition is concerned with identifying the
basic functions of the software component is a
hardware/software /people system.
8. The product of requirements definition is the speciation
the describes the processing environment the requited
software functions performance constraints on the
software (size, speed, machine configuration), exception
handling, sub sets and implementation priorities, probable
changes and likely modifications and the acceptance
criteria for the software.
9. The implementing phase of software development
involves translation of design specifications into source
code, and debugging documentation and unit testing of
the source code.
Errors discovered using the implementation phase may
include errors in the data interfaces between routines,
logical errors in the algorithms, errors in data structure
layout and failure to account for various processing cases.
10. Another view of the software life cycle that emphasizes the
milestones documents and reviews throughout product
development . As a software product evolves through the
development cycle ,it is often difficult, if not impossible
for project managers and project team members to assess
progress to determine resources expended, to predict
schedule delays, or to anticipate problem areas.
11. Some of the terminology is adapted from the IEEE standard
for software quality assurance plans;
A system definition and project are prepared, a product
feasibility review is then held to determine the feasibility
of project continuation.
A preliminary version of the user’s manual is prepared.
The preliminaries user’s manual provides a vehicle of
communication between customer and developer.
12. A software requirement specification is prepared. The
requirement specification clearly and precisely defines each
essential requirement for the software product as well as the
external interfaces to hardware firmware other and people.
A preliminary version of the software verification plan is
prepared.
A software requirements review is held to ensure the
adequacy o the system definition the project plan the software
requirement specification the software verification plan and
the preliminary user’s manual.
13. Another view of the software life cycle can be obtained
by considering the cost of performing the various
activities in a software project.
The cost of conducting a software project is the sum of
the costs incurred in conducting each phase of the project.
Cost incurred within each phase of the processes and
preparing the produces for that phase.
14. Modification and corrections to the products of previous
phases are necessary because the processes of the current
phase will expose inaccuracies. Inconsistencies, and
incompleteness in the products.
The cost of product implementation is the cost of
implementing ,documenting ,debugging, and unit testing the
source code, plus the cost of completing the users manual the
instruction ,plan the maintenance procedures, and the
installation and training instructions, plus the cost of
modifying, and correction the system definition, the project
plan.
15. Finally the cost of software maintenance is the sum o the
costs o performing product enhancements making
adaptations to new processing requirements and fixing
bugs.
Software requirement specification and design documents
in subsequent phases of the lie cycle are so costly. Not
only must the documents be modified, nut all
intermediate work products must also be coordinated.
16. A prototype is a mock up or model of a software product.
In contrast to a simulation model a prototype incorporates
components of the actual product.
There are several reasons for developing a prototype. One
important reason is to illustrate input date formats,
messages, reports, and interactive dialogues for the
customer.
17. The second reason for implementing a prototype is to
explore technical issues in the proposed product.
The third reason for developing a prototype is in
situations where the phased model of analysis->design-
>implementation-> is not appropriate. The phased model
ids applicable when it is possible to write a reasonably
complete set of specifications for a software product at
the beginning of the life cycle.
18. New versions of existing produces can most likely b
developed using the phased like cycle model with little or
no prototyping. Development of a totally new product
will probably involve some prototyping during the
planning and analysis phase or the product may be
developed by iterating through a series of successive
designs and implementations.
19. Product development by the method of successive
versions is an extension of prototyping in which an initial
product skeleton is refined into increasing levels of
capability. In this approach each successive version of the
product is a functioning system capable of performing
useful work.
There are several possible life cycle models.
phased model, the cost model, the prototype model and
the successive versions model.
20. Not all the documents described need be generated for
every product, but supporting documents are required for
every software product regardless of the life cycle model
used.
A minimal set of supporting document documents for the
software product includes a statement of requirements, a
design specification, a test plan, and a user’s manual.
21. Determining the appropriate document, development
schedules, milestones, and reviews for a software project
is a major activity during the planning phase.
Adopting a product life cycle model provides
standardized terminology for the project, and increases
the visibility of work products.
This can result in improved software quality, increased
programmer productivity, better management control, and
improved morale.