Journal of Convergence Society for SMB (중소기업융합학회논문지)
- Volume 1 Issue 1
- /
- Pages.75-83
- /
- 2011
- /
- 2234-4438(pISSN)
Deadlock Detection of Software System Using UML State Machine Diagram
UML State Machine Diagram을 이용한 소프트웨어 시스템의 데드락 탐지
- Min, Hyun-Seok (Dahan Tech Inc.)
- 민현석 ((주) 다한 테크)
- Received : 2011.10.07
- Accepted : 2011.11.04
- Published : 2011.11.30
Abstract
Unified Modeling Language (UML) is widely accepted in industry and particularly UML State Machine Diagram is popular for describing the dynamic behavior of classes. This paper discusses deadlock detection of System using UML State Machine Diagram. Since a State Machine Diagram is used for indivisual class' behavior, all the State Machine Diagrams of the classes in the system are combined to make a big system-wide State Machine Diagram to describe system behavior. Generally this system-wide State Machine Diagram is very complex and contains invalid state and transitions. To make it a usable and valid State Machine Diagram, synchronization and externalization are applied. The reduced State Machine Diagram can be used for describing system behavior thus conventional model-checking technique can be applied. This paper shows how deadlock detection of system can be applied with simple examples. All the procedures can be automatically done in the tool.
Unified Modeling Language (UML)는 산업계에서 소프트웨어 설계 표준 언어로서 인정되고 있으며 특히 UML State Machine Diagram은 클래스의 동적인 행위(behavior)를 묘사하는데 많이 사용되고 있다. 이 논문은 UML State Machine Diagram을를 이용하여 시스템의 데드락 (deadlock)을 찾는 방법에 대해서 논한다. 보통 State Machine Diagram는 개별의 클래스의 행위를 나타내는 데 사용되므로 시스템 범위의 행위를 알고 싶으면 시스템에 있는 클래스들 중 관심 있는 클래스들의 State Machine Diagram을 합하여 시스템의 행위를 나타낼 수 있는 State Machine Diagram이 필요하여진다. 일반적으로 이러한 시스템 수준의 State Machine Diagram은 매우 복잡하고 실제로는 타당하지 않은 State나 Transition들을 포함하게 된다. 실제 시스템의 행위를 나타내기 위해서 synchronization과 externalization을 적용하여 State Machine Diagram을 유효한 수준으로 줄이는 것이 필요하다. 이렇게 만들어진 State Machine Diagram은 시스템의 행위를 나타내는데 사용될 수 있으며 통상의 모델 체킹 방법이 적용될 수 있다. 이 논문은 데드락 탐지를 하는 방법을 간단한 예제를 통해서 보여준다. 모든 과정은 툴에서 자동으로 지원되며 필요한 알고리즘도 같이 설명된다.