انجمن انفورماتیک ایران انجمن انفورماتیک ایران انجمن انفورماتیک ایران
گزارش کامپیوتر شماره 234, ویژه مرداد و شهریور ماه 96 منتشر شد. پنجشنبه  ٠٢/٠٩/١٣٩٦ ساعت ٢٢:٠٤
 

مقاله
بررسی اهمیت معیار‌های نرم‌افزار
فاطمه دوامی
دانشجوی کارشناسی ارشد کامپیوتر- نرم‌افزار، دانشگاه آزاد واحد تهران شمال
پست الکترونیکی: fatemeh.davami@gmail.com

دکتر ناصر مدیری
هیئت علمی دانشگاه آزاد اسلامی
پست الکترونیکی: nassermodiri@yahoo.com

 


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

مقدمه
یك مسأله بسیار منفی برای مهندسان نرم‌افزار، تحویل با تأخیر نرم‌افزارها به مشتریان است كه موجب از دست رفتن فرصت‌های كاری و نارضایتی مشتریان می‌گردد. همانطور كه می‌دانید در پروژه‌های مختلف، شركتی برنده است كه بتواند محصول خود را زودتر به بازار ارائه دهد، بنابراین زمان‌بندی دقیق تولید نرم‌افزار اهمیت پیدا می‌کند.
همچنین كیفیت پایین تولیدات بر روی بازار و مشتریان اثر سوء می‌گذارد. امروزه كمتر نسخه‌ای از نرم‌افزارها در هنگام تحویل به مشتری كامل هستند و معمولاً ایرادات پس از تحویل نرم‌افزار، توسط مشتری كشف می‌شوند، در حالی که بسیاری از ایرادات را می‌توان با بالا بردن كیفیت و دقت در مراحل تولید نرم‌افزار از بین برد. از این رو «مهندسی نرم‌افزار» به عنوان پاسخی به مشکلات صنعت توسعه نرم‌افزار مطرح گردید. مهندسی نرم‌افزار یک رویکرد روشمند، منظم و کمیت‌پذیر برای ایجاد، توسعه و نگهداری نرم‌افزار است که تولید محصولات با کیفیت را هدف اصلی خود قرار داده است [1] .
هر پروژه، مجموعه‌ای از فعالیت‌ها و وظایف جدید است که شروع و پایان مشخصی داشته و به سه ویژگی زمان (Time )، هزینه (Cost ) و اهداف مشخص یا کیفیت (Quality ) محدود شده باشد. این سه محدودیت با هم در تعامل هستند و تغییر هر کدام موجب تغییر در محدودیت‌های دیگر می‌شود (شکل 1).

شکل 1: سه محدودیت‌ پروژه

پروژه‌های نرم‌افزاری صرف نظر از اندازه‌شان، همگی عملی منحصر به فرد و غیرتکراری هستند که با پایان یافتن پروژه، محصول جدیدی را تولید می‌کنند که قبلاً هرگز وجود نداشته است.
اندازه‌گیری فرآیند و پروژه، روشی اساسی برای ارزیابی کیفیت محصولات و توانایی فرآیندهای سازمانی است. اساس تمام فعالیت‌های اندازه‌گیری بر خوب تعریف کردن معیار‌های اندازه‌گیری استوار است. معیار‌ها دارایی ارزشمندی برای سازمان‌ها محسوب می‌شوند که فراهم کننده کنترل و نظارت بر روند پروژه و نهایتاً بهبود اعتبار سازمان و فعالیت‌های آن است. معیار‌های نرم‌افزاری در جریان چرخه حیات محصول به‌کار برده می‌شوند [2] .
2- نقش معیار‌ها در تضمین کیفیت
امروزه نقش معیار‌های نرم‌افزاری در کیفیت نرم‌افزاری به خوبی مشخص شده است. هر چند هدف انواع معیار‌ها، دستیابی به کیفیت و قابلیت اطمینان است اما در سازمان‌ها بسیار کم به‌كار گرفته می‏شوند.
کیفیت یک ویژگی منحصر به فرد نیست بلکه مشخصه‌ای چند بعدی است که باید در تمامی مراحل تولید محصول مورد توجه قرار گیرد.
طی یک بررسی که در سال 1989 توسط فینکلستین انجام گرفت نحوه توزیع خطا در سیستم‌های اطلاعاتی به‌صورت زیر خلاصه گردید:

  • 56% عدم کفایت در تعیین نیازمندی‌ها
  • 27% خطا در طراحی
  • 7% خطا در برنامه نویسی
  • 1% خطا در سایر مراحل

