Gum Language

Galactic Universal/Unified Modelling Language?

In many necks of our woods the fundamental idea of modeling as a declarative means of designing a system is BigDesignUpFront, which in days of TestDrivenDevelopment means DEAD. Even where BigDesignUpFront is still an ideal, UML is unable to provide sufficient generality to describe much. UML 2 seems to have made the thing more confusing and less generic. Committees are like that.

So GumLanguage is not UML. It's not a way of designing code. It's a way of generating tests.

I guess there are about 10 "diagrams" in GumLanguage. There could be more if you like - they all have the same form, which is just the GalacticModelingLanguage. All GumLanguage adds is layers.

To whit: each layer is an associative directed graph of labelled boxes. Any box in a layer can be associated with any other box. Patterns within a layer's graph are each identified by a single labeled box in the layer above. Because a box or link can be part of more than one pattern of other boxes in its layer, it can be related to more than a single box in the layer above. So the overall structure is a lattice with each layer more abstract than the one below it.

What hierarchy of layers do we use? Well, it's up to you. I've been thinking like this:

How far do you need to flesh out one of these lattices before you start trying to satisfy the thing with machinery? Well, you do it iteratively. A slice through a Gum lattice could be called a gumtree ... which is just a way of representing an aspect qua AspectOrientedProgramming ... and you can still generate yer sequence diagrams / CRC plays here. They're simply time-oriented gumtrees. And so on.

--PeterMerel again riffing KenHappel

Re: "each layer is an associative directed graph of labelled boxes. Any box in a layer can be associated with any other box." -- It sounds like the association is the link between graph nodes, so that would just be a "directed graph". What beyond those directed links between nodes makes it "associative" in addition to a "directed graph"? Similarly, why do you say "lattice"?

I say associative to distinguish the links within a layer from the links between layers, which are relational. But of course it's possible to take the relations further: a box in a higher layer could be any distinction on the layer below. Distinctions are hard to represent within traditional information structures, however. As for lattice - well, make a DirectedAcyclicGraph and then allow associative links between nodes at the same depth - you tell me what you'd call it. Matroid? Let's not go there.

Got an example of what this would look like in action?

Examples? We don't need no steenkeeng examples! ;-)


See also: GalacticModelingLanguage UnifiedModelingLanguage (UML)


EditText of this page (last edited July 27, 2005) or FindPage with title or text search