Sunteți pe pagina 1din 7

http://www.computerworld.

com/developmenttopics/development/story/0,10801,71151,0
0.html

The software development life cycle (SDLC) is the entire process of formal, logi
cal steps taken to develop a software product. The phases of SDLC can vary somew
hat but generally include the following:
conceptualization;
requirements and cost/benefits analysis;
detailed specification of the software requirements;
software design;
programming;
testing;
user and technical training;
and finally, maintenance.
There are several methodologies or models that can be used to guide the software
development lifecycle. Some of these include:
the linear or waterfall model (which was the original SDLC method);
rapid application development (RAD);
joint application development (JAD);
the prototyping model;
the fountain model;
the spiral model;
build and fix;
and synchronize-and-stabilize.
Usually a few models are combined into a hybrid methodology to make the best fit
for the project.

Systems Development Life Cycle, or Software Development Life Cycle (SDLC), relat
es to models or methodologies that people use to develop systems, generally comp
uter systems. Computer systems have become more complex and usually (especially
with the advent of Service-Oriented Architecture) link multiple traditional syst
ems often supplied by different software vendors.
To manage this, a number of system development life cycle (SDLC) models have bee
n created: waterfall, fountain, spiral, build and fix, rapid prototyping, increm
ental, and synchronize and stabilize.

Initiation/Planning
To generate a high-level view of the intended project and determine the goals of
the project. The feasibility study is sometimes used to present the project to
upper management in an attempt to gain funding. Projects are typically evaluated
in three areas of feasibility: economical, operational, and technical. Furtherm
ore, it is also used as a reference to keep the project on track and to evaluate
the progress of the MIS team (Post & Anderson, 2006)
This phase is also called the analysis phase.

[edit] Requirements Analysis


The goal of systems analysis is to determine where the problem is in attempt to
fix the system. This step involves breaking down the system in different pieces
and drawing diagrams to analyze the situation. Analysts project goals, breaking
down functions that need to be created, and attempt to engage users so that defi
nite requirements can be defined.

[edit] Design
Functions and operations are described in detail, including screen layouts, busi
ness rules, process diagrams and other documentation. The output of this stage w
ill describe the new system as a collection of modules or subsystems.

[edit] Build
Modular and subsystem programming code will be accomplished during this stage. T
his stage is intermingled with the next in that individual modules will need tes
ting before integration to the main project. Planning in software life cycle inv
olves setting goals, defining targets, establishing schedules, and estimating bu
dgets for an entire software project.

[edit] Testing
The code is tested at various levels. Unit, system and user acceptance testing a
re often performed. This is a grey area as many different opinions exist as to w
hat the stages of testing are and how much if any iteration occurs. Iteration is
not generally part of the waterfall model, but usually some occurs at this stag
e.
Types of testing:
Data set testing
Unit testing
System Testing
Integration testing
User acceptance
Black Box Testing
White Box Testing

[edit] Operations and Maintenance


The life of the system includes changes and enhancements before the decommission
ing or sunset of the system. Maintaining the system is an important aspect of SD
LC. As key personnel change positions in the organization, new changes will be i
mplemented, which will require system updates.

[edit] Baselines in the SDLC


