Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

생각자리

동적 모델링 본문

CS/소프트웨어공학

동적 모델링

Manze 2022. 6. 7. 01:58
더보기

객체지향 소프트웨어공학 (최은만 著, 한빛아카데미) 참고하여 작성했습니다. 

동적 모델링의 종류

인터랙션 다이어그램 : 시퀀스와 커뮤니케이션 다이어그램은 인터랙션에 동일한 정보를 담고 있으며 서로간 교환이 가능하다.

  1. 시퀀스 다이어그램 :
    시간축에 초점을 두고 사건의 흐름을 나타냄
    객체의 메시지 교환과 상호작용
    객체간의 협력을 나타낼 때 사용 
  2. 커뮤니케이션 다이어그램 :
    객체와 액터 사이에 초점을 두고 사건의 흐름을 나타냄
    여러 객체가 협력하여 동작하는 것을 네트워크 형태로 나타낸 것
    클래스 사이의 관계도 나타냄 

행위 다이어그램 

  1. 상태 다이어그램 : 상태가 오퍼레이션에 따라 변하는 것을 나타냄
  2. 액티비티 다이어그램 : 시스템을 병행 처리의 관점에 따라 나타냄 (플로우차트) 

시퀀스 다이어그램에서의 다양한 메세지

1. 반복 메세지 :
같은 메시지를 동일한 클래스의 여러 객체에 송신할 때 사용
반복되는 메시지 주위에 프레임 표시를 한 후, 프레임의 왼쪽 상단에 loop 표시를 하고 대괄호 안에 반복 조건식을 씀.

(객체에 대한 반복 수행은 메세지 이름 앞에 * 를 붙여 표시) 

 

2. 회귀 메세지 :
ㄷ 자 모양의 화살표로 표시하고 다중 객체는 겹쳐진 사각형으 로 표시한다

3. 시간이 걸리는 메세지 : 메세지 전송 시 시간이 걸리는 메세지는 각도가 있는 화살표로 표현 

4. 동기 메세지 : 메세지를 보내고 객체의 수행이 끝날 때까지 기다리는 경우 (답신 메세지는 호출메세지와 같은 모양)

5. 비동기 메세지 : 객체가 메세지를 보내고 계속 작업을 수행함 (열린 화살표) 

6. 다중 스레드 : 비동기 메세지를 보내는 것은 다중 스레드를 사용하는 것을 의미함 

시퀀스 다이어그램의 연산자 

  1. alt 연산자 : 2개 이상의 부분 상호작용의 선택적 흐름을 표현 (=if 문)
  2. opt 연산자 : 조건이 만족될 때만 수행하는 상호작용을 표현, 즉 else가 없 는 alt 연산과 동일함
  3. loop 연산자 : 피연산자에 명시된 부분 상호작용이 반복적으로 수행됨을 표현 
  4. par 연산자 : 피연산자로 표시된 각 부분 상호작용이 병행적으로 수행됨을 표현 (병렬처리)
  5. critical 연산자 : 피연산자로 표시된 부분 상호작용이 상호배타적으로 수행 됨을 표현,
                                 즉 해당 부분 상호작용이 여러 쓰레드에 의해서 동시에 수행되 지 않아야 함을 뜻함

커뮤티케이션 다이어그램

어떤 객체가 다른 객체에 메세지를 보낼 경우 항상 커뮤니케이션 링크가 존재한다.

커뮤니케이션 다이어그램에 있는 커뮤니케이션 링크는 클래스다이어그램의 연관 관계 인스턴스와 꼭 일치할 필요는 없다.


시퀀스 다이어그램과 커뮤니케이션 다이어그램의 선택 방법

1. 시퀀스 다이어그램

- 메세지의 순서를 쉽게 보여주려고 할 때

- 메세지의 자세한 사항, 즉 매개변수, 리턴 값 등을 나타낼 필요가 있을 때  

 

2. 커뮤니케이션 다이어그램

- 래스 다이어그램을 검증하려고 할 때 

- 인터랙션 다이어그램을 클래스 다이어그램에서 추출할 때


상태 다이어그램

상태가 오퍼레이션에 따라 변하는 것을 나타냄
시스템 전체, 시스템의 일부, 개별 객체에 대한 외부 동작을 나타냄

주어진 시점에 시스템이 "어떤 상태" 에 있다는 것은 그 상태에 대응하여 특정 방법으로 동작하는것을 의미 

 

바탕이 채워진 원 (●) : 시작 상태 , 최상위에 하나만 있어야함 

속이 채워진 원 (⊙) : 종료 상태, 다수의 종료 상태 존재 가능 


트랜지션

상태 변화의 원인이 되는 것

 

경과 시간 표시 트랜지션
일정 시간이 지난 후에 이벤트가 발생함

 

조건 표시 트랜지션
어떤 조건이 만족되면 트랜지션이 이루어짐 

조건은 불리언(boolean) 오퍼레이터로 이루어진 것이므로 이벤트 이름과 구별된다.


액티비티와 액션 (액티비티가 액션의 상위 개념)

액티비티

상태 박스 안에 "do: " 로 표기

시스템이 특정 상태에 있을 때 일정한 시간 동안 발생함
→ 시스템은 액티비티가 완료되면 해당 상태를 나오는 트랜지션을 일으킨다

→ (다른 트랜지션이 먼저 트리거 될 경우, 시스템은 해당 상태를 빠져나와 액티비티를 중단한다)

액티비티

액션 

아래 상황에서 즉시 발생 (시간 경과 없이 바로 발생해야함)

시스템이 특정 트랜지션을 일으킬 때 

특정 상태로 진입할 때

특정 상태에서 탈출할 때 

 

표기방법 ( "/" 다음에 행위) 

  1. 어떤 상태로 변환하는 동안에 액션이 일어날 경우 ? event / action
  2. 어떤 상태로 진입할 때 ? Enter / action
  3. 어떤 상태에서 탈출할 때 ? Exit / action 

내장된 상태와 가드 조건 

상태 다이어그램은 상태 안에 내장된 상태(=서브상태) 를 정의 하는 것이 가능 


액티비티 다이어그램

액티비티가 완료 된 것, 즉 내부 이벤트에 의해 발생됨 

프로세스의 순서를 표현하는 것에 적당한 다이어그램이다

객체나 컴포넌트가 수행하는 작업의 흐름을 이해할 때, 사용 사례 사이의 인터랙션을 가시화 할 때 사용

병행 액티비티를 나타낼 수 있는 장점이 있다

  1. 포크 : 단일 입력 트랜지션, 다중 출력 트랜지션 
  2. 조인 : 다중 입력, 단일 출력 
  3. 랑데부 : 다중 입력, 다중 출력 

스윔레인 

상태 다이어그램은 단일 클래스에 대한 상태와 이벤트를 나타내지만 액티비티 다이어그램은 여러 클래스와 연관되어 있다

액티비티에 참여하는 클래스를 기준으로 나타내려면 스윔레인을 이용한다

같은 스윔레인 안의 액티비티는 동일한 클래스의 것이다 

 

 

 

 

'CS > 소프트웨어공학' 카테고리의 다른 글

디자인 패턴  (0) 2022.06.08
아키텍처 설계  (0) 2022.06.08
Comments