سه شنبه, ۱۷ مهر, ۱۴۰۳ / 8 October, 2024
مجله ویستا

اندازه‌گیری نرم‌افزار با استفاده از استاندارد ‌‌ COSMIC FFP ۲۰۰۳


اندازه‌گیری نرم‌افزار با استفاده از استاندارد ‌‌ COSMIC FFP ۲۰۰۳
یكی از مهم‌ترین مسائلی كه مدیران پروژه‌های نرم‌افزاری به آن توجه دارند استفاده از ابزارها ، تكنیك‌ها و روش‌های مختلف برای برآورد و كنترل‌‌ ‌راندمان كاری است. این عامل می‌تواند برای برآورد نیروی انسانی، مدت زمان مورد نیاز پروژه‌ها و برنامه‌ریزی بسیار سودمند باشد. دانستن اندازه نرم‌افزار قبل از تولید آن می‌تواند‌ ما را در این برآوردها یاری رساند.
▪ روش‌های مختلفی برای به دست آوردن اندازه نرم‌افزار وجود دارد از جمله:
ـ شمارش خطوط برنامه LOC) ،‌COCOMO)
ـ ‌MKII.
ولی تمام این روش‌ها دارای نقاط ضعف فراوانی هستند كه از آن میان می‌توان به عدم سازگاری با انواع مختلف نرم‌افزار و سختی محاسبه، اشاره كرد. (كه همگی آن‌ها به تفصیل در مقاله <اندازه‌گیری نرم افزار، چرا و چگونه> در شماره ۶۰‌ ماهنامه شبكه موردبررسی قرارگرفته‌اند.) از این رو بسیاری از متخصصان و استادان نرم‌افزار تلا‌ش‌كرده‌اند روش آسان و استانداردی را برای اندازه گیری نرم‌‌افزارهای امروزی پیدا كنند. ‌‌COSMIC-FFP روش استانداردی است برای اندازه‌گیری انواع مختلف نرم‌افزار با دقت عمل بالا و توانایی محاسبه از مراحل اولیه تولید تا نصب. این مقاله سعی دارد با طرح مثال‌های ساده، این استاندارد را بررسی كند.‌
● برآورد نیروی كار موردنیاز و هزینه نرم افزار
یكی از اولین سوالاتی كه در شروع هر پروژه نرم‌افزاری مطرح می‌شود، هزینه تولید نرم‌افزار و اندازه آن است. برای محاسبه هزینه نرم‌افزار باید اندازه نرم‌افزار را پیدا كنیم. روش‌های مختلفی برای اندازه‌گیری اندازه نرم‌افزار وجود دارد؛ مثل اندازه خطوط برنامه. ولی ازآن جایی كه برنامه‌نویسان مختلف روش‌های متفاوتی در نوشتن كد دارند و دو برنامه با اندازه مختلف می‌تواند كارایی مشابهی داشته باشند، این روش استاندارد نیست. روش دیگری كه می‌توان از آن استفاده كرد، مشخص‌كردن كارایی و عملیات نرم‌افزار است. بدین ترتیب كه هر نرم‌افزار را با توجه به كارایی و پیچیدگی فنی آن اندازه‌گیری كنیم.
یكی از روش‌های معمول برای به دست آوردن این مقدار، استفاده از فرمول ‌‌Albrecht است كه با توجه به تعداد عملیات، كارایی و پیچیدگی فنی سیستم مقدار ‌Function Point) FP) را مشخص می كند. مثلا اگر برای یك نرم‌افزاری مقدار ۶۸ به دست آید و فرض كنیم نوشتن هر ‌FP برای هر برنامه نویس به طور متوسط دو روز وقت می‌گیرد، تهیه این نرم افزار ۱۳۶ روز طول خواهد كشید. در بسیاری از كشورهای جهان ازجمله كشور انگلستان، بیشتر قراردادهای نرم‌افزاری بر اساس‌‌ ‌FP بسته می‌شود و هزینه نرم‌افزار را با توجه به مقدار ‌FP برآورد می كنند. در این‌جا سعی شده است روش بهتری برای اندازه گیری نرم‌افزار بررسی شود. این روش‌ كه ‌COSMIC-FFP نام دارد، استاندارد جدید كشورهای اروپایی و امریكایی است.
● نگاهی به استاندارد ‌‌COSMIC-FFP
گروه Common Software International Consortium) ‌‌COSMIC) در سال ۱۹۹۸ با هدف توسعه روش‌های اندازه‌گیری نرم‌افزار تشكیل شد. هدف عمده این گروه، ارائه روشی آسان برای تخمین اندازه و هزینه نرم‌افزار با‌توجه به نیازها و درخواست‌های كاربران است.
استاندارد ارائه‌شده این گروه برای اندازه‌گیری نرم‌افزار، ‌‌COSMIC-FFP است كه می‌توان با آن بسیاری از نرم‌افزارهای مالی (حسابداری، بانكداری و...)، نرم‌افزارهای‌ بلادرنگ (مثل نرم‌افزارهای مخابراتی) و نرم‌افزارهای چند‌منظوره را اندازه‌گیری نمود. با استفاده از این استاندارد امكان اندازه‌گیری نرم‌افزارهای گوناگون وجود ‌دارد. ولی نمی‌توان‌ نرم‌افزارهای بسیار پیچیده فنی را اندازه‌گیری كرد. یكی از نقاط قوت این استاندارد این است كه با استفاده از آن می‌توان اندازه تمامی اجزای نرم‌افزار را همان‌طور كه كاربر می‌بیند، محاسبه كرد.
‌روش ‌‌COSMIC-FFP از دو مرحله تشكیل شده‌است كه شامل تعدادی رویه و اصول می‌باشد و می‌توان با آن اندازه نرم‌افزار را محاسبه نمود. در مرحله اول نیازهای كاربران ‌‌(System Specification) به مدل نرم افزاری ‌COSMIC-FFP تبدیل می‌شود و در مرحله دوم، اجزای این مدل، اندازه‌گیری می‌شوند.
قبل از محاسبه اندازه این اجزا، نرم‌افزار باید به فرم كلی ‌‌‌COSMIC در بیاید. فرم كلی ‌‌COSMIC لایه‌های نرم‌افزاری را مشخص می‌نماید وبهمحاسبه‌كننده كمك می‌كند با استفاده از این لایه‌ها، نیازهای استفاده‌كننده را طبقه‌بندی نماید. ‌پس از این مرحله، می‌توان این نیازها را به چند رویه‌كاری و چند مدل انتقال اطلاعات (‌خواندن‌، نوشتن‌، ورودی و خروجی‌) تقسیم‌نمود. بعد از این كار، قانون‌های اندازه‌گیری برروی این مدل‌ها اعمال می‌شود و مقدار عددی اندازه نرم‌افزار مشخص می‌شود. این مقدار عددی برحسب ‌‌Cfsu محاسبه می گردد.‌ ناگفته نماند كه ‌واحد اندازه‌گیری در این استاندارد، ‌یك Cosmic functional size unit) Cfsu) است.‌‌‌‌
● ‌مدل اصلی اندازه گیری در ‌COSMIC
. چنان كه دیده می‌شود، در این مدل اصلی محاسبه اندازه نرم‌افزار در استاندارد ‌COSMIC‌ نشان داده‌شده است. در ادامه تمامی اجزای این مدل از آغاز تا انجام با شرح مثال های ساده توضیح داده خواهد شد. ‌
▪ استخراج نیازهای كاربران
یكی از مهم‌ترین عوامل مورد توجه در اندازه‌گیری نرم‌‌افزار با ‌‌COSMIC امكاناتی است كه سیستم در اختیار استفاده‌كنندگان قرار می‌دهد و در واقع رویه‌ای است كه نرم‌افزار باید در پیش بگیرد تا درخواست‌ها و نیازهای كاربران را تامین كند.
برای استخراج این نیازها اكثر اوقات می‌توان به مستندات اولیه سیستم مراجعه نمود. البته در مواقعی هم كه مستندات برنامه وجود ندارد و نرم‌افزار نصب شده است، باز می‌توان این نیازها را از نرم‌افزار نصب شده استخراج نمود. برای مثال اگر سیستم مكانیزه كتابخانه را در‌نظر بگیرید، برخی از نیازهای كاربردی استفاده‌كنندگان را می‌توان به شرح زیر نام برد:
‌‌- كنترل كردن كارت عضویت ‌
- كنترل كردن پرونده امانات برای پیدا كردن كتاب‌هایی كه اعضا به امانت گرفته‌اند و بازنگردانده‌اند.‌
- امانت كتاب
- برگشت كتاب توسط اعضا
استخراج نیازهای كاربران ‌‌‌‌(FUR) و عملیات سیستم كار مشكلی نیست. ولی قبل از هرگونه محاسبه نرم‌افزار، دانستن اهداف اندازه‌گیری و محدوده آن اهمیت دارد.
هدف اندازه‌گیری، دلیل اندازه‌گیری و نوع استفاده از نتایج محاسبه را مشخص می‌كند. به عنوان نمونه در مثال سیستم كتابخانه، هدف از اندازه‌گیری را می توان به شرح زیر تعیین كرد:
▪ ‌دلیل اندازه گیری ‌‌
برای اندازه‌گیری‌ نیازهای كاربردی استفاده‌كنندگان (‌برای ورودی فرمول‌) و استفاده در رویه اندازه‌گیری (‌تخمین‌) میزان كوشش كاری برنامه‌نویسان سیستم.‌
▪ محدوده اندازه گیری‌
محدوده اندازه‌گیری در واقع محدودیت‌ها و ملزومات یك اندازه‌گیری را مشخص می كند. برای مثال در سیستم كتابخانه این حدود به شرح زیر است: ‌ ‌- فقط نیازهای كاربران در دسترس است.‌
- زبان برنامه نویسی‌: جاوا‌
- پایگاه اطلاعاتی: اوراكل ‌
- برنامه نویسی شی گرا‌
-لایه‌های نرم‌افزاری: نرم‌افزار و پایگاه اطلاعاتی
‌عامل اولیه دیگری كه قبل از محاسبه اندازه نرم‌افزار الزامی به‌نظر می‌رسد، دید محاسبه‌كننده است. در این‌باره می‌توان دو دیدگاه را مورد‌بررسی‌قرار داد: نظر استفاده كننده سیستم و نظر برنامه‌نویسان و تهیه كنندگان نرم‌افزار.
▪ این مسئله به عنوان نمونه در همان مثال در سیستم كتابخانه به شرح زیر است:
نظر استفاده كنندگان ‌
- استفاده‌كنندگان سیستم: دانشجویان و متصدی كتابخانه می باشند.‌
- این استفاده‌كنندگان فقط از بخشی از توانایی‌های سیستم اطلا‌ع دارند كه با آن كار می كنند. ‌
- اگر اندازه‌گیری نرم‌افزار از نظر این نوع استفاده كنندگان محاسبه شود، باید فقط اندازه اجزای سیستم كه كاربر با آن در تماس مستقیم است، محاسبه گردد.‌
نظر برنامه‌نویسان/ تولید كنندگان نرم‌افزار
دراین دیدگاه باید اندازه تمامی اجزای سیستم محاسبه شود. برای محاسبه و تخمین نیروی مورد‌نیاز و هزینه نرم‌افزار باید دید برنامه‌نویس مد‌نظر قرار می گیرد و تمامی اجزای سیستم در محاسبه در نظر گرفته شوند.
● ‌مرحله ‌‌Mapping
‌ ‌همانطور كه در شكل ۲ (‌مدل اصلی اندازه گیری) دیده می‌شود، مرحله اول این مدل، مرحله مقدماتی یا تبدیل نیازهای كاربران‌‌ ‌‌(FUR) به مدل عمومی ‌COSMIC است. این مرحله اصطلاحا مرحله‌‌ ‌Mapping نام دارد كه همان‌طور كه در شكل ۴ مشاهده می كنید، ‌FURs را به مدل نرم‌افزاری عمومی ‌COSMIC تبدیل می كند.
در این مرحله با استفاده از روش ها و رویه های گوناگون، ورودی ‌‌‌‌(FUR) به مدل عمومی COSMIC كه مدل‌ مناسب‌تری برای محاسبه اندازه نرم‌افزار است، تبدیل می‌شود. در اندازه‌گیری نرم‌افزار سوالاتی مانند <چه قسمت‌هایی از سیستم جزء نرم‌افزار و چه قسمت‌هایی جزء سیستم عامل ‌‌‌(OS) محسوب می‌شود؟> ممكن است در ذهن پیش بیاید. به همین جهت ‌‌‌COSMIC پیشنهاد می‌كند كه از مدل‌ CONTEXT ‌استفاده شود. یعنی هر قسمت از سیستم ترسیم گردد و جریان اطلاعات در آن بررسی شود.نرم افزار به وسیله سخت افزار (صفحه كلید، نوار خوان و...) از یك سو و پایگاه اطلاعاتی (هارددیسك‌) از طرف دیگر احاطه شده است و دو انتها دارد: ‌انتهای جلویی ‌(Front-end) و انتهای عقبی (Back-end). در قسمت انتهای جلویی دو گروه انتقال اطلاعات وجود دارد: ورودی‌‌ ‌‌(entry) و خروجی‌‌ (exit).
ورودی همان اطلاعات وارد شده از طرف كاربر و خروجی نیز انتقال اطلاعات از سوی سیستم به كاربر است.
▪ در قسمت انتهای عقبی نیز دو گروه انتقال اطلاعات وجود دارد:
۱) نوشتن اطلاعات در پایگاه اطلاعاتی (‌توسط نرم‌افزار)
۲) خواندن اطلاعات.
‌هدف ‌‌COSMIC اندازه‌گیری نرم‌افزار بر اساس ‌FURهای موجود است. وقتی ‌FURها مشخص شدند، می‌توانیم آن‌ها را به نرم‌افزار/سخت‌افزار موجود در سیستم ربط دهیم. ولی همان‌طور كه قبلا توضیح داده شد،‌‌ COSMIC ‌فقط به ‌FURهایی توجه دارد كه به نرم افزار مربوط می‌شوند. در نرم‌افزارهای بازرگانی امروزی نیازهای كاربران ‌FURها به لایه‌‌ ‌Application (نرم‌افزار) مرتبط می شوند. زیرا این لایه مستقیما با كاربر در ارتباط است.
● مرزهای نرم افزار و رویه های كاربردی
تعیین‌كردن مرزهای نرم‌افزار با نوع، هدف و دیدگاه اندازه‌گیری (‌استفاده كننده/‌برنامه‌نویس) ارتباط مستقیم دارد. مرزهای نرم‌افزاری در واقع اینترفیس‌هایی هستند در میان نرم‌افزار و استفاده‌كننده؛ منظور از استفاده‌كننده می‌تواند لایه دیگری از نرم‌افزار یا همان كاربر باشد.
برای مشخص‌كردن مرز نرم‌افزاری و رفع ابهام، ‌‌COSMIC پیشنهاد می‌كند دو عامل را در نظر بگیریم: كسی یا قسمتی از نرم‌افزار كه بخشی را فعال می‌كند (باعث رویدادی می‌شود) و قسمتی كه تحت تاثیر قرار می گیرد (‌رویه عملیاتی). مرز نرم‌افزار بین این دو قرار دارد. البته دیدگاه اندازه‌گیری در اینجا مهم است و تفاوت در دیدگاه اندازه‌گیری این مرز را تغییرمی‌دهد. مثلا وقتی از دیدگاه استفاده‌كننده سیستم نگاه می‌كنیم، دو مرز وجود دارد: بین نرم‌افزار و كاربر و بین نرم‌افزار و پایگاه اطلاعاتی برای وضوح بیشتر یك وب‌سایت را از دید كاربر تجسم كنید.
كاربر برروی یك لینك كلیك می‌نماید و محتویات صفحه را مشاهده می كند. ولی اگر این وب سایت را از دید یك طراح وب در نظر بگیرید، هر لینك عامل سه حركت اطلاعات می‌گردد. همان‌طور كه قبلا اشاره شد، اطلاعات در هر لایه در حركت هستند (‌خواندن‌، نوشتن‌، ورودی و خروجی) ولی لزوما این امر بدین معنا نیست كه خروج اطلاعات دائما به سمت كاربر باشد.
مثلا اگر بخواهیم اطلاعاتی را برروی پایگاه‌اطلاعاتی ذخیره كنیم (‌نوشتن یا‌ Write)، در واقع این عمل نوشتن به‌وسیله لایه نرم‌افزار یك ورودی ‌‌‌(Entry) اطلاعات به لایه پایگاه اطلاعاتی است. ولی در مورد خواندن اطلاعات ‌(Read) ‌از پایگاه اطلاعاتی، مسئله پیچیده‌تر از خواندن اطلاعات می‌شود. وقتی یك جستجو از طرف لایه ‌‌Application درخواست می‌شود، این درخواست در واقع یك ورودی است از طرف لایه و خواندن‌‌‌اطلاعات، در واقع توسط لایه ‌‌ ‌Device Driver هدایت و كنترل می‌گردد.
▪ یك ورودی ‌‌‌‌(E: Entry) باعث به وجود آمدن دو حركت می‌شود:
ـ خواندن‌‌‌(R: Read)‌ از پایگاه اطلاعاتی از لایه ‌Device Driver
ـ خروج ‌‌‌(X: Exit) به لایه‌‌ Application.
پس از شناسایی مرزهای نرم‌افزار (همان‌طور كه در شكل ۲ مشخص شده) مرحله شناسایی رویه‌های كاربردی قراردارد. شناسایی یك رویه كاربردی یا ‌‌Functional process كار سختی نیست.
در واقع یك رویه كاربردی قسمتی از نیازهای كاربران است كه توسط آنان از سیستم در‌خواست می‌شود و باعث حركت اطلاعات می‌شود و تا وقتی تمام نیازهای كاربر را فراهم نكند، این رویه ادامه دارد.
یك رویه كاربردی حداقل شامل دو حركت اطلاعات می باشد (‌یك ورودی: ‌ ‌E و یك خروجی:‌‌ X) نوشتن اطلاعات (W)، فقط متعلق به یك لایه می باشد و دارای تعدادی رویداد‌‌ ‌Events است. مثلا در سیستم كتابخانه اگر فرض كنیم كه هدف یك رویه كاربردی، ایجاد یك عضو جدید است، می توان رویدادهای زیر را در نظر گرفت:
▪ یك ورودی: ‌‌ ۱ X Entry(اطلاعات عضو جدید)‌
▪ یك نوشتن: ‌‌ ۱X Write(نوشتن اطلاعات عضو در پایگاه اطلاعاتی) ‌
▪ یك خروجی: ‌‌ ‌۱X Exit(پیغام خطا یا تایید ثبت اطلاعات عضو) ‌‌ ‌‌
‌یكی دیگر از نیازهای كاربران در سیستم كتابخانه، كنترل‌كردن كارت عضویت است.
ـ ‌‌ ۱X Entry- (از كاربر به لایه‌Application )
ـ ۱X Exit - ‌از لایه (‌Application ‌به سیستم مدیریت پایگاه اطلاعاتی رابطه ای یا‌ ‌RDBMS)
ـ ‌‌ ۱X Entry- (به‌‌ ‌RDBMS)
- ۱X Read (از پایگاه اطلاعاتی) ‌
‌-‌‌ ۱X Exit (از ‌‌RDBMS به لایه‌ Application)
- ۱X Entry (به لایه‌ Application)
-‌‌ ۱X Exit (پیغام به كاربر) ‌
● شناسایی جهت انتقال اطلاعات
اولین قدم برای شناسایی جهت انتقال اطلاعات در سیستم، طراحی Entity Relationship Diagram) ‌‌ERD) یا مدل پایگاه اطلاعاتی رابطه‌ای است.
در ‌‌COSMIC جهت انتقال اطلاعات، براساس نیاز رویه كاربردی به انتقال اطلاعات تعیین می‌گردد.
مثلا اگر فرض كنید یك رویه ‌‌‌‌(Functional Process) به گرفتن اطلاعات از بانك اطلاعاتی امانات نیاز دارد.
● مرحله آخر
وقتی جهت حركت اطلاعات مشخص گردید، طبق مدل اصلی اندازه گیری (شكل ۲) باید از توابع اندازه‌گیری استفاده نماییم و مجموع اندازه ها را محاسبه كنیم. در این مرحله ما درقبال یك حركت اطلاعات یك واحد Cfsu را در نظر می گیریم. در نتیجه ۱X data movment (E/X/R/W) = ۱ CFSU
مثلا اگر در قسمتی، پنج‌ حركت اطلاعات وجود دارد، پنج واحد‌Cfsu داریم. پس فرمول كلی اندازه‌گیری یك رویه كاربردی را می توان به صورت زیر در نظر گرفت:
اندازه یك لایه نرم‌افزاری را نیز می‌توان از حاصل جمع اندازه رویه های كاربردی‌ ( Functional Process) ‌به دست آورد. پس اگر در لایه نرم‌افزاری ما، دو رویه ‌‌A و ‌B وجود داشته باشد و هر كدام‌ ۴Cfsu باشند، اندازه لایه ۸‌Cfs می‌باشد.
برای یادگیری هر چه بیشتر این استاندارد به مثال زیر توجه كنید: در قسمتی از مستندات سیستم كتابخانه ذكر شده، سیستم باید قادر باشد برگشت كتاب‌ها به كتابخانه و حذف این كتاب‌ها از فهرست امانات را ثبت كند.
ولی باید یك ركورد از این امانت در بانك اطلاعاتی دیگری نیز ذخیره‌گردد تا متصدی كتابخانه بتواند در آینده به آن مراجعه كند. به نظر شما چند‌‌ Cfsu ‌در این قسمت از مستندات سیستم وجود دارد ( از نظر برنامه‌نویس)؟
جواب: قبل از هر چیز لایه‌های نرم‌افزاری را مشخص می‌كنیم. سپس رویه‌های كاربردی و حركت اطلاعات را مشخص و برای حركت هر كدام یك‌‌ ‌Cfsu در نظر می گیریم. در قسمت اول مسئله گروه های اطلاعاتی (‌بانك‌های اطلاعاتی ) كه در این قسمت موردنیاز است، مشخص می كنیم.
دو بانك‌اطلاعاتی وجود دارد كه برای حذف اطلاعات امانات و افزودن ركورد اطلاعات امانات در تاریخچه امانات مستقیما با آن‌ها در ارتباط هستیم. اگر فرض كنیم دو لایه اصلی
‌‌(Application و RDBMS) در این نرم‌افزار وجود دارد.
▪ حال حركات اطلاعات را در این مدل دنبال می‌كنیم :
- كاربر اطلاعات عضو را وارد می‌كند. یك حركت از كاربر به لایه اول، در نتیجه:‌ ‌‌.۱X Entry
- یك خروج اطلاعات از لایه اول به لایه دوم. در نتیجه: ۱X Exit.
- یك ورود به ‌ ‌RDBMS برای حذف اطلاعات امانات. در نتیجه: ۱X Entry.
‌- یك نوشتن در بانك اطلاعاتی امانات ( در واقع حذف را می توان یك نوع Write ‌دانست). در نتیجه: ۱X Write ‌
- یك نوشتن در بانك اطلاعاتی تاریخچه امانات. در نتیجه: ۱X Write.
- خروج از لایه دوم به لایه اول‌. در نتیجه: ‌‌۱X Exit.
- ورود به لایه اول. در نتیجه:۱X Entry.
- خروج از لایه اول و نمایش تایید حذف اطلاعات به كاربر. در نتیجه: ۱X Exit.
حال می توانیم مقادیر بالا را در فرمول‌ ‌COSMIC-FFP قرار دهیم و اندازه‌‌ ‌‌ Cfsu را برای این قسمت از سیستم محاسبه كنیم:
= (۱+۱) + (۰) + (۱+۱+۱) + (۱+۱+Size (Cfsu) of Functional process A= (۱
‌(۸Cfsu (COSMIC-FFP v۲.۲
نتیجه ‌‌۸Cfsu شد كه با ذكر نسخه ‌‌COSMIC-FFP استفاده شده در محاسبه نوشته می شود. حال كه اندازه نرم‌افزار در واحد ‌‌Cfsu به دست آمد، می‌توانیم اندازه كار مورد نیاز برای تهیه این قسمت از نرم‌افزار را محاسبه كنیم. برای محاسبه كار ‌‌(Effort) به یك عامل دیگر نیز نیاز داریم و آن درصد راندمان نیروی كار است. برای محاسبه این عامل بهترین مرجع را می‌توان اطلاعات پروژه های قبلی دانست. ولی به طور متوسط این مقدار بین ۵/۰ تا ۷/۰ از حداكثر ۱ (۱۰۰ درصد) است. مثلا در پروژهای قبلی هر برنامه‌نویس برای نوشتن یك‌ ‌۲۰Cfsu ساعت (‌۲ روز) وقت صرف كرده‌است. پس اگر همان برنامه‌نویس بخواهد نرم‌افزاری را با مجموع ‌‌‌ ۳۶Cfsu تهیه كند، در ۷۲۰ ساعت این نرم‌افزار به اتمام خواهد رسید.
● نتیجه‌گیری‌
اندازه‌گیری نرم‌افزار به روش ‌COSMIC-FFP یكی از ساده‌ترین و استانداردترین روش‌های موجود در مهندسی نرم‌افزار است. با این روش می‌توان بسیاری از نرم‌افزارهای امروزی از وب سایت تا نرم‌افزاری ‌بلا‌درنگ را اندازه گیری نمود. از جمله مزایای این استاندارد می‌توان به آسانی، درستی محاسبه و توانایی كار با آن از ابتدایی‌ترین مرحله چرخه تولید نرم‌افزار اشاره كرد. اضافه بر این، می‌توان با این روش حتی قسمت كوچكی از نرم افزار را هم اندازه‌گیری نمود. اگرچه این استاندار امروزه بسیار مورد استقبال قرار گرفته و بسیاری از شركت‌های نرم‌افزاری دنیا از آن استفاده می كنند، برخی از قسمت های آن هنوز مبهم به نظر می‌رسد.
از آن جمله می‌توان از تشخیص لایه‌های نرم‌افزاری یا تعیین مرز بین لایه‌ها نام برد كه محاسبه كننده را ملزم به آشنایی كامل با اجزای تشكیل دهنده نرم افزار قبل از محاسبه می كند. اشتباه در انتخاب لایه ها و مرز بین آن‌ها باعث خواهد شد اندازه نرم‌افزار به اشتباه محاسبه شود. با این حال استفاده‌كنندگان از این استاندارد هر روز بیشتر می شوند. آموزش اندازه‌گیری نرم افزار با ‌‌COSMIC از سال ۲۰۰۴ در اكثر رشته‌های مهندسی نرم‌افزار دانشگاه‌های اروپا در كنار روش‌های قدیمی مثل ‌MKII‌ و ‌COCOMO تدریس می‌شود و امید است روزی این استاندارد جای خود را به روش‌های قدیمی متداول بدهد.
مطالعه منابع معرفی‌شده نیز به شما كمك خواهد كرد مبانی اندازه‌گیری نرم‌افزار با ‌COSMIC-FFP را كه در این مقاله بحث شد، بهتر یاد بگیرید. ‌
امین صفائی‌
منابع :
‌www.cosmicon.com
‌www.cosmicon.com/overview.asp
منبع : ماهنامه شبکه