Unit 1.2 Process Models
Unit 1.2 Process Models
UNIT 1.2
PROCESS MODELS
HETAL CHUDASAMA,
DEPARTMENT OF INFORMATIN TECHNOLOGY,
GCET.
1
GENERIC PROCESS MODEL
Process : collection of work activities, actions,
and tasks (AAT) that are performed to create
work product.
Process Model : Abstract representation of
process.
Process Framework: defines the relationship of
these AAT with the process and with each
other. (PF = FA +UA)
Framework activity : set of SE actions, and SE
action is set of tasks.
Framework activities (applicable to all software
projects)
Umbrella activities (applicable across entire
software process)
Process flow : Organization of framework AAT
as per sequence and time.
Process Pattern : process related problems
encountered during SE work and suggested
solutions.
2
TYPES OF PROCESS FLOW
Linear process flow executes each
of the five framework activities in
sequence.
❖ Requirement gathering
❖ Feasibility Analysis
❖ Planning and defining requirements
❖ Designing
❖ Development(Coding and implementation)
❖ Testing
❖ Deployment
❖ Maintenance
5
REQUIREMENT GATHERING AND ANALYSIS
Gather requirements from their stakeholders, including customers, target market, industry experts,
and developers.
Business analyst and Project manager conducts meeting with stake holders and collect all functional
(what exactly customer want) and non-functional requirement(how your product will look like in
future).
Create Customer Requirement Specification (CRS).
Investigating the validity and possibility of incorporating these requirements into the software
system.
Feasibility check(economical, legal, operational, technical, shedule) by higher management and team
leaders
6
PLANNING AND DEFINING REQUIREMENTS
What do we want?
team members work together to discuss and plan out:
Intentions behind the project, Requirements of the project , Anticipated issues, Opportunities, Risks
The quality proof of the project is a result of planning.
Converting the information gathered during analysis phase into clear requirements for the
development team.
This process guides the development of several important documents:
a software requirement specification (SRS), a Use Case document, and a Requirement Traceability
Matrix document.
7
DESIGNING
9
TESTING
10
DEPLOYMENT
11
MAINTENANCE
12
WATERFALL MODEL
Understanding Best Feasible Classic life cycle or
problem requirements linear sequential model
Requirements gathering Software
Requirement analysis Requirement
specification of system Specifications
Design is prepared Software
Defining system
Design
architecture, HLD,LLD
Document
Developing system in small units
Efficiency of
Tested for its functionality
individual
modules
Modules integrated into a system Corrective,
Efficiency of
Entire system testing perfective, adaptive
system
(Alpha, Beta, Acceptance) maintenance
Modules interaction testing Fix issues 13
Handover product Enhances product
Customer feedback Patches are release
CLASSIC WATERFALL MODEL
Earliest and base process model used for software development.
Simplest software development model to understand and use but idealistic .
Earlier days it was very popular but now a days it is not used, but various other models are derived
from this model.
Inspired by a natural phenomenon – waterfall.
It follows sequential process flow, (output of one phase will be input to next phase) so also referred
to as linear-sequential life cycle model or classic life cycle model or classic water fall model
Maintains a linear and forward/downward/sequential approach throughout process, no
backward/upward movement
Activities of each stage can begin only after you’re done with tasks of the previous stage and all
activities are properly documented.
Developers believe in completing and documenting the scheduled tasks in each phase as it continue
to move ahead. 14
CLASSIC WATERFALL MODEL
No customer involvement (if intermediate changes suggested by customer, developers may need to
go back to accommodate those changes, which is not allowed)
It is a rigid model as it does not allow any intermediate changes or once requirements specified by the
customers, it can not be modified one software development gets start.
Well defined enhancement of an existing system.
Encountered during well defined and reasonably stable requirements for new development
60% of efforts will be in maintenance phase only as all problems, bugs will be visible and debugged at
the end only
15
CLASSIC WATERFALL MODEL
16
CLASSIC WATERFALL MODEL
When to use
Requirements are very well known, understood and fixed and will not change
Product definition is stable
Technology is understood and not dynamic
There are no ambiguous (unclear) requirements
Ample (sufficient) resources with required expertise are available freely
The project is not complicated and big and cost is low
Minimum risk
17
Classic Waterfall Model
Advantages Disadvantages
• Rigid model as no intermediate changes possible
▪ Process and tasks are well • Difficult for customers to state all requirements
documented explicitly.
▪ Easy to manage and arrange tasks • Unable to accommodate changes at later stages, that
▪ Simple to implement and easy to is required in most of the cases.
• High Risk of failure as Working version is only
use available at end.
▪ Works well for small and low • If a problem encounters, can lead development with
budget projects major mistakes and changes.
▪ Elaborated documents are • Delay in any step may lead to Deadlock .
prepared at each stage • Not suitable for large projects.
• Can lead to blocking state (some team members must
▪ Project completely depends on wait for other, to complete dependent tasks.)
project team with minimum client • No feedback exchange b/w teams working at different
interaction phases, Needs high maintenance
• No parallelism or phase overlapping or backtrack
18
• Difficult to measure progress within stages
• No incremental delivery
ITERATIVE WATERFALL MODEL
19
ITERATIVE WATERFALL MODEL
20
Iterative waterfall model
Advantages Disadvantages
▪ Feedback Path allows correcting ▪ Difficult to incorporate change
errors requests
▪ Corrected changes will be ▪ Risk handling not supported
reflected to later phases ▪ Overlapping of phases not
▪ Simple to use and easy to supported
implement ▪ Limited customer interactions
▪ Risk Reduction ▪ Incremental delivery not
▪ Predictable Outcomes supported
▪ Easy to Manage
▪ Quality assurance When to use
▪ Requirements are well known and
stable.
▪ Technology is understood. 21
Acceptance test : Before closing requirement phase, acceptance test should also be
planned.Testing by customers or users for acceptance of the product.
Done during requirement analysis.
System testing : It is done just before product delivery to test entire system
functionality. Done during System design.
Integration test : It is done to test software’s internal modules and its
communication. Done during architecture design.
Unit testing : It is done by individual developers to test module functionality. Also
known as white box testing. Done during module design.
24
V shaped Model
Advantages Disadvantages
▪ It inherits all the advantages of ▪ Testing at each phase in the
waterfall model. beginning can be time
▪ Time spent early in software consuming.
development cycle, can reduce cost at ▪ Difficult to incorporate change
later stage. requests
▪ Emphasize planning for verification ▪ Risk handling not supported
and validation of the product in early ▪ Overlapping of phases not
stage of the development. supported
▪ Testing in beginning phases, saves lots
of testing time during validation. When to use
▪ Less chances of bugs or defects as ▪ Requirements are well known
most of them will be detected in and stable.
beginning. ▪ Technology is understood.
25
Fully functionalized
software
27
Incremental Process Model
Advantages Disadvantages
▪ Generates working software quickly and early. ▪ Overall cost and time is higher.
▪ Breakdown of system into modules require
▪ Maximum customer interaction proper understanding.
▪ Early customer feedback ▪ Not all requirements collected up initially in
▪ Customer can respond to each built. one time.
▪ Initial product with important or prioritized ▪ Each iteration phase is rigid and no
functionality can be deliver faster overlapping of phases.
▪ Proper planned execution needed.
▪ More flexible as it can accommodate changes
through customer interaction and feedbacks. When to use
▪ It is easier to test and debug during a smaller ▪ When the requirements of the complete
iteration. system are clearly defined and understood
▪ Lowers initial delivery cost. ▪ staffing is unavailable for a complete
implementation by the business deadline.
▪ Easier to manage risk because risky pieces are
▪ Prioritized requirements to be developed first.
identified and handled during iteration.
▪ Product delivery needs to be earlier.
▪ Changes are easy to implement. ▪ Customer demands quick delivery of product.
28
▪ Partial systems are successively built to produce ▪ Product with long development schedule.
final total system. ▪ Project is large with high-risks.
INCREMENTAL PROCESS MODEL
There are many situations in which initial software requirements are reasonably well
defined, but the overall scope of the development effort prevent a purely linear process.
In addition, there may be a compelling need to provide a limited set of software functionality to users quickly and
then refine and expand on that functionality in later software releases.
In such cases, there is a need of a process model that is designed to produce the software in increments.
e.g. word-processing software developed using the incremental model
It might deliver basic file management, editing and document production functions in the first increment
more sophisticated editing in the second increment;
spelling and grammar checking in the third increment; and
advanced page layout capability in the fourth increment.
29
EVOLUTIONARY PROCESS MODEL
31
EVOLUTIONARY PROCESS MODEL
33
EVOLUTIONARY PROCESS MODEL
Often changes in product requirement as development proceeds and tight market deadlines makes completion of
comprehensive software product impossible, So, limited version of software is introduced to meet business pressure.
When a set of core product or system requirements is well understood but the details of product or system extensions
have yet to be defined.
In this situation there is a need of process model which specially designed to accommodate product that evolve with
time.
Evolutionary Process Models are specially meant for that which produce an increasingly more complete version of the
software with each iteration.
Evolutionary Models are iterative.
Evolutionary models are
➢ Prototyping Model
➢ Spiral Model
34
Evolutionary Process Model
Advantages Disadvantages
▪ Risk analysis is better. ▪ Not suitable for smaller projects.
▪ It supports changing requirement. ▪ Highly skilled resources are required.
▪ Initial operating time is less. ▪ Overall High cost.
▪ Better suitable for large mission-critical and long ▪ Constant customer interaction is time
projects. consuming.
▪ User gets partially built software, no need to wail ▪ Constant and clear interaction between
till full functional software get build. development team is necessary.
▪ Easy to solve error as it will be detected and get
▪ Delivery of full software can be late due to
solved in each module instead of solving for entire
constant feedback and different changes.
fully build software at last.
▪ Will reduce cost of development. ▪ Sometimes difficult to divide project into
smaller parts.
When to use
▪ When customers want to start using core features instead of waiting for full project.
▪ When project is large as step by step development.
▪ Customer requirements are not fixed but conceptually clear 35
Customers’ feedback and accommodation of those changes were not there through out the development, it was
only included during prototyping phase in prototype model.
Due to this, Some projects need restart of project from in between due to various problems.
Big project must work on risk analysis well in advanced so that it can make developers aware about various risk
that can be generated in later phase of development life cycle.
Recognizing the project risk factor and remove it at earlier stage of a life cycle model, and throughout
consideration of customer interaction result into spiral model.
Also known as Risks (new technology, critical timeline, lack of crystal clear requirements) driven software
development model.
It is combination of Iterative nature of prototype and controlled and systematic aspects of waterfall model and
allows incremental releases of the product, Software is developed in a series of incremental releases.
Early iteration release might be model or prototype but later iterations provides more complete
version of software. 40
Till the customer gets satisfied with the product, model will go into next spiral.
SPIRAL MODEL
Spiral model has 4 phases, shown by four quadrants.
Risks analysis, Risk resolving
At any point of time, project will be in one of the Identifying requirements
Software evaluation,
four quadrants. (customer, business,
Prototype building for best solution
system)
It also has third dimension of prototypes. Requirement analysis
That Angular dimension represents progress made
in the completion of each cycle.
Circle represents iterations of spiral model.
Each circle ends with potential product release.
Each loop of the spiral, from X-axis clockwise Builds software ,
through 360 represents one phase.
Customer Assign number to
Product will not be released in each iteration, but feedback and builds &
only in the last iteration. evaluation for providing it to
customer with
Each path around spiral is indicative of increased next build
cost. updates
Testing
More the radius of spiral, cost will be more. 41
Also called meta model(mixture of linear, iterative,
incremental, prototype model)
SPIRAL MODEL
▪ It is divided into four framework activities, Each activity represent one segment of the spiral path.
▪ First circuit around spiral results in development of product specification.
▪ Subsequent passes around spiral used to develop prototype and progressively more sophisticated
versions of software.
▪ Each pass through the planning region results in adjustments to
▪ the project plan
▪ Cost & schedule adjustment based on feedback from customers after delivery
▪ Developer and customer better understand and react to risks at each evolutionary level.
▪ Uses prototyping as risk reduction mechanism.
▪ Enables you to apply prototyping approach at any stage in evaluation of product. 42
It is adaption of waterfall model and based on prototyping and incremental development model.
Main focus of this model is to gather the requirements from the customers through prototypes and continuously
deliver them using iterative model.
It results in rapid delivery to the customer and customer involvement during complete development cycle of
product reducing the risk of non-conformance with the actual user requirements.
Project can be broken down into small modules.
Each module can be assigned independently to the separate teams.
These start working on the assigned module parallelly.
These modules can finally be combined to form the final product.
Development of each module involves the various basic steps as in waterfall model.
45
RAPID APPLICATION DEVELOPMENT MODEL (RAD)
46
RAPID APPLICATION DEVELOPMENT MODEL (RAD)
▪ Communication : This phase is used to understand business problem.
▪ Planning : Multiple software teams work in parallel on different systems/modules.
▪ Data Modeling: Information refine into set of data objects that are needed to support business.
▪ All attributes of dataset are identified and defined as per BI.
▪ Process Modeling: Data object transforms to information flow necessary to implement business.
▪ Deployment : Integration of modules developed by parallel teams, delivery of integrated software and feedback comes under deployment
phase.
Rapid Application Development Model (RAD)
Advantages Disadvantages
▪ For large but scalable projects, RAD
▪ Reduced development time. requires sufficient human resources.
▪ Increases reusability of components. ▪ Projects fail if developers and
▪ Quick initial reviews occur. customers are not committed in a much
▪ Encourages customer feedback. shortened time-frame.
▪ Problematic if system can not be
▪ Integration from very beginning solves a lot of modularized.
integration issues. ▪ Not appropriate when technical risks
▪ This model is flexible for changes. are high (heavy use of new technology).
▪ Require highly skilled designers.
▪ Customer involvement throughout
development.
When to use
▪ There is a need to create a system that can be modularized in 2-3 months of time.
▪ High availability of designers and budget for modeling along with the cost of automated code
generating tools. 48
51
OBJECT-ORIENTED MODEL
52
53
54
55
56
AGILE PROCESS MODEL
The Agile Model is an incremental and iterative process of software
development.
It divides tasks/project down into several dynamic phases, commonly
known as sprints to provide delivery of specific functionality early for
the release/build, which mostly lasts from two to four weeks.
After every sprint, teams reflect and look back to see if there was
anything that could be improved so they can adjust their strategy for
the next sprint.
Each sprint is incremental in terms of functionality, with the final
sprint containing all the attributes.
It defines each iteration’s number, duration, and scope in advance.
The division of the entire project into small parts helps minimize the
project risk and the overall project delivery time.
The agile basic purpose is to be rapid in all activities.
Agile manifesto is set of 4 values and 12 principles. 57
HOW DOES AGILE PROCESS MODEL WORK? 58
AGILE PROCESS MODEL
61
HOW IS AGILE DIFFERENT?
Agile prioritizes flexibility and continuous improvement over following a strict plan.
Agile emphasizes collaboration between teams, customers, and stakeholders and
encourages open communication and transparency throughout the project lifecycle.
Agile uses short iterations called sprints to manage and track progress, with regular reviews
and assessments to ensure that the project stays on track.
Agile encourages the delivery of working software early and often rather than waiting until
the end of the project to deliver a final product.
Overall, Agile approaches focus on continuous delivery and improvement, adaptability and
customer involvement. In contrast, traditional project management approaches focus more
on following a plan and sticking to a budget and schedule. 62
63
ADVANTAGES OF OTHER PROCESS MODEL IN TO AGILE
64
Agile Model
Advantages Disadvantages
▪ Supports customer involvement and customer ▪ Lack of documentation
satisfaction ▪ Software maintenance difficult in case
▪ Strong communication of the software team with of frequently changing team
the customer. ▪ Senior and highly paid developers are
▪ Focus on user and customer required
▪ Rapid development ▪ No full support for documentation and
▪ Allows changes easily design
▪ Cost-saving ▪ risk of the ever-lasting project
▪ Promotes team works ▪ resource requirement and effort are
▪ Fast delivery difficult to estimate for complex
▪ Little planning required projects
▪ difficult to predict the expected result if
When to use requirement is not very clear
▪ ongoing projects and projects with unclear details
▪ Project needs continuous delivery, iteration, adaptability, and short time frames, among others.
▪ Project lacking precise constraints, deadlines, or resources. 65