چکیده
– مدل COCOMO مستندترین و شفافترین مدل برآورد هزینه نرمافزار است. این مدل یک مدل تجربی است که از جمعآوری داده-

های پروژههای نرم افزاری مختلف بدست آمده است و از فاز طراحی تا فاز ترکیب، هزینه و جدول زمانی پروژه را مورد بررسی قرار میدهد، اما فرضیات ارائه شده در فازهای اولیه با زمان متغیر خواهد بود و برآوردهای متغیرمی توانند باعث افزایش یا کاهش بودجه پیشنهادی پروژه شوند. در این مقاله به بررسی مدل تقویتشده COCOMO، به عنوان یک متدولوژی پیشنهادی تخمین تلاش و هزینه پرداخته شده است. در ابتدا

درباره انواع روشهای تخمین تلاش نرمافزار صحبت شده است و در نهایت براساس ارزیابیهای صورت گرفته و نتایج حاصل، مدل بهینه COCOMO با استفاده از تکنیک هیبرید مدلهای قبلی برآورد توسعه نرم افزار، ارایه شده است.

کلیدواژه- برآورد تلاش نرم افزار، تکنیک هیبرید، مدل برآورد هزینه، مدل COCOMO

-۱ مقدمه

امروزه ساخت سیستمهای نرم افزاری کاری دشوار و پرهزینه است. علم مهندسی نرم افزار راههایی را برای اندازهگیری کمی یک پروژه ارائه میکند. یکی از مراحل مهم و تاثیرگذار در فرآیند مهندسی نرم افزار که نقش مهمی در موفقیت یا شکست پروژه دارد، تخمین در فرآیند نرم افزار است که شامل هزینه، تلاش و زمان می باشد. گزارشهای پروژه های انجام شده نشان میدهد که تقریبا هیچ کنترلی روی پروژه های نرم افزاری وجود ندارد[۱] و غالبا میزان کارانجام شده برای توسعه یک پروژه نرم افزاری بیشتر از مقدار برآورد شده است. بنابراین معمولا پروژهها دیرتر از زمان برنامهریزی شده به پایان می-رسند پس شکی نیست برآورد مقدار زمان و هزینه و تلاش برای انجام پروژه و عوامل تاثیرگذار بر آنها، مسئله ای بسیار جدی است. تخمین هزینه توسعه نرم افزار، عامل مهمی در توسعه پروژه است که شامل تکنیک ها و روش های مختلفی می باشد[۲] معمول ترین فاکتور در فرآیند توسعه، نیازهای مشتری است. اگر مدیر نرم افزار قادر به رفع نیازهای مشتریان نباشد نمی تواند یک نرم افزار با کیفیت بالا را توسعه دهد. نرم افزار با کیفیت بالا، به نرم افزاری اطلاق می شود که قادر به

رفع نیازهای مشتری باشد. رضایتمندی مشتری براساس کیفیت، هزینه و طراحی نرم افزار سیستم بدست میآید.[۳] به طور خلاصه، فرآیند توسعه نرم افزار شامل تغییر نیازهای مشتری است.[۴] بدست آوردن اندازه پروژه اولین قدم در انجام برآورد نرم افزاراست .[۵] برآورد اندازه به عنوان ورودی اولیه، در بسیاری از ابزارهای برآورد هزینه از قبیل COCOMOاست. این مدل به برآورد صحیح اندازه پروژه و هزینه کمک می کند. مدل اولیه COCOMO در سال ۱۹۸۱ منتشر گردید. [۵] بعدها مدل مـذکور بهبـود پیدا کرد و مـدل COCOMO II کـه باعـث تحـولات زیادی در مهندسی نرم افزار شد، ارائه گردید. در ادامه این مقاله، در بخش ۲ مروری بر ادبیات موضوع و در بخش ۳ متدلوژی بررسی شده بهینه وپس از آن جمع بندی ونتیجه گیری را خواهیم داشت.
-۲ ادبیات موضوع

به منظور جلوگیری از افـزایش برآورد هزینـه هـا و زمـان یک پروژه نرم افـزاری، مـدل های برآورد هزینه متعـددی بـه وجـود آمـده است. به دلیل وجود تحولات بسیار در تولید نرم افـزار، ایجاد مدلی که برآوردهـای دقیـق از پـروژه را در

زذتل خغ۱سکطغکطکسغپه

شحل شAلع ,لاهلاکغهعطکل y,هق ذصستص

