Quarterly Journal of Information and Communication Technology ​

Achieve the Alterability in Design of Software System Architecture

Document Type : Original Research Article

Author

School of Computer Engineering, Iran University of Science and Technology, Tehran, Iran

10.22034/apj.2022.253916
Abstract
Today, the increasing use of software systems in organizations, companies and small and large industries has left software developers confused about how to develop software with old development methods. With the increasing use of architecture-based process models, software architecture design has become particularly important challenge. Software architecture is one of the key parts of software production, especially its commercial type, which, of course, has been developed in recent years by creating classic models of software production to larger software. Software architecture is a structural system or structures of an operating system that includes software elements, properties visible from outside those elements, and the relationships between them. A good architectural design is a design that meets the quality needs expected by the customer. Achieving the alterability ability is one of the most important quality features in the design of modern software systems. In this article, first the various methods of software architecture design will be examined and then the qualitative feature of alterability and changeability will be introduced in detail. Finally, software architecture design based on achieving the alterability will be discussed.

Keywords


     [1]          Ahmad, M.O., Markkula, J., Oivo, M.: Kanban in software development: a systematic literature review. In: 2013 39th Euromicro Conference on Software Engineering and Advanced Applications, pp. 9–16. IEEE (2013)
     [2]          Angelov, S., & de Beer, P. (2017). Designing and applying an approach to software architecting in agile projects in education. Journal of Systems and Software, 127, 78–90.
     [3]          Babar, M., Brown, A., & Mistrik, I. (2013). Making software architecture and agile approaches work together: Foundations and approaches. Agile software architecture: Aligning agile processes and software architectures.
     [4]          Kruchten, P. B. (1995). The 4 + 1 view model of architecture. IEEE Software, 12(6), 42–50.
     [5]          Abrahamsson, P., Babar, M. A., & Kruchten, P. (2010). Agility and architecture: Can they coexist? IEEE Software, 27(2).
     [6]          Buschmann, F., Henney, K., & Schmidt, D. C. (2007). Pattern-oriented software architecture, on patterns and pattern languages (Vol. 5). Wiley.
     [7]          Chauhan, M. A., Babar, M. A., & Benatallah, B. (2016). Architecting cloud-enabled systems: A systematic survey of challenges and solutions. Software: Practice and Experience.
     [8]          Matinlassi, M., Niemelä, E., & Dobrica, L. (2002). Quality-driven architecture design and quality analysis method. A revolutionary initiation approach to a product line architecture. Espoo: VTT Technical Research Centre of Finland.
     [9]          Kazman, R., Bass, L., Webb, M., & Abowd, G. (1994). SAAM: A method for analyzing the properties of software architectures. In Proceedings of the 16th International Conference on Software Engineering (pp. 81–90). IEEE Computer Society Press.
  [10]          Clements, P., Garlan, D., Bass, L., Stafford, J., Nord, R., Ivers, J., & Little, R. (2002). Documenting software architectures: Views and beyond. Pearson Education.
  [11]          Coplien, J. O. & Bjørnvig, G. (2011). Lean architecture: For agile software development. Wiley.
  [12]          Chauhan, M. A., Babar, M. A., & Probst, C. W. (2016). A process framework for designing software reference architectures for providing tools as a service. In Product-Focused Software Process Improvement: 17th International Conference, PROFES 2016, Trondheim, Norway, 22–24 November 2016, Proceedings 17 (pp. 111–126). Springer.
  [13]          Gorton, I. (2006). Essential software architecture. Springer Science & Business Media.
  [14]          Kazman, R., Klein, M., Barbacci, M., Longstaff, T., Lipson, H., & Carriere, J. (1998). The architecture tradeoff analysis method. In Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998. ICECCS’98. Proceedings (pp. 68–78). IEEE.
  [15]          Kiv, S., Heng, S., Wautelet, Y., Poelmans, S., Kolp, M.: Using an ontology for systematic practice adoption in agile methods: expert system and practitioners-based validation. Expert Syst. Appl. 195, 116520 (2022)
  [16]          Wirsing, M., et al.: Software Engineering for Collective Autonomic Systems, 537 p. Springer, Heidelberg (2015)
  [17]          Silva, E., Batista, T., Oquendo, F.: A mission-oriented approach for designing system-of-systems. In: Proceedings of the 10th IEEE System-of-Systems Engineering Conference (SoSE), pp. 346–351, May 2015
  [18]          SAE Standard AS5506-2012: Architecture Analysis & Design Language (AADL), 398 p., September 2012
  [19]          Quilbeuf, J., Cavalcante, E., Traonouez, L.-M., Oquendo, F., Batista, T., Legay, A.: A logic for the statistical model checking of dynamic software architectures. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9952, pp. 806–820. Springer, Heidelberg (2016).
  [20]          Oquendo, F., et al.: Proceedings of the 1st ACM International Workshop on Software Engineering for Systems-of-Systems (SESoS), Montpellier, France, July 2013