[UML] System Sequence Diagram
System Sequence Diagram은 System Sequence를 표현하기 위한 Diagram입니다. 무슨 말이냐 하면, System을 Black-Box로 두고 외부 Actor의 이벤트에 대해 현재 디자인 중인 시스템이 어떻게 반응하는지를 표현하기 위함입니다. Black-Box이기 때문에 내부적인 구조는 전혀 고려하지 않습니다. Input과 Output만 고려하는 것입니다. Output이 나오는 절차는 전혀 고려하지 않죠. 잘 생각해보시면 가장 중요한 부분이 use case란 것을 알 수 있습니다. 실제 사용자는 내부적으로 어떻게 동작을 하든 전혀 고려하지 않고 내가 원하는 결과가 무엇인지, 그 결과가 제대로 피드백 되는지만 신경쓰면 되는 것이죠.
아래 예제는 위키피디아의 이미지를 인용하였습니다. (https://en.wikipedia.org/wiki/System_sequence_diagram)
아래 그림을 보면 System Sequence Diagram을 명확히 이해하실 수 있습니다. 아래와 같은 Sequence Diagram을 디자인할 시 유의할 점은 다시 한번 설명드리지만 System은 Black Box!! 라는 것입니다.
보시면 위에서 설명드린바와 같이 시스템 내부의 동작은 전혀 고려하지 않습니다. 사용자가 물건을 구매하기 위해 물건을 가져오면, Cashier는 물건을 스캔하고 가격을 알려줍니다. 스캔을 어떻게 하는지 알 필요없죠. 그리고 가격을 사용자가 지불하면 영수증을 발급합니다. 가격에 따라 영수증이 어떻게 생성되고 출력되는지 사용자가 알 필요가 있나요? 전!혀! 없습니다.
위에서 사용자가 System으로 전달되는 이벤트를 System Operation 이라고 합니다. System은 각 Operation에 대한 기능을 구현하고 원하는 결과를 사용자에게 전달해야 하죠. 굉장히 중요한 녀석입니다. 각 상황에 대해 System Operation이 다를 수 있습니다. 물건을 구매할 때 뿐만아니라, 환불이나 교환등의 use case가 있겠죠? 이런 모든 use case에 대해 모든 System Operation을 System Interface 라고 합니다. 즉 System Operation의 집합이죠.
이 앞에서 정리하던 Unified Process와 함께 생각해보면, System Sequence Diagram은 먼저 use-case가 정리된 상황에서 진행하는 게 좋습니다. Unified Process에서 Elaboration Phase에서는 완료가 되어야 하는 것이죠.
간단하게 System Sequence Diagram에 대해 알아보았습니다. 부족하지만 도움이 되셨길 바랍니다. 감사합니다 :D