• 개요

    스테이트차트 다이어그램은 "하나의 객체를 대상으로 생존기간 동안 가질 수 있는 객체 상태의 변화를 분석한 다이어그램"입니다.

     

    스테이트차트 다이어그램은 객체 상태와 함께 객체 상태 변화를 유발하는 이벤트와 동작 (Action/Activity)도 함께 정의합니다. 이러한 요소가 정의된 스테이트차트 다이어그램을 통해 "객체 O는 이벤트 E에 의해 상태 S로 변화하고 그 상태에서 A라는 행위를 한다" 라는 식의 분석을 수행할 수 있습니다.

  • 목적

    스테이트차트 다이어그램을 작성하는 목적과 용도는 다음과 같습니다.

    • 객체의 상태변화를 상세히 분석합니다.

      스테이트차트 다이어그램은 객체 하나를 대상으로 생성-소멸기간중에 다양하게 가질 수 있는 상태(State)를 분석하는 목적으로 작성됩니다. 정보시스템에서 많은 객체는 생성되어 소멸될 때까지 간단한 상태를 가지지만 일부는 매우 복잡한 상태로 변화하면서 존재합니다. 스테이트차트 다이어그램은 이렇게 객체의 동적 상태변화를 정의하고 분석하는 목적으로 사용합니다.

    • event에 의한 객체의 반응을 분석합니다.

      스테이트차트 다이어그램은 객체 상태 변화를 유발하는 이벤트를 정의하고 분석하는 목적으로도 작성됩니다. 객체의 상태는 그냥 변하는 것이 아니라 이벤트에 의해 변화합니다. 이러한 객체의 상태변화를 유발하는 이벤트를 식별하고 상세히 정의합니다.

    • 객체의 속성이나 오퍼레이션을 검증합니다.

      스테이트차트 다이어그램은 객체가 가지는 속성과 오퍼레이션을 검증하는 목적으로 작성되기도 합니다. 스테이트차트 다이어그램에서 분석대상인 객체의 상태는 속성의 값으로 정의되고, 이벤트는 대부분 객체의 오퍼레이션으로 정의됩니다. 따라서 클래스 다이어그램 등에서 정의된 클래스의 속성과 오퍼레이션의 적합성을 검증할 수 있습니다.

       

  • 구성

    스테이트차트 다이어그램의 구성요소는 다음과 같습니다.



    • 시작상태(Initial state), 종료상태(Final State)
       

      표기

      의미

      시작 상태

      시각점은 속이 꽉 채워진 원으로 표기

      시작 상태는 객체의 상태변화가 시작되는 곳을 의미합니다. 보통 객체의 생성시점이 시작상태가 됩니다.

      종료 상태


      속이 채워진 원에 바깥의 또 다른 원이 둘러싸고 있는 모양으로 표기

      종료 상태는 객체 상태변화가 종료하는 곳을 의미합니다.

      보통 객체의 소멸시점이 종료상태가 됩니다.

       

    • 상태(State)
      • 상태의 의미
        • 상태란 객체가 가질 수 있는 조건이나 상황입니다.
        • 생명주기 동안 객체의 상태는 변화하며, 상태는 객체의 특정한 속성의 값으로 표현됩니다.
        • 예) 자동차 객체의 상태 : "주차" , "주행" , "정차" , "수리"
      • 표기법

기본형 표기

상세형 표기

- 모서리 둥근 사각형으로 표기

- 상태 명은 심볼 내에 표기

- 수평으로 구분된 모서리 둥근 사각형으로 표기

- 상태 명은 위쪽부분에, 동작과 그 외의 부분은 아랫 부분에 표기

 
 

 

  • 진입 동작(Entry Action)

    상태에 들어올 때 수행되는 동작을 정의합니다.

  • 탈출 동작(Exit Action)

    상태에 나갈 때 수행되는 동작을 표기합니다.

  • 내부전이(Internal Transition)

    현재 상태에서 처리할 수 있는 이벤트가 발생할 경우 상태를 떠나지 않고 해당 사건을 처리하는 경우입니다.

  • 활동(Activity/Action)

    현 상태에서 수행할 동작을 표현합니다.

  • 지연 사건 (Deferred event)

    현 상태를 빠져 나갈 때 발생한 것처럼 그 효과를 지연시킨 이벤트입니다. 위 예에서 Tracking 상태에서 selfTest 이벤트가 발생하면 이것을 메시지 큐에 저장 했다가, Tracking 상태에서 벗어나는 순간 이벤트가 활성화 됩니다.

     

  • 전이(Transition)

    전이란 하나의 상태에서 다른 상태로 변화하는 것이며 상태 간의 관계를 의미합니다.

    • 표기법
      • 전이는 상태와 상태 사이에 화살표가 달린 실선으로 표기합니다.
      • 선 위에는 촉발사건(Event Trigger), 조건(Condition), 동작(Action)이 차례로 표기됩니다.
      • 위 세 가지 표기내용은 각각 생략될 수 있습니다.

         

         

         

    • 원래 상태(Source State)

      전이가 실행되기 전의 객체 상태

    • 촉발 사건(Event Trigger)

      전이를 촉발시키는 사건

    • 전이 조건(Condition)

      전이 촉발 시에 검토되는 Boolean 식 (참일 경우에만 전이가 수행됨)

    • 동작(Action)

      전이 도중 실행되는 행위 또는 오퍼레이션

    • 목표 상태(Target State)

      전이가 완료된 후의 객체 상태

     

  • 주의사항
    • 객체 하나에 대한 상태 변화를 표현합니다.

      스테이트차트 다이어그램의 작성 중에 상태에 집중하다 보면 객체라는 한계를 벗어나는 경우가 종종 있습니다. 객체 하나의 상태변화와 여기에 관계된 이벤트들을 모델링하다는 본질에서 벗어나면 안됩니다.

    • 블랙홀 상태(State)를 주의합니다.

      스테이트차트 다이어그램에 표현된 상태는 들어오는 전이와 나가는 전이가 모두 정의되어야 합니다. 만약 들어오는 전이만 있고, 나가는 전이가 없을 경우, 그 상태는 블랙홀이 됩니다. 이런 실수를 하면 객체가 종료 상태에 이르지 못하고 무한 루프를 수행하는 오류를 범하게 됩니다. 항상 모델을 끝내면 이런 실수가 있지 않나 검증해야 합니다.

    • 클래스 다이어그램 및 시퀀스 다이어그램과의 일관성에 유의합니다.

      스테이트차트 다이어그램을 작성 완료한 후 새롭게 정의된 오퍼레이션과 속성은 클래스 다이어그램와 시퀀스 다이어그램에 반영되어 일관성을 유지해야 합니다. 그런 작업을 하지 않을 경우, 모델들을 전체적으로 신뢰할 수 없게 됩니다.

'소프트웨어공학 > UML이야기' 카테고리의 다른 글

6. Deployment Diagram  (0) 2009.05.26
3. B Usecase Discription  (0) 2009.05.26
5. Sequence Diagram  (1) 2009.02.06
4. Class Diagram  (0) 2008.10.26
3. A. Usecase Diagram  (0) 2008.06.23
Posted by 서오석
,