Anda di halaman 1dari 17

CH:5 SDLC MODELS Date: Aug.

2013
By : Ms.Pintukumari Bera

There are various software development approaches defined and designed which
are used/employed during development process of software, these approaches are
also referred as "Software Development Process Models".

Each process model follows a particular life cycle in order to ensure success
in process of software development.

1. WATERFALL MODEL

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.

The phases in Waterfall model are: Requirement Specifications phase, Software


Design, Implementation and Testing & Maintenance. 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.
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera

The stages of "The Waterfall Model" are:

Requirement Analysis & Definition: 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.

System & Software 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
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
system requirements and also helps in defining overall system architecture. The
system design specifications serve as input for the next phase of the model.

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.

Operations & 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.

Advantages and Disadvantages

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
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
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.

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.

Common Errors in Requirements Analysis


In the traditional waterfall model of software development, the first phase of
requirements analysis is also the most important one. This is the phase which
involves gathering information about the customer's needs and defining, in the
clearest possible terms, the problem that the product is expected to solve.

This analysis includes understanding the customer's business context and


constraints, the functions the product must perform, the performance levels it
must adhere to, and the external systems it must be compatible with. Techniques
used to obtain this understanding include customer interviews, use cases, and
"shopping lists" of software features. The results of the analysis are typically
captured in a formal requirements specification, which serves as input to the next
step.

Well, at least that's the way it's supposed to work theoretically. In reality, there are
a number of problems with this theoretical model, and these can cause delays and
knock-on errors in the rest of the process. This article discusses some of the more
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
common problems that project managers experience during this phase, and
suggests possible solutions.

Problem 1: Customers don't (really) know what they want

Possibly the most common problem in the requirements analysis phase is that
customers have only a vague idea of what they need, and it's up to you to ask the
right questions and perform the analysis necessary to turn
this unstructured vision into a formally-documented
software requirements specification that can, in turn, be used as the basis for both
a project plan and an engineering architecture.

To solve this problem, you should:

Ensure that you spend sufficient time at the start of the project on
understanding the objectives, deliverables and scope of the project.
Make visible any assumptions that the customer is using, and critically
evaluate both the likely end-user benefits and risks of the project.
Attempt to write a concrete vision statement for the project, which
encompasses both the specific functions or user benefits it provides and the
overall business problem it is expected to solve.
Get your customer to read, think about and sign off on the completed
software requirements specification, to align expectations and ensure that
both parties have a clear understanding of the deliverable.

2. Iterative Model

An iterative lifecycle model does not attempt to start with a full specification of
requirements. Instead, development begins by specifying and implementing just
part of the software, which can then be reviewed in order to identify
further requirements. This process is then repeated, producing a new version of
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
the software for each cycle of the model. Consider an iterative lifecycle model
which consists of repeating the following four phases in sequence:

A Requirements phase, in which the requirements for the software are gathered
and analyzed. Iteration should eventually result in a requirements phase that
produces a complete and final specification of requirements.

A Design phase, in which a software solution to meet the requirements is


designed. This may be a new design, or an extension of an earlier design.

An Implementation and Test phase, when the software is coded, integrated and
tested.

A Review phase, in which the software is evaluated, the current requirements are
reviewed, and changes and additions to requirements proposed.

For each cycle of the model, a decision has to be made as to whether the software
produced by the cycle will be discarded, or kept as a starting point for the next
cycle (sometimes referred to as incremental prototyping). Eventually a point will
be reached where the requirements are complete and the software can be
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
delivered, or it becomes impossible to enhance the software as required, and a
fresh start has to be made.

The iterative lifecycle model can be likened to producing software by successive


approximation. Drawing an analogy with mathematical methods that use
successive approximation to arrive at a final solution, the benefit of such methods
depends on how rapidly they converge on a solution.

The key to successful use of an iterative software development lifecycle is


