گزیده ای کوتاه از کارت های CRC

کارت های CRC:

روشی غیر رسمی(Informal) برای شناسائی و توصیف کلاسها، رفتار و مسئولیتهای آنها و همکارانی(کلاسهای دیگر) که به کمک آنها وظایف خود را انجام می دهد، می باشد.

طراحی ظاهری کارتهای CRC

کارتهای “۲×۳” شامل بخش های:
اسم کلاس :

مسئولیتها :
همکاران :

 

 

 

 

 

دارا بودن مجموعه ای از اطلاعات لازم و کافی (به صورت Abstract ) از هر عنصر در یک سیستم:

• در چه رده ای ؟ (Class)
• با چه وظایفی؟(Responsibilities)
• با چه همکارانی ؟(Collaborators)

هدف :

• فراهم نمودن روشی برای آموزش مفاهیم شئ گرا (کمک به پیاده نمودن شیوه ای که در آن اشیاء محور می باشند)
• حل مشکل شناسایی اشیاء برای مسائلی که آشنایی زیادی در مورد آن نداریم

 

ویژگیها :

• سادگی روش : بر اساس یک بازی ساده با کارتها

 

• طبیعی بودن روند کار و نمایش سناریوهای واقعی

• فرایند گرایی بر اساس کار گروهی

فرآیند مدلسازی بوسیله کارتهای CRC:

۱٫ موارد کاربری کلیدی سیستم را مرور کنید.
۲٫ در صورت نیاز یکی(یا ترکیبی) از تکنیکهای یافتن کلاسهای اولیه را برای شناسائی مجموعه ای از کلاسهای کاندیدا بکار ببرید.
۳٫ به ازای هر مورد کاربری گامهای زیر را انجام دهید:
الف) از کلاسهای موجود، کلاسهایی که مناسب این مورد کاربری است را مشخص نمایید.
ب) اگر کلاس مناسبی وجود نداشته باشد پس کلاس جدیدی را ایجاد نمایید.
ج) مسئولیتهای کلاس را تشخیص دهید:
• این کلاس باید چه وظیفه ای را انجام دهد؟
• اگر وظیفه ای را در اختیار دارید، این وظیفه متعلق به کدام کلاس است؟
• بعضی از مسئولیتها بوسیله همکاری کلاس با دیگر کلاسها انجام پذیرند. بنابراین عجله نکنید.
د) همکاران کلاس را تشخیص دهید:
• سناریوی “What if…?” را اجرا کنید.
• همکاری هنگامی رخ می دهد که یک کلاس نیازمند اطلاعاتی باشد که در اختیار ندارد.
• همکاری هنگامی رخ می دهد که یک کلاس نیازمند به روز رسانی اطلاعاتی باشد که در اختیار ندارد.
• در هر همکاری، حد اقل یک کلاس آغاز کننده باید وجود داشته باشد
هـ) کارتهای CRC را دور میز چرخش دهید:
• کارتهای کلاسهایی که با یکدیگر همکاری دارند نزدیک هم قرار دهید
• هرچه همکاری قویتر باشد نزدیکی دو کلاس به یک دیگر می بایست بیشتر باشد.
• کارتهای پر(شلوغ) را در وسط میز قرار دهید
• کارتها را دور میز بچرخانید.
• از کسانی که در جلسه شرکت دارند بخواهید که به کارتهای در حال چرخش توجه نمایند
• حاضرین در جلسه ارتباطات جدیدی بین کلاسها تشخیص خواهند داد .
• سناریوی “چه می شود اگر…؟” را اجرا نمایید.

مثال :

مثال : الگوی مدل/دید/کنترل کننده (Model/View/Controller)

مزایا :

• نقطه مناسبی برای شروع تحلیل (جرقه ذهنی)Brainstorming
• پوشش جنبه های اصلی یک سیستم (Encapsulation, Instantiation, Communication)
• قابلیت شبیه سازی رفتار سیستم (مرور سناریو)
• قابلیت انتقال حرکت در اطراف و تجمع
• با نمودار کلاسها سازگار است
• بیان معماری یک سیستم
• در اختیار گرفتن جوهر نرم افزار Essence
• استفاده از ایده Client/Server
• نداشتن مشکل سیم بندی Wire Syndrome
• مقوله بندی Stereotyping
• امکان کار گروهی
• تحلیل بوسیله خبرگان
• رضایت کاربران

معایب :

• مشکل برقرای ارتباط با کاربران
• کارتهای CRC تنها بخشی از نیازمندیهای یک سیستم شئ گرا را تشکیل می دهند

 

 

منابع:

جزوه درس مهندسی نرم افزار پیشرفته                    سرکارخانم دکتر ریحانه خورسند
مقدمه ای بر طراحی – روش CRC                              مهدی عینعلی

پاسخی بگذارید