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

نمودارهای مورد استفاده در تحلیل نیازمندیها بهویژه مفید هستند، زیرا دیدگاهی کلی از عملکرد و دامنه سیستم ارائه میدهند.
۱. نمودار مورد استفاده چه چیزی را نشان میدهد

یک نمودار مورد استفاده معمولاً شامل موارد زیر است:
-
مرز سیستم — تعریف میکند که چه چیزی در داخل سیستم مورد مدلسازی قرار دارد.
-
بازیگران — کاربران خارجی، سازمانها، دستگاهها یا سیستمهایی که با آن تعامل دارند.
-
موارد استفاده — اهداف یا خدماتی که سیستم ارائه میدهد.
-
ارتباطات — لینکهای ارتباطی بین بازیگران و موارد استفاده.
-
روابط بین موارد استفاده — مانند «
<<شامل>>و «<<گسترش>>. -
عمومیسازی — وراثت بین بازیگران یا موارد استفاده.
یک نمودار مورد استفاده معمولاً موارد زیر را نشان نمیدهد:
-
مراحل الگوریتم
-
جدولهای پایگاه داده
-
کلاسهای برنامه
-
روندکارهای داخلی
-
طرحبندیهای دقیق رابط کاربری
-
ترتیب پیامها در طول زمان
این جزئیات با نمودارهای فعالیت، کلاس، توالی یا حالت بهتر نمایش داده میشوند.
۲. مفاهیم کلیدی
مرز سیستم
مرز سیستم مستطیلی است که موارد استفاده متعلق به سیستم را احاطه میکند.
برای مثال، در یک سیستم خرید آنلاین:
+--------------------------------------+
| سیستم خرید آنلاین |
| |
| (مرور محصولات) |
| (ثبت سفارش) |
| (انجام پرداخت) |
+--------------------------------------+
نقشها در خارج از مرز باقی میمانند زیرا آنها خارجی به سیستم هستند.
مرز به شفافسازی دامنهسیستم کمک میکند. اگر قابلیتی در خارج از مرز باشد، توسط سیستم مورد مدلسازی پیادهسازی نمیشود.
نقشها
یک نقشهر چیزی خارجی است که برای دستیابی به هدفی با سیستم تعامل دارد.
نقشها میتوانند شامل موارد زیر باشند:
-
کاربران انسانی
-
برنامههای خارجی
-
دستگاههای سختافزاری
-
سازمانهای دیگر
-
زمان یا رویدادهای برنامهریزیشده، هنگامی که به عنوان محرکهای خارجی مدلسازی میشوند
مثالها:
-
مشتری
-
کتابدار
-
درگاه پرداخت
-
مدیر سیستم
-
سرویس ایمیل
یک نقش نمایندهی نقش، لزوماً یک شخص خاص نیست. برای مثال، «مشتری» معمولاً بهتر از «الکس» است.
نقشها میتوانند باشند:
-
نقشهای اصلی — تعاملات را برای دستیابی به یک هدف آغاز میکنند.
-
نقشهای پشتیبان — خدماتی را به سیستم ارائه میدهند.
برای مثال، یک مشتری ممکن است «ثبت سفارش» را آغاز کند، در حالی که یک درگاه پرداخت، «پردازش پرداخت» را پشتیبانی میکند.
مورد استفاده
یک مورد استفادهنماینده یک هدف معنادار یا خدماتی است که توسط سیستم ارائه میشود.
نامهای خوب برای موارد استفاده معمولاً از این الگو پیروی میکنند:
فعل + مفعول
مثالها:
-
ثبت حساب
-
جستجوی کاتالوگ
-
ارسال درخواست
-
تولید گزارش
-
لغو رزرو
-
پردازش پرداخت
یک مورد استفاده باید یک نتیجه قابل مشاهده را توصیف کند، نه یک مرحله داخلی پیادهسازی.
ترجیح دهید:
ثبت سفارش
به جای:
اعتبارسنجی شیء سفارش
دومین مورد یک عملیات داخلی را توصیف میکند، نه یک هدف کاربر.
ارتباطات
یک ارتباط، یک پیوند ارتباطی بین یک نقش و یک مورد استفاده است.
این نشان میدهد که نقش در مورد استفاده مشارکت دارد یا آن را آغاز میکند.
مشتری ---- (ثبت سفارش)
ارتباطها معمولاً ترتیب، جریان کنترل یا جهت را نشان نمیدهند. اگر ترتیب تعاملات مهم است، از نمودار توالی یا نمودار فعالیت استفاده کنید.
۳. روابط بین موارد استفاده
<<شامل>>
از <<شامل>>وقتی یک مورد استفاده همیشه ازیک مورد استفاده دیگر استفاده میکند.
برای مثال، ثبت سفارش ممکن است همیشه نیاز به احراز هویت داشته باشد:
(ثبت سفارش) ..> (احراز هویت مشتری) : <<شامل>>
مورد استفاده پایه به مورد استفاده شامل وابسته است.
از شاملوقتی:
-
رفتار اجباری است.
-
رفتار توسط چندین مورد استفاده بازنویسی میشود.
-
استخراج رفتار، وضوح را بهبود میبخشد.
مثال:
(برداشت وجه) ..> (احراز هویت کارت) : <<شامل>>
(بررسی موجودی) ..> (احراز هویت کارت) : <<شامل>>
هر دو مورد استفاده همیشه نیاز به احراز هویت کارت دارند.
<<گسترش>>
از <<گسترش>>وقتی رفتار اضافی اختیاری است یا به صورت شرطی به یک مورد استفاده پایه درج میشود.
(اعمال تخفیف) ..> (ثبت سفارش) : <<گسترش>>
رفتار تخفیف تنها زمانی رخ میدهد که شرایط واجد شرایط بودن برآورده شوند.
از گسترشوقتی:
-
رفتار اختیاری است.
-
این تنها در صورتی رخ میدهد که یک شرط برقرار باشد.
-
مورد استفاده پایه بدون آن نیز کامل است.
مثالها:
-
«افزودن بستهبندی هدیه» گسترشدهنده «ثبت سفارش» است.
-
«درخواست بازپرداخت» گسترشدهنده «لغو اشتراک» است.
-
«ارسال ایمیل تبلیغاتی» گسترشدهنده «تکمیل ثبتنام» است.
پیکان از مورد استفاده گسترشدهنده به سمت مورد استفاده پایه اشاره میکند.
عمومیسازی
عمومیسازی نمایانگر رابطه «یک نوع از» بین بازیگران یا موارد استفاده است.
برای مثال:
مشتری ویژه --|> مشتری
مشتری ویژه نوعی از مشتری است و تعاملات مشتری را به ارث میبرد.
عمومیسازی بازیگران میتواند زمانی مفید باشد که چند بازیگر رفتار مشترکی دارند:
مدیر --|> کارمند
کتابدار --|> کارمند
از عمومیسازی بهصورت محدود استفاده کنید. اگر رابطه صرفاً «استفاده میکند» یا «در آن مشارکت دارد»، معمولاً یک ارتباط (association) مناسبتر است.
۴. بازیگران اصلی و پشتیبان
یک سناریوی پرداخت آنلاین را در نظر بگیرید:
-
«مشتری» بازیگر اصلی است، زیرا خرید را آغاز میکند.
-
«درگاه پرداخت» یک بازیگر پشتیبان است، زیرا پرداخت را طبق درخواست سیستم پردازش میکند.
یک مدل ساده ممکن است به این شکل باشد:
مشتری ---- (ثبت سفارش)
(ثبت سفارش) ---- درگاه پرداخت
این تمایز مفید است، زیرا مشخص میکند چه کسی از مورد استفاده بهرهمند میشود و کدام سیستمهای خارجی درگیر هستند.
۵. چگونه موارد استفاده را شناسایی کنیم
یک روش عملی برای کشف موارد استفاده این است که بپرسیم:
-
چه کسی از سیستم استفاده میکند؟
-
هر بازیگر چه هدفی را میخواهد محقق کند؟
-
سیستم چه خدماتی ارائه میدهد؟
-
چه رویدادهایی رفتار سیستم را فعال میکنند؟
-
سیستم باید با چه سیستمهای خارجی تعامل داشته باشد؟
-
چه رفتاری همواره الزامی است؟
-
چه رفتاری اختیاری یا مشروط است؟
برای هر بازیگر، اهداف آنها را فهرست کنید:
| بازیگر | هدف | مورد استفاده احتمالی |
|---|---|---|
| مشتری | پیدا کردن یک محصول | جستجوی محصولات |
| مشتری | خرید یک محصول | ثبت سفارش |
| مشتری | پرداخت برای یک سفارش | انجام پرداخت |
| مدیر سیستم | نگهداری دادههای محصول | مدیریت کاتالوگ |
| درگاه پرداخت | مجوز پرداخت | پردازش پرداخت |
هدف باید برای بازیگر معنادار باشد. از تبدیل هر عملیات کوچک سیستم به یک مورد استفاده خودداری کنید.
۶. راهنمای نامگذاری
از نامهای شفاف و هدفمحور استفاده کنید.
مثالهای خوب:
-
ایجاد حساب کاربری
-
بهروزرسانی پروفایل
-
ارسال ادعا
-
ردیابی مرسوله
-
تأیید درخواست
-
تولید فاکتور
از نامهای مبهم پرهیز کنید:
-
پردازش سیستم
-
مدیریت دادهها
-
عملکرد کاربر
-
اجرای عملیات
از جزئیات فنی بیش از حد پرهیز کنید:
-
اجرای کوئری SQL
-
فراخوانی نقطه پایانی REST
-
ایجاد سرویس پرداخت
اینها ممکن است مراحل پیادهسازی معتبر باشند، اما معمولاً به عنوان موارد استفاده سطح بالا مفید نیستند.
۷. مثال: سیستم مدیریت کتابخانه
فرض کنید یک سیستم کتابخانه از موارد زیر پشتیبانی میکند:
-
جستجوی کتاب توسط اعضا
-
قرض گرفتن کتاب توسط اعضا
-
بازگرداندن کتاب توسط اعضا
-
مدیریت کاتالوگ توسط کتابداران
-
اعلامیههای اخطار مهلت
-
پردازش پرداخت جریمهها
کاراکترهای ممکن:
-
عضو
-
کتابدار
-
سرویس اطلاعرسانی
-
سرویس پرداخت
موارد استفاده ممکن:
-
جستجوی کاتالوگ
-
قرض گرفتن کتاب
-
بازگرداندن کتاب
-
محاسبه جریمه
-
پرداخت جریمه
-
مدیریت کاتالوگ
-
ارسال اعلان تأخیر
روابط:
-
قرض گرفتن کتاب شامل بررسی عضویت است.
-
قرض گرفتن کتاب شامل بررسی موجودی کتاب است.
-
بازگرداندن کتاب شامل محاسبه جریمه است.
-
پرداخت جریمه با سرویس پرداخت تعامل دارد.
-
ارسال اعلان تأخیر با سرویس اعلان تعامل دارد.
۸. مثال PlantUML
کد PlantUML زیر یک نمودار مورد استفاده برای سیستم کتابخانه ایجاد میکند:

