Abstract
Maintenance is one of the important phases of the software development life cycle which contributes to the effective and long term use of any software system. It can become cumbersome and costly for software maintainers when subsystem boundaries are not clearly defined. Further, the problem gets worse due to the system evolution, lack of current documentation and lack of original design documentation. The application of clustering techniques and tools helps software maintenance programmers to recover high-level views of system designs and hence leads to better understanding and maintenance of software systems. In this paper, we have used a sociopolitical Imperialist Competitive Algorithm for software module clustering and compared it with existing evolutionary approaches. We conclude that the novel socio-political approach produces better quality clusters as compared to the earlier evolutionary genetic approaches.
- Andritsos, P. and Tzerpos, V. 2005. Information-Theoretic Software Clustering. IEEE Trans. on Softw. Eng.31, 2, 150--165. Google ScholarDigital Library
- Atashpaz-Gargari, E., & Lucas, C. (2007, September). Imperialist competitive algorithm: an algorithm for optimization inspired by imperialistic competition. In Evolutionary Computation, 2007. CEC 2007. IEEE Congress on, 4661--4667.Google Scholar
- Bouktif, S. Antoniol,G.,Merlo, E. and Neteler, M. A novel approach to optimize clone refactoring activity. In Proceedings of the 8th Annu. Conf. on Genetic and evolutionary computation(Seattle, Washington, 2006), 2,GECCO 2006, 1901--1908. Google ScholarDigital Library
- Bouktif, S., Sahraoui, H. and Antoniol, G. 2006. Simulated annealing for improving software quality prediction. In Proceedings of the 8th Annu. Conf. on Genetic and evolutionary computation (Seattle, Washington).ACM, New York, NY, 1893--1900. DOI= 10.1145/1143997.1144313 Google ScholarDigital Library
- Fatiregun, D., Harman, M. and Hierons, R.2005.Search-based amorphous slicing. In 12th Int. Working Conf. on Reverse Engineering 2005( Pittsburgh, PA, 2005), 3--12. Google ScholarDigital Library
- 8 Goldberg, D.E. 1989. Genetic Algorithms in Search, Optimization and Machine Learning Addison-Wesley, MA Google ScholarDigital Library
- Harman, M., Hierons, R. and Proctor, M.2002. A new representation and crossover operator for search-based optimization of software modularization. In Proceedings of the Genetic and Evolutionary Computation Conf. 2002(San Francisco, NY, March 2002), GECCO 2002, 1351--1358. Google ScholarDigital Library
- Haupt, R. L. and Haupt, S.E. 2004. Practical Genetic Algorithms. 2nd ed., JohnWiley & Sons, NJ. Google ScholarDigital Library
- Keeffe, M. and O'Cinneide, M. (March 2006). Search-based software maintenance. In Proceedings Of 10th European Conf. on Software Maintenance and Reengineering 2006(Bari, March 22-24, 2006),CSMR 2006, IEEE, 249--260. Google ScholarDigital Library
- Khorani, V., Razavi, F.and Ghoncheh, A. 2010.A new hybrid evolutionary algorithm based on ICA and GA: Recursive-ICAGA. The 2010 Int. Conf. on Artificial Intell.( Hangzhou, China), IC-AI 2010, IEEE, 131--140.Google Scholar
- Khorani, V., Forouzideh, N. ; Nasrabadi, A.M..2011.Artificial neural network weights optimization using ICA, GA, ICA-GA and R-ICA-GA: Comparing performances. IEEE Workshop on Hybrid Intelligent Models And Applications 2011(Paris, France, April 11-15, 2011).HIMA 2011,61--67 DOI= 10.1109/HIMA.2011.5953956Google ScholarCross Ref
- Lehman, M. M. 1984. Program Evolution. J. of Inform. Process. Manage.19,1, 19--36. DOI=http://dx.doi.org/10.1016/0306-4573(84)90037-2Google ScholarCross Ref
- Mahdavi, K., Harman, M. and Hierons, R.M. (September, 2003). A multiple hill climbing approach to software module clustering. In IEEE Int. Conf. on Software Maintenance( Los Alamitos, California, September 22-26, 2003).ICSM 2003,315--324. Google ScholarDigital Library
- Mitchell, B.S., Mancoridis, S., Rorres, C., Chen, Y. and Gansner, E.R. 1998. Using automatic clustering to produce high-level system organizations of source code. In Proceedings Of 6th int. workshop on Program Comprehension(Singapore, Septemeber 25-28, 2007). CEC 2007. IEEE, 45--52. Google ScholarDigital Library
- Mitchell, B.S. and Mancoridis, S. 2001.Comparing the decompositions produced by software clustering algorithms using similarity measurement. In Proceedings of Int. Conf. of Software Maintenance (Florence, Tuscany, November 07-09, 2001), IEEE, Google ScholarDigital Library
- Mitchell, B.S. and Mancoridis, S. 2002. Using heuristic search techniques to extract design abstractions from source code. In Proceedings of the Genetic and Evolutionary Computation Conf. 2002(San Francisco, NY, March 2002), GECCO 2002, 1375--1382. Google ScholarDigital Library
- Mitchell, B.S. and Mancoridis, S. 2006. On the automatic modularization of software systems using the bunch tool. IEEE Transactions on Software Engineering, 32, 3(March 2006), 193--208. Google ScholarDigital Library
- Rasekh, I. 2012. Dynamic Search Optimization for Semantic Webs Using Imperialistic Competitive Algorithm. In Proceedings Of int. conf. on Inform. Sci. and Applicat. 2012 (Suwon, Gyeonggi, May 23-25,2012), ICISA 2012, 1--5. DOI= 10.1109/ICISA.2012.6220931Google ScholarCross Ref
- Sayadnavard, M.H., Monireh, H., Haghighat, A.T. and Abdechiri, M. 2010. Wireless sensor network localization using imperialist competitive algorithm. In Proceedings. Of 3rd int. conf. on Comput. Sci. and Inform. Technology 2010 (Chengdu, Sichuan,Google Scholar
- Shaw, M. and Garlan, D. 1996.Software Architecture: Perspectives of an Emerging Discipline. Prentice Hall, Englewood Cliffs, NJ. Google ScholarDigital Library
- Tzerpos, V. and Holt, R.C.(2000, November). ACDC: An algorithm for comprehension-driven clustering. In Proceedings. of the 7th Working Conf on Reverse Eng(Brisbane, Qld, November 25-28 2000), IEEE. 258--267. Google ScholarDigital Library
- http://en.icasite.info/. Accessed on March 02, 2013.Google Scholar
Index Terms
- Software re-engineering using imperialist competitive algorithm
Recommendations
A modified genetic algorithm for software clustering problem
AIC'06: Proceedings of the 6th WSEAS International Conference on Applied Informatics and CommunicationsStructure of most software systems is large and complex. Therefore, understanding of these software systems structures is difficult. The reason for this complexity is dependency of many modules of them to each other. Software clustering is the process ...
Software visualization in software maintenance, reverse engineering, and re-engineering: a research survey
Software visualization is concerned with the static visualization as well as the animation of software artifacts, such as source code, executable programs, and the data they manipulate, and their attributes, such as size, complexity, or dependencies. ...
Software Architecture Recovery using Genetic Black Hole Algorithm
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 ...
Comments