27
رم ن ان ن ی م ط ا ت ی ل ب ا ری ق گی ه داز ی اب ها زوش از ز ف ا ی م ک ح ل ا اب ب ن سی ح ر می ده: ا ن ه ه د ازان[email protected] از ز ف رم ا ن ان ن می ط ا ت ی ل ب ا ری ق گی ه داز ی اب ها زوش1 / 24

Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

Embed Size (px)

Citation preview

Page 1: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

روش های اندازه گیری قابلیت اطمینان نرم افزار

ارانه دهنده: امیرحسین باب الحکمی[email protected]

1/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 2: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

فهرستمقدمهمفاهیم پایه

مدل های قابلیت اطمینانStaticمدل •Dynamicمدل •

معماری قابلیت اطمینانبر پایه حالت•بر پایه مسیر•بر پایه افزونگی•

مقایسه معماری قابلیت اطمیناناجزای اصلی مدل های قابلیت اطمینان

روش های اندازه گیری قابلیت اطمینان مدلTBF مدلMarkov مدلJ-M مدلNHPP 2/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 3: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

مقدمه

قابلیت اطمینانروش های تجربیروش های تحلیلیمحاسبه قابلیت اطمینان در چرخه تولید

3/24 روش های اندازهگیری قابلیت اطمینان نرم افزار

Page 4: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

مدل های قابلیت اطمینان

مدلStatic تخمین تعداد اشکاالت با کمکAttributeهای برنامه

Yبرابر نرخ خرابی است a,b,…z برابر Attributeهای برنامه است

4/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 5: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

مدل های قابلیت اطمینان

مدلDynamicبر پایه توزیع آماریمناسب پروژه های بزرگتمرکز روی داده های آزمایشی

یک منطق مناسب برای نرخ ورود اشکال

5/24 روش های اندازهگیری قابلیت اطمینان نرم افزار

Page 6: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

معماری قابلیت اطمینان

بر پایه حالتاستفاده از گراف کنترلفرم نمایش براساس نمایش نیازمندی هاست کالس مهم می باشد2دارای مدل مرکب•مدل سلسله مراتبی•

6/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 7: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

معماری قابلیت اطمینان

بر پایه مسیردر نظر گرفتن مسیرهای برنامه انتخاب مسیر ها با کمکTestقابلیت اطمینان یک مسیر از گرافقابلیت اطمینان کل برنامه

7/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 8: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

مقایسه معماری قابلیت اطمینان

تفاوت بین معماری نرم افزار بر پایه حالت و بر پایه مسیر در زمان تولید حلقهLoop در گراف برپایه حالت

تعداد نامحدود مسیر به صورت تحلیلیبر پایه مسیر

مسیرهای در زمانTestمسیرهای در زمان اجزا

8/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 9: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

اجزای اصلی مدل های قابلیت اطمینان

عمومی در مدل های قابلیت اطمینان Componentدو (( زمان اجراExecution Time

reliability growth modelsconstant reliability models

( زمان تقویمCalendar Time)

9/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 10: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

TBF)مدل زمان بین خرابی)

زمان بین خرابیزمان بین خرابی و به صورت یک متغیر تصادفیبه تعداد اشکال های باقی مانده در برنامه بستگی دارد

10/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 11: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

Markovمدل

جزء مدل های Dynamicمی باشدمدل کردن نرم افزار با گرافهر راس نشان دهنده یک ماژول می باشدبرای هر راس یک مقدار به عنوان قابلیت اطمینان ماژولیال ها نشان دهنده ارتباط بین ماژول ها می باشدیال بین دو راس احتمال انتقال از به را نشان می دهدقابلیت اطمینان هر ماژول به صورت منحصر به فرد است

11/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 12: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

Markovمدل

ساخت گرافراس برای حالت خرابیراس برای حالت صحیح

12/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 13: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

Markovمدل محاسبه قابلیت اطمینان با مدل مارکوف

ساخت ماتریس می اگر بین دو راس ارتباطی وجود نداشته باشد مقدار

گیرد می گیرددر غیر این صورت مقدار

13/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 14: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

Markovمدل

معایببرای برنامه ها تعداد حاالت زیاد می شود

مزایامدل سازی سادهامکان مدیریت افزونگی رویدادهای مرحله به مرحله: محاسبه نتیجه دنباله ای از

زیررویدادها

14/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 15: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

Markovمدل

اگر باشد اگر باشد

