Skip to Main Content
Traditionally, components of the system development life cycle have included separate phases for requirements and design. The relationship between the two phases has been discussed and observed as primarily a unidirectional dependency, with design obviously being explicitly dependent on requirements. Although the importance of feedback loops has been proclaimed, the relationship continues to be viewed as primarily unilateral. While this approach was developed and has worked well for a large class of homogeneous systems, homogeneity in the engineering of computer-based systems is no longer the norm. The widespread emphasis on reuse salvaging, and reengineering has resulted in the evolution of systems which have widely heterogeneous components at various levels including hardware and software as well as the components utilized in the system development life cycle such as design, documentation, interface, and testing. For many such widely heterogeneous systems, the process may be improved by placing increased emphasis on the implicit dependencies between the requirements and design phases. Observation of these dependencies can result in the following three major benefits: increased cohesion, more effective incorporation of reuse, and the development of prototypical process models which aid in the efficient and effective engineering of heterogeneous computer-based systems.