Apart from functionality, various software quality attributes such as reliability, performance and security may be required for software systems. Quality attributes are especially important considerations during the design phase of software development because different designs lead to the implementations exhibiting different qualities. If we can analyze a design to predict how well the implementation of the design will meet quality attributes, we can significantly save the total development cost and time. Therefore in the past m any analysis methods have been proposed but either they are hard-to-learn and use or, in the case of simulation-based analysis, functionality concerns and quality analysis concerns were intermingled in the design as well as in the implementation thereby making development and maintenance more complicated. In this thesis, we propose a simulation-based design phase analysis method based on aspect-oriented programming. In our method, quality analysis aspects remain separate from functionality aspect in the design model and the implementation code for simulation is automatically obtained by injecting quality analysis code into the skeleton code generated from the design-level functionality model. Our method has advantages over the conventional approach in reducing both the development cost and the maintenance cost.
소프트웨어 시스템에는 기능성을 제외하고도 신뢰성, 성능, 보안성 등과 같은 다양한 소프트웨어 품질 속성이 요구된다. 품질 속성은 소프트웨어 개발 과정 중 특히 디자인 단계에 주요 고려 사항이 되는데 그 이유는 디자인이 구현물의 품질에 영향을 미치기 때문이다. 만약 최종 구현물이 품질 요구 사항을 만족시키는지 디자인을 분석해서 예측할 수 있다면 전체적인 개발 비용과 시간을 현저하게 절약할 수 있다. 따라서 과거로부터 디자인 단계의 다양한 품질 분석 방법들이 제안되었으나 대부분 배우기가 어렵거나 사용하기 어려웠다. 또한 시뮬레이션을 사용하는 방법은 디자인 또는 구현물에 기능 고려사항과 품질 고려사항이 분리되지 않고 함께 섞이기 때문에 개발과 유지보수가 복잡했다.
이 논문에서 우리는 관점 지향 프로그래밍 (aspect-oriented programming)을 이용하여 시뮬레이션을 기반으로 한 디자인 단계의 분석 방법을 제안한다. 이 방법은 디자인 단계에서 구현까지 품질 분석 관점(aspect)과 기능성 관점을 분리하여 유지한다. 디자인 수준의 기능 모델에서 자동으로 얻어진 삽입하여 시뮬레이션을 위한 구현 코드를 만들어 낸다. 이 방법은 기존 방법에 비해 개발이 쉽고 유지 보수하기 쉽다는 장점을 가진다.