en_USes_ESfa_IRfr_FRid_IDjapl_PLru_RU

VPasCode: نمودارهای فعالیت UML با PlantUML – یک آموزش عملی

یک نمودار فعالیت UML مدل‌سازی می‌کندچگونه کارها جریان می‌یابنددر یک فرآیند: اقدامات انجام‌شده، تصمیمات گرفته‌شده، کارهای موازی و مسیرهای تکمیل. PlantUML به شما اجازه می‌دهد آن مدل را به صورت متن توصیف کنید و سپس آن را به عنوان یک نمودار رندر کنید—روشی مفید زمانی که می‌خواهید نمودارهایی داشته باشید که به راحتی قابل بازبینی، بررسی و نگهداری در کنار مستندات پروژه باشند. نحو فعلی فعالیت PlantUML از کلمات کلیدی قابل‌خواندن مانندشروع, اگر, تکرار وشاخه‌بندی؛ نحو قدیمی‌تر فعالیت هنوز پشتیبانی می‌شود، اما برای نمودارهای جدید، نحو جدید توصیه می‌شود.

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

۱. چه چیزی را مدل‌سازی کنیم

از یک نمودار فعالیت برای توضیح یک فرآیند یا الگوریتم استفاده کنید، برای مثال:

نمودار فعالیت UML که جریان‌های کاری مانند پرداخت مشتری، فرآیندهای تأیید و لوله‌های داده را با المان‌های تصمیم‌گیری (الماس) و وظایف موازی نشان می‌دهد.

  • روند پرداخت مشتری

  • یک فرآیند تأیید

  • یک خط لوله واردات داده

  • مراحل یک مورد استفاده

  • کار تقسیم‌شده بین افراد، تیم‌ها یا اجزای سیستم

یک فعالیت یک واحد کاری است، مانند «اعتبارسنجی سفارش». یکجریان کنترلفعالیت‌ها را به هم متصل می‌کند و ترتیب آن‌ها را نشان می‌دهد. یکتصمیمبین مسیرهای جایگزین انتخاب می‌کند؛جریان‌های موازیکارهایی را نشان می‌دهند که می‌توانند به صورت همزمان پیش بروند. نمودار باید رفتار را شفاف کند، نه اینکه تلاش کند هر جزئیات پیاده‌سازی را مستند کند.

یک قاعده کلی مفید: اگر سوال اصلی این است که «بعد چه اتفاقی می‌افتد و تحت چه شرایطی؟»، یک نمودار فعالیت گزینه مناسبی است.

۲. مبانی PlantUML

یک نمودار PlantUML با@startuml و با ” پایان می‌یابد@enduml. در نحو فعلی فعالیت:

نمونه‌ای از نحو PlantUML که کد اعتبارسنجی سفارش را به همراه نمودار فعالیت مربوطه و راهنمای نمادهای کلیدی نشان می‌دهد.

  • start گره اولیه را مشخص می‌کند.

  • :Action; یک عمل را تعریف می‌کند.

  • if (...) then (...) بر اساس یک شرط انشعاب ایجاد می‌کند.

  • endif شرط را می‌بندد.

  • stop یک جریان را پایان می‌دهد.

  • repeat و repeat while تکرار را مدل‌سازی می‌کند.

  • fork, fork again، و end fork کار موازی را مدل‌سازی می‌کند.

عمل‌ها به ترتیب نوشته می‌شوند و به‌صورت ضمنی به هم متصل هستند. می‌توانید برچسب‌هایی به انشعاب‌ها اضافه کنید و از partition برای گروه‌بندی کارها بر اساس مسئولیت یا نقش استفاده کنید.

در اینجا یک مثال مینیمال وجود دارد:

رابط VPasCode که نحو کد PlantUML را به همراه نمودار فعالیت تولیدشده‌ای که جریان دریافت و اعتبارسنجی درخواست را نشان می‌دهد، نمایش می‌دهد.

۳. تصمیم‌گیری‌ها و مسیرهای جایگزین

استفاده از ifوقتی فرآیند انتخابی انجام می‌دهد. برچسب‌های شاخه باید نتایج شرط را بیان کنند، نه اینکه صرفاً شرط را تکرار کنند.

رابط VPasCode که کد PlantUML و نمودار فعالیت UML مربوطه را نمایش می‌دهد که یک تصمیم if-else برای موجودی انبار را نشان می‌دهد.

@startuml
start
:درخواست سفارش دریافت شود;
:بررسی موجودی;

if (آیا همه اقلام موجود هستند؟) then (بله)
  :اقلام را رزرو کنید;
  :درخواست پرداخت;
else (خیر)
  :مشتری را مطلع کنید;
  stop
endif

:تأیید سفارش;
stop
@enduml

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

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

۴. حلقه‌ها و تلاش مجدد

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

رابط VPasCode که کد PlantUML برای یک حلقه اعتبارسنجی داده را به همراه نمودار فعالیت UML تولیدشده‌ای که منطق تلاش مجدد را نشان می‌دهد، نمایش می‌دهد.

@startuml
start
:خواندن داده‌های ارسالی;

repeat
  :اعتبارسنجی داده‌ها;
  if (اعتبار؟) then (بله)
    :ذخیره داده‌ها;
    break
  else (خیر)
    :نمایش خطاهای اعتبارسنجی;
    :درخواست از کاربر برای اصلاح داده‌ها;
  endif
repeat while (آیا کاربر ادامه می‌دهد؟) is (بله) not (خیر)

stop
@enduml

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

۵. کار موازی و همگام‌سازی

از fork زمانی که اقدامات مستقل می‌توانند هم‌زمان رخ دهند، و end fork زمانی که مسیرها باید پیش از ادامه فرآیند همگام‌سازی شوند.

نمودار فعالیت UML VPasCode که مسیرهای شاخه‌ای موازی برای ارسال ایمیل‌ها، آماده‌سازی لیست‌ها و به‌روزرسانی داشبوردها قبل از همگام‌سازی را نشان می‌دهد.

@startuml
start
:سفارش تأیید شد;

fork
  :ارسال ایمیل تأیید;
fork again
  :تهیه لیست برداشت انبار;
fork again
  :به‌روزرسانی داشبورد فروش;
end fork

:علامت‌گذاری سفارش به‌عنوان در حال پردازش;
stop
@enduml

یک fork لزوماً به معنای افراد جداگانه نیست؛ می‌تواند رفتار هم‌زمان سیستم را نشان دهد. تنها زمانی از آن استفاده کنید که اقدامات واقعاً بتوانند به‌صورت موازی رخ دهند. اگر یک وظیفه باید پیش از شروع وظیفه دیگر به پایان برسد، آن‌ها را به‌صورت متوالی مدل‌سازی کنید.

۶. مسیرهای شناور با بخش‌بندی

بخش‌بندی‌ها اقدامات را بر اساس نقش، تیم یا سیستم مسئول گروه‌بندی می‌کنند. این کار می‌تواند تحویل‌ها را بدون تغییر در خود فرآیند شفاف کند. PlantUML از گروه‌بندی فعالیت‌ها با partition.

رابط VPasCode که یک نمودار فعالیت PlantUML را با مسیرهای شناور (swimlanes) تقسیم‌بندی‌شده بر اساس نقش‌های مشتری، سرویس سفارش و انبار نمایش می‌دهد.

@startuml
start

partition مشتری {
  :ثبت سفارش;
}

partition "سرویس سفارش" {
  :اعتبارسنجی سفارش;
  if (سفارش معتبر است؟) then (بله)
    :ایجاد رکورد سفارش;
  else (خیر)
    :بازگرداندن خطاهای اعتبارسنجی;
    stop
  endif
}

partition انبار {
  :آماده‌سازی ارسال;
}

partition "سرویس سفارش" {
  :ارسال تأییدیه;
}

stop
@enduml

برچسب‌های نوارها را طوری انتخاب کنید که با تقسیم واقعی مسئولیت‌ها مطابقت داشته باشند. از ایجاد یک partition جدید برای هر جزء کوچک خودداری کنید؛ تعداد زیاد نوارها می‌تواند اسکن نمودار را دشوارتر کند.

۷. اشیاء داده و یادداشت‌ها

برخی گردش‌های کاری از نمایش ورودی‌ها یا خروجی‌های مهم بهره می‌برند. نمودارهای فعالیت PlantUML از استریوتیپ‌های گره شیء پشتیبانی می‌کنند؛ یادداشت‌ها نیز می‌توانند بدون تبدیل هر برچسب عمل به یک پاراگراف، زمینه را اضافه کنند.

رابط VPasCode که کد PlantUML برای یک جریان کاری پرداخت را به همراه نمودار فعالیت رندرشده‌ای که شامل یادداشتی متصل به عملیات تأیید پرداخت است، نمایش می‌دهد.

@startuml
start
:درخواست پرداخت را دریافت کنید;

:پرداخت را مجاز کنید;
note right
  از پاسخ مجوز ارائه‌دهنده پرداخت
  استفاده می‌شود.
end note

:نتیجه پرداخت را ثبت کنید;
stop
@enduml

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

۸. مثال کامل: پرداخت آنلاین

این مثال بزرگ‌تر، partitionها، یک تصمیم، یک مسیر جایگزین و کار موازی را ترکیب می‌کند.

نمودار فعالیت UML برای یک فرآیند پرداخت آنلاین که شامل ارسال توسط مشتری، اعتبارسنجی، تأیید پرداخت، و تأیید موازی و آماده‌سازی انبار است.

@startuml
title پرداخت آنلاین

start

partition مشتری {
  :مرور سبد خرید;
  :ارسال پرداخت;
}

partition "سرویس سفارش" {
  :اعتبارسنجی سبد خرید و آدرس;

  if (سبد خرید و آدرس معتبر هستند؟) then (بله)
    :محاسبه مجموع;
  else (خیر)
    :نمایش خطاهای اعتبارسنجی;
    stop
  endif
}

partition "سرویس پرداخت" {
  :پرداخت را مجاز کنید;

  if (پرداخت تأیید شد؟) then (تأیید شده)
    :دریافت پرداخت;
  else (رد شده)
    :بازگرداندن شکست پرداخت;
    stop
  endif
}

partition "سرویس سفارش" {
  :ایجاد سفارش;
}

fork
  partition "سرویس اطلاع‌رسانی" {
    :ارسال تأییدیه سفارش;
  }
fork again
  partition انبار {
    :نوبت‌دهی سفارش برای چیدمان;
  }
end fork

partition "سرویس سفارش" {
  :نمایش تأییدیه سفارش;
}

stop
@enduml

نمودار فعالیت PlantUML که جریان پرداخت آنلاین را با تقسیم‌بندی‌های مشتری، سفارش، پرداخت، اطلاع‌رسانی و سرویس انبار نشان می‌دهد.

آن را از بالا به پایین بخوانید: مشتری پرداخت را ارسال می‌کند، سرویس سفارش آن را اعتبارسنجی می‌کند، پرداخت مجاز می‌شود و سفارش ایجاد می‌شود. پس از آن، تأییدیه و آماده‌سازی انبار به صورت موازی اجرا می‌شوند. اگر اعتبارسنجی یا پرداخت شکست بخورد، جریان از طریق مسیر شکست مربوطه پایان می‌یابد.

۹. گردش کار نمودار-به-کد

یک گردش کار عملی عبارت است از:

گردش کار نمودار-به-کد

یک گردش کار عملی عبارت است از:

  1. فرآیند را به زبان ساده توصیف کنید.شروع، پایان، اقدامات اصلی، تصمیم‌ها، استثناها، وظایف موازی و نقش‌های مسئول را شناسایی کنید.

  2. یک پیش‌نویس اولیه PlantUML بنویسید.قبل از سبک‌بندی، بر منطق تمرکز کنید.

  3. آن را رندر کرده و بازرسی کنید.بررسی کنید که نتیجه به‌طور طبیعی خوانده شود و شاخه‌ها و حلقه‌ها قابل‌فهم باشند.

  4. منطق را با ذینفعان بازبینی کنید.رندر کردن صرفاً سینتکس را بررسی می‌کند، نه درستی فرآیند را.

  5. منبع را بازبینی کرده و آن را همراه با پروژه ذخیره کنید.نمودارهای مبتنی بر متن به‌راحتی قابل مقایسه (diff) و بازبینی در کنار سایر مستندات هستند.

