مخطط آلة الحالة ومخطط الحالة في UML

⚡ ملخص ذكي

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

  • 🔁 الغرض الأساسي: يوضح مخطط آلة الحالة كيف يتغير وضع الكائن استجابةً للأحداث على مدار حياته.
  • 🧩 نوعين: تقوم آلات الحالة السلوكية بنمذجة تنفيذ عنصر ما؛ بينما تقوم آلات حالة البروتوكول بنمذجة التغييرات المسموح بها في البروتوكول.
  • 🔷 مفتاح الترميز: تتكون المخططات من الحالات الأولية والنهائية، ومربعات القرار، والانتقالات، ومربعات الحالة المستديرة.
  • 🗂️ أنواع الولايات: تقوم الحالات البسيطة والمركبة والفرعية بتنظيم السلوك، مع وجود حالات متعامدة تحتوي على حالات فرعية متوازية.
  • 🔐 مثال عملي: يُظهر نموذج المصادقة بكلمة المرور لمرة واحدة (OTP) الانتقالات بين الحالات بناءً على شرط الحماية.

ما هو مخطط آلة الدولة؟

الرسم التخطيطي للدولة تُستخدم مخططات آلة الحالة في لغة النمذجة الموحدة (UML) لوصف سلوك نظام برمجي. ويمكن استخدامها لنمذجة سلوك فئة، أو نظام فرعي، أو حزمة، أو حتى نظام كامل. وتُعرف أيضاً باسم مخطط الحالة أو مخطط انتقال الحالة.

ما هو مخطط الحالة؟

توفر لنا مخططات Statechart طريقة فعالة لنمذجة التفاعلات أو الاتصالات التي تحدث داخل الكيانات الخارجية والنظام. تُستخدم هذه المخططات لنمذجة النظام القائم على الأحداث. يتم التحكم في حالة الكائن بمساعدة حدث ما. تُستخدم مخططات Statechart لوصف الحالات المختلفة للكيان داخل نظام التطبيق.

يوجد إجمالي نوعين من مخططات آلة الحالة في UML:

1. مخطط آلة الحالة السلوكية

  • إنه يجسد سلوك كيان موجود في النظام.
  • يتم استخدامه لتمثيل التنفيذ المحدد لعنصر ما.
  • يمكن نمذجة سلوك النظام باستخدام مخطط آلة الحالة السلوكية في OOAD.

2. مخطط آلة حالة البروتوكول

  • تُستخدم هذه المخططات لالتقاط سلوك البروتوكول.
  • إنه يمثل كيفية تغير حالة البروتوكول فيما يتعلق بالحدث. كما أنه يمثل التغييرات المقابلة في النظام.
  • أنها لا تمثل التنفيذ المحدد لعنصر ما.

لماذا مخطط آلة الدولة؟

يتم استخدام مخطط Statechart لالتقاط الجانب الديناميكي للنظام. تُستخدم مخططات آلة الحالة لتمثيل سلوك التطبيق. يمر الكائن عبر حالات مختلفة خلال حياته. يبقى عمر الكائن حتى يتم إنهاء البرنامج. ينتقل الكائن من حالات متعددة اعتمادًا على الحدث الذي يحدث داخل الكائن. تمثل كل حالة بعض المعلومات الفريدة حول الكائن.

تُستخدم مخططات Statechart لتصميم أنظمة تفاعلية تستجيب لحدث داخلي أو خارجي. يصور مخطط الحالة في UML تدفق التنفيذ من حالة إلى حالة أخرى للكائن.

يمثل حالة الكائن منذ إنشاء الكائن حتى تدمير الكائن أو إنهائه.

الغرض الأساسي من مخطط الحالة هو نمذجة الأنظمة التفاعلية وتحديد كل حالة من حالات الكائن. تم تصميم مخططات Statechart لالتقاط السلوك الديناميكي لنظام التطبيق. تُستخدم هذه المخططات لتمثيل حالات مختلفة للنظام والكيانات داخل النظام.

التدوين والرمز لمخطط آلة الحالة (مخطط الحالة)

