انواع Action، Variable Actions و Action Pin | UML و Enterprise Architect

انواع Action، Variable Actions و Action Pin

توسط admin | گروه مهندسی نرم افزار | 1405/05/19

نظرات 0

انواع Action، Variable Actions و Action Pin

عنوان اصلی
Unified Modeling Language (UML)
عنوان ترجمه‌شده
انواع Action، Variable Actions و Action Pin
مجموعه
Enterprise Architect — User Guide Series
نویسنده / سازمان
Sparx Systems
نسخه منبع
17.1
تاریخ منبع
2026-05-27
زبان اصلی
انگلیسی
وضعیت حقوقی
حق ترجمه و انتشار توسط کاربر تأیید شده است.
تاریخ ترجمه
2026-08-10 / ۱۴۰۵/۰۵/۱۹
اعتبار ترجمه
ترجمه با کمک هوش مصنوعی

فروش یا انتشار این ترجمه منوط به داشتن مجوز لازم از صاحب حقوق اثر است.

صفحهٔ منبع 143

Action Typeها

Actionها بسیار انعطاف‌پذیرند. Enterprise Architect طیف گسترده‌ای از Action Typeهای مشخص را پشتیبانی می‌کند که برای نمایش یا اجرای یک Object، Operation یا Behavior مجزا به‌کار می‌روند. بیشتر Actionها به‌صورت Rectangle با گوشه‌های گرد و حاوی Action Type و Action Name نمایش داده می‌شوند.

نشانه‌گذاری Action Element

برخی Action Typeها Notation اختصاصی دارند؛ از جمله:

  • AcceptEvent
  • AcceptEventTimer
  • CallBehavior
  • CallOperation
  • SendSignal

AcceptEvent Action

AcceptEvent Action یک Output Result Action Pin قابل انتخاب دارد و یک یا چند Trigger نوع Eventهای پذیرفته‌شده را مشخص می‌کنند. Triggerها را در زبانهٔ «Triggers» از Properties Window تعریف می‌کنید. در Simulation، AcceptEvent Action بدون Trigger شبیه‌سازی را روی همان Action متوقف می‌کند.

فیلدعمل
Nameنام Trigger را وارد کنید.
عنصر تصویری منبع — صفحه 143تصویر، نمودار یا آیکون اصلی موجود در صفحه 143 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 143
عنصر تصویری منبع — صفحه 143تصویر، نمودار یا آیکون اصلی موجود در صفحه 143 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 143
عنصر تصویری منبع — صفحه 143تصویر، نمودار یا آیکون اصلی موجود در صفحه 143 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 143
عنصر تصویری منبع — صفحه 143تصویر، نمودار یا آیکون اصلی موجود در صفحه 143 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 143
عنصر تصویری منبع — صفحه 143تصویر، نمودار یا آیکون اصلی موجود در صفحه 143 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 143
عنصر تصویری منبع — صفحه 143تصویر، نمودار یا آیکون اصلی موجود در صفحه 143 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 143
صفحهٔ منبع 144
Typeاز فهرست کشویی Type یکی از Call، Change، Signal یا Time را انتخاب کنید:
  • Call: Event یک CallEvent است که با Invoke کردن Operation، Messageای به Object مرتبط می‌فرستد.
  • Change: Event یک ChangeEvent است و Transition در نتیجهٔ تغییر مقدار یک Attribute رخ می‌دهد.
  • Signal: Event یک SignalEvent و متناظر با دریافت یک Asynchronous Signal Instance است.
  • Time: یک TimeEvent را مشخص می‌کند؛ یعنی لحظه‌ای در زمان.

Code Generation برای StateMachineها در حال حاضر فقط Trigger Eventهای Change و Time را پشتیبانی می‌کند و به Specification Value نیاز دارد. در Simulation، هر Trigger باید یک Signal داشته باشد؛ نتیجه Accept Signal خواهد بود.

SpecificationEvent آغازکنندهٔ Transition را مشخص کنید. برای AcceptEventTimer Action می‌توانید JavaScript Expressionای بنویسید که تعداد Tickهای انتظار را محاسبه کند.

SendSignal Action و BroadcastSignal Action