Baselines are an important part of the SDLC. These baselines are established aft
er four of the five phases of the SDLC and are critical to the iterative nature
of the model (Blanchard & Fabrycky, 2006, p.31). Each baseline is considered as
a milestone in the SDLC.
Functional Baseline: established after the conceptual design phase.
Allocated Baseline: established after the preliminary design phase.
Product Baseline: established after the detail design and development phase.
Updated Product Baseline: established after the production construction phase.
Descibe different phases of sdlc?
Software engineering follows some structured models for software development. Th
is section provides a generic overview of the different software development met
hodologies that are currently in use.
A Software Model describes the phases of the Software Life Cycle and the order i
n which those phases are executed. The following sections discuss the following
important process models:
· Waterfall Model
· Iterative Model
· Incremental Model
· Spiral Model
Waterfall Model
This is the most common, easy to implement and classic of all the life cycle mod
els. It also is referred to as a Classic Life Cycle Model or linear-sequential l
ife cycle model. This model places a lot of emphasis on documentation, i.e. Requ
irements Specification and Design Document. In a waterfall model each phase must
be completed sequentially in its entirety before the immediate next phase can b
egin. A review is done after each phase to analyze whether the project is runnin
g as per the required standards, specifications and timelines. The output of eac
h phase is the input to the immediate next phase in this model. This model is we
ll suited if the project requirements are static or have been clearly stated fro
m the beginning. The Waterfall Model is great for specifying the individual task
s, roles, and deliverables in the project life cycle. It is a misleading model w
hen used for project planning because it de-emphasizes iteration and incremental
delivery.
Advantages of the Waterfall Model
The following are the advantages of the Waterfall Model.
· It is very simple and easy to implement meaning it is well suited for small pr
ojects.
· Testing is inherent to each of the phases of this model.
· The model is rigid and each of the phases has certain deliverables and a revie
w process immediately after a particular phase is over.
Disadvantages
The following are the disadvantages of the Waterfall Model.
· It is high risk.
· It cannot be guaranteed that one phase of this model is perfect before we move
on to the immediate next phase in the model.
· It is not suited for long or complex projects or projects where the requiremen
ts can change.
· The deliverable software is produced late during the life cycle.
Iterative Model
The Iterative Model addresses many problems associated with the Waterfall Model.
In the Iterative Model analysis is done the same way as it is done in the Water
fall method. Once this analysis is over, each requirement is categorized based o
n their priority. These priorities are:
· High
· Low
· Medium
Advantages
The advantages of the Iterative Model are:
· Faster Coding, testing and Design Phases
· Facilitates the support for changes within the life cycle
Disadvantages
The disadvantages of the Iterative Model are:
· More time spent in review and analysis
· A lot of steps that need to be followed in this model
· Delay in one phase can have detrimental effect on the software as a whole
Incremental Model
The incremental model divides the software to be developed into modules which ar
e then developed and tested in parallel. These modules or cycles are divided up
into smaller, easily managed iterations. Each iteration passes through the requi
rements, design, implementation and testing phases. The Incremental model allows
full SDLC of prototypes to be made and then tested before moving to next level.
In this model the functionality is produced and delivered to the customer incre
mentally. Starting from the existing situation, we proceed towards the desired s
olution in a number of steps. At each of these steps the Waterfall Model is foll
owed.
Advantages
The following are the advantages of the Incremental Model.
· Deliverables are produced early in the software development lifecycle in each
iteration.
· It is flexible and easy to manage
· Risk Management and Testing is easy
Disadvantages
The following are the disadvantages of the Iterative Model.
· Each phase of iteration is rigid and does not overlap each other.
· All the requirements are not gathered up front for the entire software life cy
cle which can create problems at the later stages in the design and development
cycle.
Spiral Model
The Spiral Model or the Spiral Development Model combines the best of both top d
own and bottom up approaches and is specifically risk-driven. It combines the fe
atures of both the prototyping and the waterfall models. In essence the Spiral M
odel is a combination of the classic Waterfall Model and Risk Analysis. It is it
erative, but each iteration is designed to reduce the risk at that particular st
age of the project. The Spiral Model provides a rapid development and at the sam
e time, incremental versions of the software application. The Spiral model is be
tter than the Waterfall Model in the sense that it emphasizes more on risk manag
ement while the Waterfall Model emphasizes more on the project management aspect
s.
The spiral model has four phases. These phases are as follows:
· Planning
· Risk Analysis
· Engineering
· Evaluation
Advantages
The following are the advantages of the Spiral Model.
· It has strong support for Risk Analysis.
· It is well suited for complex and large projects.
· The deliverable is produced early in the software development life cycle.
· It uses prototyping as a risk reduction technique and can reduce risks in the
SDLC process considerably.
Disadvantages
The following are the disadvantages of the Spiral Model.
· It is high in cost and Risk Analysis is also very difficult.
· It is not suited for small projects.
· Needs considerable Risk Assessment.
Which sdlc model i choose?
We discussed many models and their advantages and disadvantages. The question th
at now arises is, "Which model should I choose?" Note that we should choose the
right type of the Model to implement based on the scope of the software project.
This depends on a number of factors, some of which are given below.
· The Scope of the Project
· The Project Budget
· The organizational environment
· Available Resources

Steps involved in software development life cycle :


Broadly, the SDLC steps discussed earlier can be categorized into:
· Requirement Specification
· Requirement Analysis and Design
· Coding and Testing
· Deployment and Support
The following sections discuss these in more detail.
Requirement Specification
Software Requirements Specification (SRS) provides a complete description of all
the functions and specifications of the software to be designed. It extracts th
e functional and the nonfunctional requirements of the desired software product.
It is the initial stage in the SDLC, the first and the foremost step that has t
o be performed and includes the information about the requirements for the propo
sed system. The requirements are pertained to such as resources, scope of the sy
stem, purpose of the system and the limitations. This phase is also known as the
feasibility study phase. The Software Requirements Specification Document that
is created in this stage, states all the necessary guidelines (the functional re
quirements, the nonfunctional requirements, etc.) for the immediate next phase,
the design phase and the software development life cycle. It serves as a type of
Bible for the Software Design Process.
Requirement Analysis and Design
After the requirements specification is over, it is analyzed for its accuracy an
d sufficiency. Issues such as whether that particular proposed system will serve
the purpose or not, what are the necessary constraints that have to be taken in
to consideration and the monitoring the management of the activities in a fashio
n are all carried out in a hierarchical manner which is specified in the BRS (Bu
siness Requirement Specification) document.
The design stage takes as its initial input the requirements identified in the a
pproved requirements document. The Analysis and Design phases are very crucial i
n the software development cycle process. This phase also includes the work assi
gnments, costs, project schedule, and the specification of the target dates.
Coding and Testing
The next step consists of developing the application logic and writing the funct
ionalities for the user interfaces on a specific action performed (known as Codi
ng). The coding or the development phase takes as its primary input the design e
lements described in the approved design document. It is to be noted that the Pr
ogrammers/Developers should adhere to the required coding standards. The code sh
ould also be optimized for the purpose of saving the valuable resources. Next in
the SDLC cycle comes the testing phase.
After the source code is generated, the testing phase begins to reveal the bugs
that were committed during the previous phases. This testing can be manual or au
tomated using the testing tools and methodologies that are available.
Deployment and Support
The software that has been developed and deployed should provide adequate suppor
t for maintenance so as to cope with the bugs that can exists even after deploym
ent of the software is over. This can take far more time than the initial develo
pment process of the software.
The maintenance phase of the software development life cycle should be able to a
ccommodate the changes that can happen during the post implementation period. A
change can happen because of some unexpected input values into the system.

Defination
Software Development Life Cycle (SDLC) is a methodology that is typically used t
o develop, maintain and replace information systems for improving the quality of
the software design and development process. The typical phases are analysis, e
stimation, design, development, integration and testing and implementation. The
success of software largely depends on proper analysis, estimation, design and t
esting before the same is implemented. This article discusses SDLC in detail and
provides guidance for building successful software.

S-ar putea să vă placă și