accurate validation of requirements, and verification (including testing) of each
version of the software against those requirements within each cycle of
the model. The first three phases of the example iterative model is in fact an
abbreviated form of a sequential V or waterfall lifecycle model. Each cycle of
the model produces software that requires testing at the unit level, for software
integration, for system integration and for acceptance. As the software evolves
through successive cycles, tests have to be repeated and extended to verify each
version of the software.

3. V-Model

The V-model is a software development model which can be presumed to be the


extension of the waterfall model. Instead of moving down in a linear way, the
process steps are turned upwards after the coding phase, to form the typical V
shape. The V-Model demonstrates the relationships between each phase of the
development life cycle and its associated phase of testing.
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera

Verification Phases

1. Requirements analysis:

In this phase, the requirements of the proposed system are collected by


analyzing the needs of the user(s). This phase is concerned about
establishing what the ideal system has to perform. However, it does not
determine how the software will be designed or built. Usually, the users are
interviewed and a document called the user requirements document is
generated. The user requirements document will typically describe the
systems functional, physical, interface, performance, data, security
requirements etc as expected by the user. It is one which the business
analysts use to communicate their understanding of the system back to the
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
users. The users carefully review this document as this document would
serve as the guideline for the system designers in the system design phase.
The user acceptance tests are designed in this phase.

2. System Design:

System engineers analyze and understand the business of the proposed


system by studying the user requirements document. They figure out
possibilities and techniques by which the user requirements can be
implemented. If any of the requirements are not feasible, the user is
informed of the issue. A resolution is found and the user requirement
document is edited accordingly.

The software specification document which serves as a blueprint for the


development phase is generated. This document contains the general
system organization, menu structures, data structures etc. It may also hold
example business scenarios, sample windows, reports for the better
understanding. Other technical documentation like entity diagrams, data
dictionary will also be produced in this phase. The documents for system
testing are prepared in this phase.

3. Architecture Design:

This phase can also be called as high-level design. The baseline in selecting
the architecture is that it should realize all which typically consists of the
list of modules, brief functionality of each module, their interface
relationships, dependencies, database tables, architecture diagrams,
technology details etc. The integration testing design is carried out in this
phase.
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
4. Module Design:

This phase can also be called as low-level design. The designed system is
broken up in to smaller units or modules and each of them is explained so
that the programmer can start coding directly. The low level design
document or program specifications will contain a detailed functional logic
of the module, in pseudo code - database tables, with all elements,
including their type and size - all interface details with complete API
references- all dependency issues- error message listings- complete input
and outputs for a module. The unit test design is developed in this stage.

4. Spiral Model
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
Figure:

1. Determine objectives and 2. Evaluate alternatives ,identify risk

Identify alternatives resolve risk

4 Customer evolution 3. Develop the next level of prod.

History

The spiral model was defined by Barry Boehm in his 1988 article A Spiral Model
of Software Development and Enhancement. This model was not the first model
to discuss iterative development, but it was the first model to explain why the
iteration matters. As originally envisioned, the iterations were typically 6 months
to 2 years long. Each phase starts with a design goal and ends with the client
(who may be internal) reviewing the progress thus far. Analysis and engineering
efforts are applied at each phase of the project, with an eye toward the end goal
of the project.

The Spiral Model

The spiral model, also known as the spiral lifecycle model, is a systems
development method (SDM) used in information technology (IT). This model of
development combines the features of the prototyping model and the
waterfall model. The spiral model is intended for large, expensive, and
complicated projects.

The steps in the spiral model can be generalized as follows:


CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
1. The new system requirements are defined in as much detail as possible.
This usually involves interviewing a number of users representing all the
external or internal users and other aspects of the existing system.
2. A preliminary design is created for the new system.
3. A first prototype of the new system is constructed from
the preliminary design. This is usually a scaled-down system, and
represents an approximation of the characteristics of the final product.
4. A second prototype is evolved by a fourfold procedure: (1) evaluating the
first prototype in terms of its strengths, weaknesses, and risks; (2) defining
the requirements of the second prototype; (3) planning and designing
the second prototype; (4) constructing and testing the second prototype.
5. At the customer's option, the entire project can be aborted if the risk is
deemed too great. Risk factors might involve development cost overruns,
operating-cost miscalculation, or any other factor that could, in the
customer's judgment, result in a less-than-satisfactory final product.
6. The existing prototype is evaluated in the same manner as was the previous
prototype, and, if necessary, another prototype is developed from it
according to the fourfold procedure outlined above.
7. The preceding steps are iterated until the customer is satisfied that the
refined prototype represents the final product desired.
8. The final system is constructed, based on the refined prototype.
9. The final system is thoroughly evaluated and tested. Routine maintenance is
carried out on a continuing basis to prevent large-scale failures and to
minimize downtime.

