Transcript CMM

‫‪‬‬
‫تهیه کنندگان‪:‬‬
‫زهرا فهمی‬
‫پریسا مقدم‬
‫‪‬‬
‫‪ ‬مقدمه‬
‫‪ ‬استاندارد تولید نرم افزار چیست؟‬
‫‪ ‬اهمیت استفاده از استانداردها‬
‫‪ ‬چند مثال از استانداردهای موجود‬
‫‪ ‬معرفی استاندارد ‪ CMM‬و تاریخچه ی آن‬
‫‪ ‬انواع ‪CMM‬‬
‫‪ ‬سطوح ‪CMM‬‬
‫‪ ‬مزایا و معایب‬
‫‪ ‬مراجع‬
‫‪ ‬سواالت‬
‫‪1‬‬
‫‪ ‬نرم افزار در چند دهه ی گذشته زندگی انسان ها را تحت تاثیر قرار داده است‪.‬‬
‫‪ ‬در حال حاضر نرم افزار دیگر محصولی از فرایند های خودسر و فعالیت های‬
‫برنامه نویس ی صرف نیست‪.‬‬
‫‪ ‬نرم افزار های مدرن با استفاده از تکنیک های خاص ی مهندس ی‬
‫شوند‪.‬‬
‫‪2‬‬
‫می‬
‫‪ ‬قراردادهایی شامل معیارهای تکنیکی هستند که این معیارها به عنوان قوانین‬
‫و خطوط راهنما استفاده می شوند تا رسیدن به هدف را تضمین کنند‪.‬‬
‫‪Process‬‬
‫‪3‬‬
‫‪ ‬تضمین کیفیت نرم افزار‬
‫‪ ‬افزایش بهره وری تیم پروژه‬
‫‪ ‬کاهش زمان چرخه ی توسعه‬
‫‪ ‬افزایش رقابت و سودآوری‬
‫‪ ‬افزایش روحیه توسعه دهندگان‬
‫‪4‬‬
Capability Maturity Model (CMM) 
ISO ‫ خانواده ی استانداردهای‬
ISO 9000 o
ISO 9001 o
ISO 9126 o
ISO/IEC 15504 (SPICE)