اختیـار استفاده کننده قرار دهد، بسیار مشکل است. لذا یکـی از مهمترین اهداف صـنعت نـرم افـزار ایجـاد مـدل هـای مفیدی است که منطبق بر چرخه عمر تولید نـرم افـزار باشد و هزینه تولید یک محصول نرم افزاری را به دقت برآورد کند. سه عامل در تعیین کل هزینه یک پروژه نقش دارد :هزینه نرم افزار و سخت افزار به علاوه هزینه نگهداری؛ هزینه ایاب و ذهاب و آموزش؛ هزینه نیـروی انـسانی .[۵] برای اغلب پروژه ها عمده ترین هزینـه، هزینـه نیـروی انسانی است. رایانه های پرقدرت مناسب برنامه نویسی نرم افزارها نسبتا ارزان هستند. اگرچه ممکن اسـت بـه واسطه اینکه مراحل تولید نرم افـزار در ایـستگاه هـای کاری متعدد انجام می شود،هزینه ایاب و ذهاب زیادی نیاز باشد اما این هزینه ها به نسبت هزینه نیروی انسانی بسیار ناچیز است. به عـلاوه بکـارگیری سیـستم هـای مخابره الکترونیکی از قبیل ایمیل، وب سایت و ویـدئو کنفرانس می تواند این هزینه را کاهش میدهد.

بررسـی مطالعـات و تحقیقـات انجـام شـده در زمینـه برآورد هزینه طـی سـالهای ۱۹۸۹ تـا۲ ۰۰۴ نشان میدهد که رایـج تـرین موضـوع ایـن تحقیقـات معرفی وارزیابی مدل هـای بـرآورد بـوده اسـت. ایـن بررسیها نشان می دهد که اکثر مقالات به بررسـی مـدل های برآورد از نقطه نظر فنی پرداخته انـد همچنین همانطور که در جدول ۱ مشاهده می شود مقالات ارائه شده غالبا به مطالعه رویکردهای برآورد مبتنـی بـر رگرسـیون پرداختـه انـد. باید به این نکته توجـه کـرد کـه بیشتر مدل های پـارامتری رایـج، مثـل COCOMO، جزو این گروه قرار می گیرند .[۶]

جدول :۱ سیر تحقیقات حول موضوع روشهای برآورد هزینه نرم افزار[۶]

موضوع تحقیق -۱۹۸۹ ۱۹۹۰-۱۹۹۹ ۲۰۰-۲۰۰۴ جمع
رگرسیون ۲۱(%۵۱) ۷۶(%۴۷) ۵۱(%۵۱) ۱۴۸(%)
برآوردبر اساس ۱(%۲) ۱۵(%۹) ۱۵(%۱۵) ۳۱(%)
مقایسه
قضاوت تجربی ۷(%۷) ۱۳(%۸) ۲۱(%۴) ۱۵(%)
تجزیه کار ۳(%۷) ۵(%۳) ۴(%۴) ۱۲(%)
نقطه کارکرد ۷(%۱۷) ۴۷(%۲۹) ۱۴(%۱۴) ۶۸(%)
طبقه بندی و ۰(%۰) ۵(%۷) ۹(%۱۱) ۱۴(%)
رگرسیون
شبیه سازی ۲(%۵) ۴(%۲) ۴(%۴) ۱۰(%)
شبکههای ۰(%۰) ۱۱(%۷) ۱۱(%۱۱) ۲۲(%)
عصبی
تئوری ۲۰(%۴۹) ۱۴(%۹) ۵(%۵) ۳۹(%)
روش بیز ۰(%۰) ۱(%۱) ۶(%۶) ۷(%)

ترکیب روش- ۰(%۰) ۳(%۲) ۲(%۲) ۵(%)
های مختلف
سایر ۲(%۵) ۷(%۴) ۱۶(%۱۶) ۲۵(%)

-۱-۲ روش های های برآورد هزینه

سـازمانهـا بـه بـرآورد هزینـه و نیـروی انـسانی نیازمندند . برای این منظور تکنیک های مختلفی به کار گرفته شده است

. [۷]

هر تکنیک برآورد نقاط قوت و ضـعف خـودش را دارد. هر کدام از آنها نیاز به اطلاعات مختلفی در مورد پـروژه دارند لذا اگر اطلاعـات مـورد نیـاز مـدل، دقیـق نباشـد برآورد حاصل درست نخواهد بود. هیچ مدلی نتوانـسته است بطور مداوم و در همه شرایط برآوردهـای دقیقـی ارائه دهد. این بدان علت است که برخـی از اطلاعـات مهم پروژه در مراحل اولیه کـار بـسیار مـبهم و نـاقص هستند.