You are on page 1of 5

UNIT – 4

MIS System / Software Development Life Cycle (SDLC)

A MIS System / software development process is a structure imposed on the development of a


software product. Synonyms include software life cycle and software process. There are several
models for such processes, each describing approaches to a variety of tasks or activities that take
place during the process.
Many lifecycle models are available, Depending on the lifecycle model one can choose,
organization can improve development speed, improve quality, improve project tracking and
control, minimize overhead, minimize risk exposure, or improve client relations. The wrong
lifecycle model can be a constant source of slow work, repeated work, unnecessary work, and
frustration.

Life Cycles

1. Ad Hoc
2. Classic (waterfall)
3. Prototype
4. Throw away and evolutionary
5. RAD (Rapid Application Development)
6. Incremental
7. Spiral
8. Design to Schedule
9. Evolutionary delivery
10.COTS
System Life Cycle Model (or) Waterfall Method

Waterfall approach was first Process Model to be introduced and followed widely in Software
Engineering to ensure success of the project. In "The Waterfall" approach, the whole process of
software development is divided into separate process phases.

All these phases are cascaded to each other so that second phase is started as and when defined
set of goals are achieved for first phase and it is signed off, so the name "Waterfall Model". All
the methods and processes undertaken in Waterfall Model are more visible.

This has the following activities.

1. Requirements Analysis
2. Systems Analysis and Design
3. Code Generation
4. Testing
5. Implementation
6. Maintenance

1
1. Software Requirement Analysis

All possible requirements of the system to be developed are captured in this


phase. Requirements are set of functionalities and constraints that the end-user (who will be
using the system) expects from the system. The requirements are gathered from the end-user by
consultation, these requirements are analyzed for their validity and the possibility of
incorporating the requirements in the system to be development is also studied. Finally, a
Requirement Specification document is created which serves the purpose of guideline for the
next phase of the model.

2
This is some time also known as feasibility study. In this phase, the development team visits the
customers 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.

2. System Analysis and Design

Before a starting for actual coding, it is highly important to understand what we are going to
create and what it should look like? The requirement specifications from first phase are studied
in this phase and system design is prepared. System Design helps in specifying hardware and
system requirements and also helps in defining overall system architecture. The system design
specifications serve as input for the next phase of the model.

In this phase, the software development process, 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. A
software development model is created. 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.

3. Code Generation

On receiving system design documents, the work is divided in modules/units and actual coding is
started. The system is first developed in small programs called units, which are integrated in the
next phase. Each unit is developed and tested for its functionality; this is referred to as Unit
Testing. Unit testing mainly verifies if the modules/units meet their specifications.

The design must be translated into a machine-readable form. The code generation step performs
this task. If the design is performed in a detailed manner, code generation can be accomplished
without much complication. Programming tools like Compilers, Interpreters, and Debuggers are
used to generate the code. Different high level programming languages like C, C++, Pascal, and
Java are used for coding. With respect to the type of application, the right programming language
is chosen.

4. Testing

Once the code is generated, the software program testing begins. Different testing methodologies
are available to unravel the bugs that were committed during the previous phases. Different

3
testing tools and methodologies are already available. Some companies build their own testing
tools that are tailor made for their own development operations.

Implementation & Unit Testing On receiving system design documents, the work is divided in
modules/units and actual coding is started. The system is first developed in small programs
called units, which are integrated in the next phase. Each unit is developed and tested for its
functionality; this is referred to as Unit Testing. Unit testing mainly verifies if the modules/units
meet their specifications.

Integration & System Testing: As specified above, the system is first divided in units which are
developed and tested for their functionalities. These units are integrated into a complete system
during Integration phase and tested to check if all modules/units coordinate between each other
and the system as a whole behaves as per the specifications. After successfully testing the
software, it is delivered to the customer.

5. Maintenance

This phase of "The Waterfall Model" is virtually never ending phase (Very long). Generally,
problems with the system developed (which are not found during the development life cycle)
come up after its practical use starts, so the issues related to the system are solved after
deployment of the system. Not all the problems come in picture directly but they arise time to
time and needs to be solved; hence this process is referred as 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.

There is a misconception that the process has no provision for correcting errors in early steps (for
example, in the requirements). In fact, this is where the domain of requirements management
comes in, which includes change control. The counter argument, by critics to the process, is the
significantly increased cost in correcting problems through introduction of iterations. This is also
the factor that extends delivery time and makes this process increasingly unpopular even in high
risk projects.

Advantages and Disadvantages of Waterfall model

Advantages

The advantage of waterfall development is that it allows for departmentalization and managerial
control. A schedule can be set with deadlines for each stage of development and a product can
proceed through the development process like a car in a carwash, and theoretically, be delivered
on time. Development moves from concept, through design, implementation, testing, installation,
troubleshooting, and ends up at operation and maintenance. Each phase of development proceeds
in strict order, without any overlapping or iterative steps.

4
The waterfall model is document driven, which means that the main work products that are
carried from phase to phase are documents.
 The waterfall model performs well for projects in which you have a stable product
definition and when you're working with well understood technical methodologies.
 The waterfall model helps to minimize planning overhead because you can do all the
planning up front.

The waterfall model works well for projects that are well understood but complex, because you
can benefit from tacking complexity in an orderly way.

Weaknesses and Disadvantages

The disadvantage of waterfall development is that it does not allow for much reflection or
revision. Once an application is in the testing stage, it is very difficult to go back and change
something that was not well-thought out in the concept stage. Alternatives to the waterfall model
include joint application development (JAD), rapid application development (RAD), synch and
stabilize, build and fix, and the spiral model.

 The waterfall model isn't flexible. You have to fully specify the requirements at the
beginning of the program.
 Tools methods, and activities span waterfall phase.
 Need for “big specification”(requirements)
 Inflexible
 No results till end
 Possible cost of cascading bugs

By

Shubhendu S. Shukla
Asst. Professor
M.Phil, MBA, MA, PGDCA, PGDIB
SR Group of Institutions, Lucknow
+91-9793000083
e-mail : ssshubhendu@gmail.com

You might also like