بخش مهندسی و علوم کامپیوتر و فناوری اطلاعات، دانشکده مهندسی برق و کامپیوتر، دانشگاه شیراز، شیراز، ایران
چکیده
به دلیل پیچیدگی بالای سیستمهای نرمافزاری و با توجه به محدودیت زمان و هزینه توسعه ، کشف تمامی خطاهای نرم افزار در زمان توسعه، بسیار دشوار می-باشد. بنابراین، پیشبینی خطاها با استفاده از نسخههای قبلی پروژهها یا پروژههای دیگر جهت ایجاد نرمافزار با قابلیت اطمینان بالا ضروری است. عدم تعمیم-پذیری الگوریتمهای پیشبینی خطاهای نرمافزاری، عدم تعادل بین دادههای خطا و بدون خطا و متفاوت بودن مقادیر ویژگیها در پروژههای مختلف، چالشهای اساسی در سیستمهای پیشبینی خطاهای نرمافزار میباشند. این مقاله یک معماری چهار سطحی برای پیشبینی خطاهای نرمافزاری ارایه میکند. ابتدا الگوریتمی برای دانه بندی مقادیر عددی معرفی میشود. سپس اهمیت ویژگیها بر اساس مقادیر دانه بندی شده محاسبه میشود. در ادامه دادهها به سه قسمت آموزشی، اعتبارسنجی و تست تقسیم میشود و برای متعادل شدن نسبت دادههای خطا به دادههای غیرخطا بر روی دادههای آموزشی از الگوریتم oversampling استفاده میشود. در انتها سه نوع ارزیابی و مقایسه با سایر روشها با استفاده از دیتاستهای PROMISE وNASA انجام میپذیرد. نتایج این مقاله نشان می-دهد که پیشبینی خطا در هر سه نوع ارزیابی در اکثر پروژههای هر یک از دیتاستها عملکرد بهتری نسبت به سایر روشها دارد. همچنین نشان داده می شود که تعمیم پذیری ارایه شده در این مقاله بر روی هر مجموعه دادهای قابل انجام است.