(Class-responsibility-collaboration) بطاقة صنف-مسؤولية-تعاون (CRC) هي أداة للعصف الذهني تُستخدم في تصميم البرمجيات كائنية التوجيه . تم اقتراحها في الأصل بواسطة Ward Cunningham و Kent Beck كأداة تعليمية، [1] ولكنها تحظى أيضًا بشعبية بين المصممين الخبراء [2] ويوصي بها أنصار البرمجة القصوى . [3] وصف مارتن فاولر بطاقات CRC كبديل عملي لمخطط التتابع UML لتصميم ديناميكيات لتفاعل الكائن والتعاون (the dynamics of object interaction and collaboration).
عادةً ما يتم إنشاء بطاقات CRC من بطاقات الفهرس (index cards). يقوم أعضاء جلسة العصف الذهني (Members of a brainstorming session) بكتابة بطاقة CRC واحدة لكل صنف / كائن ذي صلة (relevant class/object) في تصميمهم. البطاقة مقسمة إلى ثلاث مناطق: [1] [2]
- على رأس البطاقة، اسم الصنف (class)
- على اليسار، المسؤوليات (responsibilities) الخاصة بالصنف.
- على اليمين، المتعاونون (collaborators) (أصناف أخرى) التي يتفاعل معها هذا الصنف للوفاء بمسؤولياته
استخدام بطاقة صغيرة يبقي تعقيد التصميم عند الحد الأدنى. وهي تجعل المصممين يركزون على أساسيات الصنف وتمنعهم من الدخول في تفاصيلها وتنفيذها (implementation) في وقت تكون فيه هذه التفاصيل غير مثمرة (counter-productive). كما أنه لا يشجَع على إعطاء صنف كثير من المسؤوليات. نظرًا لأن البطاقات محمولة، يمكن وضعها بسهولة على طاولة وإعادة ترتيبها أثناء مناقشة التصميم.
إنشاء بطاقات CRC
لإنشاء بطاقة CRC، يمكنك البدء بكتابة سيناريو يحدد الجهات الفاعلة الرئيسية (identifies the major actors) والإجراءات (actions) التي يقوم بها الممثلون (actors). اكتب فقط الإجراءات والجهات الفاعلة الخاصة بهذا السيناريو الجزئي. يجب أن تتحول الأسماء إلى أصناف البطاقة، وتتحول الأفعال عادةً إلى مسؤوليات البطاقة، والمتعاونون هم البطاقات الأخرى التي ستتفاعل معها البطاقة.
مثال
على وجه البطاقة نكتب اسم الصنف(class) و اسم الصنف الأصل (superclass) (إذا كان موجوداً). عدا عن ذلك، سيوضح مجال المسؤولية والعلاقات مع الأصناف الاخرى بشكل موجز.
اسم الصنف | الصنف الأصل(superclass) |
---|---|
المسؤولية | |
تعاون مع |
على ظهر البطاقة يشرح تفاصيل الصنف بواسطة فهرسة العمليات Operationen و الحقول Attribute
العمليات |
الحقل |
مقالات ذات صلة
- لغة النمذجة الموحدة (Unified Modeling Language)
المراجع
- Beck, Kent; Cunningham, Ward (Feb 2012), "A laboratory for teaching object oriented thinking", ACM SIGPLAN Notices, india, NY, USA: Abg, 24 (10): 1–6, doi:10.1145/74878.74879,
- Martin Fowler, UML Distilled, chapter 4
- A concise introduction at extremeprogramming.org - تصفح: نسخة محفوظة 2019-10-26 على موقع واي باك مشين.
روابط خارجية
- مختبر لتدريس التفكير كائني التوجيه ("A laboratory for teaching object oriented thinking") , [1] التي كتبها كينت بيك وورد كانينغهام
- وصف CRC لـ HotDraw
- مقدمة موجزة في البرمجة القصوى extremeprogramming.org
- محرر CRC بسيط على الإنترنت
- كتاب (الكائن الرئيسي) Scott Ambler. The Object Primer من جامعة كامبريدج
- كتاب(المبرمج البراغماتي) The Pragmatic Programmer للكاتبين Andrew Hunt, David Thomas.