Index

Numbers

80/20 rule, in pattern development, 170

A

ABD (asset-based development)

identification, production, management, and consumption of assets, 5

key areas of, 137

overview of, 4, 357

PBE as specialized form of, 10

two perspectives on, 5–6

Abstract classes, adding support for, 84–85

Abstract Factory pattern, UML patterns, 24–25

Abstraction

MDD (model-driven development) and, 214, 222

recurring solutions and, 190

Abstraction blinders, pitfalls of Pattern Opportunity pattern, 188

Activity diagrams, 138

Actors, LogoAuction application, 49–50

Agile development

approaches to software development, 3

OpenUP and, 146

Oslec Software using, 39

XP (Extreme Programming) and, 147

Alexander, Christopher, 6, 11–12, 292, 298, 312

Analysis patterns, applying to LogoAuction application, 47

AndroMDA, 366

Antipattern pattern

context, problem, forces, and solution, 184–185

example and related patterns and guidelines, 185

overview of, 157

Architectural design, pattern categories, 353–354

Architectural Discovery feature, RSA (Rational Software Architect), 341

Architecture, LogoAuction application

data architecture, 63–64

deployment architecture, 59–63

logical architecture, 56–59

overview of, 55–56

Artifacts

code generators producing, 347

exemplar as key artifact, 242

relationship to binaries, 259

significance in exemplar analysis, 204

storing source and development, 118

text-based, 226

Asset-based development. see ABD (asset-based development)

Asset Librarian role, 385–386

Asset repository

capturing pattern relationships in, 253

choosing solution for, 259

deploying patterns to, 410–411

features to consider, 326–327

integration of asset repository with organizational uses, 249

overview of, 118

searching for requirements, 294

Use an Asset Repository guideline, 299–301

versioning and, 261

Assets

identification, production, management, and consumption, 5, 137

integration of asset repository with organizational uses, 249

metadata, 119–120

reusable, 356

review process, 120–121

timing reuse of, 308

training for managing, 329

Assumptions

defined, 18–19

points of variability and, 210

Attributes

dynamically building for entities, 96

identifying entity roles for Subsystem Façade pattern, 81–82

Auction Management subsystem

areas of responsibility in LogoAuction application, 57–58

entities and projects, 115

implementation of, 113

Start Auction and Close Auction use cases, 124

Auction subsystem, 104–105

Authoring

pattern implementation and pattern specification, 72

Pattern Implementation Author role, 388

Pattern Specification Author role, 387

software development process and, 168

Automate Creation of Pattern Implementations guideline

creating patterns, 160

related patterns and guidelines, 235

summary, introduction, and explanation, 234–235

Automation

forming foundation for exemplars, 214

globalization and, 317

harvested patterns and, 195

leveraging, 316

of model consumption, 272

pattern implementation and, 168, 207, 247, 310

B

Bean Factory pattern, model-to-text patterns, 31–32

Benefits of PBE

combining patterns, 309–310

communication improvements, 312–314

globalization of development, 317

governance improvements, 316–317

overview of, 307

pattern implementation and, 310–311

productivity, 307

quality, 311–312

reuse, 307–308

skills and expertise leveraged, 314–316

summary, 318

systematic, disciplined, and quantifiable nature of PBE, 309

Binaries, relationship to artifacts, 259

Booch, Grady, 3, 180, 312

Bottom-up design, 206

Browse Items use case, Auction Management subsystem, 113

Build a Pattern Implementation task

mapping to PBE phases, 141

in pattern production, 401–402

summary of, 142

Business impacts. see Determine Business Impact guideline

C

Candidate patterns

evaluating, 66–69, 396–397

selecting, 65–66

work products in PBE, 391

Capture Reuse Metrics task, in pattern management, 141, 143, 413–414

Cardinality, pattern selection criteria, 322

Case studies

compared with real-world examples, 14–15

Oslec Software case study. see Oslec Software case study

Category, pattern selection criteria, 322

Change, cultural changes needed for adoption of PBE, 329

Class body, identifying entity roles for Subsystem Façade pattern, 81

Class Table Inheritance pattern, 64, 86, 127

Close Auction use case, Auction Management subsystem, 124

Code generators, 347

Code review, harvested patterns and, 196

Collaboration, in Oslec Software case study, 40–41

Combining patterns. see also Compound Pattern pattern

benefits of PBE, 309–310

tooling support for, 328

Communicate Design with Patterns guideline

applying to Subsystem Façade pattern, 127

consuming patterns, 163

related patterns and guidelines, 289

summary, introduction, and explanation, 282–289

Communication

benefits of PBE, 312–314

globalization and, 317

metamodels supporting, 352

Communities, as pattern source, 321, 324

Composite Cheat Sheet mechanism, Eclipse, 247–248

Compound Pattern pattern

applying to Subsystem Façade pattern, 383

context, problem, forces, and solution, 200–201

creating compound patterns, 255

designing patterns, 158

example and related patterns and guidelines, 201–202

productivity and, 310

simplification from use of, 86, 257

tooling support for, 327

Connectivity, nonfunctional requirements in LogoAuction application, 55

Consistency, quality and, 311

Constraints

defined, 18–19

detailing and enforcing in UML, 25–26

Constraints Patterns, 26

Consumability, testing and, 240

Consuming patterns

Communicate Design with Patterns guideline, 282–289

Design Solutions with Patterns guideline, 290–291

guidelines for, 163–164

high-level overview of PBE, 138

locating patterns, 404–406

mapping tasks to phases of PBE, 140–141

modeling pattern use, 408–409

overview of, 155, 281–282

Pattern Density guideline, 291–294

Pattern Selection Driven by Requirements guideline, 294–295

phases of PBE, 139

providing feedback on patterns, 409

Refactor with Patterns guideline, 295–296

Select Large-Scope Patterns First guideline, 296–299

summary, 303–304

Use an Asset Repository guideline, 299–301

Use Pattern Definitions to Understand Existing Solutions guideline, 301–302

Use Patterns to Find Patterns guideline, 302–303

using pattern implementation, 407–408

using patterns, 406–407

Consuming patterns (Iteration 3)

applying pattern implementation to User Management subsystem, 126–128

installing pattern implementation to be used with new subsystem, 125–126

overview of, 123–125

providing feedback on patterns, 129

refactoring Items Management subsystem, 129–132

searching for/using patterns in new subsystem, 125

summary, 132–133

Continuous integration, in development approach, 40

Core Values

Compound Pattern supporting and building on, 200

guidance and support in, 143

guiding creation of pattern implementations, 330

over formalization and, 339

overview of, 11–12

patterns and guidelines built upon, 154

Costs

criteria guiding pattern implementations, 330

pattern selection criteria, 323

reduction due to pattern implementation, 9

Create a DSL guideline

applying, 162

related patterns and guidelines, 274

summary, introduction, and explanation, 273–274

Create a Pattern Specification task, in pattern production, 400–401

Create Account use case, User Management subsystem, 124

Create, read, update, delete (CRUD) operations, 57–58

