User:Faberwm/List of requirements engineering tools

Requirements engineering tools (RE tools) are usually software products to ease the Requirements engineering processes. Due to the complex nature of Requirements engineering, involving multiple stakeholders taking part in documentation, elicitation, validation and managing the requirements of a system, there has been a need for creating and establishing RE tools. Moreover, RE tools are changing rapidly.

According to the de Gea et al. who performed a survey on Requirements engineering tool capabilities reported that the majority of participants stated that the tools they used had their first release in the last decade but these tools seems to be very updated. (Fig.1) The way we manage requirements is changing as a result of willingness for adaptivity, learner and agile development, global collaboration and enhanced software and system ecosystems. The main purposes of RE tools are: facilitating efficiency and consistency in requirements management.

RE tools are unique, well maintained by their suppliers, and target specific environments, niche markets, development workflows, or usage scenarious. However, according to the PMI guide Requirements Management: A Practical Guide recommends that a requirements tool should be identified at the beginning of the project, as (requirements) traceability can get complex and that switching tool mid-term could present a challenge.

Capabilities classification
According to ISO/IEC TR 24766:2009, RE tools can be classified into eight district capabilities categories depending on their purpose:


 * 1) Requirements elicitation - contains capabilities centered on the tools' assistance for stakeholder identification, the capture and tracing of business/user requirements, functional requirements, and non-functional requirements during elicitation activities.
 * 2) Requirements analysis - contains tools for breaking down high-level needs into their component parts, assessing feasibility, negotiating priorities, spotting disputes, recognizing unclear, lacking, contradictory, or ambiguous requirements, and fixing all of these problems.
 * 3) Requirements specification - includes features that are intended at defining the requirements that a software or system must meet, in a consistent, easily available, and reviewable manner, in order to accomplish this goal.
 * 4) Requirements modelling - covers features that are centered on applying certain methodologies to create meaningful and verifiable requirements models.
 * 5) Requirements verification and validation (V&V) - contains tools for supporting the numerous testing and evaluation techniques needed to confirm and validate the requirements.
 * 6) Requirements management - investigates the tools' capacity to enable the maintenance of requirements and the monitoring of changes, thereby guaranteeing that the requirements appropriately reflect the product.
 * 7) Requirements traceability - comprises tools for tracking requirement changes, establishing linkages between related requirements, and documenting the life of a need.
 * 8) Other capabilities - features relating to the tool's integration into the system and software development environment fall under this section.

List capabilities
As with most software, the vendor/owner, tool name or scope change over time.

Note that compliance with for example safety standards such as ISO 26262 is supported by few tools directly or indirectly via specialist consulting.

Unlike the major eight tool capabilities (see above), the following categories are introduced for the list, which correlate closer with the product marketing or summarizes capabilities, such as RM including the elicitation, analysis and specification parts, and TM meaning verification & validation capabilities.

Specialties, such as OSLC-support, are not presented in the current list, but exist for some tools.

