چکیده:
برای آگاهی از میزان کیفیت نرمافزار لازم است عاملهای مؤثر در کیفیت را اندازه بگیریم. میزان قابلیت اطمینان و تعداد خطا در نرمافزار از مهمترین عاملهای کمی هستند که کیفیت آنها را میسنجند. اگر بتوان این عاملها را در حین چرخة توسعة نرمافزار اندازهگیری کرد، میتوان فعالیتهای مؤثر و بهتری را در راستای بهبود کیفیت نرمافزار انجام داد. مشکل اینجا است که این دسته از عاملها در مراحل آخر توسعة نرمافزار در دسترس خواهند بود. برای حل این مشکل، این عاملها توسط معیارهایی اندازهگیری میشوند که در چرخة توسعة نرمافزار بهصورت زودهنگام در دسترس هستند. معیارهای اندازهگیری شده ورودیهای مدل پیشبینی خطا هستند و خروجی این مدل، ماژولهایی از نرمافزار هستند که احتمال بروز خطا در آنها وجود دارد. پیشبینی ماژولها مستعد خطا، رویکردی اثبات شده در جهت تخصیص بهموقع منابع پروژه، در مرحلة آزمون نرمافزار است. هنگامی که یک ماژول بهعنوان یک ماژول مستعد خطا پیشبینی میشود، تلاش بیشتری برای آزمون و تصحیح آن باید صرف شود. علاوهبرآن ماژول، تمامی ماژولها وابسته به آن نیز نیاز به رسیدگی ویژهای دارند. زمانی که یک ماژول تغییر میکند تمامی ماژولها وابسته به آن نیز ممکن است تحتتأثیر قرار بگیرند. مشکل در این است که معیارهای شناخته شدهای که در حوزهی پیشبینی خطا مورداستفاده قرار میگیرند، این وضعیت را در نظر نمیگیرند. برای حل این مشکل، در این مقاله معیارهای جدیدی بر اساس تغییرات در موارد وابستگی ارائه شده است. نتایج تجربی بهدستآمده نشان داد هرچه میزان تغییرات در ماژولها مورد وابستگی بیشتر باشد، احتمال خطا در ماژول وابسته بیشتر میشود. با ارزیابیهای صورتگرفته مشاهده شد معیار پیشنهادی قدرت پیشبینی نسبتاً بالایی دارد و بهکاربردن آن برای ساخت مدلهای پیشبینی خطا نیز افزایش قدرت پیشبینی را برای آنها در پی داشت.
To evaluate the software quality it is required to measure factors affecting the qualityof the software . Reliability and number of faults are examples of quality factors. If these factors are measured during the software development life cycle, more efficient and optimal activities can be performed to improve the software quality. The difficulty is that these factors could be measured only at the ending steps of the life cycle. To resolve the difficulty, these factors are indirectly measured through some software metrics which are available at the early stages of life cycle. These metrics are used as the input to fault prediction models and software components which may be faulty are the output of these models. Prediction of fault prone modules is a well known approach in software testing phase. When a module is predicted to be faulty, apparently more efforts have to be paid for correcting it. In addition to the module, all its dependent modules require specific consideration. When modifying a module all its dependent modules may be affected. The difficulty is that current known metrics for fault prediction do not reflect this situation. To resolve the difficulty, in this thesis, new metrics are introduced. Our experimental results show that the more the dependees of a module are changed, the more fault prone the module will be