SendSignal Action یک Target ActionPin و یک Signal دارد. Signal می‌تواند Input ActionPinهایی داشته باشد که Attribute Parameterهای آن را به‌عنوان Argument Bind کنند. برای مثال:

::Sender: sig.binding_To_s1: Integer

در Model Simulation، SendSignal Action مقدار Argumentها را به Attributeهای Signal Instance ایجادشده منتقل می‌کند. Target ActionPin می‌تواند Object خالی داشته باشد تا Signal به Root فضای Simulation ارسال شود. اگر Target ActionPin وجود نداشته باشد Simulation روی Action متوقف می‌شود. اگر Target دارای Object باشد Signal به آن Object ارسال می‌شود. باید Pin Type مربوط به Target ActionPin را در Classifier آن Object تعیین کنید.

BroadcastSignal Action شبیه SendSignal Action است، با این تفاوت که Target ActionPin ندارد و در Simulation همیشه Signal را به Root داده‌های Simulation می‌فرستد.

Signal ارسالی و Argumentهای همراه را از زبانهٔ «Signal» در Properties Window تعریف می‌کنید.

فیلد/دکمهعمل
Signalروی دکمهٔ انتخاب کلیک کرده و Signal لازم را از «Select Signal» انتخاب کنید.
Attributeاز فهرست کشویی Attributeای را که قبلاً در Signal ساخته شده و Argumentها باید به آن مرتبط شوند انتخاب کنید.
Valueمقدار مناسب Attribute را وارد کنید.
AddActionPinهای لازم را از «Select Pin» انتخاب کنید تا Argumentهای Signal مشخص شوند. برای انتخاب بیش از یک Pin، Ctrl را نگه دارید.
Saveتغییرات را ذخیره کنید.
عنصر تصویری منبع — صفحه 144تصویر، نمودار یا آیکون اصلی موجود در صفحه 144 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 144
صفحهٔ منبع 145

CallBehavior

CallBehavior Action دارای Behaviorی مانند Activity و یک Result ActionPin قابل انتخاب برای نگهداری Return Value است. اگر Argument ActionPinها با Behavior Bind شده باشند، CallBehavior می‌تواند مقدار آن‌ها را به Behavior منتقل کند. در Simulation اگر Action هیچ Behavior نداشته باشد، Simulation متوقف می‌شود.

SendObject Action

SendObject Action یک Copy از Object را از Requesting ActionPin به Target ActionPin می‌فرستد. در Simulation باید هر دو ActionPin وجود داشته باشند؛ در غیر این صورت Simulation روی Action متوقف می‌شود.

Structural Feature Action

StructuralFeature Action روی یک Modeling Structural Feature مانند Port، Part یا Attribute متعلق به Activity یا Classifier یک Object عمل می‌کند؛ Feature موردنظر در خود Action مشخص می‌شود. Enterprise Architect این Typeها را پشتیبانی می‌کند:

Actionتوضیح
AddStructuralFeatureValueبه یک Object Input ActionPin برای Target Object و یک Result Output ActionPin برای نگهداری نتیجهٔ خواندن نیاز دارد. اگر Object Port در Runtime مقدار نداشته باشد، Process روی Action متوقف می‌شود. در طراحی Model، Port باید به Port یک Object یا Object Node یک Activity متصل باشد، Propertyها صحیح تنظیم شوند و Value Port برای دریافت Input Value هنگام اجرای Action آماده باشد. Result ActionPin می‌تواند به Input Consume Port یا ActionPin متصل شود؛ برای مثال به‌عنوان Input Value در WriteStructuralFeature Action بعدی.
ClearStructuralFeatureمقدار منفرد یک Structural Attribute یا Structural Port متعلق به Object یا Activity را پاک می‌کند و مقدار Structural Feature را null قرار می‌دهد.
ReadStructuralFeatureشبیه AddStructuralFeatureValue است، با این تفاوت که Value Port لازم نیست. در Simulation، اگر Port متعلق به Object در Runtime مقدار نداشته باشد، Simulation روی Action متوقف می‌شود.
RemoveStructuralFeatureValueشبیه ClearStructuralFeature است اما از Value ActionPin برای دریافت مقدار استفاده می‌کند؛ اگر مقدار با Structural Feature مشخص‌شده یکسان باشد آن را null می‌کند، و اگر برابر نباشد مقدار Feature پاک نمی‌شود.
WriteStructuralFeatureاز نظر رفتار با AddStructuralFeatureValue یکسان است. در Simulation، Value Port باید برای دریافت Input Value هنگام اجرای Action تنظیم شده باشد.

