Presentation is loading. Please wait.

Presentation is loading. Please wait.

تخمین در پروژه های نرم افزاری

Similar presentations


Presentation on theme: "تخمین در پروژه های نرم افزاری"— Presentation transcript:

1 تخمین در پروژه های نرم افزاری
درس مهندسي نرم‌افزار 2 فصل 23 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان Artificial Intelligent Systems Laboratory

2 طرح ریزی پروژه نرم افزاری
هدف کلی طرح ریزی پروژه، بنانهادن یک راهبرد کاربردی برای کنترل، ردگیری، و پایش یک پروژه فنی پیچیده می باشد. برای چه این کار را انجام می دهیم ؟ برای اینکه محصول در زمان معین و با کیفیت آماده شود. Artificial Intelligent Systems Laboratory

3 مجموعه فعالیت های طرح ریزی پروژه
تعیین دامنه پروژه امکان سنجی پروژه تحلیل ریسک ها مشخص نمودن منابع مورد نیاز منابع انسانی نرم افزارهای با قابلیت استفاده مجدد منابع محیطی Artificial Intelligent Systems Laboratory

4 انواع نرم افزار با قابلیت استفاده مجدد
Off-the-shelf components محصولات تولید شده توسط Third Party که باید از نظر تولید ارزانتر تمام شود. Full-Experience Components استفاده از تجربیات گذشته از نظر آنالیز، طراحی، کد و ... Partial-Experience Components استفاده تا اندازه ای New Components Artificial Intelligent Systems Laboratory

5 Artificial Intelligent Systems Laboratory
محیط نرم افزار محیط یک سیستم بر مبنای کامپیوتر بر اساس سخت افزار و نرم افزار می باشد. و باید در رابطه با Resource به آن توجه شود. Artificial Intelligent Systems Laboratory

6 مجموعه فعالیت های طرح ریزی پروژه
تخمین هزینه و کار شکستن مسئله تهیه دو یا چند تخمین با استفاده از سایز، Function Point ، Process Tasks یا موارد کاربرد جمع بندی تخمین ها تهیه برنامه زمانی پروژه Artificial Intelligent Systems Laboratory

7 Artificial Intelligent Systems Laboratory
تخمین تخمین منابع، هزینه و زمانبندی برای یک فعالیت مهندسی نرم افزار به موارد زیر احتیاج دارد: تجربه دسترسی به داده های آماری مربوط به شاخص ها شجاعت برای اطمینان به اطلاعات عددی وقتی این اطلاعات موجود است. تخمین به طور ذاتی دارای ریسک می باشد و این ریسک منجر به ابهام می شود. Artificial Intelligent Systems Laboratory

8 طرح پروژه باید مستند شود.
دامنه پروژه تخمین ها ریسک ها زمانبندی راهبرد کنترل طرح پروژه نرم افزاری Artificial Intelligent Systems Laboratory

9 برای فهم دامنه پروژه ... فهم نیاز های مشتری فهم حوزه کسب و کار
برای فهم دامنه پروژه ... فهم نیاز های مشتری فهم حوزه کسب و کار فهم مرزهای پروژه فهم دلایل اشتیاق مشتری فهم مسیر احتمالی تغییرات و فهم اینکه : وقتی شما همه چیز را فهمیده اید بازهم هیچ چیز قطعی نیست. Artificial Intelligent Systems Laboratory

10 Artificial Intelligent Systems Laboratory
دامنه (Scope) چیست ؟ دامنه پروژه موارد زیر را شرح می دهد : کارکردها و ویژگی هایی که به کاربران نهایی تحویل داده می شود. داده های ورودی و خروجی محتوایی که در نتیجه استفاده از نرم افزار به کاربر نمایش داده می شود. کارایی، محدودیت ها ، نقاط ارتباطی و قابلیت اطمینان نرم افزار دامنه با استفاده از تکنیک های زیر مشخص می شود : پس از ارتباط با همه ذینفعان مجموعه ای از شرح دامنه تهیه می شود. مجموعه ای از موارد کاربرد توسط کاربر نهایی تولید می شود. Artificial Intelligent Systems Laboratory

11 Artificial Intelligent Systems Laboratory
منابع Artificial Intelligent Systems Laboratory

12 Artificial Intelligent Systems Laboratory
تخمین پروژه دامنه پروژه باید تعیین گردد. تجزیه سیستم لازم است. شاخص های آماری سودمند هستند. حداقل دو روش مختلف باید استفاده شود. عدم اطمینان یکی از ویژگی های ذاتی فرایند تخمین است. Artificial Intelligent Systems Laboratory

13 Artificial Intelligent Systems Laboratory
تکنیک های تخمین پروژه های پیشین روش های تخمین معمول شکستن فعالیت ها و تخمین کار لازم تخمین بر مبنای سایز (به طور مثال FP) مدل های تجربی (Empirical Models) ابزارهای خودکار (Automated Tools) Artificial Intelligent Systems Laboratory

14 Artificial Intelligent Systems Laboratory
دقت تخمین دقت تخمین بر مبنای موارد زیر تعیین می شود: درجه ای از دقت که طرح ریزی کننده پروژه اندازه آن را تخمین زده است. توانایی تبدیل تخمین های بر مبنای اندازه به کار انسانی، زمان، و ریال درجه ای از قدرت طرح نرم افزار در نمایش توانایی های تیم نرم افزاری ثبات نیازمندی های محصول و محیطی که فعالیت های مهندسی نرم افزار را پشتیبانی می کند. Artificial Intelligent Systems Laboratory

