یک نمودار مورد استفاده UML نشان میدهد که یک سیستم چه چیزی ارائه میدهد و چه کسی — یا چه چیزی — با آن تعامل دارد. با یک جریان کاری نمودار-به-کد، منبع نمودار متن ساده است: متن را ویرایش کنید، نمودار را رندر کنید و منبع را در کنار مستندات پروژه نگه دارید.

PlantUML از نمودارهای مورد استفاده پشتیبانی میکند. ویرایشگر VPasCode Visual Paradigm یک ویرایشگر و پیشنمایش PlantUML را به همراه ویژگیهای تولید و ویرایش نمودار با کمک هوش مصنوعی ارائه میدهد.
۱. یک نمودار مورد استفاده چه چیزی را منتقل میکند
نمودارهای مورد استفاده بر حوزه سیستم و اهداف کاربرتمرکز ندارند، بلکه بر مکانیکهای گامبهگام یک جریان کاری تمرکز ندارند. یک نمودار معمولاً شامل موارد زیر است:

-
مرز سیستم:یک مستطیل که نام سیستم مورد مدلسازی را نشان میدهد.
-
نقشآفرین (Actor):نقشی خارج از سیستم که با آن تعامل دارد. نقشآفرینها میتوانند افراد، سازمانها، دستگاهها یا سیستمهای خارجی باشند.
-
مورد استفاده:یک قابلیت یا هدف ارائهشده توسط سیستم که معمولاً به صورت یک بیضی نمایش داده میشود و با یک عبارت فعلی نامگذاری میشود، مانند «ثبت سفارش».
-
ارتباط:خطی که نشان میدهد یک نقشآفرین در یک مورد استفاده مشارکت دارد.
-
روابط مورد استفاده:شامل، گسترش و تعمیم.
نقشآفرینها نقشها را نشان میدهند، نه افراد خاص. یک سرویس پرداخت خارجی میتواند یک نقشآفرین باشد اگر با سیستم مورد مدلسازی تعامل داشته باشد.
نمودارهای مورد استفاده برای شفافسازی حوزه سیستم، بحث درباره الزامات با ذینفعان، شناسایی وابستگیهای خارجی و ارائه یک نمای مشترک برای توسعه و تست مفید هستند. آنها را با توصیفهای مکتوب مورد استفاده همراه کنید زمانی که به جزئیاتی مانند پیششرطها، مراحل اصلی، جریانهای جایگزین و نتایج نیاز دارید.
۲. روابط در یک نگاه

-
ارتباط نقشآفرین–مورد استفاده:یک خط ساده که نشاندهنده تعامل است.
-
<<شامل>>:مورد استفاده شاملکننده همیشه از رفتار شاملشده استفاده میکند. فلش خطچین به سمت از مورد استفاده شاملکننده به مورد استفاده شاملشدهاست. به عنوان مثال، ثبت یک سفارش ممکن است همیشه شامل مجوز پرداخت باشد. -
<<گسترش>>:یک مورد استفاده گسترشدهنده، رفتار را به یک مورد استفاده پایه تحت یک شرط اضافه میکند. فلش خطچین به سمت از مورد استفاده گسترشدهنده به مورد استفاده پایه. به عنوان مثال، اعمال یک ترفیع ممکن است قرار دادن یک سفارش را گسترش دهد. -
تعمیم: یک بازیگر یا مورد استفاده تخصصی از یک مورد عمومیتر ارثبری میکند. خط توپر با مثلث توخالی به سمت عنصر عمومی اشاره میکند.
یک تمایز مفید: «شامل» به معنای رفتار الزامی است؛ «گسترش» به معنای رفتار شرطی افزوده شده است.
۳. اصول PlantUML
یک نمودار PlantUML با @startuml شروع میشود و با @enduml بازیگران را با actor، موارد استفاده را با usecase و مرزهای سیستم را با rectangle نامهای مستعار ارجاع به عناصر را در روابط آسانتر میکند.

@startuml
جهت چپ به راست
actor Customer
rectangle "فروشگاه آنلاین" {
usecase "مرور محصولات" as Browse
usecase "قرار دادن سفارش" as Place
}
Customer --> Browse
Customer --> Place
@enduml
جهت چپ به راست PlantUML را درخواست میکند تا نمودار را به صورت افقی چیدمان کند. PlantUML ممکن است چیدمان دقیق را با تغییر نمودار تنظیم کند.
۴. مثال: فروشگاه آنلاین ساده

