برآورد هزینه پروژه‌های نرم‌افزاری (Software Cost Estimation)
------------------------------------------------------------

منظور ازSCE ، برآورد هزینه و زمان موردنیاز برای توسعه نرم‌افزار پیش از شروع پروژه می‌باشد که تا پایان تولید و توسعه سیستم ادامه دارد. SCE برای تولید سیستم اطلاعاتی، یکی از دغدغه‌های مهم مدیریت پروژه، تلقی می‌شود. الگوهای SCE که در مراحل اولیه ساخت پروژه، با حداقل اطلاعات موجود از پروژه، هزینه ساخت سیستم را تخمین می‌زنند، سودمند و موردنیاز هستند. روش تخمین هزینه مناسب، امکان کنترل مؤثر زمان و هزینه ساخت سیستم را فراهم می‌نماید. یک پروژه نرم‌افزاری به تدریج تکامل می یابد و به این تر تیب نمی توان یک برآورد قطعی و روشن برای نرم‌افزارها داشت. در حال حاضر نرم‌افزارها و مدل‌های برآوردی وجود دارند که به جای یک برآورد نقطه‌ای برآورد حدودی انجام می دهند و به این ترتیب با متدهای جدید تولید نرم‌افزار هم‌سو می‌شود. ولی برآورد پروژه نرم‌افزاری را می‌توان به یک سری مراحل سیستماتیک تبدیل کرد که برآوردهایی با ریسک قابل قبول فراهم کند .
روش‌های الگوریتمی مطرح شده برای SCE از مدل‌های ریاضی برای تخمین هزینه پروژه استفاده می‌کنند. هر مدل الگوریتمی به صورت تابعی از فاکتورهای هزینه تعریف می‌شود. روش‌های الگوریتمی موجود در دو جنبه با یکدیگر متفاوت هستند:

1. انتخاب فاکتورهای هزینه
2. تعریف تابع برای محاسبه هزینه.

مشهورترین و مستندترین مدل الگوریتمی مدل کوکومو می‌باشد که توسط آقای بوهم در سال 1981 مطرح شد. مدل کوکومو برای SCE و زمان مورد نیاز برای توسعه سیستم‌ها استفاده می‌شود.

مدل کوکومو
----------

کوکومو مستندترین و شفاف‌ترین مدل برای SCE می‌باشد. در مدل کوکومو بر روی پانزده Cost Driver برای عملکرد بهتر تأکید شده‌است. کوکومو برای اندازه‌گیری کار و زمان یعنی ارتباط میان اندازه ، Cost Driver‌ها و کار همینطور میان کار و زمان از یکسری فرمول استفاده می‌کند که از داده‌های تاریخی پروژههای تکمیل شده بدست آمده اند، سپس اثر Cost Driver‌ها روی کار بدست می‌آید. بایگانی‌شده در ۲۰۱۵-۱۰-۰۶ توسط Wayback Machine[3].
در کوکومو میانی برآورد هزینه پروژه‌های نرم‌افزاری با فرمول (1) محاسبه می‌شود.

فرمول(1): PM=a\*(size)^b\* ∏ EM

در فرمول (1)، پارامترهای a و b ثابت می‌باشند و مقدار آن به داده‌های موجود درمجموعه‌داده بستگی‌دارد. پارامتر size اندازه پروژه در هزاران خطوط کد (KSLOC) است. پارامتر EM Effort Multipliers)) ضریبی است که باعث افزایش یا کاهش نرخ تلاش در فرد / ماه است. در کوکومو میانی پارامترهای a و b و c با توجه به جدول(1) مقدار دهی اولیه می‌شوند[3].
جدول(1):مقادیر پارامترهای ثابت در مدل کوکوموی میانی

| c | b | a | Class of Projects |
| --- | --- | --- | --- |
| 2.5 | 1.05 | 2.4 | Organic |
| 2.5 | 1.12 | 3.0 | Semidetached |
| 2.5 | 1.20 | 3.6 | Embedded |

کلاس Organic شامل پروژه‌های کوچک نسبی که توسط تیم‌های باتجربه بالا انجام‌می‌شود. معمولاً درصورتی که اندازه پروژه 100 KSLOC، آن‌ها در کلاس Organic قرار می‌گیرند. کلاس Semidetached شامل پروژه‌های متوسط که پیچیده یا ساده نیستند و اندازه پروژه در بازه 100 تا 300 KSLOC است. کلاس‌های Embedded شامل پروژه‌ها با اندازه بیش‌از 300 KSLOC است. این کلاس زمانی استفاده می‌شود که سخت افزار و عملیات از قبل تعریف شده باشد و نیاز به هیچ‌گونه تغییرات نیست.

منابع
-----

1. ↑  Gwang-Hee Kim, Sung-Hoon An , Kyung-In Kang, Comparison Of Construction Cost Estimating Models Based On Regression Analysis, Neural Networks, And Case-Based Reasoning, Building and Environment ,Volume 39, Pages 1235–1242, October 2004
2. ↑  B.W. Boehm, Software Engineering Economics, Prentice-Hall, Englewood Cliffs, New Jersy, 1981
3. ↑   Farhad Soleimanian Gharehchopogh, Zahra Asheghi Dizaji," A New Approach in Software Cost Estimation with Hybrid of Bee Colony and Chaos Optimizations Algorithms", MAGNT Research Report, Vol. 2(6), PP. 1263-1271, 2014