Requirements Engineering
   HOME

TheInfoList



OR:

Requirements engineering (RE) is the process of defining, documenting, and maintaining
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 ...
s in the
engineering design process The engineering design process is a common series of steps that engineers use in creating functional products and processes. The process is highly iterative - parts of the process often need to be repeated many times before another can be entere ...
. It is a common role in systems engineering and
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
. The first use of the term ''requirements engineering'' was probably in 1964 in the conference paper "Maintenance, Maintainability, and System Requirements Engineering", but it did not come into general use until the late 1990s with the publication of an
IEEE Computer Society The Institute of Electrical and Electronics Engineers (IEEE) is a 501(c)(3) professional association for electronic engineering and electrical engineering (and associated disciplines) with its corporate office in New York City and its operation ...
tutorial in March 1997 and the establishment of a conference series on requirements engineering that has evolved into the International Requirements Engineering Conference. In the
waterfall model The waterfall model is a breakdown of project activities into linear sequential phases, meaning they are passed down onto each other, where each phase depends on the deliverables of the previous one and corresponds to a specialization of tasks. ...
, requirements engineering is presented as the first phase of the development process. Later development methods, including the
Rational Unified Process The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable proce ...
(RUP) for software, assume that requirements engineering continues through a system's lifetime. Requirement management, which is a sub-function of Systems Engineering practices, is also indexed in the
International Council on Systems Engineering The International Council on Systems Engineering (INCOSE; pronounced in-co-see) is a not-for-profit membership organization and professional society in the field of systems engineering. INCOSE has about 17000 members including individual members, ...
(INCOSE) manuals.


Activities

The activities involved in requirements engineering vary widely, depending on the type of system being developed and the organization's specific practice(s) involved. These may include: # Requirements inception or requirements elicitation – Developers and stakeholders meet; the latter are inquired concerning their needs and wants regarding the software product. #
Requirements analysis In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the ...
and negotiation – Requirements are identified (including new ones if the development is iterative), and conflicts with stakeholders are solved. Both written and graphical tools (the latter commonly used in the design phase, but some find them helpful at this stage, too) are successfully used as aids. Examples of written analysis tools:
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 and
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 ...
. Examples of graphical tools:
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 ...
and LML. #
System modeling Systems modeling or system modeling is the interdisciplinary study of the use of models to conceptualize and construct systems in business and IT development.Lifecycle Modeling Language, whereas others, might use
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 ...
. Note: In many fields, such as software engineering, most modeling activities are classified as design activities and not as requirement engineering activities. #Requirements specification – Requirements are documented in a formal artifact called a Requirements Specification (RS), which will become official only after validation. A RS can contain both written and graphical (models) information if necessary. Example: Software requirements specification (SRS). #Requirements validation – Checking that the documented requirements and models are consistent and meet the stakeholder's needs. Only if the final draft passes the validation process, the RS becomes official. #
Requirements management Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project. A requi ...
– Managing all the activities related to the requirements since inception, supervising as the system is developed, and even until after it is put into use (e. g., changes, extensions, etc.) These are sometimes presented as chronological stages although, in practice, there is considerable interleaving of these activities. Requirements engineering has been shown to clearly contribute to software project successes.


Problems

One limited study in Germany presented possible problems in implementing requirements engineering and asked respondents whether they agreed that they were actual problems. The results were not presented as being generalizable but suggested that the principal perceived problems were incomplete requirements, moving targets, and time boxing, with lesser problems being communications flaws, lack of traceability, terminological problems, and unclear responsibilities.


Criticism

Problem structuring, a key aspect of requirements engineering, has been speculated to reduce design performance. Some research suggests that it is possible if there are deficiencies in the requirements engineering process resulting in a situation where requirements do not exist, software requirements may be created regardless as an
illusion An illusion is a distortion of the senses, which can reveal how the mind normally organizes and interprets sensory stimulation. Although illusions distort the human perception of reality, they are generally shared by most people. Illusions may oc ...
misrepresenting design decisions as requirements


See also

*
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 ...
*
Requirements analysis In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the ...
, requirements engineering focused in software engineering. *
Requirements Engineering Specialist Group The Requirements Engineering Specialist Group (RESG) is a Specialist Group of the British Computer Society. It runs events on all aspects of Requirements. Mission of the RESG The RESG's stated purpose is "to provide a forum for interaction bet ...
(RESG) *
International Requirements Engineering Board The International Requirements Engineering Board (IREB) e.V. was founded in Fürth in Germany in October 2006. IREB e.V. is as a legal entity based in Germany. The IREB is the holder for the international certification scheme ''Certified Professi ...
(IREB) *
International Council on Systems Engineering The International Council on Systems Engineering (INCOSE; pronounced in-co-see) is a not-for-profit membership organization and professional society in the field of systems engineering. INCOSE has about 17000 members including individual members, ...
(INCOSE) *
IEEE 12207 ISO/IEC/IEEE 12207 ''Systems and software engineering – Software life cycle processes'' is an international standard for software lifecycle processes. First introduced in 1995, it aims to be a primary standard that defines all the processes requi ...
"Systems and software engineering – Software life cycle processes" *
TOGAF The Open Group Architecture Framework (TOGAF) is the most used framework for enterprise architecture as of 2020 that provides an approach for designing, planning, implementing, and governing an enterprise information technology architecture. TOG ...
(Chapter 17) * Concept of operations (ConOps) * Operations management *
Software requirements 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 ...
* Software requirements specification * Software Engineering Body of Knowledge (SWEBOK) * Design specification *
Specification (technical standard) A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service. A specification is often a type of technical standard. There are different types of technical or engineering specificati ...
*
Formal specification In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software. They are used to describe a system, to analyze its behavior, and to aid in its design by verif ...
* Software Quality *
Quality Management Quality management ensures that an organization, product or service consistently functions well. It has four main components: quality planning, quality assurance, quality control and quality improvement. Quality management is focused not ...
* Scope Management


References


External links

* ("This standard replaces IEEE 830–1998, IEEE 1233–1998, IEEE 1362-1998 - http://standards.ieee.org/findstds/standard/29148-2011.html")
Systems Engineering Body of Knowledge

Requirements Engineering Management Handbook
by FAA
International Requirements Engineering Board (IREB)IBM Rational Resource Library
by
IEEE Spectrum ''IEEE Spectrum'' is a magazine edited by the Institute of Electrical and Electronics Engineers. The first issue of ''IEEE Spectrum'' was published in January 1964 as a successor to ''Electrical Engineering''. The magazine contains peer-reviewe ...
{{Authority control Systems engineering Software requirements IEEE standards ISO/IEC standards