شنبه, ۲ فروردین, ۱۴۰۴ / 22 March, 2025
اندازه گیری نرم افزار با استفاده از استاندارد 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 استفاده شود. یعنی هر قسمت از سیستم ترسیم گردد و جریان اطلاعات در آن بررسی شود.
امین صفائی
منابع :
www.cosmicon.com
www.cosmicon.com/overview.asp
ایران مسعود پزشکیان دولت چهاردهم پزشکیان مجلس شورای اسلامی محمدرضا عارف دولت مجلس کابینه دولت چهاردهم اسماعیل هنیه کابینه پزشکیان محمدجواد ظریف
پیاده روی اربعین تهران عراق پلیس تصادف هواشناسی شهرداری تهران سرقت بازنشستگان قتل آموزش و پرورش دستگیری
ایران خودرو خودرو وام قیمت طلا قیمت دلار قیمت خودرو بانک مرکزی برق بازار خودرو بورس بازار سرمایه قیمت سکه
میراث فرهنگی میدان آزادی سینما رهبر انقلاب بیتا فرهی وزارت فرهنگ و ارشاد اسلامی سینمای ایران تلویزیون کتاب تئاتر موسیقی
وزارت علوم تحقیقات و فناوری آزمون
رژیم صهیونیستی غزه روسیه حماس آمریکا فلسطین جنگ غزه اوکراین حزب الله لبنان دونالد ترامپ طوفان الاقصی ترکیه
پرسپولیس فوتبال ذوب آهن لیگ برتر استقلال لیگ برتر ایران المپیک المپیک 2024 پاریس رئال مادرید لیگ برتر فوتبال ایران مهدی تاج باشگاه پرسپولیس
هوش مصنوعی فناوری سامسونگ ایلان ماسک گوگل تلگرام گوشی ستار هاشمی مریخ روزنامه
فشار خون آلزایمر رژیم غذایی مغز دیابت چاقی افسردگی سلامت پوست