Software Development Life
Cycle Overview
The "Software Development Life Cycle" is also known under
other names as the Classic Life Cycle Model, the Linear Sequential Model or the
Waterfall Method.
The methodology includes the following activities.
1. System/Information Engineering and Modeling
2. Software Requirements Analysis
3. Systems Analysis and Design
4. Code Generation
5. Testing
6. Maintenance
System/Information Engineering and Modeling
As software is always of a large system (or business),
work begins by establishing requirements for all system elements and then
allocating some subset of these requirements to software. This system view is
essential when software must interface with other elements such as hardware,
people and other resources. System is the basic and very critical requirement
for the existence of software in any entity. So if the system is not in place,
the system should be engineered and put in place. In some cases to extract the
maximum output, system should be re-engineered and spiced up. Once the ideal
system is engineered or tuned up, the development team studies the software
requirement for the system.
Software Requirements Analysis
This is also known as feasibility study. In this phase,
the development team visits the customer and studies their system. They
investigate the need for possible software automation in the given system. By
the end of the feasibility study, the team furnishes a document that holds the
different specific recommendations for the candidate system. It also includes
the personnel assignments, costs, project schedule, and target dates. The
requirements gathering process is intensified and focused specially on software.
To understand the nature of the program's to be built, the system engineer
("analyst") must understand the information domain for the software, as well as
required function, behavior, performance and interfacing. The essential purpose
of this phase is to find the need and to define the problem that needs to be
solved .
System Analysis and Design
In this phase, the software's overall structure and its
nuances are defined. In terms of the client/server technology, the number of
tiers needed for the package architecture, the database design, the data
structure design etc are all defined in this phase. Analysis and Design are very
crucial in the whole development cycle. Any glitch in the design phase could be
very expensive to solve in the later stage of the software development. Much
care is taken during this phase. The logical system of the product is developed
in this phase.
Code Generation
The design must be translated into a machine-readable
form. The code generation step performs this task. If design is performed in a
detailed manner, code generation can be accomplished with out much complication.
Programming tools like Compilers, Interpreters, Debuggers are used to generate
the code. Different high level programming languages like C, C++, Pascal, Java
are used for coding. With respect to the type of application, the right
programming language is chosen.
Testing
Once the code is generated, the program testing begins.
Different testing methodologies are available to unravel the bugs that were
committed during the previous phases. Different testing tools and methodologies
are already available. Some companies build there own testing tools that are
tailor made for there own development operations.
Maintenance
Software will definitely undergo change once it is
delivered to the customer. There are many reasons for the change. Change could
happen because of some unexpected input values into the system. In addition, the
changes in the system could directly affect the software operations. The
software should be developed to accommodate changes that could happen during the
post implementation period.
Home Page