skip to main content
Skip header Section
Software Architecture in PracticeOctober 2012
Publisher:
  • Addison-Wesley Professional
ISBN:978-0-321-81573-6
Published:05 October 2012
Pages:
640
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

The award-winning and highly influential Software Architecture in Practice, Third Edition, has been substantially revised to reflect the latest developments in the field. In a real-world setting, the book once again introduces the concepts and best practices of software architecturehow a software system is structured and how that systems elements are meant to interact. Distinct from the details of implementation, algorithm, and data representation, an architecture holds the key to achieving system quality, is a reusable asset that can be applied to subsequent systems, and is crucial to a software organizations business strategy. The authors have structured this edition around the concept of architecture influence cycles. Each cycle shows how architecture influences, and is influenced by, a particular context in which architecture plays a critical role. Contexts include technical environment, the life cycle of a project, an organizations business profile, and the architects professional practices. The authors also have greatly expanded their treatment of quality attributes, which remain central to their architecture philosophywith an entire chapter devoted to each attributeand broadened their treatment of architectural patterns. If you design, develop, or manage large software systems (or plan to do so), you will find this book to be a valuable resource for getting up to speed on the state of the art. Totally new material covers Contexts of software architecture: technical, project, business, and professional Architecture competence: what this means both for individuals and organizations The origins of business goals and how this affects architecture Architecturally significant requirements, and how to determine them Architecture in the life cycle, including generate-and-test as a design philosophy; architecture conformance during implementation; architecture and testing; and architecture and agile development Architecture and current technologies, such as the cloud, social networks, and end-user devices

