An Approach to Support Software Architecture Transformation in Architecture-Based Software Development

아키텍처 기반 소프트웨어 개발에서 소프트웨어 아키텍처 변형을 지원하기 위한 방법

  • 최희석 (한국전자통신연구원 임베디드S/W연구단) ;
  • 염근혁 (부산대학교 컴퓨터공학과)
  • Published : 2005.01.01

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.

소프트웨어 아키텍처는 복잡 다양한 소프트웨어 시스템을 개발하는 데 있어서 개발될 소프트웨어의 품질 달성에 중요한 영향을 미치는 핵심 설계로서 인식되고 있다. 따라서 아키텍처 기반의 소프트웨어 개발에서 고품질 소프트웨어 개발을 위하여 소프트웨어 아키텍처에 대한 변형이 필수적으로 요구된다. 그러나 아키텍처 변형 시 적용 가능한 설계 대안들의 다양성과 그것들이 아키텍처에 미치는 결과에 대한 예측의 어려움으로 인하여, 소프트웨어 아키텍처 변형을 적용하는 것이 쉽지 않다. 그러므로 다양한 설계 대안들이 아키텍처에 미치는 결과를 이해하고 분석하는 것을 통하여 소프트웨어 아키텍처 변형을 지원하기 위한 방법이 필요하다. 본 논문에서는 소프트웨어 아키텍처 변형을 체계적으로 지원하기 위한 방법을 제안한다. 제안하는 방법에서는 소프트웨어 아키텍처에 포함된 아키텍처 설계 결정들과 그것들에 대한 제약조건들을 바탕으로 결정 제약조건 그래프를 정의한다. 결정 제약조건 그래프를 이용하여 소프트웨어 아키텍처의 주요 설계 결정들간의 의존 관계를 명시적으로 나타냄으로써, 소프트웨어 아키텍처 변형 과정에서 특정 설계 결정에 대한 설계 변형이 아키텍처에 미치는 영향을 체계적으로 분석 가능하게 한다. 본 논문에서 제시하는 소프트웨어 아키텍처 변형 방법은 아키텍처 변형에 대한 전반적인 이해를 용이하게 함과 동시에, 궁극적으로는 고품질 소프트웨어 개발을 위한 새로운 버전의 아키텍처 재생성을 돕는다

Keywords

References

  1. Clements, P. and Northrop, L., 'Software Architecture: An Executive Overview,' CMU/SEI-96-TR-003, Carnegie Mellon University, February 1996
  2. Bass, L., Clements, P., and Kazman, R., Software Architecture in Practice, Addison-Wesley, 1998
  3. Kazman, R. et al., 'The Architecture Tradeoff Analysis Method,' Proceedings of the 4th IEEE International Conference on Engineering of Complex Computer Systems, August 1998, pp.68-78 https://doi.org/10.1109/ICECCS.1998.706657
  4. Bosch, J., Design and Use of Software Architecture, Addison-Wesley, 2000
  5. Ambriola, V. and Kmiecik, A., 'Architectural Transformations,' Proceedings of the 14th IEEE International Conference on Software Engineering and Knowledge Engineering, July 2002, pp.275-278 https://doi.org/10.1145/568760.568809
  6. Krikhaar, R., et al., 'A Two-phase Process for Software Architecture Improvement,' Proceedings of the International Conference on Software Maintenance, August 1999, pp.371-380
  7. Carriere, S.J., Woods, S., and Kazman, R., 'Software Architectural Transformation,' Proceedings of the 6th Working Conference on Reverse Engineering, October 1999, pp.13-23 https://doi.org/10.1109/WCRE.1999.806943
  8. Fahmy, H. and Holt, R.C., 'Using Graph Rewriting to Specify Software Architectural Transformations,' Proceedings of the 15th IEEE International Conference on Automated Software Engineering, September 2000, pp.187-196 https://doi.org/10.1109/ASE.2000.873663
  9. Kruchten, P., The 4+1 View Model of Software Architecture, IEEE Software, Vol. 12, No. 6, November 1995, pp.42-50 https://doi.org/10.1109/52.469759
  10. Perry, D.E. and Wolf, A.L., 'Foundations for The Study of Software Architecture,' ACM SIGSOFT Software Engineering Notes, Vol. 17, No. 4, October 1992, pp.40-52 https://doi.org/10.1145/141874.141884
  11. Garlan, D. and Shaw, M., 'An Introduction to Software Architecture,' Advances in Software Engineering and Knowledge Engineering, Series on Software Engineering and Knowledge Engineering, Vol. 2, World Scientific Publishing Co., 1993, pp.1-39
  12. Choi, H. and Yeom, K., 'An Approach to Effective Software Architecture Evaluation in Architecture-Based Software Development,' Journal of the Korea Information Science Society: Software and Application, Vol. 29, No. 5, June 2002, pp.295-310
  13. Choi, H. and Yeom, K., 'An Approach to Software Architecture Evaluation with the 4+1 View Model of Architecture,' Proceedings of the 9th Asia Pacific Software Engineering Conference, December 2002, pp.286-293 https://doi.org/10.1109/APSEC.2002.1182998
  14. Ran, A. and Kuusela, J., 'Design Decision Trees,' Proceedings of the 8th International Workshop on Software Specification and Design, 1996, pp.172-175
  15. Gustafsson, J., et al., 'Architecture-Centric Software Evolution by Software Metrics and Design Patterns,' Proceedings of the 6th European Conference on Software Maintenance and Reengineering, March 2002, pp.58-70 https://doi.org/10.1109/CSMR.2002.995795
  16. Gamma, E., Helm, R., Johnson, R., and Vlissides, J., Design Patterns, Addison-Wesley, 1995
  17. Buschmann, F., et al., Pattern-Oriented Software Architecture, A System of Patterns, John Wiley & Sons, 2000
  18. Schmidt, D., Stal, M., Rohnert, H., and Buschmann, F., Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects, John Wiley & Sons, 2000
  19. Eriksson, H.E. and Penker, M., UML Toolkit, John Wiley & Sons, 1998