Post

소프트웨어 공학 - 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
This post is licensed under CC BY 4.0 by the author.