همانطور که ملاحظه می‌شود حساس‌ترین مرحله در بروز خطا در یک نرم افزار مربوط به قدم تحلیل نیازمندی‌ها است، این نیازمندی‌ها تنها منحصر به نیازمندی‌های اعلام شده توسط مشتری نیست، بلکه عدم رعایت سایر نیازمندی‌ها و استانداردهای سیستم که مربوط به تیم پروژه است را نیز شامل می‌شود. در حالت استاندارد، نیازها با توجه به مجموعه درخواست‌ها شناسایی و مشخص می‌شوند كه البته با توجه به زمان تغییر می‌كنند و در پایان نیازها به صورت مشخصه‌های تیم در می‌آیند (مانند قابلیت استفاده، اطمینان، نگهداری و ... ). در محیط‌هایی كه نرم‌افزار‌ها مخصوص یك محل خاص نوشته می‌شوند، نیازها با توجه به توافق مشتری مشخص می‌گردند. اگر نیازمندی‌ها اشتباه تعریف شده باشند، شکست پروژه حتمی خواهد بود.
به این ترتیب، خطا در تمام مراحل چرخه پیدایش و توسعه سیستم بروز می‌نماید. از این رو حصول اطمینان از کیفیت و نیز مدیریت کیفیت باید به تمام مراحل توسعه نرم‌افزار نظارت داشته باشد. همچنین بدون داشتن استانداردهایی برای اندازه‌گیری نقص‌ها، نمی‌توان محصولات عاری از خطا تولید کرد.
با توجه به تعریفی که از پروژه‌ ارائه شد، پروژه‌ها باید محصول یا نتیجه تعیین شده‌ای را با بودجه‌ای معین، در زمانی مشخص تحویل دهند و برای انجام این کار از منابع مختلفی چون نیروی کار، مواد اولیه، تدارکات و تجهیزات و ... بهره برند. ما این منابع را که در شکل 2 نشان داده شده است، M5E نامیده‌ایم.
 

شکل 2: عوامل و منابع تأثیرگذار بر کیفیت

به مرور زمان، معیار‌های نرم‌افزاری به بخش مهمی از فرآیند توسعه نرم‌افزار تبدیل شده‌اند که در تمام فازهای چرخه حیات توسعه نرم‌افزار به‌کار برده می‌شوند [3] .
شركت‌های پیشرو شروع به اعمال معیار‌های نرم‌افزار برای بالا بردن كیفیت كار كردند. این موضوع را می‌توان با قیاس‌های آماری كارخانجات كه با هدف بالا بردن كیفیت انجام می‌شود مقایسه كرد. معیار‌های نرم‌افزاری كه برای افزایش كارآیی به‌كار می‌روند باعث پیشرفت كار بسیاری از شركت‌ها می‌شوند.
معیار‌های قیاسی با استفاده از اطلاعات كارخانجات، ابتدا در  ژاپن ایجاد شدند. شركت‌های ژاپنی (مانند هیتاچی) از این معیار‌ها برای مشخص كردن میزان پیشرفت كار در فرآیند‌ توسعه استفاده می‌كردند. در سالهای 80-1970 برخی شركت‌های ژاپنی، اروپایی و آمریكایی استفاده از معیار‌ها را به منظور کنترل فرآیند‌ توسعه، آغاز كردند.
معیار‌های نرم‌افزاری اگر با مدیریت كنترل كیفیت همكاری كنند می‌توانند مشخص کننده برنامه ارتقاء كیفیت اهداف باشند و میزان پیشرفت را نیز مشخص نمایند. اهداف ارتقاء كیفیت نرم‌افزار باید با اهداف سازمان همخوانی و همكاری داشته باشند.

