بخشی از مقاله

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


ارائه یک مدل پیش بینی قابلیت اطمینان نرم افزار با استفاده از شبکه های عصبی مصنوعی


چکیده

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

کلمات کلیدی

قابلیت اطمینان نرم افزار ، پیش بینی ، شبکه های عصبی مصنوعی ، الگوریتم ژنتیک ، الگوریتم ازدحام ذرات.

-1 مقدمه

قابلیت اطمینان نـرم افـزار عـاملی مهـم بـرای توصـیف کمیـت در مبحـث کیفیـت نـرم افـزار بـوده کـه بـا شکسـت در زمـان اجـرایش کاهش می یابـد در واقـع یکـی از مهـم تـرین فاکتورهـا جهـت رضـایت مشـتریان از محصـول نـرم افـزاری وجـود قابلیـت اطمینـان مناسـب در نرم افزار میباشد. بـرآورد قابلیـت اطمینـان نـرم افـزار در طـول دوره تسـت نـرم افـزار بـا اسـتفاده از داده هـای سـابقه ای و داده هـای تکـاملی صورت می پذیرد ، در کنار مـدل هـای فراوانـی کـه جهـت پـیش بینـی قابلیـت اطمینـان نـرم افـزار وجـود دارنـد ماننـد مـدل هـای پـارامتری قابلیت اطمینان نرم افزار ، مدل های غیر پـارامتری هـم بـا موفقیـت در پـیش بینـی قابلیـت اطمینـان نـرم افزارهـا بـه کـار بـرده شـده و نتـایج خــوب و مناســبی داشــته انــد. مــدل هــای پــارامتری ، پارامترهــای مــدل را بــر اســاس مفروضــاتی در مــورد ماهیــت شکســت نــرم افــزار، رفتــار تصادفی از روند فرآیند خرابی نرم افزار ها و محیط های توسعه برآورد می کنند. [1]

محبوب تـرین مـدل هـا ، مـدل هـای پـارامتری فرآینـد پواسـون غیـرهمگن (NHPP)1 هسـتند ، کـه بـا موفقیـت بـه صـورت عملـی در مهندســی قابلیــت اطمینــان نــرم افــزار اســتفاده شــده اســت. [2],[3]بــا ایــن حــال، نشــان داده شــده اســت کــه هــیچ مــدل پــارامتری بــه تنهایی نمی تواند پـیش بینـی دقیـق بـرای همـه مـوارد را بـه دسـت آورد. .[4] از سـوی دیگـر، مـدل هـای غیـر پـارامتری ماننـد شـبکه هـای
عصــبی و ماشــین بــردار پشــتیبانی(SVM)2 انعطــاف پــذیر تــر هســتند ، و مــی توانــد معیارهــای قابلیــت اطمینــان را تنهــا بــر اســاس تــاریخ شکسـت و بـدون در نظـر گـرفتن مفروضـات مـدل هـای پـارامتری پـیش بینـی کننـد. همچنـین روش هـای غیـر پـارامتری مـی تواننـد مـدل هایی با کیفیت پیش بینی بهتر از مدل های پارامتری را تولید کند..[5],[6],[7]

در این پژوهش ، از شبکه های عصبی مصـنوعی بـرای سـاخت مـدل هـای غیـر پـارامتری پـیش بینـی قابلیـت اطمینـان نـرم افـزار بـا استفاده از الگـوریتم هـای بهینـه سـازی تکـاملی در جهـت آمـوزش شـبکه عصـبی بهـره بـرده شـده اسـت. نشـان داده مـی شـود کـه ترکیـب شبکه عصبی با الگوریتم های بهینه سازی نتایج دقیق و مناسبی در پیش بینی قابلیت اطمینان نرم افزار ارائه می نماید.

