Requirements Engineering Basics

Posted on May 7, 2009 | Tagged as: , | 0 comments

The importance of Requirements Engineering (RM) for the succesfull, customer satisfying development of software systems can not be ignored by now. It must be considered as an key discipline of system development and is material for the success of a project.

Definition and tasks

To make a go of a development projekt, it is important to know what the concrete requirements are – and they must be documented in an adequate manner. But what is a requirement exactly?
It is a condition, which is required by an user (person or system) to solve a certain task or problem or to reach a goal.

On of the central aspects are the stakeholders. They are those persons who influence the requirements directly or inderictly and serve as a source for information. Ignoring a stakeholder often leads to wrong or incomplete definitions.

The first step in the process of requirements engineering is to identify the concerns of all stakeholders and possible other sources. There are several techniques to get the necessary informations through interviews, creativity sessions, out of analysing existing processes or by monitoring users and systems.

After gathering all requirements, they must be documented in a structured and adequate manner. A documentation or specification can contain natural language based prose or a more formal notation like UML diagrams.

Documented requirements must be validated and verified to play safe they fit all quality criteria. After all points are accepted by all stakeholders, the specification can be considered as complete and passed on to the system architects and developers.

The process of managing the requirements spins over the complete specification and development process. It enfolds all necessary measures for structuring and preparing the requirements.

The Requirements Engineer

The Requirements Engineer is at the center of events. He is in close contact to all stakeholders and has the possibility and responsibility to learn the ropes of the systems realm. One of his most important tasks is to recognize the needs of all involved parties and prepare and document them for the project. His job can be seen as a kind of interpreter for transforming the stakeholders requirements to a level that fits the architects and developers language.

To master this task, the engineer needs a lot more than just technical and methodical skills: Analytical thinking for getting into unknown topics fast. Empathy to recognize what the stakeholders really want. Communication skills, as gathering requirements and managing them is all about listening and asking the right questins at the right time. Solving conflicts within stakeholders and other involved parites. Beeing an advocat for the requirements and represent them to architects and the management board.

Classification of requirements

Basically, there are three different types of requirements:

  1. Functional requirements define the functionality the system must provide to its users or external systems. Typically, they are subdivided into functional, beahvioral and structural requirments.
  2. Quality requirements determine quality based criteria. They influence the shape of the system and usually have some impact on the functional points and reference performance, availability, scalability, portability, reliability and usability issues. They are often described as non-functional requirements.
  3. Framework requirements can not be influenced by the projects participants. They apply to neighborhood systems or the process as a whole. Compared to functional and quality requirements, they will not be implemented but constrain the development and architectural decisions.

There are also more classifications based on attributes, priorisation or the level of detail.

Embedded engineering and management

Over the entire term of a development process, the requirements specification is the basis for different tasks:

No Comments to “Requirements Engineering Basics”

Comments are closed

agile brand development interaction design leadership mobile persuasion product management requirements engineering search seo service design system design testing user experience user story