UML 활동 다이어그램에서 중첩 된 조치를 어떻게 표시합니까?


16

이 질문은 매우 유사하다 이 하나 ,하지만 대답은 내 요구를 일치하지 않습니다. 특정 UML 도구 (Papyrus)에 중점을두고 있지만 내 질문은 UML에 대해 더 일반적입니다.

액티비티 다이어그램중첩 된 액션 을 나타내 려고하지만 일반적인 방법이 무엇인지 모르겠습니다. 아이디어는 다른 조치와 동일한 범위의 조치가 있지만 실행에서 더 복잡하다는 것입니다. 이 작업을 다른 수준과 동일한 수준으로 계속 표시하면서 실행에 대한 자세한 내용을 표시하고 싶습니다.

" 백홈 "활동의 종류를 보여주는 활동 다이어그램 인 아래 예 에서 중첩 된 조치가 Pet the cat조치에 있습니다. 이 다이어그램에는 또 다른 잠재적 인 오류가 있습니다. 질문 끝에있는 정오표를 참조하십시오.

마침내 집으로 돌아가다

구조화 된 노드를 사용했지만 올바른 방법인지 확실하지 않으므로 질문입니다. 상태 차트에서 동등한 상태는 복합 상태이지만 복합 작업에 대해서는 아무것도 찾을 수 없습니다. 구조화 된 노드에 관해서는 그것에 관한 몇 가지 문서를 읽은 후에도 여전히 어떻게 사용되어야하는지 알지 못 하므로이 다이어그램에 완전히 틀릴 수 있습니다.

또한 아래 이미지와 같이 삼지창 기호로 다른 하위 활동을 참조 할 가능성이 있다는 것을 알고 있지만 동일한 다이어그램에서 전체 정보를 원하기 때문에 내 요구와 일치하지 않습니다. 정보의 손실없이) :

삼지창 하위 활동

그렇다면 이러한 중첩 된 작업을 나타내는 표준 방법 은 무엇 입니까? 기본적으로 유효한 UML을 의미하며, 일반적으로 대부분의 UML 디자인 도구에서 볼 수 있으며 가능하면 가능합니다.

관련이없는 정오표 : 다이어그램에서 또 다른 문제가 있습니다. 동일한 동작 ( Scratch behind the ears) 을 나타내는 화살표 는 동작에 들어가기 전에 병합 노드로 이동해야합니다. 이 JOT 인용문을 포함하여 아래 주석을 참조하십시오 .


당신은 이것에 대해 묻지 않았지만 "귀 뒤에 긁는"행동은 결코 실행될 수 없다는 것을 지적하고 싶습니다. 왜 이것이 사실인지 아는 사람이 있습니까?
Jim L.

글쎄요.하지만 마침내 고양이의 성미가되기를 바랍니다. 마침내 내가 상사에게 준 다이어그램이 다음과 같이 보이기 때문입니다
Tim

그 이유는 두 경로의 토큰을 시작하기위한 조치에 두 경로의 토큰을 제공해야하기 때문입니다. 이는 결코 일어날 수없는 다른 것에서 비롯되므로 불가능합니다.
Jim L.

@JimL.이 상태에 들어가려면 두 가지 조건이 모두 사실이어야합니까? 그렇다면 내가 표현하려는 것을 표현하는 방법은 무엇입니까? 주 입구 전에 다이아몬드 노드를 병합?
Tim

우리는 국가가 아니라 행동에 대해 이야기하고 있습니다. 그러나이 문제를 해결하려면 병합이 필요합니다.
Jim L.

답변:


23

둘 다 "표준"입니다. UML 사양에 따른 첫 번째 그림은

구조화 된 활동 노드

StructuredActivityNode는 ActivityGroup이기도하며 (15.6 절 참조) 동작이 포함 된 ActivityNode 및 ActivityEdge에 의해 동작이 지정되는 동작입니다. 다른 종류의 ActivityGroup과 달리 StructuredActivityNode는 포함 된 ActivityNode 및 ActivityEdge를 소유하므로 노드 또는 에지는 하나의 StructuredActivityNode에만 직접 포함될 수 있습니다. StructuredActivityNode는 중첩 될 수 있지만 (Action은 StructuredActivityNode로도 ActivityNode이므로) 에지 또는 노드는 여러 개의 중첩 된 StructuredActivityNode에 간접적으로 포함될 수 있습니다.

활동 그룹

ActivityGoups는 ActivityNode 및 ActivityEdge에 대한 그룹화 구성입니다. 노드와 모서리는 둘 이상의 그룹에 속할 수 있습니다. 이 하위 절에서는 두 가지 구체적인 종류의 ActivityGroup, ActivityPartitions 및 InterruptibleActivityRegions를 설명합니다. StructuredActivityNodes는 세 번째 종류의 ActivityGroup이지만 Actions이며 Actions에 대한 조항 16의 16.11에 설명되어 있습니다.

두 번째 사진은

호출 조치

InvocationAction은 행동의 호출을 직간접 적으로 야기하는 행동이다 (13.3 항 참조). InvocationAction에는 작업 또는 동작을 호출하고 이전에 인스턴스화 된 동작을 시작하기위한 CallAction이 포함됩니다. 추가적인 종류의 InvocationAction을 사용하면 신호 및 기타 객체를 대상으로 전송하고 사용 가능한 수신기로 신호를 브로드 캐스트 할 수 있습니다.

두 경우의 주요 차이점은 재사용입니다. 처음에는 단일 장소 ( Pet the cat) 에서 약간의 복잡성이 있지만 두 번째 장소는 여러 장소에서 특정 작업을 재사용 할 때입니다. 그러나 단일 용도 인 경우에도 호출 변형을 사용하는 경향이 있습니다. 여기에 EA에서 dbl-click로 열리는 복합 다이어그램을 추가하여 해당 작업의 세부 정보를 표시합니다. 주요 흐름은 개요를 보여 주며 세부 정보가 필요한 경우 dbl을 클릭하면됩니다.

이제 EA에서 복합 다이어그램을 작성하는 것은 (다시) 다릅니다. 패키지 수준에서 AD를 만든 다음이를 호출 요소로 끌어 와야합니다. 이제 dbl을 클릭하면 임베디드 다이어그램이 열립니다.


답변 주셔서 감사합니다. 어떤 가능성을 사용할 때 더 자세한 정보를 줄 수 있습니까? UML 사양을 읽기가 매우 어렵습니다.
Tim

그것은 취침 강의가 아닙니다.
qwerty_so

다른 EAUI에 대한 설명으로 업데이트했습니다.
qwerty_so
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.