Concurrency is playing an increasing role in the architecture of software. The concept of multiple tasks was originally the preserve of real time systems. The growth of software communications, networks, client-server systems, and general increase in the complexity of problems which software is used to solve, has resulted in an increase in the use of concurrency in software designs.
For example, a few years ago there was little call for the PC operating system (DOS) to support multiple concurrent tasks. Requirements have now changed, with the successors to DOS (Windows, OS2, UNIX) all supporting multiple tasks.
For Ada developments, concurrency can be contained within an Ada program, so the simple test structure discussed above can be used.
When developing software in C and C++, the simple test structure can be only be used when testing the units within a task, and for levels of integration up to task level.To test C and C++ software at task level, and at levels involving multiple tasks, a
concurrent test structure is necessary.
The concurrent test structure can also be used to test Ada software involving multiple Ada programs.Consider a C task designed to operate in the target environment, which has been
structured according to the guidelines given in this paper.