Abstract
The Software Life Cycle Model consists of the System Development Cycle and the System Maintenance Cycle.
Stages in the Software Life Cycle
The software life cycle (according to IEEE1074) starts with the selection of an appropriate life cycle
model followed by recruitment. There are many life cycle models that can be chosen. The following stages are in the sequential order of the Waterfall Model, due to its simplicity and
prevalance in software engineering.
Project planning and a feasibility study are required to determine first of all if a new system is
needed, and if it is possible within reasonable costs and time restraints.
Requirement analysis is one of the first stages in the waterfall model, in which the
requirements of the new system are found through interviews with potential users and
management, and feedback on prototypes. It is important that those chosen to be interviewed
are technically capable or the interviewer can extrapolate what the user wants form their
feedback and spot possible requirement contradictions.
From the requirements a formal specification can be written up; normally a strict and
mathematical description of what the system must achieve. These come directly from the
requirements, and may follow more informal specifications. When the application is further into
the development cycle it will be continuously checked against the specifications to ensure the
system fulfills the its required purpose.
The central stage in the waterfall model is the implementation and (unit & system) testing.
Implementation is the most obvious part of creating a system, but often one of the smaller
sections time and cost wise.
Testing is important to prevent bugs and to test the implementations against the specifications.
A failure is generally considered to be when a system doesn't perform as intended, whilst a fault
is a programming error that may develop into a failure.
It is important testing is thorough,as the earlier a defect is detected the cheaper it is to fix.
Testing generally starts during the requirement analysis stage of the software development life
cycle. Testing then continues into the development and then execution stages. Unit testing typically follows implementation, followed by integration testing.
Acceptance, installation and deployment are the final stages of initial development where the
software is put into practice and runs actual business. Choices in deployment time and back up
strategies in case of system failure are essential for critical services (eg the failure of the LAS to
have a back up ambulance system to switch back to after the failed system deployment).
Training and support of the users then increases the likelihood of correct usage of the system.
Maintenance can be a very expensive task, as it essentially lasts as long as the system. It may
require some of the original programmers to be employed continuously to ensure the correct
running of the system and for keeping it appropriately up to date. If requirements change at a late stage it can prove very expensive.
Typically about 40% of development time is spent in the requirements stage of the life cycle, just 20%
in the actual implementation and the remaining 40% in testing.
Links & Resources
At the time of writing (Dec 06) the following resources were useful
Software Develoment Process Wikipedia.org
Quick Study Notes Computerworld.com
The Mythical Man Month Fred Brooks