본문 바로가기
컴퓨터과학[4-1]/소프트공학

소프트웨어 공학 - [제14강] 상태 머신 다이어그램

by boolean 2017. 1. 5.
728x90

소프트웨어 공학 - [제14강] 상태 머신 다이어그램

주요용어

상태: 특정 시점에서 객체나 시스템의 상황을 말함. 객체의 상태는 주어진 시점에서 객체의 속성값들로 표현됨

상태 머신 다이어그램: 객체, 서브시스템 또는 전체 시스템의 상태와 상태 전이를 표현하여 행위를 모델링한 다이어그램

상태 전이: 한 상태에서 다른 상태로 상태가 변경되는 것으로, 트리거에 의해 또는 이전 상태의 내부 행위가 종료되어 전이가 일어날 수 있음

이벤트와 트리거: 상태 전이를 일으키는 이벤트를 트리거 또는 트리거링 이벤트(triggering event)라 함


상태 머신 다이어그램의 개요

상태 머신 다이어그램

시스템의 단일 객체에 대한 행위를 모델링

객체가 생성되어 소멸되기까지의 전 과정에서 이벤트 발생과 상태 변화를 다룸

동적 행위를 모델링하나 특정 객체만을 다룸

실시간 임베디드 시스템, 게임, 프로토콜 설계에 이용됨

표기법

상태는 모서리가 둥근 사각형으로 나타내며 안에 상태의 이름을 표시

상태 전이는 화살표로 표시

상태는 전이되는 순간에 활성화되고 벗어나면서 비활성화됨

상태 변화를 일으키는 이벤트를 트리거(trigger)라고 하며 화살표 위에 텍스트로 표시

현재 상태와 트리거에 의해 다음 상태가 정해짐

시작 노드와 종료 노드를 가짐


상태

특정 시점에서 객체나 시스템의 상황으로 특정값들로 표현됨

상태 내부의 행위 명세

‘entry/행위‘ 특정 상태로 바뀔 때 최초 한 번 일어나는 행위

do/행위’ 상태의 활성화 중에 일어나는 행위. 행위는 완료되거나 트리거에 의해 중단될 수있음

exit/행위’ 특정 상태가 비활성화되기 직전에 마지막으로 동작하는 행위

전이

상태의 변화를 의미

상태가 변화되는 경로로 화살표로 표시함

화살표 위에 ‘트리거[조건문]/효과’를 표시하며 각 요소는 생략될 수 있음

트리거는 전이를 일으키는 이벤트로 조건문이 있다면 만족되어야 전이가 됨

트리거없이 상태 내부에서 일어나는 행위가 종료되어 상태가 전이될 수도 있음

조건문

트리거가 발생해도 조건이 만족되어야만 상태 전이가 일어남

상태 전이를 막거나 여러 상태 전이 중 하나를 선택하는 상황을 모델링할 때 사용

효과 (또는 행위)

상태 전이가 승인된 후 수행되는 행위로 인터럽트될 수 없는 행위

상태 전이의 결과로 생기는 효과로 볼 수 있음

전이의 여러 표현

트리거만 표시되는 경우

트리거가 발생할 때마다 전이가 일어나게 됨

트리거와 조건이 명시된 경우

트리거가 발생해도 조건이 참인 경우에만 전이가 일어남

트리거와 조건이 모두 없는 경우

이전 상태의 내부 동작이 완료되면 바로 다음 상태로 바뀌게 됨


상태 제어를 위한 추가적인 요소들

시작 노드와 종료 노드

액티비티 다어그램의 경우와 동일함

실제 상태가 아니므로 의사상태(pseudo state)라고 함

선택 노드

선택을 표현하는 의사상태

선택 노드에서 나가는 전이에 조건이 붙여지며 여러 조건들 중 하나만 만족되어야 함

선택적 전이를 명료하게 표현하기 위함

포크와 조인

병행 상태를 표현하는 것으로 표기법은 액티비티 다이어그램과 같음

하나의 전이가 포크를 통과하면 여러 개의 병행 전이로 갈라지고 갈라졌던 전이들이 조인에서 합쳐짐

분리된 상태는 동시에 발생되어 독립적으로 수향되며 조인에서 동기화 됨

2개의 병행 상태를 포함하는 상위 상태를 복합 상태라 함

시그널

상태 전이와 행위를 강조하기 위한 표현

트리거는 시그널 수신 노드로 표현되고 전이 행위는 시그널 송신 노드로 표현


복합 상태

특정 상태를 세분화하여 복수 개의 상태로 나타낸 것

하나의 상태를 하나 이상의 상태 다이어그램으로 표현할 수 있음

2개 이상의 상태 다이어그램을 포함하면, 병행 수행되며 각각을 하위 상태 머신이라 하며 점선으로 구분됨(포크와 조인 참조)

복합 상태가 활성화되면 하위 상태 머신의 모든 시작 노드가 활성화되어 각 다이어그램이 동시 수행됨