Creating patterns

Automate Creation of Pattern Implementations guideline, 234–235

guidelines for, 160

lifecycle for. see Pattern Creation Lifecycle guideline

Model-to-Model Pattern Implementation pattern, 221–225

Model-to-Text Pattern Implementation pattern, 225–230

overview of, 155, 221

Pattern Specification guideline, 235–240

Pattern Testing guideline, 240–243

patterns for, 159–160

software solutions, 176

summary, 243–244

UML Pattern Implementation pattern, 230–234

Creating patterns (iteration 1)

analyzing exemplar for, 77–79

creating JET component, 90

creating JET elements, 91–93

creating pattern specification, 87

designing pattern implementation, 86–87

detailed inspection of exemplar for, 79–85

developing DSL for, 102–104

finding exemplar for, 76–77

implementing UML front end for, 101–102

launching, 71–72

Model-Mapping component for, 105–109

overview of, 71

summary, 111

test-driven development applied to, 87–89, 105

Test project, 100–101

testing full pattern implementation, 110–111

understanding Subsystem Façade pattern, 73–76

unit-testing JET implementation, 99–100

unit-testing Model-Mapping component for, 109

updating JET elements templates, 93–99

Creativity

defined, 18–19

misconception regarding in PBE, 335–336

project risk and, 336

CRUD (create, read, update, delete) operations, 57–58

Culture

creating culture of pattern production, 168

economics of PBE and, 329

Custom extractors, RSA Model Mapping Authoring, 106

D

DAO (Data Access Object) pattern, 73–74, 383

Data architecture, in envisioning iteration, 63–64

Déjà vu, recurring solutions and, 189

Dependencies, adding support for, 83–85

Deploy Pattern to Asset Repository task, in pattern management, 410–411

Deployment architecture, in envisioning iteration, 59–63

Derivations, points of variability and, 210–211

Design a DSL guideline

applying, 162

related patterns and guidelines, 277

summary, introduction, and explanation, 275–277

Design a Pattern task

mapping tasks to PBE phases, 140

in pattern production, 399–400

roadmap for, 72

summary of, 142

Design patterns, as pattern category, 353–354

Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, Helm, Johnson, Vlissides), 6–7, 24, 320

Design Solutions with Patterns guideline

applying, 163

related patterns and guidelines, 291

summary, introduction, and explanation, 290–291

Designing patterns

communicating. see Communicate Design with Patterns guideline

Compound Pattern pattern, 200–202

Exemplar Analysis pattern, 202–205

guidelines for, 159

Limited Points of Variability guideline, 209–211

Meet-in-the-Middle pattern, 205–207

misconception that PBE is for design only, 340–341

overview of, 155, 199

Pattern Creation Lifecycle guideline, 212–215

pattern implementation and, 392

Pattern Implementation Extensibility guideline, 215–216

Pattern Implementation pattern, 207–209

pattern production tasks, 399–400

patterns for, 158–159

summary, 220

Team Pattern Implementation Use guideline, 217–219

top-down, bottom-up, and meet-in-the-middle approaches, 206

Detecting patterns, software solutions for, 175

Determine Business Impact guideline

overview of, 157

related patterns and guidelines, 192

summary, introduction, and explanation, 190–192

Development approaches, alternatives to PBE

ABD (asset-based development). see ABD (asset-based development)

MDA (Model-Driven Architecture). see MDA (Model-Driven Architecture)

MDD (model-driven development). see MDD (model-driven development)

SF (software factory). see SF (software factory)

Development process, for Oslec Software case study, 39–40

Development team, for Oslec Software case study, 38–39

Diagrams. see Models

Disciplined nature, of PBE

as counter to patterns everywhere and all the time, 338

overview of, 309

quality and, 311

Discovering patterns

Antipattern pattern, 184–185

Determine Business Impact guideline, 190–193

guidelines for, 157–158

overview of, 155, 183

Pattern Description guideline, 193–194

Pattern Harvest guideline, 194–196

Pattern Opportunity pattern, 186–188

patterns for, 156–157

Recurring Solutions pattern, 188–190

searching for patterns in asset repository, 300

summary, 198

Update Existing Patterns guidelines, 196–197

Use Patterns to Find Patterns guideline, 302–303

Document Object Model (DOM), 91

Document Pattern guideline

applying, 116–117

packaging patterns and, 161

related patterns and guidelines, 252

summary, introduction, and explanation, 250–252

Document Pattern Relationships guideline

packaging patterns and, 161

related patterns and guidelines, 254

summary, introduction, and explanation, 252–254

Documentation

accessibility of. see Make Pattern Documentation Easily Accessible guideline

of application at project end, 313

determining what to include in harvested patterns, 195

Document Pattern guideline, 116–117

pattern implementation and, 246–247, 392

of relationships between patterns. see Document Pattern Relationships guideline

tooling support for, 327

visual modeling of patterns. see Use Models in Documenting Patterns guideline

DOM (Document Object Model), 91

Domain-Driven Patterns guideline

overview of, 156

related patterns and guidelines, 178

summary, introduction, and explanation, 176–178

Domain model

adding support for abstract classes, 84–85

analyzing, 103

reviewing/updating in envisioning iteration, 52–54

Domains

DSLs and patterns overlapping with, 270–271

of patterns in exemplar analysis, 203

DSL Model Template pattern

applying, 162

context, problem, forces, and solution, 265–267

example and related patterns and guidelines, 267–269

DSLs (domain specific languages)

benefits of, 349

Create a DSL guideline, 273–274

defined, 20–21

Design a DSL guideline, 275–277

developing based on UML Profile, 102–104

DSL Model Template pattern, 265–269

generic and top-down, 185

Integrated Patterns and DSLs pattern, 269–273

Meaningful Icons in a DSL guideline, 278–279

overview of, 265, 348–349

simplification and, 172

summary, 280

using with patterns, 155, 162–163

visual modeling with, 230

work products in PBE, 391

E

e-Business patterns, 47

Eclipse

Composite Cheat Sheet mechanism, 247–248

features for packaging related plug-ins, 117

mechanism for extension points, 216

plug-ins containing pattern sets, 249–250

Process Framework Composer and Rational Method Composer, 135

rule of thumb for working with Eclipse projects, 91

testing plug-ins, 243

UML pattern implementations as Eclipse zxcvbr/asdfplug-in, 231

Eclipse Modeling Framework. see EMF (Eclipse Modeling Framework)

Eclipse Process Framework, 144

Eclipse Process Framework Composer. see EPF (Eclipse Process Framework) Composer

Economics of PBE

adopting PBE approach and, 325–326

costs of acquiring, supporting, and developing patterns, 329–330

cultural change and, 329

enhancing practice methodologies, 328

ISV (independent software vendors) and, 332

IT organization and, 332

overview of, 319–320

pattern implementation and, 330–331

pattern selection criteria, 322–324

pattern source recommendations, 325

projects and, 331

SIs (system integrators) and, 331

sources of patterns for, 320–322

summary, 332–333

