Contents

Foreword

Preface

Acknowledgments

About the Authors

Part I. Understanding PBE

Chapter 1. Defining Patterns-Based Engineering

Asset-Based Development

Patterns

Engineering

Patterns-Based Engineering

Pattern Specifications and Pattern Implementations

A Model for Succeeding with PBE

PBE Core Values

PBE Patterns and Guidelines

PBE Practice

Examples of PBE Results

Services Team: Portlet Proof of Concepts

Software Vendor: Product Update

Entertainment Industry: Enhancing MDD

Government: Integrating Departments

Why Do We Need PBE?

The Importance of Creativity, Constraints, Rules, and Assumptions

Important Definitions

Model

Metamodel

Exemplar

Domain-Specific Languages

Summary

Chapter 2. Examples of Pattern Implementations

Types of Pattern Implementations

UML Pattern Implementations

Abstract Factory Pattern

The No Cyclic Dependency Pattern

Service Provider Pattern

Master-Detail Pattern

Model-to-Model Pattern Implementations

System Use Case to Service Collaboration

Model-to-Text Pattern Implementations

Bean Factory Pattern Implementation

Hibernate Pattern Implementation

Using Implementations in Combination

Summary

Chapter 3. Case Study Introduction

Overview

Meet the Team

Oslec Development Process

Overview of the Plan

Case Study Roadmap

Summary

Chapter 4. Iteration 0: Envisioning

Getting Started

PBE Focus

LogoAuction Application Requirements

The Functional Requirements

LogoAuction Domain Model

The Nonfunctional Requirements

Elaborating the Architecture

LogoAuction Logical Architecture

LogoAuction Deployment Architecture

LogoAuction Data Architecture

Recording the Patterns Used

Opportunity Identification

Evaluating the Candidate Patterns

Summary

Chapter 5. Iteration 1: Creating the Pattern

Launching the Iteration

Designing the Subsystem Façade Pattern

Understanding the Essence of the Subsystem Façade Pattern

The Subsystem Façade Exemplar

Creating the Subsystem Façade Pattern Specification

Building the Subsystem Façade Pattern Implementation

Building the JET Component

Implementing the UML Front End for the Pattern

Testing the Full Pattern Implementation

Summary

Chapter 6. Iteration 2: Packaging the Pattern

Launching the Iteration

Applying the Subsystem Façade Pattern to the New Subsystem

Packaging the Patterns

Document the Pattern

Creating the Pattern Package

Making the Pattern Available for Reuse

Pattern Metadata

Pattern Review Process

Summary

Chapter 7. Iteration 3: Consuming the Pattern

Launching the Iteration

Using the Pattern in a New Subsystem

Installing the Pattern Implementation

Applying the Pattern to the User Management Subsystem

Providing Feedback on the Pattern

Refactor the Items Management Subsystem to the Pattern

Summary

Chapter 8. PBE and the Software Development Process

Introduction to the PBE Practice

PBE Roles and Tasks in Context

Getting Started with the PBE Practice

Leveraging the PBE Practice within Your Own Process

Scrum

OpenUP

Extreme Programming (XP)

Summary

Part II. PBE Patterns and Guidelines

Chapter 9. Introduction to the PBE Patterns and Guidelines

Relationship of Patterns and Guidelines to Other Elements within PBE

Quick Guide to PBE Patterns and Guidelines

Chapter 10: Foundational

Chapter 11: Discovering Patterns

Chapter 12: Designing Patterns

Chapter 13: Creating Patterns

Chapter 14: Packaging Patterns

Chapter 15: Using Domain-Specific Languages with Patterns

Chapter 16: Consuming Patterns

Summary

Chapter 10. Foundational Patterns and Guidelines

Patterns

End-to-End Pattern Use

Piecemeal Pattern Creation

Simple Solution Space

Single Pattern–Varied Use Cases

Guidelines

Domain-Driven Patterns

Pattern Search

Summary

Chapter 11. Discovering Patterns

Patterns

Antipatterns

Pattern Opportunity

Recurring Solution

Guidelines

Determine Business Impact

Pattern Description

Pattern Harvest

Update Existing Patterns

Summary

