روش های تخمین نرم افزار

20
ار ز ف رم ا ن ن ی م خ ت های روش ی ن زکا گ هدی م1 " اری ج ت وش ه درش( http://ceit.aut.ac.ir/islab )

Upload: maggie-brown

Post on 01-Jan-2016

79 views

Category:

Documents


0 download

DESCRIPTION

روش های تخمین نرم افزار. مهدی گرکانی. تخمین چیست ؟. تعریف دیکشنری : 1) ارزیابی تجربی یا محاسبه نادقیق 2) محاسبه اولیه هزینه پروژه 3) قضاوت بر اساس ادراک و نظر شخصی (Source: The American Heritage Dictionary , Second College Edition, 1985.). تخمین چیست ؟. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: روش های تخمین نرم افزار

روش های تخمین نرم افزار

مهدی گرکانی

1درس هوش تجاری

(http://ceit.aut.ac.ir/islab)

Page 2: روش های تخمین نرم افزار

تخمین چیست ؟

: تعریف دیکشنری( ارزیابی تجربی یا محاسبه نادقیق1( محاسبه اولیه هزینه پروژه2( قضاوت بر اساس ادراک و نظر شخصی3

( Source: The American Heritage Dictionary, Second College Edition, 1985).

2آزمايشگاه سيستم هاي هوشمند

(http://ce.aut.ac.ir/islab)

Page 3: روش های تخمین نرم افزار

تخمین چیست ؟

در تخمین پروژه های نرم افزاری باید سهموضوع زیر را در نظر داشته باشیم :

( برآوردها1( اهداف2( تعهدات3

3آزمايشگاه سيستم هاي هوشمند

(http://ce.aut.ac.ir/islab)

Page 4: روش های تخمین نرم افزار

تخمین چیست ؟

: تعریف کاربردیتخمین خ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)

Page 5: روش های تخمین نرم افزار

تکنیک های پایه

شمارش : در صورت امکانمحاسبه : در صورت عدم امکان شمارشقضاوت : آخرین راهکار

5آزمايشگاه سيستم هاي هوشمند

(http://ce.aut.ac.ir/islab)

Page 6: روش های تخمین نرم افزار

چه چیز را بشماریم ؟

موردی را پیدا کنید که بیشترین ارتباط با اندازهی پروژه داشته باشد

موردی را پیدا کنید که در چرخه تولید نرم افزارزود تر به آن دسترسی دارید

موردی را پیدا کنید که یک میانگین آماری بامفهوم ایجاد کند

بفهمید که چه چیزی را می شمارید موردی را پیدا کنید که با کمترین تالش و هزینه

قابل شمارش باشد

6آزمايشگاه سيستم هاي هوشمند

(http://ce.aut.ac.ir/islab)

Page 7: روش های تخمین نرم افزار

محاسبه

برای تبدیل شمارش به تخمین استفاده میشود

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

Page 8: روش های تخمین نرم افزار

محاسبه

: مثال تخمین به وسیله شمارش صفحات وب

اگ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)

Page 9: روش های تخمین نرم افزار

قضاوت آخرین راهکار است

اریخی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)

Page 10: روش های تخمین نرم افزار

تخمین بر اساس مقایسه

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

Page 11: روش های تخمین نرم افزار

تخمین بر اساس مقایسه

ی جدید با پروژه های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)

Page 12: روش های تخمین نرم افزار

یک مثال

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

Page 13: روش های تخمین نرم افزار

تخمین های بر اساس پروکسی

د تخمین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)

Page 14: روش های تخمین نرم افزار

تخمین های بر اساس پروکسی

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

Page 15: روش های تخمین نرم افزار

تخمین منطق فازی

یار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)

Page 16: روش های تخمین نرم افزار

یک مثال

اندازه های میانگین از داده های تاریخی سازمان بدست می آیند

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

Page 17: روش های تخمین نرم افزار

قضاوت ماهرانه در گروه ها

این دسته از تکنیک ها برای تخمین های زودهنگام و یاتخمین های مولفه های زیاد ناشناخته به کار می رود.

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

Page 18: روش های تخمین نرم افزار

بازبینی گروهی

روشی ساده برای ارتقای دقت تخمین های شکل گرفته توسط افراد ازطریق بازبینی های گروهی. این فرآیند شامل سه مرحله است :

( هر عضو این گروه به صورت انفرادی مولفه های مورد نظر را تخمین 1می زنند و سپس در جلسه گروهی نتایج با هم مقایسه می شوند : در

این بخش بر سر نتایج به دست آمده بحث و گفتگو می شود تا در مورد نتیجه مطلوب اجماع حاصل شود.

( برای دستیابی به نتیجه نهایی بین نتایج انفرادی فقط میانگین نگیرید . 2باید در مورد تمامی نتایج بحث و گفتگو شود و لزوما نتیجه مطلوب

میانگین نتایج انفرادی نیست.

( به نتیجه ای برسید که تمامی اعضا بر سر آن توافق کامل داشته باشند. 3

18آزمايشگاه سيستم هاي هوشمند

(http://ce.aut.ac.ir/islab)

Page 19: روش های تخمین نرم افزار

مثال بازبینی گروهی

برای افزایش دقت تخمین ها از این روش استفاده می شود

19آزمايشگاه سيستم هاي هوشمند

(http://ce.aut.ac.ir/islab)

Page 20: روش های تخمین نرم افزار

منبع

Software Estimation: Demystifying the Black Art by Steve McConnell Microsoft Press 2006 (338 pages) ISBN:0735605351

20آزمايشگاه سيستم هاي هوشمند

(http://ce.aut.ac.ir/islab)