de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

نمودار توالی UML: نمایش زمان و تعامل

نمودار توالی UML ابزاری ضروری برای درک رفتار پویای یک سیستم است. این نمودار نحوه تعامل اشیاء با یکدیگر و ترتیب وقوع این تعاملات را مدل می‌کند و بر جریان زمان‌بندی شده پیام‌ها تأکید می‌کندجریان زمان‌بندی شده پیام‌ها. این موضوع برای تعریف موارد استفاده، مستندسازی فراخوانی‌های API و ردیابی جریان‌های پیچیده تراکنش‌ها حیاتی است.

این آموزش شما را از طریق عناصر اصلی و روش‌های مدل‌سازی نمودار توالی هدایت خواهد کرد.

ساختار و هدف اصلی

یک نمودار توالی در دو محور سازمان‌دهی می‌شود:

  1. محور افقی:نشان‌دهنده شرکت‌کنندگان دراشیاء (یا بازیگران، کلاس‌ها و مؤلفه‌ها).
  2. محور عمودی (محور زمان): جریان زمان را نشان می‌دهد که به سمت پایین حرکت می‌کند. پیام‌های ارسالی در قسمت‌های پایین نمودار در توالی بعدی رخ می‌دهند.

Axis-of-sequence-diagram

هدف این است که به سوال زیر پاسخ دهد:«در این سناریو خاص (مورد استفاده)، این اشیاء به چه ترتیبی اطلاعات را مبادله می‌کنند تا نتیجه مطلوب به دست آید؟»

عناصر اصلی نمودار توالی

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

الف. خطوط زندگی (شرکت‌کنندگان)

یک خط زندگی نماینده یک شرکت‌کننده واحد—یک شی، نمونه یا کلاس—در تعامل است.

  • نمادگذاری: یک جعبه مستطیلی در بالای نمودار که نام شی را حاوی می‌شود، با یک خط نقطه‌چین عمودی که به سمت پایین امتداد می‌یابد.
  • سینتکس:
    • نام_شرکت‌کننده (اگر شی یک نمونه باشد، مثلاًکاربر)
    • نام_نمونه: نام_کلاس (مثلاًauthService: AuthenticationService)
  • هدف: خط نقطه‌چین نشان‌دهنده وجود شرکت‌کننده در طول زمان در محدوده توالی است.

lifeline

ب. پیام‌ها (تعامل)

پیام‌ها پیکان‌های افقی هستند که بین خطوط زندگی رسم می‌شوند. این پیام‌ها ارتباط بین اشیاء را نشان می‌دهند، مانند فراخوانی روش‌ها، سیگنال‌ها یا درخواست‌های API.

Messages-(Interaction)

انواع پیام‌ها:

نوع پیام نمادگذاری توضیحات
فراخوانی هم‌زمان خط پیوسته با سر پیکان پر شده فرستنده منتظر پاسخ می‌ماند تا بتواند ادامه دهد. این امر باعث ایجاد یک میله فعال‌سازیروی خط زندگی دریافت‌کننده.
پاسخ/بازگشت خط نقطه‌چین با سر پیکان باز پاسخ به یک فراخوانی هم‌زمان، که نشان‌دهنده بازگشت کنترل به فرستنده است. این کار معمولاً میله فعال‌سازی را بسته می‌کند.
پیام غیرهم‌زمان خط پیوسته با سر پیکان باز فرستنده منتظر پاسخ نمی‌ماند و بلافاصله اجرای خود را ادامه می‌دهد. این روش در معماری‌های مبتنی بر رویداد رایج است.
فراخوانی خودی پیکانی که به همان خط زندگی باز می‌گردد یک شیء که یکی از روش‌های خود را فراخوانی می‌کند.
پیام پیدا شده پیکانی که از یک نقطه پایانی شروع شده و به یک خط زندگی برخورد می‌کند فرستنده پیام نامشخص است یا خارج از محدوده دیاگرام است (مثلاً یک فعال‌ساز خارجی).

ج. میله‌های فعال‌سازی (مشخصات اجرایی)

میله فعال‌سازی (که به آن کنترل تمرکز نیز گفته می‌شود) یک مستطیل عمودی نازک است که روی خط زندگی رسم می‌شود.

  • نمادگذاری:یک مستطیل عمودی پیوسته روی خط زندگی.
  • هدف: این زمانی را نشان می‌دهد که یک شی در حال انجام فعالانه یک عملیات (یعنی روش آن در حال اجراست) یا در حال انتظار برای بازگشت هم‌زمان است. این زمان زمانی شروع می‌شود که یک پیام هم‌زمان دریافت شود و زمانی پایان می‌یابد که پیام پاسخ ارسال شود.

مدل‌سازی منطق و جریان کنترل

برای مدل‌سازی منطق کسب‌وکار پیچیده، از قطعات (یا جعبه‌ها) برای احاطه کردن بخش‌هایی از نمودار استفاده می‌کنید.

