صفحهٔ منبع 231Structured Activity
Structured Activity در Activity Diagram استفاده میشود. این عنصر Activity Nodeای است که میتواند Subordinate Nodeها را بهعنوان Activity Group مستقل داشته باشد. با Checkbox «Must Isolate» میتوانید تضمین کنید Activityهای دیگر یا Side Effectهای آنها در Processing این Activity دخالت نکنند. Enterprise Architect چند نوع Basic و Specialized Structured Activity دارد.
دسترسی
Design > Diagram > Toolbox و جستجوی «Activity»، یا میانبر Ctrl+Shift+3. Toolbox را نیز میتوان از Iconهای سمت چپ Caption Bar نمایش/پنهان کرد.
ایجاد Structured Activity
وقتی آیکون Structured Activity را روی Diagram Drag میکنید، منوی کوتاهی با گزینههای Loop Node، Conditional Node و Other باز میشود. دو گزینهٔ نخست همان Type را میسازند؛ Other گفتوگوی «New Structured Activity» را باز میکند و از پنج Type قابل انتخاب است.
| Type | توضیح |
|---|
| Simple Composite Activity | Composite Activity با Child Activity Diagram میسازد. |
| Loop Node | Sequenceای از Action/Activity برای تکرار را نمایش میدهد. |
| Conditional Node | ساختاری از Action/Activity که Choice تعیین میکند کدام اجرا شود. |
| Structured Activity Node | Arrangement مرتب از Executable Activity Nodeها مانند Action، Decision و Merge، شامل Branch و Nesting؛ Base Type سایر Structured Activityها است. |
عنصر تصویری اصلی — صفحه 231عنصر تصویری اصلی — صفحه 231عنصر تصویری اصلی — صفحه 231© Sparx Systems 2026 — صفحهٔ 231 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 232Sequential Node: Arrangement ترتیبی از Executable Activity Nodeها را نشان میدهد.
عنصر تصویری اصلی — صفحه 232© Sparx Systems 2026 — صفحهٔ 232 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 233Structured Node
Structured Activity Node در Diagram Border شکسته دارد. میتوانید عناصر دیگری را درون Structured Node قرار دهید، از جمله Conditional، Loop و Structured Nodeهای دیگر.
مشخصات OMG UML
طبق UML 2.5.1 صفحهٔ 476، StructuredActivityNode یک Action و همزمان ActivityGroup است و Behavior آن توسط ActivityNodeها و ActivityEdgeهای درونش مشخص میشود. برخلاف سایر ActivityGroupها، Nodeها و Edgeهای داخلش را Own میکند؛ بنابراین هر Node یا Edge فقط مستقیماً در یک StructuredActivityNode قرار میگیرد. StructuredActivityNodeها میتوانند تودرتو باشند و یک Node/Edge میتواند غیرمستقیم در چند StructuredActivityNode محصور باشد.
عنصر تصویری اصلی — صفحه 233© Sparx Systems 2026 — صفحهٔ 233 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 234Sequential Node
Sequential Activity Node در Diagram Border شکسته دارد و میتواند عناصر تودرتو داشته باشد که Sequence Actionها را تعریف میکنند. Sequential Node در Context Menu بهعنوان Composite Flag میشود؛ با افزودن Child Diagram، عنصر به Composite Activity ساده تبدیل میشود.
مشخصات OMG UML
طبق UML 2.5.1 صفحهٔ 480، SequenceNode Ordering کامل و ترتیبی همهٔ ActivityNodeهای داخلش را که باید ExecutableNode باشند تعریف میکند. هنگام اجرای SequenceNode، Nodeها به ترتیب اجرا میشوند. ActivityEdge نیز میتواند داخل Node یا وارد/خارج آن شود. Semantics معادل StructuredActivityNode عمومی با ControlFlowهای اضافه برای ترتیب Nodeها است.
عنصر تصویری اصلی — صفحه 234© Sparx Systems 2026 — صفحهٔ 234 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 235Loop Node
Loop Structured Activity Node برای تعریف Loop و معمولاً متناظر با While، Repeat یا For استفاده میشود. هر Loop Node سه Partition دارد:
- Setup: معمولاً Variableهای موردنیاز Exit Condition را مقداردهی اولیه میکند و یکبار هنگام ورود اجرا میشود.
- Test: Exit Condition Loop را تعریف میکند.
- Body: Actionهایی که تا False شدن Test تکرار میشوند.
Result آخرین اجرای Test یا Body پس از پایان Loop در دسترس است. برای ساخت Loop Node، آیکون Structured Activity را از Toolbox انتخاب و Loop Node را برگزینید. Actionها را در Partitionهای Setup، Test و Body قرار دهید. عنصرها در بالا-چپ Partition Align میشوند و Resize ساختار را حفظ میکند؛ اگر بیش از حد کوچک شود به Best Fit بازمیگردد.
عنصر تصویری اصلی — صفحه 235© Sparx Systems 2026 — صفحهٔ 235 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 236تعریف Loop Node
- از صفحهٔ Activity در Toolbox آیکون Structured Activity را روی Diagram بکشید.
- «Loop Node» را انتخاب کنید. Loop Node و Properties آن نمایش داده میشود.
- Propertyهای عمومی را تکمیل و Properties را ببندید.
- Properties Window را باز و زبانهٔ «Loop» را انتخاب کنید.
عنصر تصویری اصلی — صفحه 236© Sparx Systems 2026 — صفحهٔ 236 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 237- Checkboxهای زیر را تنظیم کنید:
- Must Isolate: Concurrency را تعیین میکند؛ Objectهای داخل Node خارج از آن قابل استفاده نیستند.
- Tested First: اگر فعال باشد Loop از نوع For/While و اگر غیرفعال باشد Repeat Until است.
- برای فیلدهای Decider، Loop Variable Input، Loop Variable، Body Output و Result، دکمهٔ Add را بزنید و Action Pin مناسب را انتخاب کنید. Decider یک Output Pin در Test است که Value آن تعیین میکند Body اجرا شود یا خیر. Select Pins فقط Input Pin را برای Loop Variable Input و Output Pin را برای سایر فیلدها نشان میدهد. با Add New میتوان Pin جدید ساخت.
- در پنل Nodes، Radio Buttonهای Setup/Test/Body را برای نمایش عناصر هر Partition انتخاب کنید. عنصر باید کامل زیر Edge بالای Partition باشد؛ اگر با Partition بالا Overlap کند متعلق به Partition بالا محسوب میشود.
- OK را برای Save بزنید.
- روی Node راستکلیک و Features | Interaction Points را انتخاب کنید. در Features Window Checkbox Interaction Pointها را فعال کنید تا Action Pinها روی Diagram دیده شوند.
مشخصات OMG UML
LoopNode یک StructuredActivityNode برای Iterative Loop است و شامل setupPart، test و bodyPart است. هر ExecutableNode داخل LoopNode باید در یکی از این Sectionها باشد. هنگام شروع، InitialNodeها فعال میشوند اما سایر ExecutableNodeها فقط وقتی Section خود اجرا شود Enable میشوند. Token Offerهای Section غیرفعال Pending میمانند تا آن Section بعداً اجرا شود.
عنصر تصویری اصلی — صفحه 237© Sparx Systems 2026 — صفحهٔ 237 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 238اگر ExecutableNode در اجرای بعدی Section خود فعال شود، میتواند Offerهای Pending را بپذیرد.
© Sparx Systems 2026 — صفحهٔ 238 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 239Conditional Node
Conditional Structured Activity Node معادل Modeling سازهٔ برنامهنویسی If-Then-Else است. سادهترین حالت یک Clause شامل Test Partition و Body Partition دارد. اگر Test True باشد Body اجرا میشود. میتوان چند Clause داشت؛ اگر Test یک Clause False باشد Body آن نادیده گرفته و Clause بعدی بررسی میشود.
هر Clause یک Decider ActionPin برای نتیجهٔ Test و Body Output ActionPin برای نتیجهٔ Body دارد. خود Conditional Node نیز Result ActionPin دارد که Output نخستین Body اجراشده را ارائه میکند.
عناصر Activity را از Toolbox داخل Partitionها قرار دهید. Layout هنگام Resize حفظ میشود و عنصر در Size خیلی کوچک به Best Fit بازمیگردد. هنگام ساخت، Properties باز میشود و Properties Window زبانهٔ «Condition» نیز دارد. در پنل Result با Add یک Action Pin برای Result انتخاب کنید.
یک Conditional Node بهطور خودکار یک Clause با Test، Body، Decider و Body Output دارد. Clauseهای بیشتری میتوان افزود و برای هرکدام Pinهای Decider و Body Output تعیین کرد. Select Pin فقط Output Pinهای مناسب را نشان میدهد و Add New میتواند Pin جدید بسازد. برای Result و Body Output میتوان از «Find in Project Browser» محل Pin را یافت. پنل Nodes بهطور پیشفرض عناصر Test را نشان میدهد؛ با Radio Button Body عناصر Body را میبینید. عنصر باید کاملاً در Body باشد؛ هر Overlap با Test باعث میشود متعلق به Test محسوب شود.
افزودن/حذف Clause
برای افزودن Clause دکمهٔ Add زیر فهرست Clauseها را بزنید. Clause جدید درج شده، Predecessor/Successor مشخص میشود و فیلدهای Decider/Body Output برای ورود داده پاک میشوند. Partitionهای Test و Body جدید فوراً روی Element افزوده میشوند.
عنصر تصویری اصلی — صفحه 239© Sparx Systems 2026 — صفحهٔ 239 از ۴۲۲ — ایجادشده با Enterprise Architect
صفحهٔ منبع 240برای حذف Clause، آن را انتخاب و Delete را بزنید. Partitionهای متناظر و Activity Elementهای داخل آن فوراً حذف میشوند. حذف Clause میانی شمارهگذاری Clauseهای بعدی را بهروزرسانی میکند.
مشخصات OMG UML
ConditionalNode یک StructuredActivityNode است که یکی از چند Collection جایگزین ExecutableNode را برای اجرا انتخاب میکند. شامل یک یا چند Clause است؛ هر Clause یک Branch با Test Section و Body Section دارد که Subsetهای جدا از ExecutableNodeها هستند. هر ExecutableNode داخل ConditionalNode باید دقیقاً در Test یا Body یکی از Clauseها قرار گیرد.
© Sparx Systems 2026 — صفحهٔ 240 از ۴۲۲ — ایجادشده با Enterprise Architect