3- معیار‌های نرم‌افزار
فاکتورهای نرم‌افزاری، کیفیت را به مشخصه‌های مستقلی که به راحتی قابل تشخیص باشند، تقسیم‌بندی می‌کنند. فاکتورها تنها به صورت کیفی بیان می‌شوند و نمی‌توان آن‌ها را به صورت کمّی بیان نمود.
لرد كلوین فیزیک دان معروف انگلیسی گفته است: «وقتی می‌توانید آنچه را كه از آن صحبت می‌كنید، اندازه‌گیری كرده و بر حسب اعداد بیان كنید، درباره آن آگاهی دارید. اما وقتی نتوانید آن را اندازه بگیرید و بر حسب اعداد بیان نمایید، دانش شما ناقص است: ممكن است دانشی ابتدائی باشد ولی به سختی می‌توان آن را علم دانست.»
بنابر این گفته‌ و از آنجا که وجه تمایر میان مهارت صنعتی و نظام مهندسی در آن است که صنعتگران از روش‌های کیفی استفاده می‌کنند ولی نظام مهندسی مبتنی بر روش‌های کمّی است، بنابراین باید جهت شناسایی فاکتورها، از یک سری مقادیر کمّی استفاده نماییم. این مقادیر کمّی همان معیار‌های نرم‌افزاری هستند.
معیار‌های نرم‌افزاری مقادیر کمّی هستند كه درك بازدهی فرآیند نرمافزار و پروژه‌ها را امكان پذیر میسازند. استفاده  همه منظوره از این معیار‌ها در حدود سال 1984 آغاز شد و از آن زمان تاکنون روز به روز در حال رشد و فراگیر شدن است [4] .
معیار‌ها برای دو هدف اصلی مورد استفاده قرار می‌گیرند:

  • آگاهی (Knowledge)  
  • تغییر (Change)

که هر کدام نیز اهداف خود را داراست.
اهداف مربوط به آگاهی
این اهداف با افعالی مانند: نظارت کردن، ارزیابی کردن و پیش‌بینی کردن بیان می‌شوند. تشخیص کیفیت محصول، پیگیری و تغییرات مربوط به نیازمندی‌ها نمونه‌هایی از این اهداف هستند.
اهداف مربوط به تغییر
این اهداف با افعالی مانند: افزایش یافتن، کاهش یافتن و بهبود دادن بیان میشوند. به عنوان مثال بهبود دادن زمان انجام کار یک پروژه نسبت به پروژه‌های قبلی یک نمونه از این اهداف است (شکل 3).
معیار‌ها، پروژه‌های پیچیده را قابل مشاهده و كنترل می‌كنند. همچنین با ارائه راهنمایی‌هایی در طول مراحل كار، برای رسیدن به اهداف سازمان ما را یاری می‌نمایند.

                                                                      شکل3 :اهداف معیار‌ها     

بسیاری از این معیار‌ها در 15 سال اخیر تولید شده‌اند اما استفاده از آن‌ها تا به حال محدود بوده است. با این حال در چند سال اخیر شركت‌هایی به‌وجود آمده‌اند كه در این زمینه‌ها سرمایه‌ گذاری كرده‌ و توانسته‌اند معیار‌هایی عمومی برای ارتقاء مراحل توسعه نرم‌افزار تولید كنند. در واقع معیار‌های نرم‌افزاری فاکتور‌هاییهستند که محدوده خاصی ندارند و می‌توانند برای هر محصول بنا به نوع و کیفیت آن، مقادیری به خود بگیرند.
پیاده‌سازی این معیار‌ها می‌تواند مزایای زیادی در راستای منافع سازمان ایجاد كند. از جمله این منافع می‌توان به افزایش کیفیت، بهبود کارایی و قدرت تولید، کاهش هزینه و ارائه ابزارهایی برای ارتقاء، توسعه و پشتیبانی نرم‌افزارها اشاره کرد.
استفاده از معیارها توانایی مؤسسه را در اجرای پروژه‌های جدید افزایش داده و امکان مقایسه پروژه‌های جدید را با پروژه‌های قدیمی فراهم می‌کند. این موضوع توان برنامه‌ریزی را افزایش می‌دهد.
به این ترتیب، فاکتورها، معیار یا ترکیبی از معیار‌ها هستند که درکی از فرآیند نرم‌افزار، پروژه نرم‌افزاری یا محصول را فراهم می‌آورند. معیار‌ها باید به گونه‌ای جمع‌آوری شوند که بتوان از طریق آن‌ها فاکتور‌های فرآیند، محصول یا منبع را کشف کرد كه منجر به بهبود فرآیند نرم‌افزار در بلند مدت می‌شوند.
داده‌های به‌دست آمده از معیار‌‌ها به تنهایی کاربرد ندارند و تنها نشان دهنده مسیر و روند كار در روند اجراهای مختلف هستند. در حقیقت عملیاتی که بر اساس نتایج به‌دست آمده از این داده‌ها انجام می‌گیرد مهم هستند.
بنابراین، نکته حائز اهمیت این است که معیار‌‌ها، فرآیند و فعالیتی ادامه‌دار و  قابل اجرا در کل پروژه‌‌ هستند (از زمان برآورد هزینه تا نظارت بر محصول و روش‌های بهبود محصول) و در مدت زمانی طولانی جمع آوری شده و میزان پیشرفت كار را در اجرا‌های دوره‌ای نشان می‌دهند. معیار‌‌ها دارای مکانیزمی حلقوی- افزایشی‌اند چرا که با ارزش‌ترین اطلاعات زمانی حاصل می‌شوند که دنباله‌ای از داده‌ها داشته باشیم.
اطلاعات به دست آمده باید در طول مراحل كار‌ به صورت بازخورد در اختیار مدیر نرم‌افزار قرار گیرد تا وی با توجه به این اطلاعات، ایرادات موجود را پیدا كرده و راه‌حل‌هایی برای آن‌ها بیابد و نیز از بروز ایرادات جدید جلوگیری نماید.
این امر موجب كشف نقایص قبل از ارائه به مشتری می‌شود. به این ترتیب مشتری اطمینان می‌یابد كه شركت دارای تیم كنترل كیفیت است که از تولید نرم‌افزارهای ضعیف جلوگیری می‌كند. همچنین این موضوع موجب دید بهتر نسبت به نرم‌افزار می‌شود.

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

