SPA2005 session: Software Factories: domain-specific process, tools, and language

One-line description:Tools, process, and getting started
 
Session format: Workshop [read about the different session types]
 
Abstract:One way to speed up software development and make it more agile and reliable, is to capture the concepts of your business domain in a purpose-built language; and to embody the implementation patterns of your domain in a platform for the language. GUI design, telephony, GIS, and many other domains have benefited hugely from this technique.

Each domain also has its own patterns, a suitable methodology, and a useful kit of tools. This domain-specific package, we call a "software factory".

This workshop will look at some of the issues in applying domain-specific principles not just to language, but to the whole software development process; including:
* How language, tools, process and architecture are coupled
* The pros and cons of software factories
* Range of applicability of this approach
* How to design a product family with a software factory
* Keeping agile -- changes in the domain
* Authoring tools -- for creating and maintaining software factories
* Getting started -- migrating from current practice

After a talk and discussion covering this ground, participants will work on small examples in groups, and then we will compare results under a number of headings.
 
Audience background:Software architects, analysts, and developers
 
Benefits of participating: * Understand what software factories are about
* Be able to assess whether they're useful for you
* Know how to apply the approach
* Formulate steps towards using these ideas
 
Materials provided:Slides about DSLs
 
Process:Part 1: Introductory talk and discussion. What software factories are, what they're good for, how to use them.
• Domain Specific Languages - how they work, how they help
• Typical scenarios
• Domain specific frameworks, methods and tools
• Typical process -- who designs and who uses the language and tools
• Domain-specific IDEs -- recipes, patterns and guidelines
• Authoring a software factory: techniques and tools
• Keeping agile – what kinds of changes happen, and how do they impact?



Part 2: Group exercises - designing and using SFs. Participants will elect to form groups to work on exercises in different issues.

Part 3: Comparison, reflection, and debate. What aspects of process worked well? Would we use SFs, and if so what would the major issues and risks be?
 
Outputs:Web page summarizing conclusions arising from discussions.
 
History:This session picks up where last year's session on DSLs left off. The quality will be greatly enhanced by the SPA debut of my learned and intelligent colleague Gareth Jones.
 
Presenters
1. Alan Cameron Wills
Microsoft
2. Gareth Jones
Microsoft Corporation
3.