tooling and, 326–328

training and, 328–329

Education resources, pattern selection criteria, 322

EJB (Enterprise JavaBeans)

Auction Management subsystem and, 91

identifying roles for Subsystem Façade pattern, 78

using for Business layer components, 58

Embedded Pattern Implementation Guidance pattern

context, problem, forces, and solution, 246–247

documentation and, 117

example and related patterns and guidelines, 247–248

packaging patterns and, 161

Embedded Value pattern

dealing with one-to-one relationships between objects, 63

used with Subsystem Façade pattern, 82

EMF (Eclipse Modeling Framework)

creating DSLs, 274

defining metamodels, 223

model-to-text pattern implementations and, 227

modeling UML front end with, 101

tooling options, 365

tools for implementing DSLs, 349

Enablement, in Oslec Software case study, 40–41

End-to-End Pattern Use pattern

context, problem, and forces in, 166

example, 168–169

as foundational patterns, 155

related patterns and guidelines, 169

solution, 167–168

Engineering, defined, 7

Enterprise Architect, from Sparx, 366–367

Enterprise integration patterns, applied to LogoAuction application, 48

Enterprise JavaBeans. see EJB (Enterprise JavaBeans)

Enterprise service bus (ESB), 16

Entertainment industry, PBE examples, 16

Entities

dynamically building attributes for, 96

identifying roles for Subsystem Façade pattern, 78

managing many-to-many and one-to-one relationships, 97

mapping, 107

working with entity-dependent elements, 92–93

Envisioning (iteration 0)

data architecture, 63–64

deployment architecture, 59–63

domain model, reviewing/updating, 52–54

elaborating architecture in, 55–56

evaluating candidate patterns, 66–69

functional requirements, 48–51

getting started, 46

logical architecture, 56–59

nonfunctional requirements, 55

overview of, 45

Pattern Search guideline, 47–48

recording patterns used, 65

roadmap for, 46

selecting candidate patterns, 65–66

summary, 69–70

EPF (Eclipse Process Framework) Composer

authoring processes via set of practices, 144

PBE Practice and, 135

as tooling option, 367

ESB (enterprise service bus), 16

Estimation, project estimation as organizational issue, 332

Evaluate Candidate Patterns task, in pattern identification, 396–397

Evocative Pattern Name pattern, 238

Examples, compared with case studies, 14–15

Exemplar Analysis pattern

applying to Subsystem Façade pattern, 77–79

context, problem, forces, and solution, 202–205

designing patterns, 158

example and related patterns and guidelines, 205

Exemplar Authoring

building exemplar analysis with, 228–229

creating JET component, 90, 92

EMF model generated by, 101

viewing subsystem-dependent elements, 94

Exemplars

analyzing, 77–79

characteristics of good, 350

defined, 20

detailed inspection of, 79–85

finding, 76–77

overview of, 349–350

testing, 241–242

tooling support for, 327–328

work products in PBE, 391

Experience, recurring solutions and, 189

Expertise, leveraging, 9, 314–316

Exposed Broker ESB pattern, 60–62

Extensibility, Pattern Implementation Extensibility guideline, 159, 215–216

Extension management, 249

Extension points

Eclipse mechanism for, 216

Pattern Implementation Extensibility guideline and, 215–216

External Pattern Thumbnail pattern, 238

F

Façade pattern. see Subsystem Façade pattern

Façade role, 78

Factory patterns

Abstract Factory pattern, 24–25

Bean Factory pattern, 31–32

Feedback

asset repository supporting, 326

finding/using patterns and, 129

giving feedback and rating patterns, 300, 409

pattern specification and, 236

reviewing, 411–412

Find Project Patterns task

mapping to PBE phases, 140

in pattern identification, 395–396

summary of, 141

Findable Sections pattern, in pattern specification, 238

Finding project patterns. see Pattern identification

Fit criteria, in pattern selection, 323

Foreign Key Mapping pattern, 63

Formality, misconceptions regarding PBE, 339

Formats, pattern specification and, 236

Forward engineering, misconceptions regarding PBE, 341–342

Foundational patterns and guidelines

Domain-Driven Patterns guideline, 176–178

End-to-End Pattern Use pattern, 166–169

guidelines, 156

overview of, 155, 165

Pattern Search guideline, 178–181

patterns, 155–156

Piecemeal Pattern Creation pattern, 169–171

Simple Solution Space pattern, 171–174

Single Pattern-Varied Use Cases pattern, 174–176

summary, 181

Functional requirements. see also Pattern Selection Driven by Requirements guideline

in envisioning (iteration 0) phase, 48–51

gathering for LogoAuction application, 52–54

G

Gamma, Erich, 6–7

Gang of Four. see GoF (Gang of Four)

Getting started with PBE, 139–140

Globalization of development, benefits of PBE, 317

GMF (Graphical Modeling Framework), 349

GoF (Gang of Four)

how GoF patterns were developed, 337

Oslec Software development approach and, 40

overview of, 7

patterns applied to LogoAuction application, 47

popularity of GoF patterns, 17

GoF Pattern Specification template, 238

Governance

asset repository supporting, 327

benefits of pattern implementation, 9

benefits of PBE, 316–317

review process and, 300

Government departmental integration example, 16–17

Granularity, DSL design and, 276

Graphical Modeling Framework (GMF), 349

Guidelines, DSLs

Create a DSL guideline, 273–274

Design a DSL guideline, 275–277

Meaningful Icons in a DSL guideline, 278–279

Guidelines, foundational

Domain-Driven Patterns guideline, 176–178

Pattern Search guideline, 60, 178–181

Guidelines, generally. see PBE Patterns and Guidelines

Guidelines, pattern consumption

Communicate Design with Patterns guideline, 127, 282–289

Design Solutions with Patterns guideline, 290–291

overview of, 163–164

Pattern Density guideline, 291–294

Pattern Selection Driven by Requirements guideline, 59, 294–295

Refactor with Patterns guideline, 295–296

Select Large-Scope Patterns First guideline, 55, 296–299

Use an Asset Repository guideline, 299–301

Use Pattern Definitions to Understand Existing Solutions guideline, 301–302

Use Patterns to Find Patterns guideline, 302–303

Guidelines, pattern creation

Automate Creation of Pattern Implementations guideline, 234–235

Pattern Specification guideline, 74, 235–240

Pattern Testing guideline, 240–243

Guidelines, pattern design

Limited Points of Variability guideline, 209–211

Pattern Creation Lifecycle guideline, 212–215

Pattern Implementation Extensibility guideline, 215–216

Team Pattern Implementation Use guideline, 87, 99, 217–219

Guidelines, pattern discovery

Determine Business Impact guideline, 190–193

Pattern Description guideline, 66, 193–194

Pattern Harvest guideline, 194–196

Update Existing Patterns guidelines, 196–197

Guidelines, pattern packaging

Document Pattern guideline, 116–117, 250–252

Document Pattern Relationships guideline, 252–254

Make Pattern Documentation Easily Accessible guideline, 254–256

