2014-12-18 5 views
1

나는 상태 다이어그램에서 가드와 이벤트의 차이를 실제로 볼 수 없다. 내가 볼 수있는 것은 이벤트가 시작되었거나 가드와 같은 것임을 알 수있다. 단지 조건 일 뿐이지 만 나는이 두 용어가 연관되어 있거나 분리되어 있는지, 어떤 것이 필요하며 어느 것이 선택인지 또는 그 차이가 구문 사이에 존재 하는지를 모른다는 것보다 더 중대하다고 생각한다. 대괄호없이 이벤트를 작성하면이 작업을 도와 줄 수 있다면 좋을 것입니다.이벤트와 가드 uml 모델링의 차이점

미리 감사드립니다.

답변

3

이벤트가 시작되었습니다 행동이나 뭔가

닫기이다 뭔가 죄송합니다 맞춤법이 틀린 경우]. 사건은 단순히 일어난 일입니다. 역에 도착하는 기차, 전등 스위치가 켜지거나, (계절에 따라) 산타가 굴뚝을 터뜨리는 것처럼.

가드는 조건

정확히입니다. 따라서 상태 전환이 발생하려면 이벤트가 발생해야하며 가드가 true로 평가되어야합니다. 따라서 "선물을 남기는"상태로 전환하려면 산타가 도착하고 (이벤트) 굴뚝이 차단 해제되어야합니다 (가드). 하나는 필요하고

는 기본적으로 모든 전환 이벤트를 필요로

선택 사항입니다. 가드가 필요하지 않습니다. 스위치가 켜져있을 때 그래서 빛이 '조명'상태로 전환 할 수 없습니다. 필요를 가드를 위해.

를 이벤트는 괄호

없이 작성되어 있음. 이벤트 더 괄호가 없습니다, (하나가 존재하는 경우), 가드 대괄호에 배치된다. 따라서

Santa Arrives [chimney unblocked] 

제 H. 상태도

+0

그냥 내 교수가 이것을 읽을 수 있다면! 당신은 내 하루 형제님께 감사드립니다. –

+0

많은 가이드가 올바른 UML이 무엇인지 설명합니다. 여기서는 유효성 대신 표현의 목적과 의미를 찾고 있습니다. 이 놀라운 대답에 감사드립니다. – Tim

2

는 이벤트 사이의 전이를 일으키는 것입니다 상태. 간단한 예로, Door에는 Open과 Closed의 두 가지 상태가 있습니다. ReadIDCard는 현재 상태를 Closed에서 Open으로 전환하는 이벤트입니다.

가드 조건은 수신 객체가 이벤트에 응답해야하는지 여부를 결정합니다. 예를 들어, [ 'AuthorizedID'] 가드는 상태를 Open으로 변경하기 전에 카드 ID가 승인되었는지 확인합니다. 보호 상태가없는 경우 ReadIDCard는 항상 문을 엽니 다.

조금 더 설명하기 위해 Door 상태가 Open으로 변경되면 Timer 이벤트 (예 : 5 초를 기다린 후)가 Door to Closed 상태를 다시 변경합니다. 이 경우 가드 조건이 없습니다. 출입구에 서있는 누군가는 부숴졌습니다. :)

그래서 용어가 다릅니다. 한 상태에서 다른 상태로 전환되는 일종의 사건이 항상 있습니다. 가드 조건은 선택 사항입니다. 다이어그램의 관점에서 볼 때 이벤트 및 보호 조건을 추가할지 여부는 선택 사항입니다.

+0

나는 지난 밤에 이것을 썼다. 그리고 그것을 게시하는 것을 잊었다. sfinnie의 대답이 그 일을합니다. :) – BobRodes

+0

고맙습니다. RobRodes –

관련 문제