Software Process Models

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

Software Process Models

Software process model is set of standard steps using by most organizations find it beneficial to develop
and support their information systems.
What is Software Process Model?
A software process model is a simplified representation of the process. It presents a description of a
process from a particular perspective such as:
(1) Specification.
(2) Design.
(3) Validation.
(4) Evolution.
Goal of Software Process Models
The goal of software process model is to provide guidance for systematically coordinating and controlling
the tasks that must be performed in order to achieve the end product and the project objectives.
Software Models Types
There are many software models. The most common process models are given below which we are going
to discuss.

 Waterfall Model
 Iterative Model
 Spiral Model
 Verification and Validation Model (V&V)
 Big bang Model

 Waterfall Model

Introduction
Waterfall is the traditional and classical model used for software development, Sometimes called
the classic life cycle or the waterfall model, the linear sequential model, it is the first software
development process model derived from engineering process (Royce, 1970). The Waterfall
Model is a linear sequential flow. In which progress is seen as flowing steadily downwards (like
a waterfall) through the phases of software implementation. This means that any phase in the
development process begins only if the previous phase is complete. Waterfall model is the
simplest model of software development paradigm. It says the all the phases of SDLC will
function one after another in linear manner.
Diagram
Requirement Gathering

System Design

Waterfall Model

Implementation

Integration and Testing

Deployment of System

Maintenance

Explanation
The waterfall approach does not define the process to go back to the previous phase to handle
changes in requirement. The waterfall approach is the earliest approach and most widely known
that was used for software development.
Sequential Phases in the Waterfall Model

1. Requirements: The first phase involves understanding what needs to design and what is its function,
purpose, etc. Here, the specifications of the input and output or the final product are studied and
marked.

2. System Design: The requirement specifications from the 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 software code to be written in the next stage is
created now.

3. Implementation: With inputs from system design, the system is first developed in small programs
called units, which are integrated into the next phase. Each unit is developed and tested for its
functionality which is referred to as Unit Testing.

4. Integration and Testing: All the units developed in the implementation phase are integrated into a
system after testing of each unit. The software designed, needs to go through constant software testing
to find out if there are any flaw or errors. Testing is done so that the client does not face any problem
during the installation of the software.

5. Deployment of System: Once the functional and non-functional testing is done, the product is
deployed in the customer environment or released into the market.

6. Maintenance: This step occurs after installation, and involves making modifications to the system or
an individual component to alter attributes or improve performance. These modifications arise either
due to change requests initiated by the customer, or defects uncovered during live use of the system.
The client is provided with regular maintenance and support for the developed software.

All these phases are cascaded to each other in which progress is seen as flowing steadily downwards (like
a waterfall) through the phases. The next phase is started only after the defined set of goals are achieved
for the previous phase and it is signed off, so the name “Waterfall Model“.

Advantages of Waterfall Model

 The advantage of waterfall development is that it allows for departmentalization and control. A
schedule can be set with deadlines for each stage of development and a product can proceed through
the development process model phases one by one.
 The waterfall model progresses through easily understandable and explainable phases and thus it is
easy to use.
 It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a
review process.
 In this model, phases are processed and completed one at a time and they do not overlap. Waterfall
model works well for smaller projects where requirements are very well understood.
Disadvantages of Waterfall Model

 It is difficult to estimate time and cost for each phase of the development process.
 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.
 Not a good model for complex and object-oriented projects.
 Not suitable for the projects where requirements are at a moderate to high risk of changing.

 Iterative Model
In this Model, you can start with some of the software specifications and develop the first version of the
software. After the first version if there is a need to change the software, then a new version of the
software is created with a new iteration. Every release of the Iterative Model finishes in an exact and
fixed period that is called iteration.

Diagram

Explanation

The various phases of Iterative model are as follows:


1. Requirement gathering & analysis: In this phase, requirements are gathered from customers and
check by an analyst whether requirements will fulfil or not. Analyst checks that need will achieve within
budget or not. After all of this, the software team skips to the next phase.

2. Design: In the design phase, team design the software by the different diagrams like Data Flow
diagram, activity diagram, class diagram, state transition diagram, etc.

3. Implementation: In the implementation, requirements are written in the coding language and
transformed into computer programs which are called Software.

4. Testing: After completing the coding phase, software testing starts using different test methods. There
are many test methods, but the most common are white box, black box, and grey box test methods.

5. Deployment: After completing all the phases, software is deployed to its work environment.

6. Review: In this phase, after the product deployment, review phase is performed to check the behavior
and validity of the developed product. And if there are any error found then the process starts again from
the requirement gathering.

7. Maintenance: In the maintenance phase, after deployment of the software in the working environment
there may be some bugs, some errors or new updates are required. Maintenance involves debugging and
new addition options.

