دکتر اشکان سامی

دی 1390

برای رعایت حریم خصوصی نام نگارنده پایان نامه درج نمی شود (در فایل دانلودی نام نویسنده موجود است) تکه هایی از متن پایان نامه به عنوان نمونه : (ممکن است هنگام انتقال از فایل اصلی به داخل سایت بعضی متون به هم بریزد یا بعضی نمادها و اشکال درج نشود ولی در فایل دانلودی همه چیز مرتب و کامل است) چکیده: تضمین کیفیت نرم‌افزار همیشه دارای محدودیت‌های زمان و هزینه بوده است. به منظور رسیدن به کیفیت بالا و کاهش محدودیت‌ها، مدیران همواره سعی کرده‌اند تا بخش‌های مستعد خطا را در نرم‌افزار پیش‌بینی نمایند و منابع مذکور را به صورت موثری به این بخش‌ها اختصاص دهند. پیش از این، محققین روش‌های خودکاری را برای کمک به مدیران در این امر مهم معرفی و از آن‌ها استفاده کرده‌اند. روش‌های خودکار مذکور با استفاده از اندازه گیری معیارهای مختلف نرم‌افزار و یافتن ارتباط میان این معیارها و خطاهای نرم‌افزاری، همواره سعی در افزایش سرعت و دقت در پیش‌بینی خطا داشته‌اند. به نوعی می‌توان این معیارها را در چهار دسته که عبارتند از معیارهای پیچیدگی، داده‌های تاریخی، معیارهای طراحی و معیارهای وابستگی، قرار داد. اگرچه معیارهای استفاده شده، تا حدودی موثر هستند اما هنوز هیچکدام موفق به پیش‌بینی تمامی خطاهای موجود نشده‌اند. در این رساله، ما با توسعه دادن مفهوم وابستگی در نرم‌افزار، به معرفی مفهوم جدیدی به نام درخت وابستگی می‌پردازیم. این مفهوم به ما کمک می‌کند تا با در نظر گرفتن تمامی وابستگی‌های مستقیم و غیر مستقیم در بین اجزای نرم‌افزار، معیارهای جدیدی را استخراج نماییم که این معیارها می‌توانند عملاً نتایج مطلوب‌تری را نسبت به معیارهای پیشین، در پیش‌بینی خطا ارائه دهند.       فهرست مطالب     عنوان                                                                                                                            صفحه   1-مقدمه: 14 2- پیشینه پژوهشی: 16 2-1-معیارهای نرم‌افزار. 16 2-2-معیارهای وابستگی: 17 2-3-معیارهای تاریخی: 17 2-4-بررسی فعالیت‌های گذشته. 18 2-4-1- بررسی فعالیت‌ها در زمینه معیارهای کد : 18 2-4-2- بررسی فعالیت‌ها در زمینه معیارهای تاریخی: 20 2-4-3- بررسی فعالیت‌ها در زمینه معیارهای وابستگی: 22 3-درخت وابستگی: 26 4-فرضیات: 33 5-جمع آوری داده: 34 5-تحلیل و مقایسه: 44 6-نتیجه گیری: 76 7-مراجع: 77     فهرست تصاویر     عنوان                                                                                                                         صفحه شکل 1: نمونه‌ای از وابستگی‌های میان کلاس‌ها 29 شکل 2: نمونه‌ای از وابستگی‌های پیچیده در میان کلاس‌ها 30 شکل 3: تصویری از نمای کلی برنامه Class Dependency Analyzer 37 شکل 4: نمونه‌ای از کلاس دیاگرام نمایش داده شده در برنامه Class Dependency Analyzer 37 شکل 5: نمایش تمامی کلاس‌های وابسته به یک کلاس خاص در برنامه Class Dependency Analyzer 38 برای دانلود متن کامل پایان نامه ها اینجا کلیک کنید   شکل 6: نمونه‌ای از یک گراف جهت دار. 39 شکل 7: ماتریس وابستگی مربوط به گراف جهت دار در شکل شماره 6. 39 شکل 8: درخت وابستگی تشکیل شده از روی ماتریس وابستگی شکل 7. 42 شکل 9: متغیر تصادفی، انحراف معیار σ حول محور μ. 53     فهرست نمودارها     عنوان                                                                                                                              صفحه نمودار 1: ارتباط بین جفتگری و انسجام. 28 نمودار 2: بررسی رفتار معیار دقت در هنگام افزایش وابستگی درجه 1. 46 نمودار 3: بررسی رفتار معیار دقت در هنگام افزایش وابستگی درجه 2. 46 نمودار 4: بررسی رفتار معیار دقت در هنگام افزایش وابستگی درجه 3. 47 نمودار 5: مقایسه نتیجه «دقت» در دسته بندی سه نسخه اکلیپس… 54 نمودار 6: مقایسه نتیجه «فراخوانی» در دسته بندی سه نسخه اکلیپس… 55 نمودار 7: مقایسه نتیجه «صحت» در دسته بندی سه نسخه اکلیپس… 56 نمودار 8: مقایسه نتیجه «معیار F» در دسته بندی سه نسخه اکلیپس… 56 نمودار 9: مقایسه نتیجه «منحنی مشخصه عملکرد» در دسته بندی سه نسخه اکلیپس… 57 نمودار 10: مقایسه نتیجه «کاپا» در دسته بندی سه نسخه اکلیپس… 57 نمودار 11: مقایسه نتیجه «انحراف معیار» در دسته بندی سه نسخه اکلیپس… 58 نمودار 12: مقایسه نتیجه «دقت» در دسته بندی آپاچی بر روی متریک‌های کد و درخت وابستگی.. 59 نمودار 13: مقایسه نتیجه «فراخوانی» در دسته بندی آپاچی بر روی متریک‌های کد و درخت وابستگی.. 60 نمودار 14: مقایسه نتیجه «صحت» در دسته بندی آپاچی بر روی متریک‌های کد و درخت وابستگی.. 60 نمودار 15: مقایسه نتیجه «معیار F» در دسته بندی آپاچی بر روی متریک‌های کد و درخت وابستگی.. 61 نمودار 16: مقایسه نتیجه «منحنی مشخصه عملکرد» در دسته بندی آپاچی بر روی متریک‌های کد و درخت وابستگی.. 61 نمودار 17: مقایسه نتیجه «کاپا» در دسته بندی آپاچی بر روی متریک‌های کد و درخت وابستگی.. 62 نمودار 18: مقایسه نتیجه «انحراف معیار» در دسته بندی آپاچی بر روی متریک‌های کد و درخت وابستگی.. 62 نمودار 19: قیاس نتیجه «دقت» در دسته‌بندی بر روی کل داده‌ها 64 نمودار 20: قیاس نتیجه «فراخوانی» در دسته‌بندی بر روی کل داده‌ها 65 نمودار 21: قیاس نتیجه «صحت» در دسته‌بندی بر روی کل داده‌ها 66 نمودار 22: قیاس نتیجه «معیار F» در دسته‌بندی بر روی کل داده‌ها 66 نمودار 23: قیاس نتیجه «منحنی مشخصه عملکرد» در دسته‌بندی بر روی کل داده‌ها 67 نمودار 24: قیاس نتیجه «کاپا» در دسته‌بندی بر روی کل داده‌ها 67 نمودار 25: قیاس نتیجه «انحراف معیار» در دسته‌بندی بر روی کل داده‌ها 68  