List capabilities

 * Agile: Agile helps teams deliver value to their clients more quickly and with fewer difficulties through an iterative approach to project management and software development. An agile team produces work in manageable, small-scale increments rather than staking all on a "big bang" launch. Teams have a built-in mechanism for fast adjusting to change since requirements, plans, and results are regularly evaluated. An example of agile tool is the one that supports methodologies, such as Scrum, Kanban or collaborative working.
 * ALM: Application lifecycle management: supports the coordination of group of individuals, equipment, and procedures that manage the design, development, testing, maintenance, decommissioning, and retirement of a software program. ALM enhances product quality, maximizes productivity, and lessens the management and maintenance burden for associated goods and services by unifying and arranging the parts of an application's lifetime. The tool offers a complete set of capabilities that can be extended.
 * CM: Configuration management (CM): The practice of keeping systems, such as computer hardware and software, in the desired condition. Also, a technique for making sure that systems perform consistently with expectations throughout time is part of the configuration management (CM). The configuration management includes both the software and the hardware of a device.
 * ISM: Issue resolution management: The identification, management, and resolution of project challenges are necessary for the project's success. Throughout the project lifespan, issue management is crucial for preserving the stability and effectiveness of the project. It addresses issues that can prevent a project from succeeding or keep the project team from attaining its objectives. These challenges may include things like disagreements, circumstances that must be looked into, and newly discovered or unexpected duties. The goal of issue management is to recognize and record these problems, then address them by carefully evaluating all pertinent data.
 * PDM: Product data management: A system called product data management (PDM) is used to consolidate procedures and data linked to products. PDM software is used by engineers to handle change requests, create Bills of Materials (BOMs), and more. PDM software reduces time spent on low-value tasks, increases product development agility, and fosters collaboration, all of which help businesses get products to market more quickly. PDM integrates with your design and business technologies to manage data, automate engineering processes, and capture the whole history of your designs.
 * PLM: Product lifecycle management: The process of managing a product as it passes through its several lifetime stages, including development and introduction, growth, maturity/stability, and decline. The production of the good and its marketing are both a part of its handling. When making business decisions, from pricing and advertising to expansion or cost-cutting, the idea of product life cycle might be helpful.
 * PJM: Project management: The utilization of particular information, skills, tools, and procedures in project management is done in order to provide people with something of value. Projects include things like building a building, providing relief following a natural disaster, expanding sales into a new geographic market, and developing software for better company processes.
 * RM: Requirements management: To ensure that the objectives of product development are successfully attained, requirements management is used. To assure that engineering teams always have authorized and up-to-date requirements, a collection of procedures for recording, assessing, prioritizing, and agreeing on requirements has been developed. By monitoring changes to requirements and promoting communication with stakeholders from the beginning of a project through the entire lifecycle, requirements management offers a means of preventing errors. This criteria includes design, specification.
 * TM: Test management: The process of managing testing activities in order to guarantee thorough and advanced testing of the software application is known as test management. To produce a high-quality software program, the method entails planning, managing, assuring traceability, and ensuring visibility of the testing process. It makes sure the software testing procedure goes as planned. This criteria also includes Quality Assurance (QA).
 * VCS: Version control system: The process of monitoring and controlling software code changes. Software technologies called version control systems assist software development teams in tracking changes to source code over time. Version control solutions aid software teams in working more quickly and intelligently as development environments have advanced.
 * VM_MBSE: Visual/UI/UX modeling or MBSE (Model-based systems engineering): A method that, as opposed to document-centric systems engineering, focuses on developing and utilizing digital system and engineering domain models as the key channel for the interchange of information, feedback, and needs. It entails the complete procedure of capturing, communicating, and ensuring that all digital representations of a system that we use are coordinated and maintained over the course of the system's full lifecycle.

Excluded capabilities
Other capabilities that are not part of the list of functionalities are:
 * CI/CD
 * Process management (Process design, etc.)
 * QM: Quality management
 * Risk management
 * Release/Patch management
 * Safety or Security
 * Variants management

Choosing the right tool
It can be difficult for large software and systems engineering companies to select the right requirements engineering tool. This is because there is usually not one tool that is suitable for all the departments or projects. Therefore, the process of selecting the right (set of) tools has become an intricate and time-consuming process. However, over the years several approaches have been developed to help companies or individuals select the right commercial off-the-shelf (COTS) RE tools. Some of these tools are listed below.


 * VOLERE: The VOLERE method consists of pre-defined checklists that ask the right questions at the right time . An example of such a question would be "how do you measure this requirement?". This is a low-level approach of finding the right tool.
 * PORE (Procurement-Oriented Requirements Engineering): The PORE method is a high level method can help when someone is acquiring requirements while selecting the right tool . It uses among other things feature analysis techniques, MCDM (Multi-Criteria Decision Making) techniques, argumentation techniques, requirements acquisition techniques, and requirements engineering methods. PORE consists of four steps :
 * Acquire information from the stakeholders;
 * Analyze the acquired information;
 * Make decisions on the compliance between the acquired requirements and the product.;
 * Select one (or more) COTS software tool.
 * CAP (COTS Acquisition Process): The CAP consists of three components: the CAP Initialization Component (CAP-IC), the CAP Execution Component (CAP-EC), and the CAP Reuse Component (CAP-RC) . The former, CAP-IC, can be used to select the right RE tool. This component consist of three steps :
 * Identify the criteria that will be used to compare the possible COTS tools;
 * Estimate how much effort is needed to actually apply all evaluation criteria to all the possible COTS software candidates;
 * Set up a measurement plan according to which all evaluation activities will be conducted.
 * OTSO (Off-The-Shelf-Option): The OTSO method consists of searching, evaluating, and selecting reusable software. It provides specific techniques that help define criteria, which are gradually defined throughout the selection process.

