skip to main content
research-article

Software Architecture Recovery using Genetic Black Hole Algorithm

Published: 06 February 2015 Publication History

Abstract

Software clustering is a technique that is used to manage a software system by partitioning it into smaller subsystems containing highly related modules. Search-based software clustering techniques are found to be beneficial in effective partitioning of software systems. In this paper, we propose a search-based technique that is based on a combination of a nature-inspired black-hole algorithm and a genetic algorithm for software clustering. In order to evaluate the success of this approach, it has been applied to some real-world software systems. It is observed that this approach deduces a structure similar to the original architecture of the software system concerned.

References

[1]
Anquetil, N., & Lethbridge, T. C. (2003). Comparative study of clustering algorithms and abstract representations for software remodularisation. IEE Proceedings-Software, 150(3), 185--201. DOI=10.1049/ip-sen:20030581
[2]
Doval, D., Mancoridis, S., & Mitchell, B. S. (1999). Automatic clustering of software systems using a genetic algorithm. In Software Technology and Engineering Practice, 1999. STEP'99. Proceedings (pp. 73--81). IEEE. DOI= 10.1109/STEP.1999.798481
[3]
Goldberg, D. E. (1989). Genetic algorithms in search, optimization, and machine learning (Vol. 412). Reading Menlo Park: Addison-wesley.
[4]
Harman, M., Hierons, R. M., & Proctor, M. (2002, July). A New Representation And Crossover Operator For Search-based Optimization Of Software Modularization. In GECCO (Vol. 2, pp. 1351--1358). DOI=10.1.1.144.5252
[5]
Harman, M. (2007, May). The current state and future of search based software engineering. In 2007 Future of Software Engineering (pp. 342--357). IEEE Computer Society. DOI=10.1109/FOSE.2007.29.
[6]
Hatamlou, A. (2013). Black hole: A new heuristic optimization approach for data clustering. Information Sciences, 222, 175--184. DOI= 10.1016/j.ins.2012.08.023
[7]
Mancoridis, S., Chen, Y., Gansner, E. R., Mitchell, B. S., & Rorres, C. (1998, June). Using automatic clustering to produce high-level system organizations of source code. In 6th International Workshop on Program Comprehension (p. 45). Published by the IEEE Computer Society. DOI= 10.1109/WPC.1998.693283
[8]
Mitchell, B. S. (2002). A heuristic search approach to solving the software clustering problem (Doctoral dissertation, Drexel University).
[9]
Mitchell, B. S., & Mancoridis, S. (2002, July). Using Heuristic Search Techniques To Extract Design Abstractions From Source Code. In GECCO(Vol. 2, pp. 1375--1382). DOI= 10.1.1.6.4923
[10]
Mitchell, B. S., & Mancoridis, S. (2008). On the evaluation of the Bunch search-based software modularization algorithm. Soft Computing, 12(1), 77--93. DOI= 10.1007/s00500-007-0213-8
[11]
Mitchell, B. S., & Mancoridis, S. (2006). On the automatic modularization of software systems using the bunch tool. Software Engineering, IEEE Transactions on, 32(3), 193--208. DOI= doi.ieeecomputersociety.org/10.1109/TSE.2006.31
[12]
Rayside, D., Reuss, S., Hedges, E., & Kontogiannis, K. (2000). The effect of call graph construction algorithms for object-oriented programs on automatic clustering. In Program Comprehension, 2000. Proceedings. IWPC 2000. 8th International Workshop on (pp. 191--200). IEEE. DOI= 10.1.1.35.3894
[13]
Tzerpos, V. (2001). Comprehension-driven software clustering (Doctoral dissertation, University of Toronto).
[14]
Yang, X.S. (2010). Nature-inspired metaheuristic algorithms. Luniver press.

Cited By

View all
  • (2022)Software Module Clustering: An In-Depth Literature AnalysisIEEE Transactions on Software Engineering10.1109/TSE.2020.304255348:6(1905-1928)Online publication date: 1-Jun-2022
  • (2022)Black hole algorithm: A comprehensive surveyApplied Intelligence10.1007/s10489-021-02980-552:10(11892-11915)Online publication date: 1-Aug-2022
  • (2022)Reengineering UML Class Diagram Variants into a Product Line ArchitectureUML-Based Software Product Line Engineering with SMarty10.1007/978-3-031-18556-4_18(393-414)Online publication date: 28-Sep-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 40, Issue 1
January 2015
237 pages
ISSN:0163-5948
DOI:10.1145/2693208
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 February 2015
Published in SIGSOFT Volume 40, Issue 1

Check for updates

Author Tags

  1. Black Hole Algorithm
  2. Genetic algorithm
  3. Module dependency graph
  4. Software clustering
  5. Software maintenance

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)2
Reflects downloads up to 08 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Software Module Clustering: An In-Depth Literature AnalysisIEEE Transactions on Software Engineering10.1109/TSE.2020.304255348:6(1905-1928)Online publication date: 1-Jun-2022
  • (2022)Black hole algorithm: A comprehensive surveyApplied Intelligence10.1007/s10489-021-02980-552:10(11892-11915)Online publication date: 1-Aug-2022
  • (2022)Reengineering UML Class Diagram Variants into a Product Line ArchitectureUML-Based Software Product Line Engineering with SMarty10.1007/978-3-031-18556-4_18(393-414)Online publication date: 28-Sep-2022
  • (2021)Training Feedforward Neural Network Using Enhanced Black Hole Algorithm: A Case Study on COVID-19 Related ACE2 Gene Expression ClassificationArabian Journal for Science and Engineering10.1007/s13369-020-05217-8Online publication date: 23-Jan-2021
  • (2020)Hierarchical System Decomposition Using Genetic Algorithm for Future Sustainable ComputingSustainability10.3390/su1206217712:6(2177)Online publication date: 11-Mar-2020
  • (2019)Hybrid of genetic algorithm and krill herd for software clustering problem2019 5th Conference on Knowledge Based Engineering and Innovation (KBEI)10.1109/KBEI.2019.8734939(565-570)Online publication date: Feb-2019
  • (2018)An Empirical Study of Cohesion and Coupling: Balancing Optimization and DisruptionIEEE Transactions on Evolutionary Computation10.1109/TEVC.2017.269128122:3(394-414)Online publication date: Jun-2018
  • (2017)Discovering Software Architectures with Search-Based Merge of UML Model VariantsMastering Scale and Complexity in Software Reuse10.1007/978-3-319-56856-0_7(95-111)Online publication date: 5-Apr-2017
  • (2016)Column generation approaches for the software clustering problemComputational Optimization and Applications10.1007/s10589-015-9822-964:3(843-864)Online publication date: 1-Jul-2016

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media