صفحهٔ منبع 101نمودار توالی (Sequence Diagram)
Sequence Diagram یکی از شکلهای نمودار Interaction است و نشان میدهد یک فرایند چگونه بهصورت مجموعهای از گامها در طول زمان انجام میشود. از Sequence Diagram میتوانید برای مدلسازی گردشکار، انتقال Messageها و همکاری میان عناصر استفاده کنید. این نمودار بهویژه برای نمایش جریان اطلاعات و مسئولیتها مناسب است؛ Messageها در مدل Class میتوانند به فراخوانی Methodها تبدیل شوند. Sequence Diagram همچنین برای تشریح و تکمیل مدلهای Use Case کاربرد دارد.
در یک Sequence Diagram، عناصر در امتداد محور افقی قرار میگیرند و Messageها میان آنها در جهت بالا به پایین ردوبدل میشوند. برای Messageها میتوان نوع، جزئیات و Operation مرتبط با عنصر Source یا Target را مشخص کرد. Actorها و عناصر stereotype شدهٔ Boundary، Control و Entity نیز میتوانند در نمودار بهکار روند. Lifeline هر عنصر بهصورت خط عمودی نقطهچین از زیر آن امتداد مییابد.
برای نمایش یا پنهانکردن شمارهٔ Sequence Messageها از گزینهٔ Show Sequence Numbering استفاده کنید. عناصر و Connectorهای این نمودار از صفحات «Interaction» در Diagram Toolbox در دسترساند.
نمودار نمونه
© Sparx Systems 2026 — صفحهٔ 101 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 102آیکونهای جعبهابزار عناصر Sequence Diagram
| عنصر | توضیح |
|---|
| Actor | Actor کاربر یا نقشی بیرون از System است که با System تعامل میکند. |
| Lifeline | یک شرکتکنندهٔ منفرد و قابل اتصال در Interaction را نشان میدهد. |
| Boundary | برای ثبت تعاملهای کاربر با System، مانند Screenها، Formها و رابطهای ورودی/خروجی استفاده میشود. |
| Control | برای سازماندهی، زمانبندی یا کنترل کار و هماهنگی عناصر دیگر بهکار میرود. |
| Entity | اطلاعات یا دادهای را نشان میدهد که معمولاً باید پایدار بماند و در یک Data Store نگهداری شود. |
| Fragment | بخشی از Interaction را برای نمایش تکرار، گزینههای جایگزین یا سایر ساختارهای کنترلی در بر میگیرد. |
عنصر تصویری اصلی — صفحه 102عنصر تصویری اصلی — صفحه 102عنصر تصویری اصلی — صفحه 102عنصر تصویری اصلی — صفحه 102عنصر تصویری اصلی — صفحه 102عنصر تصویری اصلی — صفحه 102عنصر تصویری اصلی — صفحه 102© Sparx Systems 2026 — صفحهٔ 102 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 103عناصر و Connectorهای Sequence Diagram — ادامه
| عنصر/Connector | توضیح |
|---|
| Endpoint | برای نمایش Message گمشده یا پیداشده در Interaction استفاده میشود. |
| Diagram Gate | نقطهای را نشان میدهد که Message از طریق آن وارد یا خارج یک Interaction Fragment میشود. |
| State/Continuation | برای ایجاد State Invariant و Continuation در Sequence Diagram استفاده میشود. |
| Interaction | برای درج یک Interaction Diagram بهعنوان Child یک Class بهکار میرود. |
| Message | جریان اطلاعات یا انتقال کنترل میان Lifelineها را نشان میدهد. |
| Self-Message | Messageای است که از یک Lifeline به همان Lifeline بازمیگردد. |
| Recursion | فراخوانی بازگشتی را در Sequence Diagram نشان میدهد. |
| Call | فراخوانی رفتاری را نشان میدهد و Activation ایجادشده را ادامه میدهد. |
عنصر تصویری اصلی — صفحه 103عنصر تصویری اصلی — صفحه 103عنصر تصویری اصلی — صفحه 103عنصر تصویری اصلی — صفحه 103عنصر تصویری اصلی — صفحه 103عنصر تصویری اصلی — صفحه 103عنصر تصویری اصلی — صفحه 103عنصر تصویری اصلی — صفحه 103© Sparx Systems 2026 — صفحهٔ 103 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 104نمایش چرخهٔ حیات یک عنصر
در Sequence Diagram میتوانید زمان ایجاد و حذف یک Lifeline را نشان دهید.
- روی Message موردنظر دوبارکلیک کنید تا Properties آن باز شود.
- در فیلد «Lifecycle»، گزینهٔ New را برای ایجاد یا Delete را برای حذف انتخاب کنید.
- روی OK کلیک کنید.
در نمودار نمونه، عنصر ایجادشده از نقطهٔ دریافت Message آغاز میشود و حذف عنصر با علامت X در انتهای Lifeline نمایش داده میشود.
اگر علامت پایان Lifeline بهعلت Garbage Collection لازم نیست، از مسیر Start > Appearance > Preferences > Preferences > Diagram > Sequence گزینهٔ «Garbage Collect» را تنظیم کنید.
عنصر تصویری اصلی — صفحه 104© Sparx Systems 2026 — صفحهٔ 104 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 105چیدمان Sequence Diagram
برای جابهجایی یک Message، آن را انتخاب کنید و در جهت عمودی بکشید. Messageها و Fragmentهای پایینتر به همان میزان جابهجا میشوند. اگر گزینهٔ Reorder Messages فعال باشد، با کشیدن یک Message از روی Message دیگر، ترتیب آنها عوض میشود. نگهداشتن Shift نیز همین رفتار را فعال میکند. در Windows ــ بهجز بعضی محیطهای Linux یا ماشین مجازی ــ کلید Alt نیز میتواند برای این کار استفاده شود.
برای نمایش Tooltip راهنما هنگام مرتبکردن Messageها، گزینهٔ Layout | Helpers را فعال کنید. میتوانید این Tooltip را از گزینهٔ Enable Tooltips when reordering messages در صفحهٔ Preferences مربوط به Sequence غیرفعال کنید.
با این امکانات میتوان Diagram را فشردهتر و خواناتر چیدمان کرد.
عنصر تصویری اصلی — صفحه 105© Sparx Systems 2026 — صفحهٔ 105 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 106عناصر Sequence
| عنصر | توضیح |
|---|
| Actor | نمونهای در زمان اجرا از نقشی است که با System تعامل میکند. |
| Lifeline | یک Object یا شرکتکنندهٔ متمایز را در Interaction نشان میدهد. |
| Boundary | برای مدلسازی رابط کاربری، Screen، ورودی یا خروجی استفاده میشود. |
| Entity | دادهٔ پایدار یا Objectای را نشان میدهد که معمولاً در Database یا Data Store نگهداری میشود. |
| Control | یک جزء فعال برای کنترل، زمانبندی یا مدیریت کار و هماهنگکردن عناصر دیگر است. |
عنصر تصویری اصلی — صفحه 106© Sparx Systems 2026 — صفحهٔ 106 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 107Messageها در Sequence Diagram
Messageها گردش کار یا Activity را در طول زمان نشان میدهند و معمولاً با Operationها یا رفتار Classها مرتبطاند. Message را از صفحهٔ Interaction در Diagram Toolbox بین Source و Target رسم کنید. اگر Properties بهطور خودکار باز نشد، روی Message راستکلیک و «Properties» را انتخاب کنید.
برای Message نام تعیین کنید. اگر Target یک Class باشد، یا Lifeline دارای Classifier باشد، Operationهای مقصد در فهرست قابل انتخاب هستند.
عنصر تصویری اصلی — صفحه 107عنصر تصویری اصلی — صفحه 107© Sparx Systems 2026 — صفحهٔ 107 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 108ویژگیهای Message
| فیلد | کاربرد |
|---|
| Show Inherited Methods | Operationهای بهارثرسیدهٔ Class مقصد را نیز در فهرست نمایش میدهد. |
| Operations | برای تعریف Operation جدید روی Class مقصد استفاده میشود. اگر مقصد Class یا Classifier مرجع نداشته باشد، Operation جدید ایجاد نمیشود. |
| Parameters | پارامترهای Operation را بهصورت فهرست جداشده با کاما نشان میدهد. |
| Arguments | مقادیر واقعی ارسالشده به پارامترها را مشخص میکند. |
| Return Value | مقدار بازگشتی Message را مشخص میکند. |
| Assign To | در صورت تعریف Attribute روی Source، مقدار بازگشتی را به آن Attribute اختصاص میدهد؛ در غیر این صورت میتوان نام Object دلخواهی وارد کرد. |
| Stereotype | Stereotype مربوط به Message را تعیین میکند. |
| Alias / Use Alias if Available | Alias را تعریف و در صورت موجودبودن برای نمایش استفاده میکند. |
| Condition | شرطی را برای اجرای Message مشخص میکند. |
| Constraint | Constraint مرتبط با Message را مشخص میکند. |
| Is Iteration | Message را با علامت ستاره بهصورت تکراری نمایش میدهد و تا زمانی که شرط برقرار باشد تکرار میشود؛ اگر غیرفعال باشد Message در صورت True بودن شرط فقط یکبار اجرا میشود. |
| Start New Group | برای Communication Messageها گروه شمارهگذاری جدیدی را آغاز میکند. |
| Synch | نوع Message را Synchronous یا Asynchronous تعیین میکند. |
© Sparx Systems 2026 — صفحهٔ 108 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 109ویژگیهای Message — ادامه
| Synchronous / Asynchronous | اگر Message Synchronous باشد، گزینهٔ Kind غیرفعال است. برای Asynchronous میتوان Kind را Call یا Signal انتخاب کرد. |
|---|
| Lifecycle | New برای ایجاد Target، Delete برای حذف و <none> برای حالت عادی. |
|---|
| Is Return | Message را بهعنوان Return Message مشخص میکند. |
|---|
| Save | تغییرات Message را ذخیره میکند. |
|---|
از همین Properties میتوانید Timing Details و General Ordering را نیز تنظیم کنید. گزینهٔ Show Sequence Numbering شمارههای Sequence را نمایش میدهد.
یادداشت: یک Message connector میتواند برای تحقق Information Flow نیز استفاده شود.
© Sparx Systems 2026 — صفحهٔ 109 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 110Self-Message
Self-Message یک فرایند یا Method جدید را در همان Lifeline فراخواننده نشان میدهد. Self-Messageهای تو در تو سطحهای Activation بیشتری ایجاد میکنند.
نمایش Return برای Self-Message
- یک Self-Message دوم در انتهای بخش موردنظر ایجاد کنید.
- Properties آن را باز کنید.
- گزینهٔ «Is Return» را فعال کنید.
- در صورت نیاز سطح Activation را با فرمانهای Raise/Lower تنظیم کنید.
عنصر تصویری اصلی — صفحه 110عنصر تصویری اصلی — صفحه 110© Sparx Systems 2026 — صفحهٔ 110 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 111عنصر تصویری اصلی — صفحه 111© Sparx Systems 2026 — صفحهٔ 111 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 112Call
Call یک Message است که Activation ایجادشده توسط Message قبلی را ادامه میدهد. Self-Message معمولاً Activation جدیدی ایجاد میکند که در Message بعدی پایان مییابد، مگر اینکه بهصورت دستی تغییر داده شود. Callها میتوانند فراخوانیهای تو در تو را نشان دهند و هر Call سطح Activation تازهای ایجاد میکند.
Call میان دو عنصر، Activation موجود در Source را ادامه میدهد و نشان میدهد فراخوانی در چارچوب Activation ایجادشده توسط Message قبلی آغاز شده است.
عنصر تصویری اصلی — صفحه 112عنصر تصویری اصلی — صفحه 112© Sparx Systems 2026 — صفحهٔ 112 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 113نمونههای Message
منبع چند نمونه از انواع مختلف Message در Sequence Diagram را نمایش میدهد. شکل ظاهری Messageها را میتوان با Shape Script نیز تغییر داد.
سایر Messageهای Sequence
نمونههای دیگری نیز برای نمایش گونههای مختلف Message ارائه شدهاند که لزوماً بخشی از Sequence توضیحدادهشده در مثال اصلی نیستند.
عنصر تصویری اصلی — صفحه 113© Sparx Systems 2026 — صفحهٔ 113 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 114عنصر تصویری اصلی — صفحه 114© Sparx Systems 2026 — صفحهٔ 114 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 115تغییر جزئیات زمانبندی (Change the Timing Details)
برای یک Message روی آن راستکلیک و «Timing Details» را انتخاب کنید. این قابلیت بر اساس مفاهیم Timing در مشخصات UML ارائه شده است.
نمونهٔ منبع این موارد را نشان میدهد:
- Duration Constraint: برای Message «Open Order»، بازهٔ 0...13.
- Duration Constraint Between Messages: برای «Get Cart»، بازهٔ d...d*3.
- Duration Observation: مقدار d بهعنوان مدت.
- Timing Constraint: بازهٔ t...t+3.
- Timing Observation: مقدار t=now.
با فعالکردن Duration Constraint، میتوان Message را زاویهدار نمایش داد. پس از تأیید، سر Message را بالا یا پایین بکشید؛ زاویه نمیتواند از Lifeline عبور کند یا کمتر از حدود پنج درجه باشد.
برای ساخت Duration بین دو Message، فلش General Ordering را به سمت محل اتصال Message قبلی بکشید. سپس مقدار Constraint را در گفتوگو وارد کنید. خط حاصل را میتوان در محدودهٔ بین Message جاری و قبلی جابهجا کرد. برای ویرایش یا حذف، دوباره از Timing Details یا منوی Context همان خط استفاده کنید.
عنصر تصویری اصلی — صفحه 115© Sparx Systems 2026 — صفحهٔ 115 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 116فیلدهای Timing Details
| فیلد | توضیح |
|---|
| Duration Constraint | حداقل و حداکثر مدت اجرای خود Message را مشخص میکند. |
| Duration Constraint Between Messages | حداقل و حداکثر فاصلهٔ زمانی میان Message قبلی روی Source Lifeline و ارسال Message جاری را مشخص میکند. |
| Duration Observation | مدت رخداد را ثبت میکند. |
| Timing Constraint | حداقل و حداکثر زمان رسیدن Message به Target را مشخص میکند. |
| Timing Observation | نقطهٔ زمانی ارسال Message را ثبت میکند. |
© Sparx Systems 2026 — صفحهٔ 116 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 117General Ordering
در Sequence Diagram، Messageهایی که بالاتر قرار دارند زودتر رخ میدهند. در سناریوهای پیچیده، زماندار یا موازی میتوانید از General Ordering برای مشخصکردن ترتیب صریح دو رخداد استفاده کنید.
- روی Message اول کلیک کنید تا فلش کوچک General Ordering در کنار Anchor مبدأ نمایش داده شود.
- فلش را به نقطهٔ شروع Message بعدی بکشید.
- یک فلش Ordering میان دو رخداد ایجاد میشود.
یک Message میتواند بیش از یک Ordering ورودی یا خروجی داشته باشد.
عنصر تصویری اصلی — صفحه 117عنصر تصویری اصلی — صفحه 117عنصر تصویری اصلی — صفحه 117© Sparx Systems 2026 — صفحهٔ 117 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 118Asynchronous Signal Message
در Properties یک Message، مقدار Synch = Asynchronous و سپس Kind = Signal را انتخاب کنید. Message Synchronous نمیتواند از نوع Signal باشد و در آن حالت Kind غیرفعال است.
برای Signal Message، فیلدهای Return Value، Assign To و Operations غیرفعال میشوند. دکمهٔ Operations به دکمهٔ Signal تبدیل میشود تا بتوانید Message را به یک Signal موجود مرتبط کنید. فیلد Arguments برای مقداردهی Attributeهای Signal استفاده میشود. با دکمهٔ Signal، گفتوگوی «Select Signal» باز میشود.
© Sparx Systems 2026 — صفحهٔ 118 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 119نشانهگذاری Co-Region
Co-Region روشی کوتاه برای نمایش اجرای موازی در Sequence Diagram است و میتواند بهجای Combined Fragmentهای موازی بهکار رود. روی Connector راستکلیک و از گزینههای Co-Region یکی را انتخاب کنید:
- Start at head
- End at head
- Start at tail
- End at tail
عنصر تصویری اصلی — صفحه 119© Sparx Systems 2026 — صفحهٔ 119 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 120Sequence Diagram و Version Control
اگر Lifelineهای Sequence Diagram از Packageهای دیگر آمده باشند، Check-in/Check-out در Version Control میتواند باعث ازبینرفتن یا بازسازی نادرست Messageها شود؛ زیرا در هنگام Check-out عناصر حذف و دوباره Import میشوند و Messageهای وابسته همیشه بهدرستی بازیابی نمیشوند.
برای جلوگیری از این مشکل، هر Class را بهصورت Object Instance روی Sequence Diagram قرار دهید: Class را از Browser روی Diagram بکشید و در گفتوگوی Paste Element گزینهٔ as Instance of Element (Object) را انتخاب کنید. Object حاصل در Package والد همان Diagram ایجاد میشود و Messageها به این Objectهای محلی متصل میشوند.
برای این روش، Lifelineها باید Object باشند ــ که با UML نیز سازگارتر است ــ و در همان Package نمودار قرار گیرند. شکل منبع Packageهای P1 و P2 و Sequence Diagram ایمن در P2 را نشان میدهد.
یادداشت: همین ملاحظه برای Communication Diagram نیز صدق میکند.
عنصر تصویری اصلی — صفحه 120© Sparx Systems 2026 — صفحهٔ 120 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 121Activationهای عناصر Sequence
مستطیلهای Activation روی Lifeline نشان میدهند عنصر در چه بازهای فعال است. برای پنهانکردن آنها، از منوی Context نمودار گزینهٔ «Suppress Activations» را انتخاب کنید.
Enterprise Architect معمولاً Activationها را بهصورت خودکار محاسبه میکند، اما میتوانید آنها را از منوی Context Message و بخش «Activations» تغییر دهید. فلشهای مربوط به تنظیم Activation روی Connector در دسترساند.
گزینهٔ قدیمی Branch With Previous Message مربوط به نسخههای پیش از UML 2 است؛ در UML 2 استفاده از Fragmentها توصیه میشود. منبع نمونهای از Branch همزمان را نمایش میدهد.
عنصر تصویری اصلی — صفحه 121© Sparx Systems 2026 — صفحهٔ 121 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 122در نمونه، Messageهای 1.1 از Object5 به Object6 و 1.2 به Object7 ارسال میشوند. Message 2.1 به Object5 بازمیگردد. در حالت عادی ترتیب ظاهری آن را پس از 1.2 نشان میدهد، اما با «Branch with Previous» میتوان 2.1 را همزمان با 1.2 آغاز کرد؛ Anchor مبدأ آن در سطح Message قبلی قرار میگیرد. با برداشتن این گزینه، حالت قبلی بازمیگردد.
گزینهٔ «Start New Message Group» نیز یک دور یا سناریوی پردازش جدید را در شمارهگذاری Messageها آغاز میکند.
عنصر تصویری اصلی — صفحه 122عنصر تصویری اصلی — صفحه 122© Sparx Systems 2026 — صفحهٔ 122 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 123گزینههای Activation
| Extend Source Activation Down | Activation Source را بعد از نقطهٔ معمول ادامه میدهد و برای نشاندادن پردازش همزمان مفید است. |
|---|
| Extend Source Activation Up | آغاز Activation Source را به سمت بالا امتداد میدهد. |
|---|
| End Source Activation | Activation Source را پس از Message جاری خاتمه میدهد؛ برای مثال پس از Message Asynchronous که Source دیگر فعال نیست. |
|---|
| End Target Activation | Activation اجباری Target را پایان میدهد. |
|---|
| Raise / Lower Activation | در صورت مناسببودن Context، سطح Activation را بالا یا پایین میبرد؛ برای نمونه Self-Message بعدی ممکن است بهطور پیشفرض یک سطح پایینتر باشد و با Raise به سطح بالاتر منتقل شود. |
|---|
© Sparx Systems 2026 — صفحهٔ 123 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 124سطوح Activation در Lifeline
در Systemهای پیچیده، فراخوانیها میتوانند لایههای Activation متعددی ایجاد کنند. مثال منبع نشان میدهد یک Class، Sample A را فراخوانی میکند و Sample A نیز A1 را صدا میزند.
برای ایجاد Self-Message از Toolbox، صفحهٔ Interaction را پیدا کنید، آیکون Self-Message را انتخاب و روی Lifeline کلیک کنید. با فلش Raise Activation سطح Activation را افزایش دهید.
در ادامهٔ مثال، A1 در زمان اجرای A فراخوانی میشود. همچنین A2a از A2 و A2 از A فراخوانی میشوند، نه از A1؛ بنابراین سطحهای Activation باید مطابق این ساختار تنظیم شوند.
عنصر تصویری اصلی — صفحه 124عنصر تصویری اصلی — صفحه 124عنصر تصویری اصلی — صفحه 124عنصر تصویری اصلی — صفحه 124© Sparx Systems 2026 — صفحهٔ 124 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 125نمایش یا پنهانکردن Labelهای Message
- روی Message راستکلیک کنید.
- «Set Label Visibility» را انتخاب کنید.
- در گفتوگوی بازشده، Labelهایی را که باید نمایش داده شوند انتخاب و مواردی را که باید پنهان شوند پاک کنید.
- OK را بزنید.
© Sparx Systems 2026 — صفحهٔ 125 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 126تغییر حاشیهٔ بالای Sequence Diagram
حاشیهٔ بالای نمودار بهطور پیشفرض ۵۰ است. برای تغییر آن، روی پسزمینهٔ Diagram راستکلیک و «Set Top Margin» را انتخاب کنید. مقدار میتواند بین ۳۰ تا ۲۵۰ باشد. این فضا برای قرار دادن Note یا Text توضیحی در بالای نمودار مفید است.
© Sparx Systems 2026 — صفحهٔ 126 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 127عناصر Inline در Sequence Diagram
میتوانید Partها یا Portهای Child یک عنصر را بهصورت Inline زیر Class والد در Sequence Diagram نمایش دهید. منبع نمونهای از این ساختار را نشان میدهد.
- روی عنصر Sequence که دارای Port یا Part فرزند است راستکلیک کنید.
- «Features | Interaction Points» را انتخاب کنید.
- Features Window در زبانهٔ Interaction Points باز میشود.
- Checkbox عناصر فرزندی را که باید نمایش داده شوند فعال کنید و پنجره را ببندید.
عنصر تصویری اصلی — صفحه 127© Sparx Systems 2026 — صفحهٔ 127 از ۴۲۲ — ایجادشده با Enterprise Architect