Skip to main content
Log in

A multi-agent evolutionary algorithm for software module clustering problems

  • Methodologies and Application
  • Published:
Soft Computing Aims and scope Submit manuscript

Abstract

The aim of software module clustering problems (SMCPs) is to automatically find a good quality clustering of software modules based on relationships among modules. In this paper, we propose a multi-agent evolutionary algorithm to solve this problem, labeled as MAEA-SMCPs. With the intrinsic properties of SMCPs in mind, three evolutionary operators are designed for agents to realize the purpose of competition, cooperation, and self-learning. In the experiments, practical problems are used to validate the performance of MAEA-SMCPs. The results show that MAEA-SMCPs can find clusters with high quality and small deviations. The comparison results also show that MAEA-SMCPs outperforms two existing multi-objective algorithms, namely MCA and ECA, and two existing single-objective algorithms, namely GGA and GNE, in terms of MQ.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

References

  • Basil VR, Turner AJ (1975) Iterative enhancement: a practical technique for software development. IEEE Trans Softw Eng SE-1(4):390–396

  • Choi SC, Scacchi W (1990) Extracting and restructuring the design of large systems. IEEE Softw 7(1):66–71

    Article  Google Scholar 

  • Constantine LL, Yourdon E (1979) Structured design. Prentice Hall, USA

  • Doval D, Mancoridis S, Mitchell BS (1999) Automatic clustering of software systems using a genetic algorithm. In: Proceedings of IEEE conference on software technology and engineering practice (STEP’99), pp 73–81

  • Harman M, Hierons R, Proctor M (2002) A new representation and crossover operator for search-based optimization of software modularization. In: Proc. genetic and evolutionary computation conf., pp 1351–1358

  • Harman M, Swift S, Mahdavi K (2005) An empirical study of the robustness of two module clustering fitness functions. In: Proc. of the 7th annual conf. on genetic and evolutionary computation, pp 1029–1036

  • Hester SD, Parnas DL, Utter DF (1981) Using documentation as a software design medium. Bell Syst Tech J 60(8):1941–1977

    Article  Google Scholar 

  • Holt RC (1983) Concurrent Euclid, the UNIX system and Tunis. Addison Wesley, Reading

    Google Scholar 

  • Holt RC, Cordy JR (1988) The turing programming language. Commun ACM 31(12):1410–1423

    Article  Google Scholar 

  • Hutchens DH, Basili VR (1985) System structure analysis: clustering with data bindings. IEEE Trans Softw Eng 11(8):749–757

    Article  Google Scholar 

  • Koschke R (2000) Atomic architectural component recovery for program understanding and evolution. PhD thesis, Inst. For Computer Science, Univ. of Stuttgart

  • Kumari AC, Srinivas K (2013) Software module clustering using a fast multi-objective hyper-heuristic evolutionary algorithm. Int J Appl Inf Syst 5(6):12–18

    Google Scholar 

  • Kumari AC, Srinivas K, Gupta MP (2013) Software module clustering using a hyper-heuristic based multi-objective genetic algorithm. In: 2013 IEEE 3rd international advance computing conference (IACC), pp 813–818

  • Liu J, Zhong W, Jiao L (2006) A multiagent evolutionary algorithm for constraint satisfaction problems. IEEE Trans Syst Man Cybern Part B 36(1):54–73

  • Liu J, Zhong W, Jiao L (2010) A multiagent evolutionary algorithm for combinatorial optimization problems. IEEE Trans Syst Man Cybern Part B 40(1):229–240

  • Lutz R (2002) Recovering high-level structure of software systems using a minimum description length principle. In: Proc. 13th Irish conf. artificial intelligence and cognitive science

  • Mahdavi K (2005) A clustering genetic algorithm for software modularization with a multiple hill climbing approach. Ph.D. dissertation, Brunei University, UK

  • Mahdavi K, Harman M, Hierons RM (2003a) A multiple hill climbing approach to software module clustering. In: Proceedings of the international conference on software maintenance, pp 315–324

  • Mahdavi K, Harman M, Hierons RM (2003b) Finding building blocks for software clustering. In: Proc. of genetic and evolutionary computation conference, pp 2513–2514

  • Mamaghani AS, Meybodi MR (2009) Clustering of software systems using new hybrid algorithms. In: Proceedings of the ninth IEEE international conference on computer and information technology (CIT’09), vol 1

  • Mancoridis S, Mitchell BS, Rorres C, Chen YF, Gansner ER (1998) Using automatic clustering to produce high-level system organizations of source code. In: Proc. int’l workshop program comprehension, pp 45–53

  • Mancordis S, Mitchell BS, Chen Y, Gansner ER (1999) Bunch: a clustering tool for the recovery and maintenance of software system Structures. In: Proc. of int. conf. of software, maintenance, pp 50–59

  • Mitchell BS (2002) A heuristic search approach to solving the software clustering problem. Ph.D. dissertation, Drexel University, USA

  • Mitchell BS, Mancoridis S (2002) Using heuristic search techniques to extract design abstractions from source code. In: Proc. genetic and evolutionary computation conf., pp 1375–1382

  • Praditwong K (2011) Solving software module clustering problem by evolutionary algorithm. In: Proc. of the 8th international joint conference computer science and software engineering, pp 154–159

  • Praditwong K, Yao X (2006) A new multi-objective evolutionary optimisation algorithm: the two-archive algorithm. In: Cheung Y-M, Wang Y, Liu H (eds) Proc. int’l conf. computational intelligence and security, vol 1, pp 286–291

  • Praditwong K, Harman M, Yao X (2011) Software module clustering as a multi-objective search problem. IEEE Trans Softw Eng 37(2):264–282

  • Pressman RS (2005) Software engineering: a practitioner’s approach, 6th edn. McGraw-Hill Higher Education, Maidenheach

  • Tasgin M, Herdagdelen A, Bingol H (2007) Community detection in complex networks using genetic algorithms. arXiv:0711.0491

  • Zhong W, Liu J, Xue M, Jiao L (2004) A multiagent genetic algorithm for global numerical optimization. IEEE Trans Syst Man Cybern Part B 34(2):1128–1141

Download references

Acknowledgments

This work is partially supported by the EU FP7-PEOPLE-2009-IRSES project under Nature Inspired Computation and its Applications (NICaiA) (247619), the Outstanding Young Scholar Program of National Natural Science Foundation of China (NSFC) under Grant 61522311, the General Program of NSFC under Grant 61271301, the Overseas, Hong Kong and Macao Scholars Collaborated Research Program of NSFC under Grant 61528205, the Research Fund for the Doctoral Program of Higher Education of China under Grant 20130203110010, and the Fundamental Research Funds for the Central Universities under Grant K5051202052.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jing Liu.

Ethics declarations

Conflict of interest

The authors declare that there is no conflict of interest regarding the publication of this paper.

Additional information

Communicated by V. Loia.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Huang, J., Liu, J. & Yao, X. A multi-agent evolutionary algorithm for software module clustering problems. Soft Comput 21, 3415–3428 (2017). https://doi.org/10.1007/s00500-015-2018-5

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00500-015-2018-5

Keywords

Navigation