%36تخفیف

دانلود پروژه: ارائه یک خوشه بندی جدید بر پایه الگوریتم های ژنتیک جهت پیش بینی خطاهای ممکن سیستم های نرم افزاری

تعداد 76 صفحه در فایل word

ارائه یک خوشه بندی جدید بر پایه الگوریتم های ژنتیک جهت پیش بینی خطاهای ممکن سیستم های نرم افزاری

چکیده

 

اعتماد به نرم افزار، يکي از بخش هاي جدا‌ناپذير زندگي روزمره، در طول دهه اخير بوده است. بدون کنترل نرم افزاري، تقريباً زندگي امروزه غير ممکن بود. نرم افزارهايي مانند نرم افزارهاي پزشکي، سيستم کنترل ترافيک هوايي و نرم افزارهاي سيگنالينگ قطارها، همگي نرم افزارهاي مجتمعي هستند که توانسته اند اعتماد انسان را جلب کنند.

مهندسين نرم افزار با يک مجموعه بزرگي از نيازمندي هاي کيفيت نرم افزار مانند قابليت اعتماد[1]، امنيت[2]، دسترس پذيري[3]، قابليت نگهداري[4] و کارآيي[5] مواجه هستند، که توسعه چنين نرم افزارهاي کاربردي بزرگي را با چالش مواجه مي کند . وجود عيب در چنين سيستم هايي موجب وقوع احتمالي بحرانهاي عظيم مي شود. بنابراين نياز به اطمينان از استوار بودن سيستم هاي نرم افزاري، هر روز بيشتر از روز قبل احساس مي شود.

علاوه بر اين ثابت شده است که يک مشکل نرم افزاري هر چه زودتر تشخيص داده شود، تصحيح کردن آن راحتتر و و با هزينه کمتري انجام خواهد شد. بنابراين پيش بيني خطاها در طول توسعه نرم افزار، امري حياتي و ضروري مي باشد.

کلمات کلیدی : خوشه بندی ، الگوریتم ژنتیک ، نگاشت کاهش

 

 

[1]Reliability

[2]Security

[3]Availability

[4]Maintainability

[5]Performance

1-1            مقدمه

تکنيک ها و متريک هاي بسياري براي بررسي ماژول هاي مستعد خطا[1] در يک نرم افزار وجود دارند که مي توانند به توسعه دهندگان در انجام تست هاي مختلف در طول توسعه نرم افزار کمک کنند. البته با توجه به افزايش روز افزون پيچيدگي و محدوديت هاي توسعه، توليد نرم افزارهاي بدون خطا، تقريباً غير ممکن است. چنين خطاهايي مي توانند باعث کاهش شديد رضايت مشتري شوند [Koru05].

بنابراين تخمين کيفيت نرم افزار بر اساس تعداد و نوع ماژول مستعد خطا، مسئله چالش برانگيز و مشکل مي باشد [Gupta10، Suri13]، به ويژه زماني که اطلاعات محدودي در خصوص کيفيت اين نرم افزار در دست باشد [Zhong04]. در مسئله تخمين کيفيت نرم افزار، يک کلاسبند کيفيت نرم افزار[2] [Khoshgoftaar03، Ohlsson02]يا يک مدل تخمين خطاي نرم افزاري[3] [Khoshgoftaar02]، آموزش داده ميشود. اين آموزش، بر اساس سنجش هاي نرم افزاري (به عنوان ويژگي ها[4]) و داده هاي خطا (به عنوان برچسب ها[5])، از يک يا چند سيستم نرم افزاري قديمي تر که شباهت قابل توجهي به سيستم نرم افزاري هدف (نرم افزاري که قصد توسعه آن را داريم)، صورت مي گيرد. اين نوع يادگيري را يادگيري نظارت شده[6] مي نامند. ولي در بسياري از سيستم هاي نرم افزاري هدف، هيچ سيستم مشابه ديگري وجود ندارد و يا اگر هم وجود داشته باشد، هيچ تخميني از خطاهاي مختلف آن وجود ندارد.

در اينجا با يک سيستم يادگيري بدون ناظر[7] مواجه هستيم که به آن خوشه بندي[8]مي گويند. خوشه بندي، يک تکنيک پايه در بسياري از الگوريتم هاي مدل سازي مي باشد. هدف خوشه بندي ايجاد مجموعه هاي جديد داده ها، از يک مجموعه بزرگ مي باشد [Zhong04]. گام هاي اساسي جهت انجام يک خوشه بندي را مي توان به صورت زير بيان کرد [Theodoridis09]:

  • انتخاب ويژگي[9]: هدف ما از خوشه بندي ماژول هاي نرم افزاري، قرار دادن آنها در دو گروه (خوشه) مستعد خطا و غير مستعد خطا مي باشد. بنابراين مشخص کردن مجموعه ويژگي ها (متريک ها) جهت ارزيابي و خوشه بندي ، اولين گام در يک فرآيند خوشه بندي مي باشد.

به مجموعه ويژگي هاي يک ماژول نرم افزاري، يک بردار ويژگي گفته مي شود. ويژگي هاي انتخاب شده تا حد امکان بايد کمترين افزونگي را داشته و بيشترين اطلاعات را در خصوص ماژول مورد نظر در اختيار ما قرار دهد. از جمله اين ويژگي ها براي يک ماژول نرم افزاري مي توان به تعداد خط کدها، تعداد فرزندان ، تعداد والدين، تعداد متدهاي عمومي و خصوصي و غيره [sherif13] اشاره کرد.

  • معيار مجاورت[10]: اين معيار، ميزان شباهت[11]يا عدم شباهت[12]، ميان دو بردار ويژگي را مشخص مي کند.

  • خوشه بندي[13]: بعد از مشخص کردن معيارهاي مجاورت و خوشه بندي، از يک الگوريتم جهت اجراي ارزيابي مجاورت بردارهاي ويژگي بر اساس معيار مجاورت و نيز تخصيص اين بردارهاي ويژگي به خوشه هاي مختلف بر اساس معيار خوشه بندي، استفاده مي شود. بيشترين تلاشها در حوزه ي ارزيابي کيفيت نرم افزار با استفاده از تکنيک هاي خوشه بندي، در حوزه طراحي الگوريتم هاي خوشه بندي کارآمد و دقيق صورت مي گيرد.

  • اعتبار سنجي نتايج[14]: بعد از اتمام الگوريتم خوشه بندي، بايد ميزان دقت و صحت خوشه بندي ها را ارزيابي کنيم. اين کار از طريق تست هاي مناسب انجام مي گيرد.

1Fault Prone Modules

[2]Software Quality Classifier

[3]software fault prediction model

[4]Features

[5]Labels

[6] Supervised Learning

[7]Unsupervised Learning

[8] Clustering

[9]Feature Selection

[10]Proximity Measure

[11]Similarity

[12]Dissimilarity

[13]Clustering Algorithm

[14]Validation of the Results

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...
enemad-logo