Transcript فصل16
تضمين کيفيت نرم افزار
فصل 16کتاب پرسمن
ابوالحسن عزیزی،رهام رنجبر،نقی همت پور
آبانماه 1392
1
کيفيت
رابرت پرسینگ:کیفیت می دانید چیست ولی در عین حال نمی دانید چیست ولی
بعضی از چیزها بهتر از بقیه اند یعنی کیفیت آنها بیشتر است.
دیوید گاروین:کیفیت مفهومی پیچیده و چند وجهی است که از پنج دیدگاه متفاوت
قابل توصیف است:
دیدگاه متعالی:همانند پرسینگ استدالل می کند که کیفیت چیزی است کهبالفاصله آن را تشخیص می دهید ولی نمی توانید آن را بصراحت توضیح
دهید.
دیدگاه کاربری -دیدگاه سازندگان -دیدگاه محصولی -دیدگاه ارزش محوردر مورد نرم افزار 2نوع کیفیت مطرح می باشد:
2
کیفیت طراحی که شامل نیازمندیها ،توصیفات ،و طراحی سیستم می باشد.
کیفیت همنوایي که بیشتر بر پیاده سازی تاکید دارد.
رضایت مشتری = تولید محصول +کیفیت باال +تحویل طبق برنامه با بودجه پیش بینی
شده
کيفيت نرم افزار در مفهوم عام
یک فرایند نرم افزاری مناسب،که به شیوه ای بکار برده می شود که
محصولی مفید ایجاد می کند تا ارزش ی قابل سنجش برای سازندگان
این محصول و استفاده کنندگان از آن ایجاد کند .این شامل
کارکردهای مورد انتظار سیستم ،کارایي مورد انتظار،
مستندات استاندارد توسعه و کلیه انتظاراتی که در داخل تیم
توسعه وجود دارد
3
تضمين کيفيت نرم افزار
چرا تضمین کیفیت اهمیت دارد:
مقدار دوباره کاری ها کاهش می یابد.این منجر به کاهش هزینه ها و مهم تر از آن بهبود زمان ارائه به
بازار می شود.
مراحل کار کدام است:
هنگامی دانستید کیفیت چیست،تیم نرم افزار باید یک مجموعه فعالیت های SQAرا شناسایی کند که خطاها را
پیش از تحویل محصوالت کاری را از آنها جدا کند.
مسئولیت تضمین کیفیت نرم افزار بر عهده افراد متفاوتی است:
مهندسین نرم افزار،مدیران ،مشتریان،فروشندگان و افرادی که در گروه SQAخدمت می کنند.
4
عناصر تضمين کيفيت نرم افزار
استانداردها
اندازه گیری
مدیریت
-1مدیریت تغییرات
-2مدیریت منابع
خرید
-3مدیریت امنیت
-4مدیریت ریسک
آزمون نرم افزار
(آزمایش)
جمع آوری و تحليل
و
خطاها
آموزش
ایمنی
5
مرورها و
ممیزی ها
وظايف،اهداف و معيارهای SQA
تضمین کیفیت نرم افزار از چند وظیفه مرتبط با دو گروه متفاوت تشکیل می
شود:
مهندسان نرم افزار:کارهای فنی را انجام می دهند،با اعمال روش های فنی و موازین منسجم،اجرای باز
بینی های فنی رسمی و اجرای آزمون های نرم افزاری برنامه ریزی شده کیفیت را
کنترل می کنند.
-گروه : SQA
6
مسئولیت برنامه ریزی برای تضمین کیفیت،ثبت وقایع،تحلیل و گزارش دهی بر عهده
آنان است.
وظیفه گروه SQAکمک به تیم نرم افزاری،جهت دستیابی به یک محصول
نهایی با کیفیت باالست.
وظايف گروه SQA
تهيه يک طرح SQAبرای پروژه
در این طرح موارد زیر مشخص می شود:
شرکت در توسعه توصيف فرآيند نرم افزاری پروژه
7
ارزیابی هایي که باید انجام شوند.
بازرسی ها و بازبینی هایی که باید اجرا گردند.
استانداردهایي که باید در پروژه مورد توجه قرار گیرند.
روال هایی برای گزارش و پیگیری خطا.
مستنداتی که باید توسط گروه SQAتولید شوند.
مقدار بازخوردی که به تیم نرم افزار منتقل می گردد.
تیم نرم افزاری،فرایندی برای انجام کار انتخاب می کند.گروه SQAتوصیف فرآیند را
برای مطابقت با سیاست سازمانی،استانداردهای داخلی،استانداردهای تحمیل شده از خارج
سازمان(مثل ) ISO 9001وبخش های دیگر برنامه پروژه نرم افزار،مورد بازبینی قرار
می دهد.
وظايف گروهSQA
بازبينی ومرور فعاليتهای مهندسی نرم افزار برای وارسی مطابقت با فرآيند
نرم افزاری مشخص واطمينان از پيروی اصول
بازرسی محصوالت کاری برای وارسی مطابقت با اصول و محصوالت از پيش
تعيين شده بعنوان بخشی از فرايند نرم افزار.
8
گروه SQAانحرافات از فرایند را شناسایی،مستند سازی و پیگیری کرده ،انجام
تصحیحات را مورد وارسی قرار می دهد.
انحرافات را شناسایی ،به صورت Randomیک سری از مستندات مورد بررسی قرار
می گیرند.
به صورت ادواری نتایج و گزارشاتی را به مدیریت پروژه ارائه می نماید.
حصول اطبه مينان ازاينکه انحرافات موجود در فرآيند و همچنين مقابله و
رسيدگی آنهابراساس يک رويه مستند سازی گرديده است.
ثبت هرگونه عدم تطابق و مواردی که به آنها رسيدگی نشده است و گزارش
آنها به مديريت ارشد.
موارد عدم تطابق آنقدر پیگیری شوند تا برطرف شوند.
اهداف ،صفات و معيارها
9
وظایف و کنش های SQAکه در اسالید قبل شرح داده شد برای دستیابی به
اهداف عملی زیر اجرا می شوند:
کیفیت خواسته ها SQA:باید مطمئن شودکه تیم نرم افزاری بطور مناسب مدلخواسته ها را مرور کرده است تا به سطح باالیی از کیفیت دست پیدا کند.
کیفیت طراحی:هرعنصر ازمدل طراحی باید توسط تیم نرم افزاری ارزیابیشود تا اطمنیان حاصل گرددکه کیفیت باالیی ازخود نشان دهد و خود طراحی با
خواسته ها مطابقت دارد.
کیفیت کدها-اثر بخشی کنترل کیفیت
تضمين کيفيت آماری نرم افزار
تضمین کیفیت آماری شامل مراحل زیر می باشد:
10
اطالعات مربوط به نقایص نرم افزار جمع آوری و گروه بندی می شود.
کوشش می شود رد هر نقص تا علت اصلی آن پیگیری شود
با استفاده از اصل پارتو آن 20%علل جدا شود.
هنگامی که چند علت حیاتی شناسایی شدند،حرکت برای تصحیح مشکالتی که باعث این
نقایص شده اند،آعاز می شود.
شش سيگما
پرکاربرد ترین راهبرد برای تضمین کیفیت آماری در صنایع کنونی است.یک
روش شناسی منضبط است که از داده ها و تحلیل آماری برای اندازه گیری
عملکرد شرکت و بهبود بخشیدن به آن از طریق شناسایی و حذف نقایص در
فرایندهای تولیدی و خدماتی بهره می برد.در روش شناسی شش سیگما سه
مرحله اصلی وجود دارد:
11
تعریف خواسته های مشتری،محصوالت قابل تحویل و اهداف پروژه از طریق روش های
کامال مشخص برای برقراری ارتباط با مشتری.
اندازه گیری فرایند موجود و خروجی آن برای تعیین کیفیت فعلی(جمع آوری معیارهای
نقص)
تحلیل معیارهای نقص و تعیین چند علت حیاتی.
شش سيگما
اگر یک فرایند نرم افزار موجود،در جای خود باشد ولی به بهبود نیاز داشته
باشد،شش سیگما دو مرحله اضافی برای آن پیشنهاد می کند:
12
بهبود بخشیدن به فرایند با حذف علل ریشه ای نقایص.
کنترل فرایند برای حصول اطمنیان از اینکه کارهای آینده باعث ورود دوباره ی علل این
نقایص نخواهد شد.
این مراحل اصلی و اضافی را گاهی روش (DMAICتعریف،اندازه
گیری،تحلیل،بهبودبخشی،و کنترل )می نامند.
قابليت اطمنيان نرم افزار
13
بدون تردید قابلیت اطمنیان یک برنامه کامپیوتری،عنصر مهمی از کیفیت کلی
آن به شمار می رود.اگر برنامه ای به کرات از اجرا باز بماند،عوامل کیفیتی
دیگر نرم افزار،اهمیت خود را از دست خواهند داد.
قابلیت اطمنیان احتمال عملکرد بدون شکست یک برنامه کامپیوتری در محیطی
مشخص برای یک زمان معین می باشد.
هر گاه قابلیت اطمنیان مورد بحث قرار می گیرد یک سوال محوری مطرح می
شود:شکست یا Failureچیست؟در حیطه کیفیت نرم افزار و قابلیت
اطمنیان،شکست عبارت از عدم همخوانی با خواسته های نرم افزار است .در
همین حیطه نیز درجات مختلفی از شکست وجود دارد.
موازين مرتبط با قابليت اطمنيان
14
ریشه مسائل قابلیت اطمینان نرم افزار را تقریبا همیشه می توان در نقایص
طراحی یا پیاده سازی یافت.
میزان ساده ای از قابلیت اطمینان،زمان میانگین بین دو شکست می باشد.
MTBF=MTTF+MTTR
MTBF: Mean Time Between Failures
MTTF: Mean Time to Failure
MTTR: Mean Time to Repair
=A
MTTF
MTTF+MTTR
MTBFو موازین مرتبط با آن مبتنی بر زمان CPUمی باشد.
ايمنی نرم افزار
15
ایمنی نرم افزار یکی از فعالیت های تضمین کیفیت است که بر شناسایی و
سنجش ریسک های بالقوه ای تاکید دارد که ممکن است تاثیری منفی بر نرم
افزار داشته ،منجر به شکست کل سیستم شود.اگر بتوان ریسک ها را در همان
ابتدای فرایند نرم افزار شناسایی کرد،می توان ویژگیهایی را در طراحی نرم
افزار مشخص کرد که ریسک های بالقوه را حذف یا کنترل کند.
طرح SQA
طرح SQAراهنمایی برای نهادینه کردن تضمین کیفیت نرم افزار فراهم می
آورد،به عنوان الگویی برای فعالیت های SQAعمل می کند که برای هر
پروژه نرم افزاری نهادینه می شوند.
IEEEاستانداردی برای طرح های SQAپیشنهاد کرده است].[IEEE93این
استاندارد ساختاری را پیشنهاد می کند که در آن موارد زیر باید مشخص گردد:
16
هدف و دامنه کاربرد طرح
توصیفی از همه ی محصوالت کاری مهندسی نرم افزار
همه استانداردهای قابل استفادهدر طول فرایند نرم افزار
وظایف و کنش های (SQAاز جمله مرورها و ممیزی ها) و محل قرار گرفتن آنها
ابزارها و روش هایی که از وظایف و کنش های SQAپشتیبانی می کنند
رویه های مدیریت پیکربندی نرم افزار
روش های مونتاژ،ایمن سازی و نگهداری از کلیه سوابق مرتبط با SQA
نقش ها و مسوولیت های سازمانی در قبال کیفیت محصول
خالصه
17
تضمین کیفیت یکی از فعالیت هایی است که در هر مرحله فرایند نرم افزار
اجرا می شود SQA .شامل روال هایی برای بکارگیری موثر روش ها و
ابزارها،بازبینی های فنی رسمی،راهبردها و تکنیک های آزمون،روال هایی
برای کنترل تغییرات،روال هایی برای حصول اطمنیان از مطابقت با
استانداردها و ساز و کارهای اندازه گیری و گزارش دهی می شود.
بطور خالصه باید به سخنان دان و اولمان توجه داشته باشید که تضمین کیفیت
نرم افزار نقشی است که ادراک های مدیریتی و شاخه های طراحی تضمین
کیفیت بر فضای مدیریتی و فناوری مهندسی نرم افزار می زنند.