معیار‌ها می‌توانند ابتدا كار فعلی را اندازه‌گیری كرده و سپس به صورت دوره‌ای پیشرفت كار را تعیین كنند تا اگر مسیر حركت صحیح نبود بتوان قبل از بالا رفتن هزینه، آن را اصلاح كرد. استفاده دائم از این معیار‌ها باعث ایجاد فرهنگ بهبود كار در محیط شركت می‌شود.

پس از مدتی به دست آوردن تجربه در کار با معیار‌ها، متوجه این موضوع می‌شویم كه معیار‌ها از یك شركت به شركت دیگر متفاوتند. لذا هر شركت باید معیار‌ها را بومی سازد. به عنوان مثال معیاری كه در یك شركت آلمانی كاربرد دارد شاید در یك شركت انگلیسی به کار نیاید. این موضوع كار را مشكل می‌كند زیرا هر شركتی باید میعار‌های خود را پیدا كند.

4- اندازه‌گیری و فرآیندهای اندازه‌گیری
اندازه‌گیری نرم‌افزار نقش مهمی در مهندسی نرم‌افزار ایفا می‌کند [5] . منظور از اندازه‌گیری، نسبت دادن مقادیر یا نشانه‌هایی به اشیا یا موجودیت‌ها بر طبق قوانین معین است. به این ترتیب، مقادیر یا نشانه‌ها به رویدادها و موجودیت‌های جهان واقع به منظور توصیف آن‌ها نسبت داده می‌شوند.
Fenton and Pfleeger می‌گویند: «شما نمی‌توانید کنترل و پیش‌بینی کنید، آنچه را که نمی‌توانید اندازه‌گیری کنید.» این جمله به خوبی ضرورت و اهمیت اندازه‌گیری را بیان می‌کند.
اندازهگیری در جهان مهندسی بسیار متداول است. وزن، ابعاد فیزیكی، دما، ولتاژ، نسبت سیگنال به نوفه ، مصرف برق و ... همگی از مواردی هستند كه اندازه‌گیری میشوند . با توجه به این‌که اندازه‌گیری اساس تمام رشته‌های مهندسی است، پس مهندسی نرم‌افزار نیز از این قاعده مستثنی نیست. اما متاسفانه اندازه‌گیری در جهان مهندسی نرم‌افزار كمتر متداول است، آن هم به دلیل مشكل در توافق بر سر چیزهایی كه باید اندازه‌گیری شوند و میزان‌هایی که باید مورد ارزیابی قرار گیرند.
اندازه‌گیری در نرم‌افزار با استفاده از معیار‌‌های نرم‌افزاری امکان‌پذیر است. دید اصلی معیار‌‌ها، اندازه‌گیری است و به عنوان ابزارهای اندازه‌گیری نرم‌افزار به کار می‌روند.
اندازه‌گیری چیزی بیش از تولید یک سری عدد و رقم و در واقع نگاشتی از دنیای تجربی به دنیای اعداد است. اندازه‌گیری هدف‌گراست به این معنا که خود اندازه‌گیری را نباید هدف کار قرار داد بلکه هر اندازه‌گیری، خود باید هدف داشته باشد. اندازه‌گیری به طور کامل با روند توسعه نرم‌افزار در ارتباط است. هر چقدر برنامه‌ها بزرگتر و پیچیده‌‌تر می‌شوند، نیاز به كنترل پروژه‌ها نیز بیشتر می‌شود.
اندازه‌گیری یک فرآیند است که باید در سراسر پروژه‌های نرم‌افزاری به منظور دستیابی به اهداف، اعمال شود. این فرآیند، بخش اصلی هر فرآیند کسب و کار است.
فرآیند اندازه‌گیری نه تنها باید قابل تکرار و قابل اطمینان بوده و به‌درستی تعریف شود، بلکه باید مفید و قابل استفاده نیز باشد. تاکنون فرآیندهای اندازه‌گیری متعددی مطرح شده‌اند اما فرآیند E4 ، یک فرآیند ساده و مؤثر اندازه‌گیری است که از چهار گام زیر تشکیل شده است:

  • تأسیس: تعیین اهداف کلان، تعیین حوزه و فعالیت‌های تجزیه و تحلیل و اندازه‌گیری.
  • استخراج: استخراج اطلاعات صحیح برای نیازهای تأسیس شده.
  • ارزیابی: ارزیابی اطلاعات به‌دست آمده با توجه به پیش زمینه خاصی از وضعیت واقعی و اهداف.
  • اجرا: اجرای یک تصمیم به منظور کاهش تفاوت‌های میان وضعیت واقعی و اهداف [6] .

