소프트웨어 공학 - OOLC - Dynamic modeling (동적 모델링)
Dynamic modeling
1. 개요
동적 모델링에서는 유스케이스를 더 구체화하는 것이 목표로 세부 목적은 아래와 같다.
- 객체들이 유스케이스에 어떻게 참여하는지 결정한다.
- 객체 구조화 기준을 사용하여 필요한 객체를 결정한다.
- 각 객체 구조화 기준에 대해 스테레오타입을 사용한다.
- 유스케이스 안에서 객체들이 어떤 순서로 상호작용하는지 나타낸다.
- 이를 Collaboration Diagrams 또는 Sequence Diagram으로 표현한다.
- 객체 구조화 기준을 사용하여 필요한 객체를 결정한다.
- 상태 의존 제어 객체는 상태차트로 모델링한다.
- 동적 분석을 시행한다.
여기서 동적 분석은 유스케이스를 수행하기 위해 객체들이 서로 어떻게 상호작용하는지를 결정하는 접근법이다. 동적 분석은 크게 두 가지로 나뉜다.
- 비상태 의존 동적 분석
- 상태 의존 동적 분석
2. Collaboration Diagrams
특징은 다음과 같다.
- 객체는 박스로 표시한다.
- 객체 간 메시지 상호작용은 화살표로 표시한다.
- 메시지의 순서를 번호로 나타낸다.
여기서 메시지는 다음과 같이 정의된다.
메시지 = 이벤트 + 속성
예를 들어 ATM 카드 삽입 메시지는 다음과 같이 표현할 수 있다.
ATM card inserted(Card ID, Expiration date)
협업 다이어그램은 각 유스케이스마다 작성된다.
- 어떤 객체는 하나의 협업 다이어그램에만 등장할 수 있다.
- 어떤 객체는 여러 협업 다이어그램에 반복적으로 등장할 수 있다.
3. Sequence Diagram
시퀀스 다이어그램은 유스케이스 안에서 객체들이 상호작용하는 순서를 보여준다.
주요 특징은 다음과 같다.
- 메시지가 객체들 사이에서 전달되는 순서에 초점을 둔다.
- 객체는 세로선으로 표현된다.
- 액터는 보통 페이지의 가장 왼쪽에 배치된다.
- 메시지는 이름이 붙은 가로 화살표로 표시된다.
- 화살표의 시작점과 도착점이 중요하다.
- 메시지는 송신 객체에서 수신 객체로 전달된다.
- 시간은 페이지의 위에서 아래로 흐른다.
- 메시지 사이의 간격은 의미가 없다.
- 메시지 순서 번호는 선택 사항이다.
1) 메세지 순서 번호 표기법
메시지 번호는 다음과 같은 형식을 사용할 수 있다.
- Aa1.1a
이 구조는 다음과 같이 해석된다.
- 첫 번째 선택 문자 시퀀스 : 유스케이스 ID
- 숫자 시퀀스 : 메시지 순서
- 두 번째 선택 문자 시퀀스 : 동시 이벤트 시퀀스
예를 들어 다음과 같이 표현할 수 있다.
- A1
- A2
- A3
- A1.1
- A1.1.1
- A1.2
대화형 시스템에서는 보통 다음 방식으로 사용한다.
- 정수 번호: 외부 이벤트
예: A1 - 소수 번호: 이후의 내부 이벤트
예: A1.1, A1.2
동시 이벤트가 있는 경우 다음처럼 표시할 수 있다.
- A3
- A3a
4. Dynamic Analysis
동적 분석은 유스케이스를 지원하기 위해 객체들이 어떻게 상호작용하는지를 결정하는 과정이다.
일반적인 절차는 다음과 같다.
- 액터로부터 발생하는 외부 이벤트에서 시작한다.
- 유스케이스를 지원하는 데 필요한 객체들을 결정한다.
- 외부 이벤트 이후에 발생하는 내부 이벤트들의 순서를 결정한다.
- 이를 협업 다이어그램으로 표현한다.
동적 분석은 다음 두 가지로 나뉜다.
- 비상태 의존 동적 분석
- 상태 의존 동적 분석
상태 의존 동적 분석에서는 상태차트가 흐름을 제어한다. 이때 제어 객체가 상태차트를 실행하며 다른 객체들을 활성화하거나 비활성화한다.
1) Non-state dependent dynamic analysis
비상태 의존 동적 분석은 객체의 상태 변화가 중심이 아닌 유스케이스에 사용된다.
절차는 다음과 같다.
- 유스케이스에서 시작한다.
- 인터페이스 객체를 결정한다.
- 인터페이스 객체는 액터로부터 외부 이벤트를 받는다.
- 내부 객체를 결정한다.
- 내부 객체는 인터페이스 객체로부터 메시지를 받는다.
- 객체 간 협력을 결정한다.
- 전달되는 메시지 순서를 정한다.
- 대안 흐름을 개발한다.
예: 오류 처리 또는 드물게 발생하는 조건 처리
2) State dependent dynamic analysis
상태 의존 동적 분석은 상태 변화가 중요한 유스케이스에 적용된다.
각 블랙박스 유스케이스에 대해 다음을 수행한다.
- 유스케이스에 참여하는 객체를 결정한다.
- 인터페이스 객체를 결정한다.
- 내부 객체를 결정한다.
- 객체 간 협력을 결정한다.
- 상태차트를 개발한다.
- 제어 객체가 상태차트를 실행한다.
- 객체 협업 다이어그램과 상태차트가 일관될 때까지 반복적으로 수정한다.
※ 추가 업데이트 및 검증 예정이다.
참고 자료
- 서강대학교 박수용 교수님 강의자료 - 소프트웨어 공학
원문 참고 자료
- J. Rumbaugh et al, “Object-Oriented Modeling and Design”, Prentice Hall, 1991
- I Jacobson et al, “Object-Oriented Software Engineering”, Addison Wesley, Reading MA, 1992.
- H. Gomaa, “Chapter 6 - Designing Concurrent, Distributed, and Real-Time Applications with UML”, Addison Wesley Object Technology Series, July, 2000