HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.
The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Successfully delivering Solutions via Patterns
In Patterns-Based Engineering, two leading experts bring together true best practices for developing and deploying successful software-intensive systems. Drawing on their extensive enterprise development experience, the authors clearly show how to deliver on the promise of a patterns-based approach—and consistently create higher-quality solutions faster, with fewer resources.
Lee Ackerman and Celso Gonzalez demonstrate how Patterns-Based Engineering (PBE) can help you systematically overcome common obstacles to success with patterns. By bringing discipline and clarity to patterns usage, their techniques enable you to replicate your success broadly and scale patterns to even the largest projects.
The authors introduce powerful ways to discover, design, create, package, and consume patterns based on your organization’s experience and best practices. They also present extensive coverage of the nontechnical aspects of making patterns work, including a full chapter of guidance on clearing up misconceptions that stand in your way. Coverage includes
Whether you’re an architect, designer, developer, analyst, project manager, or process engineer, Patterns-Based Engineering will help you to consistently derive greater business value and agility from patterns.
Foreword xix
Preface xxi
Acknowledgments xxv
About the Authors xxvii
Part I: Understanding PBE 1
Chapter 1: Defining Patterns-Based Engineering 3
Asset-Based Development 4
Patterns 6
Engineering 7
Patterns-Based Engineering 7
A Model for Succeeding with PBE 10
Examples of PBE Results 14
Why Do We Need PBE? 17
Important Definitions 19
Summary 21
Chapter 2: Examples of Pattern Implementations 23
Types of Pattern Implementations 23
UML Pattern Implementations 24
Model-to-Model Pattern Implementations 29
Model-to-Text Pattern Implementations 31
Using Implementations in Combination 34
Summary 34
Chapter 3: Case Study Introduction 37
Overview 37
Meet the Team 38
Oslec Development Process 39
Overview of the Plan 40
Case Study Roadmap 41
Summary 43
Chapter 4: Iteration 0: Envisioning 45
Getting Started 46
PBE Focus 47
LogoAuction Application Requirements 48
Elaborating the Architecture 55
Recording the Patterns Used 65
Opportunity Identification 65
Evaluating the Candidate Patterns 66
Summary 69
Chapter 5: Iteration 1: Creating the Pattern 71
Launching the Iteration 71
Designing the Subsystem Façade Pattern 73
Creating the Subsystem Façade Pattern Specification 87
Building the Subsystem Façade Pattern Implementation 87
Summary 111
Chapter 6: Iteration 2: Packaging the Pattern 113
Launching the Iteration 113
Applying the Subsystem Façade Pattern to the New Subsystem 114
Packaging the Patterns 116
Making the Pattern Available for Reuse 118
Summary 122
Chapter 7: Iteration 3: Consuming the Pattern 123
Launching the Iteration 123
Using the Pattern in a New Subsystem 125
Refactor the Items Management Subsystem to the Pattern 129
Summary 132
Chapter 8: PBE and the Software Development Process 135
Introduction to the PBE Practice 135
PBE Roles and Tasks in Context 137
Getting Started with the PBE Practice 139
Leveraging the PBE Practice within Your Own Process 143
Summary 150
Part II: PBE Patterns and Guidelines 151
Chapter 9: Introduction to the PBE Patterns and Guidelines 153
Relationship of Patterns and Guidelines to Other Elements within PBE 153
Quick Guide to PBE Patterns and Guidelines 154
Summary 164
Chapter 10: Foundational Patterns and Guidelines 165
Patterns 166
Guidelines 176
Summary 181
Chapter 11: Discovering Patterns 183
Patterns 184
Guidelines 190
Summary 198
Chapter 12: Designing Patterns 199
Patterns 199
Guidelines 209
Summary 220
Chapter 13: Creating Patterns 221
Patterns 221
Guidelines 234
Summary 243
Chapter 14: Packaging Patterns 245
Patterns 245
Guidelines 250
Summary 262
Chapter 15: Using Domain-Specific Languages with Patterns 265
Patterns 265
Guidelines 273
Summary 280
Chapter 16: Consuming Patterns 281
Guidelines 281
Summary 303
Part III: Additional Topics 305
Chapter 17: Benefits of PBE 307
Increased Productivity 307
Increased Quality 311
Improved Communication 312
Better Leveraging of Skills and Expertise 314
Improved Governance 316
Summary 318
Chapter 18: Economic Considerations of PBE 319
Key Economic Aspects of PBE 319
Pattern Sources 320
PBE Adoption 325
Pattern Implementations 330
PBE Projects 331
Summary 332
Chapter 19: PBE Misconceptions 335
PBE Eliminates Creativity 335
PBE Introduces Project Risk 336
Pattern Identification Is Not for Everybody 337
Patterns Need to Be Used Everywhere, All the Time 338
PBE Is Overly Formal 339
PBE Is Only for Design 340
PBE Is Only for Forward Engineering 341
Guilty by Association 342
PBE Requires Tools from a Specific Vendor 343
Summary 343
Part IV: Appendices 345
Appendix A: PBE Definitions 347
Code Generators 347
Domain-Specific Languages 348
Exemplar 349
Metamodel 350
Model 352
Pattern Catalog 353
Pattern Categories 353
Pattern Language 354
Reusable Asset 356
Appendix B: PBE and Other Development Approaches 357
Asset-Based Development 357
Model-Driven Development (MDD) 358
Model-Driven Architecture (MDA) 359
Software Factories 361
Appendix C: PBE Tooling Options 365
Eclipse Modeling Project 365
IBM Rational Software Modeling Platform 365
AndroMDA 366
Microsoft Visual Studio 366
Sparx Enterprise Architect 366
Process Tooling and Framework 367
Appendix D: PBE Patterns and Guidelines 369
Appendix E: Subsystem Façade Pattern Specification 373
Context 373
Problem 373
Forces 373
Solution 374
Sample Code 375
Pattern Composition 383
Appendix F: Introduction to the PBE Practice 385
PBE Roles 385
PBE Main Work Products 389
Task Order 393
PBE Tasks 394
References and Resources 417
References 417
Additional Resources 421
Index 425