أخر الأخبار
دروس الفيديو MERISE
منذ بضع اعوام

شرح برنامج jmerise و تحميله

في هذه التدوينة الجديدة الخاصة ببرنامج  JMerise البرنامج الصغير الحجم الخفيف ...
اقرأ المزيد
مذكرت تخرج
منذ بضع اعوام

مذكرات التخرج لتقني سامي

التخرج ثمرة جهد سنين من التعليم و التمهين عل...
اقرأ المزيد
مشاكل و حلول
منذ بضع اعوام

How To Install Delphi 7 On Windows10 -- كيفية...

نظرا للتطور السريع ي التكنولوجيا و المنافسة الشرسة بين الشركات لتحسين منتاجاتها المثمثلة...
اقرأ المزيد
UML
منذ بضع اعوام

لغة النمدجة الموحدة UML الدرس الرابع عشر

مخططات صنفيات تصميم في مرحلة التفصيل، كنا قد قمنا ببناء نموذج مفاهيمي conceptual model. النمو...
اقرأ المزيد
UML
منذ بضع اعوام

لغة النمدجة الموحدة UML الدرس الثالث عشر

ترقيم الرسائل لنلاحظ أن كل الرسائل التي قمنا بتضمينها لحد الآن تتضمن رمز غامض و هو "1" محاد ل...
اقرأ المزيد
UML
منذ بضع اعوام

لغة النمدجة الموحدة UML الدرس الثاني عشر

  طور البناء: التصميم التصميم – مقدمة إلى هنا، أحطنا بالكامل بأبعاد المشكلة أو المسألة...
اقرأ المزيد
UML
منذ بضع اعوام

لغة النمدجة الموحدة UML الدرس الحادي عشر

مخطط التتابع في UML إعداد واصفات واقعة الاستخدام أمر صعب. الكثير من الناس يجدون صعوبة خاصة...
اقرأ المزيد
UML
منذ بضع اعوام

لغة النمدجة الموحدة UML الدرس العاشر

ترتيب وقائع الاستخدام لدينا الكثير من العمل أمامنا – كيف يمكننا تقسيم العمل لتكرارات ...
اقرأ المزيد
UML
منذ بضع اعوام

لغة النمدجة الموحدة UML الدرس التاسع

