Similarly,
wait until your example models prove you are happy with the central concepts and
how they work in practice. If possible, wait until the use scenarios show that your
language, its models, and use process will scale to ?¬?t your envisaged needs.
Starting on the generators too early will at best mean signi?¬?cant wasted work for
you. At worst, the desire not to redo work on the generators will prevent you from
making changes that need to be made to the modeling language. This would mean
signi?¬?cant lost productivity over all modelers, over all products, and over the whole
life span of the modeling language. Of course, if you ?¬?nd yourself in this situation, you
must simply bite the bullet, make the changes to the modeling language, and update
the generators??”but holding off on the generators until the metamodel is stable is
clearly the better strategy.
344 DSM DEFINITION PROCESS
While the de?¬?nition of the generators and the domain framework is divided into
Chapters 11 and 12, respectively, in practice they are often developed in parallel or
even in reverse order. The most common pattern, and the one we would recommend
for ?¬?rst timers, is that after successfully writing a part of the generator, you notice that
it produces similar blocks of code many times in the output. You abstract that block
into its own function in the domain framework and replace the block in the generator
with a call to that function.
Pages:
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649