SPA Conference session: OpenArchitectureWare from a different perspective – using DSLs in “every-day” programming

One-line description:A practical introduction to a tool that can help to replace boring copy and paste chores with building DSLs and generating code using the Eclipse project’s openArchitectureWare (oAW) framework
 
Session format: Long tutorial (330 mins) [read about the different session types]
 
Abstract:Although we all know: “copy and paste” is bad… sometimes as software developers we end up in situations where we need to write boring, unimaginative code that is repetitive – and so use some variation of copy and paste. Take typical getters and setters for example… the simple ones can be generated by the common IDE… but if they get a little more complex, one often has to revert to copy and paste of some sort.

This session is about taking the first steps with a tool that can be added to a toolbox to help in such situations – as well as being one of the standard code generation tools.

In this session you’ll learn the basics of building Domain-Specific Languages (DSLs) with oAW.

DSLs are special-purpose languages that can be used to create models of domain-specific concepts at a higher-level of abstraction than general-purpose programming languages can. The idea behind this is that specially written code generators can be used to process these models into lower-level languages saving you time and effort in developing finished software.

We’ll start with a simple example and refine it during the session as new requirements and possibilities “emerge”.
 
Audience background:Some programming experience is essential. Prior experience using Eclipse would be useful, although it would be possible to pair with someone with this experience.

It’s not necessary to have any experience of domain-specific languages – in fact the session is aimed at people with no prior experience in domain-specific languages – and so might be too basic for mdsd-experts ;-)..
The goal of the session is to introduce the tool and how to use it so – while obviously we will be explaining the necessary concepts – the primary focus of the session is on actually using oAW as a tool – and not on theoretically creating models and introducing the deeper theory of domain driven design or on discussing possibilities of integrating Code-Generation into the project life-cycle or on how to set up code generation projects.
 
Benefits of participating:This session will let participants add another tool to their toolkit to become more effective in software development.

Even though the primary focus will not be on the theory of code generation, the session will also give an introduction into this area
 
Materials provided:Installation package with a description of the steps that need to be taken in order to be able to start off. (We aim to put together an installation package for download ahead of the event.)

Detailed description of software, hardware needed to run the session.

Exercises with possible solutions.

Session slides including pointers for further exploration.
 
Process:The session will be supported through slide-based exposition covering the key concepts.

The bulk of the session will be a set of hands-on programming exercises starting from very simple exercises to build familiarity progressing to a longer exercise on building and evolving a small DSL.

Participants are encouraged to pair program but this isn’t essential if you want to work on your own.

We will run a short retrospective at the end of the session to give people a reserved time slot to share their experiences.

Maximum 20 participants
 
Detailed timetable:1. Session Introduction – 5 mins
2. oAW Introduction – 15 mins
3. oaW Installation – 20 mins
4. Exercises – 240 mins (we could cut down on this time, if we wanted to go for a shorter session)
5. Discussion of opportunities and difficulties of using the skills - 30 mins
6. Retrospective – 15 minutes
7. Closing remarks – 5 mins
 
Outputs:Results from discussion of when oAW is useful to use.

As this is a training session to learn a tool, it is a little difficult to provide outcome that the whole group could profit from.
 
History:Not run before. We commit to debug the session with local ‘volunteers’ ahead of the conference
 
Presenters
1. Marina Haase
independent
2. Mark Dalgarno
Software Acumen
3. Peter Bell
SystemsForge