UML 상태 다이어그램의 특징은 병행 상태를 표현한다는 점

복합 상태의 상세한 내용을 감추고 아이콘만으로 표시해 둘 수 있음

진입점

정상적 시작 노드가 아닌 방법으로 복합 상태에 진입하는 방법

진입점을 통과하여 복합 상태의 내부에 존재하는 하위 상태로 전이할 수 있음

진입점 기호 옆에 이름을 붙여줌

탈출점

종료 노드를 통해 복합 상태를 벗어나는 것이 아니고, 특정 상태에서 복합 상태를 벗어나는방법

탈출점은 X를 포함하는 원으로 표시되며 옆에 이름을 붙여줌

01
UML 상태 머신 다이어그램에 관한 설명으로 맞는 것은?
1 비즈니스 프로세스를 모델링할 때 적합하다.
2 객체들 간의 메시지 송수신을 통한 협력을 표현한다.
3 단일 유스케이스에 대한 시스템 동작을 나타낸다.
4 단일 객체 관점에서의 동작을 나타낸 것이다.
정답 | 4
해설 | 비즈니스 프로세스를 모델링할 때 사용되는 것은 액티비티 다이어그램이다. 단일 유
스케이스의 기능을 객체들 간 협력으로 표현하는 것은 상호작용 다이어그램이다.
02
상태와 상태 전이에 관한 설명이다. 잘못된 것은 무엇인가?
1 상태 내부의 동작이 끝나지 않더라도 트리거가 발생해 상태 전이가 일어날 수 있다.
2 상태 내부의 동작이 끝나면 트리거 없이도 상태 전이가 일어날 수 있다.
3 조건문이 존재하면 트리거가 일어나도 조건이 만족되는 경우에만 전이가 일어난다.
4 상태 내부 동작의 완료와 트리거의 발생은 상태 전이가 일어나기 위한 필요조건이다.
정답 | 4
해설 | 상태 머신 다이어그램에서 상태 전이 화살표 위에 ‘트리거[조건문]/효과’을 함께 나
타낸다. 하지만 트리거와 조건문 및 효과의 명시는 선택 사항일 뿐이다.
03
다음 상태 머신 다이어그램에서 나타나 있지 않은 것은?
1 상태
2 상태 전이
3 선택 노드
4 시작 노드
정답 | 3
해설 | 선택 노드는 조건에 따라 상태 전이가 다르게 일어나는 것을 분명히 표현할 때 사
용된다. 선택 노드는 실제 상태가 아닌 의사상태이며 마름모 모양이다.
04
위의 그림은 CD 플레이어의 상태 변화를 표현한 것이다. 그림과 다르게 설명된 보
기는 무엇인가?1 Playing 상태에서 스톱 버튼이 눌리면 Stopped 상태로 변한다.
2 Playing 상태에서 하나의 디스크를 다 읽은 후에는 Stopped 상태로 변한다.
3 Stopped 상태에서 플레이 버튼을 누르더라도 트레이에 CD가 있어야 Playing 상태로 변
한다.
4 Stopped 상태에서는 Paused 상태로 바뀔 수 없다.
정답 | 2
해설 | Playing 상태에서 하나의 디스크를 다 읽은 후에, 더 이상의 디스크가 없다면
Stopped 상태로 전이되며 만약 또 다른 디스크가 있다면 디스크를 바꾸고 다시 Playing 상
태가 된다.
05
복합 상태에 관한 설명으로 잘못된 것은?
1 복합 상태는 하나 이상의 상태 머신 다이어그램에 대응된다.
2 복합 상태에서 상위 상태와 하위 상태 간의 관계는 상속 관계이다.
3 복합 상태의 자세한 내부를 생략하는 대신에 별도의 다이어그램을 작성하기도 한다.
4 복합 상태에 둘 이상의 상태 머신 다이어그램이 포함된다면, 그들은 동시에 수행된다.
정답 | 2
해설 | 상태 기호 안에
모양의 아이콘이 추가된 경우는 그 상태를 상세히 표현한 별도의
상태 머신 다이어그램(하위 상태 머신이라 함)이 존재한다. 하위 상태 머신에 존재하는 상
태를 하위 상태라 한다. 복합 상태와 하위 상태 간의 관계는 포함 관계로 볼 수 있다.
정리하기
01
시퀀스 다이어그램과 비교하여 상태 다이어그램이 표현하는 것은 무엇인가?
시퀀스 다이어그램이 유스케이스를 실현하기 위한 객체의 협력을 표현하는 것에 비해 상태
다이어그램은 단일 객체의 상태 변화를 표현하여 객체의 행위를 모델링한다.
02
객체의 상태는 어떻게 표현 되는가?
특정 시점에서 객체가 가지는 속성들의 값으로 표현된다.
03
상태 머신 다이어그램에서 선택 노드를 사용하는 경우와 시그널을 사용하는 경우를
설명하라.
선택 노드는 가능한 여러 전이를 명료하게 표현하기 위한 것으로 선택 노드로부터 나가는
다양한 전이 조건 가운데 하나만 만족되어야 한다. 시그널 노드는 상태의 전이와 전이 행위
를 강조하는 표현으로 트리거는 시그널 수신 노드로 표현되고 전이 행위는 시그널 송신 노
드로 표현된다.
04
복합 상태란 무엇인가?
하나의 상태를 세분화하여 복수 개의 상태로 표현한 것이다. 복합 상태는 하나 이상의 상태
머신 다이어그램으로 표현될 수도 있으며 이 경우는 여러 상태가 동시에 수행되는 병행 상
태를 의미한다.
05
상태 전이를 표시하는 방법을 설명하라.
이전 상태와 다음 상태를 연결하는 화살표로 표시하고 화살표와 함께 ‘트리거[조건]/효과’를
나타낸다. 트리거는 상태 전이를 야기시키는 이벤트를 말하며 조건이 만족될 때만 전이가
일어난다. 효과는 상태 전이와 함께 수행되는 행위로 상태 전이로 인한 효과이며 인터럽트
될 수 없다.
Q1 UML 상태 머신 다이어그램에 관한 설명으로 맞는 것은?
  • 1 비즈니스 프로세스를 모델링할 때 적합하다.
  • 2 객체들 간의 메시지 송수신을 통한 협력을 표현한다.
  • 3 단일 유스케이스에 대한 시스템 동작을 나타낸다.
  • 4 단일 객체 관점에서의 동작을 나타낸 것이다.
