HOME

TheInfoList



OR:

Software requirements for a system are the description of what the system should do, the service or services that it provides and the constraints on its operation. The IEEE Standard Glossary of Software Engineering Terminology defines a
requirement In product development and process optimization, a requirement is a singular documented physical or functional need that a particular design, product or process aims to satisfy. It is commonly used in a formal sense in engineering design, includ ...
as: # ''A condition or capability needed by a user to solve a problem or achieve an objective.'' # A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document. # A documented representation of a condition or capability as in 1 or 2. The activities related to working with software requirements can broadly be broken down into elicitation, analysis, specification, and management. Note that the wording ''Software requirements'' is additionally used in software
release notes Release notes are documents that are distributed with software products or hardware products, sometimes when the product is still in the development or test state (e.g., a beta release). For products that have already been in use by clients, the r ...
to explain, which depending software packages are required for a certain software to be built/installed/used.


Elicitation

Elicitation is the gathering and discovery of requirements from stakeholders and other sources. A variety of techniques can be used such as
joint application design Joint application design (JAD) is a process used in the life cycle area of the dynamic systems development method (DSDM) to collect business requirements while developing new information systems for a company. "The JAD process also includes appro ...
(JAD) sessions, interviews, document analysis, focus groups, etc. Elicitation is the first step of requirements development.


Analysis

Analysis is the logical breakdown that proceeds from elicitation. Analysis involves reaching a richer and more precise understanding of each requirement and representing sets of requirements in multiple, complementary ways. ''Requirements Triage'' or prioritization of requirements is another activity which often follows analysis. This relates to Agile software development in planning phase, e.g. by
Planning poker Planning poker, also called Scrum poker, is a consensus-based, gamified technique for estimating, mostly used for timeboxing in '' Agile principles''. In planning poker, members of the group make estimates by playing numbered cards face-down ...
, however it might not be the same depending on the context and nature of project and requirements or product/service that is getting build.


Specification

Specification involves representing and storing the collected requirements knowledge in a persistent and well-organized fashion that facilitates effective communication and change management. Use cases, user stories, functional requirements, and visual analysis models are popular choices for requirements specification.


Validation

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.


Management

Requirements change during projects and there are often many of them. Management of this change becomes paramount to ensuring that the correct software is built for the stakeholders.


Tool support for Requirements Engineering


Tools for Requirements Elicitation, Analysis and Validation

