A Methodology For The Development Of Complex Domain Specific Languages
|Director of thesis||Didier Buchs|
|Co-director of thesis||Gilles Falquet|
|Summary of thesis||
The term Domain-Specific Modeling Language is used in software development to indicate a modeling (and sometimes programming) language dedicated to a particular problem domain, a particular problem representation technique and/or a particular solution technique. The concept is not new -- special-purpose programming language and all kinds of modeling/specification languages have always existed, but the term DSML has become more popular due to the rise of domain-specific modeling. Domain-specific languages are considered 4GL programming languages. Domain-specific modeling techniques have been adopted for a number of years now. However, the techniques and frameworks used still suffer from problems of complexity of use and fragmentation. Although in recent times some integrated environments are seeing the light, it is not common to see many concrete use cases in which domain-specific modeling has been put to use. The main goal of this thesis is tackling the domain of interactive systems and applying a DSML-based workflow which leads from a system specification to the prototyping of a GUI. We chose to use the domain of Control Systems as an example of application for several reasons. Among others, it needs modularity, interactivity, property validation; it requires the development of a user interface; and the domain experts are not typically expert software engineers. Control Systems can be defined as mechanisms that provide output variables of a system by manipulating its inputs (from sensors or commands). While some Control Systems can be very simple (e.g., a thermostate) and pose little or no problem to modeling using general-purpose formalisms, other Control Systems can be complex with respect to the number of components, dimensions, physical and functional organization and supervision issues. A complex Control Systems will generally have a composite structure, in which each object can be grouped with others; composite objects can be, in their turn, components (or ``children'') of larger objects, forming a hierarchical tree in which the root represents the whole system and the leaves are its most elementary devices. Controlling and supervising such complex systems requires the development of complex GUI, which can benefit from adopting a domain-specific methodology. The outcome of the thesis is the definition of a methodology that allows easy prototyping of a GUI for interactive systems. The take-away lesson is giving readers a concrete working example of how to build a similar methodology for their domain.
|Administrative delay for the defence|