Abstract
Software architecture is increasingly being viewed as a key design in developing complex software systems, which largely affects the achievement of quality attributes. During the architecture-based software development, therefore, architectural transformation is needed to achieve quality attributes. Due to the variety of design alternatives and the poor predictability of the effects of the transformation, however, it is not easy to apply architectural transformation. Therefore, the method is needed to support architectural transformation through systematically analyzing the effects of applying various design alternatives to the architecture. This paper proposes an approach to support software architecture transformation. Based on architectural design decisions and the constraints on them included in the architecture, our approach defines a decision constraint graph representing the dependencies among architectural design decisions. Through using the decision constraint graph, architectural transformation can be systematically performed by understanding the effects of applying a transformation. While this work supports more understanding of applying architectural transformation, it also helps reconstruct a software architecture to improve the quality of the software.
소프트웨어 아키텍처는 복잡 다양한 소프트웨어 시스템을 개발하는 데 있어서 개발될 소프트웨어의 품질 달성에 중요한 영향을 미치는 핵심 설계로서 인식되고 있다. 따라서 아키텍처 기반의 소프트웨어 개발에서 고품질 소프트웨어 개발을 위하여 소프트웨어 아키텍처에 대한 변형이 필수적으로 요구된다. 그러나 아키텍처 변형 시 적용 가능한 설계 대안들의 다양성과 그것들이 아키텍처에 미치는 결과에 대한 예측의 어려움으로 인하여, 소프트웨어 아키텍처 변형을 적용하는 것이 쉽지 않다. 그러므로 다양한 설계 대안들이 아키텍처에 미치는 결과를 이해하고 분석하는 것을 통하여 소프트웨어 아키텍처 변형을 지원하기 위한 방법이 필요하다. 본 논문에서는 소프트웨어 아키텍처 변형을 체계적으로 지원하기 위한 방법을 제안한다. 제안하는 방법에서는 소프트웨어 아키텍처에 포함된 아키텍처 설계 결정들과 그것들에 대한 제약조건들을 바탕으로 결정 제약조건 그래프를 정의한다. 결정 제약조건 그래프를 이용하여 소프트웨어 아키텍처의 주요 설계 결정들간의 의존 관계를 명시적으로 나타냄으로써, 소프트웨어 아키텍처 변형 과정에서 특정 설계 결정에 대한 설계 변형이 아키텍처에 미치는 영향을 체계적으로 분석 가능하게 한다. 본 논문에서 제시하는 소프트웨어 아키텍처 변형 방법은 아키텍처 변형에 대한 전반적인 이해를 용이하게 함과 동시에, 궁극적으로는 고품질 소프트웨어 개발을 위한 새로운 버전의 아키텍처 재생성을 돕는다