Domain engineering has
two phases; domain analysis and domain implementation. Domain engineering has matured
sufficiently to allow the development of support tools such as DARE [FPF95] and
application generator development tools such as Metatool [Cleaveland88].Automating
domain engineering means combining the domain analysis and domain implementation phases
into a coherent whole. This involves mapping domain analysis outputs to domain
implementation inputs, as a first step to integrating the tools for each. This working
group, building on previous work on this topic [DF93][DF96], discussed the automation of
domain engineering by linking the outputs of DARE and the inputs of Metatool. This mapping
is shown in Figure 2.
The outputs of DARE are a facet table, templates, a generic architecture, a feature
table, reusable components, and code structures. These are used to define the inputs to
the formal domain language used by Metatool. This formal language consists of a
vocabulary, a grammar, and semantics. There was some discussion of the best internal form
for the grammar (string graph, or other representation).
The group concluded that automating domain engineering via this approach is feasible,
but further research is necessary.