Examples of software process models


Detailed process models are extremely complex. For example, consider the process fragments shown in Figures 1 and 2. These describe the process of testing a single module in a large system that uses a strictly controlled configuration management process (see Chapter 26). The software being tested and the test data are under configuration control. Figure 1 shows the agent responsible for the testing process, process inputs and outputs, and pre- and post-conditions.

Figure 1 High-level model of software module testing

Figure 2 shows the decomposed process ‘test module’ as a number of separate activities. This fragment shows only the activities in the relatively simple activity of module testing. Four streams of activities are concerned with preparing test data, writing a test harness for the module, running the tests and reporting on the tests. The activities in the preparation streams would normally be interleaved. Obviously, the preparation activities precede the execution and reporting activities.

I have left out information on process pre- and post-conditions and process inputs and outputs in this diagram because this information would make the model more complex and difficult to understand. Rather than trying to get all information into a single model, you may need to make several models at different levels of abstraction. These should be related using common elements such as activities or deliverables. Some models should be primarily concerned with process activities, others with control information that drives the process execution.

Figure 2 Activity model of module testing

 

 


(c) Ian Sommerville 2008