In the design process of engineering, maintaining, documenting and defining requirements is referred to as Requirements engineering(RE). This is also referred to as a familiar role in software engineering and systems engineering.
In 1964, the term requirements engineering or RE was used for the first time in “Maintenance, Maintainability, and System Requirements Engineering", which is a conference paper”.Progression of software is based on the production of software products of high quality. Requirements engineering is a significant phase in the development of software which is actively responsible for the failure or progress of the software product. According to Phillip A. Laplante, "Requirements Engineering is a sub-discipline of systems engineering and software engineering that is concerned with determining the goals, functions, and constraints of hardware and software systems”.Although Features of requirement engineering in multiple
still plays a vital role in the process of development. The central aspect of this project is to substitute manual paper focused on the requirement engineering process to automate the system, which supports the team of developers and customer specifications in collecting requirements, documentation, elicitation and change request etc. This project is an "IPR" called "Interim Progress Report" The research includes an initial or preliminary interim evaluation search. This is halfway through the completion of the project. The thesis depends on this brief discussion of the topic. The future work of RE will be focused on this report which will discuss the impact, strengths, weaknesses, feasibility of RE in software engineering.
Impact of requirements engineering on software engineering:
The "Software Development Life Cycle", or SDLC, is the most significant part of software engineering. Developers can do the risk analysis of the software product, and RE or requirement engineering leaves an intense effect on SDLC. This state where the incomplete, imprecise requirements and wishes of the potential software users are converted into the precise, complete and formal definition. This definition connects the developers to the software users. Therefore the development of constructive software depends on the significance of requirements engineering. Also, RE reduces the prior stages of errors of software development as it was evident that RE's immense effect in each stage of SDLC is considered a crucial part of software development.RE contains the following activities that are generally main:
Requirements elicitation: It provides us with several ways to acquire knowledge about the domain of the project and the need for the project. The same type of software that already exists, manuals, standards and the stakeholders, business manual, and customers is included in the information acquired from the several sources of domain. This process is for requirement elicitation, which includes brainstorming, Delphi technique, task analysis, interviews, etc. The production of formal models does not depend on the elicitation. It helps the analyst expand his collection of knowledge, which supports giving the input which that will give to the next stage.
Requirements specification: Production of formal requirement models of software depends on this activity. The purpose of producing these models is to specify the fundamental requirements, including the functional and the non-functional requirements and the constraints completely. While the specification is being collected, even more information about the issue can be required, and it will again point to the elicitation process. In this phase, the produced models are used for creating data flow diagrams, ER diagrams, data dictionaries, function decomposition diagrams etc.
Requirements verification and validation:
Verification: This is the part where the set of tasks ensures that the software that is being developed is appropriately able to implement a particular function.The main functionalities of this process:
a)The requirements should not collide with each other. All the requirements should be compatible with each other.
b) that should complete all the requirements flawlessly.
c)Practically, the requirements should be possible to achieve(Finkelstein et al.2020).
Requirements management: Requirement management :
This process is to handle the changes in the requirements while the requirement engineering process and system development go on. As the business always tries to modify and understand the developed system better, new requirements generate. The majority of requirements from a different point of view changes where the process is being developed. Also, during the software development, the technical environment of the system and the business modifies (Rasnacis et al.2017).
Application of requirements engineering in different software models:
The software process is being represented in a simplified way through software process models. Every model refers to a process that comes from a particular outlook. These models are part of SDLC or software development life cycle methodologies (Abbas et al.2019).
Waterfall model: The waterfall is an iterative process. In this model, basic software process activities are represented as a different phase that is linearly arranged. There are several stages of the waterfall model. One of them in requirement analysis (Demirel et al.2018).
Requirement analysis in the Waterfall model: In this part, the business analyst collects the requirements and analyses the information. In this stage, requirements are being documented, and all the classification are being sought. When the team go through the requirements, they expose the needs of the software process, and all the questions about the software functionalities are being answered. In the waterfall model, as it is a sequential process here, if the previous step is interrupted, the next stage will not be appropriately executed. There is whether every stage is being processed without error and the customer feedback is being acknowledged or not analyzed in the requirement engineering process.
Spiral model: To solve the problems in a waterfall model, the spiral model is being created. It also called a cyclic model. This model is consists of four phases which is iteratively come across these phases. Therefore this model is called a spiral model.
Requirement analysis in the spiral model:This model is built to solve the requirements of the business. It begins with collecting the need of business purpose. The need of business is the documentation system requirements, the subsystem needs and unit requirements. The spiral model an efficient updated version of the waterfall model. Therefore, it is straightforward to analyze the system requirements since uninterrupted communication happens between the analyst of business and the customer. After the completion of the cycle, the software product is being launched in the market.
Rad Model: RAD model stands for rapid add model. This is a conventional SDLC that works based on rigid process models that prioritize requirement analysis and collecting inputs before the programming begins.
Requirement analysis in RAD model: Requirements analysis has a different viewpoint in this model. This model compels the client to sign off the individual requirements of the software before the beginning of the project. The client does not feel comfortable analyzing the product since the working build is unavailable for a very long time. After the client understands the software process, he may demand some modification of the software product. As the modification process is effectively rigid and the feasibility is not sufficient to assist the last changes in the software product in the conventional SDLC. The RAD model is focused on incremental and iterative delivery of a model that is in the process to the clients.
Scrum model: It is a framework of the agile model which is focused on iterative, incremental development.
Requirement analysis in scrum model: Here, requirements and their solutions are fulfilled by the immense collaboration of the team. The team of the development ensures the changes customers demand here in the software. They communicate with clients constantly to satisfy their needs. Short delivery of the desired software product helps in gaining client assurance and trust in the development team.
Software Solution to replace manual paper-based on RE to automate system :
As the softwares used in deciding the requirements of the software have some predefined generic function that decides the system requirement. These generic functions cannot judge the true potential of the software, so the manual in which the developer has provided the system requirements is much more prominent and much more accurate.
Best tools to support RE using software:
Requirement engineering tools are which affect the methodology of the project and goals.
There is some prime reason for using the best tools to support requirement engineering using the software. This helps every business analyst of each project get benefits. The product can assure all the customers with a hundred per cent guarantee.
The best tools for requirement engineering is:
Jama Software: The best for developing software and testing the product.
Visure Requirements: Best for configuring the specifications.
ReqSuite RM: Best for beginning a startup very easily and quickly and offers high-level customization.
Organos: Best in Visualizing and reporting.
Details of data collection:
The project is being processed with the help of secondary data, and it has been collected from various websites, online articles and pdfs of different authors. Secondary data is data or a piece of information which already exists on the internet or in a book or a journal.
A brief description of the software process and requirement engineering process has been taken from this journal(Mona Batra et al., 2017). It is a comparative study material of the RE process.
The reference for the impact of RE is taken from (Püschel et al.2019).
More information, such as the steps of requirement engineering, is taken (Groen et al., 2017).
One of the SDLC model structures is taken from (Gharajeh et al. 2019). This journal is written about waterfall models.
Some critical information about SDLC has been taken from (Agarwal et al.2017).
All the SDLC models’ information has been gathered from (Rather et al., 2017). These are rad models, scrum framework of agile model and also waterfall model.
Some best RE supporting tools are being mentioned in this project which has taken from (Hoffmann et al.2019)
Also, some information has been taken from (Jayatilleke et al.2018)
The journal (Mona Batra et al. 2017) Progression of software is a combination of various methods, tools, and practices based on creating an efficient software product. Requirement analysis is the sub disciplined engineering of systems, and it is only focused on accurate functions, solving errors, achieving goals and constraints of software and hardware system. It is the most crucial and challenging part of the software process. According to Mona Batra, "The hardest part of building a software system is deciding precisely what to build. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later”.
From (Püschel et al.2019), the impact of RE in software engineering has been taken. Feasibility study, validation, verification, requirement management, requirement specification, requirement elicitation etc., are part of the impact.
From (Gharajeh et al. 2019), structure information and the working process of the waterfall model have been taken. This model aims to solve real-life engineering problems. Software development life cycle is a constructive, properly defined sequential stages. According to Gharajeh, the waterfall model is the most simple developed model in the entire SDLC models. All the stages of the model framework are being conducted one by one linearly. The stages are requirement gathering, system analysis, coding, testing, implementation, operation and maintenance. These stages are strictly followed one after another.
From the journal of (Rather et al.2017), all the models mentioned in this project, such as the RAD model, spiral model, and scrum model, have been taken from here. The spiral model is the updated version of the waterfall.RAD model is a rigid conventional SDLC model. Scrum is a framework of the agile model. The requirement analysis of all the models has been taken and discussed above.
From (Hoffmann et al.2019), the best RE supporting tools are taken.
Ethical/legal/professional and social issues:
Some of the RE process aspects always deal with the issues of cultural, social, and legal issues. Some business analyst thinks that these type of problems is outside of the requirements engineering process. But these are not handled properly, and there will be a negative effect on the software system. The customer trust, assurance, and quality of the product should always be taken care of correctly by the development team. Short delivery of the desired software, which is often being ignored in many businesses, does not help with the marketing of the software. That should choose the SDLC models carefully for the software process. which should acknowledge the modification customer demands. The SDLC process should not be rigid. Often the customers are not comfortable with project requirements; they can not understand the product appropriately. If the requirements are not traceable by the client, there will be problems. There is often a lack of communication between customer and engineers, which leads to loopholes that degrade the quality of the product
Püschel, G., Götz, S., Wilke, C., Piechnick, C. and Aßmann, U., 2019. Testing self-adaptive software: requirement analysis and solution scheme. International Journal on Advances in Software, ISSN, 2628, pp.88-100.
Groen, E.C., Seyff, N., Ali, R., Dalpiaz, F., Doerr, J., Guzman, E., Hosseini, M., Marco, J., Oriol, M., Perini, A. and Stade, M., 2017. The crowd in requirements engineering: The landscape and challenges. IEEE software, 34(2), pp.44-52.
Gharajeh, M.S., 2019. Waterative model: An integration of the waterfall and iterative software development paradigms. Database Syst. J, 10, pp.75-81.
Agarwal, P., Singhal, A. and Garg, A., 2017. SDLC Model Selection Tool and Risk Incorporation. International Journal of Computer Applications, 975, p.8887.
Rather, M.A. and Bhatnagar, M.V., 2017. A Comparative Study of Software Development Life Cycle Models. International Journal of Application or Innovation in Engineering & Management (IJAIEM), 4(10), pp.23-29.
Hoffmann, M., Kuhn, N., Weber, M. and Bittner, M., 2019, September. Requirements for requirements management tools. In Proceedings. 12th IEEE International Requirements Engineering Conference, 2004. (pp. 301-308). IEEE.
Jayatilleke, S. and Lai, R., 2018. A systematic review of requirements change management. Information and Software Technology, 93, pp.163-185.
Finkelstein, A. and Emmerich, W., 2020. The future of requirements management tools. Oesterreichische Computer Gesellschaft (Austrian Computer Society).
Rasnacis, A. and Berzisa, S., 2017. Method for adaptation and implementation of agile project management methodology. Procedia Computer Science, 104, pp.43-50.
Abbas, S.M., Alam, K.A., Iqbal, U. and Ajmal, S., 2019, December. Quality factors enhancement of requirement engineering: A systematic literature review. In 2019 International Conference on Frontiers of Information Technology (FIT) (pp. 13-135). IEEE.
Demirel, S.T. and Das, R., 2018, March. Software requirement analysis: Research challenges and technical approaches. In 2018 6th International Symposium on Digital Forensic and Security (ISDFS) (pp. 1-6). IEEE.