Flowcharts are used in place of statecharts


출처는 아래와 같다.

http://users.ece.cmu.edu/~koopman/pubs/koopman11_escsv_handouts.pdf

43개를 어떤 근거로 뽑은 것인지는 잘 모르겠지만, Engineering적인 측면에서 관심있는 것 중 하나를 선택해서 글을 쓰고자 한다.

11. Flowcharts are used in place of statecharts

Statecharts(혹은 stateflow)는 상태에 따라 다른 behavior를 기술해야 할 필요가 있을 때 기술하면 좋은 방법이고 flowchart는 상태에 따른 behavior를 기술해야 할 필요가 없을 때 기술하면 좋은 방법이다.

예를 들어서 설명하는 모든 경우에 대해 어떤 입력이 들어올 때 항상 동일한 행동을 해야 하는 경우라면 그건 상태 정보가 필요하지 않은 경우이다. 그 때에는 flowchart로 표현하는 것이 더 좋다.

1

 

위의 flowchart는 activation이 되면 항상 시작에서 종료까지 항상 동일한 path를 따라 수행한다.

그런데 문제는 바로 이것이다.

  • Stateflow를 Flowchart style로 표현할 수 있다.
  • Flowchart를 Stateflow style로 표현할 수 있다.

위의 문제가 의미하는 것은 Stateflow로 표현하는 것이 더 좋음(어디까지나 주관적인 기준이기는 하지만)에도 불구하고 Flowchart로 표현하는 것이 불가능하지는 않는다는 점이고, Flowchart로 표현하는 것이 더 좋음에도 Stateflow로 표현하는 것이 가능하긴 하다는 점이다.

위에서 기술한 “불가능하지는 않다”의 의미는 이런 뉘앙스이다. 숟가락으로 태국산 쌀로 된 밥을 먹을 수도 있지만, 젓가락으로 그 밥을 먹는다는게 “불가능하지는 않다” 는 의미와 같다. 간단히 말해 비효율적이란 얘기다.

“상태”라는 것은 시스템이 항상 같은 입력에 대해 다른 행동을 하게 되는 경우 “상태”라는 것이 존재한다고 볼 수 있다. 예를 들어 어떤 경우에는 입력A가 들어올 때 행동 A1을 하고 다른 경우에는 입력 A가 들어올 때 행동 A2를 한다고 하면 상태라는 것이 필요한 경우이다. 이 때에는 statechart(or stateflow)로 표현하는 것이 유리하다.

반면, 어떤 경우에도 입력 A가 들어올때 항상 행동 A1을 한다면 그 behavior에 대해서는 굳이 stateflow로 표현할 필요가 없이 flowchart정도로도 가능하다.

flowchart로 표현할 수 있는 것을 stateflow로 표현했을 때는 이해하기가 더 어렵다. 1차원적인 flowchart의  behavior에 대해 n차원의 hierarchy를 가지는 stateflow로 표현할 수 있는데,  hierarchy구조의 diagram을 이해하기 위해서는 뇌에서도 어떤 상태였는지를 기억해야 할 필요가 있다. 즉 특정 상태가 활성화되면 그 상태의 하위 상태의 default transition을 수행해야 하고 그 상태의 하위 상태의.. 이런식으로 hierarchy diagram의 이해가 되기 때문에 확실히 이해하기에는 어려움이 있다.

요약하자면 다음과 같다.

  • stateless인 behavior는 combination table이나 flowchart로 표현하는 것이 더 적합하다.
  • stateful behavior는 stateflow로 표현하는 것이 이해하기 쉬울 수 있다.

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s