@startuml
جهت چپ به راست
عنوان: سیستم مدیریت کتابخانه - نمودار مورد استفاده
نقش: عضو
نقش: کتابدار
نقش "سرویس اعلان" به عنوان Notification
نقش "سرویس پرداخت" به عنوان Payment
مستطیل "سیستم مدیریت کتابخانه" {
usecase "جستجوی کاتالوگ" به عنوان UC_Search
usecase "قرض گرفتن کتاب" به عنوان UC_Borrow
usecase "بازگرداندن کتاب" به عنوان UC_Return
usecase "بررسی عضویت" به عنوان UC_CheckMember
usecase "بررسی موجودی کتاب" به عنوان UC_CheckAvailability
usecase "محاسبه جریمه" به عنوان UC_CalculateFine
usecase "پرداخت جریمه" به عنوان UC_PayFine
usecase "مدیریت کاتالوگ" به عنوان UC_ManageCatalog
usecase "ارسال اعلان تأخیر" به عنوان UC_Notify
}
Member --> UC_Search
Member --> UC_Borrow
Member --> UC_Return
Member --> UC_PayFine
Librarian --> UC_ManageCatalog
Librarian --> UC_Borrow
Librarian --> UC_Return
Payment --> UC_PayFine
Notification --> UC_Notify
UC_Borrow ..> UC_CheckMember : <<شامل>>
UC_Borrow ..> UC_CheckAvailability : <<شامل>>
UC_Return ..> UC_CalculateFine : <<شامل>>
UC_Notify ..> UC_Return : <<گسترش>>
@enduml