Package Related Patterns Together guideline, 256–258

Pattern Packaging guideline, 116, 258–260

Pattern Version guideline, 260–261

Use Models in Documenting Patterns guideline, 261–262

H

Handbook of Software Architecture website, 17, 180

Harvesting patterns. see also Pattern Harvest guideline, 175–176

Helm, Richard, 6–7

Hibernate pattern

Model-to-Text implementations, 32–33

timing reuse of assets and, 308

Hillside.net pattern collection, 180

HTML

content published as, 135

pattern specification in, 41

I

IBM

e-Business patterns from, 47

RSA (Rational Software Architect). see RSA (Rational Software Architect)

RUP (Rational Unified Process) and RMC (Rational Method Composer), 367–368

SOA Reference Architecture, 76

Idioms, pattern categories, 353–354

Imports, identifying entity roles for Subsystem Façade pattern, 81

Increase Pattern Scope task, in pattern identification, 397–398

Incremental development. see Iterative and incremental development

Independent software vendors (ISV), 332

Inheritance

adding attributes supporting, 84–85

Class Table Inheritance pattern, 86, 127

Input models

analyzing, 103

creating, 226

in exemplar analysis, 204

stereotypes and, 103

tooling support for, 327

trade off between detail and intelligence in, 208

as work product in PBE, 392

Installations, tooling support for, 327

Instantiation, modeling for patterns, 284–287

Integrated Patterns and DSLs pattern

context, problem, forces, and solution, 269–272

example and related patterns and guidelines, 272–273

using DSLs with patterns, 162

Integration of processes, project risk and, 336

Interactive pattern implementation example, 247

Internationalization/localization, nonfunctional requirements and, 55

ISV (independent software vendors), 332

IT organizations, economics of PBE and, 332

Items Management subsystem

areas of responsibility in LogoAuction application, 57–58

designing, 76–77

Put Item Up for Auction use case, 71

refactoring for consistency with, 129–132

refactoring for synchronization with Subsystem Façade pattern, 129–132

team ownership of, 123

Iterations, Oslec Software case study

consuming patterns. see Consuming patterns (Iteration 3)

creating the pattern. see Creating patterns (iteration 1)

envisioning. see Envisioning (iteration 0)

overview of, 42–43

packaging patterns. see Packaging patterns (Iteration 2)

Iterative and incremental development

Oslec Software using in development approach, 39

project risk and, 336

reapplying pattern implementation and, 226

refactoring and, 295

XP (Extreme Programming) and, 147

J

J2EE patterns, applying to LogoAuction application, 47

Java Emitter Template. see JET (Java Emitter Template)

Java Persistence API. see JPA (Java Persistence API)

JavaServer Faces (JSF), 59

JET (Java Emitter Template)

creating JET component, 90

creating JET elements, 91–93

Model-to-Text implementations and, 31, 227–229

text-based artifacts created with, 86

tooling options, 365

unit-testing JET implementation, 99–100

updating JET elements templates, 93–99

Johnson, Ralph, 6–7

JPA (Java Persistence API)

JPA entities in Subsystem Façade pattern, 80–81

JPA manager provider by, 74

using for Data Access components, 58

JSF (JavaServer Faces), 59

JUnit tests, 79

K

Keywords, defined and compared with stereotypes, 24

L

Layers pattern

structuring logical architecture with, 56

vs. singleton pattern, 292

Legal review, in pattern review process, 120

Lifecycle, of patterns. see Pattern Creation Lifecycle guideline

Limited Points of Variability guideline

designing patterns, 159

related patterns and guidelines, 211

summary, introduction, and explanation, 209–211

Localization/internationalization, nonfunctional requirements and, 55

Locate a Pattern task, in pattern consumption, 404–406

Log In use case, User Management subsystem, 124

Logical architecture, in envisioning iteration, 56–59

LogoAuction application (Oslec Software case study)

actors, 49–50

architecture, 55–56

data architecture, 63–64

deployment architecture, 59–63

domain model, reviewing/updating, 52–54

evaluating candidate patterns, 66–69

functional requirements, 48–51

logical architecture, 56–59

nonfunctional requirements, 55

Pattern Search guideline applied to, 47–48

recording patterns used, 65

selecting candidate patterns, 65–66

use cases, 50–51

M

Maintenance team, documentation and, 252

Make Pattern Available for Reuse task, in pattern production, 402–403

Make Pattern Documentation Easily Accessible guideline

packaging patterns, 161

related patterns and guidelines, 255–256

summary, introduction, and explanation, 254–255

Many-to-many relationships

entities, 97

Foreign Key Mapping pattern for, 63

Mapping capabilities, of RSA, 223–225

Maslow's Hammer, 13

Master-Detail pattern, in UML pattern implementations, 28–29, 232–233

Maturity criteria, in pattern selection, 322

MDA (Model-Driven Architecture). see also MDD (model-driven development)

creating patterns as alternative to, 183

overview of, 359–360

relationship to PBE, 360–361

tooling options, 366–367

MDD (model-driven development)

approaches to software development, 3

creating patterns as alternative to, 183

entertainment industry example, 16

levels of abstraction in, 214

leveraging models at multiple levels of abstraction, 222

MDA as implementation of. see MDA (Model-Driven Architecture)

overview of, 358–359

relationship to PBE, 359

SF (software factory) and, 362

Meaningful Icons in a DSL guideline

related patterns and guidelines, 279

summary, introduction, and explanation, 278–279

using DSLs with patterns, 163

Meet-in-the-middle design approach

DSL design and, 276–277

overview of, 206

Meet-in-the-Middle pattern

context, problem, forces, and solution, 205–206

designing patterns, 158

example and related patterns and guidelines, 206–207

Metadata, pattern, 118–120

MetaEdit tool, for implementing DSLs, 349

Metamodels

defined, 20

model-to-model pattern implementation and, 222–223

overview of, 350–352

Metrics, capturing reuse metrics, 141, 143, 413–414

Microsoft

"Testing Software Patterns," 242

tools for implementing DSLs, 349

Microsoft Pattern Specification template, 239

Microsoft Visual Studio, 366

Misconceptions, regarding PBE

creativity eliminated, 335–336

design focus only, 340–341

forward engineering and, 341–342

models and modeling and, 342–343

over formalization, 339

overview of, 335

pattern identification and, 337–338

patterns everywhere and all the time, 338–339

project risk introduced, 336–337

summary, 343–344

tooling and, 343

Model Pattern Use task, in pattern consumption, 408–409

Model-to-Model Pattern Implementation pattern

automating pattern implementation, 208

context, problem, forces, and solution, 221–223

creating patterns, 159–160

example and related patterns and guidelines, 223–225

implementing for Subsystem Façade pattern, 105–109

overview of, 29

System Use Case to Service Collaboration pattern, 29–31

types of pattern implementations, 23

unit-testing and, 109

Model-to-Text Pattern Implementation pattern

applying to Subsystem Façade pattern, 86

Bean Factory pattern, 31–32

