کیفیت نرم افزار (ادامه)

Download Report

Transcript کیفیت نرم افزار (ادامه)

‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫مقدمه اي بر مهندس ي نيازمنديها‬
‫جلسه دوم‬
‫استاد راهنما‪ :‬آقاي دکتر احمد عبدا‪ ..‬زاده‬
‫بهمن ‪91-90‬‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫تعريف نيازمندي‬
‫‪ ‬يك ويژگي كه بايد توسط يك سيستم توسعه يافته‪ ،‬براي حل يك مساله خاص ارائه‬
‫شود‪[SWEBOK].‬‬
‫‪ ‬يك نيازمندي بعنوان ”يك شرط يا قابليت“ تعريف مي شود كه يك سيستم بايد مطابق آن‬
‫كار كند‪[RUP] .‬‬
‫‪ ‬يك عبارت درباره سيستم پيشنهادي كه توافق كليه ذينفعان بايد بر سر آن اخذ شود و در‬
‫جهت رفع مشكل كاربر به اندازه كافي باشد‪.[Lethbridge] .‬‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫تعريف نيازمندي‬
‫‪ ‬استاندارد ‪ IEEE 610.12-1990‬نيازمندي را به صورت زير تعريف ميکند‪:‬‬
‫‪ ‬يک شرط يا قابليت مورد نياز توسط کاربر براي حل يک مسئله يا دستيابي به يک هدف‪.‬‬
‫‪ ‬يک شرط يا قابليت که بايد در سيستم يا مولفه هاي آن وجود داشته باشد تا يک قرارداد‪،‬‬
‫استاندارد‪ ،‬توصيف‪ ،‬يا ساير مستندات رسمي برآورده گردد‪.‬‬
‫‪ ‬يک نمايش مستندشده از يک شرط يا قابليت از موارد ‪ 1‬و ‪.2‬‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫تعريف نيازمندي‬
‫‪‬نقاط کلیدی در مورد نیازمنديها‬
‫‪‬دقیق و کوتاه باشد‬
‫‪‬چیزهایی درباره سیستم باشند‬
‫‪‬همه ذینفعان در مورد اعتبار آن توافق داشته باشند‬
‫‪‬در جهت حل مشکل کاربر باشند‬
‫‪‬می تواند متغیر باشد از یک عبارت سطح باالی مجرد درباره یک سرویس یا محدودیت‬
‫سیستم تا توصیفات کارکردی ریاض ی جزئی [‪]Ian Summerville‬‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫تعريف مهندس ی نيازمندي‬
‫‪‬محاسبه نیازمندیها در ‪ life cycle‬با توجه به ‪ process model‬در‬
‫متودولوژی مشخص‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫مسیر مهندس ی نیازمنديها‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫تولید سیستم بر مبنای ‪View‬‬
‫ذینفعان متفاوت‬
‫‪View‬های متفاوت‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫‪View 4+1‬‬
‫‪SR‬‬
(ISLAB) ‫آزمايشگاه سيستم هاي هوشمند‬
‫ها‬View ‫ابزارهای مختلف برای رسیدن به‬
Scenario
Use-case diagram
User stories
Class model
Collaboration diagram
Class diagram
Structural
Flow model
State diagram
Data flow diagram
Entity relationship
diagram
Behavior
Sequence diagram
Activity diagram
State diagram
(ISLAB) ‫آزمايشگاه سيستم هاي هوشمند‬
Behavior
System
Structure
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫جایگاه مهندس ی نیازمندی‬
‫بعد از تولید‬
‫‪Requirement‬‬
‫در حین تولید‬
‫قبل از تولید‬
‫‪Wish‬‬
‫‪Need‬‬
‫‪PD Contract‬‬
‫‪RFP‬‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫رویکرد مهندس ی نیازمندی برای حرکت به سوی موفقیت‬
‫‪‬کلیه نیازهای کارکردی پوشش داده شوند‪.‬‬
‫‪‬کیفیت مطلوب باشد‪( .‬اندازه کیفیت تعریف شده باشد‪).‬‬
‫اصل صفر‬
‫همه چیز سرمایه است و باید سود‬
‫داشته باشد!‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫تعريف نادرست نيازمنديها‬
‫‪‬در مهندس ی نیازمندیها سعی داریم ‪ Defect‬نداشته باشیم‪.‬‬
‫‪ Defect‬مشکلی است که باید در مرحله بعد آن را حل کنیم‪.‬‬
‫‪‬بدترین (پر هزینه ترین) حالت وقتی است که در هنگام اجرا متوجه ‪Defect‬‬
‫شویم‪.‬‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫نمونه اي از تعريف نادرست نيازمنديها‬
‫• در مثال زير نمونه اي از تعريف نادرست نيازمندي و نتايج آن نشان داده شده‬
‫است‪:‬‬
‫• نيازمندي‪ :‬ساخت يك وسيله نقليه براي جابجايي يك نفر از منزل به محل كار‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫هزينه نسبي رفع خطا در مراحل مختلف تولید نرم افزار‬
‫• هزينه نسبي براي رفع يك خطا در مراحل مختلف توسعه سيستم در جدول زير آورده شده است‪:‬‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫انواع نیازمندی‬
‫‪ ‬نیازمنديهای کارکردی‬
‫‪ ‬بیان سرویسهایی که سیستم باید فراهم نماید‪ ،‬چگونگی واکنش سیستم در برابر‬
‫وروديهای خاص و چگونگی رفتار سیستم در شرایط خاص‬
‫‪ ‬نیازمنديهای غیرکارکردی‬
‫‪ ‬بیان محدودیت ها و قیودی که بر روی سرویسهای کارکردی سیستم باید اعمال‬
‫شود مانند محدودیتهای زمانی‪ ،‬قیودی بر روی فرآیند توسعه‪ ،‬استانداردها و‬
‫غیره‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫کیفیت نرم افزار‬
‫‪ ‬مهندس ی نیازمنديها به کیفیت از دو بعد نگاه می کند‪.‬‬
‫چه چیز تولید میشود‬
‫نیازمنديها‬
‫طراحی‬
‫کد‬
‫تست‬
‫‪Product‬‬
‫‪Quality‬‬
‫سیستم‬
‫چگونه تولید میشود‬
‫استانداردها‬
‫روشها‬
‫فرآیندهای سطح پروژه‬
‫‪Software‬‬
‫‪Quality‬‬
‫‪Process‬‬
‫‪Quality‬‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫کیفیت نرم افزار (ادامه)‬
‫‪ ‬برای دانستن اینکه آیا کیفیت افزایش پیدا کرده یا نه باید بتوانیم کیفیت را‬
‫اندازه گیری کنیم‪.‬‬
‫‪ ‬سوال اساس ی‪:‬‬
‫چگونه می توان کیفیت را اندازه گیری کرد؟‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫کیفیت نرم افزار (ادامه)‬
‫‪ ‬تعریف ‪:Indicators, Metrics, Measures‬‬
‫‪ ‬یک ‪ Measure‬نشانه کمی میزان حجم‪ ،‬سایز‪ ،‬اندازه‪ ،‬بعد و سایر ویژگیهای یک محصول یا فرآیند‬
‫است‪.‬‬
‫‪ ‬در واژهنامه ‪ IEEE‬معنی ‪ Metric‬به شکل زیر ارائه شده است‪:‬‬
‫‪ ‬یک درجه از اندازه کمی که یک سیستم‪ component ،‬یا ‪ process‬برای یک ویژگی تعیین شده‬
‫دارد‪.‬‬
‫‪ ‬یک ‪ Indicator‬عبارت است از یک ‪ Metric‬یا ترکیبی از ‪Metric‬ها که یک دید نسبت به فرآیند‬
‫نرم افزاری‪ ،‬یک پروژه و یا یک محصول نرمافزاری ارائه می دهد‪.‬‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫دیدگاه کیفیت ‪McCall‬‬
‫کیفیت‬
‫معیارهای کیفیت‬
‫فاکتورهای کیفیت‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫دیدگاه ‪ McCall‬در رابطه با فاکتورهای کیفیت‬
‫‪ ‬فاکتورهای کیفیت توسط ‪ McCall‬در سالهای اولیه دهه ‪ 70‬ارائه شده است‪ .‬با این‬
‫وجود فاکتورهای ارائه شده در زمان فعلی نیز به اندازه گذشته معتبر هستند‪.‬‬
‫‪ ‬نرم افزارهایی که در قرن ‪ 21‬هم از این معیارها استفاده می کنند‪ ،‬با وجود تغییر وصف‬
‫ناپذیر تکنولوژی‪ ،‬همچنان از کیفیت باالیی برخوردار خواهند بود‪.‬‬
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫معیارها و فاکتورهای کیفیت ‪McCall‬‬
‫‪ Richard ،McCall ‬و ‪ Walters‬مفهوم کیفیت نرمافزار را در قالب دو مفهوم کلی زیر بررس ی کردند‪:‬‬
‫‪ ‬فاکتورهای کیفیت‬
‫‪ ‬معیارهای کیفیت‬
‫‪ ‬فاکتورهای کیفیت ویژگیهای رفتاری سیستم را نمایش می دهد‪:‬‬
‫‪ ‬مثال‪ :‬درستی‪ ،‬قابلیت اعتماد‪ ،‬قابلیت کارایی‪ ،‬قابلیت تست پذیری‪ ،‬قابلیت حمل و ‪. ....‬‬
‫‪ ‬معیارهای کیفیت ویژگی های فاکتورهای کیفیت هستند که با توسعه نرم افزار در ارتباطند‪:‬‬
‫‪ ‬مثال‪Modularity, accuracy, consistency, error handling :‬‬
‫‪ ‬مثال‪ :‬ماژوالربودن یک ویژگی معماری سیستم نرم افزاری است‪.‬‬
‫‪ ‬یک نرم افزار ماژوالر به طرح امکان جمع آوری ‪component‬های مرتبط را در یک ماژول می دهد و‬
‫باعث می شود قابلیت نگهداری سیستم افزایش پیدا کند‪.‬‬
(ISLAB) ‫آزمايشگاه سيستم هاي هوشمند‬
McCall ‫یازده فاکتور کیفیت از دیدگاه‬
Quality Factor
Definitions
Correctness
The extent to which a program satisfies its specification and fulfills the user’s mission objectives
Reliability
The extent to which a program can be expected to perform its intended function with required
precision
Efficiency
The amount of computing resources and code required by a program to perform a function
Integrity
The extent to which access to software or data by unauthorized persons can be controlled
Usability
The effort required to learn, operate, prepare input, and interpret output of a program
Maintainability
The effort required to test a program to ensure that it performs its intended functions
Testability
The effort required to test a program to ensure that it performs its intended functions
Flexibility
The effort required to modify an operational program
Portability
The effort required to transfer a program from one hardware and/ or software environment to
another
Reusability
The extend to which parts of a software system can be reused in other applications
Interoperability
The effort required to couple one system with another
(ISLAB) ‫آزمايشگاه سيستم هاي هوشمند‬
McCall ‫مثلث کیفیت‬
Product
Revision
Product
Transition
Product
Operations
(ISLAB) ‫آزمايشگاه سيستم هاي هوشمند‬
McCall ‫یازده فاکتور کیفیت از دیدگاه‬
Quality
Categories
Quality Factors
Broad Objectives
Product
Operation
Correctness
Reliability
Efficiency
Integrity
Usability
Does it do what the customer wants?
Does it do it accurately all of the time?
Does it quickly solve the intended problem?
Is it secure?
Can I run it?
Product
Revision
Maintainability
Testability
Flexibility
Can it be fixed?
Can it be tested?
Can it be changed?
Product
Transition
Portability
Reusability
Interoperability
Can it be used on another machine?
Can parts of it be reused?
Can it interface with another system?
‫آزمايشگاه سيستم هاي هوشمند )‪(ISLAB‬‬
‫تکنیک‬
‫‪‬شامل روشهایی است که برای اندازهگیری در روشهای مختلف از آن‬
‫استفاده میکنیم‪.‬‬
‫‪‬مثال‪ :‬کارت ‪ CRC‬که مشخص میکند یک کالس چه میکند‪ ،‬وظیفهاش‬
‫چیست‪ ،‬با چه کالسهایی در ارتباط است‪.‬‬