ماشین حالت یو.ام.ال

ماشین حالت یو.ام. ال (UML state machine) ماشین حالتی است که از نماد گذاری زبان مدلسازی یکپارچه استفاده می‌کند تا حالت‌های مختلف یک فرایند را نمایش دهد.

 اجزا ماشین حالت یو.ام. ال 
 حالت 
هر حالت، ممکن است ساده یا مرکب باشد. حالت مرکب، از یک یا چند ناحیه تشکیل شده‌است که هر ناحیه، خودش یک ماشین حالت یو.ام. ال است و حالت شروع و پایان دارد و وقتی وارد این حالت شدیم، ماشین، از حالت شروع درون این حالت، شروع به کار می‌کند و زمانی که به حالت پایانی رسید، بر اساس یال‌های خروجی آن، به حالت‌های دیگر می‌رود.

هر حالت ساده، از ۲ بخش تشکیل شده‌است. یک بخش، به نام این حالت اختصاص دارد و دیگری، شامل ۳ اطلاع است:

- در زمان ورود به این حالت، چه اتفاقاتی باید رخ دهد که به این صورت نمایش داده می‌شود: عمل / entry

- در زمان خروج از این حالت، چه اتفاقاتی باید رخ دهد که به این صورت نمایش داده می‌شود: عمل / exit

- در زمانی که در این حالت هستیم، چه اتفاقاتی باید رخ دهد که به این صورت نمایش داده می‌شود: عمل / do
پیوند=پرونده:UML state machine Fig1.svg|بندانگشتی

 یال 
همچنین، یال‌های این گراف که نشان‌دهنده انتقال‌های بین حالت‌ها هستند، شامل شرط و عمل هستند که به این‌گونه بر روی یال قرار می‌گیرند: عمل / شرط

 حالت شروع و پایان 
حالت شروع این ماشین حالت، با یک دایره توپر نمایش داده می‌شود و حالت پایان آن، با دایره توپری که دور آن یک حلقه وجود دارد، نشان داده می‌شود.

 اجرای همزمان چند ناحیه 
همان‌طور که بالاتر ذکر شد، در حالت‌های مرکب، ممکن است چند ناحیه داشته باشیم و این ناحیه‌ها بخواهند همزمان اجرا شوند. در این صورت، بین یال‌های ورودی به آن ناحیه‌ها، یک خط عمودی رسم کنیم و بین یال‌های خروجی از آن‌ها نیز یک خط عمودی رسم می‌کنیم.

 حالت تاریخ 
این حالت برای زمانی استفاده می‌شود که از یک حالت مرکب خارج شویم و بخواهیم دوباره به آن وارد شویم و بخواهیم اطلاعات مرحله قبل حفظ شود. برای این منظور، هنگام ورود مجدد به درون حالت مرکب، ابتدا به حالتی به نام "H" یا "*H" می‌رویم و سپس به حالت مدنظر منتقل می‌شویم.

"H" برای زمانی استفاده می‌شود که بخواهیم فقط اطلاعات خود حالت مرکب را ذخیره کنیم اما "*H" برای زمانی است که بخواهیم اطلاعات تمام ماشین را ذخیره کنیم.

 منابع 

 Formal specifications of software- UML state machine, Bernhard Beckert
 UML state machines

رده:اتوماتا (رایانش)
رده:الکترونیک دیجیتال
رده:روش‌های صوری
رده:مدل‌های محاسباتی
رده:نمودارهای زبان مدل‌سازی یکپارچه