As software systems become larger and more complex, the software architecture of such systems plays a critical role in software development. Software architecture is generally known as the description of system in terms of computational components and their interactions. In the past, software architecture was informally described as box-and-line diagram. By the needs of analysis and precise description, many Architecture Description Languages(ADLs) have been proposed to specify and analyze various aspect of software. None the less, the existing ADLs lack in supporting design of consideration on synchronous/asynchronous message passing and data affecting computation among the components. Distinguishing synchronous and asynchronous message passing is one of the important issues at the architectural level of design. Also, it is important to analyze the architecture considering data (for example, boundary value) of components in a software under development. However, the existing ADLs do not address those information sufficiently.
In this thesis, we propose a visual ADL which can be used to specify and analyze software architecture including message passing and data. Also, we present a prototype tool that supports the visual description of software architecture and the translation from it to PROMELA for model checking.
소프트웨어 시스템들이 점차 복잡해지고, 크기가 커짐에 따라, 이러한 소프트웨어에서 소프트웨어 아키텍처는 소프트웨어의 개발에 매우 중요한 역할을 한다. 소프트웨어 아키텍처는 일반적으로 컴포넌트의 구조와 각 컴포넌트들 간의 관계를 나타낸다. 과거에 소프트웨어 아키텍처는 박스와 라인으로 이루어진 그림으로 나타내어졌다. 그러나, 분석력과 정확한 아키텍처의 기술을 위해 소프트웨어의 여러 측면을 기술하고 분석할 수 있는 많은 아키텍처 기술 언어들이 제안되었다. 그럼에도 불구하고, 기존의 아키텍처 기술 언어들은 동기적/비동기적 메시지 전달과 컴포넌트들간의 연산에 영향을 주는 데이터를 고려하여 디자인하는 것을 지원하는데 부족함이 있다. 동기적/비동기적 메시지 전달을 구분하는 것은 아키텍처 단계의 디자인에서 중요한 이슈중의 하나이다. 또한, 컴포넌트의 데이터 값(예를 들어, 데이터의 경계값)을 고려하여 분석하는 것이 중요하다. 그리고, 개발시에 소프트웨어에서 컴포넌트의 데이터(예를 들어, 경계값)를 고려하여 아키텍처를 분석하는 것이 중요하다. 그러나, 기존의 ADL들은 이러한 정보들을 충분하게 다루고 있지 못하다.
본 논문에서는, 메시지 전달 방법과 데이터 값을 포함하여 기술하고 기술된 정보를 이용하여 분석할 수 있는 시각적 아키텍처 기술 언어을 제안한다. 또한, 시각적으로 기술할 수 있고, 분석을 위해 PROMELA로의 변환을 지원하는 개발된 도구를 제시한다.