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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

قرار box

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

انتقال

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

الولايه او المحافظه box

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

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

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

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

أنواع الدولة

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

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

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

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

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

فولوwing يجب مراعاة القواعد أثناء السحبwing رسم تخطيطي للدولة:

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

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

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

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

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

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

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

فولوwing يمثل مخطط مثال مخطط الحالة عملية مصادقة المستخدم.

مخطط حالة UML

مخطط حالة UML

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

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

فولوwing هي الاختلافات الرئيسية بين مخطط Statechart ومخطط انسيابي

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

نبذة عامة

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