Domain-specific models and languages are an attractive approach to raise the level of abstraction in software engineering. In this paper, we first analyze and categorize the semantic dependencies that exist between domain-specific models and their generated implementations via frameworks and customization code in a target programming language. We then demonstrate that framework introspection allows a deeper integration of domain-specific models into statically and polymorphically typed object-oriented languages like Java. Using the example of an introspective persistence and query framework for Java, we demonstrate how programmer productivity and software quality can be improved substantially. Since the Java IDE captures the semantic dependencies between the Java application and its embedded domain-specific model(s), it is able to provide programmers with powerful consistency checking, navigation, refactoring, and auto-completion support also for the domain-specific models. Our introspective approach works for whitebox and blackbox frameworks and is particularly suited for the integration of multiple domain-specific models (e.g. data model, interaction model, deployment model) in one application. Due to space limitations, these benefits [2] are not covered in detail in this paper. The paper ends with a discussion of future work on how introspective models can improve the maintenance of long-lived business applications.
There are no subpages or files.