بخشی از مقاله

*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***

پيش بيني قابليت اطمينان نرم افزار توسط شبکه هاي بيزين
خلاصه : با توجه به پيشرفت روزافزون و کاربرد نرم افزار در حوزه هاي مختلف ، قابليت اطمينان ١ نرم افزار نقش بسيار مهمي در طول مدت زمان حيات نرم افزار ايفا مي کند. قابليت اطمينان نرم افزار از مشخصه هاي اصلي کيفيت نرم افزار و مهمترين فاکتور مورد انتظار مشتريان محصولات نرم افزاري است . قابليت اطمينان با شکست نرم افزار در زمان اجرا کاهش مييابد و ميزان تحمل پذيري خطا ٢، بلوغ نرم افزار٣ و ميزان قابليت بازيابي نرم افزار از عوامل مهم و تاثير گذار بر روي قابليت اطمينان نرم افزار مي باشند. مدل هاي مختلفي براي تخمين قابليت اطمينان نرم افزار وجود دارد.
در اين مقاله از مدل شبکه هاي بيزين با در نظر گرفتن عوامل تاثير گذار بروي قابليت اطمينان براي پيش بيني استفاده شده است و طي اين بررسي از نظرات متخصصين حوزه قابليت اطمينان براي جمع آوري داده هاي اوليه مورد نياز استفاده شده است . همچنين اين شبکه براي پيش - بيني در نرم افزار Netica پياده سازي شده و ارزيابي احتمال قابليت اطمينان قابل انجام است .

کلمات کليدي : قابليت اطمينان ، قابليت اطمينان نرم افزار، شبکه هاي بيزين ، کيفيت نرم افزار


١- مقدمه
در دنياي امروز با توجه به پيشرفت روز افزون محصولات نرم افزاري، توليدکنندگان نرم افزار و مشتريان اين محصولات به دنبال استفاده از محصولات با کيفيت بالاتر مي باشند. لذا شناسايي و مشخص کردن نيازمنديهاي کيفي نرم افزار از اهميت بالايي برخوردار است .
نيازمندي هاي کيفي نرم افزار با استفاده از مدل هاي کيفيت طبقه بندي مي شوند. مهمترين ابعاد دستيابي به کيفيت بالاي نرم افزار تخمين قابليت اطمينان نرم افزار، قابليت نگهداري ٥ ، کارايي ، قابليت استفاده ٦، قابليت حمل ٧ و قابليت کارکرد مي باشد. با توجه به اينکه قابليت اطمينان نرم افزار از مهم ترين ويژگيهاي کيفيتي محصول نرم - افزاري است ، مدل هاي مختلفي از جمله TANN،PSN ،MARS GRNN و BN براي تخمين قابليت اطمينان نرم افزار وجود دارد[١]، در اين مقاله هدف پيش بيني اين بخش کيفيتي با استفاده از شبکه - هاي بيزين مي باشد. در طي مقاله قابليت اطمينان نرم افزار، عوامل تاثير گذار بر روي آن ، شبکه هاي بيزين ، روش جمع آوري داده ها جهت پيش بيني، پياده سازي شبکه و نتايج حاصل شده توضيح داده مي- شوند.

تعريف قابليت اطمينان نرم افزار بر اساس استاندارد ISO
مجموعه اي از ويژگيها براي تحمل نرم افزار در حفظ سطح کارايي در شرايط مشخص در طي يک دوره زماني مشخص . شرايط و محدودة زماني موردنظر، مواردي هستند که در مستندات نيازمندي ها عنوان شده اند .
قابليت اطمينان به اين ويژگي اشاره دارد که سيستم بتواند بدون خرابي به صورت مداوم اجرا گردد. قابليت اطمينان با استفاده از داده - هاي تکاملي و سابقه اي قابل برآورد و پيش بيني است . در مدل کيفيت ٩١٢٦ ISO قابليت اطمينان بر اساس سه عامل بلوغ (پختگي) نرم افزار، تحمل پذيري خطا و قابليت بازيابي تعريف مي شود.[٣]

