Alan Cameron Wills - Domain Specific Languages

Models, domain-specific languages, code generation, ....

Why not base domain specific languages on UML?

RobR writes: re: DSL tools availableI’d be interested to know how your tools differ from doing the following: – creating a bunch of stereotypes in a UML tool (possibly with some icons to make it look prettier). So for baggage handling I could build various domain specific stereotypes: conveyor belts, etc. – define some code… Read more

Many syntaxes for one semantics

This is an example of a Ladder Diagram from the IEC1131 standard: I find this fascinating! As a computer programmer, it would never have occurred to me to represent logic expressions in this way. But to electrical engineers used to laying out circuits involving relays, it’s obvious: the bars on each side of the ladder… Read more

DSL tools available

In my previous job, I used to go around showing people some rather neat techniques for doing requirements analysis (and in particular the Catalysis method I created with Desmond D’Souza). One of the big frustrations was that we didn’t have any tools to support our methods — always the most difficult thing that clients would… Read more

Dispersed Agile Development

At OOPSLA 2001, a panel of the most distinguished methodologists of the day was asked “How would you do agile development where the team are a geographically distributed workforce, each working in his own home?” They more or less unanimously said “We wouldn’t even try!” And yet … Distributed open source projects have worked successfully… Read more

Domain specific languages express software refinements

Simon Johnston of IBM has written a note about DSLs (domain specific languages) compared with UML. One of the excellent points he makes is that very few tools support refinement properly — that is, the layering of a design from abstract requirements to detailed implementation, with the layers connected by abstraction relations. One of the… Read more

How to teach software development

Software development is teamwork. The most important techniques you learn for project success — or get wrong otherwise — are about working in teams. The methods that have made the biggest improvements in development success rates are not tools or technical stuff, they’re about how people work together — most notably, the agile methods. Tools… Read more

UML the answer? — more

Grady Booch writes : Will’s blog had a number of errors of fact, Ouch! Well, permit me to unruffle my feathers a bit.  It’s more a difference of emphasis. But let’s start at the top. GB> I’m disappointed that Microsoft choose the term “software factory,” because it’s an emotionally-laden phrase that harkens to extremely mature… Read more

SPA Conference

As always, the SPA conference was stimulating. Gareth Jones and I ran a workshop on “software factories and DSLs”. Some of the points that came out clearly for me: Composing languages. It’s a big investment to create a DSL from scratch; or from vendor-provided basic bits. People need to be able to make languages… Read more

Model Taxonomy

At the excellent SPA conference ( John Daniels led a workshop session “A Taxonomy of Models”. Defining “model” as including any kind of language, he made a table of how models are used; or rather, he wrote the outer headings and we (working in an interesting process) filled in the content:   Conceptual S/W Specification… Read more

Scaling up agile: software product lines

Don’t do big projects. Small ones have a lot more chance of success. In a small group, people are more likely to understand the overall requirements and architecture, so they understand better how their work fits into the whole thing. They don’t need the heavy documentation and process of big projects, and they can change… Read more