Considerable research has demonstrated how effective requirements engineering is critical for the success of software projects. Requirements engineering has been established and recognized as one of the most important aspects of software engineering as of late. It is noteworthy to mention that requirement consistency is a critical factor in project success, and conflicts in requirements lead to waste of cost, time, and effort. A considerable number of research studies have shown the risks and problems caused by working with requirements that are in conflict with other requirements. These risks include running overtime or over budget, which may lead to project failure. At the very least, it would result in the extra expended effort. Various studies have also stated that failure in managing requirement conflicts is one of the main reasons for unsuccessful software projects due to high cost and insufficient time. Many prior research studies have proposed manual techniques to detect conflicts, whereas other research recommends automated approaches based on human analysis. Moreover, there are different resolutions for conflicting requirements. Our previous work proposed a scheme for dealing with this problem using a novel intelligent method to detect conflicts and resolve them. A rule-based system was proposed to identify conflicts in requirements, and a genetic algorithm (GA) was used to resolve conflicts. The objective of this work is to assess and evaluate the implementation of the method of minimizing the number of conflicts in the requirements. The methodology implemented comprises two different stages. The first stage, detecting conflicts using a rule-based system, demonstrated a correct result with 100% accuracy. The evaluation of using the GA to resolve and reduce conflicts in the second stage also displayed a good result and achieved the desired goal as well as the main objective of the research.

