- 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다.
- 루프, 조건문
시퀀스 다이어그램에서는 루프와 조건문을 표현하기가 좋지 않다. 이런 제어구조는 액티비티 다이어그램이나 코드로 표현하는것이 더 좋고 간결하다. 시퀀스 다이어그램은 제어로직보다는 객체들의 상호교류 표현을 훨씬 잘 나타낸다.
시퀀스 다이어그램에서 제어를 표현하기 위해 용어를 몇 가지 알아보자. 1: dispatch 아래에 loop 로 둘러쌓인 큰 사각형이 있는데 이를 프레임이라 부른다. 그 안에 [모든 line item] 라는 Text를 가드라고 한다. 그리고 loop 를 둘러싼 작은 사각형을 연산자 라고 한다. 모든 프레임에는 연산자가 있고, 해당 연산자 조건을 가드에 적는다.
UML 프레임에서 자주 사용하는 연산자들은 아래와 같다.
- alt: 다수의 조건 중 조건에 만족하는 단 한개만 실행된다.
- opt: 주어진 조건이 참일 때만 실행된다.
- par: 각 부분이 병렬실행된다.
- loop: 반복문을 나타내며 가드에 조건을 명시한다.
- sd: 원할 경우 시퀀스 다이어그램 전체를 감쌀 때 사용된다.
위의 연산자들 이외에도 region, neg, ref 가 있으며 일반적으로 사용할법한 연산자들만 명시하였다.
위 다이어그램을 의사 코드(pseudo code)로 나타내면 아래와 같다.
procedure dispatch
foreach(lineitem)
if (product.value > 10000)
careful.dispatch
else
regular.dispatch
end if
end for
if (needsConfirmation) messenger.confirm
end procedure
도입부에서도 말했듯이 제어로직과 관련해서는 시퀀스 다이어그램을 보는 것 보다 의사 코드 형태가 훨씬 가독성이 좋다. 불가피한 상황이 아니라면 꼭 시퀀스 다이어그램으로 제어로직을 표현해야겠다는 강박을 갖지 말자.
'Concepts > UML' 카테고리의 다른 글
UML - 클래스 다이어그램 고급 - 키워드, 책임, static (0) | 2021.02.10 |
---|---|
UML - 시퀀스 다이어그램 - 동기, 비동기호출 (0) | 2021.02.10 |
UML - 시퀀스 다이어그램 - 참가자 (0) | 2021.02.10 |
UML - 시퀀스 다이어그램 - 개요 (0) | 2021.02.10 |
UML - 클래스 다이어그램과 제약 규칙 (0) | 2021.02.10 |
댓글