خلاصه

با توجه به کاربردهای گسترده سیستمهای نرم افزاری در همه جوانب زندگی امروزی ، لزوم تولید نرم افزارهایتقریباً بدون خطا و با کیفیت بالا بیش از پیش اهمیت پیدا کرده است. قابلیت اطمینان نرم افزار یک رهیافت مهم برای ارزیابی کیفیت نرم افزار در نظر گرفته میشود. مدل سازی قابلیت اطمینان نرم افزار بر اساس فرایند پواسون ناهمگن یکی از روشهای کاملاً موفق در مهندسی قابلیت اطمینان نرم افزار میباشد. در این مقاله ابتدا مدل عمومی رشد قابلیت اطمینان نرم افزار را بررسی میکنیم، سپس به ارائه یک مدل تعمیمیافته قابلیت اطمینان نرم افزار، با در نظر گرفتن دو نوع خطای ساده و پیچیده و لحاظ کردن وابستگی بین خطاهای پیچیده و نیز تاخیر زمانی بین کشف و حذف خطاهای پیچیده میپردازیم. برآورد پارامترهای مدل پیشنهادی با استفاده از مجموعه دادههای شکست یک پروژه نرم افزاری واقعی و از طریق نرم افزار MATLAB انجام میشود. در پایان، مدل پیشنهادی را با یک مدل موجود با استفاده از معیارهای مختلف مقایسه میکنیم. نتایج نشان میدهد مدل پیشنهادی بر روی این مجموعه داده بهتر برازش شده، اطلاعات دقیقتری در مورد کیفیت نرم افزار ارائه میکند.

کلمات کلیدی: قابلیت اطمینان نرم افزار ، فرایند پواسون ناهمگن ، خطاهای ساده و پیچیده ، وابستگی خطاها ، تاخیر زمانی

.۱ مقدمه

نقش نرم افزارها در دنیای مدرن امروز به سرعت در حال توسعه است. بنابراین؛ دسترسی به کیفیت قابل قبول و رضایت مشتریان اهداف اصلی مهندسین نرم افزار طی فرایند توسعه نرم افزار بهحساب میآیند. یکی از عوامل موثر در تعیین کارایی و کیفیت نرم افزارها تخمین قابلیت اطمینان آنها میباشد. قابلیت اطمینان نرم افزار احتمال اجرای بدون شکست نرم افزار طی زمان معین و در یک محیط مشخص است. در طول ۰۳ سال اخیر تعداد بسیار زیادی از مدلهای رشد قابلیت اطمینان توسعه یافتهاند.

