شاخص هاي فرايند و پروژه درس مهندسي نرمافزار 2 فصل 22 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان Artificial Intelligent Systems Laboratory
يك مدير خوب موارد زير را اندازه گيري ميكند: اندازه گيري بر چه مبنايي انجام مي شود ؟ size ؟ function ؟ شاخص هاي فرايند فرايند اندازه گيري شاخص هاي پروژه محصول شاخص هاي محصول Artificial Intelligent Systems Laboratory
اندازه گيري براي چه انجام ميشود؟ براي : شناسايي ارزيابي پيش بيني توسعه و بهبود امكان دستيابي به اهداف فوق با اندازه گيري برآورده ميشود. Artificial Intelligent Systems Laboratory
اندازه گيري براي چه انجام ميشود؟ ارزيابي وضعيت پروژه جاري ردگيري ريسكهاي بالقوه كشف موضوعات مشكل زا قبل از اينكه دچار وضعيت بحراني شوند. بهبود فرايند كاري يا وظايف ارزيابي توانايي تيم نرم افزار به منظور كنترل كيفيت محصولات كاري نرم افزار Artificial Intelligent Systems Laboratory
Artificial Intelligent Systems Laboratory اندازه گيري فرايند كارايي فرايند نرم افزار معمولاً به صورت غير مستقيم اندازه گيري ميشود. براي اين منظور تعدادي شاخص برمبناي خروجيهايي كه از فرايند مشتق ميشوند تعيين ميگردند. خروجيهايي كه از فرايند مشتق ميشوند عبارتند از : ميزان خطاهايي كه قبل از ارائه نرمافزار، پوشيده ماندهاند. Defect هايي كه توسط كاربران نهايي گزارش داده شده اند. محصولات كاري ارائه شده (Productivity) ميزان كار نيروي انساني ميزان كار بر اساس تاريخ ميزان هماهنگي با برنامه زماني اندازه گيري هاي ديگر ... همچنين، شاخصهاي فرايند با اندازه گيري ويژگيهاي خاص يك فعاليت مهندسي نرمافزار نيز به دست ميآيند. Artificial Intelligent Systems Laboratory
توصيههايي براي استفاده از شاخصهاي فرايند در هنگام تفسير دادههاي شاخص از common sense و organizational sensivity استفاده كنيد. به طور معمول، بازخورد هايي به افراد و تيمهاي جمع آوري كننده اندازه گيريها و شاخصها ارسال نماييد. از شاخصها براي ارزيابي افراد استفاده نكنيد. با همكاري كاركنان و تيمهاي اهداف روشني را تعيين كرده و شاخصهايي براي دستيابي به اهداف مشخص كنيد. هرگز از شاخصها براي تهديد افراد يا تيمها استفاده نكنيد. دادههاي شاخص كه مشخص كننده مشكلي هستند نبايد با ديد منفي لحاظ گردند. بلكه اين دادهها مشخصكننده فرصتهايي براي بهبود فرايند هستند. از اطلاعات مربوط به يك شاخص خاص براي حذف ديگر شاخصهاي مهم استفاده نكنيد. Artificial Intelligent Systems Laboratory
توصيه هايي براي بهبود فرايند نرم افزار مدل فرايند SPI توصيه هايي براي بهبود فرايند نرم افزار اهداف بهبود شاخص هاي فرايند Artificial Intelligent Systems Laboratory
Artificial Intelligent Systems Laboratory شاخص هاي فرايند مرتبط با كيفيت (Quality Related) بر كيفيت محصولات كاري و قابل تحويل تاكيد دارد. مرتبط با توليد (Productivity Related) بر ميزان كار صرف شده براي توليد محصولات كاري تاكيد دارد. داده هاي آماري SQA طبقه بندي خطاها و آناليز كارايي رفع Defect (Defect Removal Efficiency) انتشار خطاها از فعاليت هاي فرايند به فعاليتها استفاده مجدد از داده تعداد اجزاء (Component) هاي توليد شده و درجه استفاده مجدد از آنها Artificial Intelligent Systems Laboratory
Artificial Intelligent Systems Laboratory شاخصهاي پروژه براي حداقل نمودن برنامه توسعه نرمافزار، با ايجاد اصلاحات لازم براي جلوگيري از تاخير و كاهش ريسك ها، مورد استفاده قرار ميگيرد. براي ارزيابي كيفيت محصول به طور مداوم مورد استفاده قرار گرفته و هنگامي كه لازم باشد تغييرات لازم براي بهبود كيفيت انجام ميشود. در هر پروژه موارد زير بايد اندازه گيري شود: وروديها : اندازه گيري منابع لازم براي انجام كار خروجيها : اندازه گيري موارد قابل تحويل و محصولات كاري كه در حين فرايند نرم افزار توليد شده اند. نتايج : اندازه گيريهايي كه نمايانگر موثر بودن موارد قابل تحويل هستند. Artificial Intelligent Systems Laboratory
Artificial Intelligent Systems Laboratory انواع شاخصهاي پروژه كار(Effort)/زمان براي هر فعاليت مهندسي نرم افزار تعداد خطاهاي كشف شده در هر ساعت بازبيني مايل استونهاي برنامه ريزي شده در مقابل مايل استونهاي واقعي تغييرات (تعداد) و ويژگيهاي آنها توزيع كار بر روي فعاليتهاي مهندسي نرمافزار Artificial Intelligent Systems Laboratory
Artificial Intelligent Systems Laboratory نرمال سازي شاخصها دادههاي نرمال شده براي ارزيابي فرايند و محصول (و نه افراد) به كار ميروند : نرمال سازي مبتني بر ساير : رويكرد تعداد خط كد نرمال سازي مبتني بر كاركرد : رويكرد Function Point Artificial Intelligent Systems Laboratory
انواع شاخصهاي مبتني بر سايز errors per KLOC (thousand lines of code) defects per KLOC $ per LOC pages of documentation per KLOC errors per person-month Errors per review hour LOC per person-month $ per page of documentation Artificial Intelligent Systems Laboratory
انواع شاخصهاي مبتني بر Function errors per FP (thousand lines of code) defects per FP $ per FP pages of documentation per FP FP per person-month Artificial Intelligent Systems Laboratory
Artificial Intelligent Systems Laboratory مقايسه LOC و FP Artificial Intelligent Systems Laboratory
Artificial Intelligent Systems Laboratory مزاياي انتخاب FP مستقل از زبان برنامه نويسي است. توجه به محدوده مسئله عدم جلوگيري از نوآوري (ارائه راه حلهايي با LOC كمتر) در برنامه نويسي منطبق با روش شيء گرا و مفهوم استفاده مجدد Artificial Intelligent Systems Laboratory
Artificial Intelligent Systems Laboratory شاخصهاي شيء گرا تعداد سناريوها (Use Case ها) تعداد كلاسهاي پشتيبان (كه براي پياده سازي لازم هستند ولي به طور مستقيم با حوزه مسئله در ارتباط نيستند) ميانگين تعداد كلاسهاي پشتيبان به ازاي هر كلاس كليدي (كلاس آناليز) تعداد زير سيستمها (مجموعه اي از كلاسها كه يك كاركرد قابل مشاهده براي كاربرنهايي را انجام ميدهند) Artificial Intelligent Systems Laboratory
Artificial Intelligent Systems Laboratory شاخصهاي محصول تاكيد آن بر كيفيت محصولات ارائه شده است. شامل اندازه گيري مدل آناليز ميشود. شامل اندازه گيري پيچيدگي طراحي ميشود. پيچيدگي الگوريتم پيچيدگي معماري پيچيدگي جريان داده اندازه گيري كد اندازه گيري كارايي فرايند Defect Removal Efficiency Artificial Intelligent Systems Laboratory
Defect Removal Efficiency E تعداد error هاي كشف شده قبل از تحويل محصول به كاربر نهايي است. D تعداد defect هاي كشف شده پس از تحويل محصول به كاربر نهايي. DRE = E /(E + D) Artificial Intelligent Systems Laboratory