The Software Process
A process is a collection of activities, actions, and tasks that are performed when some
work product is to be created.
An activity strives to achieve a broad objective (e.g., communication with stakeholders)
and is applied regardless of the application domain, size of the project, complexity of the effort,
or degree of rigor with which software engineering is to be applied.
An action encompasses a set of tasks that produce a major work product (e.g., an
architectural design model).
A task focuses on a small, but well-defined objective (e.g., conducting a unit test) that
produces a tangible outcome.
A process framework establishes the foundation for a complete software engineering
process by identifying a small number of framework activities that are applicable to all software
projects, regardless of their size or complexity. In addition, the process framework encompasses
a set of umbrella activities that are applicable across the entire software process.
A generic process framework for software engineering encompasses five activities:
1 Communication. Before any technical work can commence, it is critically important to
communicate and collaborate with the customer. The intent is to understand stakeholders
objectives for the project and to gather requirements that help define software features
and functions.
2 Planning. Any complicated journey can be simplified if a map exists. A software project
is a complicated journey, and the planning activity creates a “map” that helps guide the
team as it makes the journey. The map—called a software project plan—defines the
software engineering work by describing the technical tasks to be conducted, the risks
that are likely, the resources that will be required, the work products to be produced, and
a work schedule.
3 Modeling. Creation of models to help developers and customers understand the requires
and software design
4 Construction. This activity combines code generation and the testing that is required to
uncover errors in the code.
5 Deployment. The software is delivered to the customer who evaluates the delivered
product and provides feedback based on the evaluation.
These five generic framework activities can be used during the development of small, simple
programs, the creation of large Web applications, and for the engineering of large, complex
Computer-based systems.
Software engineering process framework activities are complemented by a number of
Umbrella Activities.
In general, umbrella activities are applied throughout a software project
and help a software team manage and control progress, quality, change, and risk. Typical
a. 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.
b. Risk management—assesses risks that may affect the outcome of the project or the
quality of the product.
c. Software quality assurance—defines and conducts the activities required to ensure
software quality.
d. Technical reviews—assesses software engineering work products in an effort to uncover
and remove errors before they are propagated to the next activity.
e. Measurement—defines and collects process, project, and product measures that assist
the team in delivering software that meets stakeholders needs; can be used in conjunction
with all other framework and umbrella activities.
f. Software configuration management—manages the effects of change throughout the
software process.
g. Reusability management—defines criteria for work product reuse and establishes
mechanisms to achieve reusable components.
h. Work product preparation and production—encompasses the activities required to
create work products such as models, documents, logs, forms, and lists.
Attributes for Comparing Process Models
Overall flow and level of interdependencies among tasks
Degree to which work tasks are defined within each framework activity
Degree to which work products are identified and required
Manner in which quality assurance activities are applied
Manner in which project tracking and control activities are applied
Overall degree of detail and rigor of process description
Degree to which stakeholders are involved in the project
Level of autonomy given to project team
Degree to which team organization and roles are prescribed