وقتی یک نمودار BPMN واقعی مقابل شما قرار میگیرد، مسئله فقط این نیست که بدانید لوزی یعنی Gateway یا دایره یعنی Event. باید بتوانید از روی ترکیب نمادها بفهمید فرایند از کجا شروع شده، چه کاری انجام میشود، مسئول هر مرحله کیست، چرا مسیر تغییر کرده و ارتباط بین بخشهای مختلف از چه نوعی است.
برای همین بهتر است علائم BPMN را نه بهصورت یک فهرست جدا از هم، بلکه در دل یک فرایند واقعی بخوانیم.
در این راهنما یک سناریوی واحد را از ابتدا تا انتها دنبال میکنیم و هر نماد را درست در جایی بررسی میکنیم که روی رفتار فرایند اثر میگذارد.
BPMN استانداردی برای مدلسازی و نمایش تصویری فرایندهای کسبوکار است. اگر هنوز با مفهوم و جایگاه این استاندارد آشنا نیستید، ابتدا راهنمای «BPMN چیست؟» را بخوانید.
در جستوجوهای فارسی گاهی عبارت «نمودار BPM» هم بهجای نمودار BPMN استفاده میشود؛ اما وقتی منظور نموداری با نمادهای استاندارد BPMN است، اصطلاح دقیقتر «نمودار BPMN» است.
اینجا سؤال ما عملیتر است:
اگر یک نمودار BPMN روبهرویمان باشد، از کجا شروع کنیم و چطور بفهمیم واقعاً چه اتفاقی در آن میافتد؟
نمودار مرجع: رسیدگی به فاکتور تأمینکننده
فرض کنید یک تأمینکننده فاکتور خود را برای سازمان ارسال میکند.
فاکتور ابتدا ثبت و بررسی میشود. اگر مدارک ناقص باشند، از تأمینکننده درخواست تکمیل اطلاعات میشود و فرایند تا دریافت پاسخ منتظر میماند. اگر مدارک کامل باشند، فاکتور برای بررسی مالی ادامه پیدا میکند.
پس از تأیید مالی، در این سناریو دو فعالیت مستقل انجام میشوند:
ثبت سند حسابداری و کنترل اطلاعات بانکی تأمینکننده
این دو فعالیت برای شروع به نتیجه یکدیگر وابسته نیستند و میتوانند بهصورت موازی انجام شوند. مرحله بعد، یعنی «ایجاد درخواست پرداخت»، زمانی آغاز میشود که هر دو فعالیت تکمیل شده باشند.
در مدل دو مشارکتکننده مستقل داریم:
تأمینکننده و سازمان
داخل Pool سازمان نیز مسئولیتها میان چند Lane تقسیم شدهاند؛ برای مثال واحد مالی، مدیر مالی و خزانهداری.
مسیر کلی به این شکل است:
دریافت فاکتور ← ثبت فاکتور ← بررسی مدارک ← مدارک کامل است؟
اگر ناقص باشد:
درخواست تکمیل مدارک ← انتظار برای دریافت اطلاعات تکمیلی ← بررسی دوباره مدارک
اگر کامل باشد:
بررسی مالی ← فاکتور تأیید میشود؟
در صورت رد:
ثبت نتیجه رد ← پایان
در صورت تأیید:
ثبت سند حسابداری + کنترل اطلاعات بانکی
و پس از تکمیل هر دو:
ایجاد درخواست پرداخت ← پایان
حالا همین نمودار را مرحلهبهمرحله میخوانیم.
علائم BPMN در یک نگاه
این جدول میتواند بهعنوان یک مرجع سریع برای شناخت نمادهای اصلی استفاده شود:
اگر این علامت را دیدید | معمولاً با چه چیزی روبهرو هستید؟ | چه سؤالی بپرسید؟ |
|---|---|---|
دایره | Event | چه اتفاقی اینجا رخ میدهد؟ |
مستطیل گوشهگرد | Activity / Task | چه کاری انجام میشود؟ |
لوزی | Gateway | مسیر در این نقطه چه رفتاری دارد؟ |
خط پیوسته پیکاندار | Sequence Flow | مرحله بعدی همین فرایند چیست؟ |
خطچین پیام | Message Flow | چه پیامی بین چه مشارکتکنندگانی جابهجا میشود؟ |
Pool | Participant | طرف مستقل این تعامل چه کسی است؟ |
Lane | مسئولیت داخل Pool | این فعالیت بر عهده چه نقش یا واحدی است؟ |
فعالیت دارای + | Sub-Process | چه جزئیاتی پشت این فعالیت قرار دارد؟ |
شناخت این شکلها نقطه شروع است. برای فهم واقعی نمودار باید ببینیم این عناصر چگونه به یکدیگر متصل شدهاند.
قدم اول: مرز فرایند و مسئولیتها را پیدا کنید
قبل از دنبالکردن فلشها، Poolها را پیدا کنید.
در نمودار مرجع، «تأمینکننده» و «سازمان» دو Participant مستقل هستند و در دو Pool جدا قرار دارند.
این مرزبندی کمک میکند از همان ابتدا بفهمیم کدام ارتباطها داخل یک Process اتفاق میافتند و کدام ارتباطها میان دو طرف مستقل شکل میگیرند.
داخل Pool سازمان، Laneها مسئولیتها را تفکیک میکنند.
اگر فعالیت «بررسی مالی» در Lane مدیر مالی قرار گرفته باشد و «ایجاد درخواست پرداخت» در Lane خزانهداری، جایگاه فعالیتها بخشی از معنای نمودار را منتقل میکند.
پس در شروع خواندن مدل دو سؤال مفید داریم:
Participantهای مستقل چه کسانی هستند؟
هر فعالیت در محدوده مسئولیت چه کسی قرار گرفته است؟
قدم دوم: Start Event را پیدا کنید و مسیر اصلی را دنبال کنید
بعد از شناخت مرزها، نقطه شروع را پیدا کنید.
Eventها با دایره نمایش داده میشوند.
Start Event معمولاً دایرهای با خط دور نازک است و مشخص میکند جریان فرایند از چه نقطهای آغاز میشود.
در سناریوی ما، دریافت فاکتور آغاز فرایند رسیدگی در سازمان است.
از این نقطه، Sequence Flow را دنبال میکنیم:
ثبت فاکتور ← بررسی مدارک
مستطیلهای گوشهگرد نشاندهنده Activityهایی هستند که در جریان فرایند انجام میشوند.
هنگام خواندن هر Activity دو سؤال کافی است:
چه کاری انجام میشود؟
این کار در Lane چه کسی قرار گرفته است؟
نامگذاری روشن Activity نیز روی خوانایی مدل اثر زیادی دارد.
برای مثال:
بررسی کامل بودن مدارک فاکتور
اطلاعات بیشتری از عنوان مبهمی مثل:
بررسی
به خواننده میدهد.
قدم سوم: وقتی به Gateway رسیدید، نوع رفتار مسیر را بررسی کنید
بعد از بررسی مدارک به یک Gateway میرسیم:
مدارک کامل است؟
Gatewayها با لوزی نمایش داده میشوند، اما همه آنها رفتار یکسانی ندارند.
در این نقطه از Exclusive Gateway استفاده شده است.
اگر مدارک کامل باشند:
←بررسی مالی
اگر ناقص باشند:
←درخواست تکمیل مدارک
برای خواندن Gateway سه چیز را بررسی کنید:
نوع Gateway
معنای تصمیم
شرط مسیرهای خروجی
هر لوزی الزاماً یک تصمیم ساده بله/خیر نیست.
Exclusive Gateway
در یک اجرای مشخص، یکی از مسیرهای جایگزین براساس شرایط ادامه پیدا میکند.
Parallel Gateway
چند مسیر بدون انتخاب یکی بهجای دیگری فعال میشوند.
Inclusive Gateway
ممکن است یک یا چند مسیر براساس شرایط فعال شوند.
Event-Based Gateway
ادامه مسیر براساس رخدادی تعیین میشود که اتفاق میافتد. در این حالت فرایند منتظر یکی از چند رخداد ممکن میماند و رخدادی که زودتر اتفاق بیفتد، مسیر بعدی را مشخص میکند.
بنابراین سؤال مناسب هنگام دیدن Gateway این نیست که:
«جواب بله است یا خیر؟»
بلکه:
«این Gateway چه رفتاری روی مسیرهای فرایند ایجاد میکند؟»
قدم چهارم: مسیر استثنا را تا بازگشت به جریان اصلی دنبال کنید
اگر مدارک ناقص باشند، سازمان برای تأمینکننده درخواست تکمیل اطلاعات ارسال میکند.
پس از ارسال درخواست، فرایند منتظر دریافت اطلاعات تکمیلی میماند.
این انتظار میتواند با یک Intermediate Message Catch Event نمایش داده شود.
وقتی تأمینکننده اطلاعات تکمیلی را ارسال میکند و پیام دریافت میشود، جریان دوباره به «بررسی مدارک» برمیگردد.
در این قسمت از نمودار سه مفهوم در کنار هم قرار گرفتهاند:
درخواست تکمیل از سازمان به تأمینکننده، ارتباط میان دو Participant مستقل است.
انتظار برای دریافت پاسخ، یک رخداد در میانه اجرای فرایند است.
پس از دریافت اطلاعات، جریان داخلی سازمان دوباره ادامه پیدا میکند.
این بخش نشان میدهد چرا فقط شناخت شکل هر نماد کافی نیست. معنا از رابطه میان Event، Flowو Participantها ساخته میشود.
یک نکته درباره Boundary Event
همه Intermediate Eventها لزوماً روی Sequence Flow قرار نمیگیرند.
بعضی Eventها میتوانند به مرز یک Activity متصل شوند که به آنها Boundary Eventگفته میشود. در این حالت، رخداد به اتفاقی مربوط است که هنگام اجرای همان Activity ممکن است رخ دهد.
اگر Event را چسبیده به مرز یک Activity دیدید، آن را مثل یک Event معمولی در مسیر اصلی نخوانید.
قدم پنجم: Parallel Gateway را با Split و Join بخوانید
فرض کنیم فاکتور تأیید شده است.
در این سناریو دو فعالیت مستقل داریم:
ثبت سند حسابداری و کنترل اطلاعات بانکی تأمینکننده
وقتی جریان به Parallel Gateway میرسد، هر دو مسیر خروجی فعال میشوند.
در نمودار این نقطه را میتوان بهعنوان Splitدید.
بعد از آن دو Activity جداگانه اجرا میشوند.
مرحله بعدی، یعنی «ایجاد درخواست پرداخت»، فقط زمانی شروع میشود که هر دو مسیر به نقطه همگامسازی رسیده باشند.
اینجا Parallel Gateway دیگری نقش Join را دارد.
منطق نمودار چنین است:
Parallel Split
↙ ثبت سند حسابداری
↘ کنترل اطلاعات بانکی
سپس:
Parallel Join
↓
ایجاد درخواست پرداخت
هنگام خواندن چنین الگویی دو سؤال مهم مطرح است:
کدام مسیرها همزمان باز شدهاند؟
در چه نقطهای دوباره باید به یکدیگر برسند؟
اگر در نموداری Parallel Split ببینید، باید انتظار داشته باشید مسیرهای خروجی بدون انتخاب یکی بهجای دیگری فعال شوند. اگر در ادامه Parallel Join وجود داشته باشد، ادامه جریان به رسیدن جریانهای ورودی موردنیاز به آن نقطه وابسته است.
سه نوع ارتباط را روی نمودار تشخیص دهیم
حالا سه خط مختلف در همین سناریو را بررسی کنیم.
ارتباط میان دو Activity داخل سازمان
بین «بررسی مدارک» و «بررسی مالی» چه رابطهای وجود دارد؟
هر دو داخل Process سازمان قرار دارند و جریان از یکی به دیگری ادامه پیدا میکند.
پس این خط Sequence Flowاست.
ارتباط میان سازمان و تأمینکننده
وقتی سازمان «درخواست تکمیل مدارک» را برای تأمینکننده ارسال میکند، ارتباط از مرز یک Pool به Pool دیگر میرود.
پس این رابطه Message Flow است.
ارتباط Activity با داده
اگر Data Object «فاکتور» به Activity «بررسی مدارک» متصل باشد، این خط نه مرحله بعدی Process را تعیین میکند و نه پیام میان دو Participant است.
اینجا با Data Association روبهرو هستیم.
اگر یک Text Annotation یا عنصر توضیحی به بخشی از مدل متصل شده باشد نیز ممکن است از Association استفاده شود. Association مسیر اجرای فرایند را تعیین نمیکند.
یک قاعده کاربردی برای خواندن خطوط این است:
قبل از تفسیر هر Connector، ببینید دو سر آن به چه نوع عناصری متصل شدهاند.
آیا دو Activity داخل یک Process را به هم وصل کرده است؟
آیا از مرز دو Participant عبور میکند؟
یا Activity را به داده یا توضیح متصل کرده است؟
تفاوت Pool و Lane در یک نگاه
Pool و Lane هر دو به فهم مسئولیتها کمک میکنند، اما نقش یکسانی ندارند.
Pool | Lane |
|---|---|
مرز یک Participant را نشان میدهد | تقسیمبندی داخل Participant است |
میتواند نماینده یک طرف مستقل باشد | برای تفکیک نقش یا مسئولیت استفاده میشود |
ارتباط با Participant مستقل دیگر با Message Flow نمایش داده میشود | Sequence Flow میتواند بین Laneهای همان Process ادامه پیدا کند |
اگر Activity از Lane واحد مالی به Lane مدیر مالی منتقل شود، همچنان داخل همان Process هستیم.
اما ارتباط سازمان با تأمینکننده از مرز Participant عبور میکند و معنای دیگری دارد.
Sub-Process را چگونه تشخیص دهیم؟
گاهی یک Activity خودش از چند مرحله داخلی تشکیل شده است.
اگر همه این جزئیات در نمودار اصلی نمایش داده شوند، مدل ممکن است بیش از حد شلوغ شود.
Sub-Process امکان میدهد این جزئیات در سطح دیگری نگهداری شوند.
در حالت بسته، معمولاً علامت + در پایین Activity دیده میشود.
برای مثال:
کنترل اسناد مالی
میتواند یک Sub-Process باشد که داخل آن چند بررسی جدا انجام میشود.
وقتی علامت + را روی Activity میبینید، میتوانید آن را اینطور بخوانید:
این Activity جزئیات داخلی بیشتری دارد که در این سطح از نمودار نمایش داده نشدهاند.
Data Object و Data Store چه چیزی به نمودار اضافه میکنند؟
فرایند فقط درباره حرکت Activityها نیست؛ داده هم در آن نقش دارد.
Data Object اطلاعاتی را نشان میدهد که یک Activity دریافت یا تولید میکند.
در سناریوی ما، خود «فاکتور» نمونه طبیعی یک Data Object است.
Data Store منبعی را نشان میدهد که داده میتواند در آن نگهداری شود و فراتر از یک اجرای مشخص فرایند باقی بماند.
هنگام دیدن این عناصر سؤال درست این نیست که:
مرحله بعدی چیست؟
بلکه:
این Activity چه دادهای دریافت، استفاده یا تولید میکند؟
Annotation را با مسیر اجرا اشتباه نگیرید
Text Annotation برای اضافهکردن توضیح به مدل استفاده میشود.
مثلاً ممکن است کنار یک Activity نوشته شود:
مدارک باید با قرارداد تطبیق داده شوند.
این توضیح به خواننده کمک میکند، اما خودش Task، Event یا Flow نیست.
در خواندن یک نمودار باید بتوانیم عناصر اجرایی را از عناصر توضیحی جدا کنیم.
همین علائم در محیط طراحی فرایند GraphBPMS
GraphBPMS امکان مدلسازی فرایند مبتنی بر BPMN 2.0 را فراهم میکند.
در محیط طراحی فرایند میتوان همان مفاهیمی را که در این سناریو دیدیم در کنار یکدیگر مشاهده کرد؛ از Event و Activity تا Gateway، Pool، Lane و جریانهای بین عناصر.
ارزش مشاهده نمادها در یک محیط واقعی این است که دیگر فقط با یک علامت مجزا روبهرو نیستیم. میتوان دید Gateway در میان Activityها کجا قرار گرفته، مسیرهای خروجی چگونه ادامه پیدا میکنند و Laneها چگونه مسئولیت فعالیتها را از یکدیگر جدا میکنند.
برای مشاهده این محیط میتوانید فرایندساز و موتور فرایند گراف BPMS را بررسی کنید.
چکلیست خواندن یک نمودار BPMN
اگر یک نمودار ناآشنا مقابل شما قرار گرفت، این ترتیب میتواند به فهم سریعتر آن کمک کند:
- Poolها و Participantها را مشخص کنید.
- Laneها را ببینید و مسئولیتها را بشناسید.
- Start Event را پیدا کنید.
- Sequence Flow اصلی را دنبال کنید.
- Activityها را همراه با مسئول آنها بخوانید.
- در Gatewayها نوع رفتار مسیر را بررسی کنید.
- Message Flowها و Eventهای میانی یا مرزی را جداگانه بررسی کنید.
- ببینید شاخههای موازی یا استثناها چگونه دوباره به جریان اصلی میرسند.
- در نهایت بررسی کنید هر مسیر چگونه خاتمه پیدا میکند.
اگر بعد از این مراحل هنوز منطق نمودار روشن نیست، ممکن است مسئله فقط ناآشنایی با نمادهای BPMN نباشد و خود مدل نیز نیاز به خوانایی بیشتری داشته باشد.
جمعبندی
دانستن اینکه دایره Event است یا لوزی Gateway، فقط اولین مرحله شناخت BPMN است.
خواندن واقعی نمودار زمانی اتفاق میافتد که بتوانیم رابطه میان عناصر را بفهمیم.
Event میگوید چه اتفاقی رخ داده است.
Activity نشان میدهد چه کاری انجام میشود.
Gateway رفتار مسیرها را مشخص میکند.
Sequence Flow ترتیب جریان داخل Process را نشان میدهد.
Message Flow ارتباط میان Participantهای مستقل را نمایش میدهد.
Pool و Lane نیز به فهم مرز مشارکت و مسئولیت کمک میکنند.
اگر هنگام دیدن هر عنصر بهجای حفظ نام آن، سؤال درست را مطرح کنید، نمودار بهتدریج از مجموعهای از شکلها به یک مدل قابل خواندن از رفتار فرایند تبدیل میشود.
سؤالات متداول درباره علائم BPMN
Sequence Flow و Message Flow چه تفاوتی دارند؟
Sequence Flow جریان میان عناصر داخل یک Process را نشان میدهد.Message Flow برای نمایش ارتباط پیام میان Participantهای مستقل استفاده میشود.
Pool و Lane در BPMN چه تفاوتی دارند؟
Pool معمولاً مرز یک Participant را نشان میدهد.Lane تقسیمبندی داخل Pool است و میتواند نقشها یا مسئولیتهای مختلف را از یکدیگر جدا کند.
Sub-Process در نمودار BPMN چگونه نمایش داده میشود؟
Sub-Process بسته معمولاً شبیه یک Activity است که علامت + در پایین آن قرار دارد. این علامت نشان میدهد جزئیات بیشتری درون آن وجود دارد.
علامت Gateway در BPMN چه معنایی دارد؟
Gateway با لوزی نمایش داده میشود، اما رفتار آن به نوع Gateway بستگی دارد. Exclusive، Parallel، Inclusiveو Event-Based Gateway هرکدام منطق متفاوتی برای مسیرها دارند.
آیا برای خواندن نمودار BPMN باید همه نمادها را بلد باشیم؟
خیر. برای شروع، شناخت Event، Activity، Gateway، Sequence Flow، Message Flow، Pool، Laneو Sub-Process کافی است. نمادهای تخصصیتر را میتوان متناسب با مدلهایی که واقعاً با آنها سروکار دارید یاد گرفت.