تنظیم StructuralFeature

صفحهٔ منبع 146
  1. روی Action راست‌کلیک و Advanced | Set Structural Feature: Add را انتخاب کنید.
  2. در گفت‌وگوی «Select Property» Feature مناسب را Browse/Search کرده و دوبارکلیک کنید. نام و Location آن در فیلد structuralFeature از «Set Structural Feature» نمایش داده می‌شود.
  3. OK را بزنید.

ReadSelf

ReadSelf Action نام Host Object خود را در Result Port می‌خواند. باید یک Output ActionPin برای Result تنظیم کنید. Action باید درون Classای باشد که در Runtime Instance می‌شود. هنگامی که Simulation از Action عبور می‌کند، نام Instance آن Class در Result Port قرار می‌گیرد.

ReadSelf یکی از گروه Object Actionها، همراه با CreateObject و DestroyObject، است.

عنصر تصویری منبع — صفحه 146تصویر، نمودار یا آیکون اصلی موجود در صفحه 146 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 146
صفحهٔ منبع 147

Variable Actionها

Variable Actionها ارتباط نزدیکی با Simulation رفتار Objectها و Actionهای اعمال‌شده بر آن‌ها در یک Process دارند. آن‌ها یک Association Variable به شکل Tagged Value با نام variable دارند که Value آن نام یک Object در Runtime است:

sim.ObjectName

Variable Action می‌تواند Variable را نه‌فقط به‌صورت Object، بلکه به‌صورت Property آن Object، مانند Attribute یا Port، ارائه دهد. برای مثال:

sim.a.a1

پارامتر a.a1 می‌تواند Integer Value داشته باشد.

Variable Actionها شامل ReadVariable، WriteVariable، ClearVariable، AddVariableValue و RemoveVariable هستند.

ReadVariable

ReadVariable Action یک Result Action Pin به‌عنوان Output Port دارد. مقدار Port نتیجه‌ای است که خوانده می‌شود و Copyای از Variable است؛ بنابراین تغییرات بعدی Variable روی مقدار خوانده‌شده اثر ندارد. برای نمونه، اگر sim.Object.a مقدار 3 داشته باشد و پس از خواندن به 5 تغییر کند، مقدار خوانده‌شده همچنان 3 است.

Before reading:
sim.Object.a = 3;
sim.Action1.result = null;

After reading:
sim.Object.a = 3;
sim.Action1.result = 3;

After a change in the value of the variable:
sim.Object.a = 5;
sim.Action2.value = 3;

در این مثال، Value یک Port از Action2 است که با Object Flow به Result Port از Action1 متصل شده است.

WriteVariable

این Action یک Value Action Pin به‌عنوان Input Port دارد. مقدار Port در Variable نوشته می‌شود. Result Value یک Copy از Variable موجود در Value Port است.

ClearVariable

این Action همهٔ Valueهای یک Variable را پاک می‌کند؛ Variable می‌تواند Object یا Value باشد.

صفحهٔ منبع 148

AddVariableValue

این Action عملاً همان WriteVariable Action است، زیرا Variableهای فعلی Simulation از چند مقدار پشتیبانی نمی‌کنند.

RemoveVariableValue

این Action عملاً همان ClearVariable Action است، زیرا Variableهای فعلی Simulation از چند مقدار پشتیبانی نمی‌کنند.

صفحهٔ منبع 149

Pre/Post Conditionهای محلی

Actionها را می‌توان با Noteهای Pre-condition و Post-condition دقیق‌تر تعریف کرد تا ورود به Action و خروج از آن Constraint شود.