١-١ بلوغ نرم افزار
توانايي محصول نرم افزاري جهت اجتناب از شکست را بلوغ نرم افزار گويند به عبارت ديگر مشخصه هايي از نرم افزار که بر بسامد بروز شکست يا خطاي ناشي از عيوب ، دلالت دارند. اين ويژگي يکي از ويژگيهاي اجرائي نرم افزار است که ارزيابي و بهبود آن از طريق قراردادن ، و يا به عبارتي نصب و بهره برداري نرم افزار در محيط نهايي استفاده ، و يا ايجاد محيط مشابه با محيط نهايي امکان پذير است . طبق نظر کارشناسان بسامد مذکور، در مقاطع اوليه از اجراي واقعي زياد بوده اما بتدريج کاهش مي يابد. کاهش بسامد بروز خطا به معناي افزايش پختگي و افزايش آن به معناي کاهش پختگي مي باشد. بنابراين بزرگي و پيچيدگي نرم افزار با افزايش بسامد رابطۀ مستقيم و با پختگي رابطۀ معکوس دارد. رعايت قواعد مهندسي نرم افزار در پياده - سازي مانند پيمانه گرايي و ساخت يافتگي و بطور کلي مواردي که باعث افزايش قابليت نگهداري نرم افزار ميشوند، با پختگي نرم افزار رابطۀ مستقيم دارند. بلوغ فرآيند نرم افزار به اندازه اي است که يک فرآيند خاص ، آشکارانه تعريف ، مديريت ، اندازه گيري، کنترل و تأثيرگذار شده باشد. بلوغ ، به پتانسيلي براي رشد در قابليت ، منجر ميشود و شامل هم دستيابي به فرآيندهاي نرم افزاري سازمان و نيز سازگاري با پروژه هاي جديدي است که در سازمان مطرح مي شود.
مدل 8CMM، براي راهنمايي سازمان هاي نرم افزاري در انتخاب استراتژيهاي توسعه فرآيند، به وسيلۀ تعيين بلوغ فرآيند جاري و تعريف برخي نيازهاي حياتي در کيفيت نرم افزار و توسعه فرآيندهاي آن ، طراحي شده است . CMM چارچوبي براي ساماندهي به اين مراحل توسعه تدريجي در ٥ مرحله بلوغ که منجر به زيرسازي موفقيت آميزي براي توسعه مستمر فرآيند خواهد شد، ارائه نموده است .
- سطوح CMM
- سطح ابتدايي
- در سطح ابتدايي، سازمان نمونه ، محيط پايداري براي توسعه و نگهداشت نرم افزار تهيه نکرده است .
- سطح دو: سطح تکرارپذير
در سطح تکرارپذير، خط مشي مديريت پروژه نرم افزاري و دستورالعمل هاي پياده سازي آن خط مشي ها، داير گرديده اند.
- سطح سه : سطح تعريف شده
درسطح تعريف شده ، فعاليت هاي به نظم کشيده شده در سطح دو منجر به تهيه استاندارد براي فرآيند نرم افزار ميگردد و اين استاندارد براي توسعه و نگهداشت مناسب نرم افزارها در کل سازمان مستند شده است .
- سطح چهار: سطح مديريت شده
در سطح مديريت شده ، سازمان به مجموعه اي از اهداف کمّي، هم براي محصولات نرم افزاري و هم براي فرآيندهاي آن ، دست خواهد يافت .
- سطح پنج : سطح بهينگي
دراين سطح فعاليت هاي لازم در جهت افزايش بهبود سيستم انجام مي گردد. اندازه سطوح CMM بر اساس فاکتور PMAT که ميزان بلوغ سازمان و نرم افزار را نشان مي دهد در جدول (١) نشان داده شده است . [٢]

٢-١تحمل پذيريخطا
مشخصه هايي از نرم افزار که بر توانايي آن در مورد حفظ سطح مشخصي از کارايي در موارد بروز خرابي يا نقايص نرم افزاري دلالت دارند. ويژگي تحمل پذيري خطا، بدليل اهميت فراهم آوردن قابليت اطمينان ، از ويژگيهاي مهم در توليد نرم افزارهاي حساس زماني و بلادرنگ است . همچنين تا حدود زيادي مستقل از اندازه و وابسته به حساسيت هاي موجود در نيازمنديها و جايگاه استفاده از نرم افزار است . حصول ميزان حداقل (مورد قبول ضمني) از اين ويژگي، براي کليۀ نرم افزارها الزامي مي باشد.
٣-١ قابليت بازيابي
توانايي محصول نرم افزاري جهت تجديد مجدد يک سطح مشخص شده از کارايي و بازيابي داده به طور مستقيم در هنگام مواجه شدن با شکست مي باشد.
انواع تهديدات براي تحت تاثير قرار دادن قابليت اطمينان نرم افزار :
شکست ١٠: زماني که يک سرويس ، خروجي مورد نظر را ارائه نمي- دهد ، شکست رخ داده است .
خطا ١١: بخشي از وضعيت سيستم که سيستم را به سمت شکست بعدي سوق ميدهد.
عيب (نقص ، نادرستي ) ١٢: اشتباهي که باعث خطا ميگردد.