برای رندر محلی، ابزار خط فرمان PlantUML می‌تواند فایل‌های نمودار تولید کند؛ ویرایشگرهای مبتنی بر مرورگر برای پیش‌نویس‌های سریع و پیش‌نمایش‌ها مناسب هستند. PlantUML همچنین یک ویرایشگر مبتنی بر مرورگر ارائه می‌دهد، در حالی که VPasCode یک ویرایشگر مبتنی بر مرورگر با پیش‌نمایش زنده و پشتیبانی از نمودارهای فعالیت PlantUML فراهم می‌کند.

  1. فرآیند را به زبان ساده توصیف کنید.شروع، پایان، اقدامات اصلی، تصمیم‌ها، استثناها، وظایف موازی و نقش‌های مسئول را شناسایی کنید.

  2. یک پیش‌نویس اولیه PlantUML بنویسید.قبل از سبک‌بندی، بر منطق تمرکز کنید.

  3. آن را رندر کرده و بازرسی کنید.بررسی کنید که نتیجه به‌طور طبیعی خوانده شود و شاخه‌ها و حلقه‌ها قابل‌فهم باشند.

  4. منطق را با ذینفعان بازبینی کنید.رندر کردن صرفاً سینتکس را بررسی می‌کند، نه درستی فرآیند را.

  5. منبع را بازبینی کرده و آن را همراه با پروژه ذخیره کنید.نمودارهای مبتنی بر متن به‌راحتی قابل مقایسه (diff) و بازبینی در کنار سایر مستندات هستند.

برای رندر محلی، ابزار خط فرمان PlantUML می‌تواند فایل‌های نمودار تولید کند؛ ویرایشگرهای مبتنی بر مرورگر برای پیش‌نویس‌های سریع و پیش‌نمایش‌ها مناسب هستند. PlantUML همچنین یک ویرایشگر مبتنی بر مرورگر ارائه می‌دهد، در حالی که VPasCode یک ویرایشگر مبتنی بر مرورگر با پیش‌نمایش زنده و پشتیبانی از نمودارهای فعالیت PlantUML فراهم می‌کند.

۱۰. استفاده از VPasCode Visual Paradigm و کمک هوش مصنوعی

VPasCode ویرایشگر متن‌به‌نمودار مبتنی بر مرورگر Visual Paradigm است. پشتیبانی PlantUML آن شامل نمودارهای فعالیت می‌شود و ویرایشگر آن رندر زنده ارائه می‌دهد. Visual Paradigm همچنین تولید نمودار مبتنی بر زبان طبیعی داخلی و کمک هوش مصنوعی برای اصلاح یا تصحیح کد نمودار را توصیف می‌کند.

یک گردش کار مفید با کمک هوش مصنوعی:

جریان کاری پنج‌مرحله‌ای که نحوه ایجاد نمودارهای فعالیت PlantUML با استفاده از VPasCode را از تدوین کد تا بررسی منطق و ذخیره فایل‌های منبع نشان می‌دهد.

  1. درخواست را بر اساس رفتار ارائه دهید، نه صرفاً نوع نمودار.به عنوان مثال:
    «یک نمودار فعالیت PlantUML برای پرداخت آنلاین ایجاد کنید. شامل اعتبارسنجی سبد خرید، اعتبارسنجی آدرس، مجوز پرداخت، مسیرهای شکست، ایجاد سفارش، و ایمیل تأیید و آماده‌سازی انبار به صورت موازی باشد. از بخش‌بندی (partition) برای مشتری، سرویس سفارش، سرویس پرداخت، سرویس اطلاع‌رسانی و انبار استفاده کنید. از سینتکس فعلی فعالیت PlantUML استفاده کنید.»

  2. منبع تولیدشده را بازرسی کنید.بررسی کنید که از «@startuml/@enduml، که هر شاخه نشان‌دهنده یک شرایط واقعی است و مسیرهای شکست یا جایگزین مدیریت می‌شوند.

  3. آن را در VPasCode رندر کنید.از پیش‌نمایش برای شناسایی خطاهای نحوی، برچسب‌های گیج‌کننده یا طرح‌بندی‌های بیش از حد پیچیده استفاده کنید.

  4. PlantUML را خودتان یا با ویرایش‌های هدفمند هوش مصنوعی اصلاح کنید.درخواست تغییر خاصی بدهید، مانند «افزودن مسیر انقضای پرداخت» یا «ترتیب‌دهی به آماده‌سازی انبار پس از ایجاد سفارش به صورت توالی‌وار.»

  5. فرآیند را با کسی که آن را می‌شناسد، اعتبارسنجی کنید.هوش مصنوعی می‌تواند یک نمودار محتمل را پیش‌نویس کند، اما نمی‌تواند تأیید کند که فرآیند واقعی سازمان شما صحیح است.

