روشی برای تشخیص مؤلفه‌های نرم‌افزاری مبتنی بر الگوریتم ژنتیک مرتب‌سازی نامغلوب

نویسندگان

دانشگاه الزهرا(س)، دانشکده فنی و مهندسی

چکیده

شناسایی مؤلفه‌های نرم‌افزاری مناسب در مرحله طراحی نرم‌افزار یک کار حیاتی در حوزه مهندسی نرم‌افزار به حساب می‌آید و به‌عنوان یک راه مهم برای افزایش قابلیت نگهداری نرم‌افزار محسوب می‌شود. امروزه روش‌های بسیاری برای شناسایی مؤلفه‌ها مانند تقسیم‌بندی گراف و خوشه‌بندی ارائه شده است، اما اکثر این روش‌ها متکی بر نظر کارشناس و دارای ضعف دقت تشخیص هستند. یکی از دلایل ضعف دقت روش‌های شناسایی مؤلفه، عدم توجه بدین نکته است که معیارهای تشخیص مؤلفه دارای تناقض می‌باشند که لازم است درطی عملیات شناسایی مؤلفه بین آن‌ها مصالحه انجام داد. لذا در این مقاله روشی مبتنی بر الگوریتم ژنتیک مرتب‌سازی نامغلوب– نسخه دو ارائه شده است که هدف آن نگاشت مسئله تشخیص مؤلفه‌های نرم‌افزاری به مسئله بهینه‌سازی چندهدفه است. در روش پیشنهادی این مقاله از معیارهای انسجام، اتصال و پیچیدگی استفاده شده و بین این معیارها به‌منظور تشخیص مؤلفه‌های مناسب مصالحه انجام شده است. در این مقاله از یک سیستم مورد مطالعه واقعی برای ارزیابی روش پیشنهادی استفاده شده است که نتایج ارزیابی نشان می‌دهد که استفاده از الگوریتم‌ چندهدفه پیشنهادی توانسته بهتر از روش‌های تک‌هدفه گذشته عمل کند.

کلیدواژه‌ها


عنوان مقاله [English]

A method for identifying software components based on Non-dominated Sorting Genetic Algorithm

نویسندگان [English]

  • Shabnam Gholamshahi
  • Seyed Mohammad Hossein Hasheminejad
چکیده [English]

Identifying the appropriate software components in the software design phase is a vital task in the field of software engineering and is considered as an important way to increase the software maintenance capability. Nowadays, many methods for identifying components such as graph partitioning and clustering are presented, but most of these methods are based on expert opinion and have poor accuracy. One of the reasons for inaccuracy of the component identification methods is the lack of attention to the fact that there are contradictions between the criteria used to recognizing a component, which to be compromised during the identification process. In this paper, a novel method based on non-dominated sorting genetic algorithm (NSGAII) is proposed to map the software component detection problem into a multi-objective optimization one. The proposed method uses the criteria of cohesions, coupling and complexity in order to identify the appropriate components. In this paper, a real study system (customers club) has been used to evaluate the proposed method. The results of the evaluation revealed that the use of the proposed multi-objective algorithm has been able to perform better than previous single-objective methods.

کلیدواژه‌ها [English]

  • Component Identification
  • Software design
  • Multi Objective Evolutionary Algorithm
  • NSGA-II
  • software architecture
  1. [1] Gholamshahi, S., Hasheminejad, S. M. H.. “Software component identification and selection: A research review”, Software: Practice and Experience, Vol. 49, No. 1, pp.40-692, 2019. [2] Kim, J., Park, S., Sugumaran, V., “DRAMA: a framework for domain requirements analysis and modeling architectures in software product lines”, Journal of Systems and Software, Vol. 81 No. 1, pp.37-55, 2008. [3] Shahmohammadi, G., Jalili S., Hasheminejad S. M. H., “Identification of system software components using clustering approach”. J Object Technol, Vol. 9, No. 6, pp.77‐98, 2010. [4] Albani, A., Overhage, S., Birkmeier, D., “Towards a systematic method for identifying business components”, In Proceedings of CBSE, LNCS 5282, Vol. 1, pp.262–277, 2008. doi: 10.1007/978-3-540-87891-9_17. [5] Lee, S.D., Yang, Y.J., Cho, E.S., Kim, S.D., Rhew, S.Y., “COMO: A UMLBased Component Development Methodology”, In Proceedings of the 6th Asia Pacific Software Engineering Conference, Washingt on, DC, USA, IEEE Computer Society, Los Alamitos, pp.54-61, 1999. doi: 10.1109/APSEC.1999.809584. [6] Ganesan, R., Sengupta, S., “O2BC: a Technique for the Design of Component-Based Applications”, In Proceedings of the 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems, pp.46-55, 2001. doi: 10.1109/TOOLS.2001.941658. [7] Hamza, H. S., "A Framework for Identifying Reusable Software Components Using Formal Concept Analysis", in Proceeding of the 6th International Conference on Information Technology: New Generations, 2009, pp. 813-818. [8] Räihä, O., "A survey on search-based software design", Computer Science Review, Vol. 4, pp. 203-249, 2010. [9] Hashemi, S. H., Shahmohammadi, G.R., “Detection system software components using a hybrid algorithm”, ANDRIAS J., Vol. 40, No. 2, pp.57‐63, 2015. [10] Ahmadzadeh, M., Shahmohammadi G. R., Shayesteh, M., “Identification of software systems components using a self‐organizing map competitive artificial neural network based on cohesion and coupling”. ANDRIAS J., Vol. 40, No. 3, pp.642‐651, 2016. [11] Deb, K., Pratap, A., Agarwal, S., Meyarivan T., "A fast and elitist multiobjective genetic algorithm: NSGA-II", In IEEE Transactions on Evolutionary Computation, Vol. 6, No. 2, pp.182-197, Apr 2002. [12] Hasheminejad, S.M.H., Jalili S., “CCIC: Clustering analysis classes to identify software components”, In Journal of Information and Software Technology, Vol. 57, pp.329-351, 2015. [13] Hasheminejad, S. M. H., Jalili, S., “SCI-GA: Software Component Identification using Genetic Algorithm”, In Journal of Object Technology (JOT), Vol. 12, No. 2, pp.1-34, 2013. doi:10.5381/jot.2013.12.2.a3. [14] Chidamber, S. R., Kemerer, C. F., “A metrics suite for object oriented design”, In Journal IEEE Transactions on Software Engineering, Vol. 20, No. 6, pp.476–493, 1994. [15] Gorton, I., Essential software architecture, Vol. 14. Springer, 2006. [16] Zuse, H., Software complexity: measures and methods, Walter de Gruyter & Co., 1990. [17] Bruegge, B., Dutoit, A. H., Object-Oriented Software Engineering Using UML, Patterns and Java, Prentice Hall, 2004. [18] Karner, G., Resource Estimation for Objectory Projects, Objectory Systems, 1993. [19] AlSharif, M., Bond, W.P., Al-Otaiby, T., “Assessing the Complexity of Software Architecture”, In Proceedings of the 42nd annual Southeast regional conference, ACM, pp.98-103, 2004. doi:10.1145/986537.986562. [20] Tzerpos V., Holt R.C., “MoJo: A distance metric for software clustering”. In Proceedings of the 6th Working Conference on Reverse Engineering, pp.187-193, 1999. doi: 10.1109/WCRE.1999.806959 [21] Hasheminejad, S.M.H., Jalili, S., “An Evolutionary Approach to Identify Logical Components”, In Journal of Systems and Software, Vol. 96, No.1, 2014, pp.24–50. doi: https://doi.org/10.1016/j.jss.2014.05.033