Index
Search
1. 상호작용 다이이그램 개요
•
구성요소간 상호작용 보여줌
•
객체간에 어떻게 상호작용하는지 표현
•
종류
◦
시퀸스 다이어그램
◦
통신 다이어그램
•
시퀸스/통신 다이어그램은 1:1 변환 가능
2. 시퀸스 다이어그램
2.1. 시퀸스 다이어그램
•
시스템의 구성요소가 어떻게 상호작용하는가 시각화
◦
목표 시스템 논리 명세화
◦
다른 객체들을 호출하는 순서를 보여줌
◦
시간 흐름과 순서에 따라 시스템 동작 표현
•
cf) 통신 다이어그램
◦
메세지 흐름보다 상호작용에 참여하는 관계를 파악할때 효과적
2.2. 참여 요소와 생명선
•
참여 요소
◦
메세지를 주고 받는 주체
•
참여 요소는 액터, 경계 객체, 제어 객체, 엔티티 객체 순으로 나타남
•
생명선
◦
상호작용의 순서를 보여주는 시간 축
•
예시
2.3. 메세지
•
메세지 전송 또는 시그널 전송되는 것을 이벤트 발생이라고 함
◦
화살표로 표시
◦
메세지 전송은 호출자가 수신자에게 메세지 실행을 요청하는 이벤트를 발생시키는 것
•
활성화 막대
◦
수신 객체가 활성화된 상태
◦
수신자가 주어진 이벤트에 해당하는 특정 행위를 실행하는 상황 표현
•
메시지 호출자 / 수신자
◦
메세지를 보내고 받는 참여 요소
◦
호출 메세지가 동기화 메세지라면 검은 삼각형 화살표 머리로 표시
◦
리턴 메세지는 점선 화살표로 표시
◦
의미가 명확하면 리턴 메세지 표지 하지 않아도 됨
•
예시
•
동기화 메세지
◦
검은 삼각형 화살표 머리
•
비동기화 메세지
◦
실선 화살표에서 화살표 머리 모양이 다름
•
예시
•
비동기화 메세지 예시
•
기타 메세지
◦
자기 메세지
▪
객체가 자신에게 메세지를 보내는 경우
▪
활성화 상태가 중첩으로 나타남
◦
리턴 메세지
▪
메세지 수신자가 실행을 종료하고 제어를 송신자에게 돌려주는 상황 표현
▪
리턴값을 메세지 송신자에게 전달 가능
▪
중요한 리턴 메세지가 아니라면 생략
◦
생성과 삭제 메세지
▪
생성 메세지는 <<create>>
▪
삭제 메세지는 <<destroy>>
•
생명선 끝에는 X 표시
•
메세지의 종류
2.4. 시퀸스 프래그먼트
•
시퀸스 다이어그램 안에 박스로 표시된 영역
◦
다디어그램 복잡성을 줄이고 구조화 위함
◦
선택적 실행/ 반복적 실행과 같은 복잡한 상호작용 표현하기 위함임
•
박스 좌상단에 프레그먼트 유형을 나타내는 operator 표시
◦
opt - 옵셔널. 조건 만족시에만 상호작용
◦
alt - switch 문
◦
loop
◦
ref - 외부에서 정의된 시퀸스 다이어그램 포함
◦
par - 분리된 몇 개의 상호작용이 동시에 수행된다는 것
•
예시
3. 통신 다이어그램
3.1. 통신 다이어그램
•
참여 요소들간의 메세지 송수신 관계를 파악하기에 좋은 상호작용 다이어그램
•
참여 요소간의 상호작용 관계에 초점
3.2. 통신 링크와 메세지
•
통신 링크
◦
메세지를 주고 받는 두 참여 요소를 연결하여 둘의 관계를 보여주는 실선
•
메세지 표현
◦
통신 링크를 따라 호출자 → 수신자 향하는 화살표와 메세지를 표현
◦
메세지 앞에 번호를 붙여 순서 표현
•
예시
3.3. 메세지 전송 순서
•
순차적 메세지
◦
1번부터 시작하여 순차적으로 수행
•
중첩 메세지
◦
메세지를 받아 수행중에 다른 메세지를 호출하는 경우
◦
통신 다이어그램에서는 중첩 메세지 표현 어려움
◦
1.1.과 같이 숫자를 단계적으로 사용하여 표현
•
예시
시퀸스 다이어그램
통신 다이어그램
•
병행 메세지
◦
동시에 메세지를 보내는 경우로 메세지를 동시 수행
◦
1a, 1b, 1c 등으로 표현
3.4. 조건 메세지와 메세지의 반복
•
조건문이 있는 메세지
◦
조건문이 참인 경우에만 메세지 전달
◦
메세지 뒤에 []를 사용하여 조건 표현
◦
예시) 2.3b: draw() [x>y]
•
메세지의 반복
◦
*를 사용하여 표현
◦
4.2c : search(t[i]) *[i=1..12]
•
예시