확인
정답 및 해설
정답입니다.
정답 : 4번
비즈니스 프로세스를 모델링할 때 사용되는 것은 액티비티 다이어그램이다.
단일 유스케이스의 기능을 객체들 간 협력으로 표현하는 것은 상호작용 다이어그램이다. 
Q2 상태와 상태 전이에 관한 설명이다. 잘못된 것은 무엇인가?

  • 1 상태 내부의 동작이 끝나지 않더라도 트리거가 발생해 상태 전이가 일어날 수 있다.
  • 2 상태 내부의 동작이 끝나면 트리거 없이도 상태 전이가 일어날 수 있다.
  • 3 조건문이 존재하면 트리거가 일어나도 조건이 만족되는 경우에만 전이가 일어난다.
  • 4 상태 내부 동작의 완료와 트리거의 발생은 상태 전이가 일어나기 위한 필요조건이다.
확인
정답 및 해설
정답입니다.
정답 : 4번
상태 머신 다이어그램에서 상태 전이 화살표 위에 ‘트리거[조건문] / 효과’를 함께 나타낸다.
하지만 트리거와 조건문 및 효과의 명시는 선택 사항일 뿐이다. 
Q3 다음 상태 머신 다이어그램에서 나타나 있지 않은 것은?


 
  • 1 상태
  • 2 상태 전이
  • 3 선택 노드
  • 4 시작 노드
확인
정답 및 해설
정답입니다.
정답 : 3번
선택 노드는 조건에 따라 상태 전이가 다르게 일어나는 것을 분명히 표현할 때 사용된다.
선택 노드는 마름모 모양이다. 
Q4 다음 그림은 CD 플레이어의 상태 변화를 표현한 것이다. 그림과 다르게 설명된 보기는 무엇인가?


 
  • 1 Playing 상태에서 스톱 버튼이 눌리면 Stopped 상태로 변한다.
  • 2 Playing 상태에서 하나의 디스크를 다 읽은 후에는 Stopped 상태로 변한다.
  • 3 Stopped 상태에서 플레이 버튼을 누르더라도 트레이에 CD가 있어야 Playing 상태로 변한다.
  • 4 Stopped 상태에서는 Paused 상태로 바뀔 수 없다.
확인
정답 및 해설
정답입니다.
정답 : 2번
Playing 상태에서 하나의 디스크를 다 읽은 후에, 더 이상의 디스크가 없다면 Stopped 상태로 전이되며 만약 또 다른 디스크가 있다면 디스크를 바꾸고 다시 Playing 상태가 된다. 
Q5 복합 상태에 관한 설명으로 잘못된 것은?

  • 1 복합 상태는 하나 이상의 상태 머신 다이어그램에 대응된다.
  • 2 복합 상태는 조건에 따른 선택적 상태 전이를 분명하게 보여준다.
  • 3 복합 상태의 자세한 내부를 생략하는 대신에 별도의 다이어그램을 작성하기도 한다.
  • 4 복합 상태에 둘 이상의 상태 머신 다이어그램이 포함되면, 그들은 동시에 수행된다.
확인
정답 및 해설
정답입니다.
정답 : 2번
상태 기호 안에 o―o 모양의 아이콘이 추가된 경우는 그 상태를 상세히 표현한 별도의 상태 머신 다이어그램(하위 상태 머신이라 함)이 존재한다. 보기 ②는 선택 노드에 관한 설명이다. 


댓글