15/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 16: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

)Jelinski – Moranda (J-Mمدل

جزء اولین مدل های قابلیت اطمینان نرم افزار استبرای هر اشکال در برنامه نرخ در نظر می گیرد جزء مدل هایStaticمی باشد هدف پیش بینی خرابی بعدی است

16/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 17: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

)Jelinski – Moranda (J-Mمدل مفروضات

نرخ کشف خطا متناسب با تعداد اشکاالت موجود استنرخ کشف خطا در بازه های زمانی بین رخداد خطا ثابت استیک اشکال قبل از وقوع رخداد اشکال بعدی حذف می شود نحوه کار نرم افزار به نحوی است که برای پیش بینی قابلیت

اطمینان در نظر گرفته شده استاشکال ها در هر رده دارای شانس یکسانی می باشندخرابی پس از کشف خطا یکسان است

17/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 18: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

)Jelinski – Moranda (J-Mمدل

زمان بین وقوع خطا ها تابع چگالی تجمعی تابع مقدار میانهμ(t( = N(1− exp(− φt(( تابع چگالی خرابیλ(t( = Nφ(exp− (φt((

18/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 19: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

NHPPمدل عملکرد موفق در اندازه گیری قابلیت اطمینان سخت

افزارجزء مدل افزونه است جزء مدل هایDynamicمی باشد بسیار مشابه مدل پواسن همگن دارد مناسبCalendar Time نسبت به Execution Time

19/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 20: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

NHPPمدل فرضیات

رخداد خرابی نرم افزار بر اثر وجود خطاهای باقیمانده در سیستماست

تعداد خطاهای کشف شده در یک زمان مشخص متناسب با تعدادخطاهای موجود در نرم افزار است

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

قطع�یت حذف شود کشف/ حذف اشکال توسطNHPPمدل می شود

20/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 21: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

NHPPمدل

تعداد خرابی های مورد نظر تا یک زمان مشخص به دلیلوجود تابع مقدار میانه ساده است

تخمین دیگر پارامتر ها( تخمین شباهت حداکثرMLE(( تخمین مربع حداقلLSE(

2421/ روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 22: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

NHPPمدل فواید

شدت خرابی فرآیند برابر جمع شدت خرابی فرآیند پیش رو استNHPPبا جمع بستن توابع مقدار میانه متناظر بدست می آید

اگر مقدارm(t( یک تابع خطی از زمان باشد این پردازش استHPPبرابر

اگر تابع خطی نباشد مشابه مدلNHPPاست

22/24 روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 23: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

معماری قابلیت اطمینان

برپایه افزونگییک مدل عمومی برای تمام مدل های قابلیت اطمینان نرم افزار مدل کردنComponent ها با کمک NHPP تعداد خرابی ها و تابع شدت خرابی به صورت توابع مشابه برای

استComponentهر

2423/ روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 24: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

نتیجه گیریمعرفی مدل های قابلیت اطمنان نرم افزارمعماری های قابلیت اطمینان نرم افزار معرفی کالس های مهم در مدل های قابلیت اطمینان نرم

افزارمعرفی روش های اندازه گیری قابلیت اطمینان نرم افزار

مدلTBF مدلMarkov مدلJ-M مدلNHPP

2424/ روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 25: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

منابع[1] Everett, W.W., "Software reliability measurement," in Selected Areas in Communications, IEEE Journal on , vol.8, no.2, pp.247-252, Feb 1990[2] Cheung, R.C., "A User-Oriented Software Reliability Model," in Software Engineering, IEEE Transactions on , vol.SE-6, no.2, pp.118-125, March 1980[3] Ahuja, Sona, Guru Saran Mishra, and Agam Prasad Tyagi. "Jelinski–Moranda Model for Software Reliability Prediction and its GA based Optimised Simulation Trajectory." IEEE Transactions on Evolutionary Computation 47.1 (2002(: 79-87.[4] Palviainen, Marko, Antti Evesti, and Eila Ovaska. "The reliability estimation, prediction and measuring of component-based software." Journal of Systems and Software 84.6 (2011(: 1054-1070.[5] Cai, Kai-Yuan, Chuan-Yuan Wen, and Ming-Lian Zhang. "A critical review on software reliability modeling." Reliability Engineering & System Safety 32.3 (1991(: 357-371.

روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 26: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

منابع[6] Lai, Richard, and Mohit Garg. "A detailed study of NHPP software reliability models." Journal of Software 7.6 (2012(: 1296-1306.[7] Xie, M., & Wohlin, C. (1995, October(. An additive reliability model for the analysis of modular software failure data. In Software Reliability Engineering, 1995. Proceedings., Sixth International Symposium on (pp. 188-194(. IEEE.[8] Yamada, Shigeru. Software reliability modeling: fundamentals and applications. Springer, 2014.[9] Goseva-Popstojanova, K.; Mathur, A.P.; Trivedi, K.S., "Comparison of architecture-based software reliability models," in Software Reliability Engineering, 2001. ISSRE 2001. Proceedings. 12th International Symposium on , vol., no., pp.22-31, 27-30 Nov. 2001[10] Shooman, M. L. (2003(. Reliability of computer systems and networks: fault tolerance, analysis, and design. John Wiley & Sons.

روش های اندازه گیری قابلیت اطمینان نرم افزار

Page 27: Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)

با تشکر

Question? روش های اندازه گیری قابلیت اطمینان نرم افزار