بخشی از مقاله
*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***
پیش بینی قابلیت اعتماد نرم افزار با مجموع شبکه های عصبی ارزیابی شده
چکیده
قابلیت اعتماد نرم افزار یک عامل مهم برای مشخص کردن کمی کیفیت نرم افزار به شمار میرود و دوره تست نرم افزار را تخمین میزند. مدل های توسعه یافته پارامتری سنتی قابلیت اعتماد نرم افزار " (SRGMS) از قبیل مدلهای غیره همگن فرایند پو آسن (NHPP) به طور موفقیت آمیزی در مهندسی قابلیت اعتماد نرم افزار عملی استفاده شده است. به هر حال، هیج چنین مدل پارامتریای نمی تواند در همه موارد پیش بینی درستی را انجام دهد به علاوه ی مدلهای پارامتری، مدلهای غیر پارامتری هم مانند شبکههای عصبی نشان دادهاند که میتوانند تکنیکهای موثری برای پیش بینی قابلیت اطمینان نرم افزار به شمار روند. در این مقاله ما روشی را بررسی میکنیم که در آن یک سیستم غیره پارامتری ارائه میشود که پیش بینی بهتری را از قابلیت اطمینان نرم افزار براساس مجموع شبکه عصبی و مدلهای NHIPP، ارائه می کند. سپس با استفاده از شبیه ساز شبکه عصبی که Trajan|NNS نام دارد ارزیابیهایی را بر روی مؤلفههای شبکه عصبی سیستم انجام می دهیم. نتایج آزمایشات نشان میدهد قابلیت پیش بینی سیستم با ترکیب کردن چندین شبکه عصبی ارزیابی شده، بهبود مییابد.
کلمات کلیدی :قابلیت اعتماد؛ مجموع شبکههای عصبی ارزیابی شده؛ شبکههای عصبی؛ مدل توسعه قابلیت اعتماد نرم افزار؛ مدل فرایند پوآسن غیرهمگن، شبیهساز شبکه عصبی
۱- مقدمه قابلیت اعتماد نرم افزار چنانچه ANSI تعریف می کند، احتمالی عملکرد نرم افزار به طور آزاد از خرابی " برای یک دوره ی خاصی از زمان در یک محیط خاص تعریف می شود [1.2]. آن می تواند یک عامل مهم برای مشخص کردن کمی نرم افزار و تخمین دوره تست نرم افزار به شمار رود. تولیدات نرم افزاری امروزی به طور وسیعی از لحاظ اندازه و پیچیدگی در حال رشد هستند، و پیش بینی قابلیت اعتماد نرم افزار نقشی خطیری را در فرایند تولید نرم افزار بازی می کند. مدل های رشد قابلیت اعتماد نرم افزار (SRGMS) در مجلات پیشنهاد شدهاند که برای تخمین ارتباط بین قابلیت اعتماد نرم افزار و سایر عاملها است.
آنها اساساً به دو دسته اصلی زیر دسته بندی می شوند: مدل های پارامتری و غیر پارامتری : مدل های پارامتری، پارامترهای مدل را براساس فرضیاتی درباره طبیعت خرابی های نرم افزار، تشخیص رفتار فرایند خرابی نرم افزار، و محیطهای توسعه تخمین میزند. عمومی ترین مدلهای پارامتری مدل های فرایند پواسن غیره همگن است، که بطور موفقیت آمیزی در مهندسی قابلیت اعتماد نرم افزار به طور عملی استفاده شده است || 4 ,3 . به هر حال، چنین مدل تکیای نمی تواند در همه موارد پیش بینی درستی را بکند [5]. به عبارت دیگر، مدلهای غیره پارامتری شبیه شبکه های عصبی و ماشین بردار پشتیبان (SVM) خیلی قابل انعطاف پذیرتر هستند که می توانند معیارهای قابلیت اعتماد را فقط بر اساسی تاریخ خرابی بدون در نظر گرفتن فرضیات مدل های پارامتری، پیش بینی کنند. همچنین روشی های غیره پارامتری می توانند مدل هایی را تولید کنند که پیش بینی کیفیت آنها بهتر از مدلهای پارامتری باشد 6.7.8]. در 24] از مجموع شبکههای عصبی برای ساختن مدلهای غیره پارامتری برای پیش بینی قابلیت اعتماد نرم افزار استفاده شده است. به نظر میرسد که مجموع چند پیش بینی کننده می تواند به طور متوسط به کارایی بهتری در مقایسه با یک پیش بینی کننده برسد [9.10]. در || 24 | نشان داده شده است که یک سیستم متشکل از مجموع شبکههای عصبی توانایی پیش بینی بهتری از قابلیت نرم افزار نسبت به سیستمی که براساس شبکه عصبی تکی است، ارائه می کند. در این کار ما ارزیابی هایی را روی معماری شبکههای عصبی پیاده سازی شده در مؤلفه های سیستم پیشنهادی | 24] انجام دادهایم و سپس شبکه عصبی با بهترین معماری از لحاظ کارایی پیش بینی انتخاب می کنیم و در مؤلفه های پیش بینی کننده قرار میدهیم. بقیه مقاله به اینصورت سازماندهی می شود که در بخش ۲ ما به طور خلاصه به برخی از کارهای مرتبط انجام گرفته شده در زمینهی پیش بینی قابلیت اعتماد نرم افزار می پردازیم. در بخش ۳ روش پیشنهاد شده برای پیش بینی قابلیت اعتماد نرم افزار با مجموع شبکههای عصبی ارائه می شود. در بخشی ۴ نتایج ازمایشات انجام شده مطرح می شود و نتیجه گیری هم در بخش ۵آورده خواهد شد.
۲- کارهای مرتبط
در [6.7]، ابتدا از شبکههای عصبی ای مانند شبکههای عصبی - Teed for Ward و شبکههای عصبی بازگشتی " که شامل شبکههای عصبی Elman و Jordan می شدند برای پیش بینی قابلیت اعتماد نرم افزار استفاده کردند. که اینها از انباشتگی تعداد خرابیهای کشف شده از زمان اجرای نرم افزار تا به حال را، به عنوان ورودی استفاده می کردند. انها تأثیرات روش های مختلف یادگیری و روش های ارائه ی داده را نیز در مطالعه شان مورد بررسی قرار دادند. نتایجشان نشان میدهد که شبکههای عصبی می توانند مدل هایی را با پیچیدگی مختلف بسازند که برای مجموع دادهها دارای سازگار پذیری می باشد. در [ا ا]، دو روش پیش بینی قابلیت اعتماد نرم افزاری وجود دارد. شبکههای عصبی و همکاری مجدد برای مدلهای پارامتری، که با استفاده از اندازه گیری پیش بینانه ی معمولی و مجموع دادههای معمولی مقایسه شده بودند. مطالعه نشان میدهد که شبکه های عصبی سادهتر هستند و در مواردی برابر یا بهتر از پیش بینی کنندههای خاص عمل می کنند. در 12]. شبکه عصبی BP را برای پیش بینی قابلیت اعتماد نرم افزار آزمایش کردند. آنها چندین دفعه از زمانهای بین خرابی اخیر به عنوان ورودی استفاده کردند تا زمان خرابی بعدی را پیش بینی کنند. کارایی معماریهای شبکه عصبی با تعداد مختلفی از گرههای ورودی و گره های پنهانی ارزیابی می شود. آنها نتیجه گرفتند که مؤثر بودن رویکرد شبکه عصبی به طبیعت مجموع دادهها اجرا شده روی آن وابستگی خیلی زیادی دارد. در 13] یک شبکه عصبی بازگشتی Elman برای مدل و پیش بینی خرابی نرم افزار پیشنهاد کردند. آنها تأثیرات باز خوردساز مختلف را در مدل پیشنهادی مطالعه کردند. آنها بین شبکههای عصبی - feed for Ward و مدل بازگشتی Jordan و برخی مدلهای پارامتری دیگر مطالعه مقایسه ای انجام دادند. در 15 و 14] یک روش مدل سازی ارزیابی شبکه عصبی برای پیش بینی قابلیت اعتماد نرم افزار پیشنهاد کردند که این بر اساس معماری a multiple-delayed-input single output بود .الگوریتم ژنتیک به طور On-line برای بهینه کردن تعداد گرههای ورودی و گره های پنهان معماری شبکه عصبی استفاده می شد و وقتی که یک بار داده ورودی خرابی وارد می شد به طور پویا پیکر بندی مجدد روی معماری شبکه عصبی انجام می شد. در 8] از یک مدل ترکیب وزنی دینامیکی DWCM" برای پیش بینی قابلیت اعتماد نرم افزار براساسی رویکرد شبکه عصبی استفاده کردند. توابع فعالیت مختلفی از قبیل SRGMS سنتی طراحی شده بود که در لایه پنهان استفاده می شد. آزمایش آنها نتیجه داد که اگر داده خرابی در مجموع دادههای واقعی وجود داشته باشد، روش DWCM پیش بینی - های بهتری را نسبت به SRGMS سنتی ارائه میدهد.
همه کارهای انجام شده که ذکر شد فقط از شبکه عصبی تکی برای پیش بینی قابلیت اعتماد نرم افزار استفاده می کنند. به هر حال کارایی یک سیستم مبتنی بر شبکه عصبی تکی می تواند با ترکیب کردن چندین شبکه عصبی بطور پراهمیتی بهتر شود || l7 ,10 . مجموع شبکههای عصبی به طور موفقیت آمیزی در کاربردهایی مانند تشخیص پزشکی 18] ، تصمیم گیری نهایی [19]، تشخیص بار الکتریکی [20]، دسته بندی تصاویر [21] و غیره استفاده می شود. و این اولین بار است که از مجموع شبکههای عصبی ارزیابی شده برای پیش بینی قابلیت اعتماد نرم افزار استفاده می شود.
۳- رویکردها
در این بخش ما سیستم پیشنهادی در ا23] را برای پیش بینی قابلیت نرم افزار بر اساسی مجموع شبکههای عصبی مورد بررسی قرار میدهیم.
۱-۳ - داده قابلیت اعتماد نرم افزار نرم افزار ممکن است در طول فرایند اجرایش خراب شود. فرایند خراب شدن نرم افزار در شکل (۱) نشان داده می شود .ti زمان iامین خرابی نرم افزار و فاصله زمانی بین iامین و (1-i) امین خرابی نرم افزار را نشان میدهد.
داده ی قابلیت اعتماد نرم افزار به طور نرمال به صورت زوج مرتب {ti Ni} نشان داده میشود که Ni تراکم تعداد خرابیها در زمان ti اجرای نرم افزار است. شکل (۲) یک مثال از داده قابلیت اعتماد نرم افزار را نشان میدهد. دستاورد پیش بینی قابلیت اعتماد نرم افزار بدرستی تعداد خرابیها را در زمان اجرای آینده بر اساس تاریخ خرابی نرم افزار تخمین میزند.
۳- ۲- معماری سیستم معماری سیستم پیش بینی کننده ی ارائه شده در 23] بر اساس مجموع شبکههای عصبی PNNE" میباشد که در شکل(۳) نشان داده میشود. ورودی سیستم زمان اجرای نرم افزار در زمان ti و خروجی سیستم تعداد پیش بینی شده ی خرابیها است. مجموع شبکههای عصبی شامل K مؤلفه شبکه عصبی است که هر مؤلفه ی شبکه عصبی سه لایه دارد یک ورودی، یک خروجی شبکه عصبی feed for Ward با گره در لایه پنهان است. هر مؤلفه شبکه عصبی با مقادیر مختلف اولیه وزنها با سه لایه، یاد می گیرند. خروجی مؤلفههای شبکه عصبی با هم دیگر ترکیب می شوند و توسط ماجول ترکیب با هم ترکیب شده و خروجی نهایی سیستم تولید می شود. هدف ما در این کار ارزیابی این مؤلفه ها می باشد که با این کار ما در این مؤلفهها، شبکه های عصبی ای با بهترین کارایی از لحاظ پیش بینی قرار میدهیم. در [23] از سه ترکیب مختلف از قوانین برای ماجول ترکیب بررسی می کند:
(۱) Mean rule: خروجی سیستم متوسط خروجی همه مؤلفههای شبکههای عصبی است، که به صورت زیر تعریف می شود:
که در آن خروجی kامین مؤلفه ی شبکه عصبی است و
(PNNE) مجموع شبکههای عصبی شامل K مؤلفه ی شبکه عصبی است که هر مؤلفه ی شبکه عصبی سه لایه دارد یک ورودی، یک خروجی FFNN با گره در لایه پنهان.
Median Rule-2: خروجی سیستم میانه خروجی همهی مؤلفه های شبکه عصبی است مثلا
3- Weighted mean rule : خروجی سیستم متوسط وزن خروجی همه مؤلفههای شبکه عصبی است که به صورت زیر تعریف می شود:
که Wk وزن انتساب داده شده به k امین مؤلفه ی شبکه عصبی است و
وزن هرمؤلفه شبکه عصبی براساسی دادههای آموزشی به طور مناسب مقدار دهی می شود تا متوسط خطا نسبی پیش بینی را مرتفع کند.
۳-۳- مؤلفه شبکه عصبی
شبکه عصبی استفاده شده در مؤلفه های سیستم 23] دارای سه لایه هستند: یک ورودی "، یک خروجی
شبکه عصبی feed forWard با گره پنهان و تمام مؤلفهها معماری یکسانی را دارند. تنها تفاوتی که روش ما با روش ارائه شده در ا23] دارد متفاوت بودن مؤلفه ها در تعداد لایههای پنهان و معماری شبکه عصبی می باشد.
یک گره در شبکه عصبی feed TOTWard به عنوان یک نرون مصنوعی مدلسازی می شود. چنانچه در شکل (۴) دیده می شود، مجموع وزن های ورودی در حضور بایاسی محاسبه می شود، و این مجموع به تابع فعالیت ارسال می شود فرایند کلی در شکل (۴) دیده می شود و در زیر تعریف می شود :
ترکیب خطی از ورودی های بایاس است ، Wij وزن ارتباط بین ورودی Xi و نرون j میباشد، تابع فعالیت نرون j ام و خروجی Yi خواهد بود.
شکل(۴): یک گره مدلسازی در FF"NN به صورت یک نرون
|24] معمول ترین تابع سیگموئید استفاده شده را که به عنوان تابع فعالیت در معادله ۴ تعریف شده است، انتخاب می کند.
ابتدا معماری شبکه عصبی feed ForWard تعریف می شود، سپس وزن های شبکه از طریق یک الگوریتم یادگیری بر اساسی دادههای آموزشی بهنگام می شوند. در 23] از الگوریتم Mirquardt (LM) Levenberg که مخلوطی از الگوریتم های - Gaussian-Newton gradient deSCend
برای رسیدن به یک همگرایی سریع است [22]استفاده شده است.
۴-۳- روش انجام کار
ما قرار است در این مؤلفهها که شبکه های عصبی قرار دارند ارزیابی هایی را با استفاده از شبیه ساز شبکه عصبی که [24]TrajanNNS نام دارد، انجام دهیم. برای این کار با بار کردن مجموعه دادههای آموزشی DS1 [2] Ds2 مسئله به شبیه ساز شبکه عصبی ابتدا به تعداد معین و محدود و متناسب با کاربرد، شبکههای عصبی ای با معماری های مختلف با یکدیگر ایجاد می کند و سپس با استفاده از الگوریتمهای یادگیری مختلف متناسب با دادههای آموزشی، مجموعه دادهها شبکه را آموزشی می دهد. تعداد این شبکهها را نیز می توان مشخص کرد یعنی اینکه ما می توانیم مشخص کنیم چه مدت زمانی باید صرف شود تا شبکه عصبی موثری برای این مسئله طراحی شود.