۹. توضیح مثال
نقشها
نقش عضو
نقش کتابدار
نقش "سرویس اعلان" به عنوان Notification
نقش "سرویس پرداخت" به عنوان Payment
این نمودار دو نقش انسانی و دو سرویس خارجی را مدلسازی میکند.
نامهای مستعار مانند به عنوان Notificationاستفاده از نامهای طولانی را در آینده آسانتر میکند.
مرز سیستم
مستطیل محدوده سیستم را تعریف میکند. موارد استفاده درون مستطیل توسط سیستم کتابخانه ارائه میشوند.
ارتباطات بازیگر
این ارتباطات نشان میدهند که یک عضو میتواند در کاتالوگ جستجو کند و کتابها را قرض بگیرد.
جهت فلش در یک نمودار مورد استفاده معمولاً از نظر معنایی مهم نیست. این عمدتاً برای خوانا کردن نمودار استفاده میشود.
روابط شامل
UC_قرض ..> UC_بررسی_عضو : <<شامل>>
UC_قرض ..> UC_بررسی_در دسترس بودن : <<شامل>>
قرض گرفتن یک کتاب همیشه نیازمند بررسی عضویت و در دسترس بودن است، بنابراین این موارد به عنوان موارد استفاده شامل مدلسازی شدهاند.
روابط گسترش
این نشان میدهد که رفتار اطلاعرسانی اوراق، رفتار اضافی مرتبط با بازگرداندن یک کتاب است.
با این حال، در یک مدل واقعی نیازمندیها، طراحی طبیعیتر ممکن است «ارسال اطلاعرسانی اوراق» را با یک فرآیند زمانبندیشده یا یک بازیگر مانند «برنامهریز کتابخانه» مرتبط کند. بهترین رابطه به قوانین واقعی کسبوکار بستگی دارد.
۱۰. مشخصات دقیقتر مورد استفاده
یک نمودار نمای کلی ارائه میدهد، اما هر مورد استفاده مهم باید معمولاً دارای یک مشخصات متنی باشد.
مورد استفاده: قرض گرفتن کتاب
| فیلد | توضیحات |
|---|---|
| نام | قرض گرفتن کتاب |
| نقش اصلی | عضو |
| نقش پشتیبان | کتابدار |
| هدف | قرض گرفتن یک کتاب موجود |
| شرایط پیشنیاز | عضو ثبتشده است؛ کتاب وجود دارد |
| محرک | عضو درخواست قرض گرفتن یک کتاب را دارد |
| جریان اصلی | سیستم عضویت را تأیید میکند، موجودی را بررسی میکند، وام را ثبت میکند و وضعیت کتاب را بهروزرسانی میکند |
| جریان جایگزین | کتاب در دسترس نیست |
| جریان جایگزین | عضویت منقضی شده است |
| شرایط پسازاجرا | وام ثبت میشود و کتاب بهعنوان قرضگرفتهشده علامتگذاری میشود |
نمودار مورد استفاده نباید تلاش کند تمام این جزئیات را در بر بگیرد. نمودار نقشه را ارائه میدهد؛ مشخصات، رفتار را ارائه میکند.
۱۱. مرجع دستوری PlantUML
اعلام نقشها
actor Customer
actor "Payment Gateway" as Gateway
اعلام موارد استفاده
usecase "Place Order" as PlaceOrder
usecase "Process Payment" as ProcessPayment
ایجاد مرز سیستم
rectangle "فروشگاه آنلاین" {
usecase "مرور محصولات" as Browse
usecase "ثبت سفارش" as Order
}
اتصال بازیگران و موارد استفاده
شامل
گسترش
عمومیسازی بازیگران
گروهبندی بستهها
بستهها میتوانند موارد استفاده مرتبط را به صورت بصری گروهبندی کنند:
rectangle "سیستم بانکی" {
package "مدیریت حساب" {
usecase "باز کردن حساب" as OpenAccount
usecase "بستن حساب" as CloseAccount
}
package "پرداختها" {
usecase "انتقال وجه" as TransferFunds
usecase "پرداخت صورتحساب" as PayBill
}
}
یادداشتها
note right of PlaceOrder
مشتری باید احراز هویت شود
قبل از ثبت سفارش.
end note
۱۲. بهبود چیدمان نمودار
PlantUML بهطور خودکار نمودارها را چیدمان میکند، اما چندین تکنیک خوانایی را بهبود میبخشد.
کنترل جهت
این اغلب مفید است وقتی که بازیگران باید در طرفین و موارد استفاده در مرکز ظاهر شوند.
سایر جهتهای رایج عبارتند از:
استفاده از نامهای مستعار
بهجای تکرار نامهای طولانی:
usecase "بررسی هویت مشتری" بهعنوان VerifyIdentity
سپس ارجاع دهید:
RegisterAccount ..> VerifyIdentity : <<include>>
گروهبندی موارد استفاده مرتبط
از بستهها یا مستطیلهای تو در تو برای تفکیک حوزههای عملکردی استفاده کنید:
package "مدیریت سفارش" {
usecase "ایجاد سفارش" as CreateOrder
usecase "لغو سفارش" as CancelOrder
}
از تقاطعهای بیش از حد پرهیز کنید
وقتی تعداد زیادی از خطوط همدیگر را قطع میکنند، نمودار خواندن دشواری پیدا میکند. میتوانید آن را با موارد زیر بهبود بخشید:
-
قرار دادن بازیگران مرتبط در نزدیکی موارد استفاده خود
-
گروهبندی موارد استفاده در بستهها
-
تقسیم یک نمودار بزرگ به چند نمودار کوچکتر
-
استفاده از نامهای مستعار برای ارجاعات شفاف
-
پرهیز از روابط غیرضروری
۱۳. اشتباهات رایج
مدلسازی توابع داخلی به عنوان موارد استفاده
این معمولاً بیش از حد فنی است:
اعتبارسنجی اتصال پایگاه داده
تبدیل درخواست به رشته
فراخوانی API پرداخت
اهداف معنادار از دیدگاه خارجی را ترجیح دهید:
انجام پرداخت
ارسال درخواست
تولید گزارش
در نظر گرفتن هر بازیگر به عنوان یک شخص
سیستمها و دستگاههای خارجی نیز میتوانند بازیگر باشند:
-
درگاه پرداخت
-
ارائهدهنده هویت
-
سیستم انبار
-
اسکنر بارکد
-
خدمات اطلاعرسانی
استفاده از includeبرای رفتارهای اختیاری
اگر رفتار اختیاری است، از گسترش به جای شامل.
نادرست:
ثبت سفارش ..> اعمال کد تخفیف : <<شامل>>
اگر اعمال کد تخفیف اختیاری است، از این استفاده کنید:
اعمال کد تخفیف ..> ثبت سفارش : <<گسترش>>
استفاده از گسترش برای رفتارهای اجباری
اگر رفتاری همیشه رخ میدهد، باید به طور کلی با شامل.
ثبت سفارش ..> احراز هویت مشتری : <<شامل>>
اتصال مستقیم موارد استفاده بدون معنای منطقی
خط بین دو مورد استفاده باید یک رابطه معتبر UML را نشان دهد. از اتصالات دلخواه که صرفاً القا میکنند که موارد استفاده به نحوی مرتبط هستند، پرهیز کنید.
ایجاد یک نمودار عظیم واحد
نمودار مورد استفاده باید به صورت واضح در سطح بالا ارتباط برقرار کند. اگر شامل دهها بازیگر و مورد استفاده است، چندین نمودار ایجاد کنید که بر اساس زیرسیستم یا حوزه کسبوکار سازماندهی شدهاند.
نمایش ترتیب
نمودار مورد استفاده نشان نمیدهد که یک مورد استفاده قبل از دیگری رخ میدهد. برای نمایش ترتیب، از نمودار توالی یا نمودار فعالیت استفاده کنید.
۱۴. چه زمانی از سایر نمودارهای UML استفاده کنیم
نمودارهای مورد استفاده برای محدوده سیستم و اهداف کاربر بهترین هستند. هنگامی که جزئیات بیشتری نیاز است، آنها را با سایر نمودارها ترکیب کنید:
| نیازمندی | نمودار مفید |
|---|---|
| اهداف کاربر و محدوده سیستم | نمودار مورد استفاده |
| روند کاری دقیق | نمودار فعالیت |
| ترتیب تعامل | نمودار توالی |
| ساختار دامنهای ایستا | نمودار کلاس |
| چرخه حیات شیء | نمودار ماشین حالت |
| معماری استقرار | نمودار استقرار |
| اجزا و وابستگیها | نمودار اجزا |
۱۵. فرآیند مدلسازی پیشنهادی
-
مرز سیستم را تعریف کنید.
-
همه بازیگران خارجی را شناسایی کنید.
-
اهداف هر بازیگر را شناسایی کنید.
-
آن اهداف را به موارد استفاده تبدیل کنید.
-
بازیگران را به موارد استفادهای که در آنها مشارکت دارند متصل کنید.
-
رفتارهای اجباری قابل استفاده مجدد را شناسایی کرده و آن را با مدلسازی کنید
<<شامل>>. -
رفتارهای اختیاری یا شرطی را شناسایی کرده و آن را با مدلسازی کنید
<<گسترش>>. -
عمومیسازی را فقط در مواردی که رابطه واقعی «یک نوع از» وجود دارد، اضافه کنید.
-
نمودار را با ذینفعان بازبینی کنید.
-
مشخصات متنی برای موارد استفاده مهم اضافه کنید.
-
اگر نمودار شلوغ شد، آن را تقسیم کنید.
۱۶. قالب فشرده PlantUML
میتوانید از این به عنوان نقطه شروع استفاده کنید:

