Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Software architecture: research roadmaps from the community
Peliccione P., Kazman R., Weber I., Liu A., Springer International Publishing, Cham, Switzerland, 2023. 119 pp. Type: Book (3031368460)
Date Reviewed: Feb 19 2024

This short work is a compendium of six papers that arose from an International Conference on Software Architectures (ICSA) workshop held in Honolulu, Hawaii, in August 2022. The authors gathered around a common interest in a topic. These international teams discussed each topic at the workshop and then produced a paper capturing the work. These papers represent the state of the art in each of the areas.

Software architecture research is the study and analysis of software systems. The focus is typically on the high-level structure and organization of software components, as well as the interaction between them, within a software ecosystem. Arguably, a good software architecture is a necessary foundation for a successful software engineering/development process.

Over the years, software architecture research has moved toward the examination of challenges and opportunities arising from the increase in complexity and longevity of modern software systems. The book captures six areas within software architectures and provides insight into the current state of the practice, including the challenges and opportunities of the next five to ten years.

Chapter 1, “Challenges and Opportunities in Quantum Software Architecture,” investigates software architectures appropriate for quantum computing and how they may differ from classical software architectures. It also considers hybrid software architectures that embrace both quantum and classical computing components within a software system. Specifically, the paper considers three research questions:

(1) Do we need to consider [quantum software architectures] in a specialized way?
(2) What are the relevant architecture-level concerns for quantum computing?
(3) Is knowledge gained from the classical world still applicable in the quantum world, and to what extent?

Each research question is explored deeply and the reader is taken on a enlightening journey that explores the challenges quantum computing presents, as well as the extent to which our current practices in the classical domain remain relevant.

Chapter 2, “Software Architectures for AI systems: State of Practice and Challenges,” is a timely paper given the current disruptive nature of generative artificial intelligence (AI) in the computing domain. This paper considers systems that process an ever-growing volume of data and the way in which AI can assist when building data-intensive, distributed software platforms that integrate standard software components. The development of such systems requires close collaboration between data scientists with the necessary domain knowledge and software architects with the necessary technical expertise. This paper considers the fundamental engineering challenges and examines how AI can assist in the process.

Chapter 3, “Architecting and Engineering Value-Based Ecosystems,” examines digital ecosystems that employ human and AI interaction. Such environments are typically unpredictable because of the complex competing and unpredictable collaborations that occur with such systems. Recognizing that the goal of maximizing profit is not always in the best interests of humanity, the paper explores the architecture and engineering of such ecosystems that place value on properties such as fairness, safety, ethics, and privacy. Some of these properties are subjective and highlight the fuzzy nature of these properties in contrast to the precise nature of computation. The paper examines these issues and invites other researchers to explore this topic more thoroughly.

Chapter 4, “Continuous Alignment Between Software Architecture Design and Development in CI/CD Pipelines,” examines a continuous integration and continuous deployment (CI/CD) pipeline as a series of steps to deliver a new version of software. CI/CD pipelines aim to improve software delivery throughout the software development life cycle via automation. The paper looks at the current state of the art and provides some practical and motivational examples such as Google. The paper does a good job in highlighting the challenges with respect to maintaining software architectures and offers a potential solution.

Chapter 5, “An Empirical Basis for Software Architecture Research,” recognizes the need for empirical research as a component of software architecture research, but also notes the challenges surrounding the lack of curated, documented, accessible, maintained, and reusable datasets. The paper explores what is needed in such a dataset: code, documentation, requirements, decision records, and models. The availability of such datasets would not only enable architectural reconstruction, but also facilitate and encourage further research in this area. Of interest is the fact that such repositories could be mined to determine the software architecture. The paper presents the problems and the opportunities associated with creating and maintaining such datasets.

Chapter 6, “A Better Way to Teach Software Architecture,” notes that the teaching of software architectures is a weak spot in many undergraduate curricula. Even though industry has a need for, and expertise in, creating software architectures that are robust, the concepts struggle to effectively find their way into an undergraduate course. The paper examines the problems and challenges, as well as the skills and responsibilities needed, when teaching software architecture to an undergraduate population, specifically one that may lack some real-world experience. This paper is primarily of interest to educators looking to provide graduates with real-world, applicable skills.

While the book is not particularly large (110 pages), it is relatively varied in its topics and provides excellent insight into the current state of the art in each of the topics addressed. The book is of value to experts in the field, but also to novices wanting to learn more about any of the topics covered. Each paper is well written, easy to understand, and full of useful information. This book is highly recommended to anyone interested in the current best practices in software architecture and looking for insight into where the field is headed.

Reviewer:  Michael Oudshoorn Review #: CR147710
Bookmark and Share
  Featured Reviewer  
 
Software Architectures (D.2.11 )
 
 
Software (K.2 ... )
 
 
Software Configuration Management (D.2.9 ... )
 
 
Software Development (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