خصوصیات کیفی نرم افزار
Post on 09-Jan-2016
193 Views
Preview:
DESCRIPTION
TRANSCRIPT
خصوصیات کیفی نرم افزار
واحد علوم و تحقيقات
مهندسي نرم افزار (محسن پيشرفته
زاده(
مقدمه1
فهرست
مدل هاي كيفي2
خصوصيات كيفي نرم افزار3
مديريت كيفي نرم افزار4
Tradeoffبين خصوصيات نرم افزاري 5
COTSخصوصيات كيفي در مولفه هاي 6
3
خصوصيت كاربردهاي بحراني:
1
کاربردها نیاز به اجرای پیوسته هستند.2
کاربردها نیاز به تعامل با دستگاه های سخت افزاری هستند.
عملکرد کاربرد بستگی به ویژگی های کیفی مانند دقت 4باال ،قابلیت اطمینان ،ایمنی،قابلیت همگاری با بخش های
دیگر دارد.
چرخه عمر طوالنی دارند و نیازمند بهبود تکاملی می باشند
تعريف كيفيت :
يعني محصول بايد ويژگي هايش را برآورده كند.•
تعريف كيفيت در استاندارد
كيفيت نرم افزار درجه اي است كه نرم IEEEدر •افزار تركيبي از خصوصيات مطلوب را دارا مي باشد.
پيچيده بون بحث كيفيت در سيستم هاي نرم افزاري تنش و بحرانی که بین نیازمندی های کیفی •
مشتریان )مانند کارایی ،قابلیت اطمینان و ...( و نیازمندی های کیفی تولید کنندگان )قابلیت نگهداری و استفاده مجدد( وجود دارد.
برای بیشتر نیازمندی های کیفی روشی روشن و •بدون ابهام جهت تعریف آنها وجود ندارد.
IEEE
3
Quality Control
2
Quality Planning
1
Quality Assurance
مديريت كيفيت نرم افزار :
در : تعريLف نيLاز مLورد كيفي سLطوح اينكLه از هLدف محصLول نLرم افLزاري بLرآورده شLود ،بصLورتيكه اسLتاندارد هLا
و رويه هاي تعريف شده در نظر گرفته شود.
تضمين كيفيت
برنامه ريزي كيفيت
كنترل كيفيت
نيازمندي هاي سيستم نرم افزاري
يازمندي هاي سيستمن
نيازمندي هاي وظيفه اي
عملکرد خام سيستم يا به عبارت ديگرتوانايي سيستم
نيازمندي هاي غير وظيفه اي
کارايي
امنيت
Usability
Functionality
Supportability
FURPS
Supportability
Performance
: FURPS مدل
Reliability
Usability
Efficiency
Maintainability
Portability
Functionality
: ISO9126 مدلSuitability
AccuracyInteroperability
ComplianceSecurity
Fault tolerance
RecoverabilityMaturity
Understandability
OperabilityLernability
Timebased EfficiencyResourcebased
Efficiency
Analysability
Stability
Changeability
Testability
Adaptability
Conformance
Installability
Replaceability
General UtilityPortability
As is Utility
Reliability
Efficiency
Human Engineering
Maintainability
Testability
Understandability
Modifiability
: Boehm مدل
MC CallProduct
Operation
Correctness
Reliability
Efficiency
Integrity
Usability
Product Revision
Maintainability
Testability
Flexibility
Product Transition
Portability
Reusability
Interoperability
Mc Call مدل
: Clements , Bass , Kazman مدل
غير قابل مشاهده در زمان اجرا
قابل مشاهده در زمان اجرا
خصوصيات كيفي
• Performance• Security• Availability• Functionality• Usability
• Modifiability• Portability• Integritability• Reusability• Testability
محصول نرم افزاري
زمان
كيفيت
هزينه
مشخصات يك محصول نرم افزاري:
:(:Performanceكارايي)
رخدادهاي از تعدادي به سيستم پاسخگويي براي نياز مورد زمان کارايي• مورد معين زماني فاصله يک در که تعداد رويدادهايي يا و مشخصاست گيرند، مي قرار پردازش
محاسبه كارايي
.از طريق محاسبه زمان مورد نياز براي پاسخگويي به يک رخداد خاص•محاسبه تعداد رخدادهايي که در واحد زمان مورد پاسخگويي قرار مي •
گيرند.
(:Securityامنيت )
توانايي يک سيستم را براي مقاومت در برابر مسائل ناخواسته و تالشهاي •- در زماني که خود سيستم در حال غير مجاز و همچنين امتناع از سرويس. ايجاد سرويسهايي براي کاربران است
انواع سيستم هاي امنيتي
برنامه هاي دولتي و نظامي )محرمانگي اطالعات(•(جامعيت بانک اطالعاتي برنامه هاي بانکي و مالي)•
(قابليت استفاده و دسترسي برنامه هاي دانشگاهي و علمي)•
(:Availabilityدر دسترس بودن )
اين صفت با خرابي و نقص سيستم و نتايج مرتبط با آن سرو كار دارد. . •اين ويژگي کيفيتي نشان مي دهد که سيستم چقدر قادر است که
مشکالت خود را رفع کند وبه حالت طبيعي خود باز گردد.
availabilityاندازه گيري
در دسترس بودن کسري از زمان است که سيستم زنده است و اجرا مي •شود
(Usabilityقابليت استفاده )
قابليت اس\تفاده مرب\وط ب\ه اين اس\ت ک\ه ي\ک ک\اربر ب\ه چ\ه م\يزان ب\ه راح\تي •ق\ادر اس\ت ک\ار م\ورد نظ\ر خ\ود را انج\ام ده\د و همچ\نين سيس\تم چ\ه م\يزان
از انواع خواسته هاي آن را پشتيباني مي نمايد
اندازه گيري قابليت استفاده
•Learnability•Efficiency
•Memorability•Errors
•Satisfaction
( Modifiabilityتغيير پذيري)
توانايي اينکه بتوان در سيستمي تغييرات را با سرعت و کارايي باال و •هزينه کم ايجاد کرد،اصالح پذيري است
تغييرا ت ممکن را به سه دسته کلي زير تقسيم مي کند
.تغييراتي که منجر به اصالح پذيري در يک مؤلفه مي شوند•تغييراتي که منجر به اصالح پذيري در بيش از يک مؤلفه مي •
شوند.تغيير مطلوب فراتر از اصالح پذيري مؤلفه ها است. مثال تغيير •
در سبک معماري که يک تغيير بنيادي است
تغيير پذيري در دو مسئله بررسي ميشود:
چه چيزي ميتواندتغييركند ؟••platform ي كه سيستم در آن ساكن است ،محيطي كه
سيستم در آن اجرا ميشود ،خصوصيات كيفي ،ظرفيتش و ...چه زماني تغيير ايجاد شده و چه كسي آن را انجام مي دهد؟•
كاربر نهايي ،توليد كننده سيستم يا مدير سيستم •
(Stabilityثبات و پايداري)
توان\ايي سيس\تم ن\رم اف\زاري در اجتن\اب از ت\اثيرات ناخواس\ته درزم\ان تغي\ير •و ويرايش سيستم نرم افزاري مي باشد.
جهت داشتن سيستم هايي باخصوصيات ثبات و پايداري
داشتن قابليت تغيير باال در سيستم•انجام ارزيابي پيشگويانه از تغييرات آينده•
اجتناب از داشتن كالس هايا مولفه هاي مركزي به گونه اي كه از بخش •هاي ديگر برنامه به آن دسترسي وجود داشته باشد.
(Portabilityقابليت حمل)
قابليت اينك\ه ي\ك سيس\تم ي\ا مولف\ه بتوان\د ب\ه راح\تي از ي\ك محي\ط س\خت •افزاري يانرم افزاري به محيط ديگري منتقل شود
جهت داشتن سيستم هايي باخصوصيات قابل حمل
•Simplicity•machine/device independence
•self-contained•Software Independence
( Reusabilityقابليت استفاده مجدد)
به معن\اي آن اس\ت ك\ه م\اژول ن\رم اف\زاري ي\ا ديگ\ر مولف\ه ه\ا و تولي\دات ب\ه گون\ه اي •ن\رم ي\ا سيس\تم ه\اي ه\اي محاس\باتي برنام\ه ديگ\ر در بتوانن\د ك\ه ط\راحي ش\وند
افزاري استفاده شوند
Sub Characteristic
•Simplicity•Generality•Modularity
•Software Independence•machine/device independence
براي داشتن سيستم هايي با قابليت استفاده مجدد بايد حداالمكان سيستم
ايجاد كردcomponent baseرا
راهكارهايي جهت داشتن سيستم Reusableهاي
ساختن راه ح\ل ه\اي عم\ومي و س\اده جهت اف\زايش ق\ابلت فهم و در نتيج\ه •اين كار قابليت استفاده مجدد نيز افزايش مي يابد.
سيستم را بصورت ماژوالر طراحي و پياده سازي كني وتا حد امكان از •پيوند ضعيف بين ماژول ها اطمينان حاصل كنيد
. سخت افزاري بخصوصي را دنبال platformسيستم عملياتي خاص يا •نكنيد.
COM/DCOM يا CORBAجهت ارتباطات از ميان افزار هاي استاندارد مانند •استفاده كنيد.
واسط مولفه ها را سازگار و همسان بسازيد.•
(Testabilityقابليت آزمايش)
قابليت آزم\ايش ي\ک ن\رم اف\زار، توان\ايي ايج\اد تس\هيالتي جهت تس\ت معياره\ا و •كارايي سيستم جهت بررسي درجه برآورده كردن نيازها وخواسته ها است
Sub Characteristic
•Simplicity•Self-descriptiveness
•Instrumentation•Accountability
•Communicativeness
بر Component Baseتاثير توسعه خصوصيات كيفي نرم افزار
Component Base Development
توس\عهCB را مفه\ومي اس\ت ك\ه توس\عه دهن\دگان ق\ادر ب\ه س\اختن سيس\تم ه\ا ن\رم اف\زاري ك\ه از بخش
. هاي قابل استفاده مجدد تشكيل شده اند ،مي كند مولف\ه ي\ك ج\زء مس\تقل و قاب\ل تع\ويض از سيس\تم
ي\ك ي\ك عملك\رد مش\خص را درفض\اي باش\د ك\ه مي معماري خوش تعريف برآورده مي سازد.
این توس\عه منج\ر ب\ه تولی\د ن\رم اف\زار ه\ایی می باش\دبLاالترک\ه اطمينLان تغيLيرو قLابليت قLابليت
بيشتري را دارا میباشند.
خصوصيات كيفي نرم CBDتاثير افزار
خصوصيات كيفي مي تواند به سه گروه مختلف تقسيم شود :
مستقيما روي آن تاثير دارد.CBDبعضي از خصوصيات هستند كه 1.
تحت ت\اثير ق\رار نمي گيرن\د ،ام\ا CBDديگ\ر خصوص\يات لزوم\ا توس\ط 2.
هس\تند تحت ت\اثير ق\رار CBDتوس\ط ديگ\ر خصوص\ياتي ك\ه تحت ت\اثير
مي گيرند.
بعض\ي از خصوص\يات ن\ه بط\ور مس\تقيم و ن\ه بط\ور غ\ير مس\تقيم تحت 3.
.تاثير قرار نمي گيرند
ISO بر خصوصيات كيفي در مدل CBDتاثير 9126:
تاثير منفي تاثير مثبت خصوصيتموج\ود بيش از ه\اي مولف\ه را عملك\ردي آن اس\ت ممكن
كه شما نياز داريد ندهند.
اس\تفاده از مولف\ه ه\اي از بيش موج\ود اج\ازه تحوي\ل س\ريع تر و عملكرد بهتري را فراهم مي كند.
قابليت عملكرد
هاي مولفه -blackبراي box انج\\ام ب\\ه ق\\ادر ،ش\\ما
پش\\تيباني و تعم\\ير هرگون\\ه خ\ود ك\ه آنگون\ه را ه\ا مولف\ه
مي خواهيد ندارد.
ساختار م\اژوالر راه ح\ل مبت\ني ب\ر مولف\ه امك\ان ج\ايگزيني راحتي را به مولفه هاي منحصر به فرد مي دهد.
قابليت نگهداشت
ه\اي عام\ه پس\ند را GUIاس\تفاده از مولف\ه ه\اي اس\تاندارد،پشتيباني مي كند.
قابليت استفاده
ني\از ب\ه توس\عه سيس\تم مط\ابق داده مولف\ه چ\ارچوب ي\ك ب\ا ش\ده و اس\تفاده از مولف\ه ه\ايي ك\ه لزوم\ا يك\ديگر را بهين\ه نمي ك\ارايي ب\راي توان\د ،مي كنن\د
منفي باشد.
گلوگ\اه ه\اي ك\ارايي مي توان\د تع\يين ش\ده و س\پس ني\از ب\ه درتع\\دادي ك\\ارايي متمرك\\ز تنظيم حي\\اتي مولف\\ه
جهت داخلي بط\ور توانن\د مي ه\ا مولف\ه ش\ود.همچنين ارتقاء كارايي بدون تاثير بر خصوصياتشان بهينه شوند.
كفايت وكارايي
از آنه\\ا ،اس\\تقالل مولف\\ه مي Platformمشخص\\ات ي\ك ب\راي س\ريعا توان\د مي مولف\ه ي\ك باش\د.بنابراين
platform جدي\د ب\دون آنك\ه ت\اثيري ب\ر ديگ\ر مولف\ه ه\ا داش\ته باشد، ساخته شود .
قابليت حمل
با داش\تن ي\ك س\ري مشخص\ات كام\ل،رس\مي و معل\وم از ي\ك ق\ابليت اطمين\ان ي\ك س\ري مولف\ه ه\ا س\وال درب\اره مولف\ه، آس\ان مي ش\ود.به اين ص\ورت ك\ه :آي\ا مولف\ه ي\ك
است؟پياده سازي كامل و صريح از خصوصياتش
قابليت اطمينان
مصالحه بين صفات كيفي
مصالحه بين صفات كيفي
ک\اربران نیازه\ای ب\رآوردن ب\رای ه\ا سیس\تم می failاغلب
ش\وندو بیش\تر ب\ه دلی\ل نب\ودن کیفیت اس\ت و عمدتازمانیس\ت
ک\ه طراح\ان ب\ه دقت ب\ر ب\رآورد بعض\ی نب\از هاب\دون توج\ه ب\ه
تاثیر آن بر دیگر نیازمندی ها عمل می کنند.
گاهی بعض\ی از ص\فات ذات\ا ب\ا یک\دیگر در تض\اد هس\تند و م\ورد
اف\راد دی\د در کیفی خصوص\یات اس\ت ممکن اینک\ه دیگ\ر
مختل\ف متف\اوت باش\د.مثال مفه\وم ام\نیت می توان\د در دی\د ی\ک
نف\ر ب\ه معن\ای رم\ز ک\ردن اطالع\ات و در دی\د دیگ\ری ب\ه معن\ای
خط\ا تحم\ل و ام\نيت کني\د ف\رض مثال باش\د. آتش دی\وار
بص\ورت انحص\اري قاب\ل دس\تيابي باش\ند ولي اگ\ر ت\وأم ب\ا هم
بخواهيم آنها را داشته باشيم بايد مصالحه انجام دهيم
مصالحه بين صفات كيفي
آوريم، ف\راهم همزم\ان نت\وانيم را ص\فات کيفي\تي هم\ه اس\ت ممکن
اهميت از م\ا ب\راي ش\رايط اين از ي\ک ک\دام ک\ه ببي\نيم باي\د ولي
ي\ا دارد بيش\تري اهميت ک\ارايي مثال يع\ني. برخورداراس\ت بيش\تري
در بهمين و مج\دد اس\تفاده ق\ابليت ص\فات بقي\ه م\ورد ت\رتيب
داده نش\ان کيفي\تی وي\ژگی س\ه ب\رای مفه\وم در ش\كل اين.کيفي\تي
.است شده
Quality Attribute Workshop
Quality Attribute Workshop
Quality Attribute Workshop : عبارت است از روشی که
ب\ه معم\اران سیس\تم جهت دری\افت ح\داکثر اطالع\ات کیفی
کمک می کند.
.جهت تعریف ساختار سیستم کمک شایانی می کند
( کش\\\ف جهت س\\\ازی discoverراه ،مس\\\تند )
(document(بن\دی ،اول\ویت )prioritize ت\ر ه\ر چ\ه س\ریع )
ویژگی های کیفی سیستم در طول چرخه حیات می باشد.
QAW Method Steps
1. QAW presentation and Introduction
2. Business/Mission Presentation
3. Architecture Plan Presentation
4. Identification of Architectural Drivers
5. Scenario Brain Storming
6. Scenario Consolidation
7. Scenario Prioritization
8. Scenario Refinement
QAW Method Steps
در موارد Quality Attribute WorkShopاطالعات کسب شده از زیر قابل استفاده می باشد :
جهت به روز رسانی دیدگاه معماری
تصویه و تصحیح نیازمندی های نرم افزار و سیستم
کمک به راهبرد و توسعه توابع اولیه سیستم
درک و روشن کردن درایورهای معماری سیستم
توصیف عملیات سیستم
top related