@startuml
جهت چپ به راست
نقش مشتری
نقش مدیر به عنوان Admin
مستطیل «فروشگاه آنلاین» {
مورد استفاده «مرور محصولات» به عنوان Browse
مورد استفاده «ثبت سفارش» به عنوان Place
مورد استفاده «ردیابی مرسوله» به عنوان Track
مورد استفاده «مدیریت کاتالوگ» به عنوان Manage
}
مشتری --> Browse
مشتری --> Place
مشتری --> Track
Admin --> Manage
@enduml مشتریان محصولات را مرور میکنند، سفارش میدهند و مرسولهها را ردیابی میکنند. مدیر کاتالوگ را مدیریت میکند. این نمودار بهطور عمدی مراحل داخلی پردازش سفارش را حذف کرده است.
۵. مثال: include و extend
فرض کنید ثبت سفارش همیشه نیازمند مجوز پرداخت است، در حالی که اعمال تخفیف اختیاری و مشروط است.

@startuml
جهت چپ به راست
نقش مشتری
مستطیل «فروشگاه آنلاین» {
مورد استفاده «ثبت سفارش» به عنوان Place
مورد استفاده «مجوز پرداخت» به عنوان Payment
مورد استفاده «اعمال تخفیف» به عنوان Promotion
}
مشتری --> Place
Place ..> Payment : <<include>>
Promotion ..> Place : <<extend>>
@enduml فلش Place ..> Payment نشان میدهد که «ثبت سفارش» رفتار اجباری پرداخت را شامل میشود. فلش Promotion ..> Place نشان میدهد که «اعمال تخفیف» زمانی که شرط آن برآورده شود، «ثبت سفارش» را گسترش میدهد.
شرط را در توضیحات مورد استفاده یا در یک یادداشت مستند کنید—برای مثال، «مشتری کد تخفیف معتبر را وارد میکند».
۶. مثال: تعمیم نقش و سیستمهای خارجی
یک نقش تخصصی تعاملات را از یک نقش عمومیتر به ارث میبرد. خدمات خارجی نیز میتوانند نقش باشند زمانی که با سیستم تعامل دارند.

@startuml
جهت چپ به راست
نقش «کاربر» به عنوان User
نقش «مشتری ثبتنامشده» به عنوان Customer
نقش «درگاه پرداخت» به عنوان Gateway
Customer --|> User
مستطیل «فروشگاه آنلاین» {
مورد استفاده «مرور محصولات» به عنوان Browse
مورد استفاده «ثبت سفارش» به عنوان Place
مورد استفاده «پردازش پرداخت» به عنوان Pay
}
User --> Browse
Customer --> Place
Place ..> Pay : <<include>>
Gateway --> Pay
@enduml «مشتری ثبتشده» نسخهای تخصصی از «کاربر» است و تعاملات عمومی کاربر را به ارث میبرد. دروازه پرداخت خارج از مرز فروشگاه آنلاین است، اما در مورد استفاده پرداخت مشارکت دارد.
۷. مثال: تعمیم مورد استفاده
تعمیم میتواند نسخههای تخصصیتر یک مورد استفاده گستردهتر را نشان دهد. مثلث توخالی به سمت مورد استفاده عمومی اشاره میکند.

@startuml
جهت چپ به راست
نقشگر مشتری
مستطیل «سیستم پرداخت» {
مورد استفاده «انجام پرداخت» به عنوان Payment
مورد استفاده «پرداخت با کارت» به عنوان Card
مورد استفاده «پرداخت با انتقال بانکی» به عنوان Transfer
}
مشتری --> Card
مشتری --> Transfer
Card --|> Payment
Transfer --|> Payment
@enduml
از این روش زمانی استفاده کنید که موارد استفاده تخصصی یک هدف کلی مشترک دارند اما تفاوتهای معناداری نیز دارند. اگر تفاوتها صرفاً مراحل شرطی باشند، یک <<extend>> رابطه یا یک توضیح مکتوب مورد استفاده ممکن است واضحتر باشد.
۸. کار در VPasCode
یک جریان کاری عملی:

-
محدوده را تعریف کنید.مرز سیستم، نقشهای نقشگرها و اهدافی که هر نقش میخواهد محقق کند را شناسایی کنید.
-
یک پیشنویس ایجاد کنید.مستقیماً PlantUML بنویسید یا از دستیار هوش مصنوعی بخواهید که یک نمودار مورد استفاده تولید کند.
-
کد را بازبینی و پیشنمایش کنید.تأیید کنید که نقشگرها خارج از مرز سیستم هستند، موارد استفاده درون آن قرار دارند و پیکانها در جهت صحیح اشاره میکنند.
-
مدل را اصلاح کنید.نامهای مبهم را جایگزین کنید، جزئیات پیادهسازی را حذف کنید و روابط را فقط زمانی اضافه کنید که بازتابدهنده نیازهای واقعی باشند.
-
ویرایشهای هدفمند هوش مصنوعی را درخواست کنید.برای مثال: «یک نقشگر دروازه پرداخت خارجی اضافه کنید و تعامل پرداخت مورد نیاز را با استفاده از یک رابطه شامل نشان دهید. بقیه را بدون تغییر نگه دارید.»
-
با ذینفعان اعتبارسنجی کنید.بررسی کنید که نمودار بازتابدهنده محدوده واقعی سیستم و اهداف کاربر باشد.
-
منبع را ذخیره کنید. نگه داشتن
.pumlمتن را همراه با مستندات پروژه یا در کنترل نسخه نگه دارید. در صورت نیاز برای اسناد یا ارائهها، یک تصویر صادر کنید.
مثال دستور برای کمک هوش مصنوعی
یک نمودار مورد استفاده UML برای یک فروشگاه آنلاین در PlantUML ایجاد کنید. شامل مرز سیستم، بازیگرهای مشتری و مدیر، و اهداف «مرور محصولات»، «ثبت سفارش»، «ردیابی ارسال» و «مدیریت کاتالوگ» باشد. مجوز پرداخت را به عنوان رفتاری ضروری که توسط «ثبت سفارش» شامل میشود، نشان دهید. اعمال ترفند را به عنوان یک گسترش شرطی از «ثبت سفارش» نمایش دهید. فقط سورس معتبر PlantUML را بازگردانید.
کد تولیدشده توسط هوش مصنوعی را به عنوان پیشنویس اولیه در نظر بگیرید. قبل از استفاده، بازیگرها، مرزها، روابط و فرضیات کسبوکار را بررسی کنید.
۹. اشتباهات رایج

-
مدلسازی اجزای داخلی به عنوان بازیگرها:بازیگرها باید نقشها یا سیستمهای خارجی باشند که با موضوع تعامل دارند.
-
نامگذاری موارد استفاده به عنوان وظایف پیادهسازی:ترجیحاً «ردیابی ارسال» را به جای «تماس با API ردیابی» استفاده کنید.
-
استفاده از
<<include>>برای رفتارهای اختیاری:Include رفتاری را نشان میدهد که مورد استفاده پایه نیاز دارد. -
معکوس کردن جهت فلشهای رابطه:Include به مورد استفاده شاملشده اشاره میکند؛ extend به مورد استفاده پایه اشاره میکند.
-
شلوغ کردن یک نمودار با جزئیات:از یک نمودار سطح بالا برای محدوده استفاده کنید، سپس برای سناریوهای دقیق از نمودارهای جداگانه یا متن استفاده کنید.
-
فرض اینکه رندر موفق به معنای درستی مدل است:PlantUML میتواند نموداری را رندر کند که همچنان الزامات را به درستی بازتاب ندهد.
۱۰. چکلیست بازبینی
قبل از اشتراکگذاری نمودار، تأیید کنید که:

-
مرز سیستم واضح است.
-
هر بازیگر خارجی است و یک نقش را نشان میدهد.
-
نامهای مورد استفاده اهداف معناداری را توصیف میکنند.
-
ارتباطات بازیگرها تعاملات واقعی را منعکس میکنند.
-
رابطههای Include ضروری هستند؛ رابطههای extend شرطی یا بهطور دیگر توجیهشده هستند.
-
فلشهای تعمیم به بازیگر یا مورد استفاده کلی اشاره میکنند.
-
نمودار در اندازه مورد نظر قابل خواندن باقی میماند.
-
فرضیههای تولیدشده توسط هوش مصنوعی با افرادی که با الزامات آشنا هستند، بازبینی شدهاند.
This post is also available in Deutsch, English, Español, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam and 繁體中文.











