Requirements Validation

The primary goal of systems engineering is to develop a solution that meets the needs and requirements of stakeholders. Validation is the process by which engineers ensure that the system will meet these needs and requirements. - sebokwiki

SEEK Topics

  • Requirements validation

    1. Reviews and inspections (a) E

    2. Prototyping to validate requirements (k) E

    3. Acceptance test design (c) E

    4. Validating product quality attributes (c) E

    5. Requirements interaction analysis (e.g., feature interaction) (k) E

    6. Formal requirements analysis D

k = knowledge, remembering previously learned material, c = comprehension, understanding information, a = application, using learned material

E = essential, D = desirable / time-permitting

Requirements validation

Validation is used to ensure that one is working the right problem, whereas verification is used to ensure that one has solved the problem right (Martin 1997).

From 29148 6.3.3.2 2)

"Requirements validation ensures that stakeholder requirements have been correctly transformed into system requirements. Various techniques may be used, including stakeholder reviews, prototyping, modelling and simulation, conceptual modelling, and formal modelling. The appropriate technique may vary based on the characteristics of the stakeholders, so multiple techniques may need to be employed to ensure accounting for all stakeholders. Reviews are discussed in subclause 6.2.3.3 of this International Standard under task 4." (and below on this page)

From SWEBOKv3

The requirements documents may be subject to validation and verification procedures. The requirements may be validated to ensure that the software engineer has understood the requirements; it is also important to verify that a requirements document conforms to company standards and that it is understandable, consistent, and complete.

Different stakeholders, including representatives of the customer and developer, should review the document(s).

It is normal to explicitly schedule one or more points in the requirements process where the requirements are validated. The aim is to pick up any problems before resources are committed to addressing the requirements. Requirements validation is concerned with the process of examining the requirements document to ensure that it defines the right software (that is, the software that the users expect).

Reviews and inspections

From SWEBOK v3

Perhaps the most common means of validation is by inspection or reviews of the requirements document(s). A group of reviewers is assigned a brief to look for errors, mistaken assumptions, lack of clarity, and deviation from standard practice. The composition of the group that conducts the review is important (at least one representative of the customer should be included for a customer-driven project, for example), and it may help to provide guidance on what to look for in the form of checklists.

Reviews may be constituted on completion of the system definition document, the system specification document, the software requirements specification document, the baseline specification for a new release, or at any other step in the process.

15288 6.4.3.3 c) 3)

"Feed back the analyzed requirements to applicable stakeholders for review". "Feedback helps ensure that the specified system requirements have been adequately captured and expressed. Confirmation is made that they are a necessary and sufficient response to stakeholder requirements and the Validation Process applied for the specific requirements."

"NOTE Explain and obtain agreement to the proposals to resolve conflicting, impractical and unrealisable stakeholder requirements." Get sign off.

15288 6.4.11

This is the description of the Validation Process mentioned above. It also describes the validation of the system / software that is done after design and implementation, which is what you will do in the Software Testing course. This validation is done based on the requirements so you want to keep that in mind when you write requirements.

29148 6.2.3.3 4) Establish with stakeholders that their requirements are expressed correctly.

NOTE This includes confirming that stakeholder requirements are comprehensible to originators and that the resolution of conflict in the requirements has not corrupted or compromised stakeholder intentions.

How to Conduct a Requirements Review bridging-the-gap

Prototyping to validate requirements

  • Read SWEBOK Chapter 1 Section 6.2

  • Read "Prototyping requirements" section in Software Requirements 3rd Edition Chapter 17: Validating the requirements

In this approach to validation, an executable model of the system is demonstrated to the customer and end users to validate, and ensure if it meets their needs.

Prototyping is usually used when the requirements aren’t clear. So, we make a quick design of the system to validate the requirements. If it fails, we then refine it, and check again, until it meets the customer needs.

This definitely will decrease the cost as a result of having a clear, understandable, consistent requirements.

https://medium.com/omarelgabrys-blog/requirements-engineering-requirements-validation-part-6-29778d7bde24

Acceptance test design

  • Read SWEBOK Chapter 1 Sections 6.3 & 6.4

  • Read "Validating requirements with acceptance criteria" section in Software Requirements 3rd Edition Chapter 17: Validating the requirements

  • Notice this is acceptance test design. You cannot actually do any acceptance tests at this point. By designing acceptance tests you can determine the quality of the requirement because requirements that cannot be validated are really just “wishes.”

Validating product quality attributes

Requirements interaction analysis

Model Validation

  • Read SWEBOK Ch. 9

  • Model definitions

    • algorithm or calculation combining one or more base or derived measures with associated decision criteria (SE VOCAB)

    • Conceptual / mathematical / numerical description of a system

  • Examples

    • a detailed flowchart, such as with Raptor

    • data flow diagrams

    • class diagrams

    • ERD diagrams

  • Concepts of Model Verification and Validation Los Alamos National Laboratory

Software Testing Tools

The word "validation" is also used for a different stage of the software development process that takes place after design and construction (also known as "testing").

If you want to learn about software validation and prepare for the Design and Testing classes, I suggest you learn a software testing tool, like JUnit.

JUnit Tutorial tutorialspoint

Key Resources

SWEBOKv3 Chapter 1 Section 6 1-11 and 1-12

Means of validation: requirements reviews, prototyping, model validation, acceptance tests

Other Resources

sebokwiki

System Validation

Validation (glossary) - part of this definition is that stakeholder requirements have been fulfilled

System Verification

Verification (glossary) - part of this definition is that system requirements have been fulfilled

Four fundamental methods of requirement verification

Example Plan