An automatic methodology for the quality enhancement of requirements using genetic algorithms

https://doi.org/10.1016/j.infsof.2021.106696Get rights and content

Abstract

Context

The set of requirements for any project offers common ground where the client and the company agree on the most important features and limitations of the project. Having a set of requirements of the highest possible quality is of enormous importance; benefits include improving project quality, understanding client needs better, reducing costs, and predicting project schedules and results with greater accuracy.

Objective

This paper's primary goal is to create a methodology that can provide effective and efficient solutions for modifying poor requirements integrated into a full-fledged system, extracting the main features of each requirement, assessing their quality at an expert level, and, finally, enhancing the quality of the requirements.

Method

In the first step, a machine learning algorithm is implemented to classify requirements based on quality and identify those that are the likeliest to be problematic. In the second step, the genetic algorithm generated solutions to enhance the quality of the requirements identified as inferior.

Results

The results of the genetic algorithm are compared with the theoretically optimal solution. The paper demonstrates the significant flexibility of genetic algorithms, which create a wide variety of solutions and can adapt to any type of classifier. From the initial dataset of requirements, the genetic algorithm finds the optimal solution in 85% of cases after 10 iterations and achieves 59.8% success after only one iteration.

Conclusions

Genetic algorithms are promising tools for requirements engineering by delivering benefits such as saving costs, automating tasks, and providing more solid and efficient planning in any project through the generation of new solutions.

Introduction

At the beginning of any IT project, there is always a specifications phase that is typically companied by inconveniences and challenges. These arise because the client and service provider have very different views and knowledge levels about the project. The primary goal of requirements engineering is to solve these issues.

Requirements engineering helps the service provider obtain a better understanding of the problem, a greater awareness of the client's needs, and a deeper comprehension of how end users will employ the software [1]. Thus, high-quality requirements are a key pillar in planning any software project; they can help avoid consequences, such as unnecessary changes due to a lack of comprehension of the client's needs, the appearance of a lack of professionalism if the final product does not fulfil the client's expectations, and erroneous estimations of the project's scope and thus costs.

A new methodology to assess the quality of requirements uses decision trees [2], [3], [4]. It takes advantage of the internal rules of these decision trees to find the most optimal solution for changing poor requirements. It deserves special mention since the final results of those studies serve as the starting point for this investigation. The main difference involves this study's reliance on genetic algorithms for generating new solutions, which offers a wider variety of options and more adaptability to a project's needs at the modest cost of extra time for calculation.

A system that classifies non-functional requirements in software projects through semi-supervised machine learning has already been reported [5]. It is also possible to find other valid approaches, such as a framework based on a methodology that guides the user through the process of creating high-quality requirements [6] and the use of genetic algorithms with two levels of approximation adapted to the demands of requirements engineering [7].

The importance of requirements engineering has been demonstrated by establishing a relationship between requirement quality and project performance and outcome [8].

The present study offers a methodology based on machine learning techniques for improving requirements identified as poor The main target is to provide a set of effective solutions that can address the problematic requirements. These solutions will be shown to the end user to choose that is most appropriate for each case. This is accomplished by combining genetic algorithms with machine learning classification.

Section snippets

Requirements engineering

Requirements engineering is the process by which a client's needs for a software system are analysed, collected, and verified in some way [9]. This type of research is highlighted by approaches such as improving the quality of security requirements using predefined patterns [10].

Some previous articles have focused on the classification of requirements. In [11], the major goal is the prioritisation of requirements for geographically distributed informatics systems; the results of the algorithm

Methodology

The methodology aims to assist the end user in improving the bad quality requirements. In any stage inside project planning, it is crucial to identify the functional requirements at the very beginning of the project planning and non-functional requirements as soon as possible to save costs and having a strong base for shaping the future project. However, it is equally important to enhance the quality of the bad requirements. In other words, it is not enough to identify the problems; it is also

Implementation

This section contains all the details about the representation and the implementation of the methodology. This research suggests two different approaches with different plusses and minuses.

In order to have an unbiased comparison, the same decision tree was used for binary classification—the algorithm C4.5 with pairs of comparisons. On the one hand, the methodology uses the inner rules of the decision tree for making suggestions for changing the bad requirements. On the other hand, these

Results

This section details the research questions raised with the usage of the methodology, explaining in detail the advantages, disadvantages, and the different obtained results with quantitative data from both approaches.

Conclusions

As a final inference, this paper takes one step forward regarding requirements engineering, suggesting the usage of a full-fledge methodology that is able to extract the most meaningful features of each requirement concerning the correctness and is able to evaluate the quality of the requirements with the same criteria as experts.

Lastly, after detecting the requirements that are more prone to be problematic, it suggests multiple solutions on how to modify the bad requirements according to the

Future works

The main results shown in the previous sections (2.84 of effort cost whereas the optimal is 2.81) do not leave too much room for improvement regarding the efficiency in the effort costs. However, to reach that conclusion, the algorithm needs to perform on an average of over one thousand generations which implies over 12,000 different generated solutions.

That is because the randomness of the genetic algorithm makes finding the best value very late, and hence, obtains a large number of

Authorship contributions

Please indicate the specific contributions made by each author (list the authors’ initials followed by their surnames, e.g., Y.L. Cheung). The name of each author must appear at least once in each of the three categories below.

Category 1: Conception and design of study: Daniel Adanza Dopazo, Valentín Moreno Pelayo, Gonzalo Génova Fuster; acquisition of data: Daniel Adanza Dopazo, Valentín Moreno Pelayo, Gonzalo Génova Fuster; analysis and/or interpretation of data: Daniel Adanza Dopazo,

Declaration of Competing Interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Acknowledgments

This research has received funding from the RESTART project –“Continuous Reverse Engineering for Software Product Lines / Ingeniería Inversa Continua para Líneas de Productos de Software” (ref. RTI2018-099915-B-I00, Convocatoria Proyectos de I + D Retos Investigación del Programa Estatal de I + D + i Orientada a los Retos de la Sociedad 2018, MOMEBIA project- “Monitorización del Mercado Eléctrico Basada en técnicas de Inteligencia Artificial" (ref. RTC2019-007501-7, Convocatoria de Proyectos de

References (30)

  • E. Parra, Metodología orientada a la optimización automática de la calidad de los requisitos....
  • J. Fuentes, A. Fraga, G. Génova, E. Parra, Applying INCOSE Rules for writing high-quality requirements in Industry,...
  • A. Casamayor et al.

    Identification of non-functional requirements in textual specifications: a semi-supervised learning approach

    Inf. Softw. Technol.

    (2009)
  • H. Mat Jani et al.

    A framework of software requirements quality analysis system using case-based reasoning and neural network

    IOSR J. Comput. Eng.

    (2012)
  • S.Y. Chen et al.

    Improved genetic algorithm with two-level approximation for truss optimization by using discrete shape variables

    Math. Probl. Eng.

    (2015)
  • Cited by (12)

    • An adaptive compressor characteristic map method based on the Bézier curve

      2021, Case Studies in Thermal Engineering
      Citation Excerpt :

      Table 3 lists the gas path measurement parameters used to verify the accuracy of the engine model established by the proposed method. In this paper, the GA [24] is used to improve the adaptive process of the compressor Map. The GA is a computational model of biological evolution that simulates the natural selection and genetic mechanism of Darwinian biological evolution theory.

    View all citing articles on Scopus
    View full text