Advantages and Disadvantages

Advantages
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
1. Estimates (i.e. budget, schedule, etc.) become more realistic as work
progresses, because important issues are discovered earlier.
2. It is more able to cope with the (nearly inevitable) changes that software
development generally entails.
3. Software engineers (who can get restless with protracted design processes)
can get their hands in and start working on a project earlier.

Disadvantages

1. Highly customized limiting re-usability.


2. Applied differently for each application.
3. Risk of not meeting budget or schedule.

5. Big Bang Model

The Big Bang model is SDLC model where we do not follow any specific process.
The development just starts with the required money and efforts as the input, and
the output is the software developed which may or may not be as per customer
requirement.

B ig Bang Model is SDLC model where there is no formal development followed


and very little planning is required. Even the customer is not sure about what
exactly he wants and the requirements are implemented on the fly without much
analysis.

Usually this model is followed for small projects where the development teams
are very small.
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera

Big Bang Model design and Application


Big bang model comprises of focusing all the possible resources in software
development and coding, with very little or no planning. The requirements are
understood and implemented as they come. Any changes required may or may
not need to revamp the complete software.

This model is ideal for small projects with one or two developers working
together and is also useful for academic or practice projects. It.s an ideal model
for the product where requirements are not well understood and the final release
date is not given.

Big Bang Model Pros and Cons


The advantage of Big Bang is that its very simple and requires very little or no
planning. Easy to mange and no formal procedure are required.

However the Big Bang model is a very high risk model and changes in the
requirements or misunderstood requirements may even lead to complete reversal
or scraping of the project. It is ideal for repetitive or small projects with minimum
risks.

Following table lists out the pros and cons of Big Bang Model:

Pros Cons

This is a very simple model Very High risk and uncertainty.


CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera

Little or no planning
Not a good model for complex and

required object-oriented projects.

Easy to manage Poor model for long and ongoing


projects.
Very few resources required
Can turn out to be very expensive if
Gives flexibility to developers
requirements are misunderstood.
Is a good learning aid for
new comers or students

6. Prototyping Model

Requirements gathering

Quick decision

Refine requirement build prototype

Customer evolution
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
Customer suggestions accepted by cust.

Design

Implement

Test

Maintain

This model suggests that before development of the actual software, a


working prototype of the system should be built first and temporary
implemented. The several reasons for developing a prototype is as
follow:
By illustrating the input data format, messages, reports to the
customer. These developers to get clear understanding of the
customers needs.
Prototyping used to critically examine the technical issues
associated with the product development. Often, major design
decisions depend on issues like the response time of a hardware
controller, or the efficiency of a sorting algorithm etc.
CH:5 SDLC MODELS Date: Aug.2013
By : Ms.Pintukumari Bera
The Model starts with the initial requirements gathering phase. A
quick design is carried out and the prototype model is built using
several shortcuts. The shortcuts might involve using inefficient,
inaccurate or dummy functions.
The developed prototype is submitted to the customer for
his evaluation. If any suggestion are given by the customer then
the requirement are refined as per customer desire.
This cycle continues until the user approves the prototype. The
actual system is then developed model, the requirement analysis
and specification phase is most important.
The cost of overall software might decrease with this model
because many user requirements are properly defined and
technical issues are resolved during the execution of prototype
model.
Thus minimizing changes requests and redesign costs after the
system is delivered to the customer.

Anda mungkin juga menyukai