Software process modeling


Software process models are simplified views of software processes that show the activities and outputs of the process.To define a software process in detail, you need to include information about activities, inputs and outputs, process actors and constraints. Figure 1 lists the entities and relations that might be used in a software process model.

At an abstract level, software processes are the same in many organizations. However, generic process models have different instantiations in different companies depending on the type of software being developed and the organizational environment. Detailed process models are not usually the same across organizations.

If you try and include everything about a process in a single process representation, this representation will be very complex for all but the most trivial process. Therefore, it is normal practice to model software processes at different levels of detail. You should normally develop a high-level model, which presents the process as a black-box but which shows its inputs and outputs and a more detailed model, which shows the process activities.

Examples of software process models

Process model element

Description

Activity

An activity has a clearly defined objective, entry and exit conditions. Examples of activities are preparing a set of test data to test a module, coding a function or a module and proofreading a document. Generally, an activity is atomic; that is, it is the responsibility of one person or group. It is not decomposed into sub-activities.

Process

A process is a coherent set of activities whose objective is generally agreed within an organization. Examples of processes are requirements analysis, architectural design and test planning.

Document

 

A document is a tangible entity that can be the input to or the output from a process or activity.

State

A state is either a pre-condition that must hold before a process or activity can start or a post-condition that holds after a process or activity has finished.

Actor

An actor is a person involved in the process. Actors are often represented as roles where a role is a bounded area of responsibility. Examples of roles might be configuration manager, test engineer and software designer. One person may have several roles and a single role may be associated with several different people.

Exception

An exception is a description of how to modify the process if some anticipated or unanticipated event occurs. Exceptions are often undefined, and it is left to the ingenuity of the project managers and engineers to handle the exception.

Information flow

Information flow represents an interchange of information between people or between people and supporting computer systems. Information flows may be informal or formal. Formal information flow might be the approval of a deliverable by a project manager; informal communications might be the interchange of e-mail to resolve ambiguities in a document.BPMN

Sequence

The order in which activities within a process are carried out.

Decision

This is a point in a sequence where there are several possible activities that might be executed and a decision is made about what to do. For example, a decision may be made to release a system for external testing.

Figure 1 Entities in a software process model

 


(c) Ian Sommerville 2008