The effect of executable UML on development processes

I am working on a project at the moment that is approaching the idea of executable UML. A runtime library reads a representation of a UML statechart and uses it to control the execution paths.

This has the effect of elevating the design effort to the runtime. Where previously the design was a tool that informed the coding effort and only the code was deployed to the runtime (witness design-by-feature and build-by-feature as seperate tasks) now the design can replace some of the coding effort and the design is included in the runtime deployment.

To put it another way: the design stops being a necessary or useful step towards the goal and starts being part of the goal.

One the surface, this has a very small impact on FDD. The relationship between design-by-feature and build-by-feature changes slightly. Perhaps class ownership is extended to state ownership. The tasks and review points in a CP workpackage are extended to include the executable design, and other small changes.

What do people here think? When the design becomes a part of the deployment and changes in a chart or other metadata has a profound effect on the execution of your application: what changes will be needed to FDD to cope with that?


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

been there

isnt that what 4gls and case tools did when they were fashionable?

Jeff De Luca's picture


Hahaha. I enjoyed that *grin* It certainly does seem that way.


Steve Mellor and Executable UML


Have you taken a look at what Steve Mellor has been doing with executable UML? There is both a book and a tool. See Steve's company, Project Technology for more details.

David J. Anderson
author of "Agile Management for Software Engineering"

Executable abstractions


All (well at least most) progress in software development is by using higher level abstractions, i.e. executing higher level abstractions - bigger/better class libraries, services, models as code, etc. Dont restrict yourself to design time - some people are looking at executable requirements.

I like state machines and think there may be an automable abstraction - the DNC as a state machine. Although some disagree with me.

I'll reserve comment on the suitability of UML for modelling higher level executable abstractions.

Impact on FDD? Some on Domain Modelling but otherwise no real impact.