http://architecture-soa-bpm-eai.blogspot.

com/
Tushar Jain
Pattern Name:
Pattern Class:
Pattern ID:

Page 1 of 4
tusjain@yahoo.com, tusjain@gmail.com

Product Code Management – Customization using DSL
Architecture
Version:
1.0
Release Date: Oct 5, 2010

Table of Content
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.

Pattern Name ........................................................................................... 2
Also Known As.......................................................................................... 2
Class Name.............................................................................................. 2
Intent ..................................................................................................... 2
Motivation (Forces) ................................................................................... 2
Applicability ............................................................................................. 2
Structure ................................................................................................. 2
Participants .............................................................................................. 3
Collaboration............................................................................................ 3
Consequences .......................................................................................... 3
Implementation ........................................................................................ 3
Sample Code............................................................................................ 3
Known Uses ............................................................................................. 3
Related Patterns ....................................................................................... 4
Reference ................................................................................................ 4

http://architecture-soa-bpm-eai.blogspot.com/

Page 1 of 4

http://architecture-soa-bpm-eai.blogspot.com/
Tushar Jain

Page 2 of 4
tusjain@yahoo.com, tusjain@gmail.com

1. Pattern Name
Product Code Management – Customization using DSL

2. Also Known As
N.A.

3. Class Name
Architecture

4. Intent
To Manage code (Core language – java, c/c++, etc) and SQL scripts
(DDL and DML).

5. Motivation (Forces)
In any products’ life cycle management of its code is one of the
most important tasks. As the code base size increases and
customization due to increasing customer base, its management
becomes difficult and some time unmanageable.

6. Applicability
This pattern is applicable in any software development where
product is not off the shelf (not like MS Office) but requires
customization due to varied customer needs and choices but
serving same underlying business needs.

7. Structure
In this pattern, product designer provides a framework which allows
extension of features and facilities within boundaries using specified
Domain Specific Language (DSL). The boundaries define the
product but enough flexibility to accommodate customer needs.
Generally speaking, these boundaries are defined by business
domain.
In contemporary product Haskell and Groovy is very popular. Few
years back Visual Basic like DSLs were very popular.
http://architecture-soa-bpm-eai.blogspot.com/

Page 2 of 4

http://architecture-soa-bpm-eai.blogspot.com/
Tushar Jain

Page 3 of 4
tusjain@yahoo.com, tusjain@gmail.com

8. Participants
N.A.

9. Collaboration
N.A.
10.

Consequences

Customization developers must be well aware of product’s
underlying framework and DSL.
Some customizations will be done by customer without informing
product designers’ which will hamper the feature enhancement in
core product due to information unavailability to product designers.
Upgradation may become little difficult if customization has not
followed the rules laid by product designers.

11. Implementation
In this pattern, product designer provides a framework which allows
extension of features and facilities within boundaries using specified
Domain Specific Language (DSL). The boundaries define the
product but enough flexibility to accommodate customer needs.
Generally speaking, these boundaries are defined by business
domain.

12. Sample Code
N.A.

13. Known Uses
SAP using ABAP
N4 by Zebra using Groovy

http://architecture-soa-bpm-eai.blogspot.com/

Page 3 of 4

http://architecture-soa-bpm-eai.blogspot.com/
Tushar Jain

Page 4 of 4
tusjain@yahoo.com, tusjain@gmail.com

14. Related Patterns
Product Code Management – Customization by Customer
Product Code Management – Use Customer specific folder
Product Code Management – Use Customer specific marker
Product Code Management – Distinct Code base

15. Reference
N.A.

http://architecture-soa-bpm-eai.blogspot.com/

Page 4 of 4

Sign up to vote on this title
UsefulNot useful