کشف خطا(عيب يابي) : وظيفه نظارت بر سيستم را بر عهده دارد و اگر خطايي در نرم افزار رخ دهد آن را شناسايي کرده و نوع و محل آن را به دقت مشخص مي نمايد.
ترميم خطا : فرايند اصلاح نرم افزار است به گونه اي که نرم افزار بايد حالت خود را به حالت امن شناخته شده اي برگرداند تا بتواند به عملياتش ادامه دهد.
اصلاح خط : به معني اصلاح نرم افزار به گونه اي است که گويي هيچ خطايي رخ نداده است .
٢-تعريف شبکه هاي بيزين :
شبکه بيزين يک گراف جهت دار بدون دور مي باشد که V نشان دهنده رئوس گراف است که در واقع همان متغيرهاي تصادفي هستند و E مجموعه يال ها است که نشان دهنده مجموعه اي از استقلال هاي شرطي بر روي متغير هاي تصادفي است [٤] . در شبکه هاي بيزين دو نوع احتمال وجود دارد :
- احتمال اوليه ١٣
نشان دهنده احتمال قبل از وقوع رويداد جديد مي باشد.
- احتمال بعدي ١٤
نشان دهنده احتمال بعد از وقوع رويداد جديد است .
احتمالات ذهني ( نظرات افراد متخصص و خبره ) اغلب به عنوان احتمالات اوليه در نظر گرفته مي شوند. در شبکه هاي بيزين دو مرحله پردازش لازم است .
١. تخمين احتمالات اوليه توسط متخصصين
٢. استفاده از احتمالات اوليه ، داده هاي عملياتي و نتايج تست براي تخمين احتمالات بعدي شبکه بيزين بر پايه تئوري بيز و محاسبه احتمالات شرطي بين متغير هاست . فرض کنيم S مجموعه رويدادها در E و B به يک رويداد موجود اشاره دارد به طوري که و

شبکه بيزين شامل دو مولفه است :
- گراف جهت دار D که وابستگيهاي متغيرهاي مجموعه s را نشان مي دهد.
- مجموعه P که شامل مجموعه احتمال هاي Ai است که CPT ناميده مي شود. در جدول CPT ترکيبات ممکن از وضعيت هاي مختلف والدين وجود دارد.
مجموعه والدين نود فرزندکه با علامت i نشان داده ميشود مجموعه - اي از نودهاست که در گراف داراي يالي به سمت نود فرزند هستند در نتيجه احتمال A به صورت فرمول هاي (١) و (٢) محاسبه ميگردد:

٣-پيش بيني قابليت اطمينان نرم افزار به کمک مدل شبکه هاي بيزين :
مدل شبکه هاي بيزين به علت مشخصه هاي خوب زير براي پيش بيني قابليت اطمينان نرم افزار مناسب مي باشد.
- به راحتي ميتواند شواهد گردآوري شده از منابع مختلف (نظرات متخصصين ، نتايج تست ها، داده هاي عملياتي و ...) را با هم ترکيب کند.
- اين شبکه ها در جايي که نمونه هاي عملي وجود ندارد، کاربرد دارند.
ابتد لازم است نود( متغير)هاي شبکه و سپس ارتباطات نودها براي تشکيل شبکه بيزين تشخيص داده شوند. عدم وجود يال مستقيم بين دو نود به معني استقلال آن دو نود از يکديگر و وجود يال به معني وابستگي آن دو نود به يکديگر است . در اين مقاله متغيرهاي تاثير گذار بر روي قابليت اطمينان نرم افزار به عنوان ورودي در نظر گرفته مي- شوند تا ميزان قابليت اطمينان نرم افزار مورد پيش بيني قرار گيرد. سه متغير "تحمل پذيري خطا"، "قابليت بازيابي " و "بلوغ نرم افزار" به طور مستقيم بر روي قابليت اطمينان نرم افزار تاثير مي گذارند.
متغيرهاي کشف خطا، اصلاح خطا و ترميم خطا نيز بر روي فاکتور تحمل پذيري خطا موثر هستند(شکل ١). به عنوان مثال در مدل بيزين اگر ميزان تحمل پذيري خطا افزايش يابد قابليت اطمينان نرم افزار نيز افزايش خواهد يافت .

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید