Agile Software Architecture

Agile Software Architecture

Aligning Agile Processes and Software Architectures

1st Edition - November 27, 2013

Write a review

  • Editors: Muhammad Ali Babar, Alan W. Brown, Ivan Mistrik
  • eBook ISBN: 9780124078857
  • Paperback ISBN: 9780124077720

Purchase options

Purchase options
DRM-free (Mobi, PDF, EPub)
Available
Sales tax will be calculated at check-out

Institutional Subscription

Free Global Shipping
No minimum order

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.

Key Features

  • 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

Readership

researchers, practitioners, and graduate students of software engineering and software architectures, people working in architecturally sensitive industries (e.g. safety critical systems) and industries migrating to agile

Table of Contents

  • Acknowledgments

    About the Editors

    Muhammed Ali Babar

    Alan W. Brown

    Ivan Mistrik

    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

    Part I: Fundamentals of agile architecting

    Part II: Managing software architecture in agile projects

    Part III: Agile architecting in specific domains

    Part IV: Industrial viewpoints on agile architecting

    Chapter 1. Making Software Architecture and Agile Approaches Work Together: Foundations and Approaches

    Abstract

    Acknowledgments

    1.1 Introduction

    1.2 Software Architecture

    1.3 Agile Software Development and Architecture

    1.4 Making Architectural and Agile Approaches Work

    References

    PART 1: Fundamentals of Agile Architecting

    Chapter 2. The DCI Paradigm: Taking Object Orientation into the Architecture World

    2.1 Introduction

    2.2 The Vision: What is Architecture?

    2.3 Form and Function in Architectural History

    2.4 What is Object Orientation? Achieving the Vision

    2.5 Shortcomings of the Models

    2.6 DCI as a New Paradigm

    2.7 DCI and Architecture

    2.8 Conclusion

    References

    Further Reading

    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

    Abstract

    Acknowledgments

    4.1 Introduction

    4.2 Personas in the Design Space

    4.3 Discovering ASRs

    4.4 Personas for Driving Architectural Design

    4.5 Personas and Architectural Preservation

    4.6 ASPs in Other Project Domains

    4.7 Conclusions

    References

    Chapter 5. Architecture Decisions: Who, How, and When?

    Abstract

    5.1 Introduction

    5.2 Research Methodology

    5.3 The Agile Architecture Axes Framework

    5.4 Industrial Cases

    5.5 Analysis

    5.6 Reflection

    5.7 Related and Future Work

    5.8 Conclusions

    Appendix A Visual Representation of the Case Studies Mapped on the Triple-A Framework

    References

    PART 2: Managing Software Architecture in Agile Projects

    Chapter 6. Supporting Variability Through Agility to Achieve Adaptable Architectures

    Abstract

    Acknowledgments

    6.1 Introduction

    6.2 Background

    6.3 Related Work

    6.4 Challenges When Combining Variability and Agility

    6.5 Arguments for Combining Variability and Agility

    6.6 Agile-Inspired Variability Handling

    6.7 Summary and Conclusions

    References

    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

    Abstract

    Acknowledgments

    9.1 Introduction

    9.2 Agile Architecting

    9.3 Case Study: Metering Management System in Electrical Power Networks

    9.4 Agile Architecting Mechanisms

    9.5 A Tailored Scrum for Agile Architecting

    9.6 Agile Architecting in Practice

    9.7 Findings About Agile Architecting

    References

    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

    PART 4: Industrial Viewpoints on Agile Architecting

    Chapter 12. Agile Architecting: Enabling the Delivery of Complex Agile Systems Development Projects

    Abstract

    12.1 Agile and complex systems development approaches need to merge and adapt

    12.2 Identifying the right amount of architecture

    12.3 Cost reduction through architecture

    12.4 Minimize rework through architecture

    12.5 Accelerate delivery through architecture

    12.6 Conclusion

    References

    Chapter 13. Building a Platform for Innovation: Architecture and Agile as Key Enablers

    Abstract

    13.1 Introduction

    13.2 Worlds collide

    13.3 An architecture heritage

    13.4 Iterative development

    13.5 Along came agile

    13.6 Agile with discipline

    13.7 Beyond architecture and agile

    13.8 Summary

    References

    Chapter 14. Opportunities, Threats, and Limitations of Emergent Architecture

    Abstract

    14.1 Introduction

    14.2 Purpose, activities, and objectives of architecture

    14.3 Analysis of emergent architecture

    14.4 Discussion

    14.5 Conclusion

    References

    Chapter 15. Architecture as a Key Driver for Agile Success: Experiences at Aviva UK

    Abstract

    15.1 Introduction

    15.2 Challenges to agile adoption at Aviva UK

    15.3 The key role of architecture in driving agile success

    15.4 Incremental agile and architecture transformation

    15.5 Conclusions

    References

    Author Index

    Subject Index

Product details

  • No. of pages: 432
  • Language: English
  • Copyright: © Morgan Kaufmann 2013
  • Published: November 27, 2013
  • Imprint: Morgan Kaufmann
  • eBook ISBN: 9780124078857
  • Paperback ISBN: 9780124077720

About the Editors