@startuml
جهت چپ به راست
عنوان: نمودار موارد استفاده سیستم
بازیگر کاربر
بازیگر "سیستم خارجی" به عنوان ExternalSystem
مستطیل "نام سیستم" {
usecase "هدف اصلی کاربر" به عنوان MainGoal
usecase "رفتار مشترک مورد نیاز" به عنوان RequiredBehavior
usecase "رفتار اختیاری" به عنوان OptionalBehavior
}
کاربر --> MainGoal
ExternalSystem --> MainGoal
MainGoal ..> RequiredBehavior : <<شامل>>
OptionalBehavior ..> MainGoal : <<گسترش>>
@enduml
اصل مرکزی، مدلسازی اهداف قابل مشاهده از بیرون، نه جزئیات پیادهسازی داخلی. یک نمودار مورد استفاده قوی، مرز سیستم، بازیگران، قابلیتها و وابستگیهای مهم را بلافاصله قابل درک میکند.
منبع
- چگونه نمودار مورد استفاده UML را در Visual Paradigm ایجاد کنیم: یک راهنمای گامبهگام که شامل ایجاد بازیگر، مرزهای سیستم، ارتباطات و روابط شامل/گسترش است.
- راهنمای نهایی نمودارهای مورد استفاده در سال ۲۰۲۶: راهنمای جامع که نمادگذاریهای اصلی، بهترین روشها و جریانهای کاری مدلسازی مبتنی بر هوش مصنوعی را توضیح میدهد.
- پل زدن بین الزامات و طراحی: یک راهنمای عملی برای مدلسازی مورد استفاده: مطالعه موردی واقعی که پیادهسازی PlantUML و مفاهیم اصلی مدلسازی را نشان میدهد.
- تسلط بر نمودارهای مورد استفاده مبتنی بر هوش مصنوعی: یک آموزش کوتاه: آموزش استفاده از ابزار مجهز به هوش مصنوعی برای تولید و بهبود نمودارهای مورد استفاده از توصیفهای دامنه.
- تمرین عملی ۲: مدلسازی مورد استفاده به صورت عملی: تمرین عملی برای ساخت نمودار سیستم مدیریت کتابخانه به صورت دستی و با استفاده از هوش مصنوعی.
- نمودار مورد استفاده به سادگی: مروری بر ویژگیهای نمودار مورد استفاده Visual Paradigm شامل ویرایشگر جریان رویدادها و تولید نمودار فعالیت.
This post is also available in Deutsch, English, Español and Français.