اتصال Constraint به Action

  1. روی Action راست‌کلیک و New Child Element | Attach Constraint را انتخاب کنید. یک Note روی Diagram ساخته و به Action متصل می‌شود.
  2. روی Note راست‌کلیک و «View Properties» را انتخاب کنید؛ گفت‌وگوی «Constraint» باز می‌شود.
  3. در «Constraint Type» Type موردنیاز را از فهرست انتخاب کنید.
  4. در فیلد «Constraint» متن Constraint را وارد کنید.
  5. OK را بزنید.
عنصر تصویری منبع — صفحه 149تصویر، نمودار یا آیکون اصلی موجود در صفحه 149 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 149
صفحهٔ منبع 150

Class Operationها در Diagramها

Operationهای Class را می‌توان با CallOperation Action در هر Diagram، مانند Activity، Custom یا Analysis، نمایش داد. وقتی Operation به‌صورت Action نشان داده می‌شود، Notation عنصر نام Operation را با پیشوند نام Class مبدأ نمایش می‌دهد.

افزودن Operation به Diagram

  1. Diagram مقصد را باز کنید.
  2. در Browser Window، Class را باز کرده و Operation موردنظر را پیدا کنید.
  3. Operation را روی Diagram Drag کنید.
  4. پس از افزودن، CallOperation Action با نام Class و Operation نمایش داده می‌شود.

تغییر Operation مرجع Action

  1. روی Action راست‌کلیک و Advanced | Set Operation را انتخاب کنید؛ گفت‌وگوی «Set Operation» باز می‌شود.
  2. در صورت نیاز در «Go To Namespace» Model حاوی Operation را انتخاب و Operation را Browse کنید.
  3. وقتی Operation را یافتید، دوبارکلیک کنید. Action با نام Classifier و Operation جدید به‌روزرسانی می‌شود.
عنصر تصویری منبع — صفحه 150تصویر، نمودار یا آیکون اصلی موجود در صفحه 150 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 150
عنصر تصویری منبع — صفحه 150تصویر، نمودار یا آیکون اصلی موجود در صفحه 150 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 150
عنصر تصویری منبع — صفحه 150تصویر، نمودار یا آیکون اصلی موجود در صفحه 150 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 150
صفحهٔ منبع 151

یادداشت‌ها

  • برای یافتن Operation مبدأ Action در Browser Window، روی Action راست‌کلیک و Find | Locate Operation in Project Browser را انتخاب کنید.
  • برای نمایش Code تولیدشدهٔ قبلی برای Class حاوی Operation، روی Action کلیک و Ctrl+E یا F12 را فشار دهید. Code Editor با Code تولیدشده باز می‌شود؛ اگر Code تولید نشده باشد، Editor نمایش داده نمی‌شود.
  • در Simulation، CallOperation Action باید Calling Operation و Target Object ActionPin داشته باشد و Operation متعلق به Object دریافتی از Target ActionPin باشد؛ در غیر این صورت Simulation روی Action متوقف می‌شود.
  • اگر Property «Name» در CallOperation خالی باشد، نام Class Operation به‌جای آن نمایش داده می‌شود. اگر نام Operation تغییر کند، نام نمایش‌داده‌شده نیز به‌روزرسانی می‌شود.
صفحهٔ منبع 152

Action Pin

توضیح

Action Pin برای تعریف Data Valueهایی است که وارد Action یا از آن خارج می‌شوند. Input Pin مقدارها را به Action می‌دهد و Output Pin نتیجه‌های Action را نگهداری می‌کند. منبع نمونه‌ای از اتصال دو Action با Action Pin را نشان می‌دهد.

Action Pin را می‌توان بیشتر مشخص کرد؛ برای مثال به‌عنوان Exception Parameter، Stream یا State. مرتبط‌کردن State با Pin، State مقدارهای Input یا Output را تعیین می‌کند؛ مثلاً Pin می‌تواند «Orders» نام داشته باشد و State آن «Validated» یا «Canceled» باشد.

برای افزودن Action Pin، روی Action راست‌کلیک و New Child Element | Action Pin را انتخاب کنید. همچنین می‌توانید Action Pinهای تخصصی را Assign کنید. Properties Window مربوط به Action Pin یک زبانهٔ «Pin» برای تعریف رفتارهای خاص Pin دارد.

