0% found this document useful (0 votes)
42 views

Software Development Models

The document discusses various software development process models, focusing on the waterfall model. It describes the phases of the waterfall model as feasibility study, requirements analysis, design, coding/unit testing, integration/system testing, and maintenance. The waterfall model is linear and sequential, requiring each phase to be completed before the next begins. While simple and easy to understand, it has limitations such as an inability to accommodate changing requirements.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Software Development Models

The document discusses various software development process models, focusing on the waterfall model. It describes the phases of the waterfall model as feasibility study, requirements analysis, design, coding/unit testing, integration/system testing, and maintenance. The waterfall model is linear and sequential, requiring each phase to be completed before the next begins. While simple and easy to understand, it has limitations such as an inability to accommodate changing requirements.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

SOFTWARE DEVELOPMENT

PROCESS MODELS
The software development process, the goal is to produce a high-quality software
product. It therefore focuses on activities directly related to production of the software,
for example,
 design,
 coding, and
 testing

The development process specifies the major development and quality control activities
that need to be performed in the project, it forms the core of the software process
A project’s development process defines the tasks the project should perform, and the
order in which they should be done.
A process limits the degrees of freedom for a project by specifying what types of
activities must be undertaken and in what order, such that the “shortest” (or the most
efficient) path is obtained from the user needs to the software satisfying these needs.
The process drives a project and heavily influences the outcome

Due to the importance of the development process, various models have been proposed.
 Waterfall Model
 Prototyping Model
 Iterative Development Model
 Relational Unified Process Model
 Time Boxing Model
 Extreme Programming & Agile Process Model
WATERFALL MODEL
Winston Royce introduced the Waterfall Model in 1970. It is also referred to as
a linear-sequential life cycle model.

In a waterfall model, each phase must be completed before the next phase can begin
and there is no overlapping in the phases.

The basic idea behind the phases is separation of concerns—each phase deals with a
distinct and separate set of concerns. By doing this, the large and complex task of
building the software is broken into smaller tasks (which, by themselves, are still quite
complex) of specifying requirements, doing design, etc. Separating the concerns and
focusing on a select few in a phase gives a better handle to the engineers and
managers in dealing with the complexity of the problem
Linear ordering of activities has some important consequences

First, to clearly identify the end of a phase and the beginning of the next, some
certification mechanism has to be employed at the end of each phase. This is usually
done by some verification and validation means that will ensure that the output of a
phase is consistent with its input (which is the output of the previous phase), and that
the output of the phase is consistent with the overall requirements of the system.
FEASIBILITY STUDY

 The main goal of this phase is to determine whether it would be financially and
technically feasible to develop the software.

 The feasibility study involves understanding the problem and then determine
the various possible strategies to solve the problem.

 These different identified solutions are analyzed based on their benefits and
drawbacks.

 The best solution is chosen and all the other phases are carried out as per this
solution strategy
REQUIREMENTS ANALYSIS AND
SPECIFICATION
The aim of the requirement analysis and specification phase is to understand the
exact requirements of the customer and document them properly.

This phase consists of two different activities

 Requirement gathering and Analysis


 Requirement Specification
Requirement gathering and analysis:
Firstly all the requirements regarding the software are gathered from the customer
and then the gathered requirements are analyzed. The goal of the analysis part is to
remove incompleteness (an incomplete requirement is one in which some parts of the
actual requirements have been omitted) and inconsistencies (inconsistent requirement
is one in which some part of the requirement contradicts with some other part)

Requirement specification: These analyzed requirements are documented in a software


requirement specification (SRS) document. SRS document serves as a contract between
development team and customers. Any future dispute between the customers and the
developers can be settled by examining the SRS document
DESIGN
The aim of the design phase is to transform the requirements specified in the SRS
document into a structure that is suitable for implementation in some programming
language.

CODING AND UNIT TESTING

In coding phase software design is translated into source code using any suitable
programming language. Thus each designed module is coded. The aim of the unit
testing phase is to check whether each module is working properly or not.
INTEGRATION AND SYSTEM TESTING
 Integration of different modules are undertaken soon after they have been
coded and unit tested.

 Integration of various modules is carried out incrementally over a number of


steps. During each integration step, previously planned modules are added to the
partially integrated system and the resultant system is tested.

 Finally, after all the modules have been successfully integrated and tested, the
full working system is obtained and system testing is carried out on this
SYSTEM TESTING
System testing consists three different kinds of testing activities as described
below

 Alpha testing: Alpha testing is the system testing performed by the development
team.
 Beta testing: Beta testing is the system testing performed by a friendly set of
customers.
 Acceptance testing: After the software has been delivered, the customer
performed the acceptance testing to determine whether to accept the delivered
software or to reject it.
MAINTAINENCE
Maintenance is the most important phase of a software life cycle. The effort spent
on maintenance is the 60% of the total effort spent to develop a full software.
There are basically three types of maintenance

 Corrective Maintenance: This type of maintenance is carried out to correct


errors that were not discovered during the product development phase.
 Perfective Maintenance: This type of maintenance is carried out to enhance the
functionalities of the system based on the customer’s request.
 Adaptive Maintenance: Adaptive maintenance is usually required for porting
the software to work in a new environment such as work on a new computer
platform or with a new operating system.
ADVANTAGES OF WATER FALL
MODEL
 This model is very simple and is easy to understand.
 Phases in this model are processed one at a time.
 Each stage in the model is clearly defined.
 This model has very clear and well understood milestones.
 Process, actions and results are very well documented.
 Reinforces good habits: define-before- design, design-before-code.
 This model works well for smaller projects and projects where requirements
are well understood
LIMITATIONS OF WATERFALL MODEL
 It assumes that the requirements of a system can be frozen (i.e., baselined) before
the design begins. This is possible for systems designed to automate an existing
manual system. But for new systems, determining the requirements is difficult as
the user does not even know the requirements. Hence, having unchanging
requirements is unrealistic for such projects

 Freezing the requirements usually requires choosing the hardware (because it


forms a part of the requirements specification). A large project might take a few
years to complete. If the hardware is selected early, then due to the speed at which
hardware technology is changing, it is likely that the final software will use a
hardware technology on the verge of becoming obsolete. This is clearly not
desirable for such expensive software systems
 It follows the “big bang” approach—the entire software is delivered in one shot at the
end. This entails heavy risks, as the user does not know until the very end what they
are getting. Furthermore, if the project runs out of money in the middle, then there
will be no software. That is, it has the “all or nothing” value proposition

 It encourages “requirements bloating”. Since all requirements must be specified at the


start and only what is specified will be delivered, it encourages the users and other
stakeholders to add even those features which they think might be needed (which
finally may not get used).

 It is a document-driven process that requires formal documents at the end of each


phase.
USE WATERFALL MODEL?

•When the requirements are constant and not changed regularly.


•A project is short
•The situation is calm
•Where the tools and technology used is consistent and is not changing
•When resources are well prepared and are available to use.

You might also like