combining pattern implementations, 34

context, problem, forces, and solution, 225–227

creating patterns, 160

example, 227–230

Hibernate pattern, 32–33

overview of, 31

related patterns and guidelines, 230

types of pattern implementations, 23

Model transformation, vs. pattern implementation, 347–348

Model-View-Controller patterns. see MVC (Model-View-Controller) patterns

Models. see also UML (Unified Modeling Language)

for applying PBE, 10–11

benefits of DSLs for, 271–272

DSL design and, 277

mapping system use case model to service model, 29–31

mapping with RSA, 86

metamodels. see Metamodels

misconceptions regarding PBE, 342–343

overview of, 352

pattern definitions, 287–289

pattern instantiations, 284–287

pattern use and, 408–409

synchronizing with code, 313

templates, 266

visual modeling of patterns. see Use Models in Documenting Patterns guideline

working with patterns and, 20

Money pattern

replacing Quantity pattern, 64

used with Subsystem Façade pattern, 83

MVC (Model-View-Controller) patterns

JET following, 227

logical architecture of LogoAuction application, 58–59

Oslec Software using in development approach, 40

N

Naming guidance, model templates and, 268

No Cyclic Dependency pattern, UML pattern implementations, 25–27

Nonfunctional requirements

in envisioning (iteration 0), 55

Pattern Selection Driven by Requirements guideline, 294–295

O

OCL (Object Constraint Language), 25–27

OMG (Object Management Group)

MDA (Model-Driven Architecture), 359–361

RAS (Reusable Asset Specification), 357

One-to-one relationships

Embedded Value pattern for dealing with, 63

entities and, 97

OpenUP

integrating PBE with, 147

phases of, 146–147

Operations, identifying entity roles for Subsystem Façade pattern, 81–82

Opportunity identification. see Pattern Opportunity pattern

Optional Elements When Helpful pattern, pattern specification and, 237

Organization

integration of asset repository with organizational uses, 249

internal organization as pattern source, 321–322, 324

project estimation and, 332

Organizational chart, for Oslec development team, 39

Oslec Software case study

development process, 39–40

development team, 38–39

overview of, 37–38

pattern use and, 40

road map for and iterations in, 41–43

summary, 43

tool selection, collaboration, and enablement, 40–41

P

Package Related Patterns Together guideline

packaging patterns, 161

related patterns and guidelines, 258

summary, introduction, and explanation, 256–258

Packages

creating, 117–118

identifying entity roles for Subsystem Façade pattern, 80–81

Packaging patterns

Document Pattern guideline, 116–117, 250–252

Document Pattern Relationships guideline, 252–254

Embedded Pattern Implementation Guidance pattern, 246–248

guidelines for, 161–162

Make Pattern Documentation Easily Accessible guideline, 118–119, 254–256

overview of, 155, 245–246

Package Related Patterns Together guideline, 256–258

Pattern Packaging guideline, 116, 258–260

Pattern Version guideline, 260–261

patterns for, 160–161

Provisionable Pattern Implementation pattern, 248–250

summary, 262–263

tooling support for, 249, 327

Use Models in Documenting Patterns guideline, 261–262

Packaging patterns (Iteration 2)

applying to Subsystem Façade pattern to Auction Management subsystem, 114–115

creating package, 117–118

Document Pattern guideline, 116–117

Make Pattern Documentation Easily Accessible guideline, 118–119

metadata, 119–120

overview of, 113–114

Pattern Packaging guideline, 116

review process, 120–121

summary, 122

The Pattern Almanac, 180

Pattern Author role, in PBE Practice, 386–387

Pattern catalogs, 353

Pattern categories

leveraging, 309–310

list of, 154–155

overview of, 353–354

Pattern Creation Lifecycle guideline

designing patterns, 159

related patterns and guidelines, 215

summary, introduction, and explanation, 212–214

Pattern definitions, 301–302

Pattern Density guideline

consuming patterns, 163

related patterns and guidelines, 294

summary, introduction, and explanation, 291–293

Pattern Description guideline

discovering patterns and, 157

evaluating candidate patterns, 66

related patterns and guidelines, 194

summary, introduction, and explanation, 193–194

Pattern description, work products in PBE, 391

Pattern Harvest guideline

guidelines for discovering patterns, 157

related patterns and guidelines, 196

summary, introduction, and explanation, 194–196

Pattern identification

evaluating candidate patterns, 66–68, 396–397

finding project patterns, 395–396

high-level overview of PBE, 138

increasing pattern scope, 397–398

mapping tasks to phases of PBE, 140–141

misconception that only a few people can define patterns, 337–338

overview of, 394–395

phases of PBE, 139

recording patterns used, 65

selecting candidate patterns, 65–66

training for, 328

unit testing, 68–69

Pattern implementation

Abstract Factory pattern, 24–25

automating, 160, 168, 207–208, 234–235

Bean Factory pattern, 31–32

benefits of PBE, 310–311

building, 401–402

combining, 34

creativity and, 335

designing, 86–87

documentation in, 392

economics of PBE and, 330–331

guidance. see Embedded Pattern Implementation Guidance pattern

Hibernate pattern, 32–33

Master-Detail pattern, 28–29

Model-to-Model implementations, 29

Model-to-Text implementations, 31

No Cyclic Dependency pattern, 25–27

overview of, 9–10

Requester Side Caching pattern implementation, 34–35

roadmap for, 72

Service Provider pattern, 27–28

summary, 34–35

System Use Case to Service Collaboration pattern, 29–31

Team Pattern Implementation Use guideline, 87, 99, 217–219

testing, 110–111, 241

tooling support for, 327

training for creating, 328

types of, 23–24

UML implementations, 24

using, 407–408

vs. transformations, 347–348

work products in PBE, 391

Pattern Implementation Author role, in PBE Practice, 388

Pattern Implementation Extensibility guideline

designing patterns, 159

related patterns and guidelines, 216

summary, introduction, and explanation, 215–216

Pattern Implementation pattern

context, problem, forces, and solution, 207–208

designing patterns, 158–159

example and related patterns and guidelines, 208–209

Pattern Implementation Use guideline, 159

A Pattern Language (Alexander), 6, 298

Pattern languages, 354–355

Pattern Languages of Programs (PLoP), 337

Pattern management

capturing reuse metrics, 413–414

deploying pattern to asset repository, 410–411

high-level overview of PBE, 138

mapping tasks to phases of PBE, 140–141

overview of, 410

phases of PBE, 139

reviewing pattern feedback, 411–412

updating development process, 414–415

Pattern Opportunity pattern

context, problem, forces, and solution, 186–187

discovering patterns, 157

pitfalls, example, and related patterns and guidelines, 188

for selecting candidate patterns, 63, 65

Pattern Packaging guideline

packaging patterns, 161

related patterns and guidelines, 260

reuse and, 116

summary, introduction, and explanation, 258–260

Pattern production

building pattern implementation, 401–402

creating pattern specification, 400–401

designing patterns, 399–400

documentation and, 252

