UML: مخططات التسلسل والنشاط والحالة

اختيار مخطط السلوك المناسب

18 دقيقة الدرس 9 من 10

اختيار مخطط السلوك المناسب

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

ما الذي يسأله كل مخطط فعلًا

أوضح طريقة للتمييز بين المخططات الثلاثة هي فهم السؤال الجوهري الذي صُمِّم كل منها للإجابة عنه:

  • مخطط التسلسل"من يتحدث إلى من، وبأي ترتيب؟" يُنمذج تبادل الرسائل بين المشاركين عبر الزمن. التركيز على التفاعل: أي كائن يستدعي أيًا، وما البيانات المُمررة، وكيف ينتقل التحكم بين المشاركين في سيناريو محدد.
  • مخطط الأنشطة"ما هي الخطوات، وكيف يتدفق العمل عبرها؟" يُنمذج المنطق الإجرائي وتدفق العمل. التركيز على الإجراءات: تسلسلها، والقرارات بينها، والفروع المتوازية، ومسؤولية كل خطوة (مسارات السباحة).
  • مخطط آلة الحالة"ما الحالات التي يمكن أن يكون عليها هذا الكائن، وما الذي يُحرّك كل تغيير؟" يُنمذج دورة حياة كائن أو نظام واحد. التركيز على الحالات: الأوضاع التي يمكن للكائن أن يكون فيها، والأحداث التي تُسبب الانتقالات، وأي إجراءات تُطلَق عند دخول حالة أو مغادرتها.
اختبار الجملة الواحدة: إن بدأت جملتك بـ"النظام يُرسل / يستقبل / يستدعي..." فأنت على الأرجح بحاجة إلى مخطط تسلسل. إن بدأت بـ"تبدأ العملية / تتفرع / تتكرر..." فأنت تحتاج مخطط أنشطة. إن بدأت بـ"يمكن أن يكون الطلب / الحجز / الحساب في حالة..." فأنت تحتاج آلة حالة.

مقارنة سريعة في نظرة واحدة

يضع المخطط أدناه المخططات الثلاثة جنبًا إلى جنب باستخدام نفس النطاق — نظام حجز عيادة — لإظهار كيف يلتقط كل منها زاوية مختلفة من الواقع ذاته.

Three behavior diagrams compared side by side — clinic booking domain Sequence Diagram Activity Diagram State Machine Patient BookingSystem DB requestAppt() checkSlot() slotOk confirm(bookingId) من يتحدث إلى من وبأي ترتيب Enter Date + Time Check Availability Slot free? Yes Confirm Booking Send Email No Add Waitlist Notify Patient ما هي الخطوات وكيف يتدفق العمل Requested Confirmed Waitlisted Attended Cancelled slotFree noSlot patientArrives cancel ما الحالات التي يمكن أن يكون عليها الحجز
الشكل 1 — نفس نطاق حجز العيادة مُعروض عبر المخططات الثلاثة: التسلسل (من يتواصل)، والأنشطة (كيف يتدفق العمل)، وآلة الحالة (ما الحالات التي يمر بها الحجز).

متى تستخدم كل مخطط

يوجز الجدول أدناه قواعد القرار العملية التي يطبقها المحللون في المشاريع الحقيقية. استخدمه مرجعًا سريعًا حين تجلس لنمذجة متطلب أو عملية.

المخطط الأنسب لـ تجنبه حين ----------------------------------------------------------------- التسلسل نمذجة سيناريو محدد لحالة عرض جميع السيناريوهات استخدام؛ توثيق عقود API؛ دفعة واحدة؛ نمذجة إظهار بروتوكول التكامل؛ دورة حياة كائن واحد؛ التحقق من تصميم التكامل. إظهار خطوات إجرائية. الأنشطة نمذجة عملية أو سير عمل؛ إظهار أي مكوّن أرسل توثيق المنطق الإجرائي؛ أي رسالة؛ نمذجة تحديد المسؤوليات عبر الأدوار؛ دورة حياة كائن. إظهار العمل المتوازي. آلة الحالة نمذجة دورة حياة كيان واحد؛ إظهار تفاعل متعدد تعريف انتقالات الحالة الصالحة؛ الأطراف؛ إظهار تحديد السلوك المُحرَّك بالأحداث؛ إجراءات خطوة بخطوة؛ تدفقات شاشات واجهة المستخدم. نمذجة عملية بلا حالات.

الاختبار الثلاثي في الممارسة

