شناسایی خودکار نقش‌های الگوهای طراحی از کد برنامه با رویکرد یادگیری ماشین

نویسندگان

دانشکده مهندسی ﺑﺮق و ﻛﺎﻣﭙﻴﻮﺗﺮ، دانشگاه ﺗﺮﺑﻴﺖ ﻣﺪرس، ﺗﻬﺮان، اﻳﺮان

چکیده

شناسایی الگوهای طراحی استفاده شده در یک سیستم نرم‌افزاری به نگهداری و مهندسی مجدد نرم‌افزار کمک می‌کند و نیز باعث سهولت فهم کد برنامه‌ها می‌شود. این فهم به انطباق بین کد برنامه‌ها و طراحی آن‌ها، کمک زیادی می‌کند. علاوه براین، پیاده‌سازی‌های مختلف از یک الگوی طراحی، تشخیص نمونه‌ی الگوها از کد برنامه را سخت می‌کند. از آنجایی‌ که هر الگوی طراحی مجموعه‌ای از نقش‌هایی است که توسط کلاس‌ها در برنامه ایفا می‌شوند و در واقع نقش‌ها اجزای اصلی و تعیین کننده در الگوهای طراحی هستند، با تعیین نقشی که هرکلاس در یک نمونه الگو ایفا می‌کند، می‌توان الگوهای طراحی برنامه را شناسایی نمود. بنابراین، در این مقاله، روشی برای شناسایی نقش‌های الگوهای طراحی از کد برنامه پیشنهاد می‌گردد که مسئله تشخیص نقش‌ها را به یک مسئله یادگیری ماشین نگاشت می‌کند. نتایج آزمایشات با استفاده از برنامه‌های واقعی نشان می‌دهد که روش پیشنهادی، روش نسبتا موفقی است.

کلیدواژه‌ها

  • [11] J. M. Smith, and D. Stotts, "Elemental Design Patterns:Aformal semantics forcompositionof OO softwarearchitecture," inSoftwareEngineeringWorkshop,2002.Proceedings. 27th AnnualNASA Goddard/IEEE, 2002, pp.183-190.
  • [12] M. Lanza,and R. Marinescu,Object-oriented metrics inpractice: usingsoftware metrics to characterize, evaluate,andimprove thedesign of object-orientedsystems. SpringerScience & Business Media, 2007.
  • [13] S. K. Dubey, and A. Sharma, "Comparison studyandreview on object-orientedmetrics,"Global Journal ofComputer Science and Technology,vol. 12, 2012.
  • [14] Y.-G. Guéhéneuc,"P-mart: Pattern-likemicroarchitecture repository," inEuroPLoPFocus GrouponPattern Repositories,2007.
دوره 15، شماره 1
بهار و تابستان
اردیبهشت 1396