
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.
- 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.
- 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.
- 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.
- 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).
- Outputs identify products of the kernel activities and are either deliverable items or are required to support other kernels.
- 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.
- 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.
- 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.
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.
|