فرآیند اندازه‌گیری E4 بر مبنای چرخه دمینگ و از طرفی توسعه یافته روش GQM است.
این فرآیند یک الگوی مدیریتی است که برتر از اندازه‌گیری نرم‌افزار عمل می‌کند. می‌توان این فرآیند را مانند یک چرخه‌ کنترلی بسته توصیف کرد. این چرخه حتماً باید بسته باشد زیرا بدون گام آخر (اجرا)، اطلاعات به‌دست آورده از گام‌های قبل را برای دستیابی به اهداف کلان استفاده نکرده‌ایم، بنابراین تلاشمان برای جمع‌آوری این اطلاعات بیهوده بوده است.
این فرآیند حلزونی شکل بیانگر این مطلب است که با اتمام موفقیت‌آمیز هر دور، پیشرفت‌هایی حاصل می‌گردد که می‌تواند پایه پیشرفت‌های بعدی قرار گیرد(شکل 4).

شکل 4: فرآیند اندازه‌گیری E4

چرخه حیات محصول از هشت فاز تشکیل شده است. این چرخه قابل اعمال در نرم‌افزار، سیستم‌ها و پروژه‌های فناوری اطلاعات می‌باشد. هشت فاز چرخه حیات محصول را می‌توان به طور ساده‌تر در چهار فاز خلاصه کرد(جدول 1)

شکل 5: فرم مجتمع شده‌ چرخه حیات محصول
در هر فاز از چرخه حیات محصول نرم‌افزاری، کلیه فازهای فرآیند E4 انجام می‌شود. به عبارتی هر یک از فازهای چرخه حیات محصول شامل مراحل تعیین اهداف، استخراج نیازمندی‌ها، ارزیابی و نهایتاً اجرای خروجی‌ها است که هر یک از این مراحل با توجه به نیاز پروژه می‌توانند به‌صورت تکرار شونده انجام شوند.
در ادامه به توضیح چرخه اندازه‌گیری در فازهای چرخه حیات محصول می‌پردازیم.
قسمت بالای شکل نشان دهنده گام‌های فرآیند اندازه‌گیری E4 و قسمت پایین، نشان دهنده فعالیت‌های چرخه حیات محصول‌ است که باید به عنوان راهنما در فاز مربوطه جهت تولید محصول یا پروژه به کار گرفته شود.
4-1  اندازه‌گیری E4 برای فاز راهبرد
در واقع این فاز منتج شده از دو فاز اول PLC (پیشنهاد، بررسی) است و تمام فعالیت‌های اندازه‌گیری در این فاز با توجه به راهبرد‌های سازمان و اهداف کسب و کار انجام می‌شود. در این فاز به منظور تنظیم خواسته‌های کاربر، نتایج حاصل از مصاحبه‌ها، بررسی‌ها و مطالعات مورد بررسی قرار گرفته و سند نیازهای کاربر (URD )، طرح‌های آزمون پذیرش، طرح مدیریت پروژه جهت برآورد هزینه، طرح‌های مدیریتی(مدیریت پروژه- مدیریت پیکر‌بندی- مدیریت ارزیابی- مدیریت تضمین کیفیت)، مستندات نیازهای نرم‌افزار و طرح‌های آزمون سیستم تماماً مشخص می‌شوند(شکل 6).

