Unit -1
Process Models
P. Sindhu Ruth
Asst.professor©
CSE
Introduction
• In software development life cycle, various
models are designed and defined. These
models are called as Software Development
Process Models.
• On the basis of project motive, the software
development process model is selected for
development.
Process models
• Following are the different software development
process models:
1) Big-Bang model
2) Code-and-fix model
3) Waterfall model
4) V model
5) Incremental model
6) RAD model
7) Agile model
8) Iterative model
9) Spiral model
10) Prototype model
Big-Bang Model
• Big-Bang is the SDLC(Software Development Life cycle) model
in which no particular process is followed.
• Generally this model is used for small projects in which the
development teams are small.
• It is specially useful in academic projects.
• This model is needs a little planning and does not follow
formal development.
• The development of this model begins with the required
money and efforts as an input .
• The output of this model is developed software, that may or
may not be according to the requirements of the customer.
Contd…
Advantages and Disadvantages
Advantages of Big-Bang model:
• Big-Bang model is a simple model.
• It needs little planning.
• It is simple to manage. It needs just a few resources to be
developed.
• It is useful for students and new comers.
Disadvantages of Big-Bang model:
• It is a very high risk model.
• This model is not suitable for object oriented and complex
projects.
• Big-Bang is poor model for lengthy and in-progress projects.
Code-and-fix Model
• Code and fix model is one step ahead from the Big-
Bang model.
• It identifies the product that must be tested before
release.
• The testing team find the bugs then sends the
software back for fixing.
• To deliver the fixes developers complete some
coding and send the software again for testing.
• This process is repeated till the bugs are found in it,
at an acceptable level.
Contd…
Advantages and Disadvantages
Advantages of Code-and-fix model:
• This model is suitable for small projects.
• It needs less project planning.
Disadvantages of Code-and-fix model:
• It is difficult to accommodate changes.
• It is not clear what will be delivered and when.
• It is difficult to assess quality.
Waterfall Model
• The waterfall model is the classic model or oldest model and is known as
mother of all the model.
• It is widely used in government projects and many vital projects in company.
• The waterfall model is also called as 'Linear sequential model' or 'Classic life
cycle model'.
• In this model, each phase is executed completely before the beginning of
the next phase.
• Hence the phases do not overlap in waterfall model.This model is used for
small projects.
• In this model, feedback is taken after each phase to ensure that the project
is on the right path.
• Testing part starts only after the development is completed.
Contd…
Contd…
Following are the phases in waterfall model:
i) Communication:
The software development starts with the communication between
customer and developer.
ii) Planning:
It consists of complete estimation, scheduling for project development.
iii) Modeling:
Modeling consists of complete requirement analysis and the design of
the project i.e algorithm, flowchart etc.
• The algorithm is the step-by-step solution of the problem and the
flow chart shows a complete flow diagram of a program.
Contd…
iv) Construction:
• Construction consists of code generation and the testing part.
• Coding part implements the design details using an appropriate
programming language.
• Testing is to check whether the flow of coding is correct or not.
• Testing also checks that the program provides desired output.
v) Deployment:
• Deployment step consists of delivering the product to the customer
and taking feedback from them.
• If the customer wants some corrections or demands for the
additional capabilities, then the change is required for improvement
in the quality of the software.
Advantages and Disadvantages
Advantages of Waterfall model:
• The waterfall model is simple and easy to understand, to implement, and use.
• All the requirements are known at the beginning of the project, hence it is easy to
manage.
• It avoids overlapping of phases because each phase is completed at once.
• This model works for small projects where the requirements are easily understood.
• This model is preferred for those projects where the quality is more important as
compared to the cost of the project.
Disadvantages of the Waterfall model:
• This model is not good for complex and object oriented projects.
• In this model, the changes are not permitted so it is not fit for moderate to high risk
changes in project.
• It is a poor model for long duration projects.
• The problems with this model are uncovered, until the software testing.
• The amount of risk is high.
V Model
• V model is known as Verification and
Validation model.
• This model is an extension of the waterfall
model.
• In the life cycle of V-shaped model, processes
are executed sequentially.
• Every phase completes its execution before the
execution of next phase begins.
Contd…
Contd…
Following are the phases of V-model:
i) Requirements:
• The requirements of product are understood from the customers point of view to know
their exact requirement and expectation.
• The acceptance test design planning is completed at requirement stage because,
business requirements are used as an input for acceptance testing.
ii) System Design:
• In system design, high level design of the software is constructed.
• In this phase, we study how the requirements are implemented their technical use.
iii) Architecture design:
• In architecture design, software architecture is created on the basis of high level design.
• The module relationship and dependencies of module, architectural diagrams, database
tables, technology details are completed in this phase.
Contd…
iv) Module design:
• In module phase, we separately design every module or the software
components.
• Finalize all the methods, classes, interfaces, data types etc.
• Unit tests are designed in module design phase based on the internal
module designs.
• Unit tests are the vital part of any development process. They help to
remove the maximum faults and errors at an early stage.
v) Coding Phase:
• The actual code design of module designed in the design phase is grabbed
in the coding phase.
• On the basis of system and architecture requirements, we decide the best
suitable programming language.
• The coding is executed on the basis of coding guidelines and standards.
Advantages and Disadvantages
Advantages of V-model:
• V-model is easy and simple to use.
• Many testing activities i.e planning, test design are executed in the
starting, it saves more time.
• Calculation of errors is done at the starting of the project hence, less
chances of error occurred at final phase of testing.
• This model is suitable for small projects where the requirements are
easily understood.
Disadvantages of V-model:
• V-model is not suitable for large and composite projects.
• If the requirements are not constant then this model is not
acceptable.
Difference between the Verification and
Validation
Verification Validation
Verification is the process to find The validation process checks
whether the software meets the whether the software meets
specified requirements for particular requirements and expectations of the
phase. customer.
It evaluates an intermediate product. It evaluates the final product.
The objective of verification is to The objective of validation is to check
check whether software is whether the specifications are
constructed according to correct and satisfy the business need.
requirement and design specification.
It describes whether the outputs are It explains whether outputs are
as per the inputs or not. accepted by the user or not.
Verification is completed before the It is completed after the verification.
validation.
Plans, requirement, specification, Actual product or software is tested
code are evaluated in the under validation.
verifications.
Incremental Model
• The incremental model combines the elements of waterfall
model and they are applied in an iterative fashion.
• The first increment in this model is generally a core product.
• Each increment builds the product and submits it to the
customer for suggesting any modifications.
• The next increment implements the customer's suggestions
and add additional requirements in the previous increment.
• This process is repeated until the product is completed.
For example, the word-processing software is developed using
the incremental model.
Contd…
Contd…
Following are the phases of Incremental model:
i) Communication:
The software development starts with the communication between
customer and developer.
ii) Planning:
It consists of complete estimation, scheduling for project development.
iii) Modeling:
Modeling consists of complete requirement analysis and the design of
the project like algorithm, flowchart etc.
• The algorithm is a step-by-step solution of the problem and the flow
chart shows a complete flow diagram of a program.
Contd…
iv) Construction:
Construction consists of code generation and the testing part.
• Coding part implements the design details using an appropriate
programming language.
• Testing is to check whether the flow of coding is correct or not.
• Testing also checks that the program provides desired output.
v) Deployment:
• Deployment step consists of delivering the product to the customer
and taking feedback from them.
• If the customer wants some corrections or demands for the
additional capabilities, then the change is required for improvement
in the quality of the software.
Advantages and Disadvantages
Advantages of Incremental model:
• This model is flexible because the cost of development is low and
initial product delivery is faster.
• It is easier to test and debug in the smaller iteration.
• The working software is generated quickly in the software life cycle.
• The customers can respond to its functionalities after every increment.
Disadvantages of the incremental model:
• The cost of the final product may cross the cost initially estimated.
• This model requires a very clear and complete planning.
• The planning of design is required before the whole system is broken
into smaller increments.
• The demands of customer for the additional functionalities after every
increment causes problem in the system architecture.
RAD Model
• RAD is a Rapid Application Development model.
• Using the RAD model, software product is
developed in a short period of time.
• The initial activity starts with the communication
between customer and developer.
• Planning depends upon the initial requirements and
then the requirements are divided into groups.
• Planning is more important to work together on
different modules.
Contd…
• The RAD model consist of following phases:
1) Business Modeling
2) Data modeling
3) Process modeling
4) Application generation
5) Testing and turnover
Contd…
Contd…
1) Business Modeling:
• Business modeling consists of the flow of information between various functions in the
project.
For example, what type of information is produced by every function and which are the
functions to handle that information.
• It is necessary to perform complete business analysis to get the essential business
information.
2) Data modeling:
• The information in the business modeling phase is refined into the set of objects and it is
essential for the business.
• The attributes of each object are identified and defined the relationship between
objects.
3) Process modeling:
• The data objects defined in the data modeling phase are changed to fulfil the
information flow to implement the business model.
• The process description is created for adding, modifying, deleting or retrieving a data
object.
Contd…
4) Application generation:
• In the application generation phase, the actual system
is built.
• To construct the software the automated tools are
used.
5) Testing and turnover:
• The prototypes are independently tested after each
iteration so that the overall testing time is reduced.
• The data flow and the interfaces between all the
components are fully tested. Hence, most of the
programming components are already tested.
Advantages and Disadvantages
Advantages of RAD Model:
• The process of application development and delivery are fast.
• This model is flexible, if any changes are required.
• Reviews are taken from the clients at the staring of the
development hence there are lesser chances to miss the
requirements.
Disadvantages of RAD Model:
• The feedback from the user is required at every development
phase.
• This model is not a good choice for long term and large
projects.
Agile Model
• Agile model is a combination of incremental and iterative process
models.
• This model focuses on the users satisfaction which can be achieved
with quick delivery of the working software product.
• Agile model breaks the product into individual iterations.
• Every iteration includes cross functional teams working on different
areas such as planning, requirements, analysis, design, coding, unit
testing and acceptance testing.
• At the end of an iteration working product shows to the users.
• With every increment, features are incremented and the final
increment hold all the features needed by the customers.
• The iterations in agile process are shorter in duration which can vary
from 2 weeks to 2 months.
Contd…
Advantages and Disadvantages
Advantages of Agile model:
• Customers are satisfied because of quick and continuous delivery of
useful software.
• Regular delivery of working software.
• Face to face interaction between the customers, developers and
testers and it is best form of communication.
• Even the late changes in the requirement can be incorporated in the
software.
Disadvantages of Agile model:
• It is totally depends on customer interaction. If the customer is not
clear with their requirements, the development team can go in the
wrong direction.
• Documentation is less, so the transfer of technology to the new team
members is challenging.
Iterative model
• In Iterative model, the large application of software
development is divided into smaller chunks and
smaller parts of software which can be reviewed to
recognize further requirements are implemented.
• This process is repeated to generate a new version
of the software in each cycle of a model.
• With every iteration, development module goes
through the phases i.e requirement, design,
implementation and testing. These phases are
repeated in iterative model in a sequence.
Contd…
1) Requirement Phase
In this phase, the requirements for the software are assembled and
analyzed. Generates a complete and final specification of requirements.
2) Design Phase
In this phase, a software solution meets the designed requirements
which can be a new design or an extension of an earlier design.
3) Implementation and test phase
In this phase, coding for the software and test the code.
4) Evaluation
In this phase, software is evaluated, the current requirements are
reviewed and the changes and additions in the requirements are
suggested.
Advantages and Disadvantages
Advantages of an Iterative Model:
• Produces working software rapidly and early in the
software life cycle.
• This model is easy to test and debug in a smaller
iteration.
• It is less costly to change scope and requirements.
Disadvantages of an Iterative Model:
• The system architecture is costly.
• This model is not suitable for smaller projects.
Spiral Model
• It is a combination of prototype and sequential or waterfall
model.
• This model was developed by Boehm.
• It is used for generating the software projects. This model is a
risk driven process model.
• Every phase in the Spiral model is start with a design goal and
ends with the client review.
• The development team in this model begins with a small set of
requirements and for the set of requirements team goes
through each development phase.
• The development team adds the functionality in every spiral
till the application is ready.
Steps involved in spiral model
Contd…
• Phases of Spiral model are:
1) Planning
2) Risk Analysis
3) Engineering
4) Evaluation
Contd…
Contd…
1) Planning:
• This phase, studies and collects the requirements for continuous
communication between the customer and system analyst.
• It involves estimating the cost and resources for the iteration.
2) Risk Analysis
This phase, identifies the risk and provides the alternate solutions if the risk is
found.
3) Engineering
In this phase, actual development i.e coding of the software is completed.
Testing is completed at the end of the phase.
4) Evaluation
Get the software evaluated by the customers. They provide the feedback
before the project continues to the next spiral.
Advantages and Disadvantages
Advantages of Spiral Model:
• It reduces high amount of risk.
• It is good for large and critical projects.
• It gives strong approval and documentation control.
• In spiral model, the software is produced early in the life
cycle process.
Disadvantages of Spiral Model:
• It can be costly to develop a software model.
• It is not used for small projects.
Prototype Model
• Prototype is defined as first or preliminary form using which other
forms are copied or derived.
• Prototype model is a set of general objectives for software.
• It does not identify the requirements like detailed input, output.
• It is software working model of limited functionality.
• In this model, working programs are quickly produced.
The different phases of Prototyping model are:
1) Communication
2) Quick design
3) Modeling and quick design
4) Construction of prototype
5) Deployment, delivery, feedback
Contd…
Thank You…
Contd…
1. Communication
In this phase, developer and customer meet and discuss the overall objectives
of the software.
2. Quick design:
• Quick design is implemented when requirements are known.
• It includes only the important aspects i.e input and output format of the
software.
• It focuses on those aspects which are visible to the user rather than the
detailed plan.
• It helps to construct a prototype.
3. Modeling quick design:
• This phase gives the clear idea about the development of software as the
software is now constructed.
• It allows the developer to better understand the exact requirements.
Contd…
4. Construction of prototype
The prototype is evaluated by the customer itself.
5. Deployment, delivery, feedback:
• If the user is not satisfied with current prototype then it
is refined according to the requirements of the user.
• The process of refining the prototype is repeated till all
the requirements of users are met.
• When the users are satisfied with the developed
prototype then the system is developed on the basis of
final prototype.
Advantages and Disadvantages
Advantages of Prototyping Model:
• In the development process of this model users are actively involved.
• The development process is the best platform to understand the system by
the user.
• Earlier error detection takes place in this model.
• It gives quick user feedback for better solutions.
• It identifies the missing functionality easily. It also identifies the confusing
or difficult functions.
Disadvantages of Prototyping Model:
• The client involvement is more and it is not always considered by the
developer.
• It is a slow process because it takes more time for development.
• Many changes can disturb the rhythm of the development team.
• It is a throw away prototype when the users are confused with it.