동적 모델 - 시퀀스, 커뮤니케이션, 상태 다이어그램

2022. 12. 20. 01:50

<동적 모델>

- 시간의 흐름에 따른 시스템 내부의 여러 요소의 변화, 상호작용

 

시스템이 실행될 때의 다이나믹한 구조에 초점

= 시스템 실행의 스냅샷

 

> 동적 모델 목적

  • 시스템에 존재하는 객체들 사이의 인터랙션 모델링
  • 서브시스템 사이의 인터랙션 모델링
  • 유스케이스 구현하는 객체 인스턴스 사이의 상호작용 모델링
  • 오퍼레이션 안에 존재하는 객체 사이의 상호작용 모델링
  • 다른 시퀀스 다이어그램과 결합하여 사용될 수 있는 상호작용 조각 모델링

 

어떻게 서로 메시지를 주고 받는지 (시퀀스/커뮤니케이션) VS 시스템의 상태가 어떻게 바뀌는지 (상태)

시퀀스 다이어그램 커뮤니티 다이어그램 상태 다이어그램
객체들의 커뮤니케이션
객체의 구동기간
메세지 호출 순서
객체들의 커뮤니케이션
객체 사이의 구조적 관계
객체나 서브시스템의 상태 변화

 

인터랙션 다이어그램 : 시퀀스, 커뮤니케이션

-> 의미는 같으나 표현 방법이 다름

시퀀스 : 참여 객체를 라이프라인에 정렬, 그 사이의 메시지 교환을 시간흐름으로 교환 순서에 맞추어 표현

커뮤니케이션 : 메시지 교환 + 참여 객체의 연관을 링크로 표현

 


[시퀀스 다이어그램]

- 객체를 라이프라인에 정렬하고 그 사이의 메시지 교환 순서

 

요소

 객체

시스템 외부에서 시스템으로부터 서비스를 제공받는 사람/시스템

자기 자신에게도 메시지 보낼 수 있음

맨 위에 위치, 왼 -> 오 배열

 

 라이프라인

객체가 메모리에 존재함을 나타냄 = 객체의 생명선

 

개체에서 아래로 뻗어나가는 점선

수직으로 내려오면서 시간의 흐름

객체가 인터랙션이 끝나도 존재하면 점선 아래까지 이어짐

 

라이프라인 이름

객체 : 객체가 속한 클래스

 

 액티베이션

객체가 메시지를 주고받는 = 구동되고 있음

길이 = 오퍼레이션의 실행 소요 시간

'X' 표시한 지점에서 더 이상 존재 X

 

 

 메시지

한 객체에서 다른 객체의 오퍼레이션 호출

보내는 객체 -> 받는 객체

 

머리모양 = 메시지의 형태

  • 동기식 : 객체에서 다른 객체로 메시지 보낼 때, 보내는 객체가 결과가 완성되어 리턴될 때까지 기다림
  • 비동기식 : 하나의 객체에서 다른 객체로 메시지를 보낼 때, 보내는 객체가 결과가 완성될 때까지 기다리지 X, 메시지 보낸 후 다른 작업 수행
  • 생성 : 메시지를 받는 객체를 생성시키는 메시지
  • 응답 : 메시지를 받는 객체로부터 제어가 돌아옴

 

 프레임

다이어그램 안에 있는 메시지를 묶어 정의

복잡한 메시지 영역을 하나의 영역으로 묶어 표혐

 

 

 

조건과 반복

> 반복 loop

메시지 호출이 반복적으로 일어나는 경우

반복의 조건 나타내야 함

 

> 조건 alt

선택구조

alt로 프레임 표시, 점선의 칸으로 나눠짐

조건식 만족 X -> else로 표시된 칸에 있는 메시지 교환

 

 

병렬 par

병렬 수행을 처리하는 동작

 

시퀀스 다이어그램 그리기

1. 다이어그램의 범위 지정

2. 사용 사례 / 오퍼레이션의 기능을 수행하기 위해 필요한 객체 파악

3. 여러가지 시나리오 생각

4. 순서 다이어그램 작성

  • 프레임 생성
  • 라이프라인 왼쪽부터 배치
  • 인터랙션 시작하는 메시지 위에 배치 - 이어지는 메시지 위 -> 아애로 배치
  • 필요하다면 복합 프레임 사용

5. 다른 시나리오가 있다면 순서 다이어그램으로 그리기

6. 여러 대안 종합 -> 하나의 순서 다이어그램

 

시퀀스 다이어그램 검증

표현하려는 내용 다 표현

다른 다이어그램에도 동일하게 표현

화살표로 표시된 모든 메시지 => 클래스 다이어그램의 오퍼레이션으로 포함

메시지가 호출되기 전 조건 체크 부분 => 관련되는 클래스의 상태 안에 내용 반영되어야 함

 

 

 


[커뮤니케이션 다이어그램]

- 메시지 교환 + 참여 객체의 연관을 링크로

 

인터랙션에 참여하는 객체들의 연관 나타냄

클래스 다이어그램의 완성을 목적

동적으로 동작하는 객체들이 정적으로 연관을 잘 맺고 있는지 나타냄

