Requirements engineering

Requirements engineering refers to engineered, systematic gathering, documentation, testing and managing of requirements.

What is a requirement?

A requirement is a statement that identifies a product or processes operational, functional, or design characteristic or constraint, which is unambiguous, testable, or measurable and necessary for product or process acceptability.

ok IEEE.

Code captures the development team's collective understanding on how to build something

Requirements capture the team's understanding of what the system should do.

Why do we need requirements?


We should set up a common terminology before writing requirements. And use that consistently.

A glossary entry includes:

Background information

It's impossible to capture every aspect of the system with requirements. Yet we have to make decisions during the project even when we can't point to a requirement. In these cases it helps if we can answer the question:

Goals vs requirements

What makes a good requirement?

Six C: Clear, conscise, correct, coherent, complete and confirmable

and agreed on.

What are the types of requirements?

Functional requirements

Non-functional requirements

Architecturally significant

Architecturally significant requirements (ASR) are those requirements that have a measurable effect on a computer system's architecture.

Highlight some requirements on which you can start designing and make easy architectural decisions. ASRs should be easily traceable to architectural elements.


How detailed?

Readme driven development


Hypertext is underrated!

Updated 05 February 2023