This thesis focuses on facilitating the development of simulation software which produces simulated environmental content. Such software programs provide controlled stimuli which have influence on the systemof interest. Their expected functionalities depend on overall simulation goals and system models. The development of such software often involves multiple roles. Simulated environments produced by the result software should exhibit spatio-temporal heterogeneity, which is supported by spatial data structures and operations. However, users of these components may not necessarily have related knowledge. They describe their expected simulated environment from a human observer perspective based on common sense terms. Such descriptions have less details than implementable software models and mix information of different software artifacts. Moreover, modelers who provide mathematic computation models of certain environmental phenomena may not necessarily be experts of software engineering. They express phenomena in mathematic formations which needs to be reformed into software implementations. Gaps among different perspectives bring great challenges into the development, wherein a large amount of work is required and development processes remain case-based.
In this thesis, a domain-specific language-driven development framework is provided to assist developing the interested software. Components of this framework is anchored by an executable description language named Simulated Environment Description Language (SEDL). First, a description metamodel is specified to allow software users for specifying the simulated environments they expected from a program under development. This metamodel serves as the abstract syntax of SEDL and is grounded on common spatial conceptualizations from the spatial information theory. It provides intuitive vocabularies to describe the relevant characteristics of environmental phenomena, as well as what types of spatio-temporal change they may exhibit during simulations at the cognitive level. A description in this language corresponds to a computation independent model of expected simulated. Then, the description metamodel is mapped to three output language metamodels: a configuration metamodel which expresses the content that users can modify through a user interface to set a specific environment, a data structure metamodel which expresses the inner data structure that carries information of environmental phenomena to be computed, and a computation flow metamodel which expresses software functions that computes the states of the data model objects based on configuration. Mapping rules and output metamodels serve as the operational semantics of SEDL. They define the outputs when executing a description in SEDL. These output metamodels support to represent simulated environment generation software at the logic level as platform-independent models. A set of inter-related models described by these metamodels follows the structure of a light-weighted configuration languages.
Language metamodels are specified by modeling standards of Model-Driven Architecture (MDA) in this thesis to remain implementation-independent. The proposed development framework is designed based on the language specifications, including an architecture of language infrastructure and a development process guide with this infrastructure. A full implementation of this framework supports automatic generation of software skeletons from a requirement description of simulated environment, leaving only application specific functions to be filled. It enables the rapid incremental prototyping development paradigm. An EMF-based tooling prototype is provided to demonstrate and evaluate the framework with test cases.
This framework contributes to developing simulated environment generation software mainly from the following aspects: 1) it enables participation of non-developer users in development processes by writing executable descriptions of their required simulated environment at the cognitive level; 2) it facilitates communication among different roles with formal models; 3) it assists developers with automatic generations of software models from cognitive level requirement description; 4) it preserves functional requirements in the development process and ensure intuitive user interface in products through the well-defined metamodel and transformation chains.
Betreuer: Prof. Dr.-Ing. Axel Hahn, Prof. Dr. Thomas Brinkhoff