Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Economics-driven software architecture
Mistrik I., Bahsoon R., Kazman R., Zhang Y., Morgan Kaufmann Publishers Inc., San Francisco, CA, 2014. 380 pp. Type: Book (978-0-124104-64-8)
Date Reviewed: Jan 9 2015

Software architects typically operate in a largely technical domain even though no architectural decision is taken in a vacuum and needs to consider tradeoffs surrounding economics. This book is a first--recommended--attempt to address the economic (read: cost) and value-creation aspects of architectural work.

The four parts of the book, comprising 13 chapters by 35 different authors with a global background, represent a current snapshot of the state of the art in this complex field. This multi-faceted body of knowledge will be able to guide any practicing software architect or software engineer in making explicit economic and strategic considerations of architectural choices. Researchers and students of the field will gain a deeper understanding of its underpinning theories, issues, and practices.

After a very brief introduction linking architecture with key topics such as project management, modeling, and risk management, Part 1, “Fundamentals of Economics-Driven Software Architecture,” contains an overview of different software architecture models dealing explicitly with value-creation considerations. Related to the economics of software product lines, chapter 2 gives an overview (including formulas) and critical discussion of 8 cost (savings) models and five value models. Chapter 3 explains the basics of how to calculate the business value of architectural decisions (Should we refactor or not? Should we add new functionality?) using dynamic cash flow analysis. Chapter 4 presents the underlying economic rationales and thinking when designing a user-centered architectural framework for context-aware self-adaptive systems in the healthcare (monitoring) domain.

Part 2, “Economics-Driven Architecting: Design Mechanisms and Evaluation,” provides insights into the following topics: economics-driven software architecture for the (here: public) cloud; economics-driven modularity evaluations; and the economics of architecture refactoring. Chapter 5 explicitly incorporates economics in the form of the market-based control paradigm (that is, when buyers and sellers agree on a price for a service) into a cloud architecture. The resulting system is then able (to a certain extent, which is also discussed) to solve the dynamic resource allocation problem for an infrastructure as a service (IaaS) cloud.

The question of when to refactor or just keep adding new features presents a recurring dilemma for software practitioners. Using a real options approach for evaluating the costs savings associated with increasing the modularization of large software systems, chapter 6 explains design and implementation considerations for a “modularity debt management” decision support system.

Drawn from the experiences of Siemens with 400,000 employees and over 50 percent of revenues depending on software concerns, chapter 7 collects best practices for coping with the economic challenges software architects face (and real-life war stories when they have failed). This, however, seems to call for a person in an almost supernatural architectural role who is not only an expert communicator and mediator between every conceivable stakeholder, but also actively involved in virtually every single step of the software development lifecycle, including legal issues and make-or-buy decisions.

Part 3, “Managing Architectural Economics,” presents a set of views on how to manage architectural economics. The three chapters in this part address the following topics: software engineering leveraging the crowd; managing architectural (technical) debt in value-oriented architecting; and the value matrix framework for software architectures.

Chapter 8 identifies three major challenges when employing a crowd approach to software engineering: managing and organizing the project, creating teams and (semi-) automatically allocating tasks, and improving cooperation within loosely coupled teams. While the authors indicate individual solutions for the three specific areas of concerns, these remain isolated and non-integrated.

Technical debt refers to immature software artifacts that fail to meet the required quality level. Accordingly, architecture (technical) debt (ATD) refers to immature architecture design artifacts that compromise system-wide quality attributes. Chapter 9 not only presents (in unified modeling language (UML)) a conceptual model for capturing and using ATD, but also indicates a process for managing ATD and its application in a case study.

Chapter 10 thoroughly explains how software architects can move from the satisfaction of requirements as a primary concern to delivering value to stakeholders using the value matrix framework.

Part 4, “Linking Architecture Inception and Evolution to Economics: Experiences and Approaches,” looks at several industrial cases and practical approaches.

Chapter 11 uses a game-theoretic approach to identify the best strategies and likely outcomes of how software may evolve in a provider–client ecosystem. The derived formulas will enable software vendors and clients to determine optimal choices (for example, what to charge for a software update or if and when to migrate to a new software version) in three situations of monolithic software, software built from modules, or software consumed as a bundle of services.

The proliferation of electronic healthcare systems specialized for single domains (for example, radiology) naturally leads to the requirement to design large-scale e-health systems-of-systems linking the disparate islands of computations. Chapter 12 develops a fairly trivial service-oriented architecture (SOA) and applies it to various (small-scale) projects.

Finally, chapter 13 argues that users’ values (including moral views and aesthetic sensitivities) have considerable architectural implications. By translating these into architectural patterns, the authors show how users’ values may link to non-functional requirements; this point is also illustrated in a case study of the concomitant “value-based requirements analysis” method.

A short glossary and extensive index conclude this volume.

Even though no single holistic theory may be presented to date, the varied approaches of the different chapters and the extensive literature quoted therein offer an excellent starting point for further investigating and using an economics-driven approach to software architecture.

Reviewer:  Christoph F. Strnadl Review #: CR143071 (1504-0261)
Bookmark and Share
  Featured Reviewer  
 
Software Architectures (D.2.11 )
 
 
Economics (J.4 ... )
 
 
Economics (K.6.0 ... )
 
 
Software Management (K.6.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Software Architectures": Date
Software architecture in practice
Bass L., Clements P., Kazman R., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1998. Type: Book (9780201199307)
Sep 1 1999
CORBA design patterns
Mowbray T., Malveau R., John Wiley & Sons, Inc., New York, NY, 1997. Type: Book (9780471158820)
Sep 1 1998
Developing business systems with CORBA
Sadiq W., Cummins F., Cambridge University Press, New York, NY, 1998. Type: Book (9780521646505)
Feb 1 1999
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy