Requirements engineering (RE) is concerned with the elicitation of the
goals to be achieved by the system envisioned, the operationalization
of such goals into specifications of services and constraints, and the
assignment of responsibilities for the resulting requirements to agents
such as humans, devices, and software. Getting high-quality
requirements is difficult and critical. Recent surveys have confirmed
the growing recognition of RE as an area of primary concern in software
engineering research and practice.
The talk will first briefly introduce RE by discussing its main
motivations, objectives, activities, and challenges. The role of rich
models as a common interface to all RE processes will be emphasized.
We will then review various techniques available to date for system
modeling, from semi-formal to formal, with the aim of showing their
relative strengths and weaknesses when applied during the RE stage of
the software lifecycle, notably, their limited scope, their lack of
abstraction, their poor separation of concerns, and their lack of
methodological guidance.
The talk will then discuss a number of recent efforts to overcome such
problems through RE-specific techniques for goal-oriented elaboration
of requirements, multiparadigm specification, the handling of
non-functional requirements, the management of conflicting
requirements, and the handling of abnormal agent behaviors.
|