Search
🏫

[소프트웨어 공학] 11. 액티비티 다이어그램

[소프트웨어 공학] 12. 상호작용 다이어그램
CS
Software Engineering
2023/06/1115:16
[소프트웨어 공학] 12. 상호작용 다이어그램
CS
Software Engineering
2023/06/1115:16

1. 액티비티 다이어그램

1.1. 액티비티 다이어그램

업무 흐름이나 계산 과정을 액션 흐름에 따라 단계적으로 표현
비즈니스 프로세스 표현
4+ 1 뷰에서 프로세스 뷰를 표현하는 UML 다이어그램

1.2. 액티비티와 액션

액티비티
작업의 실행을 의미
액션들과 이들의 제어흐름을 표현
액션
액티비티를 수행하기 위해 필요한 단일 잔업
액티비티 다이어그램 구성 요소
액션
액티비티
제어노드
화살표(제어/객체흐름)
객체노드
예시
액티비티 - 라면 끓이기
액션 - 물 붓기, 끓이기, 라면 넣기
시작 노드 - 검은색 원
종료 노드 - 검은색 원을 포함한 원

2. 객체와 객체 흐름

객체
액션의 입력이나 출력으로 사용되는 데이터
사각형으로 표시
이름에 밑줄을 그어 인스턴스(객체)임을 강조할 수 있음
객체 흐름
객체와 액션 사이의 화살표
입력핀과 출력핀
입력핀 - 객체가 액션의 입력으로 사용됨
출력핀 - 액션의 결과로 객체가 출력됨을 의미
스테레오 타입 - 객체흐름에 사용
transformation
selection
객체 상태
[]를 사용하여 상태 표시

3. 조건과 병합 노드

조건 노드
마름모로 표시
모든 조건들은 서로 배타적이어야 함
else와 같은 조건으로 사용 불가
병합 노드

4. 병렬 처리와 확장 영역

4.1. 포크와 조인

제어 노드
병렬 처리를 표현하기 위해 포크와 조인 사용
굵은 막대로 표시
포크
흐름이 2개 이상으로 나뉘어 동시 진행
조인
동시 진행되었던 흐름들이 조인을통해 동기화 됨
동시 수행되었던 흐름들이 모두 종료되어야 조인을 통해 다음 흐름으로 이어짐 (동기적)
예시

4.2. 확장 영역

입력 객체가 컬렉션일때 모든 요소들에 수행되는 액션들을 하나의 그룹으로 표현
확장 영역의 종류
parallel
요소들 병행 처리
iterative
요소들을 순차 처리
1→2→3 끝나고 나면 다음 요소가 처리
stream
스트림으로 처리

5. 시그널과 파티션

5.1. 시그널

시그널 주고받기
외부의 사람, 시스템, 프로세스와의 상호작용을 의미
이벤트의 발생으로 메세지를 외부로 보내거나 외부로부터 받는 것
메세지
소프트웨어 설계자 관점
시그널
시스템 설계자 관점

5.2. 시그널 송수신

시그널 수신 액션
오목 오각형
시그널 송신 액션
시그널을 생성하여 전송 (블록 오각형)
예시) 주문하기
외부의 참여자에게 시그널을 보내면 외부 참여자가 적절히 반응할 것으로 기대하나 응답을 기다리지 않음
시그널 송수신은 비동기적
시그널을 동기화하려면 시그널 송신과 수신을 나란히 위치 시킴

5.3. 인터럽트

시그널을 이용하여 인터럽트 표현 가능
특정 사건이 발생하면 영역 내 모든 프로세스가 종료되는 상황 표현시 사용
인터럽트 영역
인터럽트가 발생할 수 있는 영역. 취소가능한 액션들을 포함
모서리가 둥근 점섬 사각형으로 표시
인터럽트 표시
인터럽트 발생 시 실행하는 액션은 지그재그 모양의 화살표로 표시
예시)

5.4. 파티션

액션에 책임지는 참여자를 표현하기위해 파티션 또는 레인으로 구분
액션 수행자, 주체 표현
스윔레인이라고도 함

5.5. 액티비티 호출과 재사용성

호출 액티비티 액션
다른 액티비티를 호출하는 액션
가독성과 재사용성을 높이기 위해 액티비티를 별도의 다이어그램으로 분리
액션 노드 내 포크 모양의 아이콘으로 표시
예시

5.6. 타임 이벤트

액티비티의 실행 흐름에서 시간적 요인 표현하는 경우
모래시계 기호로 표현
입력 흐름을 가진 타임 이벤트는 한번만 일어남
규칙적 시간 간격을 두고 반복되는 상황을 표현하는 경우
입력 흐름이 없는타임 이벤트
시작 노드 대체 가능