Jira
Main article: Jira (software)

Jira is a package of agile work management tools that enables collaboration amongst all teams from concept to customer, giving the freedom to work with others to produce your best work. Jira provides a variety of tools and deployment choices that are designed specifically for software, IT, business, operations teams, and other groups. It is developed and distributed by Atlassian. The Jira family consists of: Jira Software (supports Scrum, Kanban, DevOps, and tracking bugs ), Jira Service Management (assisting in enabling high-dynamic teams ), Jira Workflow Management (a series of states and changes that an issue experiences during its existence ), Jira Align (formerly known as Atlassian AgileCraft, used for expanding agile to the enterprise ). However, Jira has some limitation when used in developing a large-scale software product. Firstly, the process of editing certain fields within a Jira issue cannot be managed by Jira automatically. Any user who has access to modify that JIRA issue may edit it, on the occasion that a field is present on the entry screen. Secondly, great tools are provided by JIRA for "current" status, but Jira does not support the visualization of historic data. Lastly, JIRA's present capabilities do not allow for navigating between numerous graphs to reach particular workload data.

IBM DOORS Next
Main article: IBM DOORS Next

IBM Engineering Requirements Management DOORS Next offers solutions for collaboration and communication between teams and stakeholders in order to boost productivity and quality. It gives the ability to keep track of, analyze, and manage requirements changes while adhering to rules and standards. Deployment can be done in different ways: on-premises and in the cloud. The tool manages traceability from requirements to testing, including engineering artifacts and software. Using Watson AI and the Requirements Quality Assistant add-on, it facilitates the writing of better requirements more quickly. The management of requirements across all engineering domains, including systems engineering, agile, lean, SAFe, continuous engineering, and DevOps, further propels software and systems engineering. Employees using IBM DOORS Next at their workplace report for some limitations and missing functions. For example, a sorting feature is missing, and search capabilities should be improved. Additionally, bugs with user interface were reported, which creates problems with UI/UX. Also, use case modelling function integrated in the tool does not support automatic application of use case diagram rules. Moreover, some functionalities of exporting documents are missing. Finally, the tool does not support offline work process.

Requirements engineering tools list
The following table shows an extensive list of available Requirements Engineering Tools. The capabilities of the tools match with the description mentioned above.

Future for requirements engineering tools
Main article: NLP for Requirements Engineering

The world of RE tools is still developing. One promising development is the progress in the field of natural language processing for requirements engineering (NLP4RE). NLP4RE is an area of development that seeks to apply natural language processing (NLP) techniques and resources to the requirements engineering process. With the help of NLP tools, requirements and user stories could be visualised, detected, or extracted from a text. NLP can also help human analysts to carry out various linguistic analysis tasks on textual requirements documents, such as detecting language issues and identifying key domain concepts. Since the 1980s, researchers have tried to create such tools, but the sophistication of NLP had not reached a point yet where this was possible. Since the end of the 2000s, this changed and since then the development of NLP tools increased rapidly. The research into NLP for RE has also increased, with an annual workshop since 2018 called NLP4RE. In the nearby future, NLP could improve RE tools significantly.

Useful reading materials

 * Winning the Hidden Battle: Requirements Tool Selection and Adoption
 * Evaluation of Open Source Tools for Requirements Management
 * A case study of requirements management: Toward transparency in requirements management tools
 * Modeling requirements with SysML (IREB, 2015)
 * Is requirements engineering still needed in agile development approaches? (IREB, 2015)
 * DOORS: A Tool to Manage Requirements
 * Risto Salo et al. Requirements management in GitHub with a lean approach (2015)