پدافند الکترونیکی و سایبری (May 2022)
انتخاب ویژگی با استفاده از ترکیب الگوریتمهای ژنتیک-وال-کلونی مورچگان، برای پیشبینی خطاهای نرمافزار مبتنی بر یادگیری ماشین
Abstract
روشهای پیشبینی خطای نرمافزار برای پیشبینی ماژولهای مستعد خطا در مراحل اولیهی توسعهی نرمافزار استفاده میشود. امروزه فنون یادگیری ماشین پرکاربردترین فنون مورد استفاده در زمینهی پیشبینی خطاهای نرمافزار محسوب میشود. ابعاد بالای داده یکی از مشکلاتی است که عملکرد الگوریتمهای یادگیری ماشین را تحت تأثیر قرار میدهد. ابعاد بالای داده به معنای وجود ویژگیهای غیرمفید یا افزونه است که احتمالاً الگوریتم یادگیری را گمراه میکند و درنتیجه دقت آن را کاهش میدهد. دقت پایین پیشبینی خطای نرمافزار باعث شناسایی دیرهنگام بعضی ماژولهای خطادار میشود و در نتیجه تلاش و هزینهی برطرف کردن خطاها را به صورت غیرعادی بالا میبرد. بنابراین حل مشکل ابعاد بالای داده برای افزایش دقت پیشبینی خطای نرمافزار ضروری است. برای کاهش ابعاد داده، محققین از الگوریتمهای انتخاب ویژگی استفاده میکنند. الگوریتمهای انتخاب ویژگی به دو دستهی الگوریتمهای مبتنی بر فیلتر و الگوریتمهای مبتنی بر پوشش تقسیم میشود. الگوریتمهای مبتنی بر پوشش منجر به مدلهای پیشبینی با دقت بالاتری میشود. در این الگوریتمها میتوان از روشهای مختلفی برای جستوجوی راهحلها استفاده نمود که بهترین نوع آن جستوجوی فراابتکاری است. هرکدام از الگوریتمهای فراابتکاری نقاط قوت و ضعفی دارد که محققان برای برطرف کردن این نقاط ضعف از ترکیب این الگوریتمها استفاده میکنند. در این تحقیق برای بهبود نقاط ضعف هرکدام از الگوریتمهای فراابتکاری، از ترکیب سه الگوریتم ژنتیک، کلونی مورچگان و بهینهسازی وال برای انتخاب ویژگی مبتنی بر پوشش استفاده میشود. بدیهی است بهکارگیری روشهای پیشبینی زودهنگام خطاهای نرمافزار قبل از آزمون واقعی آن، یکی از فنون مؤثر پدافند غیرعامل در کاهش هزینههای توسعهی سامانههای نرمافزاری محسوب میشود. برای ارزیابی روش پیشنهادی، 19 پروژهی نرمافزاری مورد بررسی و آزمایش قرار گرفته و نتایج با دیگر روشها مقایسه شده است. نتایج ارزیابی نشان میدهد که روش پیشنهادی از عملکرد بهتری نسبت به سایر روشها برخوردار است.