- Introduction to Software Engineering
- The Evolving Role Of Software
- Changing Nature Of Software
- Software Myths
- A Generic View of Process
- Software Engineering- A Layered Technology
- A Process Framework
- The capability maturity model integration (CMMI)
- Process Patterns
- Process Assessment
- Personal And Team Process Models
- Process Models
- The Waterfall Model
- Incremental Process Models
- Evolutionary Process Models
- The Unified Process Model
Process patterns
The software process can be defined as a collection of patterns that define a set of activities, actions, work tasks, work products, and/or related behaviors required to develop computer software.
A process pattern provides us with a template—a consistent method for describing an important characteristic of the software process. A pattern might be used to describe a complete process or a task within a framework activity.
Pattern name
The pattern is given a meaningful name that describes its function within the software process.
Intent
The objective of the pattern is described briefly.
Type
The pattern type is specified. There are three types:
Task patterns
Define a software engineering action or work task that is part of the process
Relevant to successful software engineering practice
Example: Requirement Gathering
Stage patterns
Define a framework activity for the process
Incorporate multiple task patterns that are relevant to the stage
Example: Communication
Phase patterns
Define the sequence of framework activities that occur within the process
Apply even when the overall flow of activities is iterative in nature
Example: Spiral model or Prototyping
Initial context
The conditions under which the pattern applies are described before the pattern begins. We ask:
What organizational or team-related activities have already occurred?
What is the entry state for the process?
What software engineering or project information already exists?
Problem
The problem to be solved by the pattern is clearly described.
Solution
The implementation of the pattern is explained.
This section describes:
How the initial state of the process is modified after the pattern begins
How the available project or software engineering information is transformed after the pattern is successfully executed
Resulting context
The conditions that will result once the pattern has been successfully implemented are described. Upon completion, we ask:
What organizational or team-related activities must have occurred?
What is the exit state for the process?
What software engineering or project information has been developed?
Known uses
The specific instances where the pattern is applicable are indicated.
Process patterns provide an effective mechanism for describing any software process.
These patterns enable a software engineering organization to develop a hierarchical process description that begins at a high level of abstraction.
Once process patterns have been developed, they can be reused to define process variants. A customized process model can then be defined by a software team using these patterns as building blocks.