|
|
ارائه روشی برای پیش بینی کدهای نابسامان سامانههای نرم افزاری با استفاده از شبکه عصبی
|
|
|
|
|
نویسنده
|
کریمی علی ,کریمی فرهاد
|
منبع
|
پدافند الكترونيكي و سايبري - 1402 - دوره : 11 - شماره : 3 - صفحه:67 -76
|
چکیده
|
مهندسان نرم افزار همواره به دنبال کاهش هزینههای تولید و افزایش کیفیت نرم افزار هستند. روشهای مختلفی برای افزایش کیفیت نرم افزار وجود دارد که بازسازی کد یکی از این روش ها است. بازسازی و بازآرایی کد روشی برای تمیز کردن کدهای نرم افزار و یکی از روال های بسیار مهم در حفظ کیفیت نرم افزار است. یکی از چالش های اصلی در توسعه و تولید کدهای تمیز در نرمافزار وجود کدهای نابسامان یا بوهای کد است. بوی کد یک نشانه سطحی در کد است که احتمالاً نشان دهنده ی یک مشکل عمیقتر در نرم افزار میباشد. وجود بوی کد ممکن است باعث کند شدن پردازش، افزایش خطر خرابی و همچنین خطاهای نرم افزار شود. از اینرو، توسعهدهندگان نرم افزار درصدد هستند که با شناسایی کدهای نابسامان، ضمن بازآرایی کد نرم افزار، توسعهپذیری و نگهداشتپذیری آن را در آینده تسهیل کنند. با این حال، شناسایی دستی و غیرخودکار بوهای کد چالش برانگیز و خسته کننده است. بنابراین، روش هایی برای شناسایی این نوع کدها به صورت خودکار و نیمه خودکار ارایه شده است. نکته حائز اهمیت در روش های غیرخودکار آن است که پیشبینی کدهای نابسامان، نیاز به دانش فردی افراد است که هم زمانبر است و هم امکان خطا را افزایش میدهد. ازاینرو، استفاده از روش های خودکار برای پیش بینی کدهای نابسامان، ارجحیت بیشتری دارد. تاکنون تحقیقات زیادی در حوزه پیش بینی و شناسایی کدهای نابسامان به صورت خودکار انجام شده است. درصد زیادی از این تحقیقات بر روی پیش بینی چهار نوع بوی کد شامل؛ متد طولانی، خصیصه حسادت، کلاس خدا و کلاس داده تمرکز کرده اند. تمرکز ما نیز در این مقاله بر روی بهبود دقت استخراج این نوع از کدهای نابسامان است. یکی از روش های رایج برای پیش بینی این نوع کدها، استفاده از روش های مبتنی بر یادگیری ماشین است. شبکههای عصبی مصنوعی نوع خاصی از الگوریتمهای یادگیری ماشین است که مطابق با روش عملکرد مغز انسان مدل شدهاند. به این معنی که این شبکهها قادر هستند از دادههای ورودی یاد بگیرند و پاسخ را در قالب پیشبینیها و طبقهبندیها ارائه دهند. در این مقاله، برای پیشبینی کدهای نابسامان نرمافزار از شبکه عصبی چند لایه و همچنین از یک روش انتخاب ویژگی جدید به منظور افزایش دقت پیش بینی استفاده شده است.
|
کلیدواژه
|
کد نابسامان، بوی کد، انتخاب ویژگی، طبقه بندی، یادگیری ماشین، شبکه عصبی
|
آدرس
|
دانشگاه جامع امام حسین (ع), دانشکده و پژوهشکده رایانه، شبکه و ارتباطات, ایران, دانشگاه جامع امام حسین(ع), ایران
|
پست الکترونیکی
|
f.karimi8216@gmail.com
|
|
|
|
|
|
|
|
|
a method to prediction of software system’s code smells using neural network
|
|
|
Authors
|
karimi ali ,karimi farhad
|
Abstract
|
software engineers are always looking to reduce production costs and increase software quality. there are various methods to improve software quality, and code refactoring is one of these methods. code refactoring and reorganization is a method for cleaning up software code and is one of the crucial processes in maintaining software quality. one of the main challenges in developing and producing clean code in software is the existence of inconsistent or bad-smelling code. code smell is a superficial sign in the code that may indicate a deeper problem in the software. the existence of code smells may slow down processing, increase the risk of failure, as well as software errors. therefore, software developers attempt to identify inconsistent code and facilitate its maintainability and scalability by refactoring software code. however, manual and automatic identification of code smells is challenging and tiring. as a result, methods for identifying such codes automatically and semi-automatically have been proposed. an important note in non-automatic methods is that predicting inconsistent code requires individual knowledge that is both time-consuming and increases the possibility of error. therefore, automated methods have a greater advantage in predicting inconsistent code. so far, extensive research has been conducted on automatic prediction and identification of inconsistent code. a high percentage of these studies have focused on predicting four types of code smells: long method, feature envy, god class, and data class. in this article, our focus is on improving the accuracy of extracting such inconsistent codes. one of the common methods for predicting this type of code is using machine learning-based methods. artificial neural networks are a specific type of machine learning algorithm that is modeled according to the human brain’s performance method. this means that these networks can learn from input data and provide responses in the form of predictions and classifications. in this article, a multi-layer neural network was used to predict software inconsistent code, as well as a new feature selection method to increase prediction accuracy.
|
Keywords
|
code smell ,feature selection ,classification ,machine learning ,neural network
|
|
|
|
|
|
|
|
|
|
|