Abstract
The software system design phase has recently received increasing attention due to continuous growth in both the size and complexity of software systems. As a key concept of this phase, software architecture plays an important role in the software extension cycle to the extent that the success of a software project is often determined by the degree of its design efficiency. In addition, software architecture evaluation is a fundamental step toward its subsequent validation. This paper is an attempt to propose an innovative method, based on fuzzy logic, to evaluate software architecture that addresses the inherent problems of existing methods found in the literature. The method can be used for complete design or even reconstruction of the architecture. Given the multi-faceted nature of the problem of evaluation and selection of an optimal architecture, we have employed a multi-objective decision technique, namely fuzzy hierarchical analysis process, which solves the problems associated with uncertainties and inaccuracies by incorporating fuzzy logic.
Similar content being viewed by others
References
Abowd G, Bass L, Clements P, Kazman R, Northrop L (1997) Recommended best industrial practice for software architecture evaluation (No. CMU/SEI-96-TR-025). Carnegie-Mellon University, Pittsburgh PA, Software Engineering Institute
Abrahão S, Insfran E (2017) Evaluating Software Architecture Evaluation Methods: An Internal Replication. In: Proceedings of the 21st international conference on evaluation and assessment in software engineering. ACM, pp 144–153
Babu KD, Govindaraju P, Reddy AR (2011) ANP-GP approach for selection of software architecture styles. Int J Softw Eng 1(5):91–104
Babu K, Rajulu PG, Reddy AR, Kumari AN (2010) Selection of architecture styles using analytic network process for the optimization of software architecture. arXiv preprint arXiv:1005.4271
Bass L, Clements P, Kazman R (2003) Software architecture in practice. Addison-Wesley Professional, New York
Bengtsson P (2002) Architecture-level modifiability analysis. Doctoral dissertation, Free University of Amsterdam
Binns P, Englehart M, Jackson M, Vestal S (1996) Domain-specific software architectures for guidance, navigation and control. Int J Softw Eng Knowl Eng 6(02):201–227
Chang DY (1996) Applications of the extent analysis method on fuzzy AHP. Eur J Oper Res 95(3):649–655
Chang CW, Wu CR, Lin HL (2009) Applying fuzzy hierarchy multiple attributes to construct an expert decision making process. Expert Syst Appl 36(4):7363–7368
Clements P, Garlan D, Bass L, Stafford J, Nord R, Ivers J, Little R (2002) Documenting software architectures: views and beyond. Pearson Education, London
Dasanayake, S., Markkula, J., Aaramaa, S., & Oivo, M. (2015, September). Software architecture decision-making practices and challenges: an industrial case study. In: 2015 24th Australasian software engineering conference (ASWEC). IEEE, pp. 88–97
Dhaya C, Zayaraz G (2012) Fuzzy based quantitative evaluation of architectures using architectural knowledge. Int J Adv Sci Technol 49:137–154
Dwivedi AK, Rath SK (2014) Selecting and formalizing an architectural style. In: 2014 seventh international conference on contemporary computing (IC3). IEEE, pp 364–369
Galster M, Eberlein A, Moussavi M (2010) Systematic selection of software architecture styles. IET Softw 4(5):349–360
Garlan D, Allen R, Ockerbloom J (1994) Exploiting style in architectural design environments. ACM SIGSOFT Softw Eng Notes 19(5):175–188
Garlan D, Monroe R, Wile D (2010) ACME: an architecture description interchange language. In: CASCON first decade high impact papers. IBM Corp., pp 159–173
Gorton I (2006) Essential software architecture. Springer, Berlin
Harker PT, Vargas LG (1987) The theory of ratio scale estimation: Saaty’s analytic hierarchy process. Manag Sci 33(11):1383–1403
Hämäläinen N (2008) Evaluation and measurement in enterprise and software architecture management. Jyväskylä studies in computing 88
ISO/IEC, ISO/IEC CD 25010.3 (2009) Systems, software engineering - Software product Quality Requirements and Evaluation (SQuaRE) Software product quality, and system quality in use models, ISO
Kazman R, Bass L, Abowd G, Webb M (1994) SAAM: a method for analyzing the properties of software architectures. In: 16th international conference on software engineering, 1994. Proceedings. ICSE-16. IEEE, pp 81–90
Kazman R, Klein M, Clements P (2002) ATAM: method for architecture evaluation: ATAM—architecture trade-off analysis method report
Klein MH, Kazman R, Bass L, Carriere J, Barbacci M, Lipson H (1999) Attribute-based architecture styles. In: Software architecture. Springer Berlin, pp 225–243
Van Laarhoven PJM, Pedrycz W (1983) A fuzzy extension of Saaty’s priority theory. Fuzzy Sets Syst 11(1–3):229–241
Lassing N (2002) Architecture-level modifiability analysis. Doctoral dissertation, Free University of Amsterdam
Luckham DC, Kenney JJ, Augustin LM, Vera J, Bryan D, Mann W (1995) Specification and analysis of system architecture using Rapide. IEEE Trans Softw Eng 21(4):336–354
Magee J, Dulay N, Eisenbach S, Kramer J (1995) Specifying distributed software architectures. In: Software engineering—ESEC’95, pp 137–153
Mahdavi-Hezavehi S, Durelli VH, Weyns D, Avgeriou P (2017) A systematic literature review on methods that handle multiple quality attributes in architecture-based self-adaptive systems. Inf Softw Technol 90:1–26
Maranzano J (1993) Best current practices: software architecture validation. AT&T Report
Medvidovic N, Oreizy P, Robbins JE, Taylor RN (1996) Using object-oriented typing to support architectural design in the C2 style. ACM SIGSOFT Softw Eng Notes 21(6):24–32
Medvidovic N, Taylor RN (2000) A classification and comparison framework for software architecture description languages. IEEE Trans Softw Eng 26(1):70–93
Moaven S, Habibi J, Alidoosti R, Mosaed AP (2015) Towards a knowledge based approach to style driven architecture design. Procedia Comput Sci 62:236–244
Moaven S, Habibi J, Ahmadi H, Kamandi A (2008) A decision support system for software architecture-style selection. In: Sixth international conference on software engineering research, management and applications, 2008. SERA’08. IEEE, pp 213–220
Moaven S, Habibi J, Ahmadi H, Kamandi A (2008) A fuzzy model for solving architecture styles selection multi-criteria problem. In: Second UKSIM European symposium on computer modeling and simulation, 2008. EMS’08. IEEE, pp 388–393
Moaven S, Kamandi A, Habibi J, Ahmadi H (2009) Toward a framework for evaluating heterogeneous architecture styles. In: First Asian conference on intelligent information and database systems, 2009. ACIIDS 2009. IEEE, pp 155–160
Montagud S, Abrahão S, Insfran E (2012) A systematic review of quality attributes and measures for software product lines. Softw Quality J 20(3–4):425–486
Nord RL, Barbacci MR, Clements P, Kazman R, Klein M (2003) Integrating the Architecture Tradeoff Analysis Method (ATAM) with the cost benefit analysis method (CBAM). Carnegie-Mellon Univ Pittsburgh Pa Software Engineering Inst
Paul C, Kazman R, Klein M (2002) Evaluating software architectures: methods and case studies. AddisonÇęWesley, Boston, MA
Saaty TL (1977) A scaling method for priorities in hierarchical structures. J Math Psychol 15(3):234–281
Saaty TL (1990) How to make a decision: the analytic hierarchy process. Euro J Oper Res 48(1):9–26
Saaty TL (1980) The analytic hierarchy process, paperback edition. RWS Publications, Pittsburgh (First appeared)
Schmidt D, Stal M, Rohnert H, Buschmann F (1996) Pattern-oriented software architecture, volume 1: a system of patterns
Shaw M, DeLine R, Klein DV, Ross TL, Young DM, Zelesnik G (1995) Abstractions for software architecture and tools to support them. IEEE Trans Softw Eng 21(4):314–335
Svahnberg M (2003) Supporting software architecture evolution Doctoral dissertation, Blekinge Institute of Technology
Tahmasebipour S, Babamir SM (2014) Ranking of common architectural styles based on availability, security and performance quality attributes. J Comput Secur 1(2):83–93
Tan C, Chen X (2010) Intuitionistic fuzzy Choquet integral operator for multi-criteria decision making. Expert Syst Appl 37(1):149–157
Thomas J (2002) Architecture assessment of information-system families. Doctoral dissertation, Eindhoven University of Technology
Wohlin C, Höst M, Henningsson K (2003) Empirical research methods in software engineering. In: Empirical methods and studies in software engineering. Springer, Berlin, pp 7–23
Zadeh LA (1965) Fuzzy sets. Inf Control 8(3):338–353
Zaki MZ, Jawawi DN, Hamdan NM, Halim SA, Mamat R, Mahat FS, Omar NA (2013) Multi-criteria architecture style selection for precision farming software product lines using fuzzy AHP. Int J Adv Soft Comput Appl 5(3):85
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Moaven, S., Habibi, J. A fuzzy-AHP-based approach to select software architecture based on quality attributes (FASSA). Knowl Inf Syst 62, 4569–4597 (2020). https://doi.org/10.1007/s10115-020-01496-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10115-020-01496-7