Abstract
Despite some practical confusion over the variations in the diagram which may be drawn differently depending upon the CASE, the statechart of UML has been widely used to show the dynamic behaviour of the systems. Prior research has employed either simple switch-case statement or the state design pattern to generate source code from the statechart, which may result in varying source codes. This paper made an attempt to formally define the statechart and generate source codes from it. Firstly we cleaned up the XMI which was generated from different CASEs. This XMI has been translated to the EHA to identify automata contained in it. Then the elements of the statechart metamodel were mapped to the java programs. We also verified the quality of source codes by measuring functionality and maintainability. The case employed in this study was the air conditioner. The reason was that the case includes various states and transitions of interest. It was found that XMI was well extracted by removing some legacy codes in the CASE and the source codes were then successfully generated with the concurrency and hierarchy of the statechart. Further research is required to validate it practical significance with a larger case.
UML의 상태도는 CASE 도구마다 다르게 표현될 수 있어서 실제 적용에 어려움이 많지만, 시스템이 동작하는 측면을 효과적으로 나타낼 수 있다는 점에서 활용성이 높다. 상태도에서 소스를 생성하는 선행 연구를 보면, 단순한 분기문 또는 설계패턴 등을 적용하고 있지만 그 기술에 따라 생성된 소스코드에 차이가 있을 수 있다. 본 논문에서는 상태도를 문법형식에 맞게 엄격히 정의해서 소스코드를 생성하였다. 우선 서로 다른 CASE도구에서 작성된 상태도에서 추출된 XMI를 정제하였다. 여기서 EHA로 변환을 한 후 상태를 인식하였다. 그리고 상태도의 메타모델에 사용된 요소별로 자바 프로그래밍으로 전환하여 소스코드를 생성하고 기능성과 유지보수성을 측정하여 생성된 코드를 검증하였다. 본 논문에서 적용된 사례는 '에어컨'으로서, 다양한 상태와 전이가 포함되어 소스코드 생성에 적합하여 선정하였다. 그 결과 에어컨 사례의 상태도로부터 CASE 독립적인 XMI를 추출하여 정련한 후, 상태도에서의 동시성과 계층이 성공적으로 표현되었음을 확인했다. 향후 좀 더 큰 규모의 시스템에 적용하여 검증하는 연구가 필요하다.