The purpose of requirements engineering is to determine the requirements for a system to be developed in a complete and error-free manner in order to support consequent development activities (e.g. architecture design, implementation, and test). Studies and extensive practical experiences show that defects in requirements can cause significant problems in development projects, particularly when such defects are detected during late development activities (if detected at all). These problems arise because significant rework of early development artefacts is necessary to fix these defects. Requirements defects that are not uncovered during development will sooner or later result in system failure during operation, which – depending on how safety-critical the system is – may result in human injury or loss of life, severe financial consequences, and damaged equipment.
The researchers focusing on early quality assurance of requirements in development processes in order to thwart issues arising due to uncovering requirements defects late. One essential question is how requirements for large, complex software-based systems can be developed in a systematic manner, as these systems are frequently functionally dependent on their environment. In addition, the research activities in this area focus on how an ideal architecture can be derived from a requirements specification, how complex dependencies between functions of the system can be uncovered early and documented, and how the semantic quality of requirements can be increased through a systematic analysis of the system's context.