شکل 6: چرخه اندازه‌گیری برای فاز راهبرد

 

4-2 چرخه اندازه‌گیری برای فاز مفهوم
این فاز منطبق با فاز طراحی در PLC است و نتایج حاصل از این فاز عبارتند از: سند طراحی معماری(SDD )، طرح‌های آزمون یکپارچگی، طرح مدیریت پروژه، وارسی و اعتبارسنجی و طرح تضمین کیفیت(شکل 7).


شکل 7: چرخه اندازه‌گیری برای فاز مفهوم

4-3 چرخه‌ اندازه‌گیری برای فاز توسعه و ثبت در بازار
این فاز که از دو هسته اصلی توسعه و ثبت در بازار تشکیل شده است، سه فاز  PLC (توسعه، ارزیابی و جایگزینی) را در بر می‌گیرد. خروجی‌های این فاز شامل: برنامه‌ها، سند طراحی تفصیلی( DDD )، راهنمای کاربر نرم‌افزار، طرح مدیریت، ویژگی‌های آزمون پذیرش، اعلامیه پذیرش موقت، سیستم‌های نرم‌افزاری پذیرش شده موقت و سند انتقال نرم‌افزار است(شکل 8).


شکل 8: چرخه اندازه‌گیری برای فاز توسعه و ثبت در بازار

4-4 چرخه اندازه‌گیری برای فاز تکامل
این فاز در برگیرنده دو فاز (دسترسی عمومی و منسوخ شدن) از PLC است. خروجی‌های این فاز شامل اعلامیه پذیرش نهایی، سند تاریخچه پروژه(PHD ) و سیستم‌های نرم‌افزاری پذیرفته  شده نهایی است(شکل 9).


شکل 9: چرخه اندازه‌گیری برای فاز تکامل
نتیجه‌گیری
پیشرفت و بهبود مستمر در هر زمینه‌ای و نیز دستیابی به کیفیت مطلوب، بدون شک نیازمند ارزیابی و اندازه‌گیری است. از این روست که استفاده از معیار‌‌های نرم‌افزاری امری غیر قابل اجتناب است و راه بقای سازمان را به مهندسان و مدیران نشان می‌دهند. معیارهای نرم‌افزاری قابل اعمال به کل چرخه حیات توسعه هستند و مقادیر کمّی را تولید می‌کنند که مدیران نرم‌افزارها بتوانند با تمرکز بر آن مقادیر، میزان پیشرفت کار را به صورت دوره‌ای مشاهده نمایند.
شاید استفاده از آن‌ها بقاء همیشگی را تضمین نکند، اما بدون شک موجب دوام بیشتر سازمان خواهد شد. معیار‌ها به‌طور کامل با روند توسعه نرم‌افزار در ارتباطند به طوری که با سازوکار‌های حلقوی- افزایشی، امکان بهبود را در مراحل مختلف تولید و پشتیبانی نرم‌افزار فراهم آورده و در نهایت منجر به تولید محصولی با کیفیت و منطبق بر استانداردها می‌شود.
مراجع

ناصر مدیری، فاطمه دوامی، عصمت علی محمد ملایری، "متریک‌های نرم‌افزار". 1389. شابک:0-2-91693-600-978[1]
[2] M. J. Ordonez, H. M. Haddad, "The State of Metrics in Software Industry", Fifth International Conference on Information Technology, 2008
[3] R. Gunnalan, M.Shereshevsky, Hany H. Ammar, "Pseudo Dynamic Metrics", 2005
[4] Paul Goodman, "SOFTEARE METRICS: Best Practices for Successful It Management", 2004
[5] Christof Ebert, Reiner Dumke, "Software Measurement, Establish, Extract, Evaluate, Execute"<ذق>[6] N. Fenton, S. Pfleeger, Software Metrics: A Rigorous & Practical Approach, 2nd ed., PWS Publishing Company, 1997



software metrics
Product Life Cycle(PLC)
Requirement Analysis
M5E(Man, Material, Machine, Method, Management, Environment)
>Development Life Cycle
noise
Establish/ Extract/ Evaluate/ Execute
Deming-Circle (Plan, Do, Check, Act)
Goal/Question/Metric
User Requirement Document
Structure Design Document
Designed Design Document
Project History Document