Requirements engineering is one of the most important components of software engineering. A requirements engineer’s goal is to keep the set of requirements consistent and up-to-date in the project duration [

In our previous work [

This paper is organized as follows. Section 2 discusses the methodology used in detail. Section 3 describes the experimental framework used to evaluate the performance of the proposed methodology. Finally, Section 4 summarizes conclusions based on the findings.

This section discusses the proposed approach in detail. It compromises two stages: identifying the conflicts and resolving them. The algorithm for the proposed approach in [

At this stage, a rule-based system including sequence steps to detect the conflicts between functional requirements is used. A rule-based system usually consists of facts, rules, and a termination condition [

A group of if-then rules is built to test if there are conflicts between any two requirements. The rules are constructed according to the elements that define the function requirements and are built based on a discussion with experts in requirements engineering on the definition of conflicts between two functional requirements. These rules are then defined using the elements of the functional requirements (operation, actor, event, pre-condition, input, post condition, and output), which can be read and analyzed from the functional requirements defined in a structured natural language in tables. They are defined to consider the most unacceptable results or conflicts that may be caused by running two functional requirements. They are based on comparing the main elements of the functional requirements. The rules will determine if any two requirements in FRs are conflicts or not as portrayed in

Rule No. | Rule | If condition |
---|---|---|

1 | IF req1 and req2 have same operations AND different actors THEN there is conflict. | operation1=operation2 AND actor1≠ actor2 |

2 | IF req1and req2 have different events (triggers) AND same operations THEN there is conflict. | event1≠event2 AND operation1=operation2 |

3 | IF req1 and req2 have different operations AND same post-conditions THEN there is conflict. | operation1≠operation2 AND post_condition1 = post_condition2 |

4 | IF req1 and req2 have different operations AND same output THEN there is conflict | operation1≠operation2 AND output1 = output 2 |

5 | IF req1and req2 have different operations AND same pre-conditions AND same input THEN there is conflict. | operation1≠operation2 AND pre-condition1=pre-condition2 AND input1=input2 |

6 | IF req1and req2 have different operations AND same actors AND same input THEN there is conflict | operation1≠operation2 AND actor1=actor2 AND input1=input2 |

7 | IF req1 and req2 have same events AND different operations THEN there is conflict. | event1=event2 AND operation1≠operation2 |

8 | IF req1 and req2 have same event AND same pre-condition AND different operations THEN there is conflict. | event1=event2 AND pre-condition1=pre- condition2 AND operation1≠operation2 |

9 | IF req1 and req2 have same event AND same actors AND different operations THEN there is conflict. | event1=event2 AND actor1=actor2 AND operation1≠operation2 |

A structured natural language is used for requirements specification. To assist the analysis of requirements, the function requirements are formatted in the form of a table on an Excel spreadsheet, containing the main elements that define each requirement and the need to detect conflicts (FR-id, operation, actor, trigger, pre-condition, input, post-condition, and output). The function requirements are read from an Excel file and tested through the set of rules to determine if there are any conflicts between the two requirements. The system also defines which rule to detect the conflicts.

The system displays the FR-id for the two requirements with conflicts and rule number that fulfill (realize) the condition.

Genetic algorithms (GAs) are strong and useful tools that have the ability to solve complex problems [

Two different methods are built to apply the GA to reduce and solve the conflicts between requirements. The basic algorithm is the same for all; the only difference is in building the initial population.

The initial population is built randomly. The advantage of this method is that it considers all values in the initial population at its greater probability to accommodate all kinds of permutations and higher efficiency. But sometimes random combinations of some attributes can make the function requirement less meaningful; however, this is normal for randomization as one of the basic attributes of GAs.

The initial population is built randomly with restrictions on the similarities between some attributes to make sure the requirements are logically correct. In method one, the initial population is built randomly, which may cause some requirements with less meaning. To ensure that meaningless entries are not allowed, conditions have to be put in a population generation. In this way, when generating a population, the system will check the attributes and choose further appropriate attributes according to these constraints. Furthermore, the value is randomly chosen with conditions. This reduces meaningless entries by a great extent and perhaps provides us some guarantee of quality solutions.

This section discusses the design and execution of the proposed approach. It also highlights the analysis of the obtained results as well as the performance evaluation for each stage.

The objective of this experiment was to evaluate the performance of the proposed approach [

The experiments were conducted on three different real-world industrial projects. To test the approach on a different number of functional requirements with different conflict percentages, the projects were selected with varying sizes of functional requirements (small, medium, and large projects). Small projects were 25 or fewer use cases, middle projects were 25 to less than 74 use cases, and large projects were 74 and more use cases. A brief description of the three projects is provided in

Project’s Name | Description | Size | No. of FRs |
---|---|---|---|

Contracts and Projects Management System (CPMS) | Manages the task management, timesheet tracking, contracts, and budget reports. | Small | 22 |

Editorial System of University Newspaper (ENP) | Manages all processes for editing the newspaper | Medium | 34 |

Finance Management System (FMS) | Incorporates all the transactions of the organization, including branches and the head office. The system deals with all the payables, receivables, and general ledger | Large | 75 |

The proposed methodology with two different methods was implemented using MATLAB for all three projects. Experiments were conducted ten times for each project. The results of the experiments were recorded at two levels: one after the first part that detected the conflicts, and the other after applying the GA as follows:

- Ten experiments for three projects with two different methods 10 × 3 × 2 = 60;

- Methods 1 and 2 had two different versions 60 + (20 × 3) = 120 different experimental results.

Step | Name of the method |
---|---|

Encoding method | Value representation |

Fitness function | Minimize the number of conflicts |

Selection method | Stochastic universal sampling |

Crossover operation | Uniform crossover |

Mutation operation | Uniform mutation |

Replacement strategy | Both parent replacement |

Stopping criteria | Both or one of these criteria is applied: 30 iterations 20% conflicts of total FRs |

Control parameters | Value |
---|---|

Initial population size | 20 |

Crossover probability _{c} |
0.7 |

Mutation probability _{m} |
0.001 |

In this section, the results are analyzed and discussed to evaluate the performance of the proposed approach. There is a separate evaluation for each stage. The statistical procedures were performed using Statistical Package for Social Sciences (SPSS) version 20. Descriptive statistics (means, standard deviations, and standard errors) were used for expressing variables.

The results of applying the rule-based system in the three projects are presented in

Project | No. of conflicts detected manually | No. of conflicts detected using rule-based | Percentage accuracy |
---|---|---|---|

CPMS | 3 | 3 | 100% |

ENP | 15 | 15 | 100% |

FMS | 34 | 34 | 100% |

GA is a probabilistic stochastic global search algorithm. This means that if the same set of parameters runs multiple times, the results are different for each operation. Thus, the results are different in various runs. Method 1 and 2 have two different versions in the experiments. The difference is in the stopping criteria that were applied. In the first version, only reaching a solution with less than 20% of total functional requirements was applied. This percentage was chosen to obtain optimal results in lesser run time. However, sometimes for large data, it may take a longer execution time to reach this percentage. Therefore, the second version was built to avoid a long execution time in certain situations and obtain optimal results in a lesser run time. The iteration count was set to 30 in addition to stopping criteria set at reaching a solution with less than 20% of total functional requirements, i.e., 20% or 30 iterations, whichever happens first, would stop the loop. Thus, in the experiments, there are four different methods: Method 1 Version 1 (M1V1), Method 1 Version 2 (M1V2), Method 2 Version 1 (M2V1), and Method 2 Version 2 (M2V2).

The discussion of the GA’s application results in the three projects was conducted in consideration of the percentage of conflicts and the percentage of the resolved conflicts after the application of each method. The results of the effects are expected to be the same because the percentage of the resolved conflicts is calculated from the percentage of the conflicts. The detailed results are shown for both versions.

The analysis of the results have four different objectives as follows:

Compare the effects of the proposed approach of decreasing conflicts for each project,

Explore the different effects of various methods for each project,

Contrast the different effects of each method in various projects,

Compare the effect of various methods.

To study the effects of each method in reducing conflicts, the percentage of conflicts after applying each method was compared with the percentage of conflicts in the original data of the project. There are two tables for each project: one is the effects on the percentage of conflict, and the other is the effects on the percentage of resolved conflicts. One sample t-test was performed to compare each method with the baseline value. The tables contain the following information:

Test value: percentage of conflicts in the original data;

N: number of experiments;

Mean: mean of (conflicts or resolved conflicts) in the ten experiments;

P-value: when there is an asterisk next to the p-value in the table, it means there is a significant difference between the compared items. When there is no asterisk, thus there is no difference between the compared items.

The p-value in

Test Value = 13.64% (CPMS) | N | Mean | Std. Deviation | Std. Error Mean | t | P-Value |
---|---|---|---|---|---|---|

Percentage of Conflicts (M1V1) | 10 | 8.18% | 1.92% | 0.61% | –8.999 | 0.00*** |

Percentage of Conflicts (M1V2) | 10 | 6.36% | 2.35% | 0.74% | –9.797 | 0.00*** |

Percentage of Conflicts (M2V1) | 10 | 6.36% | 2.35% | 0.74% | –9.797 | 0.00*** |

Percentage of Conflicts (M2V2) | 10 | 6.36% | 2.35% | 0.74% | –9.797 | 0.00*** |

***: the significant differences were accepted at

CPMS | N | Mean | Std. Error | Std. Deviation |
---|---|---|---|---|

Percentage of Resolved Conflicts (M1V1) | 10 | 40.00% | 4.44% | 14.05% |

Percentage of Resolved Conflicts (M1V2) | 10 | 53.33% | 5.44% | 17.21% |

Percentage of Resolved Conflicts (M2V1) | 10 | 53.33% | 5.44% | 17.21% |

Percentage of Resolved Conflicts (M2V2) | 10 | 53.33% | 5.44% | 17.21% |

The p-value in

Test Value = 44.12% (ENP) | N | Mean | Std. Deviation | Std. Error Mean | t | P-Value |
---|---|---|---|---|---|---|

Percentage of Conflicts (M1V1) | 10 | 17.35% | 0.93% | 0.29% | –91.001 | 0.00*** |

Percentage of Conflicts (M1V2) | 10 | 24.71% | 5.04% | 1.59% | –12.186 | 0.00*** |

Percentage of Conflicts (M2V1) | 10 | 17.35% | 0.93% | 0.29% | –91.001 | 0.00*** |

Percentage of Conflicts (M2V2) | 10 | 24.71% | 5.04% | 1.59% | –12.186 | 0.00*** |

ENP | N | Mean | Std. Error | Std. Deviation |
---|---|---|---|---|

Percentage of Resolved Conflicts (M1V1) | 10 | 60.67% | 0.67% | 2.11% |

Percentage of Resolved Conflicts (M1V2) | 10 | 44.00% | 3.61% | 11.42% |

Percentage of Resolved Conflicts (M2V1) | 10 | 60.67% | 0.67% | 2.11% |

Percentage of Resolved Conflicts (M2V2) | 10 | 44.00% | 3.61% | 11.42% |

The p-value in

Test Value = 45.33% (FMS) | N | Mean | Std. Deviation | Std. Error Mean | t | P-Value |
---|---|---|---|---|---|---|

Percentage of Conflicts (M1V1) | 10 | 19.20% | 0.93% | 0.29% | –88.643 | 0.00*** |

Percentage of Conflicts (M1V2) | 10 | 41.73% | 1.78% | 0.56% | –6.383 | 0.00*** |

Percentage of Conflicts (M2V1) | 10 | 19.60% | 0.64% | 0.20% | –126.347 | 0.00*** |

Percentage of Conflicts (M2V2) | 10 | 34.40% | 8.82% | 2.79% | –3.921 | 0.004** |

***: the significant differences were accepted at

FMS | N | Mean | Std. Error | Std. Deviation |
---|---|---|---|---|

Percentage of Resolved Conflicts (M1V1) | 10 | 57.65% | 0.65% | 2.06% |

Percentage of Resolved Conflicts (M1V2) | 10 | 7.94% | 1.24% | 3.93% |

Percentage of Resolved Conflicts (M2V1) | 10 | 56.76% | 0.45% | 1.42% |

Percentage of Resolved Conflicts (M2V2) | 10 | 24.12% | 6.15% | 19.45% |

To sum up, M1V2 usually has the worst results in comparison; this may be due to the stopping criteria in V2 reaching 30 iterations or less than 20% of conflicts. In addition, the initial population in M1 is built completely at random; thus reaching 20% may take time, and the loop usually stops after 30 iterations with a high percentage of conflicts. Moreover, V1s in M1 and M2 usually have the same or very similar results. Because the stopping criteria in V1 reach less than 20% of conflicts in both methods, the loop continues until reaching this percentage in both methods. Therefore, we can see how the set of function requirements in M2 can be more meaningful since it is built randomly from a conditional initial population.

To test if there is a significant difference between the effects of various methods for each project, a comparison between all different methods was conducted. The p-value determines if there is a difference or not. If there is a significant difference, then a comparison between each of the two methods is prepared to determine exactly which methods have differences and which methods have the same effects. In addition, the tables show the difference between the means of both methods. If the mean is positive, it means that the second comparison method has a better result (fewer conflicts) than the first method; If it is negative, then it is the opposite. For repeated measures, One-way Analysis of Variance (“ANOVA”) was used to compare the different methods for each project.

The tables contain the following information:

Mean: the mean of the conflicts in each method;

N: number of experiments;

Mean difference: the difference between the mean in the two methods.

CPMS | Mean | Std. Deviation | N | F | P-Value |
---|---|---|---|---|---|

Percentage of Conflicts (M1V1) | 8.18% | 1.92% | 10 | 3.6 | 0.045* |

Percentage of Conflicts (M1V2) | 6.36% | 2.35% | 10 | ||

Percentage of Conflicts (M2V1) | 6.36% | 2.35% | 10 | ||

Percentage of Conflicts (M2V2) | 6.36% | 2.35% | 10 |

*: the significant differences were accepted at

(I) method | (J) method | Mean Difference (I-J) | Std. Error | P-Value |
---|---|---|---|---|

M1V1 | M1V2 | 1.80% | 0.70% | 0.037* |

M1V1 | M2V1 | 1.80% | 0.70% | 0.037* |

M1V1 | M2V2 | 1.80% | 0.70% | 0.037* |

M1V2 | M2V1 | 0.00% | 1.00% | 1 |

M1V2 | M2V2 | 0.00% | 0.00% | 1 |

M2V1 | M2V2 | 0.00% | 1.00% | 1 |

*: the significant differences were accepted at

ENP | Mean | Std. Deviation | N | F | P-Value |
---|---|---|---|---|---|

Percentage of Conflicts (M1V1) | 17.35% | 0.93% | 10 | 21.91 | 0.001*** |

Percentage of Conflicts (M1V2) | 24.71% | 5.04% | 10 | ||

Percentage of Conflicts (M2V1) | 17.35% | 0.93% | 10 | ||

Percentage of Conflicts (M2V2) | 24.71% | 5.04% | 10 |

***: the significant differences were accepted at

(I) method | (J) method | Mean Difference (I-J) | Std. Error | P-Value |
---|---|---|---|---|

M1V1 | M1V2 | –7.40% | 1.70% | 0.002** |

M1V1 | M2V1 | 0.00% | 0.40% | 1 |

M1V1 | M2V2 | –7.40% | 1.70% | 0.002** |

M1V2 | M2V1 | 7.40% | 1.50% | 0.001*** |

M1V2 | M2V2 | 0.00% | 0.00% | 1 |

M2V1 | M2V2 | −7.40% | 1.50% | 0.001*** |

**: the significant differences were accepted at

FMS | Mean | Std. Deviation | N | F | P-Value |
---|---|---|---|---|---|

Percentage of Conflicts (M1V1) | 19.20% | 0.93% | 10 | 65.311 | 0.00*** |

Percentage of Conflicts (M1V2) | 41.73% | 1.78% | 10 | ||

Percentage of Conflicts (M2V1) | 19.60% | 0.64% | 10 | ||

Percentage of Conflicts (M2V2) | 34.40% | 8.82% | 10 |

***: the significant differences were accepted at

(I) method | (J) method | Mean Difference (I-J) | Std. Error | P-Value |
---|---|---|---|---|

M1V1 | M1V2 | –22.50% | 0.70% | 0.00*** |

M1V1 | M2V1 | –0.40% | 0.30% | 0.279 |

M1V1 | M2V2 | −15.20% | 3.00% | 0.001*** |

M1V2 | M2V1 | 22.10% | 0.60% | 0.00*** |

M1V2 | M2V2 | 7.30% | 3.00% | 0.038* |

M2V1 | M2V2 | –14.80% | 2.90% | 0.001*** |

*: the significant differences were accepted at

Based on the previous analysis, we can conclude that V1 in both methods has the same performance in the last two projects due to the size of the projects (medium and large).

After exploring the different effects of various methods for each project, a comparison was conducted to study the effects of each method on the various projects. For each method, there are two tables: one to demonstrate if there are different effects for the method in all projects, and the second one to compare the effects of the method in each pair of projects to verify if its effect on these projects is the same. Moreover, if the effect is dissimilar, the difference between the means denotes which method works better in each project. A figure for each method is presented to clarify the different effects of the methods in reducing the conflicts for all projects. For each project, two bars are presented: one is the percentage of the original data conflicts, while the other is the mean of the conflicts after applying the method. Then, ANOVA was used to compare more than two projects for the same method, and Post-hoc testing was used to compare two projects when ANOVA was significant.

Variable | Project | N | Mean | Std. Deviation | Std. Error | F | P-Value |
---|---|---|---|---|---|---|---|

10 | 8.18% | 1.92% | 0.61% | ||||

10 | 17.35% | 0.93% | 0.29% | ||||

10 | 19.20% | 0.93% | 0.29% |

***: the significant differences were accepted at

Variable | (I) Project | (J) Project | Mean Difference (I-J) | Std. Error | P-Value |
---|---|---|---|---|---|

−9.17% | 1.13% | 0.00*** | |||

−11.02% | 1.13% | 0.00*** | |||

−1.85% | 1.13% | 0.577 |

**: the significant differences were accepted at

Project acronym | Percentage of conflicts in original data | The mean of conflicts after applying the method | Difference between the original conflicts percentage and the mean |
---|---|---|---|

13.64% | 8.18% | 5% | |

44.12% | 17.35% | 27% | |

45.33% | 19.20% | 26% |

Variable | Project | N | Mean | Std. Deviation | Std. Error | F | P-Value |
---|---|---|---|---|---|---|---|

6.36% | 2.35% | 0.74% | |||||

24.71% | 5.04% | 1.59% | |||||

41.73% | 1.78% | 0.56% |

***: the significant differences were accepted at

Variable | (I) Project | (J) Project | Mean Difference (I-J) | Std. Error | P-Value |
---|---|---|---|---|---|

–18.34% | 2.00% | 0.00*** | |||

–35.37% | 2.00% | 0.00*** | |||

–17.03% | 2.00% | 0.00*** |

*: the significant differences were accepted at

Project acronym | Percentage of conflicts in original data | The mean of conflicts after applying the method | Difference between the original conflicts percentage and the mean |
---|---|---|---|

13.64% | 6.36% | 7% | |

44.12% | 24.71% | 19% | |

45.33% | 41.73% | 4% |

Variable | Project | N | Mean | Std. Deviation | Std. Error | F | P-Value |
---|---|---|---|---|---|---|---|

6.36% | 2.35% | 0.74% | |||||

17.35% | 0.93% | 0.29% | |||||

19.60% | 0.64% | 0.20% |

***: the significant differences were accepted at

Variable | (I) Project | (J) Project | Mean Difference (I-J) | Std. Error | P-Value |
---|---|---|---|---|---|

–10.99% | 1.08% | 0.00*** | |||

–13.24% | 1.08% | 0.00*** | |||

–2.25% | 1.08% | 0.313 |

**: the significant differences were accepted at

Project acronym | Percentage of conflicts in original data | The mean of conflicts after applying the method | Difference between the original conflicts percentage and the mean |
---|---|---|---|

13.64% | 6.36% | 7% | |

44.12% | 17.35% | 27% | |

45.33% | 19.60% | 26% |

The p-value in

Variable | Project | N | Mean | Std. Deviation | Std. Error | F | P-Value |
---|---|---|---|---|---|---|---|

10 | 6.36% | 2.35% | 0.74% | ||||

10 | 24.71% | 5.04% | 1.59% | ||||

10 | 34.40% | 8.82% | 2.79% |

***: the significant differences were accepted at

Variable | (I) Project | (J) Project | Mean Difference (I-J) | Std. Error | P-Value |
---|---|---|---|---|---|

−18.34% | 2.35% | 0.00*** | |||

−28.04% | 2.35% | 0.00*** | |||

−9.69% | 2.35% | 0.002** |

**: the significant differences were accepted at

Project acronym | Percentage of conflicts in original data | The mean of conflicts after applying the method | Difference between the original conflicts percentage and the mean |
---|---|---|---|

13.64% | 6.36% | 7% | |

44.12% | 24.71% | 19% | |

45.33% | 34.40% | 11% |

To check for a significant difference between the effects of various methods, a comparison of all the different methods based on the percentage of resolved conflicts was conducted. The p-value determined if there was a difference or not. If there is a significant difference, then a comparison between each of the two methods is conducted to determine exactly which methods have differences and which one has the same/similar effects. In addition, the tables show the difference between the means of both methods. If the mean is positive, this means that the first comparison method has a better result (more resolved) than the second method. If it is negative, then it is the opposite.

Variable | Mean | Std. Deviation | N | F | P-Value |
---|---|---|---|---|---|

53.42% | 11.64% | 60 | 30.473 | 0.00*** | |

33.45% | 24.32% | 60 | |||

59.94% | 12.55% | 60 | |||

41.20% | 27.29% | 60 |

***: the significant differences were accepted at

(I) Methods | (J) Methods | Mean Difference (I-J) | Std. Error | P-Value |
---|---|---|---|---|

20.00% | 3.70% | 0.00*** | ||

–6.50% | 2.10% | 0.035* | ||

12.20% | 4.20% | 0.051 | ||

–26.50% | 3.30% | 0.00*** | ||

–7.70% | 2.60% | 0.038* | ||

18.70% | 3.40% | 0.00*** |

*: the significant differences were accepted at

To sum up the results, with regards to the approach of automatically detecting the conflicts using a rule-based system, the method is considered effective as it detected conflicts correctly with 100% accuracy. The results demonstrate that for all three projects, all the different methods are effective in reducing and resolving the conflicts in varying efficiency ratios in comparison to the original conflict percentage. The method with the best performance for each project is determined and supported by graphs. From the first point of analysis, the results indicate that all the methods are effective in all the projects. However, how this effect is similar or different will be addressed in the second point of analysis.

The study indicates that for each project, there is a significant difference in the effect of the various methods in reducing the conflicts percentage. More specifically, a comparison of each pair of methods is conducted, which determined whether or not they share the same effect. If there is a different percentage, the better method is specified. After that, we contrasted the different effects of each method in various projects. We studied how the effect of each method was different in the various projects. Moreover, it is determined which method is more effective in which particular projects and these results are supported by graphs.

Finally, to test if there is a significant difference between different methods, a comparison between various methods based on the percentage of resolved conflicts is conducted. Three comparisons were made while eliminating the effect of the project name. The results show that the various methods have significant differences.

By applying an artificially intelligent technique to detect and resolve conflicts in requirements, the proposed technique warranted saving a lot of time and effort for the software engineers. Additionally, this increased the quality of analysis of the requirements, which in turn yielded more accurate results in detecting and resolving conflicts in requirements. The approach was evaluated after each stage. The first stage, detecting conflicts using a rule-based system, demonstrated a result correctly with an accuracy of 100%. The evaluation using the GA to resolve and reduce the conflicts in the second stage displayed extremely good results and achieved the desired goal of minimizing the number of conflicts. There were different objectives for the analysis of the results for this stage. The first goal was to demonstrate the effectiveness of the proposed approach in reducing the number of conflicts. The results demonstrated that for all three projects, the proposed technique was effective in reducing and resolving the conflicts in an optimized manner within acceptable thresholds. Moreover, this study showed that for each project, there was a significant difference in the effect of the proposed technique in reducing the percentage of conflicts.

In addition, two different methods were used for the basic algorithm with two versions of each. As a result, a total of four different methods were built, evaluated, and compared. The evaluation of the performance of the approach showed a high accuracy of 100% in detecting the conflicts correctly. The main goal of reducing the number of conflicts was achieved using the GA.