1-مقدمه:

یکی چالش بر انگیزترین موضوعات مطرح در تضمین کیفیت[1]، در شرکت‌های سازنده نرم افزار، موضوع رفع خطاهای نرم افزار است. خطاهای نرم افزاری می‌توانند در زمان پیش و یا پس از انتشار[2] نرم افزار تشخیص داده شوند. اما منابعی که می‌توان برای تشخیص و تصحیح خطاها در نظر گرفت محدود است (Kamyabi et al.). خطاها را می‌توان به دو دسته کلی تقسیم کرد. خطاهای نحوی[3] و خطاهای مفهومی[4]. با توجه به‌این که ابزارهای خودکار بسیار قدرتمندی برای تشخیص خطاهای نحوی وجود دارند، احتمال‌این که خطایی ازاین دست تا زمان انتشار تشخیص داده نشود، بسیار کم است. خطاهای مفهومی به آن دسته از خطاها اشاره دارد که در اثر مشکلاتی جدای از اشتباهات نحوی و خطاهای انسانی ملموس اتفاق می‌افتند و معمولاً در اثر عدم هماهنگی در بخش‌های مختلف کد و گاهی به صورت بسیار ناملموس به وجود می‌آیند که در اینجا به سادگی نمی‌توان با بررسی کد، این‌گونه خطاها را تشخیص داد. بنا بر این در مورد خطاهای مفهومی داستان فرق می‌کند چرا که عوامل بسیار زیادی می‌توانند در بروزاین‌گونه از خطاها دخیل باشند. (Zimmermann & Nagappan, 2008) بنا براین همواره سعی شده است که با اندازه گیری معیارهای[5] مختلف و استفاده از آن‌ها در روش‌های پیش‌بینی خودکار خطا، سرعت و دقت را در امر تست نرم افزار افزایش دهند. طی تحقیقاتی که تا کنون صورت گرفته، متداول‌ترین معیارهای استفاده شده در پیش‌بینی اتوماتیک خطا، معیارهای پیچیدگی[6] است. (Zimmermann & Nagappan, 2008) اما جدیدترین روشی که مطرح شده است، مسأله مربوط به وابستگی‌های بین کلاس‌ها[7] و همچنین بین ماژول‌ها می‌باشد. انواع وابستگی‌ها می‌توانند بین دو کلاس و یا دو ماژول[8] مطرح شوند که تحقیقات نشان داده است که این وابستگی‌ها ارتباط بسیار زیادی با وجود خطاهای مفهومی دارند.

موضوعات: بدون موضوع
[پنجشنبه 1398-06-28] [ 01:43:00 ق.ظ ]