دوره 18، شماره 4 - ( 12-1400 )                   جلد 18 شماره 4 صفحات 48-37 | برگشت به فهرست نسخه ها

XML English Abstract Print


Download citation:
BibTeX | RIS | EndNote | Medlars | ProCite | Reference Manager | RefWorks
Send citation to:

Pourasghar B, Izadkhah H, Lotfi S, Salehi K. A partition-based algorithm for clustering large-scale software systems. JSDP. 2022; 18 (4) :37-48
URL: http://jsdp.rcisp.ac.ir/article-1-1028-fa.html
پوراصغر بابک، ایزدخواه حبیب، لطفی شهریار، صالحی خیام. یک الگوریتم مبتنی بر افرازبندی گراف برای خوشه‌بندی سامانه‌‌های نرم‌افزاری با ابعاد بزرگ. پردازش علائم و داده‌ها. 1400; 18 (4) :48-37

URL: http://jsdp.rcisp.ac.ir/article-1-1028-fa.html


گروه علوم کامپیوتر، دانشکده علوم ریاضی، دانشگاه تبریز
چکیده:   (560 مشاهده)
از روش‌های خوشه‌بندی برای بازیابی ساختار نرم‌افزار جهت فهم درست آن و همچنین بازسازی نرم‌افزار استفاده می‌شود. در ادبیات موضوع، بیشتر الگوریتم‌های ارائه‌شده برای خوشه‌بندی سامانه‌های نرم‌افزاری به دو دسته الگوریتم‌های مبتنی بر جستجو و الگوریتم‌های سلسله‌­مراتبی طبقه‌بندی می‌شوند و الگوریتمی ‌از رده مبتنی بر افراز برای خوشه‌بندی یک سامانه نرم‌افزاری ارائه نشده ‌است. این روش‌ها سعی دارند که گراف وابستگی موجودیت به‌دست‌آمده  از کد منبع سامانه نرم‌افزاری را به چند مجموعه رأسی افراز کنند. در سامانه‌های نرم‌افزاری، موجودیت می‌تواند رده، تابع و یا یک فایل باشد. با توجه به چندجمله‌ای غیر قطعی، سخت‌بودن مسأله خوشه‌بندی، در سال‌های اخیر از روش‌های تکاملی و مبتنی بر جستجو مانند الگوریتم ژنتیک برای این حل این مسأله، زیاد استفاده شده است. هر چند این الگوریتم‌ها در برخی موارد می‌توانند ساختار مناسبی از نرم‌افزار را به‌دست آورند، اما برای نرم‌افزار‌های با ابعاد بزرگ، با توجه به زمان اجرا و حافظه مصرفی زیاد، قابل اجرا نیستند؛ همچنین، این روش‌ها از اطلاعات و دانش گرافی موجود در گراف وابستگی موجودیت استفاده‌ی چندانی نمی‌کنند. در این مقاله یک الگوریتم مبتنی بر افراز ارائه شده است که بتوان از آن در خوشه‌بندی نرم­افزار نیز استفاده کرد. همچنین، یک نوع فاصله جدید برای قیاس تشابه و عدم تشابه ارائه شده ‌است. انتظار می‌رود روش پیشنهادی بتواند در قیاس با سایر روش‌های موجود، خوشه‌بندی‌هایی با کیفیت بالاتر و نزدیک به خوشه‌بندی فرد خبره، تولید کند. برای بررسی صحت اجرای الگوریتم، آن را بر روی نرم‌افزار موزیلا فایرفاکس اجرا کرده و نتایج را با الگوریتم‌های مطرح این حوزه، مقایسه کرده‌ایم.
 
شماره‌ی مقاله: 3
متن کامل [PDF 940 kb]   (204 دریافت)    
نوع مطالعه: پژوهشي | موضوع مقاله: مقالات پردازش داده‌های رقمی
دریافت: 1398/4/19 | پذیرش: 1399/5/28 | انتشار: 1401/1/1 | انتشار الکترونیک: 1401/1/1