Advantages of Iterative Model

 Testing and debugging during smaller iteration is easy.


 A Parallel development can plan.
 It is easily acceptable to ever-changing needs of the project.
 Risks are identified and resolved during iteration.
 Limited time spent on documentation and extra time on designing.

Disadvantages of Iterative Model

 It is not suitable for smaller projects.


 More Resources may be required.
 Design can be changed again and again because of imperfect requirements.
 Requirement changes can cause over budget.
 Project completion date not confirmed because of changing requirements.

 Spiral Model
Introduction
Spiral Model is a combination of a waterfall model and iterative model. Each phase in spiral
model begins with a design goal and ends with the client reviewing the progress.

Diagram

Explanation

Phases of Spiral Model

1. Planning It includes estimating the cost, schedule and resources for the iteration. It also involves
understanding the system requirements for continuous communication between the system analyst
and the customer.

2. Risk Analysis Identification of potential risk is done while risk mitigation strategy is planned and
finalized.

3. Engineering It includes testing, coding and deploying software at the customer site.

Evaluation
Evaluation of software by the customer. Also, includes identifying and monitoring risks such
as schedule slippage and cost overrun.
Advantages
 Additional functionality or changes can be done at a later stage.
 Cost estimation becomes easy as the prototype building is done in small fragments
 Continuous or repeated development helps in risk management
 There is always a space for customer feedback

Disadvantages
 Documentation is more as it has intermediate phases
 It is not advisable for smaller project, it might cost them a lot
 Risk of not meeting the schedule or budget

 Verification and Validation Model


Introduction
A contemporary of traditional software development model is ‘V-Model’. ‘V’ stands for verification
and validation and is an extension of the Waterfall model. The crux of V model establishes an
association between each phase of testing with that of development. The phases of testing are categorised
as "Validation Phase" and that of development as "Verification Phase". Therefore for each phase of
development there’s a corresponding test activity planned in advance.

Diagram
Explanation

V-Model Model Phases


The V-Model Model contains the main phases similarly to other process models.
Moreover, it breaks down the testing phase into detailed steps to ensure the validation and verification
process. So, it contains the below testing phases:

1. Unit Testing The Unit testing is the testing at the code level and helps eliminate issues at an early

stage, mainly the developer is responsible to perform the unit test for his code while not all the

defects cannot be discovered at the unit testing.

2. Functional Testing Functional testing is associated with the low-level design phase which

ensures that collections of codes and units are working together probably to execute new function

or service.

3. Integration Testing Integration testing is associated with the high-level design phase. Integration

testing ensures the integration between all system modules after adding any new functions or

updates.

4. System Testing System testing is associated with the system requirements and design phase. It

combines the software, hardware, and the integration of this system with the other external

systems.

5. User Acceptance Testing User Acceptance testing is associated with the business and operations

analysis phase. The customer users are the main performers of this testing based on test cases and

scenarios that cover the business requirements to ensure that they have delivered the right

software as per the specifications.

Advantages
 Simple and easy to use
 Each phase has specific deliverables.
 Higher chance of success over the waterfall model due to the development of test plans early
on during the life cycle.
 V-Model Improves the quality and reliability of the software.
Disadvantages
 Very inflexible, like the waterfall model.
 Adjusting scope is difficult and expensive.

 Big Bang Model

Introduction
Big Bang Model is SDLC model in which no formal development steps and procedure followed and very
little planning is required before beginning the project development. In big-bang SDLC model the
customer is also not clearly understood about his functional requirement about the system developed. The
customer requirements not fixed and vary with time and the customer believe the system implemented on
the fly without much analysis.

Diagram

Explanation
As said big bang model does not follow any phase so only design and usage of these modelis explained
below.

Requirement and Implementation

This model is perfect and suitable if the software development project is a small one where 2 to 3
developers are working together to build a system or just as a dummy project. The model is also suitable if
all the requirements are not appropriately understood as well as the deadline for release of the system is not
declared.

The Big bang model comprises of focusing all the possible available resources and tools in software
development and coding, with very little or without pre planning. In this model the requirements are
understood and implemented as they come. Any changes required and/or addition of functionality under
developed system may or may not need to revamp the complete software. This model of software
development is ideal model for small projects development with one or two developers working together.
This is also useful model for academic or practice projects developments. It’s an ideal model for the product
where requirements are not well understood and the final release date is not given.

Advantages

 This is quite a simple model.


 Implementing this model makes managing tasks easier.
 It required zero planning.
 Developers have huge flexibility in developing the entire product.
 Resources necessary for developing the product is only a few.

Disadvantages

 This model is not appropriate for big or complex projects.


 Very meager model for building long and constant projects.
 Holds very high risk with uncertainty.

You might also like