COCOMO مدلی جهت برآورد هزینه تولید نرم افزار
پیشنهاد COCOMO (مدل برآورد هزینه سازنده) در سال 1981. COCOMO یکی از پرکاربردترین مدل های تخمین نرم افزار در جهان است. COCOMO تلاش ها و برنامه زمان بندی یک محصول نرم افزاری را بر اساس اندازه نرم افزار پیش بینی می کند.
مراحل لازم در این مدل عبارتند از:
- از ارزیابی هزاران کد تحویل شده کد منبع (KDLOC) ، برآورد اولیه تلاش توسعه را بدست آورید
- مجموعه ای از 15 عامل ضرب را از ویژگیهای مختلف پروژه تعیین کنید.
- برآورد تلاش را با ضرب برآورد اولیه با تمام فاکتورهای ضرب محاسبه کنید ، یعنی مقادیر را در مرحله 1 و مرحله 2 ضرب کنید.
برآورد اولیه (همچنین برآورد اسمی نیز نامیده می شود) با معادله فرم استفاده شده در مدلهای متغیر استاتیک منفرد ، با استفاده از KDLOC به عنوان اندازه گیری اندازه تعیین می شود. برای تعیین تلاش اولیه EI در هر ماه ، معادله مورد استفاده از نوعی است که در زیر نشان داده شده است
Ei=a*(KDLOC)b
مقدار ثابت a و b به نوع پروژه بستگی دارد.
در COCOMO ، پروژه ها به سه نوع طبقه بندی می شوند:
- ارگانیک آلی
- نیمه متصل
- جاسازی شده
1-ارگانیک الی: یک پروژه توسعه را می توان از نوع آلی درمان کرد ، اگر این پروژه با توسعه یک برنامه کاربردی کاملاً شناخته شده سروکار داشته باشد ، اندازه تیم توسعه نسبتاً کوچک است و اعضای تیم در توسعه روش های مشابه پروژه ها تجربه دارند . نمونه هایی از این نوع پروژه ها سیستم های تجاری ساده ، سیستم های مدیریت موجودی ساده و سیستم های پردازش داده است.
2-نیمه متصل: اگر توسعه شامل ترکیبی از کارکنان باتجربه و بی تجربه باشد ، یک پروژه توسعه با نوع نیمه جداگانه قابل درمان است. اعضای تیم ممکن است در سیستم های مرتبط تجربه محدودی داشته باشند اما ممکن است با برخی از جنبه های نظم در حال توسعه آشنا نباشند. نمونه سیستم نیمه متصل شامل توسعه سیستم عامل جدید (سیستم عامل) ، سیستم مدیریت پایگاه داده (DBMS) و سیستم مدیریت پیچیده موجودی است.
3- جاسازی شده:اگر یک نرم افزار در حال توسعه به سختی با سخت افزار پیچیده همراه شده باشد ، یا اگر مقررات دقیق در مورد روش عملیاتی وجود داشته باشد ، یک پروژه توسعه از نوع جاسازی شده تلقی می شود. به عنوان مثال: خودپرداز ، کنترل ترافیک هوایی.
برای سه دسته محصول ، (بوهم)Bohem مجموعه ای متفاوت از بیان را برای پیش بینی تلاش (در واحد ماه ماه) و زمان توسعه از اندازه برآورد در KLOC (کیلو خط کد) ارائه می دهد ، تخمین تلاش برای کاهش بهره وری ناشی از تعطیلات ، تعطیلات هفتگی ، استراحت های قهوه و غیره
طبق گفته بوهم ، برآورد هزینه نرم افزار باید از طریق سه مرحله انجام شود:
1- مدل پایه
2 - مدل میانی
مدل تفصیلی-3
1. مدل اولیه :COCOMO
مدل اولیه COCOMO اندازه دقیق پارامترهای پروژه را ارائه می دهد.عبارات زیر مدل اولیه تخمین COCOMO را ارائه می دهند:
Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months
جایی که
KLOC اندازه تخمینی محصول نرم افزاری است که در Kilo Lines of Code نشان داده شده است ،
a1 ، a2 ، b1 ، b2 ثابت هر گروه از محصولات نرم افزاری است ،
Tdev زمان تخمینی برای تولید نرم افزار است که در ماه بیان شده است ،
تلاش کل تلاش لازم برای تولید محصول نرم افزاری است که به تفکیک ماه (PM) بیان می شود.
برآورد تلاش توسعه
برای سه کلاس محصولات نرم افزاری ، فرمول های تخمین تلاش بر اساس اندازه کد در زیر نشان داده شده است:
اورگانیک: تلاش=2.4(KLOC) 1.05 PM
نیمه جدا: تلاش=3.0(KLOC) 1.12 PM
جدا: تلاش= 3.6(KLOC) 1.20 PM
برآورد زمان توسعه
برای سه کلاس محصولات نرم افزاری ، فرمول های تخمین زمان توسعه بر اساس تلاش در زیر آورده شده است:
اورگانیک: Tdev = 2.5(Effort) 0.38 Months
نیمه جدا: Tdev = 2.5(Effort) 0.35 Months
جدا شده: Tdev = 2.5(Effort) 0.32 Months
با ترسیم مشخصات برآورد شده برای اندازه های مختلف نرم افزار ، می توان بینشی در مورد مدل اصلی COCOMO بدست آورد. شکل نمودار تلاش تخمین زده شده در برابر اندازه محصول را نشان می دهد. از انجیر ، می توان مشاهده کرد که تلاش در اندازه محصول نرم افزاری تا حدی فوق خط است. بنابراین ، تلاش لازم برای تولید یک محصول با اندازه پروژه بسیار سریع افزایش می یابد.
زمان تولید در مقابل اندازه محصول در KLOC در شکل رسم شده است. از انجیر می توان مشاهده کرد که زمان تولید یک تابع زیر خطی از اندازه محصول است ، یعنی وقتی اندازه محصول دو برابر افزایش می یابد ، زمان تولید محصول دو برابر نمی شود بلکه به طور متوسط افزایش می یابد. این را می توان با این واقعیت توضیح داد که برای محصولات بزرگتر ، تعداد بیشتری از فعالیتهایی که می توانند همزمان انجام شوند قابل شناسایی است. فعالیتهای موازی را می توان همزمان توسط مهندسان انجام داد. این امر زمان اتمام پروژه را کاهش می دهد. بعلاوه ، از انجیر می توان مشاهده کرد که زمان تولید تقریباً برای هر سه دسته محصولات یکسان است. به عنوان مثال ، یک برنامه 60 KLOC می تواند تقریباً در مدت 18 ماه ساخته شود ، صرف نظر از اینکه از نوع ارگانیک ، نیمه جدا شده یا تعبیه شده باشد.
از برآورد تلاش می توان هزینه پروژه را با ضرب تلاش مورد نیاز در هزینه نیروی انسانی در ماه بدست آورد. اما ، در این محاسبه هزینه پروژه ضمنی این فرض است که کل هزینه پروژه صرفاً به دلیل هزینه نیروی انسانی انجام می شود. علاوه بر هزینه های نیروی انسانی ، یک پروژه به دلیل سخت افزار و نرم افزار مورد نیاز پروژه و هزینه های اضافی شرکت برای اداره ، فضای اداری و غیره هزینه های دیگری را متحمل خواهد شد.
توجه به این نکته مهم است که تلاش و برآورد مدت زمان بدست آمده با استفاده از مدل COCOMO را برآورد تلاش اسمی و برآورد مدت زمان اسمی می نامند. اصطلاح اسمی به این معنی است که اگر کسی سعی کند پروژه را در زمانی کوتاه تر از مدت زمان تخمین زده شده به اتمام برساند ، هزینه به شدت افزایش می یابد. اما ، اگر کسی پروژه را در مدت زمان طولانی تری از زمان پیش بینی شده به اتمام برساند ، تقریباً هیچ کاهش در ارزش هزینه برآورد شده وجود ندارد.
مثال 1:
فرض کنید یک پروژه 400 KLOC برآورد شده باشد. تلاش و زمان توسعه را برای هر یک از این سه مدل یعنی ارگانیک ، نیمه جدا شده و جاسازی شده محاسبه کنید.
راه حل:
معادله اصلی COCOMO به شکل زیر است:
Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months
= 400 KLOC اندازه تخمینی پروژه
حالت ارگانیک:
E = 2.4 * (400)1.05 = 1295.31 PM
D = 2.5 * (1295.31)0.38=38.07 PM
حالت نیمه جدا:
E = 3.0 * (400)1.12=2462.79 PM
D = 2.5 * (2462.79)0.35=38.45 PM
حالت تعبیه شده:
E = 3.6 * (400)1.20 = 4772.81 PM
D = 2.5 * (4772.8)0.32 = 38 PM
مثال 2:
اندازه پروژه 200 KLOC در حال توسعه است. تیم توسعه دهنده نرم افزار تجربه متوسطی در پروژه های مشابه دارند. برنامه زمان بندی پروژه خیلی فشرده نیست. تلاش ، زمان توسعه ، متوسط کارکنان و بهره وری پروژه را محاسبه کنید.
راه حل:
حالت نیمه جدا شده با در نظر گرفتن اندازه ، برنامه و تجربه زمان توسعه ، مناسب ترین حالت است.
E=3.0(200)1.12=1133.12PM
D=2.5(1133.12)0.35=29.3PM
P = 176 LOC/PM
- مدل متوسط: مدل اصلی Cocomo در نظر می گیرد که تلاش فقط تابعی از تعداد خطوط کد و برخی ثابت ها است که با توجه به سیستم های مختلف نرم افزاری محاسبه می شود. مدل متوسط COCOMO این واقعیت ها را تشخیص داده و تخمین های اولیه بدست آمده از طریق مدل اولیه COCOMO را با استفاده از مجموعه ای از 15 محرک هزینه بر اساس ویژگی های مختلف مهندسی نرم افزار ، اصلاح می کند.
طبقه بندی رانندگان هزینه و ویژگی های آنها:
-ویژگی های محصول
- میزان اطمینان نرم افزار مورد نیاز
- اندازه پایگاه داده برنامه
- پیچیدگی محصول
-ویژگی های سخت افزار
- محدودیت های عملکرد زمان اجرا
- محدودیت های حافظه
- نوسانات محیط ماشین مجازی
- زمان گردش مورد نیاز
-ویژگی های پرسنل
- قابلیت تحلیلگر
- قابلیت مهندسی نرم افزار
- تجربه برنامه ها
- تجربه ماشین مجازی
- تجربه زبان برنامه نویسی
-ویژگی های پروژه
- استفاده از ابزارهای نرم افزاری
- کاربرد روشهای مهندسی نرم افزار
- برنامه توسعه مورد نیاز
محرک های هزینه به چهار دسته تقسیم می شوند:
معادله COCOMO متوسط:
E=ai (KLOC) bi*EAF
D=ci (E)di
ضرایب COCOMO میانی
تفصیلی COCOMO شامل تمام کیفیت های نسخه استاندارد با ارزیابی تأثیر محرک هزینه بر روی هر یک از روش های فرآیند مهندسی نرم افزار است. در مدل تفصیلی از ضریب های مختلف تلاش برای هر ویژگی درایور هزینه استفاده می شود. در cocomo مفصل ، کل نرم افزار به چندین ماژول متمایز می شود ، و سپس ما COCOMO را در ماژول های مختلف برای برآورد تلاش و سپس جمع بندی تلاش ها اعمال می کنیم.
شش مرحله از جزئیات COCOMO عبارتند از:
- برنامه ریزی و الزامات
- ساختار سیستم
- ساختار کامل
- کد ماژول و آزمون
- ادغام و آزمون
- مدل سازنده هزینه
تلاش به عنوان تابعی از برآورد برنامه تعیین می شود و مجموعه ای از محرک های هزینه با توجه به هر مرحله از چرخه حیات نرم افزار ارائه می شود.
توضیحات خود را بنویسید