Software Process
1
1
What is a Process?
A system of operations in producing something
a series of actions, changes or functions that achieve
an end or a result
IEEE : A sequence of steps performed for a given
purpose
2
Software Process
A software process is a collection of Activities, actions
and tasks
An activity (e.g., communication with stakeholders)
Has set of software engineering actions
applied regardless of the application domain, size of the
project, complexity
An action (e.g., architectural design)
encompasses a set of tasks that produce a major work
product (e.g., an architectural model).
A task (e.g., conducting a unit test)
Focuses on a small, but well-defined work task that
produces a tangible outcome
Focuses on quality assurance points and project milestones
3
Types of activities
Framework activities
Umbrella activities
4
Generic Process Framework
Communication
Involves communication among the customer and other
stake holders, Encompasses requirements gathering
Planning
Establishes a plan for software engineering work
addresses technical tasks, resources, work products and
work schedule
Modeling (Analyze, Design)
Encompasses the creation of models to better understand
the requirements and the design
Construction (Code, Test)
Combines code generation and testing to uncover errors
Deployment
Involves delivery of software to the customer for
evaluation and feedback
5
Stakeholder?
A stakeholder is anyone who has a stake in the
successful outcome of the project
Business managers, end users, software engineers,
support people, etc.
6
Umbrella/Supporting Activities
Software project tracking and control
allows the software team to assess progress against the
project plan and take any necessary action to maintain the
schedule.
Risk management
assesses risks that may affect the outcome of the project or
the quality of the product.
Software quality assurance
defines and conducts the activities required to ensure
software quality.
Technical reviews
assess software engineering work products in an effort to
uncover and remove errors before they are propagated to
the next activity.
7
Umbrella Activities
Software configuration management
manages the effects of change throughout the software
process.
Reusability management
defines criteria for work product reuse (including software
components) and establishes mechanisms to achieve
reusable components.
Work product preparation and production
encompass the activities required to create work products
such as models, documents, logs, forms, and lists.
8
Task set?
A collection of software engineering work tasks,
related work products, quality assurance points,
and project milestones
9
Generic Software Process Model
10
Process Flow
Describes how the framework activities and the
actions and tasks that occur within each
framework activity are organized with respect to
sequence and time
Linear
Iterative
Evolutionary
Parallel
11
Linear process flow
Executes each of the five framework activities in
sequence beginning with communication and
culminating with deployment
12
Iterative process flow
Repeats one or more of the activities before
proceeding to the next
13
Evolutionary process flow
Executes the activities in a “circular” manner.
Each circuit through the five activities leads to a
more complete version of the software
14
Parallel process flow
Executes one or more activities in parallel with
other activities
15
Prescriptive Models
Activities and tasks occur sequentially with
defined guidelines for the software development
“prescriptive” because it prescribes a set of
process elements for each project
framework activities
software engineering actions
Tasks
work products
quality assurance and
change control mechanisms
16
Waterfall Model
• The waterfall model, sometimes called the classic
life cycle model
• suggests a systematic, sequential approach to
software development that begins with customer
specification of requirements and progresses
through planning, modeling, construction, and
deployment
17
When to use Waterfall Model?
Requirements are very well documented, clear
and fixed.
Product definition is stable.
Technology is understood .
There are no ambiguous requirements.
Ample resources with required expertise are
available to support the product.
The project is short.
18
Advantages of WF model
Simple and easy to understand and use
Easy to manage due to the rigidity of the model
Phases are processed and completed one at a time.
Works well for smaller projects where requirements
are fixed
Clearly defined stages.
Well understood milestones.
Easy to arrange tasks.
Process and results are well documented.
19
Disadvantages of WF Model
No working software is produced until late during the
life cycle.
High risk and uncertainty.
Not a good model for complex and object-oriented
projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are
changing.
It is difficult to measure progress within stages.
Cannot accommodate changing requirements.
Integration is done as a "big-bang” at the end, which
doesn't allow to identify challenges early.
20
V Model
21
Incremental Model
22
Incremental Model
Incremental model applies linear sequences in a
staggered fashion as calendar time progresses
Each linear sequence produces deliverable
“increments” of the software
First increment is often a core product
23