Synopses & Reviews
Real-time and embedded systems face the same development challenges as traditional software: shrinking budgets and shorter timeframes. However, these systems can be even more difficult to successfully develop due to additional requirements for timeliness, safety, reliability, minimal resource use, and, in some cases, the need to support rigorous industry standards.
In Real-Time Agility, leading embedded-systems consultant Bruce Powel Douglass reveals how to leverage the best practices of agile development to address all these challenges. Bruce introduces the Harmony/ESW process: a proven, start-to-finish approach to software development that can reduce costs, save time, and eliminate potential defects.
Replete with examples, this book provides an ideal tutorial in agile methods for real-time and embedded-systems developers. It also serves as an invaluable “in the heat of battle” reference guide for developers working to advance projects, both large and small.
Coverage includes
- How Model-Driven Development (MDD) and agile methods work synergistically
- The Harmony/ESW process, including roles, workflows, tasks, and work products
- Phases in the Harmony/ESW microcycle and their implementation
- Initiating a real-time agile project, including the artifacts you may (or may not) need
- Agile analysis, including the iteration plan, clarifying requirements, and validation
- The three levels of agile design: architectural, mechanistic, and detailed
- Continuous integration strategies and end-of-the-microcycle validation testing
- How Harmony/ESW’s agile process self-optimizes by identifying and managing issues related to schedule, architecture, risks, workflows, and the process itself
Review
“Regardless of your perceptions of Agile, this is a must read! Douglass’s book is a powerful and practical guide to a well-defined process that will enable engineers to confidently navigate the complexity, risk, and variability of real-time and embedded systems—including CMMI compliance. From requirements specification to product delivery, whatever your modeling and development environment, this is the instruction manual.”
—Mark Scoville, software architect
“This book will provide you with the framework of agile development for real-time projects ranging from embedded systems to web-based, data collection applications. I wish I had this book three years ago when we began a real-time, embedded drilling control system project, but all my engineers will be getting copies now that it is available. And, for my academic colleagues, this is the perfect book for graduate seminars in applied software development techniques.”
—Don Shafer, chief technology officer, Athens Group; adjunct professor, Cockrell School of Engineering, The University of Texas at Austin
“We have used Dr. Douglass’s books on real-time (Doing Hard Time, Real-Time UML, and Real-Time Design Patterns) for years. His books are always informative, accessible, and entertaining. Real-Time Agility continues that tradition, and I can’t wait to introduce it to my colleagues.”
—Chris Talbott, principal software designer
“Until now, agile software development has been mostly applied within the IT domain. This book breaks new ground by showing how to successfully traverse the perceived chasm between agility and real-time development. Although embedded systems impose challenging constraints on development teams, you can always benefit from increasing your agility.”
—Scott W. Ambler, chief methodologist/Agile, IBM Rational; author of Agile Modeling
About the Author
Bruce Powel Douglass is chief evangelist for IBM Rational, a leading producer of tools for real-time systems development. He contributed to the original specication of the Unified Modeling Language and is former co-chair of the Object Management Group’s Real-Time Analysis and Design Working Group. He consults to many companies and organizations on building both small- and large-scale, real-time, safety-critical systems. He is the author of several books showing how to apply software development best practices in real-time and embedded systems development, including Doing Hard Time, Real-Time UML, Real-Time Design Patterns (all from Addison-Wesley) and Real-Time UML Workshop for Embedded Systems (Elsevier).
Table of Contents
Foreword xvii
Preface xix
Acknowledgments xxv
About the Author xxvii
Chapter 1: Introduction to Agile and Real-Time Concepts 1
The Agile Manifesto 1
Why Agile? 3
Properties of Real-Time Embedded Systems 8
Benefits of Agile Methods 14
Agile Methods and Traditional Processes 25
Coming Up 31
Chapter 2: Concepts, Goals, and Benefits of Model-Driven Development 33
What Is MDA? 33
Why Model? 36
Key Concepts of MDA 41
MDA Technologies 67
Benefits of MDA 73
Harmony’s Five Key Architectural Views 74
Coming Up 90
Chapter 3: Harmony/ESW Principles and Practices 91
Harmony Core Principles 91
Harmony Core Practices 130
Coming Up 153
Chapter 4: Process Overview 155
Why Process at All? 155
Harmony Time Frames 163
Prototype-Based Spiral Development 168
Harmony Macrocycle Process View 171
Harmony Spiral in Depth 177
What about Systems Engineering? 191
What about CMMI? 192
Combining Agile, MDA, and Harmony 194
Coming Up 194
Chapter 5: Project Initiation 197
What Do You Need to Get Started? The Baby Bear Plan 198
Prespiral Planning 199
Developing Stakeholder Requirements 250
Defining and Deploying the Development Environment 258
Continuous Integration 262
Coming Up 266
Chapter 6: Agile Analysis 269
Prototype Definition 272
Object Analysis 310
Coming Up 328
Chapter 7: Agile Design 329
Optimization and the Use of Design Patterns 331
Architectural Design 339
Mechanistic Design 358
Detailed Design 362
Coming Up 371
Chapter 8: Agile Testing 373
Testing Concepts 375
Model-Based Testing 380
Testing Workflows 385
Unit Test 388
Integration Test 392
Validation Testing 397
Coming Up 401
Chapter 9: Agile Process Optimization 403
Understanding Dynamic Planning 404
Tracking and Controlling 407
Change Management 414
Model Reviews 417
The “Party Phase” 420
Summary 424
Appendix A: Starfleet ZX-1000 Transporter System Requirements Specification 427
1 Overview 427
2 Operational Modes 427
3 General System Requirements 430
4 Major System Components 437
5 Secondary Functions 440
Appendix B: Harmony/ESW and CMMI: Achieving Compliance 447
Abstract 447
CMMI Basics 447
Achieving CMMI Compliance with Harmony/ESW 452
Summary 481
Further Reading 482
Glossary 483
Index 495