Closed MattWindsor91 closed 2 years ago
We can reuse some of the syntactic ideas we used to have in older versions of the language. Here's a sketch:
sequence group S
with C1: controller Ctrl1
and C2: controller Ctrl2
and C3: controller Ctrl3 {
sequence S1 {
[C1->C2]event Evt1
then [C2->C3]event Evt2
then [C3->C1]event Evt3
}
}
In other words, ->
and <-
would become one kind of endpoint specification, and [X->Y]
another. (The square brackets here are just a clue to the parser so that it knows it's dealing with an arrow, but I'm not particularly attached to them.)
While this change will likely need a large (but not total) change in the semantics, it'll hopefully not massively impact the metamodel.
This has now been drafted for v0.1.
Eventually, we're going to want sequence diagrams between multiple controllers, or multiple STMs. This is key to get the full expressivity of sequence diagrams, but complicates a lot of things:
Amusingly,
Some possible ideas and pointers: