مخططات صنفيات تصميم
في مرحلة التفصيل، كنا قد
قمنا ببناء نموذج مفاهيمي conceptual model. النموذج المفاهيمي يحوي تفاصيل عن مشكلة الزبون، و يركز على
مفاهيم الزبون، و خصائص تلك المفاهيم. لم نقم بتحديد سلوك أيا من تلك المفاهيم.
الآن و قد بدأنا ببناء
مخططات التعاون، يمكننا تطوير النموذج المفاهيمي، و نبنيه في مخطط صنفية تصميم حقيقي
Design Class Diagram. بعبارة أخرى، مخطط يمكننا أن نؤسس عليه التوليف code النهائي لبرنامجنا.
إنتاج مخطط صنفية تصميم هي
عملية آلية تماما. في هذا الفصل سوف نفحص مثالا لواقعة استخدام، و كيف يتم تعديل
النموذج المفاهيمي بسببها.
مديونية و دائنية
الحسابات
في نهاية واقعة الاستخدام “place bet” (وضع رهان)، يبعث الكائن “bet” (رهان) برسالة إلى كائن “Account” (حساب) الخاص بالزبون، يخبره فيها بوجوب
تخفيض قيمته. النموذج المفاهيمي التالي كان أساس هذا التصميم:

شكل 48: النموذج المفاهيمي لهذا المثال
من النموذج المفاهيمي، (جزء
من) التعاون التالي تم تطويره:

شكل 49: جزء من تعاون واقعة "وضع رهان"
خطوة 1: إضافة
العمليات
من مخطط التعاون، يمكن أن
نرى أن صنفية “Account” (حساب) يجب أن يكون لديها السلوك “debit” (مدين / اجعله مدينا). لذا نضيف هذه العملية operation إلى النصف السفلي من رمز الصنفية.

شكل 50: صنفيتان مع عملية تم إضافتها
لنلاحظ أن معظم الناس لا
يهتمون بإضافة عملية create (خلق)، حتى لا يتم التشويش على المخطط (من
المفهوم أن معظم الصنفيات تحتاج إليها).
خطوة 2: إضافة
الاتجاهات
تم أيضا إضافة اتجاه
الرسائل التي يتم تمريرها عبر الرابط association. في هذه الحالة، الرسالة تم إرسالها من صنفية bet إلى صنفية account، لذا نحن نوجه الرابط من المنادي إلى
المستقبل:

شكل 51: صنفية حساب و قد تم إضافة وجهة الحركة فيها
أحيانا، تظهر حالة يجب فيها
تمرير الرسالة في كلا الاتجاهين عبر الرابط. ماذا نفعل عندئذ؟ ترميز UML لهذه الحالة أن يتم ببساطة إزالة رأس السهم من الرابط – رابط
مزدوج الاتجاه bi-direction.
الكثير من المنمذجين modelers يعتقدون بأن الروابط مزدوجة الاتجاه خاطئة و
يجب إزالتها بطريقة ما من النموذج. في الحقيقة، لا يوجد أي خطأ من حيث المبدأ في
العلاقات المزدوجة ، لكنها توحي
بتصميم سيئ. سوف نستكشف هذه المشكلة في فصل لاحق.
خطوة 3: تحسين السمات
يمكننا أيضا في هذه
المرحلة تحديد نوع بيانات datatype السمات attributes. هنا قررنا تخزين الرصيد balance الخاص بالحساب كعدد غير صحيح float.

شكل 52: إضافة نوع البيانات
خطوة 4: تحديد
المنظورية
أحد المفاهيم الأساسية في
المنحى الكائني هو التغليف encapsulation – فكرة أن البيانات التي
يحملها الكائن تبقى خاصة به و محجوبة عن العالم خارجه (عن غيره من الكائنات).
يمكننا أن نضع إشارة تبين
أي من السمات و العمليات تكون عامة public أو خاصة private في مخطط صنفية UML، من خلال اسباق اسم السمة/العملية بعلامة
زائد (بالنسبة للعامة) و علامة ناقص (بالنسبة للخاصة).
كل السمات ستكون خاصة، ما
لم يكون هناك سبب جيد وملح (و نادرا ما يكون). عادة، العمليات تكون عامة، ما لم
تكن وظائف مساعدة، التي لن تستخدم إلا من قبل العمليات التي تتضمنها الصنفية
نفسها.

شكل 53: مخطط الصنفية، مكتملا!
الآن و قد اكتمل مخطط
الصنفية، لدينا الآن ما يكفي من المعلومات لإنتاج التوليف code. سوف نختبر عملية التحول إلى توليف في فصل لاحق.
التجمع
إحدى الملامح المهمة في
التصميم الكائني المنحى هو مفهوم التجمع Aggregation – فكرة أن كائن واحد يمكن
بناؤه من (تجمعه من ) كائنات أخرى.
مثلا، في نظام حاسوب نمطي ،
الحاسوب هو تجمع من وحدة المعالجة و بطاقة
الرسوميات ، و بطاقة الصوت وهكذا.
يمكننا التنويه للتجمع في UML باستخدام رمز التجمع – شكل معين عند نهاية وصلة الرابط.

شكل 54: حاسوب مجمع من كائنات أخرى
إذا رصدنا تجمعا في نموذجنا
المفاهيمي، فقد يكون من الأوضح أن نقوم بتبيان هذه الحقيقة صراحة، باستخدام رمز التجمع.
التكون
مفهوم آخر شبيه جدا بالتجمع
هو التكون composition أو التركيب، التكون هو أقوى من التجمع، بمفهوم أن العلاقة تفرض أن
لا وجود للكل بدون الأجزاء.
في مثال التجمع أعلاه، إذا
أزحنا بطاقة الصوت، فإن الحاسوب سيظل حاسوبا. بالمقابل، الكتاب لا يكون كتابا بدون
صفحاته، لذلك نقول أن الكتاب مكون من صفحات.
طريقة التنويه لهذا شبيهة
بالتجمع، باستثناء أن المعين هذه المرة يكون ممتلئا، كالتالي:

شكل 55: الكتاب مكون من صفحة أو أكثر
إيجاد التجمع و
التكون
إيجاد هذه العلاقات على مخطط
الصنفية أمر مفيد، ولكن ليس حاسما في نجاح تصميمنا. بعض ممارسي UML يذهبون لأبعد من ذلك، و يدعون أن هذه العلاقات هي إسهاب زائد، و
يجب إزالتها (التجمع و التكون يمكن نمذجتهما كرابط له اسم مثل "يتكون
من").
عموما، طالما أن التجمع أحد
المفاهيم الرئيسية في المنحى للكائن، فالأمر بالتأكيد يستحق الإشارة إلى وجوده
صراحة.
ملخص
في هذا الفصل، رأينا كيفية تطوير نموذج الصنفية،
بناء على عملنا في التعاونات. التحول من النموذج المفاهيمي إلى نموذج لصنفية تصميم
أمر في غاية السهولة و الآلية، و لا يجب أن يسبب الكثير من العناء.
قد يعجبك ايضا