Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Decision-making techniques for software architecture design: A comparative survey

Published: 18 October 2011 Publication History

Abstract

The architecture of a software-intensive system can be defined as the set of relevant design decisions that affect the qualities of the overall system functionality; therefore, architectural decisions are eventually crucial to the success of a software project. The software engineering literature describes several techniques to choose among architectural alternatives, but it gives no clear guidance on which technique is more suitable than another, and in which circumstances. As such, there is no systematic way for software engineers to choose among decision-making techniques for resolving tradeoffs in architecture design. In this article, we provide a comparison of existing decision-making techniques, aimed to guide architects in their selection. The results show that there is no “best” decision-making technique; however, some techniques are more susceptible to specific difficulties. Hence architects should choose a decision-making technique based on the difficulties that they wish to avoid. This article represents a first attempt to reason on meta-decision-making, that is, the issue of deciding how to decide.

References

[1]
Al-Naeem, T., Gorton, I., Ali Babar, M., Rabhi, F., and Benatallah, B. 2005. A quality-driven systematic approach for architecting distributed software applications. In Proceedings of the 27th International Conference on Software Engineering. ACM Press, New York, NY.
[2]
Ali Babar, M., Zhu, L., and Jeffery, R. 2004. A framework for classifying and comparing software architecture evaluation methods. In Proceedings of the Australian Software Engineering Conference.
[3]
America, P., Obbink, H., and Rommes, E. 2003. Multi-view variation modeling for scenario analysis. In Proceedings of the 5th International Workshop on Product Family Engineering (PFE-5). Springer-Verlag.
[4]
Andersson, J. 2000. A survey of multiobjective optimization in engineering design. LiTH-IKP-R-1097, Tech. rep. Department of Mechanical Engineering, Linkoping University, Linkoping, Sweden.
[5]
Andrews, A., Mancebo, E., Runeson, P., and France, R. 2005. A framework for design tradeoffs. Softw. Quality J. 13, 4, 28.
[6]
Bandor, M. S. 2006. Quantitative methods for software selection and evaluation. Tech. rep. CMU/SEI-2006-TN-026, Carnegie Mellon University.
[7]
Barbacci, M. R., Ellison, R., Lattanze, A. J., Stafford, J. A., Weinstock, C. B., and Wood, W. G. 2003. Quality attribute workshops (QAWs), 3rd ed. http://www.sei.cmu.edu/publications/documents/03.reports/03tr016.html
[8]
Basili, V., Caldiera, G., and Cantone, G. 1992. A reference architecture for the component factory. ACM Trans. Softw. Eng. Method. 1, 1, 53--80.
[9]
Bass, L., Clements, P., and Kazman, R. 2003. Software Architecture in Practice. 2nd ed. Addison-Wesley. Reading, MA.
[10]
Biolchini, J. C. D. A., Mian, P. G., Natali, A. C. C., Conte, T. U., and Travassos, G. H. 2007. Scientific research ontology to support systematic review in software engineering. Advanced Eng. Inform. 21, 2, 133--151.
[11]
Booch, G. 2007. The irrelevance of architecture. IEEE Softw. 24, 3, 10--11.
[12]
Bosch, J. 2000. Design and Use of Software Architecture: Adopting and Evolving a Product-Line Approach. Addison-Wesley, Reading, MA.
[13]
Bosch, J. 2004. Software architecture: The next step. In Proceedings of the 1st European Workshop on Software Architecture (EWSA). Springer-Verlag, Berlin, Germany.
[14]
Brooks, F. P. 1987. No silver bullet: Essence and accidents of software engineering. IEEE Comp. 20, 4, 10--19.
[15]
Cantone, G. and Donzelli, P. 1999. Goal-oriented software measurement models. In Proceedings of the Sofware Control and Metrics for Software Quality Conference. Shaker Publishing, Maastricht.
[16]
Cavanaugh, C. P. and Polen, S. M. 2002. Add decision analysis to your COTS selection process. J. Defense Softw. Eng. 21--25.
[17]
Chung, L., Gross, D., and Yu, E. 1999. Architectural design to meet stakeholder requirements. In. P Donohue, Software Architecture, Kluwer Academic, TX.
[18]
Clements, P., Kazman, R., and Klein, M. 2002. Evaluating Software Architecture: Methods and Case Studies. Addison-Wesley, Reading, MA.
[19]
Clements, P. and Northrop, L. 2002. Software Product Lines: Practice and Patterns. Addison-Wesley, Reading, MA.
[20]
Dabous, F. T. and Rabhi, F. A. 2006. A framework for evaluating alternative architectures and its application to financial business processes. In Poceedings of the Australian Software Engineering Conference.
[21]
Ding, L. and Medvidovic, N. 2001. Focus: A light-weight, incremental approach to software architecture recovery and evolution. In Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA). IEEE Computer Society Press, Los Alamitos, CA.
[22]
Dobrica, L. and Niemelä, E. 2002. A survey on software architecture analysis methods. IEEE Trans. Softw. Eng. 28, 7, 638--653.
[23]
Eeles, P. 2005. Capturing Architectural Requirements. IBM Rational Developer Works. http://www.ibm.com/developerworks/rational/library/4706.html.
[24]
Falessi, D., Ali Babar, M., Cantone, G., and Kruchten, P. 2010. Applying empirical software engineering to software architecture: Challenges and lessons learned. Empir. Softw. Eng. to appear. DOI 10.1007/s10664-009-9121-0.
[25]
Falessi, D., Cantone, G., and Becker, M. 2006. Documenting design decision rationale to improve individual and team design decision making: An experimental evaluation. In Proceedings of the 5th ACM/IEEE International Symposium on Empirical Software Engineering.
[26]
Falessi, D., Cantone, G., and Kruchten, P. 2007a. Do architecture design methods meet architects' needs? In Proceedings of the 6th Working IEEE/IFIP Conference on Software Architecture. IEEE Computer Society Press, Los Alamitos, CA.
[27]
Falessi, D., Cantone, G., and Kruchten, P. 2008. Value-based design decision rationale documentation: Principles and empirical feasibility study. In Proceeding of the 7th Working IEEE/IFIP Conference on Software Architecture (WICSA). IEEE Computer Society Press, Los Alamitos, CA.
[28]
Falessi, D., Kruchten, P., and Cantone, G. 2007b. Issues in applying empirical software engineering to software architecture. In Proceedings of the 1st European Conference on Software Architecture.
[29]
Gilb, T. and Brodie, L. 2005. Competitive Engineering: A Handbook for Systems Engineering, Requirements Engineering, and Software Engineering Using Planguage. Elsevier Butterworth Heinemann. Oxford, UK.
[30]
Gomaa, H. 2004. Designing-Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures. Addison Wesley Longman, Reading, MA.
[31]
Grünbacher, P., Egyed, A., and Medvidovic, N. 2004. Reconciling software requirements and architectures with intermediate models. J. Softw. Syst. Model. 3, 3, 235--253.
[32]
Harman, M. 2007. The current state and future of search based software engineering. In Proceedings of the International Conference on Software Engineering: Future of Software Engineering IEEE Computer Society Press, Los Alamitos, CA.
[33]
Hofmeister, C., Kruchten, P., Nord, R. L., Obbink, H., Ran, A., and America, P. 2007. A general model of software architecture design derived from five industrial approaches. J. Syst. Softw. 80, 1, 106--126.
[34]
Jansen, A. and Bosch, J. 2005. Software architecture as a set of architectural design decisions. In Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture (WICSA).
[35]
Jazayeri, M. 2002. On architectural stability and evolution. In Proceedings of the 7th Ada-Europe International Conference on Reliable Software Technologies.
[36]
Jazayeri, M., Ran, A., and Linden, F. V. D. 2000. Software Architecture for Product Families: Principles and Practice. Addison-Wesley, Reading, MA.
[37]
Kano. 1993. A special issue on Kano's methods for understanding customer-defined quality. Center Quality Manag. J. 2, 4, 3--35.
[38]
Karlsson, L., Host, M., and Regnell, B. 2006. Evaluating the practical use of different measurement scales in requirements prioritisation. In Proceedings of the 5th ACM/IEEE International Symposium on Empirical Software Engineering. ACM Press, New York, NY.
[39]
Kazman, R., Jai, A., and Klein, M. 2001. Quantifying the costs and benefits of architectural decisions. In Proceedings of the 23rd International Conference on Software Engineering.
[40]
Keeney, R. L. and Raiffa, H. 1976. Decisions with Multiple Objectives: Preferences and Value Tradeoffs. Wiley, New York, NY.
[41]
Kitchenham, B. 2004. Procedures for performing systematic reviews. Joint tech. rep. TR/SE-0401 and NICTA 0400011T.1, Keele University, Staffordshire, U.K.
[42]
Klein, G. 1999. Sources of Power: How People Make Decisions MIT Press. Cambridge, MA.
[43]
Kontio, J. 1996. A case study in applying a systematic method for COTS selection. In Proceedings of the 18th International Conference on Software Engineering (ICSE).
[44]
Kruchten, P. 1995. Mommy, where do software architectures come from? In Proceedings of the 1st International Workshop on Architectures for Software Systems (IWASS1).
[45]
Kruchten, P. 2003. The Rational Unified Process: An Introduction, 3rd Ed. Addison-Wesley Professional, Reading, MA.
[46]
Kruchten, P. 2004. An ontology of architectural design decisions in software intensive systems. In Proceedings of the 2nd Groningen Workshop on Software Variability.
[47]
Kruchten, P., Capilla, R., and Duenas, J. 2009. The decision view's role in software architecture practice. IEEE Softw. 26, 2, 36--42.
[48]
Kruchten, P., Obbink, H., and Stafford, J. 2006. The past, present and future for software architecture. IEEE Softw. 23, 2, 2--10.
[49]
Li, B., Zeng, G., and Lin, Z. 1999. A domain specific software architecture style for CSCD system. ACM SIGSOFT Softw. Eng. Notes 24, 1, 59--64.
[50]
Li, J., Conradi, R., Bunse, C., Torchiano, M., Slyngstad, O. P. N., and Morisio, M. 2009. Development with off the shelf components: 10 facts. IEEE Softw. 26, 2, 80--870.
[51]
Lozano-Tello, A. and Gómez-pérez, A. 2002. BAREMO: How to choose the appropriate software component using the analytic hierarchy process. In Proceedings of the 14th International Conference on Software Engineering and Knowledge Engineering. ACM Press, New York, NY.
[52]
Maranzano, J. F., Rozsypal, S. A., Zimmerman, G. H., Warnken, G. W., Wirth, P. E., and Weiss, D. M. 2005. Architecture reviews: Practice and experience. IEEE Softw. 22, 2, 34--43.
[53]
Moore, M., Kazman, R., Klein, M., and Asundi, J. 2003. Quantifying the value of architecture design decisions: Lessons from the field. In Proceedings of the 25th International Conference on Software Engineering, (ICSE).
[54]
Ncube, C. and Maiden, N. 1999. PORE: Procurement oriented requirements engineering method for the component-based systems engineering development paradigm. In Proceedings of the 2nd International Workshop on CBSE.
[55]
Nuseibeh, B. 2001. Weaving together requirements and architectures. Computer 34, 3, 115--117.
[56]
Obbink, H., Kruchten, P., Kozaczynski, W., Hilliard, R., Ran, A., Postema, H., Lutz, D., Kazman, R., Tracz, W., and Kahane, E. 2002. Report on software architecture review and assessment (SARA), Version 1.0. At http://philippe.kruchten.com/architecture/SARAv1.pdf.
[57]
Ozkaya, I., Bass, L., Sangwan, R. S., and Nord, R. L. 2008. Making practical use of quality attribute information. IEEE Softw. 25, 2, 25--33.
[58]
Saaty, T. L. 2000. Fundamentals of Decision Making and Priority Theory with the Analytic Hierarchy Process. RWS Publications. Pittsburgh, PA.
[59]
Schuster, N., Zimmermann, O., and Pautasso, C. 2007. ADkwik: Web 2.0 collaboration system for architectural decision engineering. In Proceedings of the 19th International Conference on Software Engineering and Knowledge Engineering (SEKE).
[60]
Sei. 2007. Published software architecture definitions. http://www.sei.cmu.edu/architecture/published_definitions.html.
[61]
Shaw, M. and Clements, P. 2006. The golden age of software architecture. IEEE Softw. 23, 2, 31--39.
[62]
Shaw, M. and Garlan, D. 1996. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall. Upper Saddle River, NJ.
[63]
Svahnberg, M., Wohlin, C., Lunberg, L., and Mattsson, M. 2003. A quality-driven decision support method for identifying software architecture candidates. Int. J. Softw. Eng. Knowl. Eng. 13, 5, 547--575.
[64]
Taylor, R. N., Medvidovic, N., and Dashofy, E. 2009. Software Architecture: Foundations, Theory, and Practice. Wiley Publishing, New York, NY.
[65]
Triantaphyllou, E. 2004. Multi-Criteria Decision Making Methods: A Comparative Study. Kluwer Academic Publisher, Dordrecht, The Netherlands.
[66]
Wanyama, T. and Far, B. H. 2005. Towards providing decision support for COTS selection. In Proceedings of the Canadian Conference on Electrical and Computer Engineering.
[67]
Zimmermann, O., Gschwind, T., Küster, J., Leymann, F., and Schuster, N. 2007. Reusable architectural decision models for enterprise application development. In Proceedings of the Conference on Quality of Softwares.
[68]
Zimmermann, O., Koehler, J., Leymann, F., Polley, R., and Schuster, N. 2009. Managing architectural decision models with dependency relations, integrity constraints, and production rules. J. Syst. Softw. 82, 8, 1249--1267.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Computing Surveys
ACM Computing Surveys  Volume 43, Issue 4
October 2011
556 pages
ISSN:0360-0300
EISSN:1557-7341
DOI:10.1145/1978802
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 October 2011
Accepted: 01 January 2010
Revised: 01 September 2009
Received: 01 December 2008
Published in CSUR Volume 43, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Decision-making
  2. architecture
  3. design decisions

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)229
  • Downloads (Last 6 weeks)23