در مدل سازی قابلیت اطمینان نرم افزار پارامترهای ناشناختهای وجود دارند که غالبا با استفاده از روش ماکزیمم درستنمایی (MLE)ٌ یا کمترین مربعات ۲(LSM) تخمین زده میشوند۲]و.[۱

انواع مختلفی از مدلهای رشد قابلیت اطمینان نرم افزار ۳(SRGM)، هر یک بر اساس مجموعهای از فرضیات مطابق با مجموعه شرایط تست وجود دارند. بعضی از این مدلها، بسته به ماهیت رخداد رشد در مرحله تست، رشد قابلیت اطمینان را بصورت نمایی و بعضی S شکل نمایش می-دهند۵]و۴و۰و.[۱ اگر رشد قابلیت اطمینان یکنواخت باشد مدلهای نمایی در غیر این صورت مدلهای S شکل استفاده میشوند. در مدل نمایی G-O فرض میشود خطاها از یکدیگر مستقل و احتمال کشف خطا در واحد زمان ثابت (مستقل از زمان) است. همچنین خطاها به محض شناسایی حذف و خطای جدیدی در این حین بروز نمیکند (اشکالزدایی کامل).[۱] مدل ارائه شده توسط یامادا و همکارانش بر اساس مدل نمایی است با این تفاوت که آنها افزایش مهارت و یادگیری برنامه نویسان را در طول مرحله اشکالزدایی در مدل مشارکت دادند۰]و.[۲ بنابراین منحنی کشف خطا Sشکل خواهد بود. در مدلهایی که اخیراً توسط پژوهشگران ایجاد شدهاند خطاهای شناسایی شده میتوانند در انواع مختلف تقسیم بندی شوند. دستهبندی خطاها میتواند از جهات مختلفی انجام گیرد. به عنوان مثال میتوان آنها را از لحاظ میزان پیچیدگی و زمان لازم جهت حذف و اصلاحشان در دستههای متفاوت در نظرگرفت.[۶] و یا آنها را از لحاظ مستقل و وابسته بودن مورد بررسی قرار داد. هانگ ولین وابستگی بین خطاها و تاخیر زمانی را در مدل رشد قابلیت اطمینان نرم افزار مشارکت دادند۸]و.[۷ اهبا((Ohba ایده این موضوع که خطاها میتوانند مستقل و یا به هم وابسته باشند را مطرح کرد، با این فرض که خطاهای مستقل بلافاصله پس از شناسایی قابل حذف میباشند اما خطاهای وابسته پیش از حذف خطایی که به آن وابستهاند قابل حذف شدن نیستند.[۹] یانگ مشخص میکندکه گاهی ماهها نیاز به تلاش جهت حذف و اصلاح خطاهای کشف شده در سیستم های نرم افزاری بزرگ می-باشد.[۱۳]کاپور در سال ۲۳۳۷ وابستگی خطاها و تاثیر عامل تاخیر را در مدل شکل S مورد مطالعه قرار داد.[۱۱]

در این مقاله مدلی ارائه میشود که در آن خطاهای نرم افزاری از دو منظر میزان پیچیدگی و وابستگی بین آنها به سه نوع خطا تقسیم بندی می شوند. از نظر میزان پیچیدگی، خطاها ابتدا به دو دسته ساده و پیچیده تقسیم میشوند. خطای ساده به خطایی اطلاق می شود که بلافاصله و بسادگی بعد از شناسایی قابل حذف می باشد. برای خطاهای پیچیده، امکان وابستگی بین آنها را نیز در نظر میگیریم، سپس با توجه به اینکه خطاهای پیچیده بلافاصله بعد از کشف، قابل حذف نیستند و ممکن است ماه ها زمان و تلاش جهت حذف آنها نیاز باشد عامل تاخیر زمان بین کشف تا حذف این نوع خطاها در نظر گرفته می شود. بنابراین در مدل پیشنهادی خطاهای نرم افزاری به سه دسته ساده، پیچیده مستقل و پیچیده وابسته تقسیم می شوند. برای هر دسته، با توجه به نوع خطا مدل مناسب قابلیت اطمینان را پیشنهاد می کنیم و مدل کلی قابلیت اطمینان نرم افزار را برابر با مجموع سه مدل فرض شده در نظر می گیریم.

در این مقاله در بخش۲ به توضیح پیرامون فرضیات عمومی در مدلسازی قابلیت اطمینان نرم افزار بر اساس فرایند پواسون ناهمگن ۴(NHPP) میپردازیم. در بخش۰ مدل پیشنهادی را همراه با پارامترها و فرضیات آن ارائه میکنیم. در بخش۴ تخمین پارامترهای مدل پیشنهادی بر روی داده های شکست واقعی یک نرم افزار صورت میگیرد. بخش ۵ به مقایسه مدل پیشنهادی با یک مدل پایه در زمینه قابلیت اطمینان نرم افزار می پردازد. سرانجام مقاله در بخش ۶ با ارائه نتیجه گیری خاتمه می یابد.

.۲ فرضیات عمومی در مدل سازی قابلیت اطمینان نرم افزار

کلیه فرض اساسی در مدلهای قابلیت اطمینان نرم افزار این است که فرایند شکست بوسیله NHPP قابل توصیف است. در اکثر مدلهای رشد قابلیت اطمینان نرم افزار فرضیات کلی زیر را با توجه به فرایند کشف خطا به شرح ذیل در نظر گرفته می شوند.

۱ Maximum Likelihood Estimation 2 Least Squared Estimation 3Software reliability growth model
4 Non-Homogeneous Poisson Process

(۱) سیستم نرم افزاری محل وقوع شکستهایی با زمان تصادفی، ایجاد شده توسط نقصهای باقیمانده در نرم افزار میباشد.
(۲) رخداد کشف/حذف خطا بوسیله NHPP مدل سازی می شود.
(۰) تمام خطاها از یکدیگرمستقل بوده و به یک میزان قابل شناسایی میباشند.
(۴) تعداد خطاهای کشف شده در هر زمان متناسب با تعداد خطاهای باقیمانده در نرم افزار است.
(۵) هر زمان که شکستی رخ میدهد خطایی که منجر به آن شده بلافاصله و به طور کامل حذف میشود و خطای جدیدی در این حین بروز
نمیکند (اشکالزدایی کامل)

فرض کنید تعداد خطاهای کشف شده (شکستهای مشاهده شده) تا زمان و میانگین تعداد خطاهای کشف شده تا زمان t،
۵(MVF)باشد. در حقیقت SRM تابع مقدار میانگین یک NHPP است. احتمال این کهدقیقاً شکست در بازه زمانی رخ دهد از رابطه ۱ به
دست میآید.
(۱) و } {

که در آن ∫ تابع شدت شکست نرم افزار (تعداد شکستها در واحد زمان) است.
(۲)

بنابراین مدل کلی قابلیت اطمینان مبتنی بر NHPP از حل معادله دیفرانسیل زیر با شرط اولیه m(0)=0 بدست میآید:

(۰)

که در آن نشان دهنده تعداد کل خطاهای برآورد شده موجود در نرم افزار قبل از انجام تست میباشد. عبارت متوسط تعداد خطاهای
باقیمانده در نرم افزار تا زمان t را نشان میدهد. نرخ کشف خطا در واحد زمانّ است.
جواب عمومی معادله دیفرانسیل ۰ به صورت زیر است:
(۴ ) ∫
که در آن
و C ثابت انتگرال گیری می باشد ∫

در نهایت قابلیت اطمینان نرم افزار از طریق فرمول زیر بدست میآید:
(۵) ∫

برای مثال درمدل نمایی گوئل- آکوموتو داریم: [۲]
جدول :۱ جزئیات مدل نمایی گوئل و آکوموتو
نام مدل ×تابع مقدار متوسط ×نرخ کشف خطا ×تابع شدت شکست ×تعداد خطاهای باقیمانده
× × × ×
×نمایی
×
.۳ مدل پیشنهادی
در این بخش ابتدا پارامترهای مدل و سپس فرضیات آن را ارائه میکنیم و در نهایت مدلسازی این مدل جدید را با توجه به فرضیات ارائه شده انجام می-دهیم.
. ۳٫ ۱ پارامترهای مدل پیشنهادی
مدل شامل دو نوع پارامتر مستقل از زمان و وابسته به زمان می باشد. پارامترهای مستقل از زمان مدل عبارتند از: