Requirements Engineering – what is it?

The activities of requirements engineering typically include following:

  1. Requirements elicitation – Discovering needs and wants regarding the software product.
  2. Requirements analysis– examining, interpreting and verifying requirements, includes checking for defects, tracing requirements to business objectives.  This can include diagramming.
  3. System Modeling – is a form of requirements analysis, it means describing a system with diagrams such as Use Case Diagrams, Entity Relationship Models, Data flow diagrams, Class diagrams, wire frames and other user experience mock ups.  The role of modelling is to describe the system so that a common and consistent understanding is reached by all those involved in using, testing and creating it.
  4. Requirements Specification – Requirements are usually documented using words, the final document is sometimes referred to as a software requirements specification.
  5. Requirements Validation – Checking that the documented requirements and models are consistent and meet the stakeholder’s needs.
  6. Requirements Management –  Recording, sharing, tracking and auditing or requirements documentation.
  7. Requirements Testing –  Verification of the quality of requirements using manual or automated tools, includes validation of correctness.
  8. Requirements Sizing –  This generally refers to the functional sizing of requirements.

Requirements Engineering – What can be automated and what (currently) cannot.

With the exception of Requirements Elicitation, 7 out of 8 of the above activities can be partially automated.  This can help to accelerate and aid the work of the requirements engineer substantially.