بقیه این مقاله بـه شـرح زیـر سـازمان یافتـه اسـت : در بخـش 2، خلاصـه ای از کارهـای انجـام پذیرفتـه در زمینـه قابلیـت اطمینـان نـرم افزار را خـواهیم داشـت. در بخـش 3 رویکردهـای تحقیـق در زمینـه پـیش بینـی قابلیـت اطمینـان نـرم افـزار بـا الگـوریتم هـای بهینـه سـازی ارائه مـی گـردد. بخـش 4 ارزیـابی عملکـرد شـبکه عصـبی بررسـی مـی گـردد و در بخـش 5 نتیجـه گیـری و کارهـای آینـده معرفـی خواهنـد گردید.

-2 کارهای مرتبط

در [8] ، [9] یک روش مدلسـازی بر پایه شبکه عصبی تکاملی ، برای پیش بینی قابلیت اطمینان نرم افزار بر اساس معماری چندین ورودی با تاخیر با یک خروجی ارائه شده است. که الگوریتم ژنتیک به صورت آنلاین جهت بهینه سازی تعدا گره های ورودی و گره های پنهان در معماری شبکه عصبی استفاده شده است . هنگامی که زمان شکست داده جدیدی می رسید ، پیکربندی دوباره به صورت پویا روی کل معماری شبکه عصبی صورت می پذیرفت.
در [11] از الگــوریتم بهینــه ســازی ازدحــام ذرات بــرای کشــف و بــرآورد پارامترهــای مــدل هــای رشــد قابلیــت اطمینــان نــرم افــزار سنتی3 استفاده نموده و رویکردی در جهـت رفـع مشـکلات انـواع روش هـای مـدل سـازی ماننـد مـدل نمـایی مـدل تـوانی و مـدل منحنـی s شکل بـا تـاخیر را نشـان داده اسـت. در نتـایج و تجزیـه و تحلیـل ارائـه گردیـده مزایـای الگـوریتم ازدحـام ذرات در حـل مشـکلات مـدل هـای عنوان شده به خوبی نشان داده است.

در [11] نشان داده شده است کـه شـبکه هـای عصـبی و سیسـتم هـای فـازی قابلیـت بسـیار مناسـبی جهـت اسـتفاده در مسـائل مربـوط به پیش بینی را دارند ، هر چنـد کـه اسـتفاده از الگـوریتم هـای پـس انتشـار 4 در سـال هـای اخیـر بـرای آمـوزش شـبکه هـای عصـبی بسـیار گسترش یافته است ، امـا اسـتفاده از ایـن روش در برخـی مواقـع موجـب ایجـاد مشـکلاتی از قبیـل ، سـرعت پـایین همگرایـی در طـی مراحـل آموزش و همگرایی زودرس در مینیمم های محلی دارد.

-3 رویکردهای پژوهش

در این بخش ما به ادبیات تحقیق و ارائه اطلاعات مورد نیاز در جهت ورود به موضوع اصلی و پیاده سازی مدل پیشنهادی خواهیم پرداخت.

-1-3 قابلیت اطمینان نرم افزار SR

بــا توجــه بــه تعریــف ISO-9126 قابلیــت اطمینــان نــرم افــزار مجموعــه ای از ویژگــی هــا بــرای تحمــل نــرم افــزار در حفــظ ســطح کــارایی مشــخص و در طــی یــک دوره زمــانی مشــخص شــده میباشــد.[12]،[13] ، نــرم افــزار ممکــن اســت در طــول فرآینــد اجــرایش بــا شکســت مواجه شود.



فرآینــد شکســت نــرم افــزار در شــکل (1) نشــان داده شــده اســت. ti زمــان شکســت i ام نــرم افــزار و ∆ti = ti – ti-1 فاصــله زمــانی بــین شکست iام و شکست i-1 ام میباشد.


شکل(1 )فرآیند شکست داده ها در نرم افزار

