|
System Development Life Cycle
The Systems Development Life Cycle (SDLC) is a conceptual model used in project management
that describes the stages involved in an information system development project from
an initial feasibility study through maintenance of the completed application. Various
SDLC methodologies have been developed to guide the processes involved including the
waterfall model (the original SDLC method), rapid application development (RAD), joint
application development (JAD), the fountain model and the spiral model. Mostly, several
models are combined into some sort of hybrid methodology. Documentation is crucial
regardless of the type of model chosen or devised for any application, and is usually
done in parallel with the development process. Some methods work better for specific
types of projects, but in the final analysis, the most important factor for the success
of a project may be how closely particular plan was followed.
The image below is the classic Waterfall model methodology, which is the first SDLC
method and it describes the various phases involved in development.
Briefly on different Phases:
Feasibility
The feasibility study is used to determine if the project should get the go-ahead.
If the project is to proceed, the feasibility study will produce a project plan and
budget estimates for the future stages of development.
Requirement Analysis and Design
Analysis gathers the requirements for the system. This stage includes a detailed study
of the business needs of the organization. Options for changing the business process
may be considered. Design focuses on high level design like, what programs are needed
and how are they going to interact, low-level design (how the individual programs
are going to work), interface design (what are the interfaces going to look like)
and data design (what data will be required). During these phases, the software's
overall structure is defined. 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.
Implementation
In this phase the designs are translated into code. Computer programs are written
using a conventional programming language or an application generator. 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
In this phase the system is tested. Normally programs are written as a series of individual
modules, these subject to separate and detailed test. The system is then tested as
a whole. The separate modules are brought together and tested as a complete system.
The system is tested to ensure that interfaces between modules work (integration testing),
the system works on the intended platform and with the expected volume of data (volume
testing) and that the system does what the user requires (acceptance/beta testing).
Maintenance
Inevitably the system will need 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.
|