يطرح المحللون المخضرمون ثلاثة أسئلة تشخيصية حين يبدؤون نمذجة أي متطلب جديد:

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

الجمع بين المخططات في مشروع حقيقي

هذه المخططات ليست متنافية. يشمل النموذج الكامل لطلب في متجر إلكتروني في الغالب:

  • آلة حالة لكيان Order (جديد ← قيد المعالجة ← تم الشحن ← تم التسليم / مُلغى / مُسترد) — يُتفق عليها مع صاحب العمل باعتبارها التعريف الرسمي لدورة الحياة.
  • مخطط أنشطة لسير عمل التنفيذ — يُظهر التقاط المستودع وفحص الجودة والإرسال كمسارات سباحة مع إجراءات متوازية.
  • عدة مخططات تسلسل — واحد لكل سيناريو رئيسي: إتمام الطلب، ومعالجة الدفع، ومعالجة الدفع الفاشل، وبدء الإرجاع.

يعيش كل مخطط على مستوى مختلف من التجريد ويخدم جمهورًا مختلفًا. تُعدّ آلة الحالة عقدًا موجزًا للمطورين المُنفِّذين لقواعد الأعمال. يُوصّل مخطط الأنشطة العملية من البداية إلى النهاية لمديري العمليات. مخططات التسلسل مواصفات تقنية لفريق التكامل.

مخطط القرار

Decision flowchart: which behavior diagram to choose Start: What to model? Multiple participants exchanging messages? Yes Sequence Diagram No Workflow with steps, decisions, or swimlanes? Yes Activity Diagram No Object with defined states and transitions? Yes State Machine No Combine or use other diagram type
الشكل 2 — مخطط قرار لاختيار المخطط السلوكي المناسب بين المخططات الثلاثة.

أخطاء شائعة يجب تجنبها

تظهر أخطاء متكررة حين يختار المحللون المخطط الخاطئ:

  • استخدام مخطط التسلسل لعرض جميع السيناريوهات دفعة واحدة. يُنمذج مخطط التسلسل سيناريوًا واحدًا لكل مخطط. إن وجدت نفسك ترسم عشرات الفروع داخل مخطط واحد، انتقل إلى مخطط الأنشطة لتصوير سير العمل وارسم مخططات تسلسل منفصلة للمسارات الفردية.
  • محاولة إظهار دورة الحياة في مخطط الأنشطة. إن كان مخطط الأنشطة لديك يحتوي على "حالات" مكتوبة داخل عُقَد الإجراءات (مثل "الطلب أصبح مؤكدًا الآن")، فأنت في الواقع تُنمذج آلة حالة. استخرج دورة الحياة إلى مخطط حالة صحيح.
  • رسم آلة حالة لعملية لا لكائن. تنتمي آلة الحالة لكائن واحد. إن وجدت نفسك تُلصق بالحالات خطواتٍ تشمل أطرافًا متعددة ("الخطوة 3: المستودع يُجهّز الطلبية")، فأنت تصف سير عمل — ارسم مخطط أنشطة بمسارات سباحة.
الخطأ الأكثر شيوعًا لدى المحللين: الاعتماد على مخطط الأنشطة لكل شيء لأنه يبدو مألوفًا (شبيهًا بالمخطط الانسيابي). مخططات الأنشطة قوية، لكنها لا تعوض آلة الحالة في نمذجة دورة الحياة ولا مخطط التسلسل في تحديد التفاعلات. لكل مخطط نطاقه الذي يتفوق فيه — استخدم المناسب.

ملخص

  • مخطط التسلسل — يُنمذج سيناريوًا محددًا للتفاعل بين مشاركين متعددين؛ التركيز على ترتيب الرسائل واتجاهها.
  • مخطط الأنشطة — يُنمذج سير العمل أو العملية؛ التركيز على الإجراءات والقرارات والتدفقات المتوازية والمسؤوليات (مسارات السباحة).
  • مخطط آلة الحالة — يُنمذج دورة حياة كائن واحد؛ التركيز على الحالات والأحداث والانتقالات.
  • استخدم الاختبار التشخيصي الثلاثي: مشاركون متعددون يتواصلون؟ ← تسلسل؛ سير عمل بخطوات وقرارات؟ ← أنشطة؛ كائن بدورة حياة محددة؟ ← آلة حالة.
  • في الممارسة، يستخدم النموذج الكامل لأي ميزة غير بديهية المخططات الثلاثة معًا، يخدم كل منها جمهورًا وغرضًا مختلفًا.