روش های تخمین نرم افزار
DESCRIPTION
روش های تخمین نرم افزار. مهدی گرکانی. تخمین چیست ؟. تعریف دیکشنری : 1) ارزیابی تجربی یا محاسبه نادقیق 2) محاسبه اولیه هزینه پروژه 3) قضاوت بر اساس ادراک و نظر شخصی (Source: The American Heritage Dictionary , Second College Edition, 1985.). تخمین چیست ؟. - PowerPoint PPT PresentationTRANSCRIPT
روش های تخمین نرم افزار
مهدی گرکانی
1درس هوش تجاری
(http://ceit.aut.ac.ir/islab)
تخمین چیست ؟
: تعریف دیکشنری( ارزیابی تجربی یا محاسبه نادقیق1( محاسبه اولیه هزینه پروژه2( قضاوت بر اساس ادراک و نظر شخصی3
( Source: The American Heritage Dictionary, Second College Edition, 1985).
2آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
تخمین چیست ؟
در تخمین پروژه های نرم افزاری باید سهموضوع زیر را در نظر داشته باشیم :
( برآوردها1( اهداف2( تعهدات3
3آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
تخمین چیست ؟
: تعریف کاربردیتخمین خKوب تخمیKنی اسKت کKه یKک دیKد شKفاف از واقیعت هKای پKروژه را در اختیKار مKدیر پKروژه قKرار می دهKد تKا بKر اسKاس آن تصKمیمات الزم و مناسKب بKرای کنKترل پKروژه و بKرای رسKیدن
به اهداف مقرر اتخاذ گردد.
4آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
تکنیک های پایه
شمارش : در صورت امکانمحاسبه : در صورت عدم امکان شمارشقضاوت : آخرین راهکار
5آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
چه چیز را بشماریم ؟
موردی را پیدا کنید که بیشترین ارتباط با اندازهی پروژه داشته باشد
موردی را پیدا کنید که در چرخه تولید نرم افزارزود تر به آن دسترسی دارید
موردی را پیدا کنید که یک میانگین آماری بامفهوم ایجاد کند
بفهمید که چه چیزی را می شمارید موردی را پیدا کنید که با کمترین تالش و هزینه
قابل شمارش باشد
6آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
محاسبه
برای تبدیل شمارش به تخمین استفاده میشود
7آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
Quantity to count Historical data
Marketing requirements •Average effort hours per requirement for development•Average effort hours per requirement for independent testing•Average effort hours per requirement for documentation
Features •Average effort hours per feature for development and/or testing
Use cases •Average total effort hours per use case•Average number of use cases that can be delivered in a particular amount of calendar time
محاسبه
: مثال تخمین به وسیله شمارش صفحات وب
اگKر اطالعKات بKه دسKت آمKده بKه شKما می گویKد کKه طKراحی، پیKاده سKازی و تسKت هKر صKفحه
صKفحه 12 سKاعت طKول می کشKد و 40وب بKدان این مانKده، بKاقی پKروژه اتمKام تKا دیگKر
کKه اسKت اتمKام x 12 40معKنی تKا سKاعت پروژه زمان نیاز است.
8آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
قضاوت آخرین راهکار است
اریخیKت هKای (Historical Data) داده بKه همKراه محاسKبات دارای کمKترین مKیزان تعصKب می بKاعث کKه باشKد می نظKرات شخصKی و
شود تخمین ها کمتر قضاوت گونه باشند
ردنKو کKدن و همسKرای پیچانKدن بKرقیب شKاز تتخمین هKای محاسKبه شKده بKا قضKاوت شخصKی
و تخصصی خود اجتناب کنید
9آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
تخمین بر اساس مقایسه
10آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
Applicability of This Technique
Estimation by Analogy
What's estimated Size, Effort, Schedule, Features
Size of project S M L
Development stage Early-Late
Iterative or sequential Both
Accuracy possible Medium
تخمین بر اساس مقایسه
ی جدید با پروژه هایd خط مشی اصلی : بر اساس مقایسه پروژهِِ انجام شده می توانید تخمین دقیقی برای پروژه فعلی ارائه دهید.
: فرایند( جزئیKات انKدازه، عملیKات و هزینKه پKروژه مشKابه قبلی را بKه دسKت 1
آKوKریKدK. دKر صKورت KامکKان اKطالعKات تKجزیKه شKدKه بKر اKسKاس قKابلیت هKا K( KاKه KارKک تKفکیKک دیگKر WBSتKوسKط KسKاخKتKار هKاKی یKاK سیسKتم KوK )
تجزیه به دست آورید.( اندازه پروژه جدید را با پروژه قدیمی مقایسه کنید.2( اندازه پروژه جدید را بر اساس درصدی از پروژهِِ ی قدیمی 3
بدست آورده و برای پروژه جدید تخمینی بر اساس این مقایسه بدست آورید.
( فرض های سازگار میان دو پروژه را بررسی نمایید. 4
11آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
یک مثال
12آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
Subsystem New Project Old Project Multiplication Factor
Database 10 tables 14 tables 1.4
User interface 14 Web pages 19 Web pages 1.4
Graphs and reports 10 graphs + 8 reports
14 graphs + 16 reports
1.7
تخمین های بر اساس پروکسی
د تخمینKه قصKه ای کKا مولفKط بKی مرتبKک پروکسKدا یKدر ابتآن را دKاریKدK تعKییKن KکنKیKد. اینK پرKوکسKی KبایKدK بKه KگKونKهK ای KباشKد در اصKلی KهKلفKوKم زKودتKر Kاز یKا تKر Kو راKحKت Kآن کKه Kتخمین
اختیار شما باشد. یKمارش اقالم پروکسKا شKی و تخمین یKیین پروکسKد از تعKبع
K ازمانKس KخیKاریKت KایKه KدادهK اسKاسK KرKب KباتیKاسKمحK طی ،مKقKدار تخKمKینK زدهK KشKده بKرایK پروKکسKیK را KبKهK تخKمینK اصKلKی
مولفهK مورد Kنظر تبدیل Kکنید. دKوط کKداد خطKبه و تخمین تعKرای محاسKال بKوان مثKبه عن
K( کKه مKرتبKط بKاK تKعKدادfeature KمKی تKوانK ازK تعKداKدK قKابلKیت ) خطKوط کد KخواهKد بود Kبه KعنواKن پرKوکسی استفKاده کرد.
13آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
تخمین های بر اساس پروکسی
14آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
Applicability of This Technique
Fuzzy Logic
What's estimated Size, Features
Size of project - M L
Development stage Early
Iterative or sequential Sequential
Accuracy possible Medium
تخمین منطق فازی
یارKاس بسKر اسKا را بKابلیت هKا و قKه هKخصیصکوچKک، کوچKک، متوسKط، بKزرگ و خیلی بKزرگ تعKداد تخمین بKرای سKپس کنیKد. بنKدی دسKته خطKوط کKد از داده هKای تKاریخی اسKتفاده کKرده و در می یKابیم کKه بKه ازای هKر دسKته چنKد خKط کKد بKه طKور متوسKط مKورد نیKاز اسKت و از این می اسKتفاده نهKایی تخمین بKرای اطالعKات کKنیم. منطKق فKازی روش خKوبی بKرای تخمین
تعداد خطوط کد به شمار می رود.
15آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
یک مثال
اندازه های میانگین از داده های تاریخی سازمان بدست می آیند
16آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
Feature Size Average Lines of Code Per Feature
Number of Features
Estimated Lines of Code
Very small 127 22 2794
Small 253 15 3795
Medium 500 10 5000
Large 1014 30 30420
Very large 1998 27 53946
104 95955
قضاوت ماهرانه در گروه ها
این دسته از تکنیک ها برای تخمین های زودهنگام و یاتخمین های مولفه های زیاد ناشناخته به کار می رود.
17آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
Applicability of This Technique
Group Reviews
What's estimated Size, Effort, Schedule, Features
Size of project - M L
Development stage Early - Middle
Iterative or sequential Both
Accuracy possible Medium
بازبینی گروهی
روشی ساده برای ارتقای دقت تخمین های شکل گرفته توسط افراد ازطریق بازبینی های گروهی. این فرآیند شامل سه مرحله است :
( هر عضو این گروه به صورت انفرادی مولفه های مورد نظر را تخمین 1می زنند و سپس در جلسه گروهی نتایج با هم مقایسه می شوند : در
این بخش بر سر نتایج به دست آمده بحث و گفتگو می شود تا در مورد نتیجه مطلوب اجماع حاصل شود.
( برای دستیابی به نتیجه نهایی بین نتایج انفرادی فقط میانگین نگیرید . 2باید در مورد تمامی نتایج بحث و گفتگو شود و لزوما نتیجه مطلوب
میانگین نتایج انفرادی نیست.
( به نتیجه ای برسید که تمامی اعضا بر سر آن توافق کامل داشته باشند. 3
18آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
مثال بازبینی گروهی
برای افزایش دقت تخمین ها از این روش استفاده می شود
19آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
منبع
Software Estimation: Demystifying the Black Art by Steve McConnell Microsoft Press 2006 (338 pages) ISBN:0735605351
20آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)