1. 시스템의 동적 특성을 모델링하는 UML 행위 다이어그램의 개요
**UML(Unified Modeling Language)**은 객체지향 소프트웨어 설계의 표준 모델링 언어로, 구조 다이어그램과 행위 다이어그램으로 나뉩니다. 그중 **행위 다이어그램(Behavior Diagram)**은 시스템의 내부 동작, 객체 간의 상호작용, 시간에 따른 상태 변화 등 **동적인 관점(Dynamic View)**을 기술하여 시스템의 요구사항과 실행 로직을 명확히 정의하는 역할을 합니다.
2. 업무 프로세스의 흐름 가시화, 활동 다이어그램(Activity Diagram)
가. 개념
시스템 내부에 존재하는 여러 활동(Activity)의 흐름을 순차적, 병렬적으로 표현한 다이어그램입니다. 비즈니스 프로세스나 알고리즘의 실행 로직을 모델링하는 데 최적화되어 있습니다.
나. 주요 구성요소 및 특징
액션(Action) / 활동(Activity): 수행되는 개별적인 작업 단위.
시작/종료 노드: 흐름의 시작점과 끝점을 표시.
조건(Decision) & 병합(Merge): 조건에 따라 흐름이 분리되거나 다시 합쳐지는 지점.
포크(Fork) & 조인(Join): 병렬 처리를 위해 흐름을 나누거나(Fork), 나뉜 흐름이 모두 완료될 때까지 기다리는(Join) 지점.
스윔레인(Swimlane): 활동을 수행하는 주체(부서, 역할 등)별로 영역을 구분하여 책임 소재 명확화.
3. 객체의 생명주기와 상태 변화 모델링, 상태 다이어그램(State Diagram)
가. 개념
하나의 객체가 가질 수 있는 모든 가능한 **상태(State)**와 외부 **이벤트(Event)**에 의한 상태 간의 **전이(Transition)**를 기술합니다. 객체의 생명주기(Life Cycle)를 분석하는 데 사용됩니다.
나. 주요 구성요소 및 특징
상태(State): 객체가 존재할 수 있는 조건이나 상황 (예: 주문대기, 결제완료).
전이(Transition): 상태가 한 지점에서 다른 지점으로 변하는 화살표.
이벤트(Event): 상태 전이를 일으키는 외부의 자극이나 신호.
가드(Guard): 전이가 일어나기 위해 만족해야 하는 불리언(Boolean) 조건.
액션(Action): 상태 전이 시 또는 특정 상태에 진입/탈출 시 수행되는 동작.
4. 사용자 관점의 요구사항 정의, 유스케이스 다이어그램(Use-Case Diagram)
가. 개념
시스템이 제공해야 하는 기능과 이를 사용하는 외부 요소(사용자 또는 외부 시스템) 간의 관계를 도식화한 것입니다. 개발 범위(Scope)를 정의하고 요구사항을 분석하는 출발점이 됩니다.
나. 주요 구성요소 및 특징
액터(Actor): 시스템과 상호작용하는 외부 사용자 또는 외부 시스템 (시스템의 경계 밖).
유스케이스(Use Case): 시스템이 수행하는 서비스나 기능을 단위별로 추상화한 것.
시스템 경계(System Boundary): 개발하고자 하는 시스템의 범위를 사각형으로 표시.
관계(Relationship):
포함(Include): 유스케이스 수행 시 반드시 실행되어야 하는 공통 기능.
확장(Extend): 특정 조건 만족 시에만 선택적으로 실행되는 기능.
일반화(Generalization): 그룹화된 액터나 유스케이스 간의 상속 관계.
5. 행위 다이어그램 간 비교 및 기술사적 제언
| 구분 | 유스케이스 다이어그램 | 활동 다이어그램 | 상태 다이어그램 |
| 주요 관점 | 외부 사용자 중심 기능 정의 | 시스템 내부 프로세스/로직 흐름 | 개별 객체의 동적 상태 변화 |
| 분석 대상 | 시스템 전체 (Scope) | 비즈니스 서비스/알고리즘 | 복잡한 생명주기를 가진 객체 |
| 활용 단계 | 요구사항 분석 초기 | 상세 설계 및 로직 분석 | 임베디드, 실시간 제어 설계 |
기술사 제언:
성공적인 시스템 설계를 위해서는 세 다이어그램을 상호 보완적으로 활용해야 합니다. 유스케이스를 통해 시스템의 범위를 확정하고, 그 내부의 복잡한 비즈니스 로직은 활동 다이어그램으로 상세화하며, 상태에 민감한 핵심 객체(예: 주문, 예약 등)는 상태 다이어그램을 통해 예외 케이스와 정합성을 검증함으로써 설계의 완전성을 확보해야 합니다.
댓글 없음:
댓글 쓰기