Skip to contentUnited States Department of Transportation - Federal Highway Administration Go to TFHRC homeGo to FHWA websiteFeedback

Chapter 2: Software Life Cycle

The techniques developed in this handbook can be applied separately or in conjunction to improve the reliability of the software product. This chapter examines the utilization of these techniques throughout the software development life cycle. This chapter discusses:

Software Development Life Cycles (SDLC)

When developing any large complex system, it is customary to divide it into tasks or groups of related tasks that make it easy to understand, organize, and manage. In the context of software projects, these tasks or groups of tasks are referred to as phases. Grouping these phases and their outcomes in a way that produces a software product is called a software process or an SDLC.

There are many different software processes, and none is ideal for all instances. Each is good for a particular situation and, in most complex software projects, a combination of these processes is used. The most used life cycles (processes) for software development are:

Recently, with the advent of Internet applications, many fast software development processes were developed, including:

All of these systems are discussed in detail in the literature.

Software Development Phases

Most of the processes outlined above encompass most or all of the following activities or phases:

Scope of Chapter

Only some of the highlights of the extensive literature on SDLCs are included here to help explain where in the life cycle the techniques developed in the handbook are applicable.

What Constitutes Testing

For the purposes of discussion, the V model is used to pinpoint where the techniques developed in this handbook can be applied. Keep in mind, as mentioned above, that most of these processes have the same activities and phases.

As shown in figure 1, the V model contains all the phases outlined above.

Flowchart of the V (U) Model for SDLC - Requirements, Specifications, Design High-Level, Unit Design Low-Level, Build Code, Unit Testing, Integration Testing, System Testing, Acceptance Testing

Figure 1: The V (U) Model for SDLC

For simplicity and certain similarities in their accomplishment, some of the phases that require similar techniques are combined here. These are:

Figure 2 is a simplification of the V model and includes techniques outlined in the remainder of this handbook.

Click to view alternate text

Figure 2: Simplified V Model with Handbook Techniques

SpecChek logo

SpecChekTM: Used in the definition phase to organize the requirements. The specifications can be coded in XML, and SpecChekTM is used to produce a running version of the specifications. "What if" scenarios then can be created to consider different alternatives. This can also be used as a communication tool with users and stakeholders to clarify ambiguities in the requirements. After the specifications have been completed, the XML (SpecChekTM) version can be saved and used later on in the system and acceptance testing phases to compare SpecChek (expected) results with the system's (actual) outputs.

wrapping icon

Wrapping: Used to wrap pieces of code that are either critical or that communicate (their output is used by) critical code. The wrapper tests the result (output) of the wrapped code before it is passed to other parts of the system. This can be used to test structure (to verify the execution of a particular path) and function (to verify a particular function) .

numerical reliability icon

Numerical Reliability: Used to verify the numerical precision and accuracy of a mathematical computation.


Previous | Table of Contents | Next


FHWA
TFHRC Home | FHWA Home | Feedback

United States Department of Transportation - Federal Highway Administration