Kyle Huntley, the chief architect of SOA Factory spoke at an event hosted by Avanade Finland today. The topic was about software factories and domain specific languages - a topic very near to my heart also. Unfortunately, Kyle had lost most of his voice somewhere between Seattle and Helsinki, so he whispered through the three-hour presentation with a microphone. A fair amount of the slides were familiar to me, as I have delivered several presentations in the past with the same slides also :)
A couple of points that I took away from the event:
- Software factories idea is not new - there are examples from the early eighties that demonstrate the very idea of software factories
- iRobot Roomba vacuum cleaners are a good example of a domain specific tool - it only knows how to vacuum the floor, but does it really well (I don't have personal experience but I know that you can also program it with .NET by using Microsoft Robotics Studio)
- There are four pillars of software factories: contextual guidance, model driven development, architecture frameworks and software product lines. In SOA factory, guidance is currently the weakest part (no GAT/GAX features).
- Case tools failed in early 90s mainly because they tried to cover everything instead of concentrating on a specific domain
- "DSLs may look like models, but they are in fact code" - I disagree with this, one aspect of course is that code can be generated based on the models, but there are other uses for DSL models that code generation. I would say they really are models, with the intent of producing immediately executable code.
- SOA Factory is conceptually made up of 3 DSLs, technically only one DSL because of limitations in current DSL tools
- ACA.NET uses the concept of aspect orientation, aspects are defined as a separate DSL so they are present at the modeling level, not just in code
- Software factory -based development is very compatible with the agile development ideas