Introduction
Research on Software Process Improvement (SPI) has identified critical factors that positively or negatively influence the success of the improvement (Trujillo-Casañola; Febles-Estrada et al., 2014; Walter; Wolski et al., 2019), the use of these Critical Success Factors (CSF) according to organizational contexts, influences the success of the SPI (Garcia Rodríguez; Pérez Betancourt et al., 2018; Chugh; Chanderwal et al., 2019). Trujillo defines the CSF for the SPI associated to the software development environment in Cuba (Trujillo-Casañola; Febles-Estrada et al., 2014) and identifies the need to apply Good Practices (GP) to reduce the negative influence of the CSF on the outcome of the implementation of an SPI. In addition, "actions that decrease the negative influence of a factor" have been identified, which have been conceived as GP (Trujillo-Casañola; Febles-Estrada et al., 2014; Garcia Rodríguez; Milanés Zamora et al., 2018; Socarras Peña; Garcia Rodríguez et al., 2020) and which have been defined and contextualized to the Cuban software industry (Garcia Rodríguez; Pérez Betancourt et al., 2018; Garcia Rodríguez; Rivero Morales et al., 2018; Garcia Rodríguez; Perdomo Vergara et al., 2019). However, much dispersion is reflected regarding how to execute these GP for a successful process improvement and the reuse of experiences to support decision making is considered essential (Socarras Peña; Garcia Rodríguez et al., 2020; Garcia Rodríguez, 2018; Socarras Peña; Zamora Fernández et al., 2022).
Therefore, it is pertinent to define recommendations to guide the application of the GP, based on the results obtained by other organizations that have previously initiated an improvement process. The present research takes as a reference the CSF in the SPI and recommends actions to implement the GP in the organization. For this purpose, a computer system is conceived as a technological support, which, applying Case-Based Reasoning (CBR), offers the Recommendations to apply the GP with a view to the improvement and prior to the investment in an SPI project. For this purpose, it is considered appropriate to perform an analysis oriented to:
Computational Methodology
Among the scientific methods used, the following stand out:
Historical-logical and dialectical for the critical analysis of works associated with the use of GP and Recommendations in the SPI.
Induction-deduction for the identification of the problem, as well as its solution variants.
Survey to know the level of satisfaction of the clients with the proposal through the application of the Iadov technique.
Consultation with experts to validate the contributions of the research.
Iadov to evaluate the usefulness and relevance of the research by experts and potential users.
Statistical methods for the analysis of the surveys applied to experts and potential users.
Results and Discussion
For the proposal of Recommendations that guide the efforts during the application of GP and improve the results in the SPI, the opportunity to analyze contexts analogous to the organization under analysis has been evidenced, considering the reuse of similar experiences to provide feasible solutions. An artificial intelligence technique, novel and in tune with this type of analysis, is the CBR (Sánchez Fleitas; Comas Rodríguez et al., 2019), which is used in the development of this research.
The CBR (González-Briones; Rivas et al., 2018; González Benítez; Estrada Sentí et al., 2018; Möhrle, 2020; Homem; Santos et al., 2020; Anthony Jnr and Society, 2021) is an approach that approaches new problems by taking as a reference similar problem solved in the past, it is a way of reasoning by making analogies. In a case-based system, a reasoner recalls a previous situation similar to the current one and uses it to solve the new problem.
Life cycle of a case-based system
A case-based system has three main components: a case base (knowledge base), a problem analyzer and a case retriever (both part of the inference engine) and user communication interfaces. The case base contains the descriptions of previously solved problems. In the problem-solving style, a case similar to the new one is retrieved and the solution of the retrieved problem is proposed as a potential solution to the new problem. This is derived from an adaptation process in which the old solution is adapted to the new situation (González-Briones; Rivas et al., 2018; Vázquez and Smarandache, 2018; Collin; Olesen et al., 2019). An CBR life cycle essentially consists of the following four phases (see Figure 1):
Recover the most similar case(s). That is, take the experience of a previous problem, which is believed to be similar to the new one.
Reuse the information and knowledge of the most similar case(s) recovered to solve the new problem. That is, copy or integrate the solution from the retrieved case(s).
Review and evaluate the proposed solution.
Retain, store and save the new solution once confirmed or validated. The experience is stored in such a way that it is useful for solving future problems.
For a better understanding of the proposal, the process that governs the operation of the developed system is described in Figure 2. The objective is to propose a set of Recommendations offering information associated with the effectiveness of each one of them. For this purpose, case-based reasoning is applied to identify the most effectively applied Recommendations in similar cases. The objective is to determine, among the similar cases, the most applied recommendations with the best results in their application, in order to propose them as a solution.
Step 1. Get similar cases sub-process is executed (CBR).
The sub-process is executed by applying the case-based reasoning technique.
Step 1.1. Compare initial state with stored cases:
The system performs a comparison between the initial state and the cases stored in the case base. For this purpose, a similarity function S is used, which is the result of the sum of the existing similarity values for each feature.
Where:
S: is the function that determines the similarity between a new case (initial state O 0 ) and a soul-dense case O t from the case base. It can reach values between 0 and 1, being 1 the optimal value that indicates a total similarity between cases O 0 and O t.
n: is the number of predictor traits (measures).
K i : is the weighting coefficient of the CSF to which measure "i" corresponds and its value ranges from 0 to 1, with 1 being the value that implies greater impact or relevance. It is determined that a case O 0 is similar to the case O t if the value of the function S >= 0.75.
(O 0 , O t ): is the comparison function between cases O 0 and O O t to trait (measure) "i". It is calculated using equation 2.
Where:
(O 0 , O t ): is the comparison function between the cases O 0 and Ot attending to the trait (measure) "i". Its value oscillates between 0 and 1, where the more approximation there is to the value 1, the greater will be the improvement between the cases O 0 and O t for the trait or measure "i".
x i (O 0 ): is the value of trait or measure "i" in case O 0 .
x i (O t ): is the value of trait or measure "i" in case O t .
max i : is the maximum value that can be reached by trait or measure "i".
min i : is the minimum value that trait or measure "i" can reach.
Step 1.2. Retrieve similar cases:
From the results obtained in the "Compare initial state with stored cases" activity, the cases whose S-function value >= 0.75 are retrieved.
Step 1.3. Calculate effectiveness of Recommendations:
Recommendations are obtained from frequency of occurrence in similar cases. From the set of recommendations obtained from the application of association rules for X → Y (where "x" is a Recommendation and "y" a GP), the recommendations with the highest frequency of use are identified, calculated by means of equation 3.
Step 2. Show Recommendations and their effectiveness:
The Recommendations are displayed, specifying their efficiency and effectiveness from the application of the rules and the RBC.
Step 3. Select recommendations to apply:
Once the recommendations have been proposed, the organization selects those that it considers can be applied, and after their application, proceeds to the evaluation of their use.
Solution validation
The research validation process was designed using expert consultation, the Iadov technique and a case study.
Assessment of the contribution of the solution in the use of GP and Recommendations.
Delphi and survey methods were applied for expert judgment. Thirty-three experts with at least 10 years of experience in the software industry and five in SPI projects participated. It was found that in all the evaluated dimensions (relevance, pertinence, coherence) the ratings of Very High or High stand out, for a concordance above 90%, which is considered satisfactory. No votes were cast on the Low or None scales for any of the ratings.
Customer satisfaction with the solution.
Five quality consultants and eight managers of software development organizations were surveyed. The variables evaluated were customer satisfaction, applicability and usability, using the Iadov technique. A group satisfaction index of 0.92 was obtained, which translates into a clear satisfaction with the proposal. In the criterion regarding usefulness, there was an agreement of 92.31% with the qualification "Excellent". Regarding applicability in real environments, there was an 84.62% agreement with the "Excellent" rating. Regarding its contribution to decision-making to guide GP implementation efforts in organizations, 92.31% rated the solution as "Excellent". The remaining ratings in all categories were "Adequate".
Applicability of the solution in real environments. Case Study
In order to assess the use and applicability of the developed solution, a development project at the FORTES development center at the University of Computer Sciences was taken as a reference. As a result of the processing, an initial prognosis of failure for the SPI confrontation was obtained, as well as 8 recommendations to apply the GP that would allow the transit towards a successful improvement scenario. After two months of the application of the proposed improvement package, a new diagnosis was performed, which showed a growth in maturity in the center, by reaching a favorable and successful state for the SPI with the proposed Recommendations applied. From the above, it was possible to corroborate the applicability of the proposed solution in real environments.
Conclusions
The information associated with the Best Practices and the recommendations, is relevant to support decision making in Software Process Improvement, however, there is no analysis of their influence in combination to guide efforts towards how to execute the Best Practices in the organizations.
The developed system employs artificial intelligence techniques to support decision making in the application of Best Practices in Software Process Improvement. It implements a case-based reasoning to determine the effectiveness of the proposed recommendations by comparing them with cases similar to the organization under analysis.
The results of the validation of the solution corroborate that its application contributes to support decision making in Software Process Improvement, through the proposal of Recommendations to execute Best Practices. This is evidenced by a high customer satisfaction with the developed solution.