We are trying to produce a theory and practice of domain-specific kits,
abstracting ideas from division studies and experiences in developing and
using several domain-specific kits. A complete methodology should include:
- A philosophy of how and when to use domain-specific
kits, and guidelines on how to balance the cost and benefits between the
development of frameworks, reusable domain-specific components and languages,
and the use of traditional programming.
- A taxonomy or catalog of kit models, styles, and
implementation techniques. For example, kits may be ``closed and complete'',
or ``open and extensible'', providing a some needed workproducts, and
instructions and mechanisms to create, declare and register new components.
- Processes and methods to be used by kit developers and users,
workproduct supporters and managers, such as ``domain engineering,'' ``kit
engineering,''``framework design,'' ``component management,'' ``generator
design and implementation,'' ``using a kit,'' ``augmenting a kit,'' etc.
- A set of (customizable) tools and core technology that can be used to
define and develop kits, such as domain analysis tools, language and generator
kits, library and browsing tools, glue language interpreters and compilers,
software-bus services, user-programming and customizing language kits, etc.
- A set of case studies which illustrate the principles, the practice and
the tradeoffs. It would be useful to know language sizes, number of
components, implementation costs, productivity and quality benefits, etc.
Subsections