Software Engineering
CSE - 3103
Process Model
Istyaque Ahammed
Lecturer
Department of Computer Science and Engineering
North Western University, Khulna
What is a process model?
A software process model is a simplified representation of a
software process.
Each model represents a process from a specific perspective.
These generic models are abstractions of the process that can be
used to explain different approaches to the software development.
We will describe different process model under the following 3
categories
Prescriptive Process Models
Evolutionary Process Models
Specialized Process Models
2
Prescriptive Process Models
The name 'prescriptive' is given because the model prescribes
a set of activities, actions, tasks, quality assurance and change
the mechanism for every project.
There are three types of prescriptive process models. They
are:
The Waterfall Model
Incremental Process model
RAD model
3
The Waterfall Model
The waterfall model is also called as 'Linear sequential
model' or 'Classic life cycle model'.
In this model, each phase is fully completed before the
beginning of the next phase.
This model is used for the 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 complete.
4
The Waterfall Model (Cont…)
5
The Waterfall Model (Cont…)
Advantages
The waterfall model is simple and easy to understand,
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 because the requirements
are understood very well.
This model is preferred for those projects where the quality is
more important as compared to the cost of the project. 6
The Waterfall Model (Cont…)
Disadvantages
This model is not good for complex and object oriented projects.
It is a poor model for long projects.
The problems with this model are uncovered, until the software
testing.
The amount of risk is high.
7
The 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 any suggested modifications.
The next increment implements on the customer's suggestions
and add additional requirements in the previous increment.
This process is repeated until the product is finished.
For example, the word-processing software is developed using
the incremental model. 8
The Incremental Model (Cont…)
9
The Incremental Model (Cont…)
Advantages
This model is flexible because the cost of development is low
and initial product delivery is faster.
It is easier to test and debug during the smaller iteration.
The working software generates quickly and early during the
software life cycle.
The customers can respond to its functionalities after every
increment.
10
The Incremental Model (Cont…)
Disadvantages
The cost of the final product may cross the cost estimated
initially.
This model requires a very clear and complete planning.
The planning of design is required before the whole system is
broken into small increments.
The demands of customer for the additional functionalities after
every increment causes problem during the system architecture.
11
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.
12
RAD Model (Cont…)
13
RAD Model (Cont…)
● Advantages:
Time to deliver the end product is very less compared to other
products.
Changing requirements can be accumulated .
Progress can be measured very easily
Cycle time can be short with the use of powerful RAD tools.
Use of tools and Frameworks.
14
RAD Model (Cont…)
● Disadvantages:
Management complexity is more.
Resource requirement may be increased because it is very
flexible to changes
More budget is required as we use tools regularly.
It is suitable for the system that are completely component
based which are scalable.
Requires user involvement throughout the Life cycle.
15
Evolutionary Process Models
Evolutionary models are iterative type models.
They allow to develop more complete versions of the software.
Following are the evolutionary process models.
The prototyping model
The spiral model
Concurrent development model
16
The Prototyping 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.
17
The Prototyping Model (Cont…)
18
The Prototyping Model (Cont…)
The different phases of Prototyping model are:
Communication
• In this phase, developer and customer meet and discuss the
overall objectives of the software.
Quick design
■ Quick design is implemented when requirements are known.
It includes only the important aspects like 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.
19
The Prototyping Model (Cont…)
Modeling quick design
■ This phase gives the clear idea about the development of software
because the software is now built. It allows the developer to better
understand the exact requirements.
Construction of prototype
■ The prototype is evaluated by the customer itself.
Deployment, delivery, feedback
■ If the user is not satisfied with current prototype then it refines
according to the requirements of the user. The process of refining
the prototype is repeated until 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.
20
The Prototyping Model (Cont…)
● Advantages:
Prototype model need not know the detailed input, output, processes,
adaptability of operating system and full machine interaction.
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.
Errors are detected much earlier.
Gives quick user feedback for better solutions.
It identifies the missing functionality easily. It also identifies the
confusing or difficult functions.
21
The Prototyping Model (Cont…)
● Disadvantages:
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 thrown away prototype when the users are confused
with it.
22
The Spiral Model
Spiral model is a risk driven process model.
It is used for generating the software projects.
In spiral model, an alternate solution is provided if the risk is
found in the risk analysis, then alternate solutions are suggested
and implemented.
It is a combination of prototype and sequential model or waterfall
model.
In one iteration all activities are done, for large project's the
output is small.
23
The Spiral Model (Cont…)
24
The Spiral Model (Cont…)
● Advantages:
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:
It can be costly to develop a software model.
It is not used for small projects
25
The Concurrent Development Model
The concurrent development model is called as concurrent model.
The communication activity has completed in the first iteration and
exits in the awaiting changes state.
The modeling activity completed its initial communication and then
go to the underdevelopment state.
If the customer specifies the change in the requirement, then the
modeling activity moves from the under development state into the
awaiting change state.
The concurrent process model activities moving from one state to
another state.
26
The Concurrent Development Model (Cont…)
27
The Concurrent Development Model (Cont…)
● Advantages:
This model is applicable to all types of software development
processes.
It is easy for understanding and use.
It gives immediate feedback from testing.
It provides an accurate picture of the current state of a project.
● Disadvantages:
It needs better communication between the team members. This may
not be achieved all the time.
It requires to remember the status of the different activities.
28
Specialized Process Model
Unified Process
a “use-case driven, architecture-centric, iterative and
incremental” software process closely aligned with the
Unified Modeling Language (UML) to model and develop
objectoriented system iteratively and incrementally.
29
Unified Process Model
30
Unified Process Model (Cont…)
31
Pros. and Cons.
32
Thank You
33