Instead, it serves simply as a label, the
target for an If jump.
Once again, there are the normal rules for Start: one instance per graph, and only
one From role per instance. This time, a similar constraint on From and To roles
applies to most of the object types: only GotoPoint and Stop have no such restrictions.
We can allow multiple Stops and multiple incoming To roles for each; the metamodel
already prevents From roles leaving it. An If object should have only one True and one
False relationship leaving it.
FIGURE 7.3 Lower-level metamodel, VoiceOutput
HOME AUTOMATION MODELING LANGUAGE 147
7.3.2 Possible Improvements
As this modeling language was made in such a short time, and has not been
developed further, it is worth looking at some areas in which it could be improved.
Some of the names for concepts could be ?¬?ne-tuned, for example, GotoPoint might
be better as ???Jump Target??? or ???Label,??? and Text should perhaps be ???Speech.??? These
are however minor points, and easy to address at any stage??”although it is worth
noting that with some tools, changing the names of concepts can have catastrophic
consequences: the next time the model is loaded, all instances of those concepts may
disappear.
Perhaps the clearest problem is the repetitiveness of the InvalidInput and
Timeout relationships in the VoiceMenu models (see Fig.
Pages:
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287