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

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

مهناز باغدار, سعید جلیلی

چکیده

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

کلمات کلیدی

شناسایی الگوهای طراحی, شناسایی نقش های الگوهای طراحی, یادگیری ماشین

مراجع

  • [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.