The problem of satisfying a desired level of quality attributes has been researched in the software architecture analysis domain. Architecture tradeoff analysis methods have been studied in order to examine whether an architecture meets the system quality and to know where the quality tradeoffs exist. Even though the Architecture Tradeoff Analysis Method (ATAM) provides a basic understanding of quality attributes from prior experiences, it does not help stakeholders in understanding the quality attributes in detail or in more precisely determining the importance of the tradeoff. This weakness can be compensated for by providing a framework for the reasoning of quality attributes.
In this thesis, a quantitative analysis method of tradeoffs using an architecture analysis and design language is suggested. An architectural prototyping technique is applied in order to obtain measurable values from quality attributes and to clarify the tradeoffs based on the measured data. The method has the strength of determining where the tradeoffs of the quality attributes exist and what causes the tradeoffs from alternative architectures.
For quantitative tradeoff analysis, the suggested method is applied to a studio project, an OSEK operating system development. It helps architects in selecting one of the architectural alternatives that is most appropriate for the desired quality goals with a quantitative approach. Also, it makes architects maintain the objective in tradeoff analysis.
The contribution of this thesis is in providing a novel engineering disciplined architecture tradeoff analysis method. It supplements ATAM, the Cost Benefit Analysis Method (CBAM), and other subjective architecture tradeoff analysis methods by providing an engineering-disciplined quantitative approach. In addition, the application of the architecture analysis and design language guides an architecture design to be a detailed one and facilitates the design documentation.
소프트웨어 아키텍처는 시스템 개발 초기에 산출되는 결과물로 초기 아키텍처 선정을 위한 품질 속성과 의사 결정 사항을 포함한다. 특히 품질 속성에 대한 의사 결정 사항은 시스템의 개발이 진행되면 될수록 변경하기 어렵다. 이를 위한 해결책으로 설계된 아키텍처가 품질 속성을 만족하는 지를 확인하는 방법으로 아키텍처 평가 방법이 적용되고 있다. 하지만, 일반적으로 아키텍처의 표현이 구조적인 특성을 표현하는데 중점을 두고 있어 품질 속성에 대한 표기가 설계된 아키텍처에 표현되지 않는 경우가 많고, 품질 속성에 대한 평가가 현재까지는 전문가에게 질문을 하고 답변을 얻어 해결하는 연구 방법에 의존하고 있는 실정이다. 이는 임시적 (ad hoc)이며 주관적인 분석 방법으로 시스템 개발에 대한 위험 요소나 충돌 사항 (tradeoff)을 이해하는데 단지 전문가의 경험에 의존적이라는 한계를 갖는다.
본 논문은 이러한 정성적인 분석 방법에서 벗어나 임베디드 시스템의 아키텍처를 표현하도록 고안된 아키텍처 분석 및 설계 언어 (AADL)를 사용하여 아키텍처에 품질 요소를 표현하고 측정을 통해 얻어지는 아키텍처의 품질 속성에 기반하여 품질 간의 충돌 사항을 정량적으로 분석하는 방법을 제안한다.
확장된 AADL의 표현은 품질 속성에 대한 정략적인 분석을 가능하게 하는데 이는 추상화된 아키텍처에서 상세 설계를 위한 지침이 되며 이는 품질 요소를 문서화 시키는 데 도움을 줄 것으로 기대한다. 또한 정량적인 충돌 사항 분석은 기존의 ATAM과 CBAM의 정성적인 분석을 보완하며 함께 사용될 수 있다는 장점을 갖는다.