80/20 rule, in pattern development, 170
ABD (asset-based development)
identification, production, management, and consumption of assets, 5
key areas of, 137
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
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
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
Candidate patterns
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
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
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
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
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
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
simplification and, 172
summary, 280
using with patterns, 155, 162–163
visual modeling with, 230
work products in PBE, 391
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
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
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
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
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
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
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
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
Keywords, defined and compared with stereotypes, 24
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Rules, defined, 18–19
RUP (Rational Unified Process), 367–368
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
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
UI (user interface), 28–29
UML Pattern Implementation pattern
context, problem, forces, and solution, 230–231
example, 231–233
related patterns and guidelines, 234
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
Validation, of patterns with end users, 211
Vendors
ISV (independent software vendors), 332
misconceptions regarding getting tools from specific, 343
pattern selection criteria, 322
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
Waterfall patterns, 188
Wizards
automating pattern implementation, 208
forming foundation for exemplars, 214
XP (Extreme Programming)
integrating PBE with, 149
practices, 147–149
Xpand, 365