بخشی از مقاله

تضمین کیفیت نرمافزار با استفاده از استانداردهای CMMI و TickIT

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

مقدمه
تضمین کیفیت((Quality Assurance به حصول اطمینان از این نکته مربوط میشود که محصولات از کیفیت بالایی برخوردار باشند و این مورد به ارزیابی محصول و فرآیند مربوط میشود. در سال 1984 برسوف تعریفی عملی از QA ارائه داد که بر طبق این تعریف تضمین کیفیت عبارت است از روشها، تکنیکها و ابزارهایی که افراد حرفهای برای حصول اطمینان از برآورده شدن یا فراتر رفتن محصول از استانداردهای از پیش تعیین شده در حین دوران توسعهی محصول به کار میبرند و بدون استاندارهای تجویز شده ویژه، تضمین کیفیت مستلزم حصول اطمینان از این نکته است که محصولی در حداقل میزان پذیرش تجارتی قرار داشته باشد.

فرض مربوط QA آن است که کیفیت فرایند به طور مستقیم کیفیت محصولات تحویل داده شده را تحت تاثیر قرار دهد. دشواری ارزیابی کیفیت محصول بدان معنا است که تاکید فراوانی بر تضمین کیفیت فرایند وجود دارد. به طور منطقی فرض میشود فرایندی با طراحی و مدیریت خوب با احتمال بیشتری به محصولات با کیفیت بالا منجر می گردد. این فرض از سیستمهای سازندهای به دست آمده است که در آنها کیفیت محصول ارتباطی بدیهی با فرایند تولید دارد. در واقع در سیستمهای خودکار تولید انبوه هنگامی که سطح قابل قبولی از کیفیت فرایند به دست آمد کیفیت محصول به دنبال خواهد آمد. این روش برای QA در شکل (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)

مدل توسعه محصول بصورت جامع

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

· تعیین میزان تکامل فرایندهای موجود
· مشخص کردن نکات اساسی کیفیت نرمافزار
· بهبود فرآیندها
· مدیریت پروژه


مراحل توسعه براساس مدل : CMMI

چارچوب CMMI پنج سطح رشد یافتگی را در بر میگیرد. این پنج سطح عبارتاند از :

· سطح نامنظم و ابتدایی
· سطح تکرارپذیر
· سطح تعریفشده
· سطح مدیریتشده
· سطح بهینهسازی

هر سطح از سطوح رشد یافتگی شامل حوزههای فرایند کلیدی یا KPA ها میشود.

.1 سطح یک: اجرای فرآیندها (Performed) یا توسعهی عملکرد کامل فرآیندها.

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

اهداف عمومی در سطح یک، دسترسی به اهداف خاص حوزههای تعریفشده در سازمان است.

فرآیندها با تبدیل ورودیها و منابع کاری و فناوری، محصول و خدمات مورد انتظار را پشتیبانی و مهیا میکنند.

.2 سطح دو: مدیریت فرآیندها (Managed) یا دستیابی به ظرفیت مدیریت عملکرد فرآیندها.

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

مهمترین اختلاف این سطح با سطح اجرای فرآیندها، در مدیریت فرآیند و کنترل عملکرد آن با طرح و برنامهریزی عملکردها و همچنین هدفگذاری و تأکید بر دسترسی به آن اهداف است. منابع لازم برای اجرای فرآیندها تامین شده و در صورت انحراف از اهداف، تصمیمات اصلاحی اتخاذ میگردد. اهداف فرآیندها ممکن است کمّی یا کیفی باشند.

هدف عمومی در این سطح، »نهادینه کردن مدیریت فرآیندها« است.

3. سطح سه: فرآیندهای استاندارد (Defined) با قابلیت تعریف فرآیندهای جدید و توانایی تغییر و بهبود فرآیندهای استاندارد سازمان.

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


مجموعهی فرآیندهای استاندارد سازمان، نهادینهشده و مرتّباً در حال توسعه میباشند. فرآیندهای استاندارد، با تعریف فعالیتها و اجزای فرآیندها، اساس فرآیندهای تعریفشده را شکل میدهند. در فرآیندهای استاندارد، علاوه بر فعالیتها، رابطهی آنها هم تعریف میشود. زیرساختهای سازمانی به منظور پشتیبانی از مجموعهی فرآیندهای استاندارد در حال و آیندهمرتّباً در حال توسعه و بهبود میباشند.

سرمایهی فرآیندهای سازمانی در ارتباط با تعریف و توضیحات، اجرا و توسعهی فرآیندها شکل میگیرند. این نوع فرآیندها از آنجا سرمایه هستند که به منظور توسعه و تحقق اهداف سازمان بنا نهاده شدهاند و به منظور ارائهی ارزشهای حال و آتی سازمان در آنها سرمایهگذاری میشود.

هر فرآیند در این سطح، از پارامترها و مشخصات زیر برخوردار است:

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

مهمترین اختلاف سطح فرآیندهای استاندارد با سطح مدیریت فرآیندها، دامنهی کاربرد شرح و مشخصات فرآیندها، استانداردها و روالها میباشد.

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

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

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

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید