Sie sind auf Seite 1von 26

A framework that defines the tasks

performed at each stage of a software


development project.

Consists

of a detailed plan describing how


to develop, maintain, replace and alter or
enhance specific software.

To

foster realistic expectations of what the


systems will and will not provide.

Ensure
Provide
To

the delivery of high quality systems.


strong management control.

reduce the risks of project failure.

Maximize

productivity.

Purpose of the software or system is


determined.

Involves breaking down the system for


analysis of the situation and project goals.

It is performed by the senior members of


the team with inputs from the customer, the
sales department, market surveys and
domain experts in the industry.

Planning for the quality assurance


requirements .

Identification of the risks associated with


the project.

Basic project approach is planned.

Product feasibility study in the economical,


operational, and technical areas are done.

The customer requirements identified


during the requirements gathering and
analysis activity are organized into a SRS
document.

Important components of this document are


functional requirements, the nonfunctional
requirements, and the goals of
implementation

Based on the requirements specified in SRS


design approach for the product architecture is
proposed and documented in a DDS .

Design approach defines all the architectural


modules of the product communication and
data flow representation.

The internal design of all the modules of the


proposed architecture should be clearly defined
with the minutest of the details in DDS.

Modular and subsystem programming code


will be accomplished during this stage.
Developers have to follow the coding
guidelines defined by their organization.
The programming language is chosen with
respect to the type of software being
developed.
If the design is performed in a detailed and
organized manner, code generation can be
accomplished without much hassle.

Products

defects are reported, tracked, fixed


and retested, until the product reaches the
quality standards defined in the SRS.
Most common testing are unit, system and
user acceptance.
Types of testing are:
# White box testing
# Black box testing
# Regression testing

# Performance testing
# Data set testing
# Integration testing

Once the system is


tested it is ready to go
live.
Sometime product
deployment happens in
stages as per the
organizations business
strategy.
The product may first
be released in a limited
segment and tested in
the real business
environment (UAT- User
acceptance testing).

Waterfall

Iterative

Agile

RAD

Earliest SDLC approach used for software


development.

Any phase in the development process


begins only if the previous phase is
complete.

Also referred to as a linear-sequential life


cycle model.

Easy to understand and use


Provides structure to inexperienced staf
Milestones are well understood
Sets requirements stability
Good for management control (plan, staf,
track)
Works well when quality is more important
than cost or schedule

All requirements must be known upfront

Deliverables created for each phase are


considered frozen

Cannot adopt the changes in requirements

For bigger and complex projects, this


model is not good as risk factor is higher.

Can give a false impression of progress

Requirements are stable and well


understood

The tools and technology used is stable


and is not dynamic

There are no ambiguous requirements

Ample resources with required expertise


are available to support the product

Agile software development is a conceptual


framework for software engineering that
promotes development iterations
throughout the life-cycle of the project.
AGILE promotescontinuous iterationof
development and testing throughout the
software development life cycle of the
project.
Both development and testing activities are
concurrent

Adaptive Software Development (ASD)


Feature Driven Development (FDD)
Crystal Clear
Dynamic Software Development Method
(DSDM)
Rapid Application Development (RAD)
Scrum
Extreme Programming (XP)
Rational Unify Process (RUP)

Customer satisfaction by rapid, continuous


delivery of useful software.
People and interactions are emphasized rather
than process and tools. Customers, developers
and testers constantly interact with each other.
Working software is delivered frequently (weeks
rather than months).
Close, daily cooperation between business
people and developers.
Continuous attention to technical excellence and
good design.
Regular adaptation to changing circumstances.
Even late changes in requirements are welcomed

In case of some software deliverables, especially


the large ones, it is difficult to assess the efort
required at the beginning of thesoftware
development life cycle.
Lack of emphasis on necessary designing and
documentation.
Project can easily get taken of track if the customer
representative is not clear what final outcome that
they want.
Only senior programmers are capable of taking the
kind of decisions required during the development
process.
No place for newbie programmers, unless combined
with experienced resources.

The main advantage of backward scalability


in Agile is not possible with waterfall.

Under waterfall approach we cannot change


the decisions and implementations that we
had made under the previous stages.

If we want to make changes under waterfall


we will have to build the entire project from
the scratch once again.

Flexibility to error check under any part of the


development stage makes Agile more bug free
and lesserroneousas compared to Waterfall
which can only test bugs at the end of the
development module.
Since Agile providesflexibilityto make changes
as per customer requirements it is more
inclined towards better client satisfaction.
Real set back for the Waterfall model
whichdoesntallow any modifications once the
module has been completed.

Under Agile development modular


partitioning of the software can be efectively
carried out as compared to waterfall.
Agile can be of great help under situations
where simultaneous development of diferent
modules at the same time as per time bound
is required.
If we want the project to be more segregated
Agile comes as a pain relief for developers

Das könnte Ihnen auch gefallen