مسارات السباحة والأنشطة المتوازية
مسارات السباحة والأنشطة المتوازية
يُخبرك مخطط الأنشطة بالفعل عن ما يحدث في عملية ما. أضف مسارات السباحة وأشرطة التفرّع/الانضمام، وسيجيب المخطط أيضًا عن من يؤدي كل خطوة، وأي الخطوات تسير في آنٍ واحد. هذان الإضافتان تحوّلان المخطط الانسيابي البسيط إلى مخطط وظيفي متكامل يستطيع أصحاب الأعمال والمطوّرون والمختبِرون جميعًا قراءته من صفحة واحدة.
ما هو مسار السباحة؟
مسار السباحة (يُعرف رسميًا بـpartition في UML 2) هو شريط عمودي أو أفقي يجمّع الأفعال حسب الطرف المسؤول عنها، سواء كان دورًا، أو قسمًا، أو مكوّن نظام، أو وحدة تنظيمية. يستعير الاسم من علامات المسارات في حمام السباحة: كل سبّاح يبقى في مساره. وفي المخطط، يقع كل فعل داخل مسار واحد تحديدًا، مما يجعل المسؤولية واضحة دون لبس.
الاختيارات الشائعة للمسارات في تحليل الأعمال:
- حسب الدور — Customer، Clerk، Manager، System.
- حسب القسم — Sales، Warehouse، Finance، Shipping.
- حسب النظام — Mobile App، Backend API، Payment Gateway، Email Service.
أشرطة التفرّع والانضمام
كثيرًا ما تنقسم العمليات الحقيقية إلى خيوط متزامنة يجب أن تنتهي جميعها قبل أن تتواصل العملية. تُمثّل مخططات أنشطة UML هذا بتدوينين خاصين:
- شريط التفرّع (Fork) — شريط أفقي (أو عمودي) صلب وسميك بـتدفق واحد داخل وتدفقين أو أكثر خارجة. يُطلق التفرّع جميع المسارات الخارجة في آنٍ واحد. تخيّله على أنه "ابدأ كل هذه في وقت واحد".
- شريط الانضمام (Join) — صورة مرآة للتفرّع: شريط سميك بـتدفقين أو أكثر داخلة وتدفق واحد خارج. ينتظر الانضمام حتى يُكمل كل مسار داخل رحلته قبل تمرير الرمز إلى الأمام. تخيّله على أنه "انتظر حتى تنتهي كل هذه".
يُحاط معًا من التفرّع ومقابله من الانضمام منطقة متوازية. كل ما بداخل هذه المنطقة يمكن أن يتقدم بشكل متزامن. خارجها يعود التنفيذ إلى التسلسل المعتاد.
المخطط الأول: تنفيذ الطلبات في متجر إلكتروني مع مسارات السباحة
تأمّل عملية تنفيذ طلبات متجر إلكتروني. عندما يضع أحد العملاء طلبًا، تعمل ثلاثة أقسام في وقت واحد: يقوم قسم المستودع بالتقاط البضائع وتعبئتها، ويُحصّل قسم المالية الدفع، ويُرسل نظام تقنية المعلومات بريد تأكيد الطلب. يجب أن تنتهي الأقسام الثلاثة قبل أن يشحن قسم التوصيل الطرد.
قراءة المخطط
تجوّل في المخطط عنصرًا عنصرًا:
- الدائرة السوداء المملوءة (عقدة البداية) توجد في مسار Customer — تبدأ العملية عندما يضع العميل طلبًا.
- شريط التفرّع له سهم واحد داخل وثلاثة خارجة. بمجرد الوصول إلى التفرّع تتفعّل المسارات الثلاثة معًا: يبدأ المستودع في الالتقاط، تُحصّل المالية الدفع، ويُرسل نظام تقنية المعلومات بريد التأكيد. لا ينتظر أيٌّ منها الآخرين.
- شريط الانضمام له ثلاثة أسهم داخلة وواحد خارج. لا يمكن للرمز تجاوز الانضمام حتى تُسلّم المسارات الثلاثة الأولى رموزها — أي لا يمكن شحن الطرد حتى تُعبَّأ البضائع ويُعالَج الدفع ويُرسَل البريد.
- بعد الانضمام يعود التنفيذ إلى خيط تسلسلي واحد في مسار Shipping، وفي نهاية المطاف يستلم العميل إشعار التوصيل.
- عقدة النهاية (الدائرة المزدوجة) تُنهي العملية.
المخطط الثاني: عملية استعارة كتاب من مكتبة
كمثال ثانٍ، تأمّل عملية استعارة كتاب وإعادته في مكتبة. عندما يطلب عضو استعارة كتاب، يحدث شيئان في وقت واحد: يحجز النظام الكتاب في الكتالوج، ويجلب أمين المكتبة النسخة المادية من الرف. عندما ينتهي الاثنان، يُصدر أمين المكتبة الكتاب للعضو.
رسم مخطط مسارات السباحة: خطوة بخطوة
- حدّد الأطراف الفاعلة. اكتب قائمة بكل دور أو قسم أو نظام يؤدي فعلًا واحدًا على الأقل. كل منها يصبح مسارًا.
- رتّب الأفعال في تسلسل. اكتب العملية أولًا بلغة بسيطة. حدّد الأفعال التي تعتمد على سابقاتها وتلك التي يمكن أن تتداخل.
- وزّع الأفعال على المسارات. ضع كل فعل داخل مسار الطرف المسؤول عنه. إن لم تكن متأكدًا، اسأل: "من يتحمّل المسؤولية إذا فشلت هذه الخطوة؟"
- حدّد المناطق المتوازية. ابحث عن أزواج من الأفعال التي لا تعتمد على بعضها وتستطيع البدء في آنٍ واحد. احتِ بها بشريط تفرّع في البداية وشريط انضمام في النهاية.
- تحقّق من الاكتمال. يجب أن يصل كل مسار في نهاية المطاف إلى عقدة النهاية. لا يجب أن يبقى أي فعل بلا تدفق داخل أو تدفق خارج.
رؤى تحليلية شائعة من مخططات مسارات السباحة
تُعدّ مخططات مسارات السباحة من أقوى أدوات تحسين العمليات لأنها تجعل فجوات المسؤولية وتأخيرات التسليم مرئية:
- اختناقات التسليم. السهم الذي يعبر من مسار إلى آخر هو تسليم. مجموعات الأسهم المتقاطعة بين مسارين كثيرًا ما تشير إلى عنق زجاجة في التواصل يستحق التحقيق.
- فجوات المسؤولية. إذا لم يندرج فعل بوضوح في أي مسار، فهذا يكشف عن ملكية غير محددة — مصدر شائع لفشل العمليات في المنظمات الحقيقية.
- التسلسل غير الضروري. حين ترى فعلين في المسار ذاته بلا اعتماد على البيانات، اسأل: هل يجب أن يكونا تسلسليين فعلًا، أم يمكن لأحدهما أن يبدأ مبكرًا؟ المخطط يجعل هذه المحادثة ملموسة.
- المسارات المُثقَلة بالأعباء. مسار يحمل أفعالًا أكثر بكثير من غيره قد يشير إلى دور يُشكّل عنق زجاجة أو مكوّن نظام يُعدّ نقطة فشل وحيدة.
في الدرس التالي ننتقل إلى مخططات آلة الحالة — نوع مختلف تمامًا من نماذج السلوك يصف كيف يتغير كيان واحد (مثل الطلب أو الحجز) عبر حالاته طوال دورة حياته. بينما تُظهر مخططات الأنشطة ذات مسارات السباحة العمليات وهي تتكشّف عبر الزمن، تُظهر آلات الحالة التاريخ الحياتي لشيء ما.