high-level overview of PBE, 138

making patterns available for reuse, 402–403

mapping tasks to phases of PBE, 140–141

overview of, 399

phases of PBE, 139

testing patterns, 403

Pattern Search guideline

applying to LogoAuction application, 47–48

applying to LogoAuction application deployment architecture, 60

foundational guidelines, 156

related patterns and guidelines, 181

summary, introduction, and explanation, 178–181

Pattern Selection Driven by Requirements guideline

consuming patterns, 163

LogoAuction application and, 59

related patterns and guidelines, 295

summary, introduction, and explanation, 294–295

Pattern specification

creating, 400–401

creating for Subsystem Façade pattern, 87

creativity and, 335

in HTML, 41

overview of, 8–9

roadmap for, 72

Subsystem Façade pattern, 373–382

template, 41

training for writing, 328

work products in PBE, 392

Pattern Specification Author role, in PBE Practice, 387

Pattern Specification guideline

creating patterns, 160

PBE Patterns and Guidelines, 74

related patterns and guidelines, 240

summary, introduction, and explanation, 235–240

Pattern Tester role, in PBE Practice, 388

Pattern Testing guideline

creating patterns, 160

related patterns and guidelines, 243

summary, introduction, and explanation, 240–243

Pattern User role, in PBE Practice, 389

Pattern Users

accessibility of documentation. see Make Pattern Documentation Easily Accessible guideline

awareness of pattern relationships, 253

consuming multiple related patterns. zxcvbr/asdfsee Package Related Patterns Together guideline

documentation assisting, 117, 250–252

influencing pattern output, 214

making patterns easy to find and use, 119

packaging patterns for easy consuming and sharing, 258

pattern implementation guidance, 246–247

plug-ins and, 249–250

skills and expectations of, 168

validating patterns with end users, 211

versioning and, 260

Pattern Version guideline

packaging patterns, 162

related patterns and guidelines, 261

summary, introduction, and explanation, 260–261

Pattern Writing Checklist, 242–243

Patterns

candidate. see Candidate patterns

combining, 309–310, 328

consuming. see Consuming patterns

costs of acquiring, supporting, and developing, 329–330

creating. see Creating patterns

defined, 6–7

designing. see Designing patterns

discovering. see Discovering patterns

in envisioning iteration, 70

feedback regarding finding/using, 129

graphical view of, 370

identifying. see Pattern identification

implementing. see Pattern implementation

issues regarding use of, 17–18

managing. see Pattern management

metadata, 118–120

in Oslec Software case study, 40

packaging. see Packaging patterns

PBE Core Values, 11–12

producing. see Pattern production

review process, 120–121

selection criteria, 322–324

sources of, 320–322, 325

specifying. see Pattern specification

training for applying, 329

types of uses for, 282

Patterns, DSLs

DSL Model Template pattern, 265–269

Integrated Patterns and DSLs pattern, 269–273

Patterns, foundational

End-to-End Pattern Use pattern, 166–169

Piecemeal Pattern Creation pattern, 169–171

Simple Solution Space pattern, 171–174

Single Pattern-Varied Use Cases pattern, 174–176

Patterns of Software Architecture (POSA), 48

Patterns, pattern creation

Model-to-Model Pattern Implementation pattern, 221–225

Model-to-Text Pattern Implementation pattern, 225–230

UML Pattern Implementation pattern, 230–234

Patterns, pattern design

Compound Pattern pattern, 200–202

Exemplar Analysis pattern, 202–205

Meet-in-the-Middle pattern, 205–207

Pattern Implementation pattern, 207–209

Patterns, pattern discovery

Antipattern pattern, 184–185

Pattern Opportunity pattern, 186–188

Recurring Solutions pattern, 188–190

Patterns, pattern packaging

Embedded Pattern Implementation Guidance pattern, 246–248

Provisionable Pattern Implementation pattern, 248–250

PBE Patterns and Guidelines

applying to LogoAuction application, 47

categories of, 154–155

communication improvements and, 314

consuming patterns, 163–164

creating patterns, 159–160

creativity-related, 336

designing patterns, 158–159

discovering patterns, 156–158

DSL use with patterns, 162–163

in envisioning iteration, 70

expertise leveraged by, 316

foundational patterns, 155–156

globalization supported by, 317

governance supported by, 317

graphical view of guidelines, 371

for managing formality and overhead in development, 339

in model for applying PBE, 11, 13

Oslec Software case study using, 42

overcoming bias against modeling or association, 343

overcoming misconception regarding tooling and vendors, 343

overcoming misconception that patterns are for design only, 341

overcoming patterns everywhere and all the time misconception, 339

overview of, 153

packaging patterns, 160–162

patten implementation and, 310–311

patterns that aid in getting more from patterns, 342

quality and, 311–312

relationship to other elements of PBE, 153–154

reuse and, 308–309

risk management-related, 337

summary, 164

PBE (Patterns-Based Engineering), introduction to

ABD (asset-based development) and, 4–6

benefits of PBE. see Benefits of PBE

core values of PBE, 11–12

creativity, constraints, rules, and assumptions, 18–19

defined, 153

definitions of important terms, 19–21

economic aspects of. see Economics of PBE

engineering defined, 7

entertainment industry example, 16

government departmental integration example, 16–17

high-level overview, 138

misconceptions. see Misconceptions, regarding PBE

model for applying, 10–11

overview of, 3–4

pattern specifications and implementations, 8–10

Patterns and Guidelines, 13

Patterns-Based Engineering defined, 7–8

patterns defined, 6–7

practice of PBE, 13–14

reasons why PBE is needed, 17–18

software vendor examples, 15

summary, 21–22

PBE Practice

Asset Librarian role, 385–386

downloading, 137

enhancing practice methodologies, 328

introduction to, 135–136

leveraging PBE practices within other processes, 143–144

main work products, 389–393

in model for applying PBE, 11

overview of, 13–14, 385

Pattern Author/Subject Matter Expert (SME) roles, 386–387

pattern consumption tasks, 404–409

pattern identification tasks, 394–398

Pattern Implementation Author role, 388

pattern management tasks, 410–415

pattern production tasks, 399–404

Pattern Specification Author role, 387

Pattern Tester role, 388

Pattern User role, 389

roles, 385

task order, 393–394

Perfect Pattern, types of antipatterns, 185

Performance, nonfunctional requirements in LogoAuction application, 55

Perspectives, model templates and, 268

Phases, mapping to PBE tasks, 137–139, 394

Piecemeal Pattern Creation pattern

context, problem, and forces in, 169–170

example and related patterns and guidelines, 171

foundational patterns, 156

solution, 170–171

Place a Bid use case, Auction Management subsystem, 113

PLoP (Pattern Languages of Programs), 337

Plug-ins

automating pattern implementation, 208

Eclipse mechanism for containing pattern sets, 249–250

testing, 243

Points of variability. see also Limited Points of Variability guideline

in exemplar analysis, 203

Pattern Users influencing pattern output, 214

Portability, nonfunctional requirements in LogoAuction application, 55

