الثلاثاء، 17 أغسطس 2010

مخططات مادية Physical Diagrams

هناك نوعان من المخططات المادية "physical diagrams" : مخططات  النشر "deployment diagrams" و مخططات المركب "Component diagrams". مخططات  النشر "deployment diagrams" تقوم بإظهار العلاقة المادية بين الأجهزة "hardware" والبرامج "software" في النظام. مخططات المركب "Component diagrams" تقوم بإظهار مكونات البرامج "software components" للنظام ، وكيفية ترابط بعضها مع البعض. هذه العلاقات تسمى التبعيات "dependencies".

متى تستخدم مخططات مادية Physical Diagrams

وتستخدم مخططات مادية "Physical Diagrams" عند الانتهاء من تطوير النظام. وتستخدم أيضا لاعطاء تفاصيل عن المعلومات المادية عن هذا النظام.

كيفية رسم مخططات مادية Physical Diagrams

وفي كثير من الأحيان يتم الجمع بين مخططات النشر "deployment diagrams" و مخططات المركب "Component diagrams" في مخطط مادي واحد "physical diagram". و هذا الجمع بين المخططات ينتج عنه جمع بين ميزات هذه المخططات في مخطط واحد.

و تتضمن مخططات النشر "deployment diagrams" العقد "nodes" والاتصالات "connections". العقدة "node" وعادة ما تمثل قطعة من الأجهزة "hardware " في النظام. الاتصالات "connection" تصور مسار الاتصال المستخدم من قبل الجهاز "hardware" للاتصال وعادة ما يدل على وسيلة مثل حزمة بروتوكولات الإنترنت  TCP/IP.





تحتوي مخططات المركب "Component diagrams" على مركبات  "components" والتبعيات "dependencies". تمثل مركبات "components" الحزمة المادية للوحدة "module" من التعليمات البرمجية. و تبين التبعيات "dependencies" بين المركبات "component" كيف تقوم التغييرات التي أدخلت على مركب "component" واحد بالتاثير على المركبات الأخرى في النظام. يتم تمثيل التبعيات "dependencies" في مخططات المركب "Component diagrams" بخط متقطع بين مركبين أو أكثر. مخططات المركب "Component diagrams" يمكن أن تُظهر أيضا الواجهات التي تستخدمها المركبات للتواصل مع بعضها البعض.

مخططات  النشر "deployment diagrams" و مخططات المركب "Component diagrams" المرسومة أدناه تعطي مستوى عال للوصف المادي لكامل النظام. ويبين الرسم عقدتين "nodes" اللاتان تمثلان الاتصال بين الآلات من خلال حزمة بروتوكولات الإنترنت  TCP/IP. المركب رقم 2 "Component 2" يعتمد على المركب رقم 1 "component 1" ، بحيث ان التغيرات التي تطبق على المركب رقم 2 "Component 2" تؤثر على المركب رقم 1 "Component 1". الرسم يصور أيضا التواصل بين المركب رقم 3 "component 3" مع المركب رقم 1 "component 1". هذا الرسم التخطيطي يعطي للقارئ نظرة سريعة و شاملة للنظام بأكمله.




مخططات النشاط Activity Diagrams

مخططات النشاط "Activity diagrams" تصف سلوك سير العمل للنظام. مخططات النشاط مماثلة لمخططات الحالة "state diagrams" لأن الأنشطة "activities" تمثل حالة القيام بشيء. المخططات تصف حالة الأنشطة من خلال إظهار تسلسل الأنشطة التي تم القيام بها. مخططات النشاط "Activity diagrams" يمكن أن تُظهر الأنشطة المشروطة "conditional" أو المتوازية "parallel".

متى تستخدم مخططات النشاط Activity Diagrams

مخططات النشاط "Activity diagrams" ينبغي أن تستخدم بالتعاون مع تقنيات النمذجة الأخرى مثل مخططات التفاعل "interaction diagrams" ومخططات الحالة   "state diagrams". والسبب الرئيسي لاستخدام مخططات النشاط "Activity diagrams" هو نموذج سير العمل داخل النظام الذي يجري تصميمه. مخططات النشاط "Activity diagrams" مفيدة أيضا بالنسبة إلى : تحليل حالة الاستخدام"use case" عن طريق وصف ماهي الإجراءات "actions" التي نحتاج إلى إجراءها و متى ينبغي أن تحدث ، وصف خوارزمية معقدة متسلسلة و تطبيقات النمذجة مع العمليات المتوازية "parallel processes"

ومع ذلك ، فإن مخططات النشاط "Activity diagrams" لا تحل محل مخططات التفاعل "interaction diagrams" ومخططات الحالة   "state diagrams". مخططات النشاط "Activity diagrams" لا تعطي تفاصيل حول كيفية تصرف  الكائنات "objects" أو كيف تعاونها.

كيفية رسم مخططات النشاط Activity Diagrams

تُظهر لنا مخططات النشاط "Activity diagrams" تدفق  الأنشطة من خلال النظام. تتم قراءة المخططات من الأعلى إلى الأسفل ، ولها فروع "branches" و شوكات "forks" لوصف الظروف "conditions" والأنشطة الموازية "parallel activities". و تستخدم  الشوكة "fork" عندما تحدث أنشطة متعددة في نفس الوقت. ويبين الرسم البياني أدناه الشوكة "fork" بعد النشاط 1 "activity 1".

