In The name of God

Download Report

Transcript In The name of God

‫بسمه تعالی‬
‫پیش بینی هزینه نرم افزار با استفاده از روش های یادگیری ماشین‬
‫نام استاد‪:‬‬
‫آقای دکتر محمدرضا کیوان پور‬
‫نام دانشجو‪:‬‬
‫نگین نجفی زادگان‬
‫پاییز ‪93‬‬
‫‪1‬‬
‫فهرست‬
‫‪2‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬
‫‪.8‬‬
‫‪.9‬‬
‫‪.10‬‬
‫‪.11‬‬
‫‪.12‬‬
‫معرفی‬
‫تخمین توسط ‪LR‬‬
‫تخمین توسط آنالوژی‬
‫تخمین توسط ‪CBR‬‬
‫تخمین توسط ترکیب فازیی و آنالوژی‬
‫تخمین توسط درخت تصمیم‬
‫تخمین توسط شبکه عصبی‬
‫تخمین توسط الگوریتم ژنتیک‬
‫تخمین توسط شبکه عصبی‪-‬ژنتیک‬
‫تخمین توسط ‪Data Mining‬‬
‫تخمین توسط )‪Rule Induction(RI‬‬
‫ارزیابی‬
‫معرفی‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫تخمین هزینه نرم افزار یکی از مهم ترین موضوعات تولید نرم افزار در سال های‬
‫اخیر است‪.‬‬
‫مدل های تخمین به دو دسته زیر تقسیم می شوند‪:‬‬
‫روش های الگوریتمی‬
‫روش های غیر الگوریتمی‬
‫روش های الگوریتمی محبوب ترین روش ها هستند که شامل روش های زیر هستند‪:‬‬
‫‪COCOMO ‬‬
‫‪PUTNAM-SLIM ‬‬
‫‪Function points analysis ‬‬
‫‪3‬‬
‫روش های الگوریتمی و غیر الگوریتمی‬
‫مدل های الگوریتمی از تحلیل های آماری داده های پروژه های گذشته به دست می آیند‪.‬‬
‫معایب روش های الگوریتمی عبارت است از‪:‬‬
‫‪ .1‬فرض کردن شکل تابع پیش بینی‬
‫‪ .2‬نیاز به تنظیم در شرایط مختلف‬
‫‪ .3‬قابلیت درک پایین توسط انسان‬
‫‪4‬‬
‫روش های غیر الگوریتمی مشکالت روش های باال را ندارند‪ .‬این روش ها شامل‬
‫‪CBR ‬‬
‫‪Analogy ‬‬
‫‪ANN ‬‬
‫‪Fuzzy ‬‬
‫‪... ‬‬
‫می باشند‪.‬‬
‫‪LR‬‬
‫هدف تحلیل رگرسیون بیان یک سری تغیر وابسته به شکل متغیرهای تابعی‪ ،‬ضرایب‬
‫مستقل و مقادیر خطاست‪.‬‬
‫اگر ما ‪ N‬مشاهده و ‪ P‬پیش بینی کننده داشته باشیم‪:‬‬
‫‪ Bi‬یک بردار پیش بینی کننده برای ‪ i‬امین مشاهده است‪.‬‬
‫ودر صورتی که‪:‬‬
‫ضرایب پیش بینی هستند‪.‬‬
‫‪ Yi‬پاسخ ‪i‬امین مشاهده و‬
‫این رابطه در ‪ COCOMO‬به صورت زیر است‪:‬‬
‫‪5‬‬
‫تخمین توسط آنالوژی‬
‫تخمین توسط آنالوژی یا ‪ EbA‬تکنیکی است که فرآیند غریزی تصمیم گیری انسان ها را‬
‫شبیه سازی می کند‪.‬‬
‫‪ EbA ‬یک تکنیک مبتنی بر نمونه است‪.‬‬
‫‪ ‬به یک ‪ data set‬کامل از مجموعه های متریک های پروژه های گذشته نیاز دارد‪.‬‬
‫به عنوان یک رگرسیون غیر خطی ‪( K-NN‬یعنی ‪ K‬نزدیک ترین همسایه) شناخته می‬
‫شود‪.‬‬
‫روش کار‪:‬‬
‫‪ K ،EbA .1‬پروژه گذشته را که مقادیر متریک هایشان مشابه مقادیر متریک های پروژه‬
‫فعلی است را انتخاب می کند‪.‬‬
‫‪ .2‬هزینه پروژه هدف را از میانگین گیری هزینه ‪ K‬پروژه گذشته به دست می آورد‪.‬‬
‫‪6‬‬
‫تخمین توسط آنالوژی‬
‫‪7‬‬
‫‪CBR‬‬
‫روش ‪ CBR‬شکل بهبود یافته روش ‪ EbA‬می باشد‪.‬‬
‫این مدل توسط نمونه های گذشته در پایگاه نمونه ها بیان می شود‪.‬‬
‫‪8‬‬
CBR
9
‫‪CBR‬‬
‫مدل ‪ CBR‬برای پیش بینی تالش نرم افزار توسط ‪Vicinanza‬‬
‫‪ ‬این مدل از قوانین انسان های خبره استفاده می کند‪.‬‬
‫‪ ‬کتابخانه ای از ‪ case‬ها وجود دارد‪.‬‬
‫‪ ‬یک نمونه به نام ‪ source‬وقتی بیشترین شباهت را با ‪ target‬داشته باشد از کتابخانه‬
‫بازیابی می شود‪.‬‬
‫‪ ‬راه حل بازیابی شده بر اساس میزان تفاوتش با ‪ target‬توسط قانونی تطبیق داده می‬
‫شود‪.‬‬
‫‪10‬‬
‫ترکیب فازی و آنالوژی‬
‫شکل کلی منطق فازی به صورت زیر است‪:‬‬
‫فازی‪-‬آنالوژی در واقع فازی کردن روش آنالوژی است که شامل ‪ 3‬مرحله زیر می باشد‪:‬‬
‫‪.1‬شناسایی ‪Case‬ها‪:‬در ‪ ،COCOMO dataset‬هر پروژه با ‪ 17‬متغیر تعریف شده است‬
‫و داده هر متغیر با مقادیر زبانی مشخص شده است‪.‬‬
‫‪11‬‬
‫ترکیب فازی و آنالوژی‬
‫‪.2‬بازیابی ‪Case‬های مشابه‪:‬در این مرحله هدف به دست آوردن شباهت دو پروژه ‪ P1‬و‬
‫‪ P2‬است‪D(P1,P2) .‬‬
‫‪12‬‬
‫ترکیب فازی و آنالوژی‬
‫‪-3‬تطبیق ‪ Case‬ها‪:‬هدف این گام بازیابی یک تخمین برای پروژه جدید با استفاده از مقادیر‬
‫تالش شناخته شده از پروژه های مشابه است‪.‬‬
‫دو سوال مطرح می شود‪:‬‬
‫‪-1‬چه تعداد پروژه مشابه برای تطبیق در نظر گرفته شود؟‬
‫‪-2‬چگونه از هزینه پروژه های گذشته استفاده کنیم تا هزینه پروژه جدید به دست آید؟‬
‫‪13‬‬
‫ترکیب فازی و آنالوژی‬
‫نتایج مرحله ‪:3‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪14‬‬
‫اگر )‪ null ، d(P,Pi‬باشد یعنی ‪ Pi‬روی تالش ‪ P‬تاثیر ندارد‪.‬‬
‫اگر )‪ 1 ، d(P,Pi‬باشد یعنی ‪ Pi‬حداکثر تاثیر را روی تالش ‪ P‬دارد‪.‬‬
‫اگر )‪ ، d(P,Pi‬بین ‪ 0‬و ‪ 1‬باشد یعنی ‪ Pi‬به طور نسبی روی تالش ‪ P‬تاثیر می گذارد‬
‫اگر )‪ 0 ، d(P,Pi‬باشد یعنی تمام پروژه های پایگاه داده به شدت با ‪ P‬متفاوتند‪.‬‬
Bohem COCOMO Dataset
A. Product Attributes
1) Required Software Reliability (RELY)
2) Database Size (DATA)
3) Product Complexity (CPU)
4) Adaptation Adjustment Factor (AAF)
B. Computer Attributes
1) Execution Time Constraint (TIME)
2) Main Storage Constraint (STOR)
3) Virtual Machine Volatility (VIRT)
15
Bohem COCOMO Dataset
C. Personnel Attributes
1) Analyst Capability (ACAP)
2) Applications Experience (AEXP)
3) Programmer Capability (PCAP)
4) Virtual Machine Experience (VEXP)
5) Language Experience (LEXP)
6) Personnel Continuity Turnover (CONT)
D. Project Attributes
1) Modern Programming Practices (MODP)
2) Use of Software Tools (TOOL)
3) Required Development Schedule (SCED)
16
‫درخت تصمیم‬
‫‪ ‬روش های زیادی در ساخت درخت های تصمیم برای طبقه بندی داده ها ایجاد شده اند‪.‬‬
‫‪ ‬یکی از از این روش ها ایجاد یک درخت تصمیم رگرسیون روی ‪ 63‬پروژه ‪Bohem‬‬
‫در ‪ COCOMO‬است‪.‬‬
‫‪ ‬مقادیری که در برگ ها برچسب زده شده است تعداد ماه های توسعه نرم افزار برای‬
‫پروژه واقعی را نشان می دهد‪.‬‬
‫‪17‬‬
‫‪ ‬پیش بینی تالش مورد نیاز برای پروژه هدف نیازمند پیمایش مسیر مناسب و رسیدن به‬
‫برگ مناسب است‪.‬‬
‫درخت تصمیم‬
‫‪18‬‬
‫شبکه عصبی‬
‫هر خط بین المان های پردازشی یک وزن مشخص دارد‪.‬‬
‫هر واحد پرداش در این شبکه یک تابع غیر خطی از ورودی ها را محاسبه می کند و نتایج‬
‫را به خروجی می برد‪.‬‬
‫‪19‬‬
‫الگوریتم ژنتیک و برنامه نویسی ژنتیک‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪20‬‬
‫در الگوریتم ژنتیک این امکان وجود دارد که میزان مناسب بودن یک راه حل اندازه‬
‫گیری شود‪.‬‬
‫در واقع مناسب بودن به این معناست که این راه حل به راه حل بهینه نزدیک تر است‪.‬‬
‫در ‪ GP‬کروموزوم ها طول ثابتی ندارند‪.‬‬
‫در ‪ GP‬کروموزوم ها نوعی برنامه هستند که اجرا می شوند تا نتایج مورد نیاز به‬
‫دست آید‪.‬‬
‫یکی از ساده ترین شکل های برنامه برای این کاربرد یک درخت دودویی است که‬
‫شامل عملگرها و عملوندهاست‪.‬‬
‫هر راه حل یک بیان جبری است که می تواند ارزیابی شود‪.‬‬
‫‪ GP‬در پیش بینی تالش‬
‫‪ ‬مسئله تخمین تالش نرم افزار یک مسئله رگرسیون است‪.‬‬
‫‪ ‬مسئله تخمین تالش نرم افزار یک عبارت جبری است زیرا شامل مجموعه ای از‬
‫پارامترهای ورودی و یک پارامتر خروجی تالش است‪.‬‬
‫‪X1+X2+X3+….+X9=X10‬‬
‫این یک راه حل است که معادل یک کروموزوم در ‪ GP‬است‪.‬‬
‫‪21‬‬
‫‪ GP‬درپیش بینی تالش‬
‫پارامترهای اصلی برای سیستم ‪GP‬‬
‫‪22‬‬
‫روش شبکه عصبی‪-‬ژنتیک‬
‫‪23‬‬
‫‪Data Mining‬‬
‫‪-1‬جمع آوری داده های پیش پردازش‪:‬‬
‫این مرحله شامل اضافه کردن‪ ،‬حذف و تبدیل متغیرهای گسسته است‪.‬‬
‫‪-2‬ساخت مجموعه داده های یادگیری و تست‪:‬‬
‫در این مرحله از ‪ NASA Dataset‬برای ‪ COCOMO‬استفاده می شود‪.‬‬
‫‪-3‬ساخت ‪classifier‬های ‪:DM‬‬
‫شامل ‪KNN،LR, ANN, SVR‬‬
‫‪-4‬آموزش‬
‫‪-5‬تست‬
‫‪-6‬تکرار مراحل ‪ 4‬و ‪5‬‬
‫‪24‬‬
‫‪Rule Induction‬‬
‫‪ RI ‬شکل خاصی از یادگیری استنتاجی است‪.‬‬
‫‪ ‬در این روش الگوریتم ها یک سری از قوانین را به عنوان نتیجه مدل سازی تولید می‬
‫کند‪.‬‬
‫‪ ‬روش کار ‪ RI‬به صورت زیر است‪:‬‬
‫‪ ‬به الگوریتم استنتاجی مجموعه ای از مثال ها داده می شود‪.‬‬
‫‪ ‬هر مثال شامل مقادیر متغیرها و خروجی است‪.‬‬
‫‪ ‬این الگوریتم به طور خودکار یک درخت تصمیم گیری ایجاد می کند‪.‬‬
‫مثال زیر یک قانون تولید شده از ‪ Desharnis Datasat‬را نشان می دهد‪.‬‬
‫‪25‬‬
Evaluation
1.Mean Magnitude of relative error (MMRE) (or mean
absolute relative error)
2. Root Mean Squared Error (RMSE)
3. Relative absolute Error (RAE)
4.Root Relative Squared Error
26
Evaluation
27
‫با تشکر از توجه شما‬
‫‪28‬‬
29
30
31