The Software Process
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:
Communication. Before any technical work can commence, it is critically important to
communicate and collaborate with the customer (and other stakeholders The intent is to
understand stakeholders’ objectives for the project and to gather requirements that help define
software features and functions.
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.
Modeling. Whether you’re a landscaper, a bridge builder, an aeronautical engineer, a carpenter,
or an architect, you work with models every day. You create a “sketch” of the thing so that you’ll
understand the big picture—what it will look like architecturally, how the constituent parts fit
together, and many other characteristics. If required, you refine the sketch into greater and
greater detail in an effort to better understand the problem and how you’re going to solve it. A
software engineer does the same thing by creating models to better understand software
requirements and the design that will achieve those requirements.
Construction. This activity combines code generation (either manual or automated) and the
testing that is required to uncover errors in the code.
Deployment. The software (as a complete entity or as a partially completed increment) is
delivered to the customer who evaluates the delivered product and provides feedback based on
For many software projects, framework activities are applied iteratively as a
project progresses. That is, communication, planning, modeling, construction,
and deployment are applied repeatedly through a number of project iterations.
Each project iteration produces a software increment that provides stakeholders with
a subset of overall software features and functionality. As each increment is produced,
the software becomes more and more complete.
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 umbrella activities include:
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.