Pin به‌عنوان Argument برای Call Behavior و Call Operation Action استفاده می‌شود؛ نام و Parameterهای Pin در زبانهٔ «Arguments» از Properties Window مربوط به Action نمایش داده می‌شوند. اگر Action با Behavior معتبر مرتبط باشد، Parameterهای Behavior در فهرست «Parameter» برای Map یک‌به‌یک Argument به Parameter ظاهر می‌شوند. فیلدهای «Argument» در زبانهٔ Pin فقط برای Pinهای متعلق به Call Action و تنها زمانی فعال‌اند که Action به Behavior معتبر با Parameterهای معتبر مرتبط باشد.

مشاهدهٔ این رفتار

  1. یک Activity بسازید و به آن Activity Parameter اضافه کنید: New Child Element | Activity Parameter.
  2. یک Action بسازید و Kind آن را در زبانهٔ Action روی CallBehavior بگذارید.
  3. Activity را Classifier Action قرار دهید: در زبانهٔ Element و بخش Advanced دکمهٔ Browse مربوط به Classifier را بزنید و Activity را انتخاب کنید.
  4. Features Window در زبانهٔ Interaction Points باز می‌شود. «Show Owned/Inherited» را فعال کنید؛ Activity Parameter در Defined Elements ظاهر می‌شود. Checkbox آن را انتخاب کنید.
  5. اکنون Action یک Action Pin برای Argument دارد و Activity Parameter به‌عنوان Parameter آن Argument استفاده می‌شود.

Property objectState مربوط به Action Pin را نیز می‌توان در زبانهٔ Pin تغییر داد.

عنصر تصویری منبع — صفحه 152تصویر، نمودار یا آیکون اصلی موجود در صفحه 152 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 152
عنصر تصویری منبع — صفحه 152تصویر، نمودار یا آیکون اصلی موجود در صفحه 152 سند؛ برای حفظ وفاداری بصری به‌صورت داده درون‌خطی درج شده است.
عنصر تصویری اصلی — صفحه 152
صفحهٔ منبع 153

Assign کردن Action Pinها

علاوه بر افزودن Action Pin به هر Action، می‌توانید Input/Output Action Pinهای تخصصی را به Actionهایی با Type مشخص ــ یعنی غیر از Basic یا Atomic ــ Assign کنید. این Pinها Propertyهای مختلف Action را نشان می‌دهند. آن‌ها تا زمانی که قبلاً به Diagram اضافه نشده باشند به‌صورت Structure قابل مشاهده نیستند، اما در Browser Window زیر Action به‌عنوان Property فهرست می‌شوند.

فقط Pinهایی قابل Assign هستند که قبلاً به Action اضافه یا Assign شده‌اند، یا همان لحظه برای Assign شدن ساخته می‌شوند.

Assign کردن Action Pin به Action

  1. روی Action در Diagram کلیک کنید، در Properties Window زبانهٔ Action را باز کنید، Kind درست را انتخاب و Save کنید.
  2. به زبانهٔ Element بروید و گروه Propertyهای Stereotype را انتخاب کنید. بسته به Action Type، فیلدهای متفاوتی ظاهر می‌شود. آن‌ها را با نام Object مناسب، Browse کردن Object یا Checkbox تکمیل کنید. در Browser Screen می‌توانید ActionPin موجود را Assign کنید یا با Add New یک Action Pin جدید ساخته و Assign کنید.
  3. Action Pinها روی Diagram نمایش داده نمی‌شوند اما زیر Action در Browser Window دیده می‌شوند. OK را بزنید تا به Properties Window بازگردید.

امتیاز کاربران به این مقاله

☆☆☆☆☆

0 نفر امتیاز داده اند. میانگین: 0.0 از 5

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

0 / 500

اطلاعات تماس

  • آدرس:اصفهان-خیابان ام کلثوم غربی - بعد خیابان تخم چی - بیست متر بعد از پیتزا ننه شب - کوچه تعمیر گاه سمار زغالی - پلاک 354 - درب مشکی - طبقه هفتم
  • آدرس ایمیل:najafzade@gmail.com
  • وب سایت:http://www.a00b.com/
  • تلفن ثابت:(+98)9131253620
  • تلفن همراه:09131253620