Software requirements

A variety of techniques can be used such as joint application design (JAD) sessions, interviews, document analysis, focus groups, etc.

Specification involves representing and storing the collected requirements knowledge in a persistent and well-organized fashion that facilitates effective communication and change management.

Validation involves techniques to confirm that the correct set of requirements has been specified to build a solution that satisfies the project's business objectives.

Taking into account that these activities may involve some artifacts such as observation reports (user observation), questionnaires (interviews, surveys and polls), use cases, user stories; activities such as requirement workshops (charrettes), brainstorming, mind mapping, role-playing; and even, prototyping;[5] software products providing some or all of these capabilities can be used to help achieve these tasks.

[6] Additionally, the ideas and statements resulting from these activities may be gathered and organized with wikis and other collaboration tools such as Trello.

Model-based systems engineering (MBSE) is the formalised application of modelling to support system requirements, design, analysis, verification and validation activities beginning in the conceptual design phase and continuing throughout development and later lifecycle phases.