ارائه یک تابع هدف جدید برای خوشهبندی کد منبع برای بهبود قابلیت فهم آن
مریم اختری
ریاضی و آمار و علوم کامپیوتر
۱۴۰۲
۹۱ص.
سی دی
کارشناسی ارشد
علوم کامپیوتر گرایش نظریه سیستمها
۱۴۰۲/۰۴/۰۶
یک سیستم نرمافزاری در طول زمان به منظور برآوردن نیازهای کاربران تکامل مییابد که درک برنامه مهمترین مرحله برای اعمال نیازهای جدید است. از روشهای خوشهبندی برای تقسیم کد منبع بزرگ به قسمتهای کوچک معنیدار جهت درک آن استفاده میشود. خوشهبندی برای مطالعه، تجزیه وتحلیل و درک ساختار و رفتار یک سیستم نرمافزاری مورد استفاده قرار میگیرد. در منابع، معیارهای متعددی برای خوشهبندیها ارائه شده است. روشهای موجود برای خوشهبندی یک سیستم نرمافزاری جهت انجام خوشهبندی معیارهایی نظیر انسجام و اتصال و توازن بین خوشهها را در نظر میگیرند. ما معتقدیم این معیارها به طور کامل نمیتوانند هدف خوشهبندی را که همان فهم است را پوشش دهند. در این پایاننامه با در نظر گرفتن جریان کنترل برنامه، دو معیار ارائه شده است که الگوریتمهای موجود علاوه بر موارد گفته شده، این موارد را نیز در نظر بگیرند، میتوانند خوشههایی ایجاد کنند که فهم آن را توسط توسعهدهندگان آسان نماید. این دو معیار با عنوان یکدست بودن جهتهای ورودی و خروجی برای وابستگی بین خوشهها برای کنترل جریان و کاهش توزیعشدگی یالهای ورودی و خروجی جهت بررسی میزان پراکندگی یالهای خوشهها بیان خواهد شد. به طور شهودی و با مثال های مختلف درستی این معیارها نشان داده شده است.
A software system evolves over time to meet the new needs of users, andunderstanding the source code of a software system is the most important step in meetingnew needs. Clustering techniques(modularization techniques) are used to break down alarge source code into meaningful small parts to understand it. In other words, clusteringis used to study, analyze, and understand the structure and behavior of a software system.In the literature, several criteria for clustering are presented. Most of the existing methodsfor clustering take into account criteria such as cohesion, clustering, and balance betweenclusters. We believe that these criteria can not fully cover the purpose of clustering, tohelp understanding. In this paper, considering the program control flow, two criteria arepresented. If the existing clustering algorithms consider these cases in addition to theexisting criteria,they can create clusters that are easy to understand by developers. Thesetwo criteria evaluate the uniformity of the input and output directions and the distributionof the input and output edges. Intuitively and with various examples as well as taking theopinions of academics and expert programmers, we will show the correctness of thesecriteria.
A new quality function for source code clustering for improving its understandability.