داده قابلیت اطمینـان نـرم افـزار بـه طـور معمـول بـه صـورت جفـت زوج }ti , Ni{ نشـان داده مـی شـود. کـه Ni تـراکم تعـداد شکسـت هـای نرم افـزار در زمـان ti میباشـد. شـکل (1) فرآینـد شکسـت نـرم افـزار را نشـان مـی دهـد. هـدف پـیش بینـی قابلیـت اطمینـان نـرم افـزار ایـن است که ، تعداد خرابیها را در زمان اجرای آینده ، بر اساس تاریخ شکست نرم افزار تخمین می زند.[1]

-2-3 الگوریتم ازدحام ذرات PSO 1

الگوریتم بهینـه سـازی ذرات (PSO) یـک الگـوریتم بهینـه سـازی تقلیـدی از رفتارهـای جوامـع جـانوری در پـردازش دانـش جامعـه مـی باشد ، که از حرکت گروهی پرندگان (و دیگـر حیوانـاتی کـه بـه شـکل گروهـی زنـدگی مـی کننـد) الگـو گرفتـه شـده اسـت و دارای دو زمینـه ، زنــدگی مصــنوعی و محاســبات تکــاملی مــی باشــد.[14] در ایــن الگــوریتم هــر پاســخ مســاله بــه صــورت یــک ذره کــه دارای یــک مقــدار و همچنین میزان تناسـب اسـت مـدل مـی شـود ، هـر ذره همیشـه بـه دنبـال جابجـایی و جسـتجو بـرای یـک نقطـه بهینـه اسـت ، ذرات همـان جواب های مساله مـی باشـند و در حـال حرکـت در فضـای جسـتجو مـی باشـند ، یکـی از مزیـت هـای ایـن الگـوریتم همگرایـی بسـیار سـریع آن می باشد.

-3-3 الگوریتم ژنتیک GA2
الگــوریتم ژنتیــک از تکنیــک هــای جســتجو در علــوم رایانــه بــرای یــافتن راه حــل تقریبــی مســائل بهینــه ســازی میباشــد.[11] در واقع الگـوریتم ژنتیـک روش یـادگیری بـر پایـه تکامـل بیولوژیـک اسـت ، یـک GA بـرای حـل یـک مسـئله مجموعـه بسـیار بزرگـی از راه حلهای ممکـن را تولیـد میکنـد ؟هـر یـک از ایـن راه حلهـا بـا اسـتفاده از یـک تـابع تناسـب مـورد ارزیـابی قـرار میگیـرد ؟آنگـاه تعـدادی از بهتـرین راه حلهـا باعـث تولیـد راه حلهـای جدیـدی میشـوند ؟کـه اینکـار باعـث تکامـل راه حلهـا میگـردد؟ بـدین ترتیـب فضـای جسـتجو در جهتی تکامل پیدا میکند که به راه حل مطلوب برسد در صورت انتخاب صحیح پارامترها، این روش میتواند بسیار موثر عمل نماید؟

-4-3 معماری سیستم با شبکه عصبی

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

نوع شبکه تعداد ورودی تعداد لایه ها تعداد نورون ها در هر لایه خروجی
MLP-Neural Network یک بردار ورودی دو لایه پنج نورون یک خروجی
جدول (1) پارامترهای شبکه عصبی MLP

جدول (2) مشخصات مجوعه داده شکست نرم افزار سیستم تجاری[11]



: )System code( -1 کد سیستم مورد استفاده میباشد.

: )Application( -2 نــرم افزارهــای واقعــی میباشــند کــه بــه مــدت چنــد روز بــه منظــور ثبــت شکســت توســط John Musa در آزمایشگاه های بل تلفن در سال 1980 مورد بررسی قرار گرفته است.

: )Size( -3 اندازه بر حسب تعداد خط های برنامه ، و یا دستورالعمل های برنامه به زبان مماشین میباشد.
: )No of Failure( - 4 مجموع تعداد شکست ها از زمان شروع و ثبت وقایع تا آخرین روز مربوط به آزمایش میباشد. : )Phases( - 5 فاز آزمایشات میباشد که شامل تست های سیستم ، زیر سیستم و تست عملکردی آن میباشد.

شکل (2) مدل شبکه عصبی MLP1 با پنج نورون در هر لایه

قواعد زیر در پیاده سازی در نظر گرفته شده است :

-1 تعداد تکرار جهت آموزش شبکه عصبی 1000تکرار میباشد.
-2 داده های ورودی و خروجی شبکه در بازه [0,1] نرمال سازی شده اند. -3 ورودی شبکه زمان های تجمعی بین شکست های نرم افزار می باشند.

-4 خروجی شبکه مجموع تعداد شکست های تجمعی نرم افزار تا زمان حال میباشد. -5 تابع انتقال به کار رفته در شبکه عصبی ، تابع لگاریتم سیگموئید میباشد.

تــابع ســیگموئید مقــداری در بــازه دریافــت نمــوده و مقــداری در بــازه [0,1] را در خروجــی تولیــد مــی نمایــد. شــکل کلــی تــابع سیگموئید به صورت (1) می باشد.

5-3- ترکیب الگوریتم PSO و GA در آموزش شبکه عصبی

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

-1 تابعی با چهار ورودی به صورت زیر تعریف می گردد.

(2) (شبکه ، داده های هدف ، وردی ، جمعیت اولیه)CostN

-2 مجموع تعداد پارامترهای شبکه عصبی شامل ، وزن های لایه ها ، وزن های ورودی ، بایاس ها را محاسبه می نماییم.

-3 در ایــن مرحلــه بایــد بتــوانیم از N پــارامتر مجهــولی کــه بــه صــورت بــرداری ذخیــره هســتند ، مــاتریس وزن هــای لایــه هــا (lw) و ماتریس وزن های ورودی (iw) و ماتریس بایاس ها (b)را جدا نموده و از حالت برداری به حالت ماتریس تبدیل نماییم.

-4 حال در یک حلقه تکـرار بـه تعـداد جمعیـت انتخـاب شـده در الگـوریتم ، وزن هـا و بایـاس هـایی کـه بایـد در شـبکه قـرار بگیرنـد را بر اساس بعد دوم ماتریس کـه نشـان دهنـده تعـداد مجهـولات شـبکه اسـت ، بـه تـابعی بـرای انجـام عمـل تبـدیل بردارهـای مقـادیر بـه ماتریس های lw و iw و بایاس ها ارسال می شود.

-5 شبکه شبیه سـازی و ایجـاد مـی گـردد و خطـای حاصـل از میـانگین مربعـات SSE آن بـه عنـوان هزینـه تـابع در سـطر iام مـاتریس قرار می گیرد و تکرار ادامه می یابد.


-6 در مرحلـه بعـدی در کـدهای اصـلی الگـوریتم ژنتیـک و ازدحـام ذرات تــابع کلـی CostN ایجـاد شـده فراخـوانی مـی شـود و بــرای الگوریتم ژنتیک بهترین عنصر جمعیت (کروموزوم) و برای الگوریتم ازدحام ذرات (بهترین موقعیت ذره) بدست خواهد آمد.

-7 در آخــر تــابع آمــوزش شــبکه Train_GA در برنامــه اصــلی بــرای هــر دو روش GA و PSO فراخــوانی شــده و آمــوزش شــروع مــی گردد ، در پایان خروجی های لازم استخراج می گردد.

Network = TrainBY_Optimal(Network,Input,Target); (5)

بدین ترتیب آموزش شبکه های عصبی به جای استفاده از روش های معمولی گرادیان با الگوریتم های بهینه سازی انجام می گردد.

-4 ارزیابی عملکرد شبکه عصبی

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


yi مقدار پیش بینی شده توسط مدل بوده و Yi مقدار واقعی میباشد.

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