Transcript فصل 14
بسـم هللا الرحمـن الـرحیـم
1
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
ارائه فصل ( 14مفاهیم کیفیتی)
استاد:
دکتـر حسنـی
تهیه کنندگـان:
امین جعفریان
فاضل کامران
سید امید علوی مهریان
ارائه دهنده :سید امید علوی
مهریان
مهرمـاه 92
2
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
نگــاهــی گــذرا:
مفاهیم کیفیت چیست؟
پاسخ به این سوال به آسانی که تصور میکنید نیست.
چه کس ی آنرا انجام میدهد؟
هرکس ی از جمله :مهندسان نرم افزار – مدیران – همه طرفهای ذی نفع
در فرآیند نرم افزار دخیل هستند.
که
چرا اهمیت دارد؟
مقدار دوباره کاری ها کاهش می یابد که این منجر به کاهش هزینه ها و
مهمتر ازهمه بهبود زمان ارائه به بازار می شود.
3
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
مراحل کار کدام است؟
فرآیند و کار مهندس ی نرم افزار اثبات شده
مدیریت منسجم پروژه
کنترل فراگیر کیفیت
وجود زیر ساخت برای تضمین کیفیت
محصول کار چیست؟
نرم افزاری که نیاز مشتری را برآورده میکند
بطور صحیح و با قابلیت اطمینان کار میکند
برای کسانی که با آن کار میکنند ایجاد ارزش میکند
چطور اطمینان حاصل کنیم که درست از عهده کارها برآمده ایم؟
کنترل کیفیت با بررس ی نتایج همه فعالیتها
بررس ی خطاها قبل از تحویل و نقایص در میدان
4
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
5
در اوایل قرن حاضر مجله [lev01]CIOچاپ کرد که:
به 78میلیارد دالر ضرر ساالنه پایان دهیم! شرکتهای تجاری در آمریکا میلیاردها دالر
صرف نرم افزارهایی میکنند که آنچه را قرار است انجام دهند انجام نمیدهند
:[Ric01]Information Week
کد نویس ی ناقص هیوالی صنعت نرم افزار است و 45درصداز اتالف وقت ها را باعث
میشود و ساالنه هزینه ای حدود صد میلیارد دالر را متوجه شرکتهای آمریکایی میکند.
در سال ComputerWorld [Hil05] ، 2005چنین گزارش کرد:
نرم افزارهای بد تقریبا هر سازمانی را که از کامپیوتر استفاده میکند به آشوب میکشد و
باعث میشود در مدت زمانی که کامپیوتر ها از کار می افتند:
ساعتها وقت کارکنان به هدر برود
داده ها از بین بروند یا مخدوش شوند
فرصت های فروش از بین بروند
هزینه های گزاف صرف نگهداری و پشتیبانی شود و از رضایت مشتری
کاسته شود
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
یک سال بعد ] InfoWorld [Fos06در باره وضعیت اسف بار کیفیت نرم افزار
نوشت و گزارش کرد که مساله کیفیت اصال بهبود نیافته است.
امروزه کیفیت نرم افزار همچنان به عنوان یک مشکل باقی است.
ولی چه کس ی را باید مالمت کرد؟
سازندگان مشتریان و سایر ذی نفع ها را مالمت میکنند با این استدالل که:
تاریخ تحویل های غیر موجه و جریان پیوسته تغییرات ،آنها را وادار می سازد تا نرم افزار
را پیش از اعتبارسنجی کامل تحویل دهند .اما حق باکیست؟ هر دو – و مساله این است
6
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
کیفیـت چیسـت :
پرسینگ :کیفیت را برتر بودن یک سری اشیاء یا چیزهای خاص بر چیزهای دیگر تعریف کرده است که باعث
میشود انسان گرایش بیشتری نسبت به آنها نشان دهد.
دیوید گاروین :کیفیت مفهومی پیچیده و چند وجهی است که از 5دیدگاه متفاوت قابل توصیف است:
دیدگاه متعـالی کیفیت چیزی است که بال فاصله آنرا تشخیص می
آنرا تعریف کنید.
دهید ولی نمی توانید به صراحت
دیدگاه کـاربری کیفیت بر حسب اهداف خاص کاربر نهایی دیده می شود.
دیدگاه سازندگـان کیفیت بر حسب مشخصات اولیه محصول تعریف می شود.
دیدگاه محصولـی کیفیت را میتوان به خصوصیات ذاتی (از قبیل قابلیت ها و ویژگیها) محصول ربط داد.
دیدگاه ارزش محـور کیفیت بر اسا میزان پولی سنجیده میشود که مشتری حاضر به پرداخت برای
محصول است.
7
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
کیفیت متـابعتـی:
در کیفیت متابعتی میزان متابعت پیاده سازی از طراحی و برآورده شدن
خواسته ها و اهداف کارایی توسط سیستم حاصل مورد توجه قرار میگیرد.
دیدگـاه رابـرت گالس در مـورد کیفیت:
رابرت گالس مدعیست که کیفیت اهمیت دارد اما اگر کاربر رضایت نداشته
باشد هیچ چیز دیگری اهمیت ندارد.
تحویل در زمانبندی و بودجه تعیین شده +کیفیت خوب +محصول مطابق استاندارد =
رضایت کاربر
دیـدگـاه دمـارکـو در مورد کیفیت:
کیفیت یک محصول ،تابعی است از این که چه مقدار دنیا را تغییر میدهد تا
بهتر شود
8
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
کیفیت نرم افزار:
در عمومی ترین حالت کیفیت نرم افزار را میتوان به صورت زیر تعریف کرد:
فرایند نرم افزار اثربخش ,زیرساختی را بنا می کند که هرگونه تالش برای ساخت یک
محصول نرم افزاری با کیفیت باال را پشتیبانی می کند.
محصول مفید ,محتویات ,قابلیت ها و ویژگی هایی را تحویل می دهد که مطلوب کاربر نهایی
هستند.
یک نرم افزار با کیفیت باال با افزودن ارزش برای تولیدکننده و کاربر این محصول نرم
افزاری ,هم برای سازمان وهم برای جامعه کاربران نهایی مزیت فراهم می کند.
نتیجه برخورداری از کیفیت نرم افزار:
در آمد بیشتر برای محصول نرم افزاری
منفعت بهتر هنگام پشتیبانی یک برنامه کاربردی از یک فرآیند تجاری
بهبود دسترس ی به اطالعات حیاتی برای شرکت تجاری خواهد بود.
9
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
.14-2ابعاد کیفیتی گاروین
کیفیت کارایی :تحویل همه محتویات ،قابلیتها و ویژگیهای خواسته شده و ایجاد ارزش برای کاربر.
کیفیت ویژگی ها :فراهم کردن ویژگیهایی که باعث خشنود کردن کاربران نهایی شوند.
قابلیت اطمینان :تحویل ویژگیها بدون شکست و خطا و در دسترس بودن در مواقع نیاز.
متابعت :تبعیت از استاندارد های داخلی و خارجی مربوط به کاربرد مورد نظر.
دوام :بدون ایجاد اثرات جانبی و کاهش قابلیت اطمینان قابل نگهداری و شکال زدایی باشد .
قابلیت سرویس دهی :در زمان کوتاه قابل نگهداری با اشکال زدایی باشد.
زیبایی شناس ی :زیبا باشد.
ادراک :مجموعه پیش داوری بر ادراک شما از کیفیت تاثیر دارد.
10
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-2-2عوامل کیفیتی مک کال
11
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-2-2عـوامل کیفیتـی مـک کـال
12
•
•
•
•
•
•
•
•
•
•
•
•
درستی
قابلیت اطمینان
بازدهی
انسجام
قابلیت استفاده
قابلیت نگهداری
انعطاف پذیری
آزمون پذیری
حمل پذیری()portability
قابلیت استفاده مجدد
قابلیت کار متقابل
معیارهای مک کال فقط به طور غیر مستقیم و
نسبی به ارزیابی کیفیت می پردازد.
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-2-3عوامل کیفیتی ISO 9126
13
قابلیت عملیاتی :حد برآوردن نیازها بر اساس مناسب بودن ،صحیح
بودن ،قابلیت کار متقابل ،تطابق و امنیت
قابلیت اطمینان :مدت زمان در دسترس بودن بر اساس بلوغ ،تحمل
خطا ،قابلیت رهایی یافتن از خطا
قابلیت استفاده :سهولت استفاده بر اساس قابلیت درک ،قابلیت فراگیری،
قابلیت کار با آن
بازدهی :حد استفاده بهینه از منابع سیستم بر اساس رفتار زمانی و رفتار
منابعی
قابلیت نگهداری :سهولت ترمیم بر اساس تحلیل پذیری ،تغییر پذیری،
پایداری و آزمون پذیری
حمل پذیری :سهولت انتقال بر اساس تطبیق پذیری ،ناپایداری ،مطابقت،
قابلیت جایگزینی
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-2-4عوامل کیفیتی هدفمند
14
بصیرت گرایی(:)Intuitiveness
میزان پیروی واسط از الگوهای کاربرد مورد انتظار به طوری که
حتی یک کاربر تازه کار بتواند بدون نیاز به آموزش زیاد از آن
استفاده کند.
بازدهی(:)Efficiency
میزانی از امکان یافتن عملیات و اطالعات یا استفاده از آنها
استحکام(:)Robustness
میزان اداره کردن داده های ورودی بد یا تعامل نامناسب کاربر
توسط نرم افزار
غنا(:)Richness
میزان ارائه مجموعه ای غنی از ویژگی ها به وسیله ی واسط
با بررس ی این عوامل و پاسخ به سواالتی که ذیل مفهوم هر
عامل مطرح میگردد ،اگر پاسخ اکثر سواالت "مثبت" باشد این
کهدهندهنرم افزار کیفیت باالیی از خود نشان دهد.
احتمال وجود دارد
سید امید علوی مهریان
ارائه
مهندس ی نرم افزار پیشرفته
15
14-2-5کمـی کـردن کیفیـت:
مجموعه عوامل کیفی که مورد بحث قرار گرفتند ماهیت موضوعی و تخصص ی داشتند
و برای آنکه ارزش داشته باشند باید توسط کارشناس انجام شوند .
لذا برای حل این مشکل راهی برای به دست آوردن اندازه گیری های کمی جهت تحلیل
عینی مورد نیاز است که در فصل 23بررس ی خواهند شد.
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-3معضل کیفیت نرم افزار
16
بتران مایر معضل کیفیت را چنین مورد بحث قرار میدهد :
اگر یک نرم افزار افتضاح تولید کنیم هیچ کس مایل به خریدن آن نخواهد بود
اگر بی اندازه زمان و تالش صرف تولید نرم افزاری مطلقا کامل کنیم و پول هنگفتی هم
صرف کنیم کار تولید آنقدر طول میکشد که:
از کار عقب خواهیم ماند
زمان مناسب بازار را از دست خواهیم داد
همه منابع خود را به هدر میدهیم
در نتیجه باید به یک حد میانی دست پیدا کنیم که محصول آن قدر خوب باشد که بال
فاصله طی مرحله ارزیابی برگشت داده نشود و در عین حال آن قدر هم در پی کمال گرایی
نباشیم که برای کامل شدن به کار و هزینه بیش از حد نیاز داشته باشد.
یعنی هنگامی که با معضل کیفیت مواجه شدیم بکوشیم موازنه برقرار کنیم:
تالش کافی برای ایجاد کیفیت قابل قبول بدون توقف پروژه
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
معضالت کیفیـت نـرم افـزار شـامل مـوارد زیـر است:
نرم افزار « به قدر کافی خوب »
هزینه کیفیت
ریسک
اهمال و بی کفایتی
کیفیت و امنیت
تأثیر کنش های مدیریتی
17
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-3-1نرم افزار « به قدر کافی خوب »
دقیقا منظور از "به قدر کافی خوب" چیست؟
نرم افزاریست که قابلیت ها و ویژگیهای مطلوب کاربر را با کیفیت باال تحویل دهد ولی
در عین حال ،قابلیت ها و ویژگیهای تخصص یافته تر یا گمنام تری را تحویل می دهد
که حاوی اشکال های ناشناخته شده اند.
فروشنده نرم افزار امیدوار است که اکثریت وسیع کاربران نهایی به این اشکال ها به
دیده اغماض بنگرند ،چون از سایر قابلیت های عملیاتی برنامه بسیار راض ی هستند.
18
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-3-1نرم افزار « به قدر کافی خوب »
دقیقا منظور از "به قدر کافی خوب" چیست؟
"به قدر کافی خوب" ممکن است در برخی دامنه ها ی کاربردی و برای چند شرکت بزرگ
جواب دهد .ولی اگر برای یک شرکت کوچک کار می کنید مراقب باشید که این ریسک
ممکن است آبروی شرکت را برای همیشه به خطر اندازد.
اگر در دامنه کاربردی معین کار میکنید(مثال نرم افزارهای زمان حقیقی تعبیه شده) یا برنامه های
کاربردی میسازید که با سخت افزار ارائه میشوند (مثال نرم افزارهای مخابراتی و نرم افزارهای خودرو)
تحویل نرم افزاری با اشکال های شناخته شده و معلوم میتواند سهل انگاری باشد و شرکت را در
مظان اتهام قرار دهد.
نتیجه:
19
این فلسفه میتواند جواب بدهد ولی تنها برای چند دامنه با کاربرد معدود و در
مجموعه محدودی از کاربردها
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-3-2هـزینـه کیفیت:
هزینه کیفیت شامل همه هزینه هایی میشود که در جستجوی کیفیت یا اجرای
فعالیتهای مرتبط با کیفیت و هزینه های ناش ی از فقدان کیفیت تحمیل می شوند:
هزینه هـای پیش گیـری
هزینه هـای ارزی ــابی
هزینـه ه ــای شکست
20
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
هزینـه هـای پیش گیـری:
فعالیت های مدیریتی موردنیاز برای برنامه ریزی و هماهنگ کردن کلیه فعالیت های
تضمین کیفیت
هزینه فعالیت های فنی برای توسعه و تکمیل مدل خواسته ها ومدل
طراحی
هزینه های برنامه ریزی آزمون
هزینه همه ی آموزش های مرتبط با این فعالیت ها
21
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
هزینه هـای ارزیـابی:
شامل فعالیتهای انجام شده برای بدست آوردن دیدی از وضعیت محصول در نخستین
گذر از هر فرآیند میشود مثال:
هزینه اجرای باز بینی های فنی برای محصوالت کاری مهندس ی نرم افزار
هزینه جمع آوری داداه ها و ارزیابی معیارها
هزینه آزمون و اشکال زدایی
22
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
هزینـه هــای شکست:
به آندسته از هزینه هایی گفته میشود که در صورت عدم بروز خطا قبل یا بعد از
رسیدن محصول به دست مشتری ،ناپدید می شوند.
در کل هزینه های شکست به دو دسته تقسیم میشوند:
هزینه های شکست داخلی
هزینه های شکست خارجی
23
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
هزینه های شکست داخلی:
هزینه های مربوط به خطاهایی که در محصول و قبل از رسیدن آن به مشتری کشف
میشوند.
مثال:
هزینه الزم برای اجرای دوباره کاری برای تصحیح خطا
هزینه ناش ی از اثرات جانبی که در اثر دوباره کاری ها ایجاد می شود.
هزینه های مربوط به جمع آوری معیارهای کیفیتی که به سازمان این امکان
را می دهند تا به حالت های شکست دست پیدا کند.
24
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
هزینه های شکست خارجی:
هزینه های مربوط به نقایص ی که پس از رسیدن محصول به دست مشتری کشف
میشوند .که عبارتند از:
جلب رضایت شاکی
مرجوع و جایگزین کردن محصول
کمک به پشتیبانی خطی و هزینه های کار مرتبط با ضمانت
بدنامی و ضرر و زیان
25
ارائه دهنده
سید امید علوی مهریان
میانگین هزینه های صنعتی برای تصحیح یک نقص
مهندس ی نرم افزار پیشرفته
این جدول بر اساس داده های جمع آوری شده توسط بوهم طراحی شده
26
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-3-3ریسک :
نرم افزارهای با کیفیت پایین هم برای سازنده و هم برای کاربر نهایی
ایجاد ریسک میکند .
افزایش هزینه ها نمونه ای از ریسک میباشد.
کیفیت نرم افزار اهمیتی اساس ی دارد و برنامه های کاربردی باید ضد
خطا باشند زیرا کدهای ضعیف میتوانند باعث مرگ شوند.
در نتیجه :
27
کیفیت ضعیف منجر به ریسک می شود که برخی از آنها بسیار
جدی اند.
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-3-4اهمال و بی کفایتی:
کار با نیات خوب از هر دو طرف شروع میشود ولی هنگام تحویل سیستم اوضاع خراب
میشود:
سیستم دیر جواب میدهد
از تحویل دادن قابلیتها و ویژگیهای مطلوب باز می ماند
مستعد خطاست
رضایت مشتری را جلب نمیکند
28
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-3-5کیفیت و امنیت:
امنیت نرم افزار با موضوع کیفیت کامال مرتبط است به بیان ساده نرم افزاری که
کیفیت پایین دارد نفوذ در آن راحت است وریسک امنیتی را با تمام هزینه ها
ومشکالت مربوط به آن افزایش می دهد.برای ساخت سیستمی امن باید کیفیت را
کانون توجه قرار دهید واین توجه ویژه باید طی طراحی شروع شود.
دو نوع مشکل نرم افزاری وجود دارد:
اشکال ها )(Bugsکه مربوط به پیاده سازی میشوند
نقص های نرم افزار )(Flawsکه مربوط به مشکالت معماری در طراحی
میشوند
29
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-3-6تأثیر کنش های مدیریتی:
کیفیت نرم افزار غالبا به همان اندازه که از تصمیم گیریهای فناوری تاثیر می پذیرد از
تصمیم گیریهای مدیریتی نیز تاثیر میپذیرد.
تصمیم گیری های برآوردی
تصمیم گیری های زمان بندی
تصمیم گیری های مربوط به ریسک
30
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
31
معضل کیفیت نرم افزار را میتوان با قانون مسکیمن خالصه کرد:
هرگز وقت برای انجام درست کار وجود ندارد ولی همواره برای دوباره
کاری وقت هست.
نصیحت:
شتاب نکردن برای انجام درست کارها ،تقریبا همیشه تصمیم اشتباهی
نیست.
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-4دستیابی به کیفیت نرم افزار
کیفیت نرم افزار نتیجه ی مدیریت خوب پروژه و کار مهندس ی نرم افزار
مستحکم است
مدیریت و کار در حیطه 4فعالیت زیر گسترده است:
14-4-1 روش های مهندس ی نرم افزار
14-4-2 تکنیک های مدیریت پروژه
14-4-3 کنترل کیفیت
14-4-4 تضمین کیفیت
32
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-4-1روش های مهندس ی نرم افزار:
برای ساخت نرم افزار با کیفیت بال باید:
مساله را خوب درک کرد
طراحی با مساله همخوانی داشته باشد
33
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-4-2تکنیک های مدیریت پروژه:
مدیریت پروژه میتواند کیفیت نرم افزاری را به نحوی مثبت تحت تاثیر قرار دهد اگر:
مدیر پروژه از برآوردها استفاده کند
وابستگیهای زمانبندی درک شده باشد
برنامه ریزی برای ریسک انجام شده باشد
34
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
14-4-3کنترل کیفیت:
مجموعه ای از کنش های مدیریت نرم افزار که به کمک آن ها می
توان اطمینان حاصل کرد که هر محصول کاری ،اهداف کیفیتی اش را
برآورده ساخته
14-4-4تضمین کیفیت
شامل مجموعه وظایف ممیزی و گزارش دهی می شود که اثربخش
بودن و کامل بودن کنش های کنترل کیفیت را ارزیابی میکند.
35
ارائه دهنده
سید امید علوی مهریان
مهندس ی نرم افزار پیشرفته
زندگـی کوتـاهتر از آن است که لحظاتت
را به دست غم بدهـی...
موفـق بـاشید
36
ارائه دهنده
سید امید علوی مهریان