نام پژوهشگر: بهزاد نظرپور

تشخیص خطای نرم افزار با استفاده از داده کاوی
پایان نامه وزارت علوم، تحقیقات و فناوری - دانشگاه شیراز 1390
  بهزاد نظرپور   اشکان سامی

با توجه به نقش حیاتی نرم افزاردرتجارت، دولتها و جوامع، بهبود کیفیت و سودمندی نرم افزار یکی از اهداف مهم مهندسی نرم افزار می باشد که کاوش داده های مهندسی نرم افزار یک وسیله امید بخش برای رسیدن به این هدف است. محققین به شکل گسترده ای از الگوریتم های داده کاوی در راستای کمک به فرآیندهای مختلف مهندسی نرم افزار استفاده می کنند. بعنوان مثال در فاز نگهداری نرم افزار برای تعیین موارد زیر از الگوریتم های داده کاوی استفاده می شود: الف- با تغییر قسمتی از کد پروژه چه قسمتهای دیگری از کد نیز باید تغییر پیدا کنند؟ ب- باتوجه به شناخت قسمتهایی از کد که اکنون خطا دارند چه خطاهای بالقوه ای ممکن است در آینده پروژه و یا پس از تحویل محصول نهایی، در محیط مشتری رخ دهند؟ الگوریتمهای داده کاوی در چهاربخش کاوش الگوهای تکرار شونده، تطبیق الگو، خوشه یابی و طبقه بندی قرار می گیرند. با توجه به مشاهدات و نتایج بدست آمده ، مشخص شده است که قسمت عمده ای (حدود 80 درصد) از خطاهای یک سیستم نرم افزاری فقط در تعداد کمی (حدود 20 درصد) از ماژولهای آن سیستم رخ می دهد، بنابراین شناسایی به موقع این ماژولها درراستای مدیریت پروژه و توزیع مناسب هزینه ها می تواند بسیار موثر واقع شود. از این رو توسعه دادن روشهای اتوماتیک در زمینه تشخیص و شناسایی خطا می تواند بسیار مفید وکارگشا باشد، طبقه بندی کردن یکی از روشهای مرسوم ومعمول در داده کاوی است که از آن برای تشخیص خطای نرم افزار استفاده می شود. الگوریتمهای طبقه بندی مختلفی توسط پژوهشگران مختلف در این زمینه ارائه شده اند که در گروه های مختلف روش های درختی، روشهای آماری، روشهای مبتنی بر تشابه، روشهای مبتنی بر فاصله همسایگی، روشهای شبکه عصبی و غیره تقسیم بندی می شوند. اولین سئوالی که به ذهن خطور می کند این است که آیا این طبقه بندی کننده ها از نظر کارآیی تفاوت معنا داری دارند یا نه همه بطور یکسانی عمل می کنند؟ برای ارزیابی کارآیی این طبقه بندی کننده ها معیارهای مختلفی مانند مساحت زیر منحنی مشخصه عملکرد گیرنده، نرخ خطا، ضریب جی نی، آماره کولموگروف اسمیرنوف و غیره ارائه شده است که استفاده هر یک از این معیارها برای مقایسه طبقه بندی کننده ها ترتیب متفاوتی را برای کارآیی آنها نتیجه می دهد، بنابراین سئوال دوم این است که اگر به منظور پاسخگویی به سئوال اول بخواهیم طبقه بندی کننده ها را با هم مقایسه کنیم از چه معیاری برای مقایسه استفاده کنیم؟ در این پژوهش به منظور جواب دادن به سئوالات فوق یک آزمایش بزرگ شامل 88 مجموعه داده از داده های ناسا و پایگاه داده پرامیس و 30 الگوریتم طبقه بندی مختلف، ترتیب داده شده است و دو معیار مساحت زیر منحنی مشخصه عملکرد گیرنده و معیار اچ مورد بررسی و مقایسه قرار گرفته است. به منظور تعیین وجود تفاوت معنادار بین الگوریتمهای طبقه بندی مختلف بر اساس این دو معیار نیز، از تستهای پارامتریک و غیر پارامتریک استفاده شده است.