Software Engineering
Chapter 2
Process Models
CS 4513 – Software Engineering
Learning Objectives
2.1 Generic Process Model
2.2 Defining a Framework Activity
2.3 Identifying a Task Set
2.4 Process Assessment and Improvement
2.5 Prescriptive Process Models
2.6 Product and Process
CS 4513 – Software Engineering
Overview
CS 4513 – Software Engineering
Generic Process Model
CS 4513 – Software Engineering 4
Process Flow
CS 4513 – Software Engineering 5
Identifying a Task Set
A task set defines the actual work to be done to accomplish the
objectives of a software engineering action.
A task set is defined by creating several lists:
• A list of the tasks to be accomplished.
• A list of the work products to be produced.
• A list of the quality assurance filters to be applied.
CS 4513 – Software Engineering 6
Process Assessment and Improvement
• The existence of a software process is no guarantee that software
will be delivered on time, meet the customer’s needs, or exhibit
long-term quality characteristics.
• Any software process can be assessed to ensure that it meets a
set of basic process criteria that have been shown to be essential
for successful software engineering.
• Software processes and activities should be assessed using
numeric measures or software analytics (metrics).
CS 4513 – Software Engineering 7
Prescriptive Process Models 1
Prescriptive process models advocate an orderly approach to
software engineering.
That leads to two questions:
• If prescriptive process models strive for structure and order, are
they appropriate for a software world that thrives on change?
• If we reject traditional process models and replace them with
something less structured, do we make it impossible to achieve
coordination and coherence in software work?
CS 4513 – Software Engineering 8
Waterfall Process Model
Pros
• It is easy to understand and plan.
• It works for well-understood small projects.
• Analysis and testing are straightforward.
Cons
• It does not accommodate change well.
• Testing occurs late in the process.
• Customer approval is at the end.
CS 4513 – Software Engineering 9
Prototyping Process Model
Pros
• Reduced impact of requirement changes.
• Customer is involved early and often.
• Works well for small projects.
• Reduced likelihood of product rejection.
Cons
• Customer involvement may cause delays.
• Temptation to “ship” a prototype.
• Work lost in a throwaway prototype.
• Hard to plan and manage.
CS 4513 – Software Engineering 10
Spiral Process Model
Pros
• Continuous customer involvement.
• Development risks are managed.
• Suitable for large, complex projects.
• It works well for extensible products.
Cons
• Risk analysis failures can doom the
project.
• Project may be hard to manage.
• Requires an expert development team.
CS 4513 – Software Engineering 11
Unified Process Model
Pros
• Quality documentation emphasized.
• Continuous customer involvement.
• Accommodates requirements changes.
• Works well for maintenance projects.
Cons
• Use cases are not always precise.
• Tricky software increment integration.
• Overlapping phases can cause
problems.
• Requires expert development team.
CS 4513 – Software Engineering 12