نمودار حالت یک نمایش انتزاعی از یک فرآیند است. این نمودار به طور معمول در علوم کامپیوتر برای مدلسازی فرآیند زبانهای برنامهنویسی استفاده میشود و همچنین میتواند به تحلیلگران در نقشهبرداری از فرآیندهای کسبوکار کمک کند. عناصر سیستم معمولاً اشیاء نامیده میشوند و میتوانند حالت خود را تغییر دهند.
این تغییرات در زبان مدلسازی یکپارچه (UML) در سرتاسر نمودار پیگیری میشوند (که به عنوان نمودار ماشین حالت UML نیز شناخته میشود). نمودارهای حالت UML میتوانند چرخه حیات اشیاء، زیرسیستمها و سیستمها را ثبت کنند و میتوانند وضعیتهایی را که یک شیء میتواند داشته باشد و چگونگی تکامل رویدادها (مانند دریافت پیامها، گذر زمان، خطاها، شرایط درست و غیره) را در طول زمان برای تأثیرگذاری بر این وضعیتها اطلاع دهند.
نمودار حالت همچنین میتواند برای توصیف وضعیتهای مختلف یک شیء، فرآیند انتقال بین حالتها و رویدادها و شرایط مختلفی که انتقال حالتها را تحریک میکنند، استفاده شود.

انتقال حالت چیست؟
جریان یک نمودار حالت معمولاً توسط انتقالاتی که رخ میدهد تعیین میشود. برخی از حالتهای شیء میتوانند به حالتهای اضافی تبدیل شوند. گاهی اوقات، چندین انتقال میتوانند به یک حالت مشابه منجر شوند که میتواند باعث سردرگمی شود. در این حالت، بیش از یک جعبه میتواند در یک جعبه دیگر محصور شود که معمولاً به آن حالت فوقالعاده میگویند. اگر رویدادها و انتقالات در سیستم پیچیده باشند، این فرمت میتواند خواندن نمودار حالت را آسانتر کند.
نمودار حالت در مقابل فلوچارتها
افراد اغلب نمودارهای حالت را با فلوچارتها اشتباه میگیرند. شکل زیر مقایسهای از یک نمودار حالت با یک فلوچارت را نشان میدهد. نمودار ماشین حالت در شکل سمت چپ زیر، اقداماتی را در پاسخ به رویدادهای صریح انجام میدهد. در مقابل، نمودار فعالیت در شکل سمت راست زیر به رویدادهای صریح نیاز ندارد بلکه به طور خودکار پس از اتمام فعالیتها از یک گره به گره دیگر در گراف خود انتقال مییابد.

نمودار فعالیت چیست؟
نمودارهای فعالیتفعالیتهایی را توصیف میکنند که شامل همزمانی و همگامسازی هستند، که نوعی از نمودارهای حالت هستند که بر جریان اقدامات و رویدادها تمرکز دارند. آنها میتوانند برای موارد زیر استفاده شوند:
- برای مدلسازی یک وظیفه انسانی (به عنوان مثال، یک فرآیند کسبوکار).
- برای توصیف یک عملکرد سیستم که توسط یک مورد استفاده نمایان میشود.
- در مشخصات عملیاتی، برای توصیف منطق یک عملیات.

نمودار فعالیت در مقابل نمودار ماشین حالت
نمودار فعالیت
در معناشناسی UML، نمودارهای فعالیت به ماشینهای حالت با برخی نشانههای اضافی قابل کاهش هستند که در آن رئوس نمایانگر انجام یک فعالیت و لبهها نمایانگر انتقال از اتمام یک مجموعه فعالیتها به آغاز یک مجموعه جدید از فعالیتها هستند. نمودارهای فعالیت جنبههای فعالیتهای سطح بالا را ثبت میکنند. به ویژه، امکان نمایاندن همزمانی و هماهنگی در نمودارهای فعالیت وجود دارد.
به نمودار فعالیت که جریان اقدامات برای یک حادثه را مدلسازی میکند نگاهی بیندازید. چنین نمودار فعالیتی بر جریان دادهها درون یک سیستم تمرکز دارد.

نمودار ماشین حالت
در ماشینهای حالت، رئوس نمایانگر حالتهای یک شیء در یک کلاس و لبهها نمایانگر وقوع رویدادها هستند. نشانههای اضافی نحوه هماهنگی فعالیتها را ثبت میکنند. اشیاء رفتارها و حالتهایی دارند. حالت یک شیء به فعالیت یا شرایط فعلی آن بستگی دارد. نمودارهای ماشین حالت وضعیتهای ممکن شیء و انتقالاتی که باعث تغییر در حالت میشوند را نشان میدهند.
به نمودار ماشین حالت زیر نگاهی بیندازید. این نمودار انتقال حالتها برای یک حادثه را مدلسازی میکند. چنین نمودار حالتی بر مجموعهای از ویژگیهای یک انتزاع واحد (شیء، سیستم) تمرکز دارد.

حالا سعی کنید نمودار ماشین حالت UML را بکشید
شما یاد گرفتهاید که نمودار ماشین حالت چیست و چگونه یک نمودار ماشین حالت بکشید. اکنون زمان آن است که نمودار ماشین حالت خود را بکشید. نسخه جامعه Visual Paradigm، یک ابزار نرمافزاری رایگان UML را دریافت کنید و نمودار ماشین حالت خود را با ابزار رایگان نمودار ماشین حالت ایجاد کنید. این ابزار کاربرپسند و شهودی است.
This post is also available in Deutsch, English, Español, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.