Cited By

  1. ACM
    Kochanthara S, Singh T, Forrai A and Cleophas L (2024). Safety of Perception Systems for Automated Driving: A Case Study on Apollo, ACM Transactions on Software Engineering and Methodology, 33:3, (1-28), Online publication date: 31-Mar-2024.
  2. Jepsen S and Worm T Designing and Evaluating Interoperable Industry 4.0 Middleware Software Architecture: Reconfiguration of Robotic System Software Architecture, (205-220)
  3. Ozkaya I and Ozkaya I (2023). Can Architecture Knowledge Guide Software Development With Generative AI?, IEEE Software, 40:5, (4-8), Online publication date: 1-Sep-2023.
  4. Andersson J, Caporuscio M, D’Angelo M and Napolitano A (2023). Architecting decentralized control in large-scale self-adaptive systems, Computing, 105:9, (1849-1882), Online publication date: 1-Sep-2023.
  5. Soares R, Capilla R, dos Santos V and Nakagawa E (2023). Trends in continuous evaluation of software architectures, Computing, 105:9, (1957-1980), Online publication date: 1-Sep-2023.
  6. ACM
    Wang A, Feng N and Chechik M Code-Level Functional Equivalence Checking of Annotative Software Product Lines Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A, (64-75)
  7. ACM
    Karanikolas C, Dimitroulakos G and Masselos K (2022). Simulating Software Evolution to Evaluate the Reliability of Early Decision-making among Design Alternatives toward Maintainability, ACM Transactions on Software Engineering and Methodology, 32:3, (1-38), Online publication date: 31-Jul-2023.
  8. Bucaioni A, Di Salle A, Iovino L, Malavolta I and Pelliccione P (2023). Reference architectures modelling and compliance checking, Software and Systems Modeling (SoSyM), 22:3, (891-917), Online publication date: 1-Jun-2023.
  9. ACM
    Lim S, Lee H, Kim H, Lee H and Kwon T ZTLS: A DNS-based Approach to Zero Round Trip Delay in TLS handshake Proceedings of the ACM Web Conference 2023, (2360-2370)
  10. Catano N (2023). Program Synthesis for Cyber-Resilience, IEEE Transactions on Software Engineering, 49:3, (962-972), Online publication date: 1-Mar-2023.
  11. Van Landuyt D and Joosen W (2022). A descriptive study of assumptions in STRIDE security threat modeling, Software and Systems Modeling (SoSyM), 21:6, (2311-2328), Online publication date: 1-Dec-2022.
  12. Ponce F, Soldani J, Astudillo H and Brogi A Should Microservice Security Smells Stay or be Refactored? Towards a Trade-off Analysis Software Architecture, (131-139)
  13. ACM
    Hassine J EVSec: An Approach to Extract and Visualize Security Scenarios from System Logs Proceedings of the 26th International Conference on Evaluation and Assessment in Software Engineering, (446-452)
  14. Batista P, Rodrigues C, Neto V and Kassab M ARC-SoISE: Towards a Reference Architecture for Constituents of Educational Systems-of-Information Systems 2022 17th Annual System of Systems Engineering Conference (SOSE), (142-147)
  15. Li R, Liang P, Soliman M and Avgeriou P (2022). Understanding software architecture erosion, Journal of Software: Evolution and Process, 34:3, Online publication date: 1-Mar-2022.
  16. Marín-Vega H, Alor-Hernández G, Colombo-Mendoza L, Bustos-López M and Zataraín-Cabada R (2022). ZeusAR: a process and an architecture to automate the development of augmented reality serious games, Multimedia Tools and Applications, 81:2, (2901-2935), Online publication date: 1-Jan-2022.
  17. Wijerathna L, Aleti A, Bi T and Tang A (2021). Mining and relating design contexts and design patterns from Stack Overflow, Empirical Software Engineering, 27:1, Online publication date: 1-Jan-2022.
  18. ACM
    Berkhout M, Leewis S and Smit K A Functional Architecture for the Verification, Validation, Deployment, and Execution of Business Decisions and Business Logic Proceedings of the 2021 5th International Conference on Software and e-Business, (1-6)
  19. Pérez-Verdejo J, Sánchez-García Á, Ocharán-Hernández J, Mezura-Montes E and Cortés-Verdín K (2021). Requirements and GitHub Issues: An Automated Approach for Quality Requirements Classification, Programming and Computing Software, 47:8, (704-721), Online publication date: 1-Dec-2021.
  20. Palma F, Zarraa O and Sadia A Are Developers Equally Concerned About Making Their APIs RESTful and the Linguistic Quality? A Study on Google APIs Service-Oriented Computing, (171-187)
  21. ACM
    Lima R, Kassab M and Neto V Discussing the Availability Quality Attribute in Systems-of-Systems Architectures based on a Simulation Experiment Proceedings of the XXXV Brazilian Symposium on Software Engineering, (416-421)
  22. Soliman M, Galster M and Avgeriou P An Exploratory Study on Architectural Knowledge in Issue Tracking Systems Software Architecture, (117-133)
  23. Woods E and Bashroush R How Software Architects Focus Their Attention Software Architecture, (312-326)
  24. Chinnappan K, Malavolta I, Lewis G, Albonico M and Lago P Architectural Tactics for Energy-Aware Robotics Software: A Preliminary Study Software Architecture, (164-171)
  25. ACM
    Nevelsteen K and Wehlou M IPSME- Idempotent Publish/Subscribe Messaging Environment Proceedings of the International Workshop on Immersive Mixed and Virtual Environment Systems (MMVE '21), (30-36)
  26. ACM
    Yánez W, Bahsoon R, Zhang Y and Kazman R (2021). Architecting Internet of Things Systems with Blockchain, ACM Transactions on Software Engineering and Methodology, 30:3, (1-46), Online publication date: 1-May-2021.
  27. ACM
    Jepsen S, Worm T, Mørk T and Hviid J An analysis of asset interoperability for I4.0 middleware Proceedings of the 36th Annual ACM Symposium on Applied Computing, (707-710)
  28. ACM
    Valle P, Garcés L and Nakagawa E Architectural strategies for interoperability of software-intensive systems Proceedings of the 36th Annual ACM Symposium on Applied Computing, (1399-1408)
  29. ACM
    Lebtag B, Teixeira P, Santos R, Viana D and Neto V Evaluating the Understandability and Expressiveness of Simulation Executable Models with Professionals Proceedings of the XIX Brazilian Symposium on Software Quality, (1-10)
  30. Valdivia J, Lora-González A, Limón X, Cortes-Verdin K and Ocharán-Hernández J (2020). Patterns Related to Microservice Architecture: a Multivocal Literature Review, Programming and Computing Software, 46:8, (594-608), Online publication date: 1-Dec-2020.
  31. Philip M, Seshadri A and Vijayakumar B (2020). Microservices Centric Architectural Model for Handling Data Stream Oriented Applications, Cybernetics and Information Technologies, 20:3, (32-44), Online publication date: 1-Sep-2020.
  32. ACM
    Santos J, Suloglu S, Ye J and Mirakhorli M Towards an Automated Approach for Detecting Architectural Weaknesses in Critical Systems Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops, (250-253)
  33. ACM
    Krüger T and Mauerer W Quantum Annealing-Based Software Components Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops, (445-450)
  34. ACM
    Malavolta I, Lewis G, Schmerl B, Lago P and Garlan D How do you architect your robots? Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice, (31-40)
  35. ACM
    Cai Y and Kazman R Software development data for architecture analysis Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice, (231-232)
  36. Guessi M, Oquendo F and Nakagawa E (2019). Ark: a constraint-based method for architectural synthesis of smart systems, Software and Systems Modeling (SoSyM), 19:3, (741-762), Online publication date: 1-May-2020.
  37. ACM
    Zhao Y, Xiao L, Wang X, Sun L, Chen B, Liu Y and Bondi A How Are Performance Issues Caused and Resolved?-An Empirical Study from a Design Perspective Proceedings of the ACM/SPEC International Conference on Performance Engineering, (181-192)
  38. Rimba P, Tran A, Weber I, Staples M, Ponomarev A and Xu X (2018). Quantifying the Cost of Distrust: Comparing Blockchain and Cloud Services for Business Process Execution, Information Systems Frontiers, 10.1007/s10796-018-9876-1, 22:2, (489-507), Online publication date: 1-Apr-2020.
  39. ACM
    Santos L, Silva E, Batista T, Cavalcante E, Leite J and Oquendo F An architectural style for internet of things systems Proceedings of the 35th Annual ACM Symposium on Applied Computing, (1488-1497)
  40. Lytra I, Carrillo C, Capilla R and Zdun U (2019). Quality attributes use in architecture design decision methods: research and practice, Computing, 102:2, (551-572), Online publication date: 1-Feb-2020.
  41. Ochei L, Petrovski A and Bass J (2019). Optimal deployment of components of cloud-hosted application for guaranteeing multitenancy isolation, Journal of Cloud Computing: Advances, Systems and Applications, 8:1, (1-38), Online publication date: 1-Dec-2019.
  42. Milhem H, Weiss M and Somé S Extraction of architectural patterns from frameworks and modeling their contributions to qualities Proceedings of the 26th Conference on Pattern Languages of Programs, (1-20)
  43. Mendoza C, Garcés K, Casallas R and Bocanegra J Detecting architectural issues during the continuous integration pipeline Proceedings of the 22nd International Conference on Model Driven Engineering Languages and Systems, (589-597)
  44. ACM
    Orellana C, Villegas M and Astudillo H Mitigating security threats through the use of security tactics to design secure cyber-physical systems (CPS) Proceedings of the 13th European Conference on Software Architecture - Volume 2, (109-115)
  45. ACM
    Castellanos C, Varela C and Correal D Measuring performance quality scenarios in big data analytics applications Proceedings of the 13th European Conference on Software Architecture - Volume 2, (165-172)
  46. ACM
    de Jong T and van der Werf J Process-mining based dynamic software architecture reconstruction Proceedings of the 13th European Conference on Software Architecture - Volume 2, (217-224)
  47. ACM
    Volpato T, Allian A and Nakagawa E Has social sustainability been addressed in software architectures? Proceedings of the 13th European Conference on Software Architecture - Volume 2, (245-249)
  48. ACM
    Villegas M, Orellana C and Astudillo H A study of over-the-air (OTA) update systems for CPS and IoT operating systems Proceedings of the 13th European Conference on Software Architecture - Volume 2, (269-272)
  49. ACM
    Allian A Promoting trust in interoperability of systems-of-systems Proceedings of the 13th European Conference on Software Architecture - Volume 2, (67-70)
  50. Galster M, Gilson F and Georis F What Quality Attributes Can We Find in Product Backlogs? A Machine Learning Perspective Software Architecture, (88-96)
  51. ACM
    Santos J, Sejfia A, Corrello T, Gadenkanahalli S and Mirakhorli M Achilles’ heel of plug-and-Play software architectures: a grounded theory based approach Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (671-682)
  52. ACM
    Laufer K, O'Sullivan J and Thiruvathukal G Tests as maintainable assets via auto-generated spies Proceedings of the Tenth ACM SIGPLAN Symposium on Scala, (17-21)
  53. Dasanayake S, Aaramaa S, Markkula J and Oivo M (2019). Impact of requirements volatility on software architecture, Journal of Software: Evolution and Process, 31:6, Online publication date: 24-Jun-2019.
  54. Bauer T, Antonino P and Kuhn T Towards architecting digital twin-pervaded systems Proceedings of the 7th International Workshop on Software Engineering for Systems-of-Systems and 13th Workshop on Distributed Software Development, Software Ecosystems and Systems-of-Systems, (66-69)
  55. Caraturan S and Goya D Major challenges of systems-of-systems with cloud and DevOps Proceedings of the 7th International Workshop on Software Engineering for Systems-of-Systems and 13th Workshop on Distributed Software Development, Software Ecosystems and Systems-of-Systems, (10-17)
  56. Márquez G, Astudillo H and Taramasco C Exploring security issues in telehealth systems Proceedings of the 1st International Workshop on Software Engineering for Healthcare, (65-72)
  57. Dürschmid T, Kang E and Garlan D Trade-off-oriented development Proceedings of the 41st International Conference on Software Engineering: New Ideas and Emerging Results, (109-112)
  58. Sharma T How deep is the mud Proceedings of the Second International Conference on Technical Debt, (59-60)
  59. Cui D, Liu T, Cai Y, Zheng Q, Feng Q, Jin W, Guo J and Qu Y Investigating the impact of multiple dependency structures on software defects Proceedings of the 41st International Conference on Software Engineering, (584-595)
  60. Neto V, Paes C, Rohling A, Manzano W and Nakagawa E Modeling & simulation of software architectures of systems-of-systems Proceedings of the Theory of Modeling and Simulation Symposium, (1-12)
  61. Ahmad E and Sarjoughian H A behavior annex for AADL using the DEVS formalism Proceedings of the Annual Simulation Symposium, (1-12)
  62. ACM
    Mayer B and Weinreich R The effect of gamification on software architecture knowledge management Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, (1731-1740)
  63. Vodyaho A, Osipov V, Zhukova N and Chervontsev M (2019). Cognitive Technologies in Monitoring Management, Automatic Documentation and Mathematical Linguistics, 53:2, (71-80), Online publication date: 1-Mar-2019.
  64. ACM
    Pourmirza S, Peters S, Dijkman R and Grefen P (2019). BPMS-RA, ACM Transactions on Internet Technology, 19:1, (1-23), Online publication date: 28-Feb-2019.
  65. Silva C, Aquino G, Melo S, Egídio D and Méhaut J (2019). A Fog Computing-Based Architecture for Medical Records Management, Wireless Communications & Mobile Computing, 2019, Online publication date: 1-Jan-2019.
  66. Ochei L, Bass J and Petrovski A (2018). Degrees of tenant isolation for cloud-hosted software services, Journal of Cloud Computing: Advances, Systems and Applications, 7:1, (1-39), Online publication date: 1-Dec-2018.
  67. Kassab M, Mazzara M, Lee J and Succi G (2018). Software architectural patterns in practice, Innovations in Systems and Software Engineering, 14:4, (263-271), Online publication date: 1-Dec-2018.
  68. ACM
    Alshammari M and Simpson A Privacy Architectural Strategies Proceedings of the 2018 Workshop on Privacy in the Electronic Society, (143-154)
  69. ACM
    Russo D, Ciancarini P, Falasconi T and Tomasi M (2018). A Meta-Model for Information Systems Quality, ACM Transactions on Management Information Systems, 9:3, (1-38), Online publication date: 30-Sep-2018.
  70. ACM
    Costa P, Canedo E and Bonifácio R On the Use of Metaprogramming and Domain Specific Languages Proceedings of the VII Brazilian Symposium on Software Components, Architectures, and Reuse, (102-111)
  71. ACM
    Belarbi M A methodological framework to enable the generation of code from DSML in SPL Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 2, (64-71)
  72. ACM
    Fernandez E, Yoshioka N and Washizaki H Evaluating the degree of security of a system built using security patterns Proceedings of the 13th International Conference on Availability, Reliability and Security, (1-8)
  73. ACM
    Oliveira L, Oliveira M, Santos W and Lóscio B Data on the web management system Proceedings of the 19th Annual International Conference on Digital Government Research: Governance in the Data Age, (1-8)
  74. ACM
    Dósea M, Sant'Anna C and da Silva B How do design decisions affect the distribution of software metrics? Proceedings of the 26th Conference on Program Comprehension, (74-85)
  75. ACM
    Kim J, Kang S, Ahn H, Keum C and Lee C Architecture reconstruction and evaluation of blockchain open source platform Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings, (185-186)
  76. ACM
    Neto V, Manzano W, Garcés L, Guessi M, Oliveira B, Volpato T and Nakagawa E Back-SoS Proceedings of the 33rd Annual ACM Symposium on Applied Computing, (1461-1463)
  77. ACM
    Sion L, Yskout K, Van Landuyt D and Joosen W Solution-aware data flow diagrams for security threat modeling Proceedings of the 33rd Annual ACM Symposium on Applied Computing, (1425-1432)
  78. ACM
    Ahn H, Kang S and Lee S Reconstruction of execution architecture view using dependency relationships and execution traces Proceedings of the 33rd Annual ACM Symposium on Applied Computing, (1417-1424)
  79. Sedaghatbaf A and Abdollahi Azgomi M (2018). A method for dependability evaluation of software architectures, Computing, 100:2, (119-150), Online publication date: 1-Feb-2018.
  80. Blas M, Gonnet S and Leone H Routing structure over discrete event system specification Proceedings of the 2017 Winter Simulation Conference, (1-12)
  81. ACM
    Sena B, Allian A and Nakagawa E Characterizing big data software architectures Proceedings of the 11th Brazilian Symposium on Software Components, Architectures, and Reuse, (1-10)
  82. ACM
    Rago A, Vidal S, Diaz-Pace J, Frank S and van Hoorn A Distributed quality-attribute optimization of software architectures Proceedings of the 11th Brazilian Symposium on Software Components, Architectures, and Reuse, (1-10)
  83. ACM
    Moghaddam F, Deckers R, Procaccianti G, Grosso P and Lago P A domain model for self-adaptive software systems Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings, (16-22)
  84. ACM
    Nakagawa E, Allian A, Oliveira B, Sena B, Paes C, Lana C, Feitosa D, Santos D, Zaniro D, Dias D, Horita F, Affonso F, Abdalla G, Vicente I, Duarte L, Felizardo K, Garcés L, Oliveira L, Gonçalves M, Morais M, Guessi M, Silva N, Bianchi T, Volpato T, Neto V, Zani V and Manzano W Software architecture and reference architecture of software-intensive systems and systems-of-systems Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings, (4-11)
  85. ACM
    Volpato T, Oliveira B, Garcés L, Capilla R and Nakagawa E Two perspectives on reference architecture sustainability Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings, (188-194)
  86. ACM
    Morgenstern A, Antonino P, Kuhn T, Pschorn P and Kallweit B Modeling embedded systems using a tailored view framework and architecture modeling constraints Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings, (180-186)
  87. ACM
    Leigh A Architecture analysis to predict project risks Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings, (44-47)
  88. ACM
    Aaramaa S, Dasanayake S, Oivo M, Markkula J and Saukkonen S Requirements volatility in software architecture design: an exploratory case study Proceedings of the 2017 International Conference on Software and System Process, (40-49)
  89. Villamizar M, Garcés O, Ochoa L, Castro H, Salamanca L, Verano M, Casallas R, Gil S, Valencia C, Zambrano A and Lang M (2017). Cost comparison of running web applications in the cloud using monolithic, microservice, and AWS Lambda architectures, Service Oriented Computing and Applications, 11:2, (233-247), Online publication date: 1-Jun-2017.
  90. Jagroep E, Werf J, Brinkkemper S, Blom L and Vliet R (2017). Extending software architecture views with an energy consumption perspective, Computing, 99:6, (553-573), Online publication date: 1-Jun-2017.
  91. ACM
    da Silva Amorim S, McGregor J, de Almeida E and von Flach G. Chavez C The Architect's Role in Software Ecosystems Health Proceedings of the 2nd Workshop on Social, Human, and Economic Aspects of Software, (1-4)
  92. Amorim S, McGregor J, de Almeida E and von Flach G. Chavez C Software ecosystems' architectural health Proceedings of the Joint 5th International Workshop on Software Engineering for Systems-of-Systems and 11th Workshop on Distributed Software Development, Software Ecosystems and Systems-of-Systems, (66-69)
  93. van den Berghe A, Yskout K, Joosen W and Scandariato R A model for provably secure software design Proceedings of the 5th International FME Workshop on Formal Methods in Software Engineering, (3-9)
  94. Xiao L and Yu T Ripple Proceedings of the 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering, (14-20)
  95. Matalonga S, Mousqués G and Bia A Deploying team-based learning at undergraduate software engineering courses Proceedings of the 1st International Workshop on Software Engineering Curricula for Millennials, (9-15)
  96. Jagroep E, Broekman J, van der Werf J, Brinkkemper S, Lago P, Blom L and van Vliet R Awakening awareness on energy consumption in software engineering Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Society Track, (76-85)
  97. Alnawasreh K, Pelliccione P, Hao Z, Rånge M and Bertolino A Online robustness testing of distributed embedded systems Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Practice Track, (133-142)
  98. Márquez G Selection of software components from business objectives scenarios through architectural tactics Proceedings of the 39th International Conference on Software Engineering Companion, (441-444)
  99. Cai Y and Kazman R Detecting and quantifying architectural debt Proceedings of the 39th International Conference on Software Engineering Companion, (503-504)
  100. (2017). Application development for the Internet of Things, Computer Communications, 104:C, (1-16), Online publication date: 15-May-2017.
  101. Angelov S and de Beer P (2017). Designing and applying an approach to software architecting in agile projects in education, Journal of Systems and Software, 127:C, (78-90), Online publication date: 1-May-2017.
  102. ACM
    Sion L, Yskout K, Scandariato R and Joosen W A Modular Meta-model for Security Solutions Companion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming, (1-5)
  103. ACM
    Ali N, Martínez-Martínez A, Ayuso-Pérez L and Espinoza A Self-adaptive quality requirement elicitation process for legacy systems Proceedings of the Symposium on Applied Computing, (1102-1107)
  104. Chauhan M, Babar M and Sheng Q (2017). A Reference Architecture for provisioning of Tools as a Service, Future Generation Computer Systems, 69:C, (41-65), Online publication date: 1-Apr-2017.
  105. ACM
    Lehmann M and Sandnes F A framework for evaluating continuous microservice delivery strategies Proceedings of the Second International Conference on Internet of things, Data and Cloud Computing, (1-9)
  106. ACM
    Van Deursen A, Aniche M, Aué J, Slag R, De Jong M, Nederlof A and Bouwers E A Collaborative Approach to Teaching Software Architecture Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, (591-596)
  107. Orlov S and Vishnyakov A (2017). Decision Making for the Software Architecture Structure Based on the Criteria Importance Theory, Procedia Computer Science, 104:C, (27-34), Online publication date: 1-Mar-2017.
  108. van Heesch U, Jansen A, Pei-Breivold H, Avgeriou P and Manteuffel C (2017). Platform design space exploration using architecture decision viewpoints-A longitudinal study, Journal of Systems and Software, 124:C, (56-81), Online publication date: 1-Feb-2017.
  109. Portocarrero J, Delicato F, Pires P, Costa B, Li W, Si W and Zomaya A (2017). RAMSES, Ad Hoc Networks, 55:C, (3-27), Online publication date: 1-Feb-2017.
  110. (2017). Computer, July 1967 and 1992, Computer, 50:7, (8-9), Online publication date: 1-Jan-2017.
  111. Kazman R (2017). Software Engineering, Computer, 50:7, (10-11), Online publication date: 1-Jan-2017.
  112. ACM
    Krishna D, Jha V, Sharaf M and Muccini H On the use of security principles and practices for architecting cyber-physical systems Proccedings of the 10th European Conference on Software Architecture Workshops, (1-7)
  113. ACM
    Pedraza-García G, Noël R, Matalonga S, Astudillo H and Fernandez E Mitigating security threats using tactics and patterns Proccedings of the 10th European Conference on Software Architecture Workshops, (1-7)
  114. ACM
    Peters J and van der Werf J A genetic approach to architectural pattern discovery Proccedings of the 10th European Conference on Software Architecture Workshops, (1-7)
  115. Fernandez E and Astudillo H Experimental evaluation of secure software methodologies using patterns Proceedings of the 11th Latin-American Conference on Pattern Languages of Programming, (1-7)
  116. Zhang W, Duan P, Xie X, Xia F, Lu Q, Liu X and Zhou J (2016). QoS4IVSaaS, Personal and Ubiquitous Computing, 20:5, (795-808), Online publication date: 1-Oct-2016.
  117. ACM
    Shahin M, Babar M and Zhu L The Intersection of Continuous Deployment and Architecting Process Proceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, (1-10)
  118. ACM
    Petit M Requirement templates for distributed 3D graphics Proceedings of the 21st International Conference on Web3D Technology, (61-68)
  119. Cruz-Benito J, Therón R and García-Peñalvo F Software Architectures Supporting Human-Computer Interaction Analysis: A Literature Review Learning and Collaboration Technologies, (125-136)
  120. ACM
    Christensen H Teaching DevOps and Cloud Computing using a Cognitive Apprenticeship and Story-Telling Approach Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, (174-179)
  121. ACM
    Chen H, Kazman R, Garbajosa J and Gonzalez E Toward big data value engineering for innovation Proceedings of the 2nd International Workshop on BIG Data Software Engineering, (44-50)
  122. ACM
    Chen H, Kazman R, Monarch I and Wang P Predicting and fixing vulnerabilities before they occur Proceedings of the 2nd International Workshop on BIG Data Software Engineering, (72-75)
  123. ACM
    Cervantes H, Haziyev S, Hrytsay O and Kazman R Smart decisions Proceedings of the 38th International Conference on Software Engineering Companion, (327-335)
  124. ACM
    Chen H, Kazman R, Monarch I and Wang P Predicting and fixing vulnerabilities before they occur Proceedings of the 2nd International Workshop on BIG Data Software Engineering, (72-75)
  125. ACM
    Xiao L, Cai Y, Kazman R, Mo R and Feng Q Identifying and quantifying architectural debt Proceedings of the 38th International Conference on Software Engineering, (488-498)
  126. ACM
    Anish P, Balasubramaniam B, Sainani A, Cleland-Huang J, Daneva M, Wieringa R and Ghaisas S Probing for requirements knowledge to stimulate architectural thinking Proceedings of the 38th International Conference on Software Engineering, (843-854)
  127. ACM
    Alashqar A, Elfetouh A and El-Bakry H Analyzing Preferences and Interactions of Software Quality Attributes Using Choquet Integral Approach Proceedings of the 10th International Conference on Informatics and Systems, (298-303)
  128. ACM
    Krutz D and Mirakhorl M Architectural clones Proceedings of the 31st Annual ACM Symposium on Applied Computing, (1480-1485)
  129. ACM
    Tekinerdogan B and Scholten H (2015). Software Ecosystems for the Life Sciences Application Domains, ACM SIGSOFT Software Engineering Notes, 40:6, (1-6), Online publication date: 11-Nov-2015.
  130. Yoder J, Wirfs-Brock R and Washizaki H QA to AQ part four Proceedings of the 22nd Conference on Pattern Languages of Programs, (1-14)
  131. Hassine J and Hamou-Lhadj A Describing Early Security Requirements Using Use Case Maps Proceedings of the 17th International SDL Forum on SDL 2015: Model-Driven Engineering for Smart Cities - Volume 9369, (202-217)
  132. ACM
    Shahin M Architecting for DevOps and Continuous Deployment Proceedings of the ASWEC 2015 24th Australasian Software Engineering Conference, (147-148)
  133. ACM
    Costa B, Pires P, Delicato F and Oquendo F Towards a View-Based Process for Designing and Documenting RESTful Service Architectures Proceedings of the 2015 European Conference on Software Architecture Workshops, (1-7)
  134. ACM
    Syeed M, Lokhman A, Mikkonen T and Hammouda I Pluggable Systems as Architectural Pattern Proceedings of the 2015 European Conference on Software Architecture Workshops, (1-6)
  135. ACM
    Gorton I From Static Books to Dynamic Knowledge Bases Proceedings of the 2015 European Conference on Software Architecture Workshops, (1-4)
  136. ACM
    Kuhrmann M and Richardson I How do artifact models help direct SPI projects? Proceedings of the 2015 International Conference on Software and System Process, (122-126)
  137. ACM
    Di Cola S, Lau K, Tran C and Qian C An MDE tool for defining software product families with explicit variation points Proceedings of the 19th International Conference on Software Product Line, (355-360)
  138. ACM
    Garzón-Rodriguez L, Diosa H and Rojas-Galeano S Deconstructing GAs into Visual Software Components Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation, (1125-1132)
  139. ACM
    Alebrahim A, Fassbender S, Filipczyk M, Goedicke M and Heisel M Towards a reliable mapping between performance and security tactics, and architectural patterns Proceedings of the 20th European Conference on Pattern Languages of Programs, (1-43)
  140. Anish P, Balasubramaniam B, Cleland-Huang J, Wieringa R, Daneva M and Ghaisas S Identifying architecturally significant functional requirements Proceedings of the Fifth International Workshop on Twin Peaks of Requirements and Architecture, (3-8)
  141. Guessi M, Cavalcante E and Oliveira L Characterizing architecture description languages for software-intensive systems-of-systems Proceedings of the Third International Workshop on Software Engineering for Systems-of-Systems, (12-18)
  142. Nakagawa E, Oquendo F, Avgeriou P, Cuesta C, Drira K, Maldonado J and Zisman A Foreword Proceedings of the Third International Workshop on Software Engineering for Systems-of-Systems, (1-4)
  143. Staples M The unending quest for valid, useful software engineering theories Proceedings of the Fourth SEMAT Workshop on General Theory of Software Engineering, (47-58)
  144. Sherman S and Hadar I Toward defining the role of the software architect Proceedings of the Eighth International Workshop on Cooperative and Human Aspects of Software Engineering, (71-76)
  145. Chen H, Kazman R, Haziyev S and Hrytsay O Big data system development Proceedings of the First International Workshop on BIG Data Software Engineering, (44-50)
  146. Schroeder J, Holzner D, Berger C, Hoel C, Laine L and Magnusson A Design and evaluation of a customizable multi-domain reference architecture on top of product lines of self-driving heavy vehicles Proceedings of the 37th International Conference on Software Engineering - Volume 2, (189-198)
  147. Kazman R, Cai Y, Mo R, Feng Q, Xiao L, Haziyev S, Fedak V and Shapochka A A case study in locating the architectural roots of technical debt Proceedings of the 37th International Conference on Software Engineering - Volume 2, (179-188)
  148. ACM
    Lau K and Di Cola S (Reference) Architecture = Components + Composition (+ Variation Points) Proceedings of the 1st International Workshop on Exploring Component-based Techniques for Constructing Reference Architectures, (1-4)
  149. ACM
    Klein J and Gorton I Design Assistant for NoSQL Technology Selection Proceedings of the 1st International Workshop on Future of Software Architecture Design Assistants, (7-12)
  150. ACM
    Kjærgaard M and Kuhrmann M On Architectural Qualities and Tactics for Mobile Sensing Proceedings of the 11th International ACM SIGSOFT Conference on Quality of Software Architectures, (63-72)
  151. ACM
    Alzahrani N and Petriu D Modeling Fault Tolerance Tactics with Reusable Aspects Proceedings of the 11th International ACM SIGSOFT Conference on Quality of Software Architectures, (43-52)
  152. Anderson C (2015). Docker [Software engineering], IEEE Software, 32:3, (102-c3), Online publication date: 1-May-2015.
  153. Booch G (2015). Anarchy and Order [On Computing], IEEE Software, 32:3, (20-22), Online publication date: 1-May-2015.
  154. Gorton I and Klein J (2015). Distribution, Data, Deployment: Software Architecture Convergence in Big Data Systems, IEEE Software, 32:3, (78-85), Online publication date: 1-May-2015.
  155. ACM
    de Graaf K, Liang P, Tang A and van Vliet H Supporting architecture documentation Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering, (1-10)
  156. ACM
    Ahn H Reconstruction of runtime software architecture for object-oriented systems Proceedings of the 30th Annual ACM Symposium on Applied Computing, (1668-1669)
  157. ACM
    Agrawal A and Prabhakar T AutoQA Proceedings of the 30th Annual ACM Symposium on Applied Computing, (1464-1467)
  158. ACM
    Lopes Silva I, Brito P, dos S. Neto B, Costa E and Silva A A decision-making tool to support architectural designs based on quality attributes Proceedings of the 30th Annual ACM Symposium on Applied Computing, (1457-1463)
  159. Vidal C, Fernández-Sánchez C, Díaz J and Pérez J (2015). A model-driven engineering process for autonomic sensor-actuator networks, International Journal of Distributed Sensor Networks, 2015, (18-18), Online publication date: 1-Jan-2015.
  160. Demey Y Adapting the Fact-Based Modeling Approach in Requirement Engineering Proceedings of the Confederated International Workshops on On the Move to Meaningful Internet Systems: OTM 2014 Workshops - Volume 8842, (65-69)
  161. ACM
    Van Landuyt D, Op de beeck S, Hovsepyan A, Michiels S, Joosen W, Meynckens S, de Jong G, Barais O and Acher M Towards managing variability in the safety design of an automotive hall effect sensor Proceedings of the 18th International Software Product Line Conference - Volume 1, (304-309)
  162. ACM
    Roy J, Contini C, Brodeur F, Diouf N and Suryn W Method for the Evaluation of Open Source Software Quality from an IT Untrained User Perspective Proceedings of the 2014 International C* Conference on Computer Science & Software Engineering, (1-6)
  163. Morais Barroca Filho I and Aquino Junior G MetamorphosIS Proceedings of the 14th International Conference on Computational Science and Its Applications — ICCSA 2014 - Volume 8584, (17-30)
  164. ACM
    Chavarriaga J, Noguera C, Casallas R and Jonckers V Architectural tactics support in cloud computing providers Proceedings of the 10th international ACM Sigsoft conference on Quality of software architectures, (13-22)
  165. ACM
    Horcas J, Pinto M and Fuentes L Injecting quality attributes into software architectures with the common variability language Proceedings of the 17th international ACM Sigsoft symposium on Component-based software engineering, (35-44)
  166. ACM
    Zapalowski V, Nunes I and Nunes D Revealing the relationship between architectural elements and source code characteristics Proceedings of the 22nd International Conference on Program Comprehension, (14-25)
  167. ACM
    Shahin M, Liang P and Li Z Do architectural design decisions improve the understanding of software architecture? two controlled experiments Proceedings of the 22nd International Conference on Program Comprehension, (3-13)
  168. ACM
    Ali N and Soli­s C Mobile architectures at runtime: research challenges Proceedings of the 1st International Conference on Mobile Software Engineering and Systems, (41-44)
  169. ACM
    Farah G, Tejada J and Correal D OpenHub: a scalable architecture for the analysis of software quality attributes Proceedings of the 11th Working Conference on Mining Software Repositories, (420-423)
  170. ACM
    Garlan D Software architecture: a travelogue Future of Software Engineering Proceedings, (29-39)
  171. ACM
    Nord R, Ozkaya I, Sangwan R and Koontz R Architectural dependency analysis to understand rework costs for safety-critical systems Companion Proceedings of the 36th International Conference on Software Engineering, (185-194)
  172. ACM
    Martínez-Fernández S, Ayala C, Franch X and Marques H Artifacts of software reference architectures Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, (1-10)
  173. ACM
    Feitosa D An architecture design method for critical embedded systems Proceedings of the WICSA 2014 Companion Volume, (1-3)
  174. ACM
    Binotto A, Tizzei L and Cerqueira R A Self-tuning Scientific Framework using Model-Driven Engineering for Heterogeneous Execution Platforms Proceedings of International Workshop on Adaptive Self-tuning Computing Systems, (17-20)
  175. ACM
    Dugerdil P Architecting mobile enterprise app Proceedings of the 2013 ACM workshop on Mobile development lifecycle, (9-14)
  176. ACM
    Merson P Ultimate architecture enforcement Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity, (153-160)
  177. Pruijt L, Wiersema W and Brinkkemper S A typology based approach to assign responsibilities to software layers Proceedings of the 20th Conference on Pattern Languages of Programs, (1-14)
  178. Diaz-Pace J, Nicoletti M, Schiaffino S, Villavicencio C and Sanchez L A Stakeholder-Centric Optimization Strategy for Architectural Documentation Proceedings of the Third International Conference on Model and Data Engineering - Volume 8216, (104-117)
  179. ACM
    Zimmermann A, Sandkuhl K, Pretz M, Falkenthal M, Jugel D and Wissotzki M Towards an integrated service-oriented reference enterprise architecture Proceedings of the 2013 International Workshop on Ecosystem Architectures, (26-30)
  180. Bogado V, Gonnet S and Leone H Toward an Integrated Quality Evaluation of Web Applications with DEVS Revised Selected Papers of the ICWE 2013 International Workshops on Current Trends in Web Engineering - Volume 8295, (79-91)
  181. ACM
    Nakagawa E, Gonçalves M, Guessi M, Oliveira L and Oquendo F The state of the art and future perspectives in systems of systems software architectures Proceedings of the First International Workshop on Software Engineering for Systems-of-Systems, (13-20)
  182. Christensen H and Hansen K Architectural slicing Proceedings of the 7th European conference on Software Architecture, (316-319)
  183. ACM
    Alexandrov T and Dimov A Software availability in the cloud Proceedings of the 14th International Conference on Computer Systems and Technologies, (193-200)
  184. ACM
    Klein J and van Vliet H A systematic review of system-of-systems architecture research Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures, (13-22)
  185. Schmid K On the limits of the technical debt metaphor Proceedings of the 4th International Workshop on Managing Technical Debt, (63-66)
  186. Rimba P Building high assurance secure applications using security patterns for capability-based platforms Proceedings of the 2013 International Conference on Software Engineering, (1401-1404)
  187. Bellomo S, Nord R and Ozkaya I A study of enabling factors for rapid fielding: combined practices to balance speed and stability Proceedings of the 2013 International Conference on Software Engineering, (982-991)
  188. ACM
    Rost D Generation of task-specific architecture documentation for developers Proceedings of the 17th international doctoral symposium on Components and Architecture, (1-6)
Contributors
  • Carnegie Mellon University
  • Carnegie Mellon University
  • University of Hawaiʻi at Mānoa

Recommendations

Reviews

Hassan Reza

Written by the lead software engineering scientists at the Software Engineering Institute at Carnegie Mellon University (SEI-CMU), this third-edition book is, for the most part, based on various technical reports, papers, and works conducted at SEI-CMU. It also includes discussions of emerging technologies and revisions of old approaches in the development of software-intensive systems. The book consists of five parts elaborating various contexts in which software architecture can play an important role. The discussions in Part 1 try to set the tone for the remainder of the book by describing the contexts of software architecture. These contexts include technical, life cycle, business, and professional. Part 1 begins by introducing software architecture, its applicability, and its importance in terms of system-level qualities. It ends with a discussion of the different architectural contexts. Next, the authors highlight the correlation between system-wide qualities, commonly known as quality attributes, and software architecture. To this end, Part 2 begins with a discussion of system requirements, and concludes with specifications, implementations via a set of principle design decisions known as design tactics, and the evaluation of quality attributes (QAs). In between, the authors present an extensive discussion about the specification and implementation of a subset of QAs. QAs that are extensively covered by individual chapters include availability, interoperability, modifiability, performance, security, testability, and usability. More specifically, each chapter begins with one QA, and then provides a generic template known as a quality-attribute scenario to specify all possible elements of the template, together with specific scenarios. Part 2 concludes with characterizations of the topic QA using tactics and a set of guidelines. The role of the software life cycle and its impact on software architecture from a practical point of view are discussed next. The discussions include, among other topics, the role of light and flexible software processes such as agile; architecturally significant requirements (ASRs) and their characterizations and documentation; the relationship between ASRs and QAs; the quality attribute workshop (QAW) method used to create and refine QA scenarios; design strategies that require the decomposition and design of ASR; and the attribute-driven design (ADD) method. Part 3 also includes a discussion of how to document, compose, and select architectural views that represent different but important aspects of a system. Subsequent chapters explain the implementation and testing of software architecture (white-box and black-box testing), analyzing software architecture using architectural tradeoff analysis, and recovery and reconstruction methods for recovering software architectures. Part 3 ends with a discussion on the leadership and management of large and complex projects. The authors then explore the role that software architecture plays in the business setting, starting with a discussion of the cost-benefit analysis method (CBAM) to determine the business consequences of software architecture. The authors use the NASA ECS project to show the practicality of CBAM. Other topics in this part include the importance of competency of architecture and its role in the success or failure of an organization, and software product line architecture and its significance for productivity and improvement in an organization. Part 5 shifts the focus to emerging trends in the software architecture area. Topics include cloud computing and virtualization technologies. This part ends with a discussion on edge-dominant systems that depend on user inputs to work properly. From start to finish, this well-written and well-organized book provides practical approaches to the specification of QAs, their implementation, and their validations. The book would be very helpful for software engineering students and practitioners who are eager to understand the system-wide qualities of a system and the corresponding specifications and verification. It could be used as a required or reference textbook for software architecture and design courses, as it complements other foundational books [1,2] in the field. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.