DOI QR코드

DOI QR Code

A Study on Efficient Application of Architectural Patterns by the Taxonomy of Software Requirements

소프트웨어 요구사항 분류체계를 이용한 효율적인 아키텍처 패턴 적용에 관한 연구

  • 최종우 (한국과학기술원 소프트웨어대학원) ;
  • 민상윤 (한국과학기술원 전산학부)
  • Received : 2022.12.22
  • Accepted : 2023.04.21
  • Published : 2023.07.31

Abstract

As software grows continuously in scale and complexity, the role of software architecture has become increasingly important across various industries. Although software architects often rely on their experience and intuition when designing such architecture, there is a variety of methodologies being researched for architecture design. However, these methodologies do not address the specific effects of applying multiple architectural patterns to a system or the sequence in which they should be applied. In this study, we explain the variation in architectural design results depending on the order in which the same set of architectural patterns is applied to a single system. Based on this phenomenon, we identify requirements for applying architectural patterns and propose a method of classifying the patterns to be applied. We also propose a prioritization process for requirements to efficiently apply the classified patterns in a specific order. Finally, we show a case study that prioritizing requirements based on architectural pattern types is beneficial for efficient software architecture design in terms of quality attributes.

다양한 산업에 영향을 미치고 있는 소프트웨어의 규모와 복잡도가 높아지면서 소프트웨어 아키텍처의 역할이 매우 중요해지고 있다. 소프트웨어 아키텍트는 이러한 아키텍처를 설계할 때 종종 경험적 직관에 의존한다. 그럼에도 아키텍처 설계에 관한 방법론이 다양하게 연구되고 있으나, 시스템에 여러 아키텍처 패턴(architectural pattern)을 적용하는 구체적인 방법이나 적용 순서에 따른 효과에 관해서는 다루고 있지 않다. 본 연구에서는 먼저, 같은 아키텍처 패턴 세트(set)를 동일 시스템에 적용할 때, 적용 순서에 따른 아키텍처 설계 결과의 상이성에 관해 설명한다. 이러한 현상적 논리를 바탕으로 아키텍처 패턴 적용이 필요한 요구사항들을 사전에 식별하고, 적용할 패턴을 분류하는 방안을 제시한다. 또한 분류한 패턴들을 효율적으로 적용하기 위해 적용 순서를 정할 수 있도록 요구사항의 우선순위를 정하는 절차를 제안하며 사례연구를 통해 아키텍처 패턴 유형을 기반으로 요구사항을 우선순위화하는 것이 품질 속성 측면에서 효율적인 소프트웨어 아키텍처 설계에 도움이 됨을 보인다.

Keywords

References

  1. L. Bass, P. Clements, and R. Kazman, "Software Architecture in Practice," Upper Saddle River (N.J.): Addison-Wesley, 2013.
  2. P. Clements, F. Bachman, L. Bass, D. Garlan, J. Ivers, R. Little, R. Nord, and J. Stafford, "Documenting software architectures: Views and beyond," Addison-Wesley, 2002.
  3. K. Wiegers and J. Beatty, "Software requirements," Sydney: Pearson Education, 2013.
  4. M. Aychew and E. Alemneh. "Selection of architectural patterns based on tactics," 2022 International Conference on Information and Communication Technology for Development for Africa (ICT4DA), IEEE, 2022.
  5. P. Kruchten, "Mommy, where do software architectures come from," In Proceedings of the 1st Intl. Workshop on Architectures for Software Systems, pp.198-205, 1995.
  6. F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal, "Pattern-oriented software architecture-A system of patterns," Chichester, U.K., John Wiley & Sons, 1996.
  7. M. Richards, "Software Architecture Patterns," 1st ed. O'Reilly, 2015.
  8. P. M. Jacob, and P. Mani, "Software architecture pattern selection model for Internet of Things based systems," IET Software, Vol.12, No.5, pp.390-396, 2018. https://doi.org/10.1049/iet-sen.2017.0206
  9. M. Galster, A. Eberlein, and M. Moussavi, "Systematic selection of software architecture styles," Iet Software, Vol.4, No.5, pp.349-360, 2010. https://doi.org/10.1049/iet-sen.2009.0004
  10. S. K. Lo, Q. Lu, H. Y. Paik, and L. Zhu. "A decision model for federated learning architecture pattern selection," arXiv preprint arXiv:2204.13291, 2022.
  11. M. Kassab, M. Mazzara, J. Lee, and G. Succi, "Software architectural patterns in practice: An empirical study," Innovations in Systems and Software Engineering, Vol.14, pp.263-271, 2018. https://doi.org/10.1007/s11334-018-0319-4
  12. D. K. Kim and C. El Khawand, "An approach to precisely specifying the problem domain of design patterns," Journal of Visual Languages & Computing, Vol.18, No.6, pp.560-591, 2007. https://doi.org/10.1016/j.jvlc.2007.02.009
  13. J. Kim, S. Kang, and J. Lee, "A software architecture design method that matches problem frames and architectural patterns," Journal of KIISE, Vol.42, No.3, pp.341-360, 2015. https://doi.org/10.5626/JOK.2015.42.3.341
  14. D. Pandey, U. Suman, and A. K. Ramani, ''An effective requirement engineering process model for software development and requirements management,'' in 2010 International Conference on Advances in Recent Technologies in Communication and Computing, pp.287-291, 2010.
  15. Swit.or.kr, 2022. [internet] https://www.swit.or.kr/IS/web/isCbmRefView.jsp?ref_sq=1104&schCode=.
  16. E. Gamma, R. Johnson, R. Helm, R. E. Johnson, and J. Vlissides, "Design patterns: Elements of reusable object-oriented software," Pearson Deutschland GmbH, 1995.
  17. Github - webosose/umediaserver, Github, 2022. [Internet], https://github.com/webosose/umediaserver.