9.8, it
is possible to return from the EditMinutes, EditHours, and EditSeconds states to the
basic Show state, via an ExitEdit state that makes the edited time persistent. Rather
MODELS 209
than try to draw three relationships all arcing back to the start, a duplicate of the
ExitEdit state is placed conveniently close to each of the Edit states, allowing a
single short transition for each. No transitions leave these duplicates, but the model
knows they are all the same as the main ExitEdit state, so the transitions that leave
there are applicable in the duplicates too. Conceptually we can think that we jump
straight from a duplicate to the main ExitEdit state, but in fact there is no difference,
and no one representation of the ExitEdit state is pre-eminent. The ExitEdit state
simply has the sum of all of the transitions that enter or leave any of its
representations in this graph. Since having real reusable objects like this may be too
radical for more conservative users, it would also be possible to have a new object
type ???State Reference,??? and use that for the other representations of ExitEdit. Of
course, if the users are that conservative, you should just let them code the whole
thing in assembly language and forbid the use of subroutines??”or simply give them a
nice analog watch as a retirement gift.
Pages:
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389