پژوهش پیش رو با هدف رفع این سوالات که چه تفاوتی بین UML و BPMN هست؟ آیا می توان این دو را متمایز نمود؟ کدامیک برتری دارد؟ فرآیندهای کسب و کار را با کدامیک مدل کنیم؟، انجام شده است.
عمده تمرکز UML بر روی مدل سازی جهت پیاده سازی نرم افزارها با تمرکز بر رویکرد و منطق شی گرایی می باشد ولی تمرکز BPMN بر روی مدل سازی فرآیند های کسب و کار وابسته به فناوری اطلاعات مبتنی بر رویکرد فرآیندگرایی است و درنهایت اجرایی کردن آن توسط BPMS هاست، هدف ما نیز مدل سازی فرآیند های کسب و کار می باشد و نقطه اشتراک این دو زبان و استاندارد مدل سازی برای مدل سازی فرآیند های کسب و کار، نموداری های وضعیت State و فعالیت Activity در UML با BPMN می باشد. که این دو نمودار بسیار مشابه به مفاهیم BPMN بوده و جهت مدل سازی فرآیندهای کسب و کار به کار می روند با به بیان دیگر برای مدل سازی تعاملات نرم افزار با جهان بیرون به کار می روند، این روش ها در استفاده و اشتراک و پارامترهایی نظیر پیچیدگی با هم متفاوت اند و این مسئله برای سازمان ها در جهت انتخاب روش مناسب و بهینه برای مدل سازی فرآیندها اهمیت دارد.
همانطور که مشخص است UML نمودار های مختلفی دارد که کلیه نیاز ها برای تولید و پیاده سازی نرم افزار به ویژه با منطق شی گرایی را فراهم می آورد که متامدل (منظور عناصر گرافیکی و قوانین روش) UML در شکل زیر قابل مشاهده می باشد.
BPMN، ساختار و منابع سازمان Organizational Structures & Resource، ساختار شکست Functional Breakdowns،داده و اطلاعات Data & Information Modeling، استراتژی و قوانین کسب وکار Strategy & Business Rules را مدل نمی کند، در UML ساختار و منابع سازمان و استراتژی و قوانین کسب و کار مدل نمی شود اما داده و اطلاعات را به طور کامل و ساختار شکست با نمودارUse Case ، توسط UML قابل مدل شدن هستند.
از نظر پیچیدگی روش ها، در مطالعه ای توسط Recker و همکارانش و مطالعه دیگری توسط Indulska و همکارانش به اندازه گیری پیچیدگی در نمودار فعالیت UML با BPMN پرداخته شده است و صرفا در این دو مقاله از نظر متامدل بر اساس متریک های پیچیدگی ارائه شده توسط Rossi و همکارانش با هم مقایسه شده اند. در جدول زیر نتیجه این تحقیقات آورده شده است، نتایج به دست آمده در دو پژوهش ارقام یکسانی را ارائه نموده اند که عنوان ستون ها نیز بیان گر پارامتر های مورد نظر هستند و بر اساس روش محاسبه ای که Rossi ارائه کرده است در نهایت یک نمره برای پیچیدگی هر مورد درج شده است.
بر طبق جدول فوق BPMN کامل از بیشترین پیچیدگی برخوردار است اما BPMN هسته به نسبت پیچیدگی کمتری از UML کامل دارد (منظور از BPMN هسته عناصر پرکاربرد و اصلی مدل هستند) نمره پیچیدگی BPMN کامل به نسبت BPMN هسته نشان می دهد که عدم محدودیت BPMN در اشکال گرافیکی و قوانین موجود در BPMN کامل خودش پیچیدگی به همراه دارد، البته این مقایسه و اندازه گیری پیچیدگی نظری و بر اساس امکانات مدل ها و معیار های ارائه شده Rossi صورت گرفته است، که در عمل ممکن است پیچیدگی به دست آمده با توجه به محیط عملیاتی متفاوت باشد، تمام اشکال و قوانین در عمل مورد استفاده گسترده نیستند بنابراین پیچیدگی عملی هر دو روش به نسبت کمتر از پیچیدگی نظری آنها خواهد بود.
حالت های قابل پوشش با BPMN از UML بیشتر اند و BPMN قادر هست که مواردی را به تصویر بکشد که تا قبل از آن به صورت متنی مستند می شده اند و از توان عملیاتی کردن، انتقال و آموزش پایینی برخوردار بوده اند، شاید بتوان با ترکیب نماد های کنونی UML برخی حالت های خاص را نیز مدل کرد اما این مدل از کارایی چندانی برخوردار نیست و خودش به پیچیدگی مسئله خواهد افزود.
عناصر گرافیکی و قوانین مطرح در استاندارد های مدل سازی تاثیر مستقیم در به تصویر کشیدن واقعیت و فهم مدل های ایجاد شده دارد، در مقایسه BPMN نسخه 2 منتشر شده در سال 2011 و نمودار فعالیت UML نسخه 2.4.1 منتشر شده در سال 2011 توسط مجموعه OMG نشان می دهد که قابلیت BPMN از UML در به تصویر کشیدن جهان واقعی بیشتر است و همچنین از جنبه یادگیری و درک خروجی ها برای تمام کارکنان در سطوح مختلف سازمان و همچنین تبدیل نتایج مدل ها به فرمت XML ای که قابلیت اجرا دارد، قدرتمندتر می باشد.
مدل های رسم شده توسط BPMN بر اساس امکانات ابزار مدل ساز بدون مشکل به فرمت های XPDL و BPEL4WSDL تبدیل می شود مثلا نرم افزار Bizagi Modeler خروجی XPDL می دهد. در UML این امکان وجود ندارد البته روشی ارائه شده در سال 2008 توسط Zhang و همکارانش که مبتنی بر مفاهیم گراف است خروجی رسم شده با نمودار فعالیت UML را با استفاده از تئوری SESE – Single-Entry Single-Exit گراف به مفاهیم بر پایه ریاضی تبدیل و سپس به قالب BPEL تبدیل می کند اما تا کنون روش مستقیم و استانداردی برای این مسئله ارائه نشده است.
هدف BPMN به تصویر کشیدن فرآیند ها به گونه ایست که واقعا هستند و پوشش دادن تمام حالت های ممکن است که به خاطر ماهیت پیچیده فرآیندهای کسب و کار تعداد عناصر و قوانین آن به این گونه در نظر گرفته شده است و گویا تر از مدل هایی هستند که با UML مدل شده اند، که این مسئله در مقایسه دو مدل زیر با هم مشخص تر است.
BPMN به نسبت نمودار فعالیت UML قدرت به مراتب بیشتری در انتقال تصویر واقعی از فرآیندهای کسب و کار را داراست که در بررسی Peixoto و همکارانش در سال 2008 به وضوح این نتیجه حاصل شده است، در پژوهش فوق بدین شکل عمل شده که یک فرآیند کامل را با هر دو استاندارد مدل کرده اند و 11 سوال (پارامتر) برای این مدل ها مطرح شده و از افرادی که آشنایی به بحث مدل سازی، BPMN و UML نداشته اند آزمون گرفته شده، که طبق تصویر زیر نتایج حاصل از این آزمون بیانگر این مسئله است که مدل های رسم شده با BPMN از توانایی بیشتری در درک و انتقال مفاهیم برخوردار می باشد.
نتیجه گیری:
این دو استاندارد مدل سازی قصد جایگزین شدن به جای هم را ندارند و رقیب هم به حساب نمی آیند بلکه مکمل هم نیز خواهند بود، هر دو استاندارد BPMN و UML را OMG ارائه نموده است و شواهد نشان می دهد که قصد OMG همکاری نزدیک این دو روش و در نهایت ادغام آنهاست چرا که در نسخه های جدید تری که از UML ارائه نموده است به روز رسانی خاصی در خصوص نمودار فعالیت انجام نشده و این نمودار در نسخه های بعدی از این استاندارد حذف خواهد شد.
UML برای مدل سازی نرم افزار و نمودار فعالیت آن برای مدل سازی فرآیندهای کسب و کار می باشد اما ماهیت اصلی این استاندارد همان مدل سازی نرم افزار می باشد، BPMN استاندارد و زبان مختص مدل سازی فرآیندهای کسب و کار می باشد، متامدل(نمادها، الگوها و…) BPMN امکانات کامل تری برای به تصویر کشیدن فرآیندهای کسب و کار را داراست که تمام حالت های خاص و واقعی را مدل می کند، قدرت انتقال مفاهیم، درک و آموزش BPMN بیشتر است، BPD های رسم شده با BPMN به راحتی به فرمت های استاندارد BPEL (مشابه XPDL, BPEL4WSDL) تبدیل و توسط BPMS ها قابل اجراست.
***
منـابـع:
1- محتوای آموزشی دوره های BPMN برگذار شده توسط مهندس مهدی محمدی جلالی bpmn.ir
2- پژوهش Recker و همکارانش در خصوص مقایسه پیچیدگی روش ها Measuring Method Complexity: UML versus BPMN، دریـافت مقـاله
3- پژوهش Indulska و همکارانش در خصوص مقایسه پیچیدگی روش ها Measuring Method Complexity: The Case of the Business Process ،Modeling Notation دریـافت مقـاله
4- پژوهش Geambasu در خصوص مقایسه دو روش مدل سازی BPMN vs. UML Activity Diagram for Business Process Modeling، دریـافت مقـاله
5- پژوهش Zhang در خصوص تبدیل مدل های UML به قالب ایکس ام ال، From Business Process Models to Web Services Orchestration: The Case of UML 2.0 ActivityDiagram to BPEL، دریـافت مقـاله
6- پژوهش Rossi درخصوص پارامترها ومحاسبه پیچیدگی روش های مدل سازی، Complexity Metrics for Systems Sevelopment Methods and Techniques، دریـافت مقـاله
7- پژوهش Peixoto و همکارانش در خصوص مقایسه BPMN با UML نمودار فعالیت، A Comparison of BPMN and UML 2.0 Activity Diagrams، دریـافت مقـاله
تشکر بسیار از مطلب مفید شما.
امیدوارم این مطالب تکرار شوند
زکات علم ، نشر اونه… اگه امکان کپی داشت قشنگتر بود. در هر حال ممنون مطلب مفیدی بود.
با سپاس از حسن توجه شما دوست گرامی، مطالب نشر داده شده، استفاده با ذکر منبع بلامانع است، شاد باشید.
سلام
واقعا مطلب مفیدی بود.
دستتون درد نکنه
سلام
ممنون از مطالب مفیدتون
سلام و درود
جناب جلالی ممنون از مطالب آموزنده ای که در این صفحه قرار گرفته است
دو سوال داشتم و یک درخواست (سپاسگذار خواهم بود در صورتی که به ایمیل بنده ارسال فرمائید)
سوال این بود که آیا bpmnقابلیت های نرم افزار های شبیه سازی را دارد و آیا مکان تلفیق bpmn و سیستم داینامیک وجود دارد
و درخواستم این است که یکسری مطالب آموزشی در ارتباط با bpmn در اختیار بنده قرار دهید (بنده دانشجوی دکتری مهندسی صنایع هستم)
سپاس از لطف شما
بدرود
با سلام و خسته نباشید
من از مطالب سایتتون خیلی استفاده کردم وخیلی واسم مفید بود، خیلی خوب راجع به bpmn توضیح دادین توی سایتتون و حتی کسی که خیلی راجع بهش چیزی نمیدونه میتونه درک کنه مفهومشو. فقط یه درخواست داشتم ، میشه لطفا چنتا مقاله جدید راجع به bmpn بهم معرفی کنین؟
با تشکر
با سلام و ممنون بابت مطلب مفیدتون مسئلهای که برای من مطرحه اینه که آیا استفاده همزمان از bpmn و activity diagram منطقیه؟ چون این طور که از مطلب شما برمیاد باید از bpmn عملا به جای activity diagram استفاده بشه.
با درود
هر دوی این نمودارها برای مدلسازی گردش کارها و فرآیندها استفاده میشوند. مجموعه نمادها و مفاهیم BPMN بسیار کاملتر و کاربردی تر از Activity Diagram می باشد، به طوریکه علاوه بر پوشش کامل مفاهیم activity امکاناتی از جمله رویدادها، ارتباطات بین فرآیندی از طریق message را نیز پوشش میدهد. منطقی است در پروژه ها از Activity استفاده نشود.