Book 11

Modern-day projects require software and systems engineers to work together in realizing architectures of large and complex software-intensive systems. To date, the two have used their own tools and methods to deal with similar issues when it comes to the requirements, design, testing, maintenance, and evolution of these architectures.

Software and Systems Architecture in Action explores practices that can be helpful in the development of architectures of large-scale systems in which software is a major component. Examining the synergies that exist between the disciplines of software and systems engineering, it presents concepts, techniques, and methods for creating and documenting architectures.

The book describes an approach to architecture design that is driven from systemic quality attributes determined from both the business and technical goals of the system, rather than just its functional requirements. This architecture-centric design approach utilizes analytically derived patterns and tactics for quality attributes that inform the architect’s design choices and help shape the architecture of a given system.

The book includes coverage of techniques used to assess the impact of architecture-centric design on the structural complexity of a system. After reading the book, you will understand how to create architectures of systems and assess their ability to meet the business goals of your organization.

Ideal for anyone involved with large and complex software-intensive systems, the book details powerful methods for engaging the software and systems engineers on your team. The book is also suitable for use in undergraduate and graduate-level courses on software and systems architecture as it exposes students to the concepts and techniques used to create and manage architectures of software-intensive systems.


Economics and technology have dramatically re-shaped the landscape of software development. It is no longer uncommon to find a software development team dispersed across countries or continents. Geographically distributed development challenges the ability to clearly communicate, enforce standards, ensure quality levels, and coordinate tasks. Global Software Development Handbook explores techniques that can bridge distances, create cohesion, promote quality, and strengthen lines of communication.

The book introduces techniques proven successful at international electronics and software giant Siemens AG. It shows how this multinational uses a high-level process framework that balances agility and discipline for globally distributed software development. The authors delineate an organizational structure that not only fosters team building, but also achieves effective collaboration among the central and satellite teams. The handbook explores the issues surrounding quality and the processes required to realize quality in a distributed environment. Communication is a tremendous challenge, especially for teams separated by several time zones, and the authors elucidate how to uncover patterns of communication among these teams to determine effective strategies for managing communication.

The authors analyze successful and failed projects and apply this information to how a project can be successful with distributed teams. They also provide lightweight processes that can be dynamically adapted to the demands of any project.