The on-board software (OBS) instantiation environment is presented in this paper as an effective example of software application generation through an automated instantiation of a component-based software framework. The paper assumes a mature framework, namely, one that can provide almost all of the functionalities required by applications created as instances of the framework.
This work is part of recent efforts to develop generative techniques for the automation of framework instantiation processes. These kinds of techniques use application specification in domain-specific languages, which can make the specification process complex for the end user. OBS relies on visual design and mainstream, relatively inexpensive Java and Extensible Markup Language (XML) technologies to make application specification accessible to nonspecialist users. It is targeted toward the development of control systems, but it can be adapted for embedded domains. The strength of OBS comes from providing not only one framework design pattern that is easy to understand and follow, but also from guidelines for porting it to other types of software frameworks, which leaves it open for further improvements.
The authors begin by familiarizing the reader with the main concepts and basic requirements for component-based software frameworks, as well as with recent related research. They outline the steps necessary to develop a generative programming environment for applications within a certain domain, and discuss each step in the presentation of OBS frameworks in detail. The authors continue with a discussion of the instantiation environment based on OBS, and present the instantiation operations for domain-specific application composition and configuration using a composition environment with an intuitive graphical user interface. The framework uses the Java Beans component approach for application development. The bean builder used by OBS can run in two modes: design and execution. The authors finish with a concrete case study and a discussion of lessons learned, possible generalizations, and design guidelines.
I recommend this paper to readers interested in the development of integrated development environments (IDEs) or in applications of XML and Java (Standard Edition-level) technologies.