بخشی از مقاله
چکیده
- قابلیت اطمینان نرمافزار یکی از فاکتورهای مهم در تعیین کیفیت نرمافزار محسوب میشود. تا کنون مدلهای زیادی جهت کمّی کـردن و انـدازه-گیری این فاکتور مهم و حیاتی معرفی شدهاست. اکثر این مدلها پیچیده بوده و بیشتر در محیطهای آکادمیک و آزمایشگاهی مورد استفاده قرار میگیرند. در ایـن مقاله علاوه بر ارائه دستهبندیهای مختلفی از این مدلها، مفروضات و ویژگیهای هر یک از آنها مشخص میشود؛ به نحوی که با دادن نظم به آنها مـیتـوان بـه سمت راحتتر کردن استفاده از آنها پیش رفت. از بین مدلهای ارائه شده، مدلهای رشد قابلیت اطمینان نـرمافـزار بیشـترین مقـالات و پـژوهشهـا را بـه خـود اختصاص دادهاند و ما نیز در این مقاله آنها را بیشتر از دیگر مدلها مورد بحث قرار میدهیم. هدف از این مقاله، ارائهی یک بازبینی ازروشها و مـدلهـای انـدازه-گیری قابلیت اطمینان نرمافزار میباشد؛ به ویژه آن دسته از مدلهایی است که در فازهای نهایی چرخهی حیات نرمافزار، قابلیت اطمینان را تخمین مـیزننـد (کـه به آنها مدلهای تخمین قابلیت اطمینان نرمافزارنیز گفته میشود). سپس در پایان الگوریتمی برای انتخاب مدل مناسب ارائه میگردد.
کلید واژه- انتخاب مدل، پروفایل عملیاتی، قابلیت اطمینان، مدلهای رشد قابلیت اطمینان نرمافزار، مدلهای قابلیت اطمینان نرمافزار
-1 مقدمه
در حال حاضر نرم افزار به عنوان یکی از اصلیتـرین بخـش-های یک سیستم محسوب میشود و یکی از کلیدیترین نقشهـا را در سیستم ایفا میکند؛ به طوریکـه ایـن نقـش روز بـه روز در حالا پررنگ شدن میباشد. یکی از فاکتورهای مهم هر نرمافزاری، کیفیت آن نرمافزار اسـت و همچنـین از مهـمتـرین فاکتورهـای کیفیت، قابلیت اطمینان آن نرمافزار میباشد .[3 -1]
بر اساس استاندارد IEEE 729 که در سال 1991 ارائه شد، قابلیت اطمینان نرمافزار عبارتست از احتمال بدون شکست بودن عملکرد سیستم برای یک بازهی زمـانی معـین و در یـک محـیط معین. اگر قابلیت اطمینان را با(R(tنمایش دهیم، بر اسـاس ایـن تعریف، R(t) یک سیستم، تابعی است از زمان که به صورت یـک احتمال شرطی تعریف میشود کـه سیسـتم وظـایف خـود را در بازهی زمانی[t0,t1]به درستی انجام خواهد داد، با این شرط که در زمانt0سیستم وظایف خود را به درستی انجام میدادهاست.
مهندسی قابلیت اطمینان نرمافزار1یکی از مقولههـایی اسـت که به آن توجه ویژهای شدهاست. بر اساس یک مطالعهی قاعـده-مند [4]، قابلیت اطمینان نرمافزار یکـی از موضـوعات بـه شـدت فعال و پویا در مهندسی نرمافـزار مـیباشـد و تـا کنـون مقـالات
زیادی در این حوزه نگارش شدهاست. همچنـین بـر اسـاس ایـن تحقیق قاعدهمند، بیشترین کارهای صورت گرفته در ایـن زمینـه مربوط میشود به ارائهی یک مدل جدید برای اندازهگیـری قابلیـت اطمینان و یا ارتقای مدلهای ارائه شدهی قبلی %63) درصد از کارهای
انجام شده در این حوزه).
معیارهــای متفــاوتی بــرای پــیشبینــی و یــا تخمینقابلیــت اطمینان یک نرمافزار وجود دارد. در مـدلهـایی کـه در فازهـای اولیه چرخهی حیات نرمافزار برای پـیشبینـی قابلیـت اطمینـان نرمافزار استفاده میشود (مدلهای پیشبینی که در قسـمت -2) (1-5 در مــورد آنهــا توضــیح داده خواهــد شــد)، از معیارهــایی نظیرنوع کاربرد نرمافـزار، محـیط توسـعه و خصیصـههـای نـرم-افزاراستفاده میشود2]، .[5 این در حالی است که در مدلهـایی که در فازهای نهایی چرخهی تولید نرم افـزار اسـتفاده مـیشـوند (مدلهای تخمینی کـه در قسـمت (2-5-2) بـه آنهـا پرداختـه خواهد شد) از دادههای شکست و همچنین اشکالات باقیمانده2در نرمافزار، برای اندازهگیری قابلیت اطمینان استفاده مـیکننـد1]، 2، 5، .[6
دستهبندی مدلهای موجود بـر اسـاس معیارهـای مختلـف باعث میشود که بتوان با توجه به سطحی از قابلیت اطمینان کـه برای نرمافزار مطلوب است، از کاراترین و مناسبترین مدلموجود
زذتل خغ1سکطغکطکسغپه
لتزه شAلع ,لاهلاکغهعطکل y,هق ذصستص
استفاده نمود. در واقع این دستهبندیها یک دید روشن از روش-های موجود ارائه خواهد دادکه در نتیجه میتوان به ویژگـیهـا و مفروضات مشترک خاص هر دسته پی برد و در عمل نیز بتوان از این مدلها با توجه به ویژگیهای نرمافزار و نیز میـزان بودجـهی تعریف شده به نحو کارایی استفاده کرد.
با توجه به هدف این مقاله که ارائهی یک بازبینی از مدلهـا اندازهگیری قابلیت اطمینان نرمافزار است، در ابتدا در بخش 2 به معرفی چند نمونه از پر استنادترین و پرکاربردترین دستهبنـدی-های موجود خواهیم پرداخت و در بخش 3 نحوهی ایجاد پروفایل عملیاتی را شرح خواهیم داد، در بخـش 4 نیـز بـا الهـامگیـری از تحقیقات قبلی، الگوریتمی جهت انتخاب مدل مناسب ارائه مـی-دهیم. در بخش پایانی نیز بـه بیـان نتیجـهگیـری و چـالشهـا و همچنین مسائل بازی که در این حوزه وجود دارد میپردازیم.
-2 دستهبندی مدلهای اندازهگیری قابلیت اطمینان نرم-افزار
مدلهای اندازهگیری قابلیت اطمینان نـرمافـزار تـا کنـون از منظرهای مختلفی دستهبندی شـدهانـد. در ادامـه چنـد مـورد از دستهبندیهای پرکاربرد مورد بررسی قرار خواهد گرفت.
-1-2 دستهبندی موسا و اکیوموتو
یکی از اولین دسته بندیهای ارائـه شـده بـرای مـدلهـای قابلیت اطمینان نرمافزار، توسـط موسـا و اکیوموتـو ارائـه شـده-است.[1] این ردهبندی، بر اساس 5فـاکتورِحوزهی زمـان (زمـان تقویمی3 و یا زمان اجرا در واحد پردازش مرکزی(4، دسته)5تعداد شکستهای محدود و یا نامحدود)، نوع توزیع (توزیع پواسن و یـا توزیع دو جملهای)، کلاس (این فاکتور فقط مخصوص مدلهـای دستهی تعداد شکستهای محدود اسـت و بـر مبنـای آن شـکل تابعی شدت شکست بر حسب زمان بیـان مـیشـود) و خـانواده (این فاکتور فقط مخصوص مدلهای دستهی تعداد شکستهـای نامحدود است و بر مبنـای آن شـکل تـابعی شـدت شکسـت بـر حسب تعداد شکستهای مورد انتظار بیـان مـیشـود)مـیباشـد. اهمیت این دستهبندی به خاطر این است که جزء اولـین دسـته-بندیهاست و مطالعات و پژوهشهـایی کـه بعـداً در ایـن حـوزه انجام شدهاست از آن باز خورد زیادی گرفتهاند .[1]
-2-2 دستهبندی لیو
در مرجع [1]،بازبینی مفصلی از مـدلهـای تخمـین قابلیـت اطمینان نرمافزار ارائه شدهاست؛ دسته بندی ارائه شده برای ایـن
مدلها به شرح زیر است:
مدلهای ردهی زمان شکست نمایی6 مدلهای ردهی زمان شکست گاما و ویبول7 مدلهای شکست نامحدود8 مدلهای بیزین9
بر اساس این منبع، مدلهـای رده ی زمـان شکسـت نمـایی جزء مهمترین مدلها هستند که تا آن زمان بیشـترین مقـالات و پژوهشها در مورد آنها بودهاست. معروفترین مدلهای موجـود در این دسته مدلجِی-ام 10، مدل فرآینـد نامتجـانس پواسـن11، مــدل زمــان اجــرای پایــه موســا، مــدل فــوق نمــایی12و مــدل اشنیدویند13میباشد. در این مدلها تابع شدت شکست به صورت نمایی است.
در مدلهای ردهی زمان شکست گاما و ویبول، همانطور کـه از نامشان پیداست، برای توصیف تابع شـدت شکسـت، بـه جـای توزیع نمایی از توزیع گاما و ویبول اسـتفاده مـیشـود. دو توزیـع گاما و ویبول به خاطر انعطافپذیری بـالایی کـه در مـدل کـردن شکستها فراهم میکنند، از اهمیت ویژهای برخوردارند. معروف-ترین مدلهای موجود در این دسـته عبارتنـد از: مـدل ویبـول و مدل رشد قابلیت اطمینان S شکل.
مدلهای ردهی شکست نامحدود نیز مدلهایی هسـتند کـه تعداد شکستها در آنها محدود نیست و در زمان بینهایـت تـابع متوسط تعداد شکستها در آنها به سمت بینهایت میل میکنـد ( ). به این معنا کـه نـرمافـزار هـیچ وقـت بدون اشکال نخواهد بـود و دلیـل آن هـم مـیتوانـد پیـدا شـدن اشکالات جدید در حین فرآینـد بازیـابی و تصـحیح خطـا باشـد. معروفترین مدلهـای موجـود در ایـن دسـته عبارتنـد از: مـدل دوان14، مدل هندسی، مدل پواسن لگاریتمی موسا و اوکیوموتو.
آخرین دسته از مدلها مربوط میشود به معرفی مـدلهـای بیزی. در مدلهای گذشته، قابلیـت اطمینـان نـرمافـزار تنهـا در صورتی تغییر میکند که یک خطا رخ دهد و در اکثر آنها تـاثیر خطاها یکسان در نظر گرفتـه مـیشـود. در مـدلهـای بیـزی در صورتیکه هیچ شکستی گزارش نشود نیز قابلیت اطمینـان تغییـر میکند (افزایش مییابد). در واقع در این مدلها قابلیت اطمینان، تابعی است از تعداد اشکالات کشف شده و تعداد عملیـات بـدون شکست نرمافزار. همچنین در این مدلها تاثیر خطاها یکسـان در نظر گرفته نمیشود و تاثیر خطاهـا بسـیار مهـمتـر از تعـداد آن-هاست 1]، .[2 مدل معـروف در ایـن دسـته مـدل رشـد قابلیـت اطمینان لیتل وود – ورال است که برای اطلاع بیشـتر مـی تـوان
زذتل خغ1سکطغکطکسغپه
هتزه شAلع ,لاهلاکغهعطکل y,هق ذصستص
به[1] مراجعه نمود.
-3-2 دستهبندی فام
بر اساس ایـن دسـته بنـدی [2]) و ([ 8]، کلیـه روشهـای تخمین قابلیت اطمینان نرمافزار را میتـوان بـه دو دسـته اصـلی تقسیم کرد؛
-1-3-2 مدلهای قطعی
در این روشها، از هیچ پدیده و اتفاق تصادفی استفاده نمی-شود و شالودهی برنامه یعنی تعداد عملگرها و عملوندهای مجزای برنامه، تعداد خطاها و همچنین تعداد دستورات ماشین در برنامه تحلیل میشود. دو تا از معمولترین مدلهای این گـروه عبارتنـد از:متریکهای نرمافزاری هالستید)15مـدلی بـرای تخمـین تعـداد خطاها در نرمافزار بر پایهی تعـداد واحـد عملگرهـا و عملونـدها) ومتریکپیچیدگی سایکلومتیکِ مک کاب)16مدلی بـرای تعیـین کران بالا برای تعدادتستها در یک برنامه).
-2-3-2 مدلهای احتمالی
این مدلها پدیدهی شکست را به صورت یک سری اتفاقـات احتمالی با توجه به زمان یا میزان تلاش تست، شـرح مـیدهنـد. مهمترین مدلهای موجود در این دسـته عبارتنـد از: مـدلهـای مبتنی بر زمـان بـین شکسـتهـا17، مـدل هـای شـمارش تعـداد شکستها18، مدلهای کاشت (تزریق) خطا یا اشکال19، مدلهـای رشد قابلیت اطمینان20و سایر مدلها.
-4-2 دستهبندی بر اساس نوع دادههای مورد نیاز
نمونهی دیگر از دستهبندیهای موجود، مدل ها را بر اسـاس نوع دادههای مورد نیاز دسته بندی میکنند 3]، .[7 دسـتهبنـدی مدلها به دو دستهی اصلی زیر میباشد:
-1-4-2 مدلهای تجربی
بر اساس[7]، مدلهای تجربی رابطه یا مجموعهای از روابـط را بین معیارهای قابلیت اطمینان نرمافزار و متریکهـای مناسـب نرمافزار - مثل پیچیدگی برنامـه – بـر قـرار مـیکننـد. کـه ایـن متریکهای نرمافزاری خود از نتـایج تجربـی حاصـل از اطلاعـات گذشته که در دسترس هستند، استفاده مـیکننـد. از مـدلهـای موجود در این دسته، عبارتند از : مدل میراندا21، مدل هالسـتید22 و مدل اشنایدر.23
به عنوان مثال، متریک نرمافزاری به کار گرفته شده در مدل
میراندا، تعداد دستورالعملهای برنامه است و این مدل بـین ایـن متریک و تعداد شکستهای برنامه رابطه بر قرار میکند. در مدل هالستید نیز تعداد اعمال و نیز تعداد عملوندهای برنامه به عنـوان متریک نرمافزاری جهت تخمین قابلیت اطمینان نرمافزار استفاده میشود. در مدل اشنایدر نیز با دانستن تعداد زیر برنامهها، تعـداد کل هزاران دستورالعمل منابع کد شدهی نرمافزار و نیز میزان کل تلاش حرفهای صورت گرفته به بر حسـب مـاه و افـراد مـیتـوان قابلیت اطمینان را تخمین زد.
-2-4-2 مدلهای تحلیلی24
این مدلها در فازهای نهایی چرخهی حیات نرمافـزار مـورد استفاده قرار گرفته (فازهای تست و پیادهسازی) و بـا اسـتفاده از اطلاعات شکست نرمافزار و مدل کردن آنها از طریق یک سـری تئوریهای آماری/ اتفاقی25 ، قابلیت اطمینان را برای یک نرمافزار تخمین میزنند. این دسته از مدلها خود به دو زیر گـروه مـدل-های پویا و مدلهای ایستا تقسیم میشوند.
-1-2-4-2 مدلهای پویا26یا مـدلهـای رشـد قابلیـت اطمینـان نرمافزار
در این مدلها، رفتار شکست نرمافزار وابسته به زمان اسـت؛ به گونهای که با جلو رفتن تست و کشف اشکالات بیشتر، قابلیـت اطمینانافزایش مییابد. در واقع بـر اسـاس نـوع فـاکتور شکسـت مورد استفاده (زمان بین شکستها یا تعداد شکستها)، بـا پـیش بردن عملیات تست، تعداد شکسـتهـای باقیمانـده یـا فاصـلهی زمانی بین شکستها کاهش مییابد. این دسته از مـدلهـا بسـته به نوع واحد دورهی کشـف خطـا، زمـان اجـرای نـرمافـزار(زمـان تقویمی و یا زمان اجـرا در واحـد پـردازش مرکـزی) و یـا تعـداد موردهای تست اجرا شدهاست، خود به دو زیـر گـروه مـدلهـای زمان پیوسته27 و مدلهای زمان گسسته28 تقسیم میشوند .[3]
-2-2-4-2 مدلهای ایستا29
در این دسته از مدلها، قابلیت اطمینان نرمافزار در فازهـای ابتداییتری (مثل فاز طراحی و کدنویسی) اندازهگیری مـیشـود. همچنین در این مدلها بر خلاف مدلهای پویـا، رفتـار شکسـت نرمافزار مستقل از زمان است. این مدلهـا خـود بـه دو دسـتهی مدلهای مبتنی بر دامنـهی شکسـت30 و مـدلهـای مبتنـی بـر دامنهی داده31تقسیم میشوند.
زذتل خغ1سکطغکطکسغپه
متزه شAلع ,لاهلاکغهعطکل y,هق ذصستص
-5-2 دستهبندی سنتی و کلی بر اساس زمان استفاده از مدل
یکی دیگر از دستهبندی مدلهای قابلیت اطمینان نرمافـزار، بر مبنای زمان کاربرد (فاز) است .[5] بر این مبنا، مدلهـا بـه دو دستهی اصلی مدلهای پیش بینی قابلیت اطمینـان و مـدلهـای تخمین قابلیت اطمینان تقسیم میشوند.
-1-5-2مدلهای پیشبینی قابلیت اطمینان نرمافزار32
مدلهای پیشگویی قابلیت اطمینان نرمافزار در اولـین دوره-های حیات نرمافزار -که اطلاعات خرابی موجـود نیسـت- ایجـاد میشوند و با بررسی فرآیند طراحـی، قابلیتاطمینـان نـرمافـزار را پیشگویی میکنند .[3] از آنجایی که در این مقاله بیشتر بر روی تخمین قابلیت اطمینان تاکید داریم، بیشـتر از ایـن بـه موضـوع پیش بینی نمیپردازیم و شما را برای مطالعهی بیشـتر بـه منبـع [2] ارجاع میدهیم.
-2-5-2 مدلهای تخمین قابلیت اطمینان نرمافزار33
روشهای تخمینی، روشهایی هستند که در فازهای تست و یا اجرای یک نرم افزار– که اطلاعات خرابی موجود اسـت- مـورد استفاده قرار میگیرند. یعنی نرمافزار باید به یک سطحی از بلـوغ رسیدهباشد و دیگر نیاز نباشد تغییر جدی و بزرگی روی آن انجام شود و قابلیت تست شدن را نیز داشتهباشد. تا کنـون مـدلهـای زیادی برای تخمین قابلیت اطمینان نرمافزار ارائهشدهاست.
بر اساس یک سری خصوصیات مشترک، این مدلها را مـی-توان به چهار دستهی اصلی دستهبندی کرد که عبارتند از: مدل-های مبتنی بر زمان بین شکستها34، مدلهـای شـمارش تعـداد شکستها 35، مدلها کاشت اشکال36 و مدلهای مبتنی بر دامنهی ورودی.37 این مدلها نسبت به مدلهای پیشبینی، پـر اسـتنادتر هستند و در اکثر مقالات در مورد آنها صحبت شدهاسـت 2]، 3، 5، .[7 در ادامه در مورد هریک از این مدلها توضیح مختصری به همراه نام معروفترین آنهـا آوردهخواهـد شـد. بـرای مطالعـهی بیشتر در مورد مدلهای نامبرده شده میتوانید به منابع2]، 3، 5، [7مراجعه نمایید.
مدلهای مبتنی بر زمان بین شکستها، با تخمین زمان بین شکستها، قابلیت اطمینان سیستم را اندازهگیـری مـیکننـد. از معروفترین مدلهای موجود در این دسته میتوان به مـدلهـای جلینیسکی- موراندا، مدل شیک- ولورتون، مدل اشکالزداییغیـر ایدهآل جی-او و مدل بیزین لیتلوود - ورال اشاره کـرد. در مـدل-هــای شــمارش تعــداد شکســتهــا، معیــار انــدازهگیــری قابلیــت
اطمینان، تعداد اشکالات اتفـاق افتـاده در یـک بـازهی مشـخص زمانی است. مدل نمایی شومن، مدل فرآینـد پواسـن نامتجـانس جیول- اکیوموتو، مدل زمان اجرای موسـا و مـدل زمـان اجـرای پواسن لگاریتمی موسا، از معروفترین مدلهـای موجـود در ایـن دسته هستند.در مدلهای کاشت اشکال نیز اندزهگیـری قابلیـت اطمینان نرمافزار به این صورت خواهد بود که بعد از عمل تسـت، با دانستن سهم اشکالات تزریقی، تعداد کل خطاهای ذاتـی قابـل تخمین خواهد بود. معروفترین مدل موجود در این دسته، مـدل کاشت اشکال میل38است. در مورد مدلهای مبتنـی بـر دامنـهی ورودی نیز در بخش (3 - 6 - 2) توضیح لازم آورده شدهاست.
-6-2 دستهبندی بر اساس فاز چرخهی توسعهی نرم-افزار
در منبع [12]، یک دستهبندی بر مبنـای فازهـای چرخـهی توسعهی نرمافزار برای مدلهای اندازهگیری قابلیت اطمینان نرم-افزار آورده شدهاست. اهمیت این دستهبندی به خاطر ایـن اسـت که نویسنده از آن برای معرفی الگـوریتم انتخـاب مـدل اسـتفاده میکند. جزئیات این الگوریتم در بخش 4 بیان خواهد شد. بر این اساس مدلهای قابلیت اطمینان نرمافزار بر مبنای فازی که مـی-توانند در آن به کار گرفته شوند به 6 دسته تقسیم میشوند:
-1-6-2 مدلهای پیشبینی در فازهای اولیه
همانطور که از نامشان نیز مشخص است، این دسته از مدل-ها در فازهای اولیـهی چرخـهی توسـعه نـرمافـزار مثـل فازهـای نیازمندیها، طراحی و پیادهسازی قابل استفاده هستند. در بخش (1-5-2) نیز در مورد ایـن دسـته از مـدلهـا توضـیح داده شـد. معروفترین مدلهای موجود عبارتند از: مدلهای مبتنی بر فـاز، مدل آزمایشگاه رم، مدل لِیغرا39، مدل پیش بینی موسا، مجموعـه دادههای صنعتی، مجموعه دادههای تاریخی .[12]
-2-6-2 مدلهای رشد قابلیت اطمینان نرمافزار
این دسته از مدلها در فـاز تسـت نـرمافـزار قابـل اسـتفاده هستند. در بخشهای قبلی در مورد این دسته از مدلها توضـیح دادهشد. همچنین در بخش (1-7-2) نیز توضیحات بیشـتری در این زمینه ارائه خواهد شد.
-3-6-2 مدلهای مبتنی بر دامنهی ورودی
این دسته از مدلها در فاز اعتبار سنجی قابل استفاده اسـت. در ایــن مــدلهــا، موردهــای تســت بــه صــورت تصــادفی از روی
زذتل خغ1سکطغکطکسغپه
تتزه شAلع ,لاهلاکغهعطکل y,هق ذصستص
ورودیهای حاصل از پروفایل عملیاتی)40در مورد ایـن مفهـوم در بخش 3 توضیح داده خواهد شد) که احتمال اتفاق افتـادن آنهـا بیشتر است، بدست میآیند. سـپس از روی تعـداد شکسـتهـای اتفــاق افتاده،قابلیــت اطمینــان را تخمــین مــیزننــد. مفروضــات مشترک بین این مـدلهـا عبارتسـت از: توزیـع پروفایـل ورودی شناخته شدهاست، موردهای تست بصورت تصادفی انتخاب مـی-شوند و دامنهی ورودی میتواند به کلاسهای هم ارزی تقسـیم - شود. معروفترین مدلهای موجود در این دسته عبارتند از: مدل نلسون، مدل تی سوکالاس،مدل41 وِیس و وِیوکر.42
-4-6-2 مدلهای مبتنی بر معماری
این دسته از مدلها در فازهای طراحی، پیادهسـازی و تسـت قابل استفاده هستند. در بخش (5-7-2) در مـورد ایـن مـدلهـا توضیحاتی آورده شدهاست.
-5-6-2 مدلهای جعبه سیاه ترکیبی
این دسته از مدلها ویژگیهای مدلهای مبتنی بر دامنـهی ورودی را با ویژگیهای مدلهای رشد قابلیـت اطمینـان ترکیـب میکننـد. ایـن مـدلهـا در فازهـای تسـت و اعتبارسـنجی قابـل استفاده هستند. معروفترین مدل موجود در این دسـته ، مـدل-های رشد قابلیت اطمینان مبتنی بر دامنهی ورودی میباشد.
-6-6-2 مدلهای جعبه سفید ترکیبی
این دسته از مدلها ترکیبی از ویژگیهای مـدلهـای جعبـه سیاه و جعبه سفید را در نظر میگیرند. همچنین برای پیش بینی قابلیت اطمینان نرمافزار، ویژگیهای معماری نـرمافـزار را نیـز در نظر میگیرند. این دسته از مدلهـا در فـاز تسـت قابـل اسـتفاده هستند. معروفترین مدل موجود در این دسته عبارتست از: مدل مبتنی بر زمان/ساختار برای تخمین قابلیت اطمینان.
-7-2 دستهبندی ارائه شده در منبع [4]
منبع [4]یکی از جدیدترین مطالعات انجام شـده بـر اسـاس
یک چارچوب قاعدهمند در مقولهی مدلسـازی قابلیـت اطمینـان نرمافزار است. در این مقاله اطلاعـات جـالبی در زمینـهی مـدل-سازی قابلیت اطمینان و همچنین مقالات و پژوهشهای موجـود در این زمینه گردآوری شدهاست. این مقاله پس از بررسی مدلها و دستهبندیهای موجود، به معرفی یک دستهبندی جدیـد مـی-پردازد. بر اساس این دستهبندی، مدلهای قابلیت اطمینان بـه 6 دستهی اصلی تقسیم میشوند که در ادامه آنها را به همراه شرح مختصری میآوریم.
-1-7-2 مدلهای رشد قابلیت اطمینان نرمافزار
در بخش (1-2-4-2) توضیح مختصری در مورد این مدلها داده شد. همچنین بر اساس منابع 2]، 3، 4، [6باید ایـن نکتـه را در نظر گرفت که این دسته از مدلها به نرمافزار به صورت کلی و به اصطلاح جعبه سیاه نگاه میکنند و ساختار داخلـی و معمـاری اجزاء نرمافزار را در نظر نمیگیرند. همچنین بر اساس منبـع [2]، نمودار تعداد اشکالات کشف شده بر حسب زمان تست برای ایـن مدلها میتواند مقعری شـکل43 و یـا شـکل حـرف 44Sباشـد.در جدول (1) انواع این مدلها بر اساس این رفتار آورده شـدهاسـت که وجه مشترک آنها مجانبی بـودن رفتـار نمـودار و در نتیجـه محدود و متناهی بودن تعداد خطاهاست (زیرا در این نوع مدلها با گذر زمان تعداد خطاهای باقیمانده کاهش مییابد).
بر اساس آمارهایی که در مورد کارهای موجود در مدلسـازی قابلیت اطمینان نرمافزار در منبع [ 4] گردآوری شدهاسـت، مـدل-های رشد قابلیت اطمینان نرمافزار از سـایر مـدلهـای دیگـر پـر استنادتر هستند و اکثر مقالات این حـوزه را بـه خـود اختصـاص دادهاند. برای مثال از بین مدلهایی که در این دستهبنـدی ارائـه شـده، %47 از مقــالات و کارهـای انجــام شـده بــه ایـن مــدلهــا اختصــاص دارد. لــذا ایــن دســته از مــدلهــا از اهمیــت ویــژهای برخوردار هستند. برای مطالعهی بیشتر در این زمینـه بـه منـابع 3]، [6مراجعه فرمایید.
زذتل خغ1سکطغکطکسغپه
زتزه شAلع ,لاهلاکغهعطکل y,هق ذصستص
جدول :1 انواع مدلهای رشد قابلیت اطمینان نرمافزار
نام مدل نوع (متوسط تعداد شکستها در
مدل فاصلهی زمانی (t
Geol- مقعر
Okumoto ×
G–O S- Sشکل
shaped ×
Hossain مقعر
Dahia
×
Yamada مقعر exponential
×
Yamada- S شکل
Raleigh
×
Weibull مقعر
Kapur et مقعر ×
al.
-2-7-2 روشهای بیزین
در بخش (2 -2) در مـورد برخـی از مـدلهـای ایـن دسـته توضیحاتی دادهشدهاست. بر اساس آمار موجود در منبع [4]، بعد از مدلهای رشد قابلیت اطمینـان، ایـن دسـته از مـدلهـا %6 از کارهــا و پــژوهشهــای موجــود در زمینــهی مدلســازی قابلیــت اطمینان را به خود اختصاص دادهاند. بـرای مطالعـهی بیشـتر در این زمینه منبع [9] مراجعه فرمایید.