10.6 illustrates two
different watch models: one with three applications and another with ?¬?ve. The
variation is speci?¬?ed here by having different application states as modeling objects
and by connecting them in different orders with relationships.
In the above case, each application state is further described in additional
submodels: each state has one subdiagram describing how each application, such as
time, stopwatch, and timer, works. This illustrates the option of having complete
diagrams as sources of variation. If the same stopwatch application cannot be
speci?¬?ed for two cases, the language then allows making different subdiagrams for
each case. This option means that two different designs are created. The obvious
drawback is that the application speci?¬?cations most likely have some similarities but
are still created separately. This not only means that there is duplicate work in the
beginning but also that possible bug corrections and extensions that are bene?¬?cial to
both applications need to be made multiple times: here twice, to cover both models.
IDENTIFYING AND DEFINING MODELING CONCEPTS 243
FIGURE 10.6 Two different models describing two variants based on including applications and their execution order
244
Capturing variability does not need to be limited to specifying just added
functionality.
Pages:
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443