نمذجة المفاهيم نمذجة المفاهيم Conceptual Modeling  (أحيانا تدعى : نمذجة النطاق ا...
اقرأ المزيد

لغة النمدجة الموحدة UML الدرس الثاني عشر

 

طور البناء: التصميم

التصميم – مقدمة

إلى هنا، أحطنا بالكامل بأبعاد المشكلة أو المسألة التي نحاول إيجاد حل لها (بالنسبة لهذا التكرار). قمنا بتنشئة واقعة استخدام للتكرار الأول و تعمقنا في تفاصيلها، و نحن الآن جاهزين لتصميم الحل الخاص يهذه المسألة.
وقائع الاستخدام لا يتم إشباعها إلا بتفاعلات الكائنات. لذا في هذه المرحلة، يجب علينا تحديد الكائنات التي نحتاجها، و تحديد ما يجب أن تقوم به هذه الكائنات، و متى يجب أن تتفاعل مع بعضها.
توفر UML مخططين يسمحان لنا بالتعبير عن تفاعلات الكائنات، هما مخطط التتابع Sequence Diagram و مخطط التعاون Collaboration Diagram. هذان المخططان إجمالا متقاربان جدا (بعض البرامج المساعدة يمكنها توليد أحد المخططين من الآخر!)، مخططا التتابع و التعاون يسميان مخططات التفاعل Interaction Diagrams.
عند قيامنا بتحديد الكائنات التي نحتاجها، يجب توثيق صنفياتclasses  الكائنات التي لدينا، و كيف ترتبط هذه الصنفيات مع بعض. مخطط الصنفيات Class Diagram في UML يتيح لنا رصد هذه المعلومات. في الواقع، معظم العمل لتوليد مخطط الصنفيات قد تم انجازه بالفعل – سوف نستخدم النموذج المفاهيمي الذي سبق و أن قمنا بإنشائه كنقطة انطلاق.
أخيرا، نموذج مفيد سيتم بناؤه في مرحلة التصميم و هو نموذج الحالة State Model. المزيد من التفاصيل حول هذا لاحقا.
إذا، عند التصميم، سنقوم بتوليد ثلاثة أنواع من النماذج – مخطط التفاعل و مخطط الصنفيات و مخطط الحالة.


شكل 44: ما يتم تسليمه (المخرجات) في مرحلة التصميم.

تعاون الكائنات في واقع الحياة

إذا، وقائع الاستخدام لدينا سيتم إشباعها بتعاون الكائنات المختلفة. هذا ما يحدث فعلا في الحياة الواقعية. لنأخذ مكتبة ما كمثال.  مكتبة يتم إدارتها من قبل أخصائية مكتبات في مكتب الاستقبال.  أخصائية المكتبات مسؤولة عن تلبية طلبات الزبائن، و مسؤولة عن إدارة فهرس المكتبة. أخصائية المكتبة أيضا مسؤولة عن مجموعة من المساعدين. المساعدون مسؤولون عن إدارة أرفف المكتبة (أخصائية المكتبات لا يمكنها عمل ذلك – و إلا لن تتمكن من أداء عملها في مكتب الاستقبال بكفاءة).
الكائنات في منظومة المكتبة هذه هي:
زبون
أخصائية مكتبات
مساعد
فهرس مكتبة
رفّ
لننظر في واقعة الاستخدام الجلية – استعارة كتاب
كيف يمكن إشباع  واقعة الاستخدام هذه؟ لنفترض أن الزبون لا يعرف أين موقع الكتاب و يحتاج لمساعدة؟ سلسلة الأحداث يمكن أن تكون كالتالي:


1- الزبون يذهب لأخصائية المكتبة و يسأل عن كتاب "تطبيق UML".
2- أخصائية المكتبية تبحث في الفهرس عن اسم الكتاب. تجد بطاقة فهرس الكتاب، التي تبين أن الكتاب موضوع في الرف 4F.
3- أخصائية المكتبة تطلب من المساعد إحضار الكتاب من الرف 4F.
4- المساعد يحصل على الكتاب و يعطيه لأخصائية المكتبة.
5- أخصائية المكتبة تسجل خروج الكتاب و تسلمه للزبون.
شكل 45: سلسلة الأحداث في "استعارة كتاب"
بالرغم من بساطة المثال السابق، فإنه لم يكن سهلا، بالذات فيما يخص تحديد مسؤوليات كل كائن. هذه أحد النشاطات الرئيسية في التصميم بالمنحى للكائن Object Oriented Design – وضع مسؤوليات كل كائن بصورة صحيحة. مثلا، إذا قررنا أن ندع أخصائية المكتبة تقوم بجلب الكتاب بنفسها، فنكون قد صممنا نظاما غير فعال على الإطلاق.

مخططات التعاون

في هذا القسم، سنتناول الصيغة النحوية لمخطط التعاون Collaboration Diagram في UML. و سنرى في القسم التالي كيف يتم استخدام هذا المخطط.
يتيح لنا مخطط التعاون رؤية التفاعلات بين الكائنات عبر مدة زمنية. فيما يلي مثال لمخطط تعاون كامل:
شكل 46: مخطط تعاون

صيغ التعاون: الأساسيات

صنفية في مخطط تعاون يتم التنويه عنها كالتالي:


التجسد أو التمثل instance لصنفية (بعبارة أخرى، كائن) يتم ترميزه كالتالي:

أحيانا، نجد أنه من المفيد أن نسمي تجسد الصنفية. في المثال التالي، نريد كائنا من صنفية حساب، و نريد أن نسميه "first" أول:

إذا أردنا لكائن أن يتواصل مع كائن آخر، نرمز لهذا بوصل الكائنين مع بعض بخط. في المثال التالي نريد وصل الكائن "bet" رهان مع الكائن "account" حساب.

حالما نقوم بترميز كائن موصول بآخر، يمكننا إرسال رسالة مسماة من كائن لآخر. في الرسم التالي، الكائن "bet" رهان يبعث برسالة للكائن "account" حساب، يخبره فيها بأن يجعل نفسه مدينا.


إذا أردنا إمرار معطيات parameters مع الرسالة، يمكننا تضمينها بين قوسين كما يلي. نوع بيانات المعطيات (في المثال، صنفية اسمها "Money") يمكن عرضها كخيار.

يمكن للرسالة أن تقوم بإرجاع (تناظر استدعاء الوظيفية function call في مرحلة البرمجة). ينصح بالصيغة التالية في مواصفات UML إذا كنا ننشد تصميما غير محايد لأية لغة. عموما، إذا كنت تستهدف لغة ما، يمكنك أن تكيف الصيغة لتطابق لغتك المفضلة.
return := message (parameter: parameterType): returnType
في  المثال التالي، يحتاج الكائن "bet" رهان لمعرفة رصيد حساب معين. يتم بعث الرسالة "getBalance" ، و يقوم الكائن حساب بإرجاع عدد صحيح:

مخططات التعاون: التوالي

إذا أردنا إدخال متوالية loop في مخطط التعاون، نستخدم الصيغة التالية. في هذا المثال، كائن من صنفية "Race List" عبارة عن قائمة سباقات ويحتاج الكائن لتعبئة قائمته.  من أجل ذلك: يطلب من كل عضو في صنفية "Race" أن يرجع له اسمه.

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

مخططات التعاون: خلق كائنات جديدة

أحيانا، يقوم كائن بخلق و إنشاء create تمثل/تجسد جديد لكائن آخر. طريقة القيام بهذا تختلف بين اللغات، في UML تم توحيد عملية الإنشاء بالصيغة التالية:


حقيقة، الصيغة غريبة بعض الشيء – البعث برسالة تسمى “Create” (خلق/إنشاء) لكائن لم يوجد بعد!

[
قد يعجبك ايضا
تعليقات
تعليقات Bloggerتعليقات Disqus



حجم الخط
+
16
-
تباعد السطور
+
2
-