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