unit two

content

Example Software Development Process

The example software development process is shown in the example linked below. The boxes represent the software development process kernels. The Software Unit Testing, Software Component Testing, Software Configuration Item Testing, Validation Test and Verification and Validation Test Design are the kernels that will be studied in detail in this course. The following paragraphs and frames will discuss each kernel and the test-related activities that go on during each kernel. The discussions on these kernels are to be considered general guidelines and are determined on the project size basis. The kernel concept and process was developed by Humphrey in Chapter 13 of the referenced book. The Entry, Task, Verification, and Exit (ETVX) paradigm is a concept initially developed by a group at IBM, Radice et al. Humphrey and Radice worked together at IBM and Radice was the first to coin the term "kernel."

Click here to view the Example Software Development Process in animation
Click here to view the Example Software Development Process in PDF

The Example Software Development Process shown in the line above is based on a predefined repository of process "kernels" from which the testing, verification & validation life cycle for a given project can be defined. A "kernel" is defined for each function such as Requirements Analysis, Document Review, Code Analysis, Unit Testing, etc. Each "kernel" contains entry criteria, inputs, activities, exit criteria, outputs, process controls, and metrics are defined for each kernel.

  1. Entry Criteria describe the circumstances under which a kernel becomes activated. All entry criteria should be fulfilled before commencing with the activities defined for the kernel. If some entry criteria cannot be fulfilled, a work-around may be necessary. All such deviations from what is prescribed in the kernel must be performed to maximize risk reduction and minimize adverse impacts to quality. All deviations must also be documented appropriately.
  2. Inputs identify the data items that are required to support the activities of the kernel. For the most part, these are outputs of other kernels or products of the software development process such as test plans or design documents.
  3. Activities describe a minimum set of actions that will produce the output items and meet the exit criteria objectives. For each related set of actions, step by step procedures are available to support consistency among analysts, adherence to proven practices, and training. If all activities cannot be performed, management steps to reduce risk should be taken, they should be noted in the outputs products (such as the Requirements Analysis Report), and the kernel closed.
  4. Exit Criteria identify the circumstances under which the kernel is completed or de-activated. It includes delivery or presentation of results, and passing of information to other kernels (such as the passing of comments to the Configuration Management kernel for tracking).
  5. Outputs identify products of the kernel activities and are either deliverable items or are required to support other kernels.
  6. Process Controls define quality assurance activities that are performed for the kernel. These are detailed in the Project Management and Quality Assurance kernels and are documented in the IV&V Project Management Plan.
  7. Metrics are the categories of measures collected and maintained for each kernel. The details of each metric are specific to each kernel and are defined in a Metrics Program Plan. The metrics allow the monitoring of trends and identification of problem areas.
  8. The kernel was used by Lillian K. Zelinski at Science Applications International Corporation (SAIC) in Arlington, VA and presented in her paper "Constructing Independent Verification and Validation Life Cycles Using Process Kernels", at the 10th Annual IEEE COMPASS Conference, June 26-30 1995, Gaithersburg, MD USA.


life cycle models

Example Software Life Cycle Models

The figure above is a graphic of five different software life cycle models. These four other software life cycle models are: Waterfall; Rapid Prototype; Incremental; Evolutionary and Spiral. The kernels in Figure 1 were presented in a straight waterfall model, however each process in Figure 2 has basically the same set of kernels. These kernels can be mapped to the development model (Waterfall, Cyclic, etc.) determined by the needs of the project.

© January 1, 2006 James C. Helm, PhD., P.E.