Taking into account that these activities may involve some artifacts such as observation reports ( user
observation Observation is the active acquisition of information from a primary source. In living beings, observation employs the senses. In science, observation can also involve the perception and recording of data via the use of scientific instruments. The ...
),
questionnaire A questionnaire is a research Research is "creativity, creative and systematic work undertaken to increase the stock of knowledge". It involves the collection, organization and analysis of evidence to increase understanding of a topic, ...
s (
interview An interview is a structured conversation where one participant asks questions, and the other provides answers.Merriam Webster DictionaryInterview Dictionary definition, Retrieved February 16, 2016 In common parlance, the word "interview" ...
s, surveys and polls),
use case In software and systems engineering, the phrase use case is a polyseme with two senses: # A usage scenario for a piece of software; often used in the plural to suggest situations where a piece of software may be useful. # A potential scenario ...
s,
user stories In software development and product management, a user story is an informal, natural language description of features of a software system. They are written from the perspective of an end user In product development, an end user (sometimes e ...
; activities such as requirement
workshops Beginning with the Industrial Revolution era, a workshop may be a room, rooms or building which provides both the area and tools (or machinery) that may be required for the manufacture or repair of manufactured goods. Workshops were the onl ...
(
charrette A charrette (American pronunciation: ), often Anglicized to charette or charet and sometimes called a design charrette, is an intense period of design or planning activity. The word ''charrette'' may refer to any collaborative process by which ...
s),
brainstorming Brainstorming is a group creativity technique by which efforts are made to find a conclusion for a specific problem by gathering a list of ideas spontaneously contributed by its members. In other words, brainstorming is a situation where a grou ...
,
mind mapping A mind map is a diagram used to visually organize information into a hierarchy, showing relationships among pieces of the whole. It is often created around a single concept, drawn as an image in the center of a blank page, to which associated r ...
,
role-playing Role-playing or roleplaying is the changing of one's behaviour to assume a role, either unconsciously to fill a social role, or consciously to act out an adopted role. While the ''Oxford English Dictionary'' offers a definition of role-playing a ...
; and even,
prototyping A prototype is an early sample, model, or release of a product built to test a concept or process. It is a term used in a variety of contexts, including semantics, design, electronics, and software programming. A prototype is generally used to ...
; software products providing some or all of these capabilities can be used to help achieve these tasks. There is at least one author who advocates, explicitly, for mind mapping tools such as
FreeMind FreeMind is a free mind mapping application written in Java, which is further developed by the fork Freeplane until today (2021). FreeMind itself was last updated in 2014. FreeMind is licensed under the GNU General Public License Version 2. It ...
; and, alternatively, for the use of
specification by example Specification by example (SBE) is a collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statemen ...
tools such as
Concordion Concordion is a specification by example framework originally developed by David Peterson, and now maintained by a team of contributors, led by Nigel Charman. Inspired by the Fit Framework, David states the following aims were behind Concordio ...
. Additionally, the ideas and statements resulting from these activities may be gathered and organized with
wiki A wiki ( ) is an online hypertext publication collaboratively edited and managed by its own audience, using a web browser. A typical wiki contains multiple pages for the subjects or scope of the project, and could be either open to the pu ...
s and other
collaboration tool A collaboration tool helps people to collaborate. The purpose of a collaboration tool is to support a group of two or more individuals to accomplish a common goal or objective. Collaboration tools can be either of a non-technological nature suc ...
s such as
Trello Trello is a web-based, kanban-style, list-making application and is developed by Trello Enterprise, a subsidiary of Atlassian. Created in 2011 by Glitch, it was spun out to form the basis of a separate company in New York City in 2014 and sold ...
. The features actually implemented and standards compliance vary from product to product.


Tools for Requirements Specification

A Software requirements specification (SRS) document might be created using general-purpose software like a word processor or one of several specialized tools. Some of these tools can import, edit, export and publish SRS documents. It may help to make SRS documents while following a standardised structure and methodology, such as ISO/IEC/IEEE 29148:2018. Likewise, software may or not use some standard to import or export requirements (such as ReqIF) or not allow these exchanges at all.


Tools for Requirements Document Verification

Tools of this kind verify if there are any errors in a requirements document according to some expected structure or standard.


Tools for Requirements Comparison

Tools of this kind compare two requirement sets according to some expected document structure and standard.


Tools for Requirements Merge and Update

Tools of this kind allow the merging and update of requirement documents.


Tools for Requirements Traceability

Tools of this kind allow to trace requirements to other artifacts such as models and source code (forward traceability) or, to previous ones such as business rules and constraints (backwards traceability).


Tools for Model-Based Software or Systems Requirement Engineering

Model-based systems engineering (MBSE) is the formalised application of modelling to support system requirements, design, analysis, measurement, verification and validation activities beginning in the conceptual design phase and continuing throughout development and later lifecycle phases. It is also possible to take a model-based approach for some stages of the requirements engineering and, a more traditional one, for others. Very many combinations might be possible. The level of formality and complexity depends on the underlying methodology involved (for instance, i* is much more formal than
SysML The Systems Modeling Language (SysML) is a general-purpose modeling language for systems engineering applications. It supports the specification, analysis, design, verification and validation of a broad range of systems and systems-of-systems. S ...
and, even more formal than
UML The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally m ...
)


Tools for general Requirements Engineering

Tools in this category may provide some mix of the capabilities mentioned previously and others such as requirement configuration management and collaboration. The features actually implemented and standards compliance vary from product to product. There are even more capable or general tools that support other stages and activities. They are classified as ALM tools.


See also

*
Requirement In product development and process optimization, a requirement is a singular documented physical or functional need that a particular design, product or process aims to satisfy. It is commonly used in a formal sense in engineering design, includ ...
*
Requirements engineering Requirements engineering (RE) is the process of defining, documenting, and maintaining requirements in the engineering design process. It is a common role in systems engineering and software engineering. The first use of the term ''requiremen ...
* Software requirements specification (SRS) * Comprehensive & Robust Requirements Specification Process *
List of requirements engineering tools Requirements engineering tools are usually software products to ease the RE processes and allow for more systematic and formalized handling of requirements, change management and traceability. The PMI guide ''Requirements Management: A Practical ...
*
Non-functional requirement In systems engineering and requirements engineering, a non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviours. They are contrasted with func ...
*Performance requirements which are covered by
Software performance testing In software quality assurance, performance testing is in general a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, valid ...
* Safety requirements * Security requirements


References


Further reading

* * * *Burek, Paul (2008).
Creating clear project requirements differentiating "what" from "how"
'' Conference Paper. Requirements Management, Business Analysis, Scope Management. *Koopman, Philip (2020)
Embedded Software Requirements
Fall Lectures. *IEEE Xplore Search
"Software Requirements"
{{Software engineering Software engineering