الف. قطعات ترکیبی

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

  1. گزینه‌ای (alt): برای استفاده در اگر-در غیر این صورت منطق. قطعه توسط یک خط نقطه‌چین تقسیم می‌شود و هر بخش شامل یک شرط (یک «گارد») در براکت‌های مربعی است. فقط یک مسیر قابل انتخاب است.
    • مثال: [اگر اعتبار کاربر معتبر باشد] و [در غیر این صورت / اعتبار نامعتبر].
  2. گزینه (opt): برای استفاده در یک اگر بیانیه. تعامل درون قطعه اختیاری است و فقط در صورتی اجرا می‌شود که شرط (گارد) درست باشد.
    • مثال: [اگر کاربر آیتمی در سبد خرید دارد].
  3. حلقه (loop): برای تکرار استفاده می‌شود. گارد شرط تکرار را مشخص می‌کند (مثلاً [برای هر آیتم] یا [تا زمانی که (تلاش‌ها < 3)]).
  4. اشاره (ref): برای به‌صورت ماژولار کردن نمودار با ارجاع به یک توالی تعامل که در یک نمودار توالی مجزا تعریف شده است. این کار از ایجاد نمودارهای بیش از حد پیچیده جلوگیری می‌کند.
  5. حیاتی (crit): برای نشان دادن بخشی که نباید تحت تأثیر قطع شدن قرار گیرد، به طور معمول برای مدل‌سازی فرآیندهای هم‌زمان استفاده می‌شود.

مثال مدل‌سازی گام به گام

بیایید یک فرآیند ساده‌شده را مدل کنیمفرآیند خروج کاربر با استفاده از عناصر اصلی:

گام اقدام نوع پیام
1. کاربر روی «خروج» کلیک می‌کند. فراخوانی هم‌زمان
2. Frontend سبد خرید را اعتبارسنجی می‌کند. فراخوانی خودی (روی Frontend)
3. Frontend درخواست پردازش پرداخت را ارسال می‌کند. فراخوانی هم‌زمان
4. درگاه پرداخت مالیات را بررسی می‌کند. فراخوانی هم‌زمان
5. درگاه پرداخت «موفقیت» را بازگرداند. پیام بازگشتی
6. Frontend یک پیام غیرهمزمان را به سرویس موجودی ارسال می‌کند تا موجودی کاهش یابد. پیام غیرهمزمان
7. Frontend یک پیام هم‌زمان را به سرویس سفارش ارسال می‌کند تا سفارش نهایی شود. فراخوانی هم‌زمان
8. سرویس سفارش «شماره سفارش» را بازگرداند. پیام بازگشت
9. Frontend صفحه تأیید را نمایش می‌دهد. پیام بازگشت (به کاربر)

مدل‌سازی منطق (بخش جایگزین)

برای مدیریت شکست، از یک استفاده می‌کنیمجایگزین بخش:

  1. قرار دهیدبررسی درگاه پرداخت (مرحله ۴ و ۵) درون یکalt بخش.
  2. بخش اول توسط[موفقیت]. این بخش شامل مراحل ۶، ۷، ۸ و ۹ است.
  3. بخش دوم، که توسط خط چین تقسیم شده، توسط[شکست]. این بخش حاوی یک پیام هم‌زمان جدید است:paymentService -> frontend: بازگرداندن «پرداخت ناموفق بود» و Frontend صفحه خطایی را نمایش می‌دهد.

خلاصه بهترین روش‌های نمودار توالی

  • تمرکز داشته باشید: یک نمودار توالی باید معمولاً یک مورد استفاده یا یک عملکرد اتمیک را مدل کند (مثلاً «ورود به سیستم»، «افزودن کالا به سبد خرید»). ازبخش‌های مرجع برای زیرفرآیندها استفاده کنید.
  • پیام‌ها را به وضوح برچسب‌گذاری کنید: از عبارت‌های فعلی برای پیام‌ها استفاده کنید، که نام روش‌ها یا نقاط پایانی API را منعکس می‌کنند (مثلاًprocessPayment(amount, token)).
  • شناسایی صحیح شرکت‌کنندگان: تفاوت بین عملگر (عنصر خارجی) و شیء (اجزای سیستم داخلی یا نمونه).
  • زمان به سمت پایین جریان دارد: مطمئن شوید پیام‌ها به طور یکنواخت از بالا به پایین مرتب شده‌اند.
  • از قطعات برای کنترل استفاده کنید: از رسم گره‌های تصمیم پیچیده یا حلقه‌ها درون خود جریان پیام خودداری کنید؛ از alt, opt، و loop قطعات استفاده کنید.

برای دریافت جزئیات بیشتر درباره UML و روش‌های بصری‌سازی مبتنی بر هوش مصنوعی، به ما مراجعه کنیدمرکز منابع UML.

This post is also available in Deutsch, English, Español, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.