An Approach to Effective Software Architecture Evaluation in Architecture-Based Software Development

아키텍쳐 기반 소프트웨어 개발을 지원하는 효과적인 소프트웨어 아키텍쳐 평가 방법

  • Choi, Hee-Seok (Dept.of Computer Science Engineering, Busan National University) ;
  • Yeom, Keun-Hyuk (Dept.of Computer Science Engineering, Busan National University)
  • 최희석 (부산대학교 컴퓨터공학과) ;
  • 염근혁 (부산대학교 컴퓨터공학과)
  • Published : 2002.06.01

Abstract

Software architecture representing a common high-level abstraction of a system can be used as a basis for creating mutual understanding among all stakeholders of the system. In determining a software architecture's fitness with respect to its desired qualities as well as in improving a software architecture, software architecture evaluation is importantly performed. However moat of architecture evaluation methods are not still sufficient in that they do not explicitly consider artifacts discussed during architecture evaluation and their processes are net systematic. As a result, we are hard to follow them. To address these problems, this paper presents the method to evaluate systematically a software architecture with respect to its desired qualities. In this approach, the functional and non-functional requirements are separately handled, and software architecture is represented in the 4+1 view model using UML. Through this initial consideration, the important artifacts such as goals, scope, and target of evaluation are clearly determined. Also, the method provides the well defined process to produce the important evaluation artifacts such as sub-designs, design decisions, rationale, qualities from inputs. In addition, it enables us to determine satisfaction of a architecture with respect its desired qualities or improve a architecture through the structured evaluation results.

소프트웨어 아키텍쳐는 소프트웨어 개발에 참여하는 사람들간의 원활한 의사 소통과 시스템 설계 결정에 대한 합리적 판단을 가능하게 하는 상위 수준의 시스템 추상화이다. 이러한 소프트웨어 아키텍쳐에 대한 평가는 소프트웨어에 요구되는 품질을 소프트웨어 개발 전에 미리 예측하거나, 고품질 소프트웨어를 개발하는대 적합한 아키텍쳐의 선택 및 향상을 가능하게 한다. 그러나 현재의 아키텍쳐 평가 방법은 아키텍쳐 평가의 초기 입력물에 대한 정의가 미흡하고, 평가 과정이 주관적인 프로세스에 많이 의존하거나 흑은 체계적인 프로세스를 정의하고 있지 않다. 뿐만 아니라 아키텍쳐 평가 정보들의 표현에 대한 고려가 부족하다. 본 논문에서 제안하는 방법은 아키텍쳐 평가의 주요 입력물인 요구사항을 기능적 요구사항과 비기능적 요구사항으로 분리하여 다루고, 소프트웨어 아키텍쳐는 UML을 이용한 "4+1"뷰 아키텍쳐 모델을 바탕으로 명확하게 정의한다. 이를 통하여 아키텍쳐 평가의 목표 및 평가 범위, 평가 대상을 분명하게 결정한다. 그리고 아키텍쳐 평가의 중요 정보들인 부분 설계, 설계 결정, 근거 데이타, 품질 등의 정보를 단계적으로 결정하기 위한 체계적이고 객관적인 프로세스를 제시한다. 또한 평가 결과에 있어서는 아키텍쳐 평가 과정에서 결정된 정보들을 구조화된 형태로 나타냄으로써 품질 예측 및 아키텍쳐의 향상과 선택이 가능하도록 돕는다.

Keywords

