Software Process
Software Process
1
A Generic Process Model
•A software process (also knows as software
methodology) is a set of related activities that
leads to the production of the software.
•These activities may involve the development of
the software from the scratch, or, modifying an
existing system.
2
• When you build a product or system, its
important to go through a series of predictable
steps- a road map that helps you create a
timely, high quality result.
• The road map that you follow is called Software
Process.
• A software process as a framework for the tasks
that are required to build a high quality
software.
3
4
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.
a) A linear process flow executes each of the five framework
activities in sequence, beginning with communication and
culminating with deployment.
b) An iterative process flow repeats one or more of the activities
before proceeding to the next.
c) An 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
5
d) A parallel process flow executes one or more
activities in parallel with other activities (e.g., modeling
for one aspect of the software might be executed in
parallel with construction of another aspect of the
software).
6
7
8
1 Defining a Framework Activity
What actions are appropriate for a framework activity,
given
The nature of the problem to be solved,
The characteristics of the people doing the work, and
The stakeholders who are sponsoring the project?
9
For a small software project requested by one person (at a
remote location) with simple, straightforward requirements, the
communication activity might encompass little more than a phone
call with the appropriate stakeholder.
10
• If the project was considerably more complex with many
stakeholders, each with a different set of (sometime conflicting)
requirements, the communication activity might have six
distinct actions
• Inception,
• Elicitation,
• Elaboration,
• Negotiation,
• Specification, and
• Validation.
Each of these software engineering actions would have many work
tasks and a number of distinct work products.
11
2. Identifying a Task Set
•Each software engineering action (e.g., elicitation, an
action associated with the communication activity) can be
represented by a number of different task sets —each a
collection of software engineering work tasks, related
work products, quality assurance points, and project
milestones.
12
3) Process Patterns
13
• Ambler has proposed the following for describing a process
pattern:
1. Pattern Name: Ex: Customer Communication
2. Intent : To establish a collaborative relationship with the
customer in an effort to define project scope, business
requirements and other project constraints.
3. Type : Task Pattern: Requirements Gathering
Stage Pattern – Communication-Requirements
Gathering
Phase Pattern – Spiral Model
4. Initial Context : The Conditions under which the pattern applies
are described.
5. Problem – Problem to be solved by the pattern is described.
6.Solution – Implementation of the pattern is described. 14
7.Resulting Context: The conditions that will result once the
pattern has been successfully implemented are described.
8. Related Patterns: A list of all process patterns that are directly
related to this one are provided as a hierarchy/ in some other
diagrammatically form.
9. Known uses/Examples
15