Abstract :
Requirements engineering (RE) is concerned with the identification of the goals to be achieved by the envisioned system, the operationalization of such goals into services and constraints, and the assignment of responsibilities for the resulting requirements to agents such as humans, devices, and software. The processes involved in RE include: domain analysis, elicitation, specification, assessment, negotiation, documentation, and evolution. Getting high quality requirements is difficult and critical. Recent surveys have confirmed the growing recognition of RE as an area of utmost importance in software engineering research and practice. The paper presents a brief history of the main concepts and techniques developed to date to support the RE task, with a special focus on modeling as a common denominator to all RE processes. The initial description of a complex safety-critical system is used to illustrate a number of current research trends in RE-specific areas such as goal oriented requirements elaboration, conflict management, and the handling of abnormal agent behaviors. Opportunities for goal based architecture derivation are also discussed together with research directions to let the field move towards more disciplined habits
Keywords :
bibliographies; formal specification; history; safety-critical software; systems analysis; RE processes; RE task; abnormal agent behaviors; complex safety-critical system; conflict management; documentation; domain analysis; goal based architecture derivation; goal oriented requirements elaboration; high quality requirements; history; modeling; operationalization; requirements engineering; research perspective; research trends; responsibility assignment; software engineering research; specification; Accidents; Computer architecture; Costs; Documentation; Error correction; History; Humans; Permission; Software engineering; Software quality;