کنترل‌های دقیق و در دسترس بودن ویژگی‌های VPasCode ممکن است بسته به نسخه محصول متفاوت باشد؛ گزینه‌های فعلی را در ویرایشگری که استفاده می‌کنید، تأیید کنید.

۱۱. گردش کار مدل‌سازی Visual Paradigm

وقتی می‌خواهید مستقیماً با منبع نمودار و پیش‌نمایش کار کنید، از VPasCode استفاده کنید. وقتی وظیفه نیاز به ویرایش گرافیکی یا کارهای مدل‌سازی گسترده‌تر دارد، از محیط مدل‌سازی Visual Paradigm استفاده کنید. راهنمای Visual Paradigm یک گردش کار شامل تولید یا وارد کردن نمودار و سپس اصلاح آن در ویرایشگر بصری را توصیف می‌کند؛ مسیرهای دقیق وارد کردن ممکن است به محصول و نسخه بستگی داشته باشد.

یک تحویل منطقی به این صورت است:

نمودار جریان کاری Visual Paradigm که چهار مرحله را نشان می‌دهد: تدوین منبع PlantUML، اشتراک‌گذاری برای بررسی، وارد کردن به Visual Paradigm، و بهبود در حالی که کنترل نسخه حفظ می‌شود.

  1. پیش‌نویس و تکرار در PlantUML.

  2. نمودار رندر شده و منبع را برای بازبینی به اشتراک بگذارید.

  3. اگر به ویرایش بصری یا سایر قابلیت‌های مدل‌سازی نیاز دارید، آن را در ویرایشگر مربوطه Visual Paradigm باز کنید یا وارد آن کنید.

  4. منبع PlantUML را به عنوان نسخه نگهداری‌شده نگه دارید اگر منبع مورد اعتماد تیم است؛ از انجام همزمان ویرایش‌های متناقض در دو مکان بدون اطلاع خودداری کنید.

۱۲. اشتباهات رایج و چک‌لیست کیفیت

قبل از به اشتراک گذاشتن یک نمودار، بررسی کنید:

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

  • آیا شروعی واضح و پایان معناداری دارد؟

  • آیا هر اقدام یک بخش قابل شناسایی از کار را توصیف می‌کند؟

  • آیا نتایج تصمیم‌گیری به وضوح برچسب‌گذاری شده‌اند؟

  • آیا مسیرهای رد، خطا، انقضا یا لغو در مواردی که اهمیت دارند، گنجانده شده‌اند؟

  • آیا شرایط حلقه، رفتار تکرار و خروج را واضح می‌کنند؟

  • آیا اقدامات موازی واقعاً مستقل هستند و همگام‌سازی در موارد لازم نشان داده شده است؟

  • آیا بخش‌ها مرزهای مالکیت مفید را نشان می‌دهند؟

  • آیا یک خواننده می‌تواند جریان را بدون خواندن برچسب‌های طولانی اقدامات درک کند؟

  • آیا نمودار رندر شده با فرآیند واقعی مطابقت دارد؟

یک نمودار فعالیت خوب، طولانی‌ترین یا جزئی‌ترین نمودار نیست. بلکه کوچک‌ترین نموداری است که گردش کار، تصمیم‌ها، مسئولیت‌ها و استثناهای مهم را شفاف می‌کند.

مرجع سریع نحو

هدف الگوی PlantUML
شروع شروع
عمل :انجام کاری;
تصمیم‌گیری if (شرط؟) then (بله) ... else (خیر) ... endif
حلقه repeat ... repeat while (شرط؟)
کار موازی fork ... fork again ... end fork
گروه مسئولیت partition Role { ... }
پایان توقف

نمونه‌ها از نحو فعلی نمودار فعالیت PlantUML استفاده می‌کنند. برای ساختارهای غیرمعمول یا رفتارهای رندرینگ خاص نسخه، به مرجع نمودار فعالیت PlantUML مراجعه کنید.

This post is also available in English, Español, Français, Bahasa Indonesia, 日本語, Polski and Ру́сский.