5
‫‪ ‬استاندارد نرم‌افزار تدوين شده توسط دانشكده مهندس ي نرم‌افزار دانشگاه‬
‫كارنگي ملون آمريكا و مؤسسه ‪Software Engineering ( SEI‬‬
‫‪)Institute‬‬
‫‪ ‬شروع توسعه ی اصلی مدل در سال ‪ 1986‬همزمان با پیوستن هامفری به‬
‫‪SEI‬‬
‫‪ ‬چا ‌رچوبي براي توصيف اجزاي كليدي يك فرآيند كارآمد جهت توليد نرم‌افزار‬
‫سیر بهبود تكاملي ‌از يك فرآيند ناكامل ‌و نامنظم به يك‬
‫‪ ‬چارچوبی برای توصيف ‌‬
‫فرآيند تكامل يافته ‌و منظم‬
‫‪6‬‬
CMMI
CMM Integration
SW-CMM
CMM for Software
P-CMM
People CMM
SA-CMM
Software Acquisition CMM
SE-CMM
Systems Engineering CMM
IPD-CMM
Integrated Product Development
7
‫‪CMM‬‬
‫سطح ‪1‬‬
‫مقدماتی‬
‫سطح‪2‬‬
‫تکرارپذير‬
‫فرآیندهای خلق الساعه‬
‫‪ -1‬مدیریت نیازها‬
‫‪ -2‬برنامه ریزی پروژه نرم افزار‬
‫‪ -3‬پیگیری و نظارت پروژه‬
‫نرم افزاری‬
‫‪ -4‬پیمانکاری فرعی نرم افزار‬
‫‪ -5‬تضمین کیفیت نرم افزار‬
‫‪ -6‬مدیریت پیکربندی نرم افزار‬
‫‪8‬‬
‫سطح‪3‬‬
‫تعریف شده‬
‫‪ -1‬تمرکز بر فرآیند سازمان‬
‫‪ -2‬تعریف فرآیند سازمان‬
‫‪ -3‬برنامه آموزش‬
‫‪ -4‬مدیریت ادغام نرم افزار‬
‫‪ -5‬مهندس ی محصول نرم افزار‬
‫‪ -6‬هماهنگی بین گروهها‬
‫‪ -7‬بازنگری همکاران‬
‫سطح‪4‬‬
‫مدیریت شده‬
‫‪ -1‬مدیریت فرآیند‬
‫به صورت کمی‬
‫‪ -2‬مدیریت کیفیت‬
‫نرم افزار‬
‫سطح‪5‬‬
‫بهینه شده‬
‫‪ -1‬مدیریت تغییر فرآیند‬
‫‪ -2‬مدیریت تغییر فناوری‬
‫‪ -3‬پیشگیری از نقص‬
‫‪ ‬در این سطح‪ ،‬شیوه های معمول به ندرت به چشم می خورند‪.‬‬
‫‪ ‬موفقیت صرفا به مهارتها و تالشهای کلیدی شخص ی بستگی دارد‪.‬‬
‫‪ ‬مکانیزم سازماندهی شده ای برای تضمین موفقیت همه پروژه ها وجود ندارد‪.‬‬
‫‪‬‬
‫‪9‬‬
‫بیشتر سازمانهای نرم افزاری در این سطح قرار دارند‪.‬‬
‫تکرار موفقیت های سابق در پروژه های نرم افزاری پیشین و تکرار‬
‫نکردن اشتباهات قبلی‪.‬‬
‫حوزه های فرآیندهای کلیدی در مرحله دوم‪:‬‬
‫• مدیریت نیازمندی ها‬
‫• برنامه‌ريزي پروژه‬
‫• پی گیری و نظارت پروژه‬
‫• مديريت پيمانكاران فرعي نرم افزاری‌‬
‫• تضمین کیفیت نرم افزار‬
‫• مدیریت پیکربندی نرم افزار‬
‫‪10‬‬
‫این سطح نیازمند سازمانی است که روش مدیریت پروژه را اجرا کرده و در‬
‫تمام مراحل اجرای پروژه ها از این مش ی پیروی کند‪.‬‬
‫‪ SEI‬فقط ‪ 15‬درصد از حوزه های تولید نرم افزار را در این سطح از‬
‫رشدیافتگی ارزیابی کرده است‪.‬‬
‫‪11‬‬
‫نرم‬
‫برای سازمان‪ ،‬فعالیت های مهندس ی و مدیریت فرآیند نرم افزار‪ ،‬در قالب یک فرآیند ‌‬
‫افزاری‪ ،‬استاندارد سازی و یکپارچه سازی شده است‪.‬‬
‫عالوه بر موضوعات و مباحث مطرح شده در سطح دوم ‪ ،‬حوزه های کلیدی زیر را نیز شامل می‬
‫شود‪:‬‬
‫‪ ‬تمرکز بر فعالیت های سازمان‬
‫‪ ‬تعريف فرايندهاي سازمان‬
‫‪ ‬برنامه آموزش‬
‫‪ ‬مدیریت یکپارچه نرم افزار‬
‫ی‬
‫‪ ‬مهندس ی محصول نرم افزار ‌‬
‫‪ ‬هماهنگی درون گروهی‬
‫‪ ‬ارزیابی توسط متخصصین‬
‫‪12‬‬
‫‪‬‬
‫‪ SEI‬فقط ‪ 8‬درصد از حوزه های تولید نرم افزار را در این سطح از رشد‬
‫سطوح‬
‫یافتگی ارزیابی کرده است‪ .‬شرکت مایکروسافت در سطح سوم از ‌‬
‫‪ CMM‬طبقه بندی می شود‪.‬‬
‫‪13‬‬
‫کیفیت کلی محصول و فرآیند نرم افزاری‪ ،‬بصورت کمیتی قابل فهم و کنترل‬
‫باشد‪.‬‬
‫حوزه های فرآیندهای کلیدی در سطح چهارم عبارتند از ‪:‬‬
‫• مدیریت کمی فرآیند‬
‫• مدیریت کیفیت نرم افزار‬
‫‪SEI‬کمتر از یک درصد از حوزه های تولید نرم افزار را دراین سطح از‬
‫رشدیافتگی ارزیابی کرده است‪IBM .‬در این سطح از ‪CMM‬واقع است‪.‬‬
‫‪14‬‬
‫فرآیند پیوسته بهبود بوسیله بازخوردهای کمی از فرآیند و از طریق جهت دهی‬
‫ایده ها و تکنولوژی های ابتکاری ممکن خواهد بود‪.‬‬
‫حوزه های فرآیندهای کلیدی در این سطح عبارتند از‪:‬‬
‫‪ ‬پیشگیری از خطاها‬
‫‪ ‬مدیریت تغییر فن آوری‬
‫‪ ‬مدیریت تغییرات فرآیند‬
‫‪15‬‬
‫‪ 3 ‬تا ‪ 6‬ماه تهیه مقدمات‬
‫ی‬
‫‪ 6 ‬تا ‪ 12‬ماه پیاده ساز ‌‬
‫‪ 3 ‬ماه آماده سازی ارزیابی‬
‫‪ 12 ‬ماه برای هر سطح جدید‬
‫‪16‬‬
‫خیر! برخی پیاده سازی ها به جای فایده‪ ،‬آسیب می رسانند‪.‬‬
‫‪ ‬دوباره سازی کامل فرآیندها برای رسیدن به معیارهای مورد نظر به جای‬
‫تطبیق هوشمندانه ی آنها‬
‫‪ ‬تمرکز بر روی فرآیند بیشتر به عنوان چوب استفاده می شود تا هویج!‬
‫‪ ‬تمرکز بر روی سازگاری و انعطاف پذیری به جای پیشرفت و بهبود‬
‫‪17‬‬
‫‪ ‬میزان نقص ها کاهش می یابد‪.‬‬
‫‪ ‬تشخیص نقص ها زودتر اتفاق می افتد‪.‬‬
‫‪ ‬نیازمندی های کاربر مستند‪ ،‬کنترل و مدیریت می شود‪.‬‬
‫‪ ‬پیش بینی ها بهبود می یابند و دقیقتر می شوند‪.‬‬
‫‪ ‬مدیریت ریسک عملی است‪.‬‬
‫‪ ‬فرآیندهای توسعه همچنان چابک می مانند‪.‬‬
‫‪18‬‬
‫بر اساس تحقیق ‪ Kevin Hyde‬و ‪ David Wilson‬در سال ‪2000‬‬
‫‪ ‬افزایش کیفیت چرخه ی کار‬
‫‪ ‬بهبود ارتباطات سازمان‬
‫‪ ‬توانایی جذب‬
‫‪‬‬
‫حفظ و توسعه حرفه ای نرم افزار‬
‫‪ ‬انسجام بخشیدن به سازمان‬
‫‪19‬‬





http://www.codeproject.com/KB/work/Process.aspx
http://www.codeproject.com/KB/architecture/Capability_M
aturity_Model.aspx
http://en.wikipedia.org/wiki/Capability_Maturity_Model
http://en.wikipedia.org/wiki/Software_development_proce
ss
http://kalkalkonon.mihanbb.com/thread-909-post1663.html#pid1663
20
‫‪ ‬دالیل استفاده از استاندارد در تولید نرم افزار را شرح دهید‪.‬‬
‫‪ ‬سطوح ‪ CMM‬را نام ببرید و یک سطح را به اختصار توضیح دهید‪.‬‬
‫‪ 3 ‬مورد از مزایای استاندارد ‪ CMM‬را شرح دهید‪.‬‬
‫‪22‬‬