비정상적인 입력이나 오류에 의한 실패 경로 표시 X

 

요소

  • 액터
  • 객체
  • 링크
  • 메시지
  • 프레임

 

 링크

- 액터 또는 객체 사이의 연관, 메시지를 주고 받는 관계

 

클래스 다이어그램에서 연관으로 표시된 것의 인스턴스

객체 사이에 링크

링크가 객체사이의 임시적인 링크일 수 있음 -> 다이어그램에 표시 X

 

메시지

- 다른 객체에서 어떤 작업이 이루어질 것으로 예상하여 다른 객체로 정보 전달

 

객체에서 다른 객체로 보내는 신호

다른 객체의 오퍼레이션 호출

객체 인스턴스의 생성, 소멸

 

> 메시지 순서 표시

숫자 표시

종속 표시 -> 한 단계 밑 하위 순서로

 

 

 

커뮤니케이션 다이어그램 그리기

1. 인터랙션 범위 지정 (유스케이스, 시스템, 서브시스템, 오퍼레이션 中 1)

2, 인터랙션 기능 수행위해 필요한 구조적인 요소(액터, 객체)와 이들간의 관계

  • 현재 요소만으로 처리결과 외부에 보여줄 수 X, 외부 명령 정보 받을 수 X -> 경계 클래스(외부와의 연결역할)
  • 제어 클래스(비즈니스 로직), 엔티티 클래스(시스템에서 추적해야할 자료)

3. 커뮤니케이션 다이어그램 레이아웃

4. 메시지 추가

5. 검증

 

 

 

 

 


[상태 다이어그램]

- 시스템에서 중요한 역할을 담당하는 클래스의 상태 변화

 

외부 이벤트로 인해 시스템의 상태 변화 일어남

클래스 중 다이나믹하고 복잡하여 ~ 시간흐름에 따른 상태변화 큰 경우

-> 이벤트의 구동에 대해 잘 이해하기 위해 필수

 

요소

 상태

- 대상이 갖는 생명주기의 한 시점

액션이 수행되거나, 이벤트 기다림

둥근 사각형 - 내부에 상태이름

  • 시작상태 : 상태 흐름의 처음 ●
  • 종료상태 : 상태 흐름의 종료 ⊙

종료상태를 제외한 모든 상태는 빠져 나올 수 있어야 함

 

 상태전환

- 상태 사이의 이동

상태의 쌍 사이의 화살표로 표시

상태 변환은 항상 어떤 이벤트에 대한 반응으로 이루어짐

이벤트는 화살표 위에 작성

 

 액션

- 상태 안에 들어가서 구동되는 동작

상태전환도 액션을 구동시킬 수 있음

 

상태와 액션 표기를 두 영역으로 나누어 정보를 써넣어 표현

위 - 상태 이름(필수),  아래 - 활동(선택)

 

> 구동 방법

  • Entry - 상태에 집입할 때 액션이 구동
  • Do - 상태 안에서 액션이 수행
  • Event - 이벤트에 대한 반응으로 액션 실행
  • Exit - 상태에서 빠져나가기 바로 전에 액션 실행

> 액션문법

트리거 이름(매개변수)[조건] / 액션

-> [조건] : 액션이 트리거되기 위해 참이 되어야 하는 조건

 

 

 

 

복합 상태

- 서브 상태로 분할 할 수 있음

상태 안에 또 다른 상태 다이어그램 들어감

 

병렬 상태

- 복합 상태 안에서 동시에 여러 개의 병렬 서브상태 구성

 

병행 흐름 = 독립적 = 각기 다른 시간에 종료 가능

각 서브상태에서 직접 다른 상위 상태로 전환 가능

 

각각의 시작 상태 표시

점선으로 분리

 

 

상태 다이어그램 그리기

1. 범위 지정

2. 시작, 종료 상태 파악

3. 객체나 서브시스템이 어떤 상태 갖는지 찾기

4. 상태를 전환시키는 이벤트, 액션, 조건들 파악

5. 필요하면 서브상태 이용 -> 복합상태로 확장 (복잡 줄이기 위해)

6. 상태 머신 작성 검증

 

 

 

 


<모델 검증>

- 일관성 분석을 통해 설계의 결함 찾아내고, 품질 높이는 작업

완전성, 모순 없는지 체크

기능적인 괌점 - 구조적인 관점 - 동작 위주 관점 => 서로 보완적

 

> 검증 방법

다이어그램 사이의 크로스체크

클래스 안에 상태를 표시하는 속성이 포함되어 있는지

 

> 모델 검증 규칙

설계 도구 기능

- 일관성 분석

- 자동 코드 생성 기능

 

상태 다이어그램 내용 분석

- 트랜지션의 충돌

- 발생하지 않은 이벤트

 

시퀀스 다이어그램과 상태 다이어그램을 비교 검토

- 시스템 특정 동작 체크

- 시퀀스 다이어그램 따라가며 상태 다이어그램의 변화 맞는지 체크

 

 

 

 

 

 

 

 


참고 도서 : 최은만, UML로 배우는 시스템분석설계, 생능출판사, 2020년 3월 (제2판)

 

반응형

BELATED ARTICLES

more