- Introduction
In recent years requirements analysis and management has been categorized as a fundamental enabler to any software project and is assumed as a capacity or characteristic of the systems to be developed. In other words, it is the process of getting out functional and non-functional requirements that the customer or consumer demands for a specific system that is to be implemented to meet its goals and objectives within certain standards. Another definition of requirements can also be viewed as specification, expectation, parameter or factor which the system should offer or achieve (Maliha et al., 2023).
Requirements engineering focusses primarily on the way the software team (from within the organisation) interacts internally, which includes the relationship with stakeholders regarding the activities of the systems to be built, such as requirements gathering, analysis, and research and development (Krzysztof et al., 2012).
Evident that the requirements are the most tangible product of software engineering activity. Due to the fact that requirements are the core of the final product all the consequent product steps reflect the requirement. Some mistakes done at this stage would have a completely overwhelming impact on the remaining processes of the project (Mohammad et al., 2010) In this paper, researchers focus on important principles in requirements management and analysis to support software development. We summarize the research review's objectives around four key points (Sujatha et al., 2017):
- Achieving accurate compatibility with user needs: It seeks to make sure that a developed software has all the required customer needs that the users and other stakeholders want, which are managed properly.
- Reducing errors and costs: Effective requirements analyzation in the initial phases increases the probability of error occurrence in subsequent development phases thereby minimizing the cost and time taken to rectify those errors.
- Dealing with changes: Creating a structure for dealing with alterations to requirements that may be perceived at some point in the software development life cycle and avoiding a situation where these changes compromise the quality of the end product.
- Enhancing the quality of the final product: With proper control of the specifications and requirements introduced in the subject’s framework, the latter helps enhance the quality of the created software and its compliance with recognized standards. Figure 1 describes the requirements analysis and documentation stages in system development, showing the different stages involved in the requirements phase, from feasibility study to requirements verification and documentation (Anthony,2010).
Figure (1) Conceptual of Requirements engineering
In this paper, we review key principles to help in managing and analyzing requirements for effective software development. The structure of the manuscript is organized as follows: In the first part, therefore, we present a brief review of the literature on requirements management and its place in the field of software engineering. The second section looks at techniques and instruments involved in elicitation, verification, and documentation of requirements. The third section of the paper focuses on the Issues and approaches towards handling evolving requirements in project life cycle. Lastly, the last section presents general recommendations on possible further research and development in the area of requirements management. This manuscript seeks to present a synthesis of current and developing practices in order to improve portfolio management and operational performance of software development projects.
- Related Works
The requirements engineering, as defined in the IEEE glossary is the concept of how well a system or component or process is capable of meeting defined requirements and the customer or user needs or expectations (M. R. 2008). Requirements engineering relates to all those aspects of a product or service that influences its capacity to meet needs- stated or inherent. While in the former one, the software quality is defined by conformance to requirements, this is a manufacturer’s point of view and by fitness for use, which is a user’s point of view. Therefore, the definitions of the software product’s quality also share a significant correlation with the requirements. In other words, it becomes reasonable to take a position that perhaps what is considered as requirements realization in the real sense is none other than software quality (A. S. 2007).
In this section, we will look at a variety of articles that cover the principles of requirements management and analysis to support software engineering development.
Zagajsek and et al (B. Zagajsek et al., 2007).suggest a requirements management process Where it shows Major cause for any project failure is related to inadequate requirements definition and the use of wrong approach/ methodology towards requirements. That is also the main reason for cost and schedule overruns which in turn influences conflict with the clients. The success of a project is usually determined by 5 common performance factors they are time, cost, performance, and user convenience and last but not the least organizational influence. When proper communication of the project starts as well as distributing roles and responsibilities, it is necessary to start building the requirements management team to continue with the requirements elicitation process and develop the requirements elicitation process. Some of the members required for forming a requirements management team are System Architects for designing the system architecture, end users, business domain specialists, Technology consultants well aware of new innovative technologies, line management and developers.
Chu and et al (C-W Lu et al., 2007) presented a new strategy to handle with the uncertainties in the requirements documentation and described a framework known as Model based Object oriented Requirement Engineering (MORE). The useful domain knowledge shall be captured by employing MoReq phases for Requirement Engineering Quality in Modeling &Object-Oriented technologies.
Another study Aziz and et al (Ruhaya et al., 2021) Thus, requirements relationships knowledge that describes the information of the relationships between requirements is defined. concern stems on how requirements are connected to other requirements and other artefacts throughout the SDP. Indeed, it is thought that for this purpose, that is, in the process of categorizing and structuring of the requirements documentation and specification, requirements relationships knowledge may be useful. Since requirements relationships knowledge has the direct effects on the requirements quality and requirements quality has the direct significant on this basis it can be stated that the requirements relationships knowledge that affects success is the other factor that has the effect on the requirements quality and hence this factor influences the success of this project.
Another study (Othman et al., 2021) provides a comprehensive review that shall outline the difficulties experienced in Requirements Engineering (RE) when in Agile Software Development (ASD) context. The authors present a structured approach to the ways of making the requirements management and elicitation challenging in the context of the agile methodologies, which are based on the use of lightweight and iterative processes. Some of the issues that the research raises include handling of scenarios where requirements are open and may be in the process of being refined and the effective communication between stakeholders, and how the dynamic nature of requirements in agile can be managed with the fast pace of development. The implications of the paper are that significant improvements in collaboration practices and the use of automated requirements engineering tools would offer ways of addressing the challenges identified in the paper.
Mishra and et al (Mishra et al., 2021) determining the nature and extent of effects of Requirements Engineering (RE) practices on software projects’ success from an empirical perspective. In their studies the authors analyse correlations between different practices of RE including requirements elicitation, analysis, specification and validation practices and their influence on overall results of a project. It is an important note for the study that clear RE processes play a large extent of contribution for software projects, such as enhanced communication among the stakeholders, project risks minimized, and the final deliverables achieved in accordance to the intended goals. The authors propose that it could be possible for organisation to apply these practices systematically in order to enhance on project performance and customer satisfaction.
Another study (Li et al., 2022) refers to the trends regarding the automation of the Requirements Engineering (RE) process and examines the respective issues and prospects. The authors recognize that automation, in general, in RE has benefits, such as; increased productivity, reduction of errors, and harmonization of the requirements lifecycle. However, they report on some concerns and issues: Issues like, requirement elicitation based on natural language processing, the problem with tacit knowledge acquisition, and incorporation of tools into the work environment. The study also discusses the current technologies’ inability to capture and adequately analyze the stakeholder needs. This paper provides the following recommendations for future work: the enhancement of extant machine learning for RE, design and development of versatile tools for RE automation and improvement of human-machine interfaces for RE.
Lee and et al (Alrub et al., 2020) focus on enhancing the process of the prioritization of software requirements via machine learning algorithms. Thus, the next crucial component that needs to be addressed is the issue of requirements prioritization since often there are more requirements than is possible to implement the software development project. The authors suggest that, instead of manually claiming priorities and applying such to PubMed records, machine learning algorithms should be introduced in order to enhance and speed up the prioritization step in opposition to previous approaches. The findings show how the integration of machine learning might work for prioritizing the software requirements based on historical data, stakeholders’ preference and project constraints. The results show that the use of the machine learning-based approach minimizes the human bias in decision-making, ensures prioritization of the feature set for the development teams. Therefore, the research establishes that incorporating machine learning in requirements prioritisation paradigm presents advantages within large software development projects especially in environments that are prone to change. It is very important is that requirements changes should be a very critical step in any of the software developing phase. Regarding the requirements changes management this is an open issue in the literature for many decades. Of course, there are some requirements change approaches which has been introduced in literature but none of the seal alone handle with this requirement change. Leveraging on this, Lu and Yuan (G. Lu et al., 2010) have proposed an algorithm for determining whether there is a change in requirement or not. The new proposed algorithm is named LCS-NP++ and this approach produces several variants of the requirement change. Arguing from the accuracy measures, the version of requirements change is selected which is most effective and accurate. First, this technique is not only capable to identify the requirements changes but also can be really effective if someone has to look for the HTML structure.
Another study (Nemat, 2019) discusses ways through which Agile Requirements Engineering (RE) enables incorporation of dynamic stakeholder requirements into a system. The authors draw attention to the fact that that agility is based upon flexibility, and is therefore particularly suitable for contexts with fluctuating stakeholder demands. The paper looks into practices that are applied in agile RE including; the use of the iterative processing, stakeholder interactions and feedback processing that helps the teams to make constant enhancement of the requirements throughout the processing of the project. Thus, the study’s focus on the importance of integrating change as early and as often as possible is used to minimize project risks, as well as enhance the fit between the final product and stakeholders’ requirements. The paper is concluded by explaining that communication, tools and flexibility of a team are critical success factors in managing requirements in fast changing and fast paced development contexts.
Pavanasam and Subramaniam (V. Pavanasam et al., 2010) suggest a model of requirements inspection and explain that both the stages of requirements change management and requirements analysis are quite significant in the process. Each of the requirement engineering techniques involves stages of requirement transformation and system requirement representation, which in this case is verified using JDesigner tool. The authors identify proper weights for the elements under the amalgamation, abstraction, and the clarity aspects in the transformation of the requirements. Subsequently, this data is distributed to system requirements which bring consistency, completeness, correctness factors respectively 0. 5%, 0. 7%, and 0. 6% weights. System requirements are the functional requirements in essence. Finally, the membrane computing model quantifies the system needs as the product of a constant with the abstraction, amalgamation, and clarity factors. It is also important to note that the model requires knowledge of mathematics which any times might be difficult to comes up with.
Aminu and et al (Muhammad et al., 2024) discusses as a systematic review of developments in the automation of various facets of Requirements Engineering (RE). It reviews how automation tools have grown to meet the need to enhance certain RE activities such as elicitation, analysis, validation and management. A close examination of the knowledge will indicate the advantages of the automated system, which includes better efficiency, fewer mistakes by workers, and high quality of requirement documentation. It also discusses issues that organisations face when adopting tools in RE, including tool integration and compatibility with existing processes, coping with intricate demands, and coordinating between the automated tools and RE teams. In the future, introduction of AI and machine learning are expected to enhance automation of RE tools since the paper implies that the efficiency of these tools will be enhanced in the future.
Obaidi and et al (Deters et al., 2024) focuses on the enhancement of quality of requirements in software engineering through the application of quality models that improve the understandability and explainability of systems requirements. The primary purpose of the research is to guarantee that the requirements are properly defined, described, and documented, and the related problem is solved on the example of the software project with the guidance of the main principal. This can result in improved requirements analysis and, as a consequence, in the design of systems that are more capable to address the issue and satisfy stakeholder requirements and project objectives. Thus, the paper focuses on minimizing the ambiguity and increasing stakeholders and development teams’ understanding during the whole software development process applying these quality models. Table 1. Shows the summary for each paper that included in our review is concluded.
Table (1) is a summary of information for the different sources used in this review.
|
Author(s)
|
Study Focus
|
Key Findings
|
|
Zagajsek et al (B. Zagajsek et al., 2007)
|
Requirements Management Process
|
Inadequate requirements definition causes project failures; effective requirements management team is crucial.
|
|
Chu et al (C-W Lu et al., 2007)
|
Handling Uncertainties in Requirements
|
Introduced Model Based Object-Oriented-Requirement Engineering (MORE) to capture domain knowledge in modelling.
|
|
Aziz et al (Ruhaya et al., 2021)
|
Requirements Relationships Knowledge
|
Understanding relationships between requirements can aid in documentation structuring and project success.
|
|
(Othman et al., 2021)
|
Agile Software Development & Requirements Engineering
|
Challenges include managing evolving requirements and improving communication; automated tools could help.
|
|
Mishra et al (Mishra et al., 2021)
|
Empirical Study on RE Practices
|
Clear RE processes enhance project performance and customer satisfaction; systematic application is beneficial.
|
|
(Li et al., 2022)
|
Automation in Requirements Engineering
|
Automation benefits productivity and error reduction but faces challenges like natural language processing.
|
|
Lee et al (Alrub et al., 2020)
|
Prioritization of Requirements using Machine Learning
|
Machine learning can improve prioritization by reducing human bias and adapting to changing project needs.
|
|
Lu & Yuan (G. Lu et al., 2010)
|
Requirements Change Management
|
Proposed LCS-NP++ algorithm to identify and manage requirement changes effectively.
|
|
(Nemat , 2019)
|
Agile Requirements Engineering
|
Agility supports dynamic stakeholder requirements; emphasizes iterative processing and flexibility.
|
|
Pavanasam & Subramaniam (V. Pavanasam et al., 2010)
|
Requirements Inspection Model
|
Developed model using JDesigner for requirements transformation; emphasizes accuracy and clarity.
|
|
Aminu et al (Muhammad et al., 2024)
|
Automation in Various Aspects of RE
|
Automation tools enhance productivity and accuracy; future advancements in AI and machine learning are anticipated.
|
|
Obaidi et al (Deters et al., 2024)
|
Improving Quality of Requirements
|
Focus on quality models to enhance clarity and alignment with business objectives; reduces ambiguity and improves communication.
|
Through analyzing previous works, we conclude that requirements engineering focuses on the capability of the system or component to satisfy a set of requirements or user needs. Meeting these requirements is closely linked with quality in software, as quality is recognized as one of the measures which determine the success of the project. Not being able to define requirements properly results in more costs and customer conflict hence making it crucial to manage requirements well. Some current researches suggest the requirement management methods using some approaches, MORE for instance to tackle issues of uncertainty in documents Besides, the associations between requirements are considered as the key to increase the quality of the requirements. As the requirements are dynamic in agile systems the new challenge arises to manage that, the usage of the automated tool is recommended to provide better performance with less chances of error. Other researchers show its ability to prioritize, plan, and outline changes with high efficiency, which gives increased flexibility in project management and minimizes risks. Conversely, automation in requirements engineering improves efficiency and quality because all methods prone to errors, but it poses the problem of how to integrate the new tools with current tools at the workplace.
- Practices In Requirements Management
Managing software requirements is a delicate process even in the most favorable of settings. Thus, it is quite important to simplify in some cases and enhance the probability of success before applying such approaches. The practices followed in requirements management can be classified as follows (Ali ,2015):
- Requirements Definition: It is important to define all requirements accurately and clearly from the beginning, including functional and non-functional requirements. Requirements should be understandable by all stakeholders such as stakeholders, developers, and designers, and should be well documented to avoid any ambiguity (B. W. Boehm, 1991). Requirements Defined Process in Software Engineering Through Verification and Approval. Figure (2) shows the requirements definition process in software engineering in addition to Verification and Validation
Figure (2) Requirements Defined Process in Software Engineering
- Requirements Analysis and Documentation: Requirements Analysis and Documentation step in software engineering, and it includes the following (Catanio ,2006):
1- Requirements Analysis: This stage concentrates on elaboration, since the requirements gathered during the requirements gathering stage need to be studied in order to meet the needs of all stakeholders or partners and to provide a clear understanding of the requirements.
It also assists in the prioritization process of identifying which requirements are important and need to be met most urgently. There must also be integration and consistency by ensuring that the requirements are integrated and do not overlap as well as ensuring the requirements are in line with the project goals.
2- Requirements Documentation: The documentation stage is executed by producing an exhaustive requirement document after clearly assessing the requirements in a formal document that encompasses each of the requirements in terms of description, objective, standard, and performance expectation (Catanio ,2006).
3- Functional Requirements Specification: In this stage, the team that is charged with the responsibility of developing the product has an understanding of what the system or product is supposed to do given the understanding that the requirements are dynamic and are subjected to change from time to time; therefore, the documents are to be reviewed at certain intervals so that any changes are captured and made available to all parties (Kurtanovi et al., 2017).
The above steps are critical in preventing misconceptions when it comes to the implementation of the constitution. As the technical details are thoroughly reviewed and explained with the help of documents, the risk of miscommunication between the technical team and stakeholders is minimized.
- Requirements Verification and Validation: Verification and validation are some of the key activities in software engineering that aims at improving the quality of the developed system during general system development and during requirement elicitation (Elizabeth et al., 2012).
- Verification of requirements: It is meant to confirm that the system meets the agreed requirements, and to conduct checks to confirm that the developed product meets the required specifications at a particular phase of development.
- Validation of requirements: It intends to guarantee that the system provides satisfaction to users and customers as desired. In other words, it is aimed at guaranteeing that the final system delivers what is expected from it, its goals and objectives being met.
The purpose of these processes is a minimization of mistakes that may occur during production and enhancement of the final result.
- Requirements Management Tools
Requirement management tools are implemented kinds of applications, serving the objective of requirements management. A toolkit can contain at least one tool, and their purpose is to monitor activities that the human brain cannot handle. Below is a list of factors that should be taken into consideration when developing a requirements management tool (Shams et al., 2021). Use of requirements management tools is based on:
- Number of Requirements: For projects with less than 200 requirements, it is possible to use simple tools such as spreadsheet, wiki or simple database. This relates more to background and rationale but to specify it, a lightweight requirements management tool should be used in order to preserve
: the requirements knowledge-base of the organization, historical data from previous projects remains for future reuse. A project that involves 200-2000 requirements is considered as a medium size and such a project requires the use of a commercial tool. tables, databases, or wikis do not meet the versatility and reliability of commercial requirements management tools. Huge extent projects with over 2000 requirements in effect require sound and sturdy commercial requirements management tools to avoid any potential unnecessary project hold up, defects and failures (Shams et al., 2021).
- Dimensions of the project team’s participants: When it comes to measuring the project, most organizations will use the number of people in a software development team. A commercial requirements management tool is not necessary for the project as it has less than 5.
that can be used to provide feedbacks to members in a team and they are co-located. Regular table applications, word process applications, wiki or even index carding is enough for addressing the requirements of the project. A commercial requirements management tool is greatly benefited for larger teams that are spread across different cities or even different countries (Shams et al., 2021).
Such tools are essential for proper product lifecycle management, project and change management, quality control improvement as well as compliance enforcement. Requirements management can be combined with task management to create a one-to-one relationship between the project goals and drills down into the actual labor, which drives efficiency. This is useful in maintaining links between requirements and test cases which will help in testing the application to meet required objectives. Collaboration among the teams- it helps to adapt clear communication and a shared understanding of what is required so as to achieve project goals, making work together fun and motivating. It also serves in risk management by defining tracking and managing requirements to help with scope creep and miscommunication. Thirdly, it offers a defined structure in change management that helps capture, communicate and implement changes which reduce ambiguity avoiding misalignment with stakeholder expectations (M. Cadena-Romero et al., 2019).
Table (2) shows a summary of the best requirements management tools in building and developing software systems.
Table (2) Summary of Top Requirements Management Tools.
|
Tool Name
|
Version
|
Company
|
|
Agosense.fidelia
|
1.8.19
|
agosense GmbH
|
|
Aligned Elements
|
2.5 SP1
|
Aligned AG
|
|
ALM / Quality Center
|
15.0.1
|
Micro Focus
|
|
ALM Octane
|
15.0.40
|
Micro Focus
|
|
CodeBeamer ALM
|
9.5
|
Intland Software GmbH
|
|
Cognition Cockpit
|
9.2
|
Cognition Corporation
|
|
Cradle
|
7.5
|
3SL
|
|
Dimensions RM
|
12.7.1
|
Micro Focus
|
|
DocSheets
|
AI-driven
|
Goda Software
|
|
ENOVIA 3DEXPERIENCE
|
R2020x
|
Dassault Systèmes
|
|
Enterprise Architect
|
15.1
|
Sparx Systems
|
|
Helix RM
|
2019.5.0
|
Perforce
|
|
IBM Doors
|
Latest
|
IBM
|
|
Innoslate
|
4.2.1
|
SPEC Innovations
|
|
Innovator for Business Analysts
|
14.1
|
Innovator
|
|
in-STEP BLUE
|
6.5
|
microTool GmbH
|
|
iRise
|
11.6
|
iRise
|
|
Jama Connect
|
8.47
|
Jama Software
|
|
Kovair ALM Studio
|
9.8
|
Kovair Software, Inc.
|
|
Modern Requirements4DevOps
|
2019 Update 2
|
eDev Technologies
|
|
objectiF RM
|
6.0
|
microTool GmbH
|
|
objectiF RPM
|
5.2
|
microTool GmbH
|
|
OneDesk Product Management
|
January 2020
|
OneDesk Inc
|
|
Polarion Requirements
|
19.3
|
Siemens Industry Software GmbH
|
|
PREEvision
|
9.0.11
|
Vektor Informatik GmbH
|
|
Psoda
|
8.03.1
|
Psoda
|
|
R4J – Requirements Management for JIRA
|
Latest
|
JIRA
|
|
Rally Software
|
Q1 2020
|
Broadcom
|
|
RaQuest
|
4.4
|
SparxSystems Japan Co., Ltd
|
|
ReqEdit
|
2.15
|
REQTEAM GmbH
|
|
ReqSuite RM
|
3.0
|
OSSENO Software GmbH
|
|
ReQtest
|
Latest
|
ReQtest AB
|
|
RequirementONE
|
Latest
|
RequirementOne Inc.
|
|
ReqView
|
2.8.1
|
eccam s.r.o.
|
|
RMsis
|
2.0.5
|
Optimizory Technologies Pvt. Ltd.
|
|
Specification Wizard
|
UML based
|
MeetAdd
|
|
SpiraTeam
|
6.3
|
Inflectra
|
|
Visure Requirements
|
5.2
|
Visure Solutions, Inc.
|
|
Windchill RV&S
|
12.3.0.0
|
PTC
|
|
Yonix
|
Latest
|
Yonix Ltd.
|
Requirements management tools in software engineering improve, manage and allocate critical resources by organizing the management of project resources to be developed and significantly by providing several key benefits. (Rajat et al., 2003):
- Clear Insight on Project Requirements: Due to the fact RM tools provide an in-depth project requirements overview, you know what resources are needed.
- Requirement Prioritization: These tools provide you with the capability to prioritize requirements so that resources are allocated towards tasks which can help complete projects more efficiently.
- Requirements and resource tracking: Real-time requirement status of requirements and resources along with over allocation or underutilization will be immediately visible.
- For forecasting and planning: Through an analysis of past projects, RM tools support in calculating what kind of resources required for future generation.
- Facilitating Collaboration: They ensure the collab across team, by putting in one place all requirements to get clarity on roles and responsibilities so that resources will be utilized appropriately.