Muhammad Ali Babar

Dr. M. Ali Babar is a Professor of Software Engineering (Chair) at the School of Computer Science, the University of Adelaide, Australia. He also holds an Associate Professorship at IT University of Copenhagen, Denmark. Prior to this, he was a Reader in Software Engineering at Lancaster University UK. Previously, he worked as a researcher and project leaders in different research centres in Ireland and Australia. He has authored/co-authored more than 140 peer-reviewed research papers in journals, conferences, and workshops. He has co-edited a book, software architecture knowledge management: theory and practice. Prof. Ali Babar has been a guest editor of several special issues/sections of IEEE Software, JSS, ESEJ, SoSyM, IST, and REJ. Apart from being on the program committees of several international conferences such as WICSA/ECSA, ESEM, SPLC, ICGSE, and ICSSP for several years, Prof. Ali Babar was the founding general chair of Nordic-Baltic Symposium on Cloud Computing and Internet Technologies (NordiCloud) 2012. He has also been co-(chair) of the program committees of several conferences such as NordiCloud 2013, WICSA/ECSA 2012, ECSA2010, PROFES2010, and ICGSE2011. He is a member of steering committees of WICSA, ECSA, NordiCloud and ICGSE. He has presented tutorials in the areas of cloud computing, software architecture and empirical approaches at various international conferences. Prior to joining R&D field, he worked as a software engineer and an IT consultant for several years in Australia. He obtained a PhD in computer science and engineering from University of New South Wales, Australia.

Affiliations and Expertise

The University of Adelaide, Australia

Alan W. Brown

Alan W. Brown is Professor of Entrepreneurship and Innovation in the Surrey Business School, University of Surrey, UK. where he leads activities in the area of corporate entrepreneurship and open innovation models. In addition to teaching activities, he focuses on innovation in a number of practical research areas with regard to global enterprise software delivery, agile software supply chains, and the investigation of "open commercial" software delivery models. He has formerly held a wide range of roles in industry, including Distinguished Engineer and CTO at IBM Rational, VP of Research at Sterling Software, Research Manager at Texas Instruments Software, and Head of Business Development in a Silicon Valley startup. In these roles Alan has worked with teams around the world on software engineering strategy, process improvement, and the transition to agile delivery approaches. He has published over 50 papers and written four books. He holds a Ph.D. in Computing Science from the University of Newcastle upon Tyne, UK.

Affiliations and Expertise

Surrey Business School, University of Surrey, UK

Ivan Mistrik

Ivan Mistrik is a computer scientist who is interested in system and software engineering (SE/SWE) and in system and software architecture (SA/SWA), in particular: life cycle system/software engineering, requirements engineering, relating software requirements and architectures, knowledge management in software development, rationale-based software development, aligning enterprise/system/software architectures, and collaborative system/software engineering. He has more than forty years’ experience in the field of computer systems engineering as an information systems developer, R&D leader, SE/SA research analyst, educator in computer sciences, and ICT management consultant.

In the past 40 years, he has been primarily working at various R&D institutions and has done consulting on a variety of large international projects sponsored by ESA, EU, NASA, NATO, and UN. He has also taught university-level computer sciences courses in software engineering, software architecture, distributed information systems, and human-computer interaction. He is the author or co-author of more than 80 articles and papers in international journals, conferences, books and workshops, most recently a chapter Capture of Software Requirements and Rationale through Collaborative Software Development, a paper Knowledge Management in the Global Software Engineering Environment, and a paper Architectural Knowledge Management in Global Software Development.

He has written a number of editorials and prefaces, most recently for the book on Aligning Enterprise, System, and Software Architecture and the book on Agile Software Architecture. He has also written over 120 technical reports and presented over 70 scientific/technical talks. He has served in many program committees and panels of reputable international conferences and organized a number of scientific workshops, most recently two workshops on Knowledge Engineering in Global Software and Development at International Conference on Global Software Engineering 2009 and 2010 and IEEE International Workshop on the Future of Software Engineering for/in the Cloud (FoSEC) held in conjunction with IEEE Cloud 2011.He has been the guest-editor of IEE Proceedings Software: A special Issue on Relating Software Requirements and Architectures published by IEE in 2005 and the lead-editor of the book Rationale Management in Software Engineering published by Springer in 2006. He has been the co-author of the book Rationale-Based Software Engineering published by Springer in May 2008. He has been the lead-editor of the book Collaborative Software Engineering published by Springer in 2010, the book on Relating Software Requirements and Architectures published by Springer in 2011 and the lead-editor of the book on Aligning Enterprise, System, and Software Architectures published by IGI Global in 2012. He was the lead-editor of the Expert Systems Special Issue on Knowledge Engineering in Global Software Development and the co-editor of the JSS Special Issue on the Future of Software Engineering for/in the Cloud, both published in 2013. He was the co-editor for the book on Agile Software Architecture published in 2013. Currently, he is the lead-editor for the book on Economics-driven Software Architecture to be published in 2014.

Affiliations and Expertise

Systems Engineering Researcher/Consultant, Heidelberg, Germany

Ratings and Reviews

Write a review

There are currently no reviews for "Agile Software Architecture"