فهرست منابع
1. [1] A. Isazadeh, H. Izadkhah, and I. Elgedawy, ''Source code modularization: theory and techniques'', Springer, 2017. [DOI:10.1007/978-3-319-63346-6]
2. [2] B.S. Mitchell, S. and Mancoridis, ''On the automatic modularization of software systems using the bunch tool'', IEEE Transactions on Software Engineering, vol. 32(3), pp.193-208 , 2006. [DOI:10.1109/TSE.2006.31]
3. [3] I. Candela, G. Bavota, B. Russo, and R. Oliveto, ''Using cohesion and coupling for software remodularization: Is it enough?'', ACM Transactions on Software Engineering and Methodology (TOSEM), vol. 25(3), pp.1-28, 2016. [DOI:10.1145/2928268]
4. [4] G. Bavota, F. Carnevale, A. De Lucia, M. Di Penta, and R. Oliveto, ''Putting the developer in-the-loop: an interactive GA for software re-modularization'', In International Symposium on Search Based Software Engineering, 2012, pp. 75-89. [DOI:10.1007/978-3-642-33119-0_7]
5. [5] W. Mkaouer, M. Kessentini, A. Shaout, P. Koligheu, S. Bechikh, K. Deb, andA. Ouni, ''Many-objective software remodularization using NSGA-III'', ACM Transactions on Software Engineering and Methodology (TOSEM), vol.24(3), pp.1-45, 2017. [DOI:10.1145/2729974]
6. [6] O. Maqbool, and H. Babri, ''Hierarchical clustering for software architecture recovery'', IEEE Transactions on Software Engineering, vol. 33(11), pp.759-780, 2007. [DOI:10.1109/TSE.2007.70732]
7. [7] P. Andritsos, and V. Tzerpos, ''Information-theoretic software clustering'', IEEE Transactions on Software Engineering, vol. 31(2), pp.150-165, 2007. [DOI:10.1109/TSE.2005.25]
8. [8] M. Tajgardan, H. Izadkhah, and S. Lotfi, ''Software systems clustering using estimation of distribution approach,'' Journal of Applied Computer Science Methods, vol.8(2), pp.99-113, 2016. [DOI:10.1515/jacsm-2016-0007]
9. [9] H. Izadkhah, I. Elgedawy, A. Isazadeh, ''E-cdgm: an evolutionary call-dependency graph modularization approach for software systems'', Cybernetics and Information Technologies, vol.16(3), pp.70-90, 2016. [DOI:10.1515/cait-2016-0035]
10. [10] S. Parsa, and O. Bushehrian, '' The design and implementation of a framework for automatic modularization of software systems'', The Journal of Supercomputing, vol.32(1), pp.71-94, 2005. [DOI:10.1007/s11227-005-0159-5]
11. [11] M. Kargar, A. Isazadeh, and H. Izadkhah, ''Semantic-based software clustering using hill climbing'', In 2017 International Symposium on Computer Science and Software Engineering Conference (CSSE) , pp. 55-60, IEEE, 2017, October. [DOI:10.1109/CSICSSE.2017.8320117]
12. [12] K. Praditwong, M. Harman, M. and X. Yao, ''Software module clustering as a multi-objective search problem'', IEEE Transactions on Software Engineering, vol. 37(2), pp.264-282, 2010. [DOI:10.1109/TSE.2010.26]
13. [13] T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein, ''Introduction to algorithms'', MIT press, 2009.
14. [14] Z. Wen, and V. Tzerpos, '' An effectiveness measure for software clustering algorithms'', In Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004. pp. 194-203, IEEE.
15. [15] T. Lutellier, D. Chollak, J. Garcia, L. Tan, D. Rayside, N. Medvidović, and R. Kroeger, '' Measuring the impact of code dependencies on software architecture recovery techniques'', IEEE Transactions on Software Engineering, vol. 44(2), pp.159-181, 2017. [DOI:10.1109/TSE.2017.2671865]
16. [16] N.S. Jalali, H. Izadkhah, and S. Lotfi, ''Multi-objective search-based software modularization: structural and non-structural features'', Soft Computing, vol23(21), pp.11141-11165. 2019 [DOI:10.1007/s00500-018-3666-z]
17. [17] R. Naseem, O. Maqbool, and S. Muhammad, ''Cooperative clustering for software modularization'', Journal of Systems and Software, vol. 86(8), pp.2045-2062, 2013. [DOI:10.1016/j.jss.2013.03.080]
18. [18] S. Mohammadi, and H. Izadkhah, ''A new algorithm for software clustering considering the knowledge of dependency between artifacts in the source code'', Information and Software Technology, vol.105, pp.252-256. 2019. [DOI:10.1016/j.infsof.2018.09.001]
19. [19] H. Sözer, ''Evaluating the Effectiveness of Multi-level Greedy Modularity Clustering for Software Architecture Recovery'', In European Conference on Software Architecture, pp. 71-87, 2019. [DOI:10.1007/978-3-030-29983-5_5]
20. [20] M. Kargar, A. Isazadeh, and H. Izadkhah, '' Multi-programming language software systems modularization'', Computers & Electrical Engineering, vol.80, pp.106-500, 2019. [DOI:10.1016/j.compeleceng.2019.106500]

ارسال نظر درباره این مقاله : نام کاربری یا پست الکترونیک شما:
CAPTCHA

ارسال پیام به نویسنده مسئول


بازنشر اطلاعات
Creative Commons License این مقاله تحت شرایط Creative Commons Attribution-NonCommercial 4.0 International License قابل بازنشر است.

کلیه حقوق این تارنما متعلق به فصل‌نامة علمی - پژوهشی پردازش علائم و داده‌ها است.