References

  1. Clements, P. and Northrop, L., 'Software Architecture: An Executive Overview,' CMU/SE1-96TR-003, Carnegie Mellon University, February 1996
  2. Bass, L., Clements, P., and Kazrnan, R., Software Architecture in Practice, Addison-Wesley, 1998
  3. Kruchten, P., 'The 4+1 View Model of Software Architecture,' IEEE Software, Vol. 12, No. 6 pp.42-50, November 1995 https://doi.org/10.1109/52.469759
  4. Kazman, R. et al., 'The Architecture Tradeoff Analysis Method,' The 4th IEEE International Conference on Engineering of Complex Computer Systems, pp.68-78, 1998 https://doi.org/10.1109/ICECCS.1998.706657
  5. Kazman, R, Abowd, G. Bass, L., and Clements, P., 'Scenario-Based Analysis of Software Architecture,' IEEE Software, pp.47-55, November 1996 https://doi.org/10.1109/52.542294
  6. Kazman, R., Klein, M., and Clements, P., 'Evaluating Software Architectures for Real-Time Systems,' Annals of Software Engineering, pp.1-27, 1999 https://doi.org/10.1023/A:1018902725104
  7. Allen, R., 'A Formal Approach to Software Architecture,' CNU-CS-97-144, Carnegie Mellon University, May 1997
  8. Medvidovic, X, 'A Classification and Comparison Framework for Software Architecture Description Languages,' UCI-ICS-97-02, University of California, Irvine, February 1996
  9. Abowd, G. et al., 'Recommended Best Industrial Practice for Software Architecture Evaluation,' CMU/SEI-96-TR-025, Carnegie Mellon University, January 1997
  10. Bosch, J. and Molin, P., 'Software Architecture Design: Evaluation and Transformation,' Proceedings of IEEE Conference and Workshop on Engineering of Computer-Based Systems, pp.4-10, 1999 https://doi.org/10.1109/ECBS.1999.755855
  11. Barbacci, M.R., Klein, M.H., and Weinstock, C.B., 'Principles for Evaluating the Quality Attributes of a Software Architecture,' CMU/SEI-96-TH036, Carnegie Mellon University, May 1997
  12. Clements, P., Bass, L., Kazman, R., and Abowd, G., 'Predicting Software Quality by Architecture-Level Evaluation,' The 5th International Conference on Software Quality, pp.485-498, 1995
  13. Bredemeyer Consulting, http://www.bredemever.com/definiti.htm, 2001
  14. CMU/SEI http://www.sei.cmu.edu/architecture/definitions.html, 2001
  15. Perry, D.E. and Wolf, A.L., 'Foundations for The Study of Software Architecture,' ACM SIGSOFT Software Engineering Notes, Vol. 17, No.4, pp.40-52, October 1992 https://doi.org/10.1145/141874.141884
  16. 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, pp.1-39, World Scientific Publishing Co., 1993 https://doi.org/10.1142/9789812798039_0001
  17. Eriksson. H. and Penker, M.. UML Toolkit. Addison-Wesley, 1998
  18. Rumbaugh, J., Jacobson, I, and Booch, G .. The Unified Modeling Language Reference Manual, Addison-Wesley, 1999
  19. Hofmeister, C., Nord, R., and Soni, D., Applied Software Architecture, Addison-Wesley, 2000
  20. Kotonva, G. and Sommerville, I., 'Requirements Engineering with Viewpoints,' Software Engineering Journal, pp.5-18, January 1996
  21. Wiegers, K.E.. Software Requirements, Microsoft Press, 2000
  22. Jones, L.G. and Kazman, R., 'Software Architecture Evaluation in the DoD Systems Acquisition Context,' http://interactive.sei.cmu.edu, SEI Interactive. December 1999
  23. Bosch, J., Design and Use of Software Architectures. Addison Wesley. 2000
  24. Clements. P., 'A Survey of Architecture Description Languages,' Proceedings of the 8th International Workshop on Software Specification and Design, pp.1-26. March 1996 https://doi.org/10.1109/IWSSD.1996.501143
  25. IEEE Standard Glossary of Software Engineering Terminology. IEEE Std. 610.12-1990
  26. Iannino, A., 'Software Reliability Theory,' Encyclopedia of Software Engineering, John Wiley & Sons, pp.1237-1253. February 1994
  27. Schmidt, D., Stal, M., Rohnert, H., and Buschmann, F., Pattern-Oriented Software Architecture-Patterns for Concurrent and Networked Objects, John Wiley & Sons. 2000
  28. Buschmann, F .. et al.. Pattern-Oriented Software Architecture-A System of Patterns, John Wiley & Sons, 2000