bioinpired_algorithm
bioinpired_algorithm
a r t i c l e i n f o a b s t r a c t
Article history: When the source code of a software is the only product available, program understanding has a substan-
Received 17 May 2023 tial influence on software maintenance costs. The main goal in code comprehension is to extract informa-
Revised 18 June 2023 tion that is used in the software maintenance stage. Generating the structural model from the source
Accepted 12 July 2023
code helps to alleviate the software maintenance cost. Software module clustering is thought to be a
Available online 18 July 2023
viable reverse engineering approach for building structural design models from source code. Finding
the optimal clustering model is an NP-complete problem. The primary goals of this study are to minimize
Keywords:
the number of connections between created clusters, enhance internal connections inside clusters, and
Olympiad optimization algorithm
Software module clustering
enhance clustering quality. The previous approaches’ main flaws were their poor success rates, instabil-
Cohesion ity, and inadequate modularization quality. The Olympiad optimization algorithm was introduced in this
Modularization quality paper as a novel population-based and discrete heuristic algorithm for solving the software module clus-
tering problem. This algorithm was inspired by the competition of a group of students to increase their
knowledge and prepare for an Olympiad exam. The suggested algorithm employs a divide-and-conquer
strategy, as well as local and global search methodologies. The effectiveness of the suggested Olympiad
algorithm to solve the module clustering problem was evaluated using ten real-world and standard soft-
ware benchmarks. According to the experimental results, on average, the modularization quality of the
generated clustered models for the ten benchmarks is about 3.94 with 0.067 standard deviations. The
proposed algorithm is superior to the prior algorithms in terms of modularization quality, convergence,
and stability of results. Furthermore, the results of the experiments indicate that the proposed algorithm
can be used to solve other discrete optimization problems efficiently.
Ó 2023 The Author(s). Published by Elsevier B.V. on behalf of King Saud University. This is an open access
article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/).
1. Introduction on average (Amarjeet and Chhabra, 2017; Sun and Ling, 2018;
Chhabra, 2017; Yuste et al., 2022). One of the most difficult tasks
Change and evolution of software based on changes in user in software maintenance is determining the impact of the applied
needs and system features are inevitable. Software maintenance change on the rest of the software. The action of examining the
(Change and evolution) accounts for 60% of software expenditures likely impacts of a change to limit unexpected side effects is known
as impact analysis. When the source code is the only product avail-
able, program understanding has a substantial influence on soft-
⇑ Corresponding author.
ware maintenance costs. The main goal in code comprehension is
E-mail addresses: b_arasteh2001@yahoo.com, bahman.arasteh@istinye.edu.tr
(B. Arasteh). to extract information that is used in the software maintenance
Peer review under responsibility of King Saud University. stage. The primary maintenance task, which accounts for around
50% of the expenditures, is program comprehension. The generated
structural model from the source code helps the software develop-
ers to make the desired maintenance in the software system with a
Production and hosting by Elsevier limited amount of cost.
https://doi.org/10.1016/j.jksuci.2023.101655
1319-1578/Ó 2023 The Author(s). Published by Elsevier B.V. on behalf of King Saud University.
This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/).
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
The structural model, as an architectural model of a software mization Algorithm). In the Olympiad Optimization Algorithm
product, consists of the modules (components, classes, methods) (OOA), the population mimics the behavior of a group of students
in the software product and the static relationships that exist that desire to enhance their knowledge by learning from their
between them. This model describes the related codes (modules) peers. The students try to improve their knowledge by learning
in the program source code and display the organization of a soft- from the other students. Therefore, students are competing to gain
ware system in terms of the components. As a result, when con- knowledge from each other. The OOA splits and conquers an opti-
fronted with large and complex software source code, extracting, mization problem by using both local and global search tech-
and interpreting the software structural models from source code niques. Each iteration divides the population into student groups,
is essential. Before making source-code changes, one can learn and teaching and learning take place among the students. No
about the design structure of software by reverse engineering the teachers are participating in the teaching and learning process at
source code components. As a reverse engineering approach, soft- the OOA. In the OOA, population evolution is based on swarm intel-
ware source-code clustering groups software modules (compo- ligence and group-based learning. The local search operation is car-
nents, classes, and methods) with similar qualities after ried out by each group. Each solution delivers software module
extracting them from the source code. As a metric, modularization clustering; a solution’s fitness demonstrates the solution’s MQ.
quality (MQ) is evaluated based on the number of connections OOA may also be used to solve discrete optimization problems.
inside (cohesion) and between clusters (coupling). The MQ crite- The followings are the study’s main contributions:
rion is used to assess the performance of module clustering algo-
rithms. According to this criterion, optimal clustering results In this work, a unique discrete optimization algorithm (OOA) for
from maximal cohesion (the ties between modules in a cluster) tackling discrete optimization problems was developed. The
and minimal coupling (the links between different clusters). suggested method is a swarm-based algorithm that simulates
The software module clustering (SMC) methods divide the the learning process of a class of students preparing for the
source code of a program into m clusters (components or pack- Olympiad test. The steps of teaching and learning amongst
ages). Assume S (a source code) is made up of n modules, M1, population members (students) in each iteration produce popu-
M2, . . ., Mn, each of which includes methods, functions, and prop- lation evolution. The suggested algorithm employs a divide-
erties. Set p represents the available combinations for dividing n and-conquer strategy, as well as local and global search
modules into m clusters. Each item of p indicates a potential com- methodologies. Individuals are separated into groups, and each
bination of clustering options. The number of possible solutions for group searches in a distinct part of the total solution space using
clustering a program with n modules into m clusters is represented a specific imitation strategy.
by Sn, m (Stirling numbers) that is calculated by Eq. (1). A program The suggested OOA can handle the majority of graph-based
with five modules, for example, has 52 distinct clustering combina- optimization challenges. Another contribution of this study is
tions, but a 25-module program has 1,382,958,545 possible clus- the use of the OOA to tackle the software module clustering
tering combinations. The cluster intersection is empty, while the problem as a graph partitioning problem.
union of the m clusters equals all source code (S). As a result, the
SMC problem is technically classified as an NP-Complete problem The following five sections comprise the paper: The second sec-
(Chhabra, 2017; Yuste et al., 2022; Prajapati and Chhabra, 2018). tion provides an outline of major SMC research. Section 3 illus-
This forces academics to use heuristic ways to choose the appropri- trates and explains the recommended OOA method and its
ate grouping. application in SMC problem. Section 40 s first half discusses the
platform and tools that were utilized to carry out the proposed
Sðn; mÞ ¼ Sðn 1; m 1Þ þ m Sðn 1; mÞ approach. This section also includes evaluation criteria and data
n : number of modules in the software product ð1Þ sets related to the SMC methods. The study’s findings are pre-
sented and discussed in the second part of Section 4. Section 5 con-
m : number of clusters
cludes the paper and recommends future research in the field of
The primary goals of the study are as follows: SMC.
XinShe-Yang introduced the firefly algorithm in Mamaghani software. The modules of each cluster (subsystem) are consider-
and Hajizadeh (2014) (FA). Its foundation is based on swarm intel- ably connected. Swarm intelligence is used by the ACO algorithm
ligence. In this method, each firefly symbolizes a clustering combi- to solve a variety of search-based optimization issues. Each ant
nation with a specified light intensity (clustering quality). The in the proposed approach is a clustering solution. A high-quality
degree of light intensity may be quantified using a fitness function clustering has the highest coherence and the lowest coupling. This
(MQ). Fireflies try to approach optimal fireflies and change their method was tested on a variety of benchmark datasets. The find-
positions to get the best clustering combination and even the most ings indicate the higher performance of ACO in the SMC problem.
accurate timings. To address difficulties, the Firefly algorithm, a Furthermore, regarding the convergence speed and MQ value, the
non-discrete optimization approach, is utilized. It may, however, ACO-based approach typically beats the GA and PSO. In regard to
be used for specific problems such as the SMC problem. Firefly out- stability, all three solutions have the potential to overcome the
performs HC and GA on most benchmarks, according to experi- SMC problem.
mental data. The approach’s principal restrictions, particularly in By combining the shuffle frog leaping algorithm (SFLA) with GA
big software systems, are local optimum likelihood and approaches, an SMC method (Bölen) for clustering software mod-
sluggishness. ules was proposed in Arasteh et al. (2021). This method offers sev-
A hill climbing (HC)-based approach for building clustered eral advantages, like faster data convergence, greater
structural models of software source code was reported in modularization quality (MQ), higher success rate, and improved
Mahdavi et al. (2003). Because it includes N modules, MDG can stability. MDG, like the other techniques, is used to demonstrate
generate up to N initial clusters. Before the first hill climber starts, how various software components (modules) are linked. SFLA cov-
each software module is assigned to a random cluster. A fitness ers both local and international searches. In the SMC problem, each
function is used to assess the MQ of the created clusters. The pur- frog in SFLA is viewed as a clustering array (clustering combina-
pose of this strategy is to create clusters with the least amount of tion). Using the crossover operator, the best frogs in each meme-
connection and the greatest level of cohesion. At each stage of the plex were generated from the poorest frogs. The mutation
method, each hillclimber seeks to reach the next neighboring clus- operator is also performed for every memeplex individual, with
ter with a greater MQ. When the hillclimber notices another neigh- the option of optimizing the memeplex member with the lowest
bor in the new cluster, it goes in quest of another (climber with a strength. In terms of average MQ, the SFLA-GA methodology out-
higher MQ). When none of the clustering’s nearest neighbors can performed the other strategies in 80% of the benchmark instances.
find a optimal MQ value, the search activity is ended. The first The SFLA-GA approach, according to the convergence criteria, con-
stage’s hills finally join together to form a hill sequence. This strat- verges to the optimal solution faster than that of the HC, GA, and
egy has the potential to slip into the local optimum, searching for PSO algorithms in 90% of circumstances.
the global optimum more difficult (the optimal clustering). In Arasteh et al. (2022), a hybrid single objective strategy that
The genetic algorithm is a heuristic search technique that is merges the gray wolf algorithm (GWOA) and GA was developed
evolutionary in nature (GA). The GA has solved the HC approach’s for the SMC problem. The suggested method combines a swarm-
key flaws in the SMC problem. There is no way to get the best based and an evolutionary algorithm. For the SMC issue, the con-
grouping when using direct search techniques like the HC algo- ventional GWOA was discretized and tweaked. Experiments on
rithm. Such algorithms are incapable of dealing with huge search 14 prominent benchmarks reveal that this single-objective hybrid
spaces. In contrast, the search procedure in GA happens concur- approach outperforms the GA, PSO, and PSO-GA strategies in the
rently with the beginning population’s chromosomes. Each chro- SMC problem; greater MQ and quicker convergence speed are sig-
mosome refers to a clustering combination in GA. The starting nificant benefits of this method, especially in big software pack-
population consists of chromosomes selected at random (random ages. Many chaos-based heuristic algorithms for the SMC issue,
clustering combinations). The fitness function analyzes the chro- such as the Bat, Cuckoo, Teaching-Learning-Based, Black Widow,
mosomes in each iteration, intending to construct chromosomes and Grasshopper heuristic algorithms, were developed in
with a high degree of cohesion and a low degree of coupling. The (Arasteh, 2022). The effects of chaos theory on the effectiveness
search is then enlarged by updating the chromosomes of interest of various algorithms in this context have also been examined.
with the crossover and mutation operators (Mancoridis et al., The BWO, PSO, and TLB methods outperform the other methods
1999; Praditwong et al., 2011). According to the findings, the GA in the SMC issue, according to real-world application findings. Fur-
is an appropriate solution for the SMC problem in small and thermore, when the initial populations of these algorithms were
medium-sized software clusters. generated using the logistic chaos method, their performance
For selecting the best software application clusters, Arasteh and increased. The average MQ values for clusters formed by BWO,
colleagues proposed a hybrid PSO-GA approach (Arasteh et al., PSO, and TLB in the supplied benchmark set are 3.155, 3.120, and
2020). This approach seeks to address shortcomings in previous 2.778, accordingly.
methods (low convergence, inadequate MQ, low stability, and In Arasteh et al. (2022), an autonomous strategy (Savalan) for
inadequate success rate). This approach incorporates the advan- the SMC issue was proposed, that is based on a multi-objective
tages of both heuristic methods. When compared to PSO and GA genetic algorithm and a special combination of goal functions.
algorithms, this hybrid approach enhances clustering quality and The fundamental purpose of this study is to improve all clustering
provides rapid data convergence. Throughout the level, crossover goals at the same time (coupling, cohesion, cluster size, modular-
and mutation were used to update and improve particle position ization quality, and number). Six separate objective criteria were
by updating the speed vectors of all particles. Experiments on ten considered as optimization objectives in this study. As the multi-
well-known benchmark Module Dependency Graphs (MDGs) objective genetic algorithm in the proposed approach, the Pareto
reveal that the PSO-GA technique beats the standard strategy envelope-based selection algorithm (PESA) was used. This method
90% of the time. Furthermore, in 30% of the benchmarks, all three is useful for both little and major projects. Based on the results of
approaches obtained the same success rate. In 60% of the bench- the 14 benchmark programs, the primary advantage of this
mark programs, the PSO-GA technique outperforms the PSO and approach is that it improves all clustering goals at the same time.
GA algorithms in terms of stability. The code that was used is freely The results reveal that the Savalan technique concurrently
accessible for download. improves all clustering criteria. Savalan generates higher-quality
In Hatami and Arasteh (2020), the ant colony optimization clusters than similar technologies such as Bunch (Mancoridis
(ACO) approach was used for clustering the components of the et al., 1999), CIA (Chen, 1995), and Chava (Korn et al., 1999), and
3
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
it outperforms them in large software systems (MQ). Savalan was local best student. Algorithm 1 illustrates the pseudocode of the
released as free software for researchers and developers in main part of introduced OOA.
(Available online: http://savalan-smct.com/). As a result, the soft-
ware industry will benefit from both the theoretical and practical Algorithm 1. The pseudocode of the main part of the
implications of our research. This tool was built using the Java- proposed OOA.
Script programming language. Table 1 summarizes the key compo-
1. Initialize population size, iteration, number
nents of contemporary research and creative techniques in
of teams and size of teams;
complex software systems. The main disadvantages of the previous
2. nPop=Number of populations.
approaches include slow convergence, local optimum, and poor
3. n=number of Teams.
stability.
4. m=Size of Team.
5. itr=0;
3. Proposed method 6. While (itr < iteration)
7. {
In this study, a novel discrete heuristic algorithm was proposed. 8. Sort(population); //parallel bubble sort
Introducing, designing, and implementing a new discrete heuristic algorithm
algorithm is the first innovation of this research. The proposed 9. Team=Partition (population, n, m);
algorithm (OOA) can be used for solving discrete NP-hard opti- 10. globalBest=1;
mization problems. Adapting the OOA for SMC problem is the other 11. for i=2 to n
contribution of this study. SMC is one of the challenging optimiza- 12. {
tion problems in the field of software engineering. Producing the 13. localBest=i-1;
most effective structural model from a source code is the optimal 14. localWorst=i;
solution to the SMC problem. Clustering the n modules of a pro- 15. for j=1 to m do in parallel
gram into m clusters is formally considered a combination prob- 16. {
lem. In this problem, the module dependency graph (MDG) of 17. NewStd=Learn(Team[localBest][j],
the source code is generated (first stage) and then the OOA clusters Team[localWorst][j]); //1st step
the modules of the program using MDG. The generated structural 18. if(NewStd.cost < Team[localWorst]
model alleviates the cost of software maintenance. [j].cost)
19. Team[localWorst][j]= NewStd;
3.1. Olympiad algorithm 20. else
21. NewStd= Mutate(Team[localBest]
3.1.1. Algorithm structure [1])); //2nd step
For tackling the SMC problem, a novel discrete heuristic tech- 22. if(NewStd.cost < Team
nique was presented in this work. To solve the SMC problem, the [localWorst][j].cost)
Olympiad optimization algorithm (OOA) is presented and imple- 23. Team[localWorst][j]= NewStd;
mented as a discrete swarm algorithm. The suggested OOA uses 24. else
the swarm-based imitation technique as its local and global search 25. NewStd=Learn(Team[globalB
methods. OOA is a population and group-based heuristic method est][j], Team[localWorst][j]); //3rd step
that solves the optimization problems in divide and conquer form. 26. if(NewStd.cost < Team
Each member of the population in the OOA simulates the behavior [localWorst][j].cost)
of a student in the class. The proposed OOA mimics the learning 27. Team[localWorst][j]= NewStd;
process among students of a class who are preparing for the Olym- 28. else
piad exam. 29. NewStd= Mutate(Team
The steps of teaching and learning between the members of the [globalBest][1])); //4th step
population (students) in each iteration cause the evolution of the 30. if(NewStd.cost < Team
population. The proposed algorithm is a divide-and-conquer- [localWorst][j].cost)
based algorithm with local and global search strategies. As shown 31. Team[localWorst][j]=
in Fig. 1, the individuals (students) of the whole population are NewStd;
sequentially divided into equal size subgroups. Line 9 of Algorithm 32. else
1 indicates the implemented MATLAB code for the population divi- 33. NewStd= StdRandGeneration
sion. The individuals are divided into subgroups, and each sub- ();
group uses a specific imitation approach to search in a different 34. if(NewStd.cost < Team
region of the overall solution space. Fig. 1 shows the general work- [localWorst][j].cost)
flow of the OOA that can be used to solve an optimization problem. 35. Team[localWorst][j]=
There is competition among the individuals (students) to learn NewStd;
from other students. Each student has a memory for storing their 36. }
learning rate (position of the student in terms of learning). Each 37. }
student in the OOA was designed and implemented as a numeric 38. Evaluate the fitness of the population
array. The student population is made up of solutions. As depicted using equations (2-3);
in Fig. 1, the partitioning of the student population into n teams is 39. itr=itr + 1;
the first stage of the OOA after sorting. Each team includes m stu- 40. } //end of while
dents. The first team is the global best team, and the last team is 41. Return Team[globalBest][1]; //return the
the global worst team. Each team, comprised of the students, global best student as the best solution.
explores its local solution space. The first student of the first team
is the global best student, and the first student of each team is its
4
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
3.1.2. Population evolution by learning procedure the strong element. The best value of LearnCount is determined
The students are divided into teams of the population and try to experimentally. In this study, the optimal value of LearnCount is
learn from the best student of the adjacent team (the local best stu- 30% of the length of clustering array.
dent) or the global best team. The proposed learning operator
implements the local and global search of OA. Indeed, learning is
the main operator of the OOA to find the optimal solution to the Algorithm 2. The pseudocode of the learning operator in the
problem. The learning operator was introduced to improve the OOA.
population’s knowledge (fitness). The individuals (students) were
1 Function studentType Olampiyad_Learn(BestStd,
sorted based on their knowledge (fitness function). As shown in
WorstStd)
Fig. 2, OOA tries to improve the knowledge of the population by
2 {
the introduced learning operator. Learning operator includes four
3 nVar= length(Student_array);
steps. In the first step, the students of each team learn from the
4 LearnCount=ceil((30 * nVar)/100); %imitation
students of their adjacent team. As a result of the first step of learn-
count
ing the operator, the knowledge of the first team is transferred to
5 count=0;
other teams as a bubble.
6 i = 0;
Fig. 3 shows the first step of the proposed learning operator. In
7 NewStd=WorstStd;
this step, the knowledge of a team is transferred to the next adja-
8 while (count<=LearnCount and i < nVar)
cent team. The procedure of learning, like the bubble sort algo-
9 {
rithm, is performed serially from one team to the adjacent team.
10 aL=randi(nVar);
As shown in Fig. 3, all students of a learner team learn from the
11 if (WorstStd(aL)!=BestStd(aL))
corresponding students in the adjacent team (left side team). If
12 {
there is no improvement in the knowledge of the weak students
13 NewStd(aL)=BestStd(aL);
of the weak team, the second stage of the learning process is per-
14 count=count+1;
formed. In the second improvement step, the best student of the
15 }
learner’s team (right side team) is mutated to make diversity.
16 {i = i + 1;
The mutation operator implements a local search on the best stu-
17 }
dent of the weak team. If no improvement was made in the second
Return(NewStd);
step, then the third step is executed. In the third step, all students
}
of the learner team (weak team) learn from the corresponding stu-
dents of the global best team (first team).
If the global-best team’s students could not teach the worst
team’s students, then the mutation operator is performed on the 3.2. Adapting the olympiad algorithm to SMC problem
globally best student. The mutation of the global best may avoid
the local optimum by making minor diversity. Finally, students 3.2.1. Problem specification
(search agents) from different teams are combined to produce a In the second phase of this study, the proposed innovative algo-
new population. The learning operator is performed iteratively rithm (OOA) was used to solve the SMC problem. The recom-
on the student population. Algorithm 2 illustrates the pseudocode mended OOA uses the MDG of the program source code to
learning operator that is conducted in each iteration of the OOA. In arrange related modules together. As a result, the OOA’s input is
the proposed method, learn operator (imitation operator) was the MDGs of the benchmark source code. Fig. 4 depicts the MDG
implemented by crossover operator. Some of bits (cells) in the extracted from the source code. The nodes depict the software
worst individual are replaced by the corresponding elements of modules, while the edges reflect the connections between them
best individual. The LearnCount indicates the number of bits from (calls, inheritance, and association). Fig. 4 displays the software
the weak element that should be replaced by the equivalent bits in product’s six components as well as the related dependency
Table 1
Specifications of prior methods and tools.
5
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
matrix. The values of the matrix elements represent the module automatically. The graphviz libraries can be used to convert the
linkages. The MDG is used to generate the dependency matrix. Dif- MDG text file to the visual graph model (Jalali et al., 2013).
ferent programming environments, such as visual studio, visual Each student in the SMC issue is represented by a numeric array
studio code, and eclipse, may produce the MDG of a source code (clustering array). Fig. 5 depicts a student’s structure in the SMC
6
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
modules M1, M14, M18, and M22 were all grouped (cluster 1).
Cluster 2 of the clustered MDGs depicted in Fig. 5 comprises M2,
M13, M16, and M21. The SMC approaches attempt to organize
the modules that are the most comparable and connected into
the same cluster. As a result, any change to the code of a cluster
module will most likely affect the other modules in the same clus-
ter. This finding assists the program developer in managing the
impact propagation when updating a module’s source code.
X
m
MQ ¼ MF k ð3Þ
k¼1
Fig. 4. The MDG and the dependency matrix of a software product with six modules and their relations.
Fig. 5. The structure of a student in OOA is used to cluster a program with twenty-two modules into five clusters.
different programing IDEs (such as Visual Studio). The MDGs are research is depicted in Fig. 6. This software is made up of 20 mod-
simply converted to the adjacency matrix by the developed code ules linked together by 57 connections. The modules that are the
in this study. The proposed OOA takes the adjacency matrix most closely related have been grouped. The fitness function deter-
(shown in Fig. 4) of a MDG, as input, and finds its best clustering mines how comparable the modules in this study are (Eequation
model. The number of rows and columns of the matrix is equal 3). The proposed technique seeks to group modules that are most
to the number of modules of the related program. The input of similar into the same cluster. Fig. 6 demonstrates that the modu-
the proposed method is a matrix (shown in Fig. 4) and its out is larization quality (MQ), cohesiveness, and coupling are 1.858, 36,
in the form of a linear array (shown in Fig. 5). The benchmark pro- and 21 correspondingly. The higher the MQ criterion, the greater
grams were chosen to reflect real-world complexity in terms of the clustering quality.
nodes and connections (edges) between modules. The MDG of In this study, the graph (MDG) is generated automatically and
the mtunis benchmark (as a small benchmark) utilized in the directly from the source code using the programing platforms tools
8
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
Table 2
Parameters of SMC algorithms that have been adjusted experimentally.
Fig. 6. The clustered MDG of the mtunis software with 20 modules and 57 relations among the modules.
Table 4
The generated clusters’ MQ for mtunis, SPDB, ispell and rcs by different SMC algorithms.
rate, and stability. Figs. 7, 8, and 9 demonstrate the MQ of the clus- Mtunis is a tiny MDG with 30 modules and 57 connections
ters formed by different SMC methods for different datasets. On between them. In this benchmark, all SMC methods perform simi-
each benchmark dataset, each method was run twenty times. larly. Except for COA, all methods converge to optimum solutions
Fig. 7 depicts the MQ values achieved by several SMC methods (clusters with optimal MQ) in the first iteration. Spdb is another lit-
for the benchmarks mtunis, spdb, ispell, and rcs. In the manuscript, tle MDG used to assess the performance of the SMC algorithms.
the term cost refers to the fitness (MQ) of the solution created the This benchmark contains 21 modules and 16 connections between
SMC algorithms; the fitness (MQ) is calculated by Eqs. (2) and (3). them. Fig. 7 shows that OOA and SCSO outperform the other
10
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
Table 5
The generated clusters’ MQ for Bison, cia, Dot and php by different SMC algorithms.
Table 6
The generated clusters’ MQ for grappa and Incle by different SMC algorithms.
Fig. 7. The MQs of different SMC algorithms for mtunis, spdb, ispell and rcs MDGs.
algorithms in terms of MQ and success rate. In the spdb bench- obtained by OOA for spell are respectively 2.267 and 2.4990.
mark, the rate of success by the OOA and SCSO is close to 100%. Whereas the best MQ values provided by the other algorithm are
Ispell is the other midsize benchmark that is used as a standard lower than the worst value of OOA. Rcs is the other benchmark
SMC benchmark. This MDG includes 24 modules and 97 connec- MDG that consists of 29 modules and 155 connections (edges).
tions. In this benchmark, OOA is considerably superior to the other As shown in Fig. 7, OOA outperforms the other SMC algorithms
SMC algorithms. The minimum and maximum values of MQ according to the MQ.
11
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
Fig. 8. The MQs of the different SMC algorithms for bison, cia, dot and php MDGs.
Fig. 9. The MQs of the different SMC algorithms for grappa, and incle MDGs.
Fig. 8 illustrates the performance of the SMC algorithms on the of the other algorithm. After OOA, GWO could generate the highest
bison, cia, dot, and php benchmarks. bison, as the other MDG MQ (37591). The other benchmark used for the evaluation of the
benchmark, includes 37 modules and 167 connections. OOA is con- OOA is grappa which includes 86 modules and 295 connections
siderably superior to the other SMC algorithms. In this benchmark, among the modules. Like the other MDG, OOA has outstanding per-
the provided MQ by the OOA is 2.6554 which is higher than the formance in the grappas benchmark. The obtained MQ by the OOA
other algorithms. In this benchmark, GWA is the most efficient is about 1.7 times the MQ obtained by the GWO. As showsn in
SMC algorithm. The other benchmark (cia) consists of 38 modules Fig. 9, incle as the other benchmark MDG was used to evaluate
and 166 connections among the modules. The MQ of the generated the SMC algorithms. This MDG consists of 164 modules and 360
clusters for the cia MDG is 2.6345. The worst MQ obtained during connections. In this benchmark, OOA generated the optimal clus-
10 executions is about 2.4691. Another benchmark is dot which ters with the highest MQ.
includes 42 modules and 248 connections. Like the other bench- Fig. 10 shows the average MQ obtained by the six SMC algo-
marks, OOA considerably outperforms the other algorithms. The rithms along with the MQ of the OOA. To evaluate the average
average value of MQ after 10 times executions is 2.5133. One of MQ, each algorithm was executed ten times on each dataset
the large benchmarks that have been used in the experiments is (MDG). The clusters generated for the modules of the small soft-
php; this MDG includes 62 modules and 163 connections. As ware products by all SMC algorithms have similar quality (MQ).
shown in Fig. 8, OOA has considerably higher performance in the As shown in Fig. 10, in the mtunis and rcs benchmarks, all the algo-
large benchmarks. The MQ of the generated clusters by OOA in rithms generate the same quality clusters. Analysis of the results
the best case is 4.1904 which is considerably higher than the MQ indicates that the generated clusters with the same MQ may be
12
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
Fig. 10. The average MQ obtained by ten executions of different algorithms for ten benchmark programs.
slightly different. Determination of the best-clustered model (as a reliability (lower STDV) are the main merits of the OOA in SMC
design model) from the generated clusters with the same MQ is problem.
one of the challenging problems of software engineering. The aver- Table 7 displays the best MQ produced by various SMC methods
age MQ values computed from 10 executions show that OOA out- across 10 runs. As seen in Table 7, OOA produces the best MQ
performs the other techniques. The difference in average MQ across all benchmarks. Indeed, the OOA’s performance in the
between the OOA and other methods is significant, especially in SMC problem is independent of the number of MDGs. Indeed, the
big benchmarks. The suggested OOA may be used to construct best MQ of the OOA is greater than the other methods in all bench-
the structural model from real-world software with a significant marks. In the SMC problem, OOA is an essentially discrete algo-
number of code lines. Regarding the results of experiments, in all rithm that outperforms the other discretized algorithms (PSO,
benchmarks, OOA generates more high-quality structural models SCSO, COA, and GWO) (as a discrete problem). The OOA-derived
than the other six algorithms. structural models are of greater quality (higher cohesion and lower
Reliability of the results generated by the heuristic algorithms coupling) than the models created by the other SMC methods.
(as indeterministic algorithms) is the other performance criterion Table 8 demonstrates the worst-case performance of the SMC algo-
that should be considered into account. The heuristic algorithm rithms. The worst MQ of each algorithm from the generated MQs
with higher MQ may generate low-quality clusters in most cases. during ten executions is shown in Table 8 Except for dot bench-
Hence, the standard deviation (STDV) among the generated results mark in all benchmarks the MQ of the OOA is superior to the other
during different executions should be taken into consideration. To algorithms. In all benchmarks (except for dot benchmark), the per-
this end, the STDV of the MQs obtained from ten executions of each formance of OOA in the best, worst, and average modes is more
algorithm were calculated and shown in Fig. 11. In most bench- than other algorithms.
marks (except for incle), the STDV among the generated results The next experiments have been carried out to compare the
of OOA is lower than the other six algorithms. The lower the STDV, performance of the OOA with the existing SMC tools. Bunch
the higher the reliability of the algorithm. The STADV of the results (Prajapati and Chhabra, 2018) and Savalan (Zadahmad et al.,
obtained by GA, PSO, PSO-GA, SCSO, COA, GWO, and OOA are 2011) have been selected as the automatic SMC tools to compare
respectively 0.07839, 0.07678, 0.11536, 0.09159, 0.08013, 0.1027 with the OOA. Bunch uses GA and HC to cluster the modules of
and 0.0752. As shown the STDV of the OOA is lower than the other software; it takes the matrix of MDG as input and generates the
algorithms. Generating high-quality clustered models and higher clustered model by the selected algorithm (GA or HC). Savalan is
Fig. 11. The standard deviation among the MQs generated from ten times executions of different algorithms.
13
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
Table 7
The MQ of different SMC algorithms for different benchmarks in the best cases during ten executions.
mtunis spdb ispell Rcs bison Cia Dot Php Grappa Incle AVG
GA 2.3140 5,0000 2.1774 2.1430 2.4135 2.5180 2.4060 3.3764 3.9930 3.6666 3.0007
PSO 2.3140 4.8300 2.1899 2.1523 2.4808 2.5160 2.4410 3.6097 4.6810 3.9411 3.1155
PSO-GA 2.3140 5,0000 2.2491 2.1420 2.4752 2.5590 2.4830 3.7310 4.6769 4.3889 3.2019
SCSO 2.3140 5,0000 2.1899 2.1708 2.4982 2.5000 2.4950 3.7083 5.1012 4.2540 3.2231
COA 2.3140 4.8300 2.1899 2.1549 2.4099 2.5182 2.6041 3.5759 4.6815 4.0731 3.1351
GWO 2.3140 5,0000 2.1899 2.1499 2.5284 2.5594 2.4836 3.7591 5.1012 4.3889 3.2474
OOA 2.3140 5,0000 2.4990 2.1499 2.6554 2.6345 2.5644 4.1904 8.7945 7.6701 4.0472
Best Alg. All Except for PSO, COA OOA COA OOA OOA COA, OOA OOA OOA OOA OOA
the other web base automatic tool that was developed in JavaScript to evaluate the performance of all heuristic algorithms in finding
programing language. Savalan takes the MDG file and automati- the optimal solution of an optimization problem. In Fig. 13, the
cally generates the adjacency matrix; then clusters the software x-axis indicates the number of repetitions of the algorithm and
modules using multi-objective GA. Savalan generates the more the y-axis indicates the fitness of the answer obtained from the
practical output in the form of a clustered graph. The output of algorithm. An effective algorithm obtains the best answer in the
the Savalan is more understandable by the software developers. least repetition. An algorithm may fall into local optimality and
The output of the Savalan is a structural model of the input source cannot make progress in calculating the optimal solution. The abil-
code. The MQ of the generated models by Bunch, Savalan, and OOA ity of a heuristic algorithm to converge to the optimal solution is
was compared with each other. As shown in Fig. 12, in 80% of the one of the evaluation criteria. Fig. 13 shows the convergence of
benchmarks, OOA has a higher MQ value. In the php and grappa the swarm-based and efficient algorithms (PSO, GWO, and OOA)
benchmarks, Savalan is superior to Bunch and OOA. The average for the small MDGs. Approximately, in the mtunis, spdb, and rcs
MQ of the Bunch, Savalan, and OOA are 3.1904, 6.1977, and all algorithms have the same performance in terms of MQ. In the
6.3634 respectively. Indeed, the average performance of the OOA ispell benchmark, the OOA converges to the higher MQ; indeed,
is higher than that of Bunch and Savalan. OOA can generate more in the ispell benchmark, the generated clustered model by the
effective and understandable structural models that can be used OOA has higher modularization quality. Overall, the performance
by software developers during the maintenance phase. of the proposed method in the worst case is equal to the perfor-
The other performance criterion of the heuristic algorithms in mance of the PSO and GWO in the small program. Fig. 14 shows
optimization problems is their convergence speed. The conver- the convergence of the PSO, GWO, and OOA in the larger bench-
gence speed is one of the important criteria that have been used mark MDGs. As explained in Table 2 the used MDGs are related
Table 8
The MQ of different SMC algorithms for different benchmarks in the worst cases during ten executions.
mtunis spdb ispell Rcs bison Cia Dot Php Grappa Incle AVG
GA 2.3140 4.7410 2.1516 2.0882 2.2680 2.3000 2.1934 3.1161 3.3965 3.029 2.75978
PSO 2.3140 4.7410 2.1512 2.0653 2.2986 2.3000 2.3281 3.1367 3.8985 3.519 2.875242
PSO-GA 2.3140 3.8045 2.1024 1.9963 2.2602 2.3720 2.3871 3.1963 4.1747 3.748 2.83555
SCSO 2.3140 5.0000 2.0548 2.0966 2.2580 2.2720 2.5771 3.1577 4.5456 3.6061 2.98819
COA 2.0579 4.7412 2.1627 2.1237 2.2633 2.3252 2.2970 3.1897 3.5570 3.6841 2.84018
GWO 2.3140 3.8045 2.1024 2.0958 2.2602 2.3965 2.2859 3.4512 4.5945 4.0677 2.93727
OOA 2.3140 5.0000 2.2675 2.0966 2.6052 2.4910 2.4476 4.0307 8.2371 6.9109 3.83998
Best Alg. All SCSO, OOA OOA SCSO, OOA OOA OOA SCSO, OOA OOA OOA OOA OOA
Fig. 12. Comparing the performance of the OOA with the single-objective and multi-objective SMC tools.
14
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
Fig. 13. Comparing the convergence speed of the PSO, GWO and OOA as three efficient swarm-based Algorithms for mtunis, spdb, ispell and rcs.
to real-world software products. In the bison benchmark, the OOA been obtained in the cia benchmark. In this benchmark, the OOA
provides optimal solutions (structural models) sooner than the converges to the optimal solution before iteration 45. Whereas
other algorithms. in this benchmark, the OOA attains the optimal the PSO and GWO never attain the solution generated by OOA.
MQ in the 41st iteration. GWO is one of the effective continuous The other hard-to-understand benchmark is dot. This benchmark
heuristic algorithms in many of the optimization problems; but, includes 248 connections among 42 modules. The source code
has lower performance in the SMC problem. Similar results have and MDG of this program are hard to understand and consequently
Fig. 14. Comparing the convergence speed of the PSO, GWO, and OOA as three efficient swarm-based Algorithms for bison, cia, dot and php.
15
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
Fig. 15. Comparing the convergence speed of the PSO, GWO and OOA as three efficient swarm-based Algorithms for grappa and incle.
Table 9
The MQ and standard deviation of the generated clusters for the MDGs by the SMC Algorithms.
hard to modify. OOA generates the optimal clustered model for this crete graph-based optimization problems in different fields of
benchmark before iteration 75. Regarding the results of conducted science and industry is the other future study.
experiments, ﺩone of the algorithms can solve the proposed
algorithm (OOA). The results of experiments on the php MDG indi-
cate the superiority of the OOA over the other algorithms in terms 5. Conclusions
of convergence. The MDGs of grappa and incle are the most com-
plex benchmark used in this study. As shown in Fig. 15, the results A sophisticated software system’s source code may not always
obtained by OOA have considerably higher MQ than the generated show its structure. Among the most difficult tasks in software engi-
models by the other algorithms. neering is identifying the impacted code parts of a source code
Table 9 shows the provided MQ by different SMC algorithms throughout the maintenance process. By making it easier to under-
and the related standard deviation. The suggested OOA is inher- stand how a program is put together, clustering the modules can
ently discrete optimization algorithm that solves the problem in reduce maintenance expenses. The study’s purpose was to develop
divide-and-conquer form. In this algorithm, the population is clustered structural models that surpassed previous techniques in
divided into subpopulations (teams) and a specific local search terms of cohesion, coupling, and MQ value. OOA was introduced as
(learn) operator was carried out into the created teams. In global an evolutionary discrete method for creating the clustered design
search, the individuals (students) imitate (learn) from the individ- model of a source code program. As benchmark programs, all small
uals of the best team. In each iteration, the global best team’s stu- and large software applications were chosen. Six alternative clus-
dents are the best individuals of the whole populations. The learn tering algorithms were created in tandem with the OOA to test
operator is performed among the students of the best team. At the their performance. The suggested OOA, as an intrinsic discrete
end of each iteration, the conquer operator combines the local best and divide-and-conquer-based algorithm, uses local and global
students and a more elite population is produced. Hence, the search operators to explore the solution space (the potential com-
knowledge (fitness) of the best students transfers to the other stu- binations of the modules clustering). In the OOA, the population
dents like the bubble. Indeed, the bubble transmits knowledge was separated into subpopulations (teams) and then united with
among the population. Furthermore, the knowledge of the best the subpopulations’ selected solutions. The best individuals (stu-
students is improving by the global learn operator. The local and dents) of the created teams navigate the search process. The OOA
global learn navigates the population to the optimal solutions. avoids the local optimum explicitly and makes a compromise
Regarding the structure of the OOA, the steps of the algorithm between cohesiveness and coupling. Extensive experiments were
are parallelizable. The design and implementation of the parallel conducted utilizing ten distinct software source codes. OOA out-
OOA (POOA) is considered as the future study. In the SMC problem, performed other algorithms (GA, PSO, PSO-GA, SCSO, COA, and
as a discrete and graph-based optimization problem, OOA is con- GWO) in general, especially in big software projects in terms of
siderably superior to other effective heuristic algorithms like MQ, cohesion, coupling, and stability. One of the future research
GWO. PSO, PSO-GA, COA and SCSO. Hence, solving the other dis- projects that has been recommended is to build the algorithms
16
B. Arasteh, R. Sadegi, K. Arasteh et al. Journal of King Saud University – Computer and Information Sciences 35 (2023) 101655
in a way that is independent of the size of the software product. Arasteh, B., Abdi, M., Bouyer, A., 2022. Program source code comprehension by
module clustering using a combination of discretized gray wolf and genetic
The impact of chaotic equations on OOA effectiveness may be stud-
algorithms. Adv. Eng. Softw. 173. https://doi.org/10.1016/j.
ied further. Incorporating different swarm and evolution-based advengsoft.2022.103252. ISSN 0965-9978.
tactics into the SMC problem may yield optimal outcomes. It is Arasteh, B., Karimi, M.B., Sadegi, R., 2023. Düzen: generating the structural model
suggested that future research on improving the fitness function from the software source code using shuffled frog leaping algorithm. Neural
Comput. Appl. 35, 2487–2502. https://doi.org/10.1007/s00521-022-07716-1.
to account for new software metrics be conducted. Even though Arasteh, B., Seyyedabbasi, A., Rasheed, J., Abu-Mahfouz, M.A., 2023. Program source-
global modules have been used as universal criteria in a recent code re-modularization using a discretized and modified sand cat swarm
study, they are not included in MQ. Global modules receive calls optimization algorithm. Symmetry. 15 (2), 401. https://doi.org/10.3390/
sym15020401.
from more than two independent modules but do not make any Available online: http://savalan-smct.com/ (accessed on).
calls themselves. Solving the other discrete graph-based optimiza- Bouyer, A., Arasteh, B., Movaghar, A., 2007. A new hybrid model using case-based
tion problems in different fields of science and industry is the other reasoning and decision tree methods for improving speedup and accuracy. In:
IADIS International Conference of Applied Computing.
future study. Finally, the optimization methods proposed in Chen, Y., 1995. Reverse engineering. In: Krishnamurthy, B. (Ed.), Practical Reusable
(Arasteh et al., 2014; Keshtgar and Arasteh, 2017; Zadahmad Unix Software. John Wiley & Sons, Hoboken, NJ, USA, pp. 177–208 (Chapter 6).
et al., 2011; Bouyer et al., 2007; Arasteh et al., 2023; Jalali et al., Chhabra, J.K., 2017. Improving the modular structure of software system using
structural and lexical dependency. Inf. Softw. Technol. 82, 96–120.
2013; Ghaemi and Arasteh, 2020; Arasteh et al., 2020; Tutsoy, Chhabra, J.K., 2017. Improving package structure of object-oriented software using
2022) can be investigated in SMC techniques. multi-objective optimization and weighted class connections. J. King Saud Univ.
Comput. Inf. Sci. 29, 349–364. https://doi.org/10.1016/j.jksuci.2015.09.004.
Chhabra, A.J.K., 2018. TA-ABC: Two-archive artificial bee colony for multi-objective
Ethical and informed consent for data used software module clustering problem. J. Intell. Syst. 27, 619–641. https://doi.org/
10.1515/jisys-2016-0253.
Ghaemi, A., Arasteh, B., 2020. SFLA-based heuristic method to generate software
The data used in this research does not belong to any other per- structural test data. J. Softw. Evol. Proc. 30, e2228.
son or third party and was prepared and generated by the Hatami, E., Arasteh, B., 2020. An efficient and stable method to cluster software
researchers themselves during the research. The data of this modules using ant colony optimization algorithm. J. Supercomput. 76, 6786–
6808.
research will be accessible by other researchers.
Mansour Jalali, Asgarali Bouyer, Bahman Arasteh, Maryam Moloudi, 2013. The effect
of cloud computing technology in personalization and education improvements
and its challenges, Proc. - Social Behav. Sci. 83, 655–658, ISSN 1877-0428,
Data Availability Access https://doi.org/10.1016/j.sbspro.2013.06.124.
Keshtgar, A., Arasteh, B., 2017. Enhancing software reliability against soft-error
The data relating to the current study is available on the google using minimum redundancy on critical data. Int. J. Comput. Netw. Inf. Secure. 9,
51. https://doi.org/10.5815/ijcnis.2017.05.03.
drive and can be freely accessed by the following link: Korn, J., Chen, Y., Koutsofios, E., 1999. Chava: Reverse Engineering and Tracking of
https://drive.google.com/drive/folders/1TmZWpEzmkDqWI-yjJ0EJ_ Java Applets. In: Proceedings of the Working Conference on Reverse
fyKMMzFUB78?usp=share_link. Engineering, 6–8 October 1999; Atlanta, GA, USA.
Kumari, A.C., Srinivas, K., Gupta, M., 2013. Software module clustering using a
hyper-heuristic based multi-objective genetic algorithm. In‘‘: Proceedings of the
Declaration of Competing Interest 3rd IEEE International Advance Computing Conference (IACC), 22–23 February
2013, Ghaziabad, India; IEEE.
Mahdavi, K., Harman, M., Hierons, R.M., 2003. A multiple hill climbing approach to
The authors declare that they have no known competing finan- software module clustering. In: Proceedings of the International Conference on
cial interests or personal relationships that could have appeared Software Maintenance, ICSM 2003, Amsterdam, The Netherlands 22–26
to influence the work reported in this paper. September 2003, IEEE, 2003.
Mamaghani, A., Hajizadeh, M., 2014. Software Modularization Using the Modified
Firefly Algorithm, 8th. 7. Malaysian Software Engineering Conference (MySEC).
References Mancoridis, S., Mitchell, B.S., Chen, Y., Gansner, E.R., 1999. Bunch: A clustering tool
for the recovery and maintenance of software system structures. In:
Proceedings IEEE International Conference on Software Maintenance 1999
Amarjeet, Chhabra, J.K., 2017. Harmony search-based modularization for object-
(ICSM’99), 30 August–3 September 1999, Oxford, UK.
oriented software systems. Comput. Lang. Syst. Struct. 47, 153–169. https://doi.
Praditwong, K., Harman, M., Yao, X., 2011. Software module clustering as a multi-
org/10.1016/j.cl.2016.09.003.
objective search problem. IEEE Trans. Softw. Eng. 37, 264–282. https://doi.org/
Arasteh, B., 2022. Clustered design-model generation from a program source code
10.1109/tse.2010.26.
using chaos-based metaheuristic algorithms. Neural Comput. Appl., 1–23
Prajapati, A., Chhabra, J.K., 2018. A particle swarm optimization-based heuristic for
https://doi.org/10.1007/s00521-022-07781-6.
software module clustering problem. Arab. J. Sci. Eng. 43, 7083–7094. https://
Arasteh, B., Pirahesh, S., Zakeri, A., Arasteh, B., 2014. Highly available and
doi.org/10.1007/s13369-017-2989-x.
dependable E-learning services using grid system. Procedia-Social Behav. Sci.
Sun, J., Ling, B., 2018. Software module clustering algorithm using probability
143, 471–476. https://doi.org/10.1016/j.sbspro.2014.07.519. ISSN 1877-0428.
selection. Wuhan Univ. J. Nat. Sci. 23, 93–102.
Arasteh, B., Razieh, S., Keyvan, A., 2020. ARAZ: A software modules clustering
Tutsoy, O., 2022. Pharmacological, non-pharmacological policies and mutation: an
method using the combination of particle swarm optimization and genetic
artificial intelligence based multi-dimensional policy making algorithm for
algorithms. Intell. Decis. Technol. 14 (4), 449–462.
controlling the casualties of the pandemic diseases. IEEE Trans Pattern Anal
Arasteh, B., Razieh, S., Keyvan, A., 2020. ARAZ: A software modules clustering
Mach Intell. 44 (12), 9477–9488. https://doi.org/10.1109/TPAMI.2021.3127674.
method using the combination of particle swarm optimization and genetic
Epub 2022 Nov 7 PMID: 34767503.
algorithms. Intell. Decis. Technol. 14, 449–462.
Yuste, J., Duarte, A., Pardo, E.G., 2022. An efficient heuristic algorithm for software
Arasteh, B., Sadegi, R., Arasteh, K., 2021. Bölen: Software module clustering method
module clustering optimization. J. Syst. Softw. 190, 111349. https://doi.org/
using the combination of shuffled frog leaping and genetic algorithm. Data
10.1016/j.jss.2022.111349. ISSN 0164-1212.
Technol. Appl. 55, 251–279.
Zadahmad, M., Arasteh, B., Yousefzadeh Fard, P., 2011. A pattern-oriented and web-
Arasteh, B., Fatolahzadeh, A., Kiani, F., 2022. Savalan: Multi objective and
based architecture to support mobile learning software development. Procedia
homogeneous method for software modules clustering. J. Softw. Evol. Proc. 34
Soc. Behav. Sci. 28, 194–199. https://doi.org/10.1016/j.sbspro.2011.11.037.
(1), e2408.
17