در نخستین روزهای کار با کامپیوتر ، تعداد کامپیوتر ها کم و برنامه های کاربردی اغلب پروژه های کوچک و یک نفره بود . از طرفی هزینه های نرم افزاری درصد کوچکی از کل هزینه سیستم کامپیوتری را تشکیل می داد و قدری خطا در تخمین هزینه های نرم افزاری ، تاثیر اندکی برجای می گذاشت . به تدریج تعداد ، اندازه و اهمیت برنامه های کاربردی و از طرف دیگر هزینه های ایجاد نرم افزارشروع به رشد نمود ، به گونه ای که امروزه نرم افزار گران ترین عنصر هر سیستم کامپیوتری به شمار می آید و افزایش بیش از حد هزینه ها برای سازنده نرم افزار مصیبت بار خواهد بود . در نتیجه این رشد ، تاثیر خطاها در تخمین هزینه نرم افزار بیشتر و بدتر شد . در نتیجه امروزه تخمین هزینه پروژه های نرم افزاری اهمیت زیادی پیداکرده است, در این مقاله بعداز تعریف تخمین هزینه و انواع تخمین به تعریف ومقایسه سه روش از روشهای تخمین هزینه های نرم افزاری یعنی روش امتیاز کارکردی (FUNCTION POINT =FP) ,روش COCOMO و روش FPROM می پردازیم .
تعریف تخمین هزینه :
تهیه یک تقریب با برآوری از هزینه های مورد نیاز برای انجام یک پروژه را تخمین هزینه گویند . مهمترین خروجی این فعالیت را تخمین هزینه جزئیات آنها و طراح مدیریت هزینه تشکیل می روند .
انواع تخمین :
1 تخمین ساخت یافته : (structured estimating )
تخمین احتمالاً ابتدای ترین روش « اندازه گیری » می باشد . مردم همیشه از تجربه گذشته خود برای پیش بینی حوادث آینده استفاده می کنند . هرچند طبیعی است . تخمین های ساده جهت برنامه ریزی و کنترل موثر نمی توانند قابل اطمینان باشند . دقت تخمین به تجربه تخمین زننده در زمینه ای که او در حال تخمین است بستگی دارد . روش های تخمین ساخت یافته ، تلاشی برای استفاده از این واقعیت و در عین حال وارد نمودن ساختارو انضباط برفرآیند تخمین می باشد به نحوی که نتایج حاصله از آن را بتوان با اطمینان استفاده نمود . مزایای تخمین به قرار زیر می باشد .
1 روشی ارزان است و بنابراین تنها روشی است که برای مشاغل یک بار تکرار مناسب می باشد .
2 این روش می تواند برای پیش بینی زمان های کاری که دیده نشده است و بنابراین به عنوان مبنایی برای تخمین قیمت برای کارهای یک بار تکرار بزرگ استفاده شود .
به طورطبیعی در مواردی که مقادیرزمانی با جزئیات زیاد مورد نیاز نمی باشند . تخمین قابل استفاده می باشد . بنابراین چنین روش هایی برای کار با سیکل طولانی و در موقعیت هایی که داده زمانی انباشته برای برنامه ریزی ، کنترل یا پرداخت در طول پریودهای طولانی مدت مورد نیاز است . مفید می باشد .
2 تخمین تحلیلی ( Analytical estmating )
تخمین تحلیلی ، مجموعه تخمین ترتیب داده استاندارد می باشد . این تکنیک براین واقعیت استوار است که مشاغل را می توان به جزء متشکله آن تقسیم نمود و عناصر به طور مجزاقابل اندازه گیری یا تخمین می باشند خطای این زمان های منفصله تصادفی بوده و همدیگر را جبران می کنند به نحوی که زمان کل در محیط قابل قبول قرار خواهد گرفت . به طور مشابه هنگامی که تعدادی کار در طول یک زمان بزرگترترتیب می شوند ( مانند میزان کار یک هفته ) خطاهای منفصله در زمان های مشاغل ، تصادفی خواهد بود و همدیگر را جبران خواهند کرد به نحوی که زمان کل قابل قبول می باشد .
بدیهی است تخمین توسط کارگری که درمحدوده کار مورد اندازه گیری با تجربه می باشد و در زمینه روش های کار آموزش دیده است صورت می پذیرد بنابراین تخمین زننده به صورت زیر عمل می کند .
1 کار را به عناصر تقسیم می کند .
2 داده استاندارد یا ترکیبی ( Symetic )را به کار می گیرد .
3 عناصری که ارزش تلاش و صرف وقت دارند را مورد اندازه گیری قرار می دهد .
4 مابقی عناصر را با استفاده از تجربه خود و اطلاعات مربوط به شرایط کاری عوامل ایمنی و مانند آن تخمین می زند .
ممکن است زمان های عناصری که تخمین زده شده اند برای استفاده بعدی به صورت داده استاندارد نگهداری شوند البته دراین حالت لازم است در فواصل مشخصی آنها را از نظر قابل قبول بودن مورد بررسی قرار داد .