مخطط النشاط Activity Diagram

اقرأ في هذا المقال


ما هو مخطط النشاط Activity Diagram؟

مخطط النشاط هو مخطط مهم من مخططات الـ (UML) لوصف الجوانب الديناميكية للنظام، ومخطط النشاط هو في الأساس نسخة متقدمة من مخطط التدفق الذي يصمم تدفق العملية في المشروع من نشاط إلى نشاط آخر. تعتبر مخططات النشاط، جنبًا إلى جنب مع مخطط حالة الاستخدام ومخططات آلة الحالة مخططات سلوكية؛ لأنها تصف ما يجب أن يحدث في النظام الذي يتم تصميمه.

يواجه أصحاب المصلحة العديد من المشكلات التي يجب إدارتها، لذلك من المهم التواصل بوضوح وإيجاز. تساعد مخططات النشاط الأشخاص في جوانب الأعمال والتطوير في المؤسسة على الالتقاء معًا لفهم نفس العملية والسلوك، ستستخدم مجموعة من الرموز المتخصصة، بما في ذلك تلك المستخدمة لبدء الخطوات أو إنهائها أو دمجها، والذي سنقوم بتغطيته بمزيد من العمق في دليل مخطط النشاط هذا.

متى يتم استخدام مخطط النشاط؟

تصف مخططات النشاط كيفية تنسيق الأنشطة لتقديم خدمة، ويمكن أن تكون مخططات النشاط على مستويات مختلفة من التجريد، وعادةً يجب تحقيق حدث ما من خلال بعض العمليات، لا سيما عندما يكون الهدف من العملية تحقيق عدد من الأشياء المختلفة التي تتطلب التنسيق، أو كيف ترتبط الأحداث في حالة استخدام واحدة ببعضها البعض، وعلى وجه الخصوص حالات الاستخدام التي تكون فيها الأنشطة قد تتداخل وتتطلب التنسيق، كما أن مخطط النشاط مناسب لتصميم كيفية تنسيق مجموعة من حالات الاستخدام لتمثيل مهام سير العمل.

رموز مخطط النشاط:

هناك مجموعة من الرموز المختلفة المستخدمة في مخطط النشاط، وهم:

1. رمز الحالة الأولية Initial State:

يتم تصوير حالة البداية قبل حدوث النشاط باستخدام رمز الحالة الأولية، ويمكن أن يكون للعملية حالة أولية واحدة فقط ما لم نصور الأنشطة المتداخلة، يتم استخدام دائرة سوداء مملوءة لتصوير الحالة الأولية للنظام، بالنسبة للـ (objects) هذه هي الحالة عندما يتم إنشائها، كما تحدد الحالة الأولية من مخطط نشاط نقطة الدخول وحالة النشاط الأولية.

UML-State-Diagram-11

في المثال أدناه، الحالة الأولية هي حالة النظام قبل فتح التطبيق:

UML-Activity-Diagram-2

2. رمز حالة النشاط Activity State:

يمثل النشاط تنفيذ إجراء على (objects) أو بواسطة (objects)، ويتم تمثل النشاط باستخدام مستطيل بزوايا دائرية، في الأساس يتم تمثيل أي إجراء أو حدث يحدث باستخدام نشاط.

UML-Activity-Diagram-21

افرض انه في المثال السابق لـ فتح التطبيق، أن فتح التطبيق هو حالة نشاط في مخطط النشاط.

3. رمز تدفق الإجراء أو تدفقات التحكم Action Flow or Control flows:

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

UML-Object-Diagram-33

في المثال ادناه، تنتقل كلتا الحالتين إلى الحالة النهائية باستخدام رموز تدفق الإجراءات، أي الأسهم:

UML-Activity-Diagram-22

4. رمز عقدة القرار Decision node:

عندما نحتاج إلى اتخاذ قرار قبل تحديد تدفق التحكم، فإننا نستخدم عقدة القرار:

UML-Activity-Diagram-23

يمكن تسمية الأسهم الصادرة من عقدة القرار بالشروط، وتتضمن دائمًا سهمين إخراج أو أكثر.

UML-Activity-Diagram-24

5. رمز الحراس Guards:

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

UML-Activity-Diagram-2-1

6. رمز التفرع Fork:

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

UML-Activity-Diagram-21-1

في المثال أدناه، يمكن تقسيم نشاط صنع القهوة إلى نشاطين متزامنين، ومن ثم نستخدم رمز التفرع.

UML-Activity-Diagram-22-1

7. رمز الضمّ Join:

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

UML-Activity-Diagram-24-1

على سبيل المثال، عند اكتمال كلا النشاطين، أي تبخير الحليب وإضافة القهوة، نقوم بدمجهما في نشاط نهائي واحد.

UML-Activity-Diagram-23-1

8. رمز حدث الدمج Merge Event:

تنشأ السيناريوهات عندما يتعين دمج الأنشطة التي لا يتم تنفيذها بشكل متزامن، نستخدم رمز الدمج لمثل هذه السيناريوهات، يمكننا دمج نشاطين أو أكثر في نشاط واحد إذا استمر عنصر التحكم في النشاط التالي بغض النظر عن المسار المختار.

UML-Activity-Diagram-25

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

UML-Activity-Diagram-26

9. الممرات المائية Swimlanes:

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

UML-Activity-Diagram-27

على سبيل المثال، هنا يتم تنفيذ مجموعة مختلفة من الأنشطة بناءً على ما إذا كان الرقم فرديًا أو زوجيًا. يتم تجميع هذه الأنشطة في الممرات المائية.

UML-Activity-Diagram-28

10. الحالة الأخيرة أو الحالة النهائية End State:

تُعرف الحالة التي يصل إليها النظام عند انتهاء عملية أو نشاط معين بالحالة النهائية، نستخدم دائرة مملوءة داخل رمز دائري لتمثيل الحالة النهائية في مخطط النشاط، ويمكن أن يكون للنظام أو العملية حالات نهائية متعددة.

UML-State-Diagram-13-1

كيفية رسم مخطط النشاط:

1- تحديد الحالة الأولية والحالات النهائية.

2- تحديد الأنشطة اللازمة للوصول من الحالة الأولية إلى الحالة النهائية.

3- حدد الشروط أو القيود التي تجعل النظام يغير تدفق التحكم.

4- ارسم المخطط باستخدام الرموز المناسبة.

المصدر: Unified Modeling Language (UML) | Activity DiagramsWhat is Activity Diagram?UML Activity Diagram TutorialUML - Activity Diagrams


شارك المقالة: