1 / 29

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

تخمین در پروژه های نرم افزاری. درس مهندسي نرم‌افزار 2 فصل 23 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان. طرح ریزی پروژه نرم افزاری . هدف کلی طرح ریزی پروژه، بنانهادن یک راهبرد کاربردی برای کنترل، ردگیری، و پایش یک پروژه فنی پیچیده می باشد. برای چه این کار را انجام می دهیم ؟

didina
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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. محیط نرم افزار • محیط یک سیستم بر مبنای کامپیوتر بر اساس سخت افزار و نرم افزار می باشد. و باید در رابطه با Resource به آن توجه شود. Artificial Intelligent Systems Laboratory

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

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

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

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

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

  11. منابع Artificial Intelligent Systems Laboratory

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

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

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

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

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

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

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

  19. مثالی از رویکرد 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. مثالی از رویکرد FP The estimated number of FP is derived: FPestimated = count-total 3 [0.65 + 0.01 3S (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

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

  26. روش 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 2.0 • Text-based user interface 2.25 • GUI 2.5 • Complex GUI 3.0 Artificial Intelligent Systems Laboratory

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

More Related