XP2006: 2nd International Workshop on

Agile Development with
Domain Specific Languages

DSM with full code generation: 
the ultimate refactoring tool?

Steven Kelly, MetaCase
Alan Cameron Wills
, Microsoft

This workshop will continue the success of last year in investigating the application of Domain Specific Languages within Agile development. A Domain Specific Language (DSL) is designed to express the requirements and solutions of a particular business or architectural domain. SQL, GUI designers, workflow languages and regular expressions are familiar examples. In recent years, Domain-Specific Modeling has yielded spectacular productivity improvements in domains such as telephony and embedded systems. By creating graphical or textual languages specific to the needs of an individual project or product line within one company, DSM offers maximum agility. With current tools, creating a language and related tool support is fast enough to make DSM a realistic possibility for projects of all sizes. 

...and to refactor, you just change the generator!

Mon 19th June 2006, 14:00-17:30
XP 2006, Oulu, Finland

NEW: one-day registration is possible, at half the price for the full conference. It includes lunch, coffee, conference bag (proceedings and other material), conference activities, workshops and paper presentations. 

Thanks to all the participants!
The organizers have posted their slides on their blogs:
Steve's slides and blog entry
Aali's slides and blog entry (with photos!)

1. Introduction

A Domain Specific Language (DSL) is designed to express the requirements and solutions of a particular business or architectural domain. SQL, GUI designers, workflow languages and regular expressions are familiar examples in 'horizontal' domains. Each allows its user to concentrate on expressing what is required in terms directly related to the domain, leaving the platform to apply the most appropriate implementation patterns - a feat made possible by its restricted scope. Problems that were very substantial projects before the advent of these languages and their implementing engines, are now the work of an afternoon.

Can individual projects or product lines within one company, make similar gains in agility and productivity by creating graphical or textual languages specific to their own domain?

Domain Specific Modeling is the creation and use of DSLs, often graphical DSLs with domain-specific generators that create full production code directly from models [1-3]. In recent years, DSM has yielded spectacular productivity improvements, particularly in vertical domains where many similar variants of a generic system are to be developed, e.g. telephony and embedded systems [4-9].

A particular concern in agile methodology is how to scale the approach to large projects [15]. DSM is a particularly effective tool to help decouple top-level requirements from implementation layers, allowing a large project to be separated into several well-decoupled smaller projects. With current tools, creating a language and related tool support is fast enough to make DSM a realistic possibility for projects of all sizes [11, 12]. By creating languages and generators specific to the needs of an individual project or product line within one company, DSM offers maximum agility [10].

This workshop will investigate the application of Domain Specific Modeling within Agile development.

2. Workshop topics

Topics to be tackled include:

3. Audience and benefits of attending

The intended audience consists of developers and technical managers interested in finding out more about DSM. Experience of product lines, building product frameworks or creating DSLs is a bonus, but by no means necessary. Benefits of participation include a better understanding of:

4. Submissions

Position papers or short research or experience papers are invited from each prospective participant. Each position paper should:

Research or experience papers can be broader, with up to 8 pages, no restriction on the number of authors, and in a more standard workshop paper style. 

Please send your submission to stevek@metacase.com in PDF or Word format by June 10th 2006

The workshop itself will focus on "learning together by doing" rather than paper presentations.

5. Workshop format and schedule

6. Workshop leaders

Steven Kelly is CTO at MetaCase, and has been the lead on the MetaEdit+ DSM tool since 1996. He is also co-founder of the DSM Forum, has served on the committee of the OOPSLA workshops on DSM since 2001 [13-14], and has been giving metamodeling and DSM tutorials around the world since 1993. 
Tel: +358 14 4451 401. Email: stevek@metacase.com. Blog: http://www.metacase.com/blogs/stevek/

Alan Cameron Wills (Microsoft) works on DSL tools for the Visual Studio IDE. Before joining Microsoft, he was a consultant in development methods, and co-developed the Catalysis approach to software development. He has run successful workshops and tutorials in related topics at SPA2005 and OT97-04. 
Tel: +44 122 347 9719. Email: awills@microsoft.com. Blog: http://blogs.msdn.com/alan_cameron_wills/

Alan sadly could not make it, but we were fortunate that Microsoft Finland has another great DSL proponent:
Aali Alikoski is an Architect Evangelist in the Developer and .NET Group at Microsoft Finland. He has arranged the DSL Tools Competency Workshop and other DSL-related activities.
Tel: +358 9 5255 0459. Email: aali@microsoft.com. Blog: http://blogs.msdn.com/aalialikoski/ 

References

1. Kelly, S., Tolvanen, J-P, "Visual domain-specific modelling: Benefits and experiences of using metaCASE tools", Proceedings of International workshop on Model Engineering, ECOOP 2000, (ed. J. Bezivin, J. Ernst), 2000.

2. Pohjonen, R., Kelly, S., "Domain-Specific Modeling", Dr. Dobb's Journal, August 2002.

3. Greenfield, J., Short, S, Cook, S., Kent, S., Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools, Wiley, 2004.

4. Kieburtz, R. et al., "A Software Engineering Experiment in Software Component Generation," Proceedings of 18th International Conference on Software Engineering, Berlin, IEEE Computer Society Press, March, 1996.

5. Long, E., Misra, A., and Sztipanovits, J., "Increasing Productivity at Saturn," IEEE Computer, August 1998, pp. 35-43.

6. Sztipanovits, J., Karsai, G., and Bapty, T., "Self-Adaptive Software for Signal Processing," Communications of the ACM, May 1998, pp. 66-73.

7. MetaCase, MetaEdit+ Revolutionized the Way Nokia Develops Mobile Phones, White Paper, 1999.

8. Weiss, D., Lai, C. T. R., Software Product-line Engineering, Addison Wesley Longman, 1999.

9. Moore, M., Monemi, S., Wang, J., Marble, J., and Jones, S., "Diagnostics and Integration in Electrical Utilities," IEEE Rural Electric Power Conference, Orlando, FL, May 2000.

10. Cook, S., "Domain-Specific Modeling and Model Driven Architecture", MDA Journal, January 2004

11. Nordstrom, G., Sztipanovits, J., Karsai, G., and Ledeczi, A., "Metamodeling - Rapid Design and Evolution of Domain-Specific Modeling Environments," IEEE ECBS Conference, April 1999.

12. Kelly, S., "Tools for Domain-Specific Modeling", Dr. Dobb's Journal, September 2004.

13. Tolvanen, J-P., Kelly, S. Gray, J., Lyytinen, K., (eds.) Proceedings of OOPSLA workshop on Domain-Specific Visual Languages, Tampa Bay, Florida, USA, University of Jyväskylä, Technical Reports, TR-26, Finland, 2001.

14. Gray, J., Rossi, M., Tolvanen, J-P., (eds.) Domain-Specific Modeling with Visual Languages, Special issue of Journal of Visual Languages and Computing, Vol. 15 (3-4), Elsevier, Jun-Aug, 2004.

15. Eckstein, J. Agile Software Development in the Large, Dorset House, 2004.

16. Czarnecki, K., Eisenecker, U. Generative Programming, Addison Wesley, 2000.