فيما يلي الرموز المختلفة المستخدمة في رسم مخطط الولاية. وعند دمج كل هذه الرموز، فإنها تشكل رسمًا واحدًا.

تدوينات مخطط حالة UML
تدوينات مخطط حالة UML

الحالة الأولية

يُستخدم رمز الحالة الأولي للإشارة إلى بداية مخطط آلة الحالة.

الحالة النهائية

يُستخدم هذا الرمز للإشارة إلى نهاية مخطط آلة الحالة.

صندوق القرار

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

إصدار هوية جديدة

الانتقال هو تغيير في حالة إلى حالة أخرى يحدث بسبب حدث ما. يؤدي الانتقال إلى تغيير في حالة الكائن.

صندوق الدولة

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

يتم الإشارة إليه باستخدام مستطيل ذو زوايا مستديرة. ويكتب اسم الدولة داخل المستطيل الدائري.

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

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

أنواع الدولة

تحدد لغة النمذجة الموحدة ثلاثة أنواع من الحالات:

  • دولة بسيطة
  • ليس لديهم أي دولة فرعية.
  • الحالة المركبة
  • يمكن أن تحتوي هذه الأنواع من الحالات على حالة فرعية واحدة أو أكثر.
  • تسمى الحالة المركبة التي تحتوي على حالتين فرعيتين أو أكثر بالحالة المتعامدة.
  • حالة الآلة الفرعية
  • هذه الحالات تساوي لغويًا الحالات المركبة.
  • على عكس الحالة المركبة، يمكننا إعادة استخدام الحالات الآلية.

كيفية رسم مخطط Statechart؟

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

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

يجب مراعاة القواعد التالية عند رسم مخطط الحالة:

  1. يجب أن يكون اسم انتقال الحالة فريدًا.
  2. يجب أن يكون اسم الدولة سهل الفهم ويصف سلوك الدولة.
  3. إذا كان هناك كائنات متعددة، فيجب تنفيذ الكائنات الأساسية فقط.
  4. يجب إعطاء الأسماء الصحيحة لكل انتقال وحدث.

متى يتم استخدام مخطط آلة الحالة؟

تُستخدم مخططات الحالة لتنفيذ نماذج عمل واقعية وأنظمة موجهة للكائنات بعمق. تُستخدم هذه المخططات لمقارنة الطبيعة الديناميكية والثابتة للنظام من خلال التقاط السلوك الديناميكي للنظام.

تُستخدم مخططات Statechart لالتقاط التغييرات في كيانات النظام المختلفة من البداية إلى النهاية. يتم استخدامها لتحليل كيف يمكن لحدث ما أن يؤدي إلى التغيير ضمن حالات متعددة للنظام.

يتم استخدام مخططات شار الحالة:

  1. لنمذجة كائنات النظام.
  2. نمذجة وتنفيذ الأنظمة التفاعلية.
  3. لعرض الأحداث التي تؤدي إلى تغييرات داخل الولايات.

مثال على آلة الدولة

يمثل الرسم البياني التالي مثالاً على عملية مصادقة المستخدم.

مخطط حالة UML

مخطط حالة UML

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

مخطط آلة الحالة مقابل المخطط الانسيابي

فيما يلي الاختلافات الرئيسية بين مخطط الحالة ومخطط التدفق

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

الأسئلة الشائعة

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

الانتقال الذاتي هو انتقال يعود إلى نفس الحالة بعد وقوع حدث ما. وهو يُعيد تفعيل إجراءات الخروج والدخول للحالة دون تغيير الحالة الحالية، وهو أمر مفيد للسلوك المتكرر أو إعادة المحاولة.

شرط الحماية هو تعبير منطقي يُكتب بين قوسين مربعين عند الانتقال. لا يتم تفعيل الانتقال إلا عند وقوع الحدث المحدد له وتحقق شرط الحماية، لذا تتحكم شروط الحماية في المسار الذي يسلكه الكائن.

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

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

تلخيص هذه التدوينة بـ: