بخشی از مقاله
*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***
پیش بینی قابلیت اطمینان نرم افزار با استفاده از شبکه عصبی مبتنی بر سری های زمانی NARX
چکیده
با توجه به پیشرفت های روزافزون جوامع ، کامپیوترهـا بـرای بسـیاری از برنامـه هـای مختلـف، ماننـد راکتورهـای هسـته ای، هواپیماها، سیستم های بانکی ، سیستم های پرتاب موشـک و غیـره اسـتفاده مـی گردنـد. و تقاضـا بـرای ارائـه نـرم افزارهـای با کیفیت از قبل بیشتر می گردد یکی از پارامترهای کیفیت نرم افـزار و یکـی از مهـم تـرین عوامـل بـرای ارائـه یـک محصـول نرم افزاری با کیفیت قابلیت اطمینان آن می باشـد. در ایـن تحقیـق بـه کـاربرد شـبکه هـای عصـبی1 بـا رویکـرد سـری هـای زمانی2 در پیش بینی قابلیت اطمینان نرم افـزار و مقایسـه آن بـا شـبکه عصـبی چنـد لایـه Feed Forward پرداختـه شـده و
با آزمایش مجموعه داده های شکست پروژه های نرم افـزار کـه مربـوط بـه آزمایشـگاه هـای بـل تلفـن مـی باشـد نشـان داده شده که شبکه های عصبی با رویکـرد سـری هـای زمـانی NARX 3 دارای دقـت بـالاتر و ضـریب خطـای بسـیار پـایین تـری در
پیش بینی قابلیت اطمینان نرم افزار نسبت به شبکه عصبی چند لایه Feed Forward می باشد.
کلمات کلیدی
قابلیت اطمینان نرم افزار ، پیش بینی ، شبکه های عصبی مصنوعی ، سری های زمانی ، ارزیابی کارایی.
-1 مقدمه
قابلیت اطمینـان نـرم افـزار عـاملی مهـم بـرای توصـیف کمیـت در مقولـه کیفیـت نـرم افـزار بـوده کـه بـا شکسـت در زمـان اجـرایش کاهش می یابد و در واقع یکـی از مهـم تـرین فاکتورهـا جهـت رضـایت مشـتریان از محصـول نـرم افـزاری وجـود قابلیـت اطمینـان مناسـب در نرم افزار میباشد. بـرآورد قابلیـت اطمینـان نـرم افـزار در طـول دوره تسـت نـرم افـزار بـا اسـتفاده از داده هـای سـابقه ای و داده هـای تکـاملی صورت می پذیرد ، در کنار مـدل هـای فراوانـی کـه جهـت پـیش بینـی قابلیـت اطمینـان نـرم افـزار وجـود دارنـد ماننـد مـدل هـای پـارامتری قابلیت اطمینان نرم افزار ، مدل های غیر پـارامتری هـم بـا موفقیـت در پـیش بینـی قابلیـت اطمینـان نـرم افزارهـا بـه کـار بـرده شـده و نتـایج خــوب و مناســبی داشــته انــد. مــدل هــای پــارامتری ، پارامترهــای مــدل را بــر اســاس مفروضــاتی در مــورد ماهیــت شکســت نــرم افــزار، رفتــار تصادفی از روند فرآیند خرابی نرم افزار ها و محیط های توسعه برآورد می کنند. [1]
محبوب تـرین مـدل هـا ، مـدل هـای پـارامتری فرآینـد پواسـون غیـرهمگن (NHPP)4 هسـتند ، کـه بـا موفقیـت بـه صـورت عملـی در مهندســی قابلیــت اطمینــان نــرم افــزار اســتفاده شــده اســت. [2],[3]بــا ایــن حــال، نشــان داده شــده اســت کــه هــیچ مــدل پــارامتری بــه تنهایی نمی تواند پـیش بینـی دقیـق بـرای همـه مـوارد را بـه دسـت آورد. .[4] از سـوی دیگـر، مـدل هـای غیـر پـارامتری ماننـد شـبکه هـای عصــبی و ماشــین بــردار پشــتیبانی(SVM)1 انعطــاف پــذیر تــر هســتند ، و مــی توانــد معیارهــای قابلیــت اطمینــان را تنهــا بــر اســاس تــاریخ شکسـت و بـدون در نظـر گـرفتن مفروضـات مـدل هـای پـارامتری پـیش بینـی کننـد. همچنـین روش هـای غیـر پـارامتری مـی تواننـد مـدل هایی با کیفیت پیش بینی بهتر از مدل های پارامتری را تولید کند..[5],[6],[7]
در این پژوهش ، از شبکه های عصـبی مصـنوعی بـا رویکـرد سـری هـای زمـانی بـرای سـاخت مـدل هـای غیـر پـارامتری پـیش بینـی قابلیت اطمینان نرم افـزار اسـتفاده شـده اسـت ، ایـن نـوع شـبکه عصـبی نتـایج دقیـق و قابـل قبـولی را در پـیش بینـی قابلیـت اطمینـان نـرم افزار ارائه می نماید.
بقیه این مقاله بـه شـرح زیـر سـازمان یافتـه اسـت : در بخـش 2، خلاصـه ای از کارهـای انجـام پذیرفتـه در زمینـه قابلیـت اطمینـان نـرم افزار را خواهیم داشـت. در بخـش 3 رویکردهـای تحقیـق در زمینـه پـیش بینـی قابلیـت اطمینـان نـرم افـزار ارائـه مـی گـردد. بخـش 4 نتـایج شبیه سازی بررسی می گردد و در بخش 5 نتیجه گیری و کارهای آینده معرفی خواهند گردید.
-2 کارهای مرتبط
در [ 8 ] روش )FFNN(2 ارائـه شـده اسـت ، در ایـن روش از شـبکه هـای عصـبی انتشـار بـه جلـو بـرای سـاخت یـک مـدل ترکیبـی وزن دار پویــا و الگــوریتم یــادگیری (Back Propagation Algorithm) جهــت پیــاده ســازی اســتفاده شــده اســت ، ایــن روش دارای پــیش فرض هایی کمتر و قابلیت انطباق پذیری بـالاتری میباشـد ، و نشـان داده شـده کـه چگونـه بـا اسـتفاده از شـبکه هـای عصـبی انتشـار بـه جلـو به پیش بینی قابلیـت اطمینـان نـرم افـزار پاسـخ مناسـب داده شـود ، مزیـت اصـلی ایـن روش تنهـا نیـاز بـه تـاریخ هـای شکسـت داده هـا بـه عنـوان ورودی مـی باشـد. ایـن مـدل بــا اسـتفاده از الگـوریتم یـادگیری پـس انتشـار توســعه داده شـده اسـت ، کـه در آن وزن هـای شـبکه بــا اسـتفاده از خطاهـای قبلـی از طریـق لایـه خروجـی شـبکه سـازگار هسـتند در نتـایج پایـانی نشـان داده شـده کـه روش (FFNN) نسـبت بـه روش سنتی پارامتری (NHPP) پیش بینی و تخمین بهتری را ارائه می نماید.
در (BPNN)3 [9] روشـی را با اسـتفاده از شبکه های عصبی پس انتشار ارائه داده است که جهت آزمایش و پیش بینی قابلیت اطمینان نرم افزار به کار گرفته شـده اسـت ، در این روش چندین بار از زمان های بین خرابی اخیر به عنوان ورودی اسـتفاده شده است تا زمان خرابی بعدی را پیش بینی نمایند ، کارایی معماری شــبکه های عصــبی با تعداد مختلفی از گره های ورودی و گره های پنهان ارزیابی می شــود ، در پایان نتیجه گرفته شد که موثر بودن رویکرد شبکه های عصبی به طبیعت مجموعه داده های اجرا شده روی آن بستگی دارد.
[10] روش (PNNE)4 پیش بینی قابلیت اطمینان نرم افزار با اسـتفاده از مجموع شبکه های عصبی میباشد ، در این روش نویسنده مقاله با استفاده از روش های غیرپارامتری روشی را برای پیش بینی قابلیت اطمینان با استفاده از مجموع شبکه های عصبی ارزیابی شده ارائه نموده است ، در پایان با توجه به مدل ارائه شده نشان داده شده است که استفاده از مجموع چند پیش بینی کننده قابلیت و کاراای بهتر و بیشتری را در مقایسه با یک شبکه عصبی پیش بینی کننده تکی دارد.
-3 رویکردهای پژوهش
در این بخش ما به ادبیات تحقیق و ارائه اطلاعات مورد نیاز در جهت ورود به موضوع اصلی و پیاده سازی مدل پیشنهادی خواهیم پرداخت.
-1-3 قابلیت اطمینان نرم افزار SR
با توجه بـه تعریـف ISO/IEC-9126 قابلیـت اطمینـان نـرم افـزار مجموعـه ای از ویژگـی هـا بـرای تحمـل نـرم افـزار در حفـظ سـطح کـارایی مشــخص و در طــی یــک دوره زمــانی مشــخص شــده میباشــد.[11]،[12] ، نــرم افــزار ممکــن اســت در طــول فرآینــد اجــرایش بــا شکســت مواجه شود.
فرآینــد شکســت نــرم افــزار در شــکل (1) نشــان داده شــده اســت. ti زمــان شکســت i ام نــرم افــزار و ∆ti = ti – ti-1 فاصــله زمــانی بــین شکست iام و شکست i-1 ام میباشد.
شکل((1 فرآیند شکست داده ها در نرم افزار
داده قابلیت اطمینـان نـرم افـزار بـه طـور معمـول بـه صـورت جفـت زوج }ti , Ni{ نشـان داده مـی شـود. کـه Ni تـراکم تعـداد شکسـت هـای نرم افـزار در زمـان ti میباشـد. شـکل (1) فرآینـد شکسـت نـرم افـزار را نشـان مـی دهـد. هـدف پـیش بینـی قابلیـت اطمینـان نـرم افـزار ایـن است که ، تعداد خرابیها را در زمان اجرای آینده ، بر اساس تاریخ شکست نرم افزار تخمین می زند.[1]
-2-3 شبکه های عصبی Feed Forward
شبکه های عصبی مکانیسم های یادگیری میباشـد کـه مـی توانـد هـر گونـه توابـع پیوسـته غیـر خطـی بـر اسـاس اطلاعـات داده شـده تقریـب بزند. به طور کلی، شبکه های عصبی از سه قسمت به شرح زیر تشکیل شده است:
ورودی ها ، نورون ها ، خروجی ها ، هر نورون می تواند ســیگنال را از ورودی دریافت کند ، ســیگنال ها را پردازش نماید و در نهایت یک سیگنال خروجی تولید نماید. شکل. (1) نشان می دهدکه یک نورون، در آن F تابع فعال سازی است که پردازش سیگنال های ورودی و تولید ســیگنال خروجی از نورون بوده ، X خروجی از نورون های عصــبی در لایه قبلی هســتند، و W وزن های متصــل به نورون ها از لایه قبلی هستند.
شکل(2 )ساختار یک نورون
رایج ترین نـوع معمـاری شـبکه هـای عصـبی شـبکه اشـتراک بـه جلـو )Feed Forward( نامیـده مـی شـودکه در شـکل (3) نشـان داده شـده اسـت. ایـن معمـاری از سـه لایـه مجـزا تشـکیل شـده اسـت : یـک لایـه ورودی ، یـک لایـه پنهـان ، و یـک لایـه خروجـی ، کـه حلقـه اتصـال نورون و سلول های عصبی در سراسر لایه نشان داده شده وزن اتصال نامیده می شود.
شکل(3) ساختار شبکه عصبی Feed Forward
الگـوریتم یــادگیری در واقــع توصــیف یــک فراینــد بــرای تنظــیم وزن هــا مــی باشــد . الگــوریتم بــه کــار رفتــه در شــبکه هــای عصــبی Feed Forward الگــوریتم پــس انتشــار )Back-propagation algorithm( اســت ، کــه بــه طــور گســترده وزن هــای شــبکه را مکــررا بــا خطاهای بازگشتی منتشر شـده از لایـه خروجـی آمـوزش مـی دهـد ، در طـی فراینـد یـادگیری ، وزن هـا بـه منظـور کـاهش خطاهـا خروجـی شبکه با پاسخ استاندارد تنظیم می شود.[ 13 ]
-3-3 شبکه عصبی مبتنی بر سری های زمانی NARX
شبکه های عصـبی معمـولی و رایـج ماننـد شـبکه هـای عصـبی Feed Forward تنهـا بـه لایـه هـای ورودی متمرکـز مـی باشـند و ورودی هـای شــبکه را بـه صــورت مسـتقیم بــه نـورون هــای موجـود در هــر لایـه انتقــال داده و یـک خروجــی را تولیـد مــی نماینـد ، شــبکه های عصبی NARX مبتنی بر مـدل هـای ARX خطـی بـوده و یـک شـبکه بازگشـتی پویـا مـی باشـند کـه عـلاوه بـر داشـتن خصوصـیات مـدل شبکه هـای Feed Forward ، از خروجـی هـای شـبکه بـه عنـوان بـازخورد1 بـه ورودی لایـه هـای قبلـی شـبکه عصـبی اسـتفاده مـی کننـد ، همچنین در این شبکه هـا عـلاوه بـر ورودی هـای معمـولی ، ورودی هـای دیگـری بـا عنـوان ورودی هـای تـاخیر2 وجـود دارنـد کـه بـه شـبکه تزریق شـده و زمـان لازم بـرای نگهـداری مقـادیر ورودی هـای قبلـی شـبکه x(t) و دنبالـه خروجـی هـای حاصـل از آنهـا y(t) مـی باشـد ، در این شـبکه هـا بـرای شـروع کـار ابتـدا داده هـای آموزشـی بارگـذاری مـی شـوند سـپس بـا خطـوط تـاخیر مشـخص شـده بـرای ورودی هـا و دنباله خروجی ها ، اگر دو تاخیر برای ورودی و خروجـی در نظـر گرفتـه شـده باشـد ، آمـوزش شـبکه عصـبی از نقطـه سـوم آغـاز خواهـد شـد ، ورودی هــا بــه صــورت مــوازی و همرونــد بــه شــبکه اعمــال مــی شــوند و در واقــع خروجــی y(t) یــک بــازخورد و یــک ورودی جدیــد بــرای شبکه عصبی محسوب می گردد ، معادله کلی شبکه عصبی NARX در پایین آورده شده است.[14]
در ایــن معادلــه بــه معنــای تــابع غیرخطــی مــی باشــد ، ورودی و خروجــی مــدل در زمــان t مــی باشــند و
تاخیرها به ازای ورودی و خروجی سیستم می باشـند ، اگـر مقـدار D برابـر یـک باشـد ، پـیش بینـی از نـوع یـک گـام جلـوتر و اگـر مقـدار D بیشتر از یک باشد پیش بینی از نوع چند گام جلوتر خواهد بود.
اصولا معیار سنجش خطای حاصـل از خروجـی شـبکه هـای عصـبی خطـای میـانگین مربعـات مـی باشـد ، کـه بـه صـورت زیـر قابـل محاسـبه است.
در این فرمل مقدار پیش بینی شده توسط مدل بوده و مقدار داده واقعی می باشد.
در واقع ایده کلی سری های زمانی این است که از یک سری مقادیر مشخص شده در زمانی مانند (t) برای پیش بینی نقاط دیگر در زمان های آینده مانند )t+x( می نماید ، شکل زیر نمایش کلی سیستم شبکه عصبی NARX با اعمال تاخیر ها و بازخوردهای آن می باشد.[16]
شکل(4) ساختار شبکه عصبی NARX بااعمال تاخیرها به عنوان ورودی
-4-3 معماری سیستم پیشنهادی با شبکه عصبی NARX
معماری شبکه عصبی پیشنهادی برای پیش بینی قابلیت اطمینان نرم افزار ، به همراه جدول خصوصیات آن و مجموعه داده استفاده شده در زیر ارائه شده است