문제

여러 응용 프로그램이 서비스 버스를 통해 통신하는 방법을 명확하게 다이어그램으로 표시하는 방법을 찾고 있습니다.지금까지 생각해 낸 것 중 최고는 시퀀스 다이어그램이지만 저는 그게 마음에 들지 않습니다.시퀀스 다이어그램은 필연적으로 어떤 종류의 시퀀스와 관련이 있으며, 그것은 내가 원하는 것이 아닙니다.또한 모든 서비스는 서비스 버스와 통신하고 시퀀스 다이어그램은 각 서비스를 별도의 열에 배치하기 때문에 서비스 수가 증가할수록 겹치는 화살표가 많이 생깁니다.

예를 들어, 4개의 서비스 FOO, BAR, BAZQUX가 있다고 가정해 보겠습니다.

  • FOO는 publish 및 regen 유형의 메시지를 게시합니다.
  • BAR requeue 유형의 메시지를 게시합니다.
  • BAZ는 publish , regen 및 requeue 유형의 메시지를 구독하고 전송 유형의 메시지를 게시합니다.
  • QUX전송 유형의 메시지를 구독합니다.
  • 모든 서비스는 언제든지 모든 메시지 유형을 게시할 수 있습니다(암시적인 순서는 없음).

이 정보를 명확하고 모호하지 않게 나타내려면 어떤 종류의 다이어그램을 사용해야 합니까?

지금까지 생각해낸 최고는 다음과 같습니다. Sequence diagram

도움이 되었습니까?

해결책

여러 애플리케이션이 서비스 버스를 통해 통신하는 방법을 명확하게 다이어그램으로 표시하는 방법을 찾고 있습니다.

정말 대단합니다.불행히도 복잡한 구성에는 가능하지 않다고 생각합니다.간단한 시나리오에 대한 시퀀스 다이어그램은 아마도 다른 어떤 것 못지않게 훌륭할 것입니다.

버스의 구성 요소는 메시지를 게시하고 구독합니다.일부 메시지는 인과 관계가 있어 프로토콜을 형성할 수 있습니다.버스에서 둘 이상의 프로토콜이 작동하는 경우 이를 그래픽으로, 특히 인과 관계를 표시하는 것은 어렵습니다.

전기 버스 다이어그램은 오랫동안 사용되어 왔습니다.

electrical bus diagram

그러나 그것들은 불연속적인 신호가 아닌 일정한 양의 상품(전력)을 다룬다.

각 구성 요소(및 해당하는 경우 하위 채널/주제 구조)에서 보내고(오른쪽에) 메시지를 받고(왼쪽에) 표시하는 것을 좋아하지만 가장 단순한 시나리오를 제외한 모든 경우에는 다이어그램이 빠르게 복잡해져서 거의 쓸모가 없습니다..

enter image description here

이제 좀 더 근본적인 질문으로 돌아가 보겠습니다. 다이어그램의 목적은 무엇입니까?무엇을 보여주려고 합니까?

구성 요소와 메시지 간의 인과 관계를 표시하려는 경우 시퀀스 다이어그램(또는 이와 동등한 것)을 사용하여 한 번에 하나의 프로토콜을 다이어그램으로 만드는 것이 좋습니다.

참조용으로 프로토콜만 표시하고 싶다면 각 구성 요소에서 주고받는 메시지를 넣는 것으로 충분한 문서가 되어야 하지만 인과 관계/시간적 관계는 손실됩니다.

행운을 빕니다. 더 나은 것을 찾거나 발명하면 알려주세요!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 softwareengineering.stackexchange
scroll top