هذا يشير إلى أن كل من النشاط عدد 2 "activity 2" و النشاط عدد 3 "activity 3" يتم حدوث في نفس الوقت. بعد النشاط عدد 2 يوجد تفرع "branch". التفرع يصف ما هي الأنشطة التي ستُجرى على أساس مجموعة من الشروط. و تنتهي كل الفروع في بعض النقاط بالدمج "merge" ليشير إلى نهاية السلوك المشروط الذي ابتدأ في هذا الفرع. ويجب بعد دمج جميع الأنشطة المتوازية ضمها بربط "join" قبل الانتقال إلى حالة النشاط النهائي.



وفيما يلي مخطط النشاط "Activity diagram"  اللازم لمعالجة الطلب "order". ويبين المخطط  تدفق الإجراءات "actions" عند سير عمل النظام. بمجرد استلام الطلب "receive order" تنقسم الأنشطة إلى مجموعتين من الأنشطة المتوازية. احد الجوانب  يملأ ويرسل "fills and sends" في حين أن الآخر يعالج الفواتير. على جانب الملأ والارسال "fills and sends" أسلوب التسليم يكون بشروط. اعتمادا على الشروط سيقوم النظام بالنشاط المسمى بالتسليم الليلي "Overnight Delivery" او نشاط التسليم العادي "Regular Delivery". و في النهاية سيتم الجمع بين الأنشطة المتوازية لإغلاق النظام.


الثلاثاء، 3 أغسطس 2010

مخططات الحالة State Diagrams

وتستخدم مخططات الحالة "State Diagrams" لوصف سلوك النظام.مخططات الحالة State Diagrams تصف كل من الحالة المحتملة للكائن "object" عند حدوث الحالة. كل رسم بياني يمثل عادة كائنات "objects" لفئة واحدة وتتبع الحالات المختلفة للكائنات من خلال النظام.

متى تستخدم مخططات الحالة State Diagrams

تستخدم مخططات الحالة "State Diagrams" لوصف سلوك الكائن "object" من خلال استخدام العديد من حالات الاستخدام "use cases" للنظام. تستخدم مخططات الحالة "State Diagrams" فقط للفئات "classes" عندما يكون من الضروري فهم سلوك الكائن "object" من خلال النظام بأكمله. ليست كل الفئات "classes" تحتاج إلى مخططات الحالة "State Diagrams" و مخططات الحالة ليست مفيدة لوصف التعاون لجميع الكائنات في حالة الاستخدام. مخططات الحالة "State Diagrams" هي الأخرى مجتمعة مع غيرها من المخططات مثل مخططات التفاعل “Interaction Diagrams” و  مخططات الانشطة “activity Diagrams”.

كيفية رسم مخططات الحالة State Diagrams

مخططات الحالة لديها عناصر قليلة جدا. العناصر الأساسية تمثل صناديق مستديرة من الجوانب تصف لنا حالة الكائن "object" واسهم تصف لنا عملية الانتقال إلى الحالة القادمة. قسم النشاط "activity section" لرمز الحالة يصور لنا ما هي أنشطة الكائن التي سيقوم بها أثناء وجوده في تلك الحالة.




جميع مخططات الحالة "state diagrams" تبدأ مع الحالة المبدئية "initial state" للكائن. هذه هي حالة الكائن عندما يتم إنشاؤه. بعد الحالة المبدئية يبدأ الكائن  بتغيير الحالات. الشروط "Conditions" تعتمد على الأنشطة لتحديد الحالة القادمة التي سيتحول لها الكائن.




وفيما يلي مثال على رسم تخطيطي للحالة قد تبدو وكأنها لكائن الطلب "Order object". عندما يدخل الكائن "object" الى حالةالفحص "Checking" سيُنفذ النشاط افحص العنصر "check items". بعد الانتهاء النشاط الكائن يتحول الى الحالة الموالية بالاعتماد على الشرط: كل العناصر متوفرة "all items available" او الشرط : عنصر غير متوفر "an item is not available". إذا كان الشرط هو عنصر غير متوفر سيتم إلغاء الأمر "canceled". إذا كانت جميع العناصر متاحة سيتم إرسال الطلب "dispatching". عندما ينتقل الكائن الى الحالة: إيفاد "Dispatching" فان النشاط المسمى: الشروع في التسليم "initiate delivery" سيتم تنفيذه. بعد هذا النشاط سيكمل الكائن "object" الانتقال مرة أخرى إلى الحالة: سلمت "Delivered".



مخططات الحالة "state diagrams" يمكن أن تُظهر أيضا الحالة الممتاز "super-state" للكائن. وتُستخدم الحالة الممتاز "super-state" عندما تحصل انتقالات كثيرة تؤدي إلى حالة معينة. بدلا من عرض كل من الانتقالات  لكل حالة يمكن استخدام الحالة الممتاز "super-state" لاظهار ان جميع الحالات موجودة داخل الحالة الممتاز "super-state" يمكنها الانتقال إلى الحالة المتكررة. هذا يجعل من  مخطط الحالة "state diagram" أسهل في القراءة.

ويبين الرسم البياني أدناه الحالة الممتاز "super-state". كل من حالة التدقيق "Checking" و حالة الإيفاد "Dispatching" يمكن ان يمروا بالحالة إلغاء "Canceled" ، لذلك يظهر الانتقال من الحالة الممتاز "super-state" المسمات بنشط "Active" إلى الحالة المسمات إلغاء "Cancel". على النقيض من ذلك ، فإن الحالة إيفاد "Dispatching" يمكنها فقط الانتقال إلى الحالة المسلمة 
"Delivered" ، لهذا نظهر سهم فقط من الحالة إيفاد "Dispatching"  الى الحالة سلمت "Delivered".