15 تجزیه کارکردی (Functional Decomposition)
بیانیه دامنه تجزیه کارکردی انجام یک Grammatical “parse” Artificial Intelligent Systems Laboratory

16 مثالی از یک الگوریتم تجزیه
Artificial Intelligent Systems Laboratory

17 Artificial Intelligent Systems Laboratory
روش های تجزیه با توجه به اندازه نرم افزار صورت می گیرد و تحت عنوان Software Sizing مطرح است. رویکرد های متفاوت آن عبارتند از : Fuzzy-Logic Sizing Function Point Sizing Standard Component Sizing Change Sizing Artificial Intelligent Systems Laboratory

18 روش های معمول : رویکرد LOC/FP
استفاده از داده های آماری برای تهیه تخمین برای پروژه Artificial Intelligent Systems Laboratory

19 Artificial Intelligent Systems Laboratory
مثالی از رویکرد LOC Average productivity for systems of this type = 620 LOC/pm. Burdened labor rate =$8000 per month, the cost per line of code is approximately $13. Based on the LOC estimate and the historical productivity data, the total estimated project cost is $431,000 and the estimated effort is 54 person-months. Artificial Intelligent Systems Laboratory

20 Artificial Intelligent Systems Laboratory
مثالی از رویکرد FP The estimated number of FP is derived: FPestimated = count-total 3 [ S (Fi)] FPestimated = 375 organizational average productivity = 6.5 FP/pm. burdened labor rate = $8000 per month, the cost per FP is approximately $1230. Based on the FP estimate and the historical productivity data, the total estimated project cost is $461,000 and the estimated effort is 58 person-months. Artificial Intelligent Systems Laboratory

21 Artificial Intelligent Systems Laboratory
تخمین مبتنی بر فرایند گرفته شده از چارچوب فرایند فعالیت های چارچوب کارکرد های برنامه کار لازم برای تکمیل هر فعالیت چارچوب برای هر کارکرد برنامه Artificial Intelligent Systems Laboratory

22 مثالی از تخمین برمبنای فرایند
Based on an average burdened labor rate of $8,000 per month, the total estimated project cost is $368,000 and the estimated effort is 46 person-months. Artificial Intelligent Systems Laboratory

23 Artificial Intelligent Systems Laboratory
تخمین مبتنی بر ابزار ویژگی های پروژه فاکتورهای کالیبراسیون LOC/FP داده های Artificial Intelligent Systems Laboratory

24 مثالی از تخمین به کمک موارد کاربرد
Using 620 LOC/pm as the average productivity for systems of this type and a burdened labor rate of $8000 per month, the cost per line of code is approximately $13. Based on the use-case estimate and the historical productivity data, the total estimated project cost is $552,000 and the estimated effort is 68 person-months. Artificial Intelligent Systems Laboratory

25 Artificial Intelligent Systems Laboratory
مدل های تخمین تجربی این مدل ها به فرم کلی زیر می باشند : exponent effort = tuning coefficient * size معمولا کار به صورت نفر / ماه نشان داده می شود. به صورت تجربی تعیین می شود اندازه معمولاً به صورت LOC بیان می شود ولی می توان از FP هم استفاده نمود. معمولاً یک ثابت عددی است که با توجه به پیچیدگی پروژه تعیین می گردد. Artificial Intelligent Systems Laboratory

26 Artificial Intelligent Systems Laboratory
روش COCOMO-II COCOMO-II مجموعه ای از مدل های تخمین است که به مسائل زیر می پردازد: مدل ترکیب نرم افزار (Application Composition Model) که در مراحل اولیه توسعه نرم افزار که نمونه سازی، تعیین ارتباط نرم افزار و سیستمها، ارزیابی کارایی و تکنولوژی انجام می گیرد مورد استفاده قرار می گیرد. مدل طراحی اولیه (Early Design Model) هنگامی که نیازهای نرم افزار تقریباً ثابت شده و معماری نرم افزار تعیین گردید مورد استفاده قرار می گیرد. مدل بعد از معماری (Post-Architecture Stage Model) در حین ساخت نرم افزار مورد استفاده قرار می گیرد. Artificial Intelligent Systems Laboratory

27 معادله نرم افزار (The software equation)
یک مدل پویا چند متغیره به صورت زیر می باشد : E = [LOC x B0.333/P]3 x (1/t4) که : E = کار بر اساس نفرماه یا نفر سال می باشد. t = زمان پروژه در قالب ماه یا سال B = فاکتور تخصص های ویژه P = Productivity فاکتور Artificial Intelligent Systems Laboratory

28 تخمین در پروژه های شیء گرا
از تجزیه کار، تحلیل FP یا دیگر روش های عمومی استفاده کنید. مدل مورد کاربرد (Use case) سیستم را تهیه کرده و تعداد موارد کاربرد را بشمارید. کلاس های آنالیز یا کلیدی را تعیین کرده و تعداد آنها را بشمارید. انواع واسط های کاربر برای نرم افزار را تعیین کرده و برای هر کلاس پشتیبان ضریبی تعیین کنید : Interface type Multiplier No GUI Text-based user interface GUI Complex GUI Artificial Intelligent Systems Laboratory

29 تخمین در پروژه های شیء گرا
تعداد کلاس های کلیدی را در ضریب به دست آمده از مرحله قبل ضرب کنید تا تعداد کلاس های پشتیبان به دست آید. تعداد کل کلاس ها را در میانگین واحدهای کاری برای هر کلاس ضرب کنید. (این مقدار 15 الی 20 نفر روز برای هر کلاس پیشنهاد شده است) Artificial Intelligent Systems Laboratory


Download ppt "تخمین در پروژه های نرم افزاری"

Similar presentations


Ads by Google