2012-01-13 3 views
-1

시퀀스 다이어그램에 대해 읽었으며 자바 코드를 포함하는 연습 (객관식)을 발견했으며 다소 혼란 스럽습니다 ... 올바른 옵션을 선택하도록 도울 수 있습니까? 나를 위해 그것을 명확하게하기 위해서? 나는 그것이 당신을 위해 간단 할 것이라고 생각합니다. 미리 감사드립니다. Sequence Diagrams and Java시퀀스 다이어그램 및 Java

당신은 어떤 대답을 선택할 것 :

여기 (ImageShack에서 호스팅) 이미지에 직접 링크입니다?

+1

귀하의 생각 과정을 설명하고 추측하면 우리가 귀하를 도울 수 있습니다. –

+0

글쎄, 클래스 A에 대해서는 함수 s()와 함수 t()에 집중해야합니다. 함수 s()는 다음과 같습니다. function s() {dosomething; d.r(); }. 하지만 함수 t()에 대해서는 의심 스럽습니다. –

답변

0

이 다이어그램은 a.t()를 호출하는 d.u()를 호출하는 c.w()를 호출하는 a.s()를 호출하는 프로세스를 보여줍니다.

그래서 functions()에는 c.w()가 포함되어야합니다.

로직을 나머지 화살표에 적용 할 수 있습니까?

+0

나머지 화살표가 표시됩니다. d.noName(); c.x(); a.r() –

+0

그러나 이것이 어떻게 알아내는 데 도움이됩니까? –

+0

아래 두 개의 화살표는 c가 ar()에 대한 호출을 포함하는 x()라는 함수를 가져야 함을 보여줍니다 ... –

0

하나의 힌트 : 오른쪽에 제공된 클래스 다이어그램은 실제로 답을 찾는 것과 관련이 없습니다.

또 다른 힌트 : d에서 a.t()까지의 호출은 다른 메소드를 호출하는 대신 반환한다는 점에서 다른 호출과 다릅니다.

설명 : Java에서 모든 메소드 호출은 시스템이 조기에 종료되지 않는 한 궁극적으로 예외를 반환하거나 throw합니다. 이것은이 시퀀스 다이어그램을 조금 이상하게 만든다 - 위에서 언급 한 메소드 호출 중 하나만 반환하도록 표시된다. 다이어그램의 나머지 부분에서는 클래스 사이에서 앞뒤로 메서드 호출을 연결하는 방법을 보여줍니다. 이것은 Java에서 클래스가 공동으로 작업하는 일반적인 방법이 아니며 UML에 대한 이해를 테스트하기위한 목적으로 만 구성된 것 같습니다.

+0

at()에서 d 로의 레이블이없는 화살표가 호출 대신 리턴 메시지 인 경우 shouldn 화살표는 점선으로 표시되고 du()의 활성화 블록은 cx() 호출까지 계속 확장됩니까? –

+1

UML의 방언이 너무 많아서 공식 표기법을 실제로 추적하지 못하므로 절대적으로 적합 할 수 있습니다. 그러나이 다이어그램과 제공된 코드 옵션을 살펴보면 모든 호출이 단일 스레드의 정규 블로킹 호출 인 것처럼 보입니다. 이 문맥에서 나는 레이블이없는 호출을 리턴으로 해석 할 수 있습니다. 또한 블로킹 호출이 이루어진 후에 d.u()의 활성화 블록을 계속 진행하는 것이 약간 이상하지 않습니까? 블록은 t()가 반환되기 전에 이벤트를 처리 할 수 ​​없습니다. –

+0

이것이 다이어그램에서 의미가있는 유일한 솔루션이라고 생각합니다. –

관련 문제