Book description
Agile software development approaches have had significant impact on industrial software development practices. Today, agile software development has penetrated to most IT companies across the globe, with an intention to increase quality, productivity, and profitability. Comprehensive knowledge is needed to understand the architectural challenges involved in adopting and using agile approaches and industrial practices to deal with the development of large, architecturally challenging systems in an agile way.
Agile Software Architecture focuses on gaps in the requirements of applying architecture-centric approaches and principles of agile software development and demystifies the agile architecture paradox. Readers will learn how agile and architectural cultures can co-exist and support each other according to the context. Moreover, this book will also provide useful leads for future research in architecture and agile to bridge such gaps by developing appropriate approaches that incorporate architecturally sound practices in agile methods.
- Presents a consolidated view of the state-of-art and state-of-practice as well as the newest research findings
- Identifies gaps in the requirements of applying architecture-centric approaches and principles of agile software development and demystifies the agile architecture paradox
- Explains whether or not and how agile and architectural cultures can co-exist and support each other depending upon the context
- Provides useful leads for future research in both architecture and agile to bridge such gaps by developing appropriate approaches, which incorporate architecturally sound practices in agile methods
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Acknowledgments
- About the Editors
- List of Contributors
-
Foreword by John Grundy: Architecture vs Agile: competition or cooperation?
- Software Architecture—the “Traditional” View
- Agile Methods—the “Traditional” View
- Software Architecture—Strengths and Weaknesses with Regard to Agility
- Agile—Strengths and Weaknesses with Regard to Software Architecture
- Bringing the Two Together—Agile Architecting or Architecting for Agile?
- Looking Ahead
- References
- Foreword by Rick Kazman
- Preface
- Chapter 1. Making Software Architecture and Agile Approaches Work Together: Foundations and Approaches
-
PART 1: Fundamentals of Agile Architecting
- Chapter 2. The DCI Paradigm: Taking Object Orientation into the Architecture World
-
Chapter 3. Refactoring Software Architectures
- Abstract
- 3.1 Introduction
- 3.2 Dealing with Design Flaws
- 3.3 Evolution and Styles of Refactoring—Code Refactoring
- 3.4 Evolution and Styles of Refactoring—Refactoring to Patterns
- 3.5 The Motivation for Software Architecture Refactoring
- 3.6 Architectural Smells
- 3.7 A Real-World Example
- 3.8 Quality Improvement
- 3.9 The Process of Continuous Architecture Improvement
- 3.10 Shallow and Deep Refactoring
- 3.11 Additional Examples of Architecture Refactoring Patterns
- 3.12 Known Obstacles to Architecture Refactoring
- 3.13 Comparing Refactoring, Reengineering, and Rewriting
- 3.14 Summary
- References
- Chapter 4. Driving Architectural Design and Preservation from a Persona Perspective in Agile Projects
- Chapter 5. Architecture Decisions: Who, How, and When?
-
PART 2: Managing Software Architecture in Agile Projects
- Chapter 6. Supporting Variability Through Agility to Achieve Adaptable Architectures
-
Chapter 7. Continuous Software Architecture Analysis
- Abstract
- 7.1 Introduction
- 7.2 Software Architecture Analysis
- 7.3 Approaches to Software Architecture Analysis
- 7.4 Continuous Software Architecture Analysis
- 7.5 CSAA in Existing Approaches
- 7.6 CSAA and Analysis Goals
- 7.7 Experiences with an Approach to CSAA
- 7.8 Findings and Research Challenges
- 7.9 Conclusion
- References
-
Chapter 8. Lightweight Architecture Knowledge Management for Agile Software Development
- Abstract
- Acknowledgments
- 8.1 Introduction
- 8.2 Challenges of Agile Architecture Documentation
- 8.3 Supporting Techniques for AKM in Agile Software Development
- 8.4 Architecture Practices in Agile Projects
- 8.5 Architectural Information Flow in Industry
- 8.6 AKM in Scrum
- 8.7 Related Work
- 8.8 Conclusions
- References
- Chapter 9. Bridging User Stories and Software Architecture: A Tailored Scrum for Agile Architecting
-
PART 3: Agile Architecting in Specific Domains
-
Chapter 10. Architecture-Centric Testing for Security: An Agile Perspective
- Abstract
- 10.1 Introduction
- 10.2 Research motivation
- 10.3 Overview of limitations in current post-implementation methods
- 10.4 Introducing implied scenarios
- 10.5 Approach
- 10.6 The agility of the approach
- 10.7 Identity management case study
- 10.8 Further discussion
- 10.9 Agile development, architecture, and security testing
- 10.10 Related work
- 10.11 Conclusion
- References
-
Chapter 11. Supporting Agile Software Development and Deployment in the Cloud: A Multitenant, Multitarget Architecture
- Abstract
- 11.1 Introduction
- 11.2 Cloud computing
- 11.3 Multitenancy architectures
- 11.4 Agility and multitenant architectures
- 11.5 Multitenancy monotarget: agility challenges
- 11.6 Supporting agility: multitenancy multitarget
- 11.7 Globalgest: A real MT2 system
- 11.8 Related work
- 11.9 Conclusions and future work
- References
-
Chapter 10. Architecture-Centric Testing for Security: An Agile Perspective
-
PART 4: Industrial Viewpoints on Agile Architecting
- Chapter 12. Agile Architecting: Enabling the Delivery of Complex Agile Systems Development Projects
- Chapter 13. Building a Platform for Innovation: Architecture and Agile as Key Enablers
- Chapter 14. Opportunities, Threats, and Limitations of Emergent Architecture
- Chapter 15. Architecture as a Key Driver for Agile Success: Experiences at Aviva UK
- Author Index
- Subject Index
Product information
- Title: Agile Software Architecture
- Author(s):
- Release date: November 2013
- Publisher(s): Morgan Kaufmann
- ISBN: 9780124078857
You might also like
book
Tidy First?
Messy code is a nuisance. "Tidying" code, to make it more readable, requires breaking it up …
book
Building Micro-Frontends
What's the answer to today's increasingly complex web applications? Micro-frontends. Inspired by the microservices model, this …
book
Righting Software
Right Your Software and Transform Your Career Righting Software presents the proven, structured, and highly engineered …
book
Become an Effective Software Engineering Manager
Software startups make global headlines every day. As technology companies succeed and grow, so do their …