1st Edition
Architecting Software Intensive Systems A Practitioners Guide
Architectural design is a crucial first step in developing complex software intensive systems. Early design decisions establish the structures necessary for achieving broad systemic properties. However, today’s organizations lack synergy between software their development processes and technological methodologies. Providing a thorough treatment of the latest theory and best practices, Architecting Software Intensive Systems: A Practitioner’s Guide explains:
- How and when to design architectures
- How to weave architecture design processes into existing development processes
- What to do with architecture design artifacts once created
The first section establishes key concepts in architectural design for software intensive systems, including architectural drivers, structures, and fundamental guidance for architectural design. The book goes on to describe the industry tested Architecture Centric Design Method. Each stage of the method is explained and the book provides all of the supporting templates and checklists. The last section discusses practical matters, including how to adopt disciplined architectural design practices into existing organizational development processes.
With the principled understanding of design provided by this book, architects can temper their visceral instinct to react and be better prepared to address a broader range of design problems regardless of business context or their domain experience.
Introduction
Architecture Defined
Architectural Drivers
Architectural Structures
The Work of an Architect
Documenting the Architectural Design
The Architecture Centric Design Method
ACDM Stage 1: Discovering the Architectural Drivers
ACDM Stage 2: Establishing Project Scope
ACDM Stage 3: Create/Refine the Architecture
ACDM Stage 4: Evaluate the Architecture Design
ACDM Stage 5: The Go/No-Go Decision
ACDM Stage 6: Experimentation
ACDM Stage 7: Production Planning
ACDM Stage 8: Production
Transitioning Design Practices, Processes, and Methods
Barriers to Adoption: Common Anti-practices
Other Design Considerations: Legacy, Design by Selection, and Maintenance
Using ACDM with Software Development Frameworks
Biography
Anthony J. Lattanze