Portlet, 15

POSA (Patterns of Software Architecture), 48

Practice. see PBE Practice

Processes

integration of, 336

PBE as practice not process, 13–14

software development. see Software development process

Product update, software vendor example, 15

Productivity

benefits of pattern implementation, 9

benefits of PBE, 307

Compound Pattern pattern and, 310

reuse increasing, 314–315

Projects

economics of PBE and, 331

risk and, 336–337

Proof of concept, for software vendor services team, 15

Provide Feedback on a Pattern task, 409–410

Provisionable Pattern Implementation pattern

context, problem, forces, and solution, 248–249

creating pattern package and, 117

example and related patterns and guidelines, 249–250

packaging patterns, 161

Put Item Up for Auction use case

finishing implementation of, 124

Items Management and, 71

Q

Quality

beauty of software architecture and, 312

benefits of pattern implementation, 9

benefits of PBE, 311–312

testing and, 240

Quantifiable nature, of PBE, 309, 338

Quantity pattern

assigning units and amounts to currency, 54

Money pattern replacing, 64

Queries, identifying entity roles for Subsystem Façade pattern, 81

R

RAS (Reusable Asset Specification), 357

Rational Method Composer, Eclipse, 135

Rational Method Composer (RMC), 366–367

Rational Software Architect. see RSA (Rational Software Architect)

Rational Unified Process (RUP), 367–368

Readable References to Patterns pattern, 238

Recording patterns, used in envisioning (iteration 0), 65

Recovery, project risk and, 337

Recurring Solutions pattern

context, problem, forces, and solution, 188–190

discovering patterns, 157

example and related patterns and guidelines, 190

Refactor with Patterns guideline

consuming patterns, 163

related patterns and guidelines, 296

summary, introduction, and explanation, 295–296

Refactoring patterns, software solutions for, 175

Relationship to Other Patterns pattern, 238

Relationships

asset, 119

documenting pattern relationships. see Document Pattern Relationships guideline

finding related patterns, 300

pattern selection criteria, 322

in pattern sets, 257

Remove Item from Auction use case, 124

Repository, assets. see Asset repository

Repository, SCM (software configuration management), 118

Requester Side Caching pattern implementation, 34–35

Requirements

functional. see Functional requirements

nonfunctional. see Nonfunctional requirements

Requirements gathering, LogoAuction application

domain model, reviewing/updating, 52–54

functional requirements, 48–51

nonfunctional requirements, 55

Responsibility, areas of

distributing use cases by, 57–58

in domain model, 53

Reusable Asset Specification (RAS), 357

Reusable assets

overview of, 356

work products in PBE, 393

Reuse

capturing reuse metrics, 413–414

making patterns available for, 118–119, 402–403

packaging patterns and, 259

Pattern Packaging guideline and, 116

pattern review process and, 120

patterns and, 307

timing of, 307–308

Review Feedback task, in pattern management, 411–413

Review process

governance, 300

patterns, 118, 120–121

Risk, misconception that PBE introduces project risk, 336–337

RMC (Rational Method Composer), 366–367

Role pattern

assigning areas of responsibility, 53–54

identifying roles for Subsystem Façade pattern, 78

Roles

Asset Librarian, 385–386

assigning elements to, 126

in envisioning iteration, 70

in exemplar analysis, 203–204

overview of, 385

Pattern Author/Subject Matter Expert (SME), 386–387

in pattern implementation, 72

Pattern Implementation Author, 388

Pattern Specification Author, 387

Pattern Tester, 388

Pattern User, 389

separation of, 166

In software development process, 137–139

in transitioning exemplar to pattern, 202

UML pattern implementations and, 231

RSA Model Mapping Authoring, 106

RSA (Rational Software Architect)

Abstract Factory pattern, 25

Architectural Discovery feature, 341

Exemplar Authoring, 228–229

JET (Java Emitter Template). see JET (Java Emitter Template)

model-mapping capabilities of, 86, 223–225

No Cyclic Dependency pattern, 26

Software Services Profile, 267, 278–279

as tooling option, 365–366

tools selection in Oslec Software case study, 41

UML pattern implementations, 24, 231–232

Rule of Three, 189, 350

Rules, defined, 18–19

RUP (Rational Unified Process), 367–368

S

Scalability, nonfunctional requirements in LogoAuction application, 55

SCM (software configuration management), 118

Scope

DSL design and, 276

increasing pattern scope, 397–398

leveraging pattern categories and, 309–310

Select Large-Scope Patterns First guideline, 296–298

Scrum

integrating PBE with, 145

project management framework, 144–145

Searching for assets, 326

Searching for patterns. see Discovering patterns

Security, nonfunctional requirements in LogoAuction application, 55

Select Large-Scope Patterns First guideline

consuming patterns, 163

elaborating architecture for LogoAuction application, 55

related patterns and guidelines, 298–299

summary, introduction, and explanation, 296–298

Selection criteria, patterns, 322–324

Self-Service pattern, 60–61

Semantic completeness, DSL design and, 276

Service oriented architecture. see SOA (service oriented architecture)

Service Provider pattern, UML pattern implementations, 27–28

Services

Façade pattern and, 74

mapping system use case to service model, 29–31

Session Façade pattern, 73–74, 383

SF (software factory)

overview of, 361–362

relationship to PBE, 363

Simple Solution Space pattern

context, problem, and forces in, 171–172

example, 173–174

foundational patterns, 156

related patterns and guidelines, 174

solution, 172–173

Simplification

compound patterns and, 86, 257

DSLs and, 270–271

recurring solutions and, 190

Simple Solution Space pattern, 172

Single Pattern-Varied Use Cases pattern

context, problem, and forces in, 174–176

example and related patterns and guidelines, 176

foundational patterns, 156

solution, 174–176

Singleton pattern, vs. Layers pattern, 292

SIs (system integrators), 331

Sketches, DSL design and, 277

Skills, leveraging, 9, 314–316

SME (Subject Matter Expert), 72, 386–387

SOA (service oriented architecture)

creating SOA-based solutions, 267–269

Façade pattern and, 74

IBM SOA Reference Architecture, 76

Service Provider pattern and, 27

Software configuration management (SCM), 118

Software development process

authoring and, 168

difficulty of/approaches to, 3–4

getting started with PBE, 139–140

globalization of, 314–316

leveraging PBE practices within other processes, 143–144

mapping tasks to phases, 140–141

OpenUP development process, 146–147

overview of, 135

PBE augmenting, 8

PBE Practice in, 135–137

PBE roles and tasks in context, 137–139

Scrum project management framework, 144–145

summary, 150

task summaries, 141–143

XP (Extreme Programming), 147–149

Software factory (SF)

overview of, 361–362

relationship to PBE, 363

Software Services Profile

RSA (Rational Software Architect), 267

UML modeling and, 278–279

Software vendors, PBE examples, 15

Solutions

recurring. see Recurring Solutions pattern

Use Pattern Definitions to Understand Existing Solutions guideline, 301–302

Sources, of patterns

overview of, 320–324

recommendations, 325

Sparx Enterprise Architect, 366–367

Sprints, Scrum and, 144–145

Stand-Alone Single Channel application pattern, 60–61

Start Auction use case, 124

Stereotypes

compared with keywords, 24

documenting use of, 117

in Subsystem Façade pattern, 103–104

Storyboards, in DSL design, 277

Strategic impact criteria, in pattern selection, 322

Subject Matter Expert (SME), 72, 386–387

Subsystem Façade pattern

analyzing exemplar for, 77–79

applying and testing patterns in, 68–69

consuming (acquiring and using). see Consuming patterns (Iteration 3)

context, problem, forces, and solution, 373–375

creating patterns. see Creating patterns (iteration 1)

description of, 75

designing, 71

detailed inspection of exemplar for, 79–85

Eclipse feature, 118

envisioning. see Envisioning (iteration 0)

finding exemplar for, 76–77

implementing UML front end for, 101–102

instantiation of, 128

packaging. see Packaging patterns (Iteration 2)

pattern composition, 383

pattern implementation, 72

pattern included in, 86

patterns encapsulated in, 116

refactoring Items Management subsystem for synchronization with, 129–132

sample code, 375–382

understanding, 73–74

Subsystems

applying pattern implementation to, 126–128

Auction Management. see Auction Management subsystem

Façade pattern. see Subsystem Façade pattern

installing pattern implementation to be used with new, 125–126

Items Management. see Items Management subsystem

searching for/using patterns in new, 125

User Management. see User Management subsystem

Support criteria, in pattern selection, 322

Support materials, linking to, 247

System integrators (SIs), 331

System Use Case to Service Collaboration pattern, 29–31

Systematic nature, of PBE

as counter to patterns everywhere and all the time, 338

overview of, 309

quality and, 311

T

Tasks

in envisioning iteration, 70

in exemplar analysis, 203

mapping to PBE phases, 140–141, 394

order of, 393–394

pattern consumption, 404–409

pattern identification, 394–398

pattern management, 410–415

pattern production, 399–404

in software development process, 137–139

In software development process, 141–143

Team Pattern Implementation Use guideline

applying to Subsystem Façade pattern, 87

leveraging, 99

related patterns and guidelines, 219

summary, introduction, and explanation, 217–219

Technical review, in pattern review process, 120

Templates

creating, 226

model templates, 266

pattern specification and, 41, 238–239

Test a Pattern task, in pattern production, 403–404

Test Data Reset pattern, 125

Test-driven development

applied to Auction subsystem, 105

applying to Subsystem Façade pattern, 87–89

XP and, 148–149

Test Input models, 88–89

Test project

identifying roles for Subsystem Façade pattern, 78–79

JET implementation for, 100–101

Testing

choosing solution for, 259

exemplar analysis and, 205

identifying roles for Subsystem Façade pattern, 79

pattern production tasks, 403

Pattern Tester role, 388

Pattern Testing guideline, 160, 240–243

unit testing, 68–69

"Testing Software Patterns" (Microsoft), 242

Text. see Model-to-Text Pattern Implementation pattern

The Timeless Way of Building (Alexander), 6

Tooling

AndroMDA, 366

Eclipse Modeling Project, 365

economics of PBE, 326–328

End-to-End Pattern Use pattern and, 168

EPF (Eclipse Process Framework) Composer, 367

IBM RSA (Rational Software Architect), 365–366

IBM RUP (Rational Unified Process), 367–368

Microsoft Visual Studio, 366

misconceptions regarding PBE, 343

Oslec Software case study, 40–41

Sparx Enterprise Architect, 366–367

Top-down design, 206

Training

economics of PBE and, 328–329

enablement of development team for use of PBE, 41

Transformations, model transformation vs. pattern implementation, 347–348

U

UI (user interface), 28–29

UML Pattern Implementation pattern

context, problem, forces, and solution, 230–231

example, 231–233

related patterns and guidelines, 234

UML pattern implementations

Abstract Factory pattern, 24–25

automating pattern implementation, 208

combining pattern implementations, 34

creating patterns, 160

Master-Detail pattern, 28–29

No Cyclic Dependency pattern, 25–27

overview of, 24

Service Provider pattern, 27–28

types of pattern implementations, 23

visual modeling with, 230–231

UML Profiles

pattern implementation and, 117

tools for implementing DSLs, 349

UML (Unified Modeling Language)

capturing models with, 352

creating DSLs, 274

DSL built on UML Profile, 102–104

implementing UML front end for Subsystem Façade pattern, 101–102

modeling with, 16

Oslec Software using in development approach, 39–40

pattern implementation and, 231

Software Services Profile, 278–279

tooling options, 365

Uninstalls, tooling support for, 327

Unit-testing

identifying roles for Subsystem Façade pattern, 79

JET implementation, 99–100

Model-Mapping component, 109

pattern implementation and, 68–69

Update Development Process task, in pattern management, 414–415

Update Existing Patterns guidelines

related patterns and guidelines, 197

summary, introduction, and explanation, 196–197

Updates

tooling support for, 327

update cycle for patterns, 257

updating development process, 414–415

Updating Existing Patterns guideline, 158

Usability, nonfunctional requirements in LogoAuction application, 55

Use a Pattern task

mapping to PBE phases, 140

in pattern consumption, 406–408

summary of, 142

Use an Asset Repository guideline

consuming patterns, 164

related patterns and guidelines, 301

summary, introduction, and explanation, 299–301

Use cases

distributing by areas of responsibility, 57–58

LogoAuction application, 50–51

mapping system use case to service model, 29–31

Use Models in Documenting Patterns guideline

packaging patterns, 162

related patterns and guidelines, 262

summary, introduction, and explanation, 261–262

Use Pattern Definitions to Understand Existing Solutions guideline

consuming patterns, 164

related patterns and guidelines, 303

summary, introduction, and explanation, 301–302

Use Patterns to Find Patterns guideline, 164

User community, asset repository supporting, 119

User-friendliness, DSL design and, 276

User interface (UI), 28–29

User Management subsystem

applying pattern implementation to, 126–128

areas of responsibility in LogoAuction application, 57–58

entities and projects, 128

Log In and Create Account use cases, 124

team ownership of, 123

testing newly developed pattern, 113

Users. see Pattern User

V

Validation, of patterns with end users, 211

Vendors

ISV (independent software vendors), 332

misconceptions regarding getting tools from specific, 343

pattern selection criteria, 322

pattern sources, 320–321, 323

Versioning

guideline for. see Pattern Version guideline

pattern sets and, 257

Visual Forces pattern, 237

Visual Studio (Microsoft), 366

Visualization

harvested patterns and, 195–196

software solutions for, 175

Vlissides, John, 6–7, 337

W

Waterfall patterns, 188

Wizards

automating pattern implementation, 208

forming foundation for exemplars, 214

X

XP (Extreme Programming)

integrating PBE with, 149

practices, 147–149

Xpand, 365

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

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