Sensitivity Analysis of Evolutionary Algorithm for Software Reusability

  • Amit Rathee Department of Computer Engineering, National Institute of Technology, Kurukshetra, India
  • Jitender Kumar Chhabra Department of Computer Engineering, National Institute of Technology, Kurukshetra, India
Keywords: evolutionary algorithm, optimization, software component, FUP, sensitivity, robustness, CBSD


Fast and competitive software industry demands rapid development using Component Based Software Development (CBSD).  CBSD is dependent on the availability of the high-quality reusable component libraries. Recently, evolutionary multi-objective optimization algorithms have been used to identify sets of reusable software components from the source-code of Object Oriented (OO) software, using different quality indicators (e.g. cohesion, coupling, etc.). Sometimes, these used quality indicators are quite sensitive towards the small variations in their values, although they should not be. Therefore, this paper analyzes the sensitivity of the evolutionary technique for three quality indicators used during the identification: Frequent Usage Pattern (FUP), Semantic and evolutionary coupling. The sensitivity analysis is performed on three widely used open-source OO software. The experimentation is performed by mutating the system to different degrees. Results of the empirical analysis indicate that the semantic parameter is most sensitive and important. Ignoring this feature highly degrades the quality; FUP relation is uniformly sensitive and evolutionary relations's sensitivity is non-uniform.


Alshara, Z., Seriai, A.-D., Tibermacine, C., Bouziane, H. L., Dony, C., and Shatnawi, A. 2015. Migrating large object-oriented applications into component-based ones: Instantiation and inheritance transformation. In GPCE 2015 Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences. ACM New York, NY, USA, Vol 51, Issue 3, pp. 55–64. DOI: 10.1145/2936314.2814223

Andritsos, P. and Tzerpos, V. 2005. Information-theoretic software clustering. IEEE Transactions on Software Engineering 31, 2, pp. 150–165.

Birkmeier, D. Q. and Overhage, S. 2013. A method to support a reflective derivation of business components from conceptual models. Information Systems and e-Business Management 11, 3, pp. 403–435.

Harman, M., Swift, S., and Mahdavi, K. 2005. An Empirical Study of the Robustness of two Module Clustering Fitness Functions. In Proceedings of GECCO’05. ACM, Washington DC, USA, pp. 1029–1036.

Hasheminejad, S. M. H. and Jalili, S. 2015. CCIC: Clustering analysis classes to identify software components. Information and Software Technology 57, pp. 329–351.

Kebir, S., Seriai, A. D., Chardigny, S., and Chaoui, A.: Quality-centric approach for software component identification from object-oriented code. In 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture. No. 13115578, IEEE, pp. 181–190. DOI: 10.1109/WICSA-ECSA.212.26

Lau, K.–K. 2004. Component-Based Software Development: Case Studies. (Series on Component-Based Software Development), World Scientific Press, New Jersey.

Mishra, S., Kushwaha, D., and Misra, A. 2009. Creating reusable software component from object-oriented legacy software through reverse engineering. Journal of Object Technology 8, 5, pp. 133–152.

Ouyang, Y. and Carver, D. L. 1996. Enhancing design reusability by clustering specifications. In: Proceedings of the 1996 ACM symposium on Applied Computing. ACM, Philadelphia, Pennsylvania, USA. DOI: 10.1145/331119.331431

Prajapati, A. and Chhabra, J. K. 2014. An empirical study of the sensitivity of quality indicator for software module clustering. In Seventh International Conference on Contemporary Computing (IC3). No. 14583918, IEEE. DOI: 10.1109/IC3.2014.6897174

Prajapati, A. and Chhabra, J. K. 2018. MaDHS: Many objective discrete harmony search to improve existing package design. Computational Intelligence, pp. 1–26. DOI: 10.1111/coin.12193

Rathee, A. and Chhabra, J. K. 2017. Improving Cohesion of a Software System by Performing Usage Pattern-Based Clustering. In Inter. Conf. on Smart Computing and Communication (ICSCC). Procedia Computer Science, Elsevier, Vol. 125, pp. 740–746.

Rathee, A. and Chhabra, J. K. 2019. A Multi-Objective Search Based Approach To Identify Reusable Software Components. Journal of Computer Languages 52, pp. 26–43.

Rathee, A. and Chhabra, J. K. 2018. Clustering for software remodularization by using structural, conceptual and evolutionary features present in software artifacts. Journal of Universal Computer Science 24, 12, pp. 1731–1757.

Shatnawi, A., Seriai, A. D., Sahraoui, H., and Alshara, Z. 2017. Reverse engineering reusable software components from object-oriented APIs. Journal of Systems and Software 131, pp. 442–460.

Olukanmi, P. O. and Twala, B. 2017. Sensitivity analysis of an outlier-aware k-means clustering algorithm. In 2017 Pattern Recognition Association of South Africa and Robotics and Mechatronics (PRASA-RobMech). No. 17520825, IEEE, pp. 68–73. DOI: 10.1109/RoboMech.2017.8261125

Kebir, S., Borne, I., and Meslati, D. 2017. A genetic algorithm-based approach for automated refactoring of component-based software. Information and Software Technology 88, pp. 17–36.

Zou, B., Yang, M., Benjamin, E. R., and Yoshikawa, H. 2017. Reliability analysis of Digital Instrumentation and Control software system. Progress in Nuclear Energy 98, pp. 85–93.

Prajapati, A. and Chhabra, J. K. 2017. Improving Modular Structure of Software System using structural and lexical dependency. Information & Software Technology 82, pp. 96–120.

How to Cite
Rathee, A. and Chhabra, J. 2019. Sensitivity Analysis of Evolutionary Algorithm for Software Reusability. MENDEL. 25, 1 (Jun. 2019), 31-38. DOI: