novel method for source code software clustering A
نام نخستين پديدآور
/سینا محمدی
وضعیت نشر و پخش و غیره
نام ناشر، پخش کننده و غيره
: علوم ریاضی
تاریخ نشرو بخش و غیره
، ۱۳۹۷
نام توليد کننده
، راشدی
مشخصات ظاهری
نام خاص و کميت اثر
۱۰۳ص
یادداشتهای مربوط به نشر، بخش و غیره
متن يادداشت
چاپی - الکترونیکی
یادداشتهای مربوط به پایان نامه ها
جزئيات پايان نامه و نوع درجه آن
کارشناسی ارشد
نظم درجات
علوم کامپیوتر گرایش سیستمهای کامپیوتری
زمان اعطا مدرک
۱۳۹۷/۰۴/۲۵
کسي که مدرک را اعطا کرده
تبریز
یادداشتهای مربوط به خلاصه یا چکیده
متن يادداشت
فهم یک برنامه عامل مهمی در توسعه و نگهداری یک نرمافزار محسوب میشود به طوریکه در سیستمهای نرمافزاری بزرگ بیش از ۶۰ درصد هزینه نگهداری نرمافزار صرف فهمیدن آن میشود .پیمانهبندی نرمافزار به عنوان یکی از مراحل مهندسی معکوس جهت فهم یک برنامه به کار برده میشود .مهندسی معکوس با ایجاد مدلهای ذهنی فهم برنامه را تسهیل میکند .پیمانهبندی یک سیستم نرمافزاری تجزیه آن به زیرسیستمهای به هم مرتبط است تا یک دیدگاه انتزاعی از سیستم به وجود بیاورد .با توجه به چند جملهای غیرقطعی-سخت بودن مسئله پیمانهبندی و جواب نامناسب الگوریتمهای قطعی موجود، الگوریتمهای مبتنیبر جستجو برای پیمانهبندی ارائه شده است اما این الگوریتمها مشکلات خودشان را دارند که از جمله مهمترین آنها زمانبر بودن و عدم استفاده مناسب از دانش موجود در مسئله است .به همین دلیل سعی شده است چهار الگوریتم قطعی ارائه شود که در هر کدام سعی میشود با استفاده از گراف وابستگی موجودیت کل سیستم به عنوان یک کل واحد پیمانهبندی شود .براساس همسایگیهای موجود، گراف وابستگی تجزیه و تحلیل میشود و با توجه به روابط به دست آمده عمل پیمانهبندی انجام میشود .در یکی از روشها سعی شده است خوشه با اندازه دلخواه تولید شود .نتایج کیفیت پیمانهبندیها و زمان اجرای آنها این موضوع را نشان میدهد که الگوریتمهای پیشنهادی عملکرد قویتری از الگوریتمهای سلسلهمراتبی و زمان اجرای بهتری از روشهای مبتنیبر جستجو دارند
متن يادداشت
Understanding a software is an important factor in the development and maintenance of a software. In large software systems, more than 60 percent of a software maintenance cost is spent on understanding it. Modularization of software as one of the stages of reverse engineering is used to understand a program. Reverse engineering, by creating abstract models, facilitates understanding of the program. Modularization of a software system for its decomposition into a set of sub-systems is interconnected to create an abstract view of the system. Due to the NP-hardness of the modularization problem and the lack of proper response of the existing algorithms, search based algorithms have been proposed for modularization, but these algorithms have their own problems, among which the most important are the timeliness and lack of proper use of knowledge in the problem. For this reason, four definitive algorithms have been proposed, each of them attempts to modulate the entire system's as a whole unit using the artifact dependency graph. Based on neighborhoods, the dependency graph is analyzed and, according to the obtained relationships, the modularization is performed, in one of the methods, an attempt was made to create a desired cluster size. The results of the modularization quality and their runtime indicate that the proposed algorithms have stronger performance than hierarchical algorithms and better execution times than search-based methods
عنوان اصلی به زبان دیگر
عنوان اصلي به زبان ديگر
novel method for source code software clustering A
نام شخص به منزله سر شناسه - (مسئولیت معنوی درجه اول )