پدافند الکترونیکی و سایبری (Sep 2023)

ارائه روشی برای پیش‌بینی کدهای نابسامان سامانه‌های نرم‌افزاری با استفاده از شبکه عصبی

  • علی کریمی,
  • فرهاد کریمی

Journal volume & issue
Vol. 11, no. 3
pp. 67 – 76

Abstract

Read online

مهندسان نرم‌افزار همواره به دنبال کاهش هزینه‌های تولید و افزایش کیفیت نرم­افزار هستند. روش‌های مختلفی برای افزایش کیفیت نرم­افزار وجود دارد که بازسازی کد یکی از این روش­ها است. بازسازی و بازآرایی کد روشی برای تمیز کردن کدهای نرم­افزار و یکی از روال­های بسیار مهم در حفظ کیفیت نرم­افزار است. یکی از چالش­های اصلی در توسعه و تولید کدهای تمیز در نرم‌افزار وجود کدهای نابسامان یا بوهای کد است. بوی کد یک نشانه سطحی در کد است که احتمالاً نشان­دهنده­ی یک مشکل عمیق‌تر در نرم­افزار می‌باشد. وجود بوی کد ممکن است باعث کند شدن پردازش، افزایش خطر خرابی و همچنین خطاهای نرم­افزار شود. از این‌رو، توسعه‌دهندگان نرم­افزار درصدد هستند که با شناسایی کدهای نابسامان، ضمن بازآرایی کد نرم­افزار، توسعه‌پذیری و نگهداشت‌پذیری آن را در آینده تسهیل کنند. با این‌ حال، شناسایی دستی و غیرخودکار بوهای کد چالش­برانگیز و خسته­کننده است. بنابراین، روش­هایی برای شناسایی این نوع کدها به­صورت خودکار و نیمه­خودکار ارایه شده است. نکته حائز اهمیت در روش­های غیرخودکار آن است که پیش‌بینی کدهای نابسامان، نیاز به دانش فردی افراد است که هم زمان‌بر است و هم امکان خطا را افزایش می‌دهد. ازاین‌رو، استفاده از روش­های خودکار برای پیش­بینی کدهای نابسامان، ارجحیت بیشتری دارد. تاکنون تحقیقات زیادی در حوزه پیش­بینی و شناسایی کدهای نابسامان به­صورت خودکار انجام شده است. درصد زیادی از این تحقیقات بر روی پیش­بینی چهار نوع بوی کد شامل؛ متد طولانی، خصیصه حسادت، کلاس خدا و کلاس داده تمرکز کرده­اند. تمرکز ما نیز در این مقاله بر روی بهبود دقت استخراج این نوع از کدهای نابسامان است. یکی از روش­های رایج برای پیش­بینی این نوع کدها، استفاده از روش­های مبتنی بر یادگیری ماشین است. شبکه‌های عصبی مصنوعی نوع خاصی از الگوریتم‌های یادگیری ماشین است که مطابق با روش عملکرد مغز انسان مدل شده‌اند. به این معنی که این شبکه‌ها قادر هستند از داده‌های ورودی یاد بگیرند و پاسخ را در قالب پیش‌بینی‌ها و طبقه‌بندی‌ها ارائه دهند. در این مقاله، برای پیش‌بینی کدهای نابسامان نرم‌افزار از شبکه عصبی چند لایه و همچنین از یک روش انتخاب ویژگی جدید به‌منظور افزایش دقت پیش­بینی استفاده شده است.

Keywords