Search
🏫

[소프트웨어 공학] 12. 상호작용 다이어그램

Tags
CS
Software Engineering
Last edited time
2023/06/17 07:35
2 more properties
Search
[소프트웨어 공학] 12. 상호작용 다이어그램
CS
Software Engineering
2023/06/11 15:16
[소프트웨어 공학] 12. 상호작용 다이어그램
CS
Software Engineering
2023/06/11 15:16

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]
예시