Reflects downloads up to 29 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Developing a Value–Risk Management Model for Construction ProjectsJournal of Construction Engineering and Management10.1061/JCEMD4.COENG-13396150:1Online publication date: Jan-2024
  • (2024)VulNet: Towards improving vulnerability management in the Maven ecosystemEmpirical Software Engineering10.1007/s10664-024-10448-629:4Online publication date: 5-Jun-2024
  • (2024)Design of Good Information Systems ArchitecturesInternet Computing10.1007/978-3-031-61014-1_3(51-81)Online publication date: 28-Aug-2024
  • (2023)Traceability of Architectural Design Decisions and Software Artifacts: A Systematic Mapping StudyFoundations of Computing and Decision Sciences10.2478/fcds-2023-001848:4(401-423)Online publication date: 21-Dec-2023
  • (2023)A Survey of Tool Support for Working with Design Decisions in CodeACM Computing Surveys10.1145/360786856:2(1-37)Online publication date: 10-Jul-2023
  • (2023)A Qualitative Study on the Implementation Design Decisions of DevelopersProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00047(435-447)Online publication date: 14-May-2023
  • (2023)Empirical research in software architecture — Perceptions of the communityJournal of Systems and Software10.1016/j.jss.2023.111684202(111684)Online publication date: Aug-2023
  • (2023)It’s about timeInformation and Software Technology10.1016/j.infsof.2023.107163158:COnline publication date: 1-Jun-2023
  • (2023)System design and optimization of electronic communication based on machine learningInternational Journal of System Assurance Engineering and Management10.1007/s13198-023-01984-3Online publication date: 30-Jun-2023
  • (2023)Characterizing Requirements SmellsProduct-Focused Software Process Improvement10.1007/978-3-031-49266-2_27(387-398)Online publication date: 11-Dec-2023
  • Show More Cited By

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media