بخشی از مقاله
چکیده
تضمین کیفیت عبارت است از روشها، تکنیکها و ابزارهایی که افراد حرفهای برای حصول اطمینان از برآورده شدن یا فراتر رفتن محصول از استانداردهای از پیش تعیین شده در حین دوران توسعهی محصول به کار میبرند و بدون استانداردهای تجویز شده ویژه، تضمین کیفیت، مستلزم حصول اطمینان از این نکته است که محصولی در حداقل میزان پذیرش تجارتی قرار داشته باشد.
یکی از مهمترین وظایف تیم تضمین کیفیت توسعهی استانداردهای محصول و فرایند است. استانداردهای محصول ویژگیهایی را تعیین میکند که همه ی اجزای محصول باید دارا باشند و استانداردهای فرایند چگونگی انجام فرایند نرمافزار را مشخص میسازند. بنابراین استانداردها از اهمیت بالایی برخوردار هستند که در این مقاله به بررسی و تشریح دو استاندارد مهم در حیطهی نرمافزار با عنوان CMMI و TickIT میپردازیم.
مقدمه
تضمین کیفیت - - Quality Assurance به حصول اطمینان از این نکته مربوط میشود که محصولات از کیفیت بالایی برخوردار باشند و این مورد به ارزیابی محصول و فرآیند مربوط میشود. در سال 1984 برسوف تعریفی عملی از QA ارائه داد که بر طبق این تعریف تضمین کیفیت عبارت است از روشها، تکنیکها و ابزارهایی که افراد حرفهای برای حصول اطمینان از برآورده شدن یا فراتر رفتن محصول از استانداردهای از پیش تعیین شده در حین دوران توسعهی محصول به کار میبرند و بدون استاندارهای تجویز شده ویژه، تضمین کیفیت مستلزم حصول اطمینان از این نکته است که محصولی در حداقل میزان پذیرش تجارتی قرار داشته باشد.
فرض مربوط QA آن است که کیفیت فرایند به طور مستقیم کیفیت محصولات تحویل داده شده را تحت تاثیر قرار دهد. دشواری ارزیابی کیفیت محصول بدان معنا است که تاکید فراوانی بر تضمین کیفیت فرایند وجود دارد. به طور منطقی فرض میشود فرایندی با طراحی و مدیریت خوب با احتمال بیشتری به محصولات با کیفیت بالا منجر می گردد. این فرض از سیستمهای سازندهای به دست آمده است که در آنها کیفیت محصول ارتباطی بدیهی با فرایند تولید دارد. در واقع در سیستمهای خودکار تولید انبوه هنگامی که سطح قابل قبولی از کیفیت فرایند به دست آمد کیفیت محصول به دنبال خواهد آمد. این روش برای QA در شکل - 1 - نشان داده شده است.
شکل :1 تضمین کیفیت محصول با استفاده از ارتقای کیفیت فرایند
این روش در کارخانه ها عملی است، زیرا استاندارد کردن و دنبال کردن فرایند نسبتاً آسان است. برای سیستمهای نرم افزاری که در آنها فرایند استاندارد نشدهاند کیفیت فرایند و محصول را نمیتوان به طور مستقیم بررسی کرد.
منطقی است فرض کنیم که چنین ارتباطی وجود دارد ولی نمیتوان فرض کرد فرایند با کیفیت بالا همواره منجر به محصول با کیفیت بالا میشود. عوامل خارجی نظیر نو بودن کار بر یا تقاضا برای بیرون دادن محصول قدیمی ممکن است بدان معنی باشد که کیفیت محصول صرف نظر از فرایند به کار رفته دچار رکود گردد.
در بخشهای بعدی اهمیت استاندارد و دو استاندارد مهم در حوزهی نرمافزار مطرح میگردد.
استانداردهای نرم افزار
یکی از مهمترین وظایف تیم QA توسعهی استانداردهای محصول و فرایند است. استانداردهای محصول ویژگیهایی را تعیین می کند که همهی اجزای محصول باید دارا باشند. استانداردهای فرایند چگونگی انجام فرایند نرم افزار را مشخص میسازند. مثالی از استاندارد محصول بازبینی لازم برای جمع آوری اطلاعات در هنگام آن بازبینی است. مثالی برای استاندارد فرایند تعریف روش چگونگی طراحی بازبینیهایی است که باید انجام شوند.
دلایل اهمیت استاندارد ها عبارتند از:
• بهترین یا حداقل مناسبترین راه عملی را فراهم میآورند. این دانش و آگاهی اغلب فقط پس از مقدار زیادی تجربه و خطا بدست میآید. استفاده از استاندارد، از تکرار اشتباه گذشته جلو گیری میکند. استاندارد باید آنقدر عاقلانه باشد که نزد سازمان ارزش داشته باشد.
• استانداردها چارچوبی فراهم میآورند که فرایند QA باید در قالب آن بهکار گرفته شود با فرض اینکه استانداردها بهترین
راه عملی را پیش روی میگذارند. وظیفه QA عبارت است از حصول اطمینان از رعایت استانداردها.
استانداردها به پیوسته کردن کار در جایی که توسط شخصی رها شده و توسط شخصی دیگر ادامه یافته است، کمک میکنند. استانداردها تضمین میکنند که مهندسان سازمان، راه یکسانی را دنبال کردهاند به طوری که کوشش برای فراگیری در هنگام آغاز یک کار جدید کاهش مییابد.
مدل بلوغ بهبود فرایند - CMMI -
CMMI - Capability Maturity Model Integration - در واقع یک مدل بلوغ بهبود فرایند است که برای توسعه محصولات و خدمات استفاده می شود. همان طور که در پایین مشاهده میکنید CMMI از سه مدل منبع برآمده است:
• SW-CMM - THE CAPABILITY MATURITY MODEL FOR SOFTWARE -
مدل بلوغ قابلیتها برای نرم افزار
•. SECM - THE SYSTEM ENGINEERING CAPABILITY MODEL -
مدل توانایی مهندسی سیستمها
• IPD-CMM - THE INTEGRATED PRODUCT DEVELOPMENT CAPABILITY MODEL -
مدل توسعه محصول بصورت جامع