What is the definition of RE?
Our definition runs: Requirements engineering is the systematic and methodologically sound approach to requirements analysis and management. The IEEE on the other hand says: Requirements Engineering (RE) is the branch of systems engineering concerned with managing desired properties and constraints of software-intensive systems and with goals to be achieved in the environment. It is concerned with these aspects from the problem analysis stage to the implementation and maintenance stages of a system. Additional variety is added because of differences in issues that arise in different domains, ranging from public administration software to workflow systems, groupware and embedded systems and control software.
Why is RE necessary?
Requirements engineering is required to define the requirements of a product, process or the people involved in a process.
Aside from these rather technical aspects, there is another, a social goal: when all activities to do with RE have been completed, the stakeholders and the implementers should have come to an accord regarding the requirements. Requirements engineering comprises the elicitation, the phrasing, the validation and the management of requirements and has an extremely high impact on the quality of the system to be built.
The deliverables produced by requirements engineering – the specifications – contain the directives the implementer must adhere to when realizing the system, since they denote which features the finished system must provide.
When do I use RE?
On a basic level, RE starts when the first person begins thinking about what a future system should look like. The larger the system to be developed or the more complex the changes to an existing system are, the higher the requirements concerning the requirements engineering process and the documentation of results must be. In such cases, internal or external analysts will gather the requirements jointly with those affected by the system (usually called stakeholders).
What could happen, if I don’t use RE?
If RE is neglected, any of the following may happen:
- The system might not be accepted by the users, because nobody asked them for their opinions
- The system is implemented erroneously, because the developers had to work based on presumptions
- The project duration is increased manifold, because the coordination between departments is nearly impossible due to missing specifications
- The project fails entirely, because the system cannot be implemented as fast as required, because of missing or defective requirements
Who usually employs RE?
Requirements engineering is used in every system development process. What varies, is the degree of stringency with which the RE process is implemented. If only small changes need to be discussed between two internals, a lightweight process will suffice. If the analysis of a critical security system is required, the RE process must be stringently defined, because more documentation and coordination will be necessary.
What does RE cost, what are the advantages?
If – in order to make sure the requirements are unambiguous, consistent, comprehensive and testable – the RE process is carried through stringently, the costs will rise for the early phases of system development.
Which formation must I have undergone to be able to employ RE?
In order to utilize RE, you ought to be able to describe technical details unambiguously, comprehensively and in an understandable fashion. Another important facet is good social skills in order to be able to elicit and phrase requirements made by others. If you’ve never before detailed the requirements for a system, it’d be best, if you took part in a training of several days’ duration, in order to get to know the key techniques.
- Making changes to the documentation traceable
- Making the dependencies between different information objects traceable
- Improving the communication between contractor and client
- Helping link different kinds of information by fine-tuning the tools in use during a certain project
- Detailing all members of a project and defining the necessary activities (workflow concept)
- Documenting the development progress of information objects
- Making distributed working possible and thus ensuring the actuality of information
- Structuring the specification
Which other terms form a part of this semantic field?
- Requirements engineering
- Requirements documentation
- Requirements management
- RM-tools
Do definitions exist?
Our definition: Requirements management includes all the activities which support the analysis and the further use of the requirements.
Why do I need it?
Requirements management is necessary to gain and retain an overview of all the requirements of a system. Different RM-methods support the analysis process and help ensure the comprehensiveness, consistency, actuality and non-redundancy of requirements in the entire specification document.
When do I make use of RM?
If a RM-process is willingly implemented, it usually starts with the definition of the stakeholders and the definition of the steps these stakeholders must undertake. When the above-mentioned measures are implemented, RM accompanies the project during its entire run-time and even after its culmination, when the goal has become to reuse requirements.
What may happen if I fail to instate RM?
If no RM-process is implemented, usually the grasp on the requirements in their entirety is lost, a current status quo cannot be obtained and coordinating the requirements becomes nearly impossible. If you don’t instate RM, you usually end up with chaos.
Is a tool absolutely necessary?
Especially in order to document the traceability of information objects (concerning changes and dependencies) and to support a workflow-process, it is recommendable to use a RM-tool. These important parts of the RM-process are nearly impossible to implement without the support of a tool.
What does a RM-tool cost, what are the advantages?
RM-tools are available in a variety of pricings, roaming from “nearly free” to “not all that cheap”. Furthermore, the rollout of the tool will generate further costs. The more complex a tool is, the higher the amount of time the users will need before they are comfortable working with it. The advantage of using a tool, is the possibility it offers to institute a tool-supported RM-process, thusly reducing project duration and overall costs.
Once your development has reached a certain size, complexity or criticality, the use a tool becomes inevitable.
Which formation must I have undergone to use a RM-tool?
A training which helps users work with the tool can generally be recommended for most RM-tools. Most of the tools have some kind of intuitive interface, but some are very complex and most users only understand RM-basics.
When is RM typically used?
When the requirements of a system are either phrased by a multitude of users or must be consolidated across a large number of the same
- Stakeholders are working at different locations
- When there’s a lot of communication between the contractor and the client
- When the specification contains requirements for several releases
- When the specification details requirements for several product lines
- When the requirements are subject to a high rate of change
- When the reuse of requirements is mandatory
Which formation must I have undergone to use RM?
In order to use RM, a minimal level of understanding for RE and project management is indispensable. If RM-tools are in use, it ought to be known what the same are capable of.
From which websites and books can I obtain more information?
IEEE/EIA 12207: Information Technology – Software life cycle processes. First edition, Aug. 1, 1995
Robertson, S.:Robertson, J.; Foreword Weinberg, G.: Mastering the Requirements Process. Reading/MA, Addison Wesley 1999
Rupp, C.: Requirements Engineering und –Management, Hanser Verlag 2009, ISBN 3-446-41841-5

deutsch
english
Newsletter