Chapter 12. Designing Patterns

Patterns

Compound Pattern

Exemplar Analysis

Meet-in-the-Middle Pattern Design

Pattern Implementation

Guidelines

Limited Points of Variability

Pattern Creation Lifecycle

Pattern Implementation Extensibility

Team Pattern Implementation Use

Summary

Chapter 13. Creating Patterns

Patterns

Model-to-Model Pattern Implementation

Model-to-Text Pattern Implementation

UML Pattern Implementation

Guidelines

Automate Creation of Pattern Implementations

Pattern Specification

Pattern Testing

Summary

Chapter 14. Packaging Patterns

Patterns

Embedded Pattern Implementation Guidance

Provisionable Pattern Implementation

Guidelines

Document Pattern

Document Pattern Relationships

Make Pattern Documentation Easily Accessible

Package Related Patterns Together

Pattern Packaging

Pattern Version

Use Models in Documenting Patterns

Summary

Chapter 15. Using Domain-Specific Languages with Patterns

Patterns

DSL Model Template

Integrated Patterns and DSLs

Guidelines

Create a DSL

Design a DSL

Meaningful Icons in a DSL

Summary

Chapter 16. Consuming Patterns

Guidelines

Communicate Design with Patterns

Design Solutions with Patterns

Pattern Density

Pattern Selection Driven by Requirements

Refactor with Patterns

Select Large-Scope Patterns First

Use an Asset Repository

Use Pattern Definitions to Understand Existing Solutions

Use Patterns to Find Patterns

Summary

Part III. Additional Topics

Chapter 17. Benefits of PBE

Increased Productivity

Reuse

Patterns in Combination

Pattern Implementations

Increased Quality

Beauty of Software Architecture

Improved Communication

Better Leveraging of Skills and Expertise

Improved Governance

Support for Globally Distributed Development

Summary

Chapter 18. Economic Considerations of PBE

Key Economic Aspects of PBE

Pattern Sources

Pattern Selection Criteria

Pattern Source Recommendation

PBE Adoption

Tooling

Methodology Enhancements

Training

Cultural Changes

Pattern Acquisition Costs

Pattern Support Costs

Pattern Development Costs

Pattern Implementations

PBE Projects

Systems Integrators

IT Organization

Independent Software Vendor

Summary

Chapter 19. PBE Misconceptions

PBE Eliminates Creativity

PBE Introduces Project Risk

Pattern Identification Is Not for Everybody

Patterns Need to Be Used Everywhere, All the Time

PBE Is Overly Formal

PBE Is Only for Design

PBE Is Only for Forward Engineering

Guilty by Association

PBE Requires Tools from a Specific Vendor

Summary

Part IV. Appendices

Appendix A. PBE Definitions

Code Generators

Domain-Specific Languages

Exemplar

Metamodel

Model

Pattern Catalog

Pattern Categories

Pattern Language

Reusable Asset

Appendix B. PBE and Other Development Approaches

Asset-Based Development

Model-Driven Development (MDD)

Model-Driven Architecture (MDA)

Software Factories

Appendix C. PBE Tooling Options

Eclipse Modeling Project

IBM Rational Software Modeling Platform

AndroMDA

Microsoft Visual Studio

Sparx Enterprise Architect

Process Tooling and Framework

Eclipse Process Framework Composer

IBM Rational Method Composer

Appendix D. PBE Patterns and Guidelines

Appendix E. Subsystem Façade Pattern Specification

Context

Problem

Forces

Solution

Sample Code

Pattern Composition

Appendix F. Introduction to the PBE Practice

PBE Roles

Asset Librarian

Pattern Author/Subject Matter Expert (SME)

Pattern Specification Author

Pattern Implementation Author

Pattern Tester

Pattern User

PBE Main Work Products

Domain-Specific Language

Exemplar

List of Candidate Patterns

Pattern Description

Pattern Implementation

Pattern Implementation Design

Pattern Implementation Documentation

Input Model

Pattern Specification

Reusable Asset

Task Order

PBE Tasks

Pattern Identification

Pattern Production

Pattern Consumption

Pattern Management

References and Resources

References

Additional Resources

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset