Domain-Specific Languages (DSL) and Domain-Specific Modelling (DSM) respectively are effective approaches, number of programming language comply with these paradigms even if it is not well-known. DSL and DSM are usually developed for a particular domain to fill the existing communication gaps between software engineers of a product and the Subject Matter Experts (SME) in order to decrease additional project costs, to keep the project on schedule and to increase the productivity of the engineers and the quality of the product.
In the first part of the thesis project I examine the relationship between code and model, introduce DSL and DSM, their history and evolvement and indicate their aspects with describing the existing types, approaches and procedures of their implementation. As a conclusion of the first part I summarise the benefits and drawbacks of DSM, when and how it is worthwhile to develop one for a domain.
Next, the domain of railway systems is analysed in a way that this analysis provides support for the design and development of the corresponding DSM. During the analysis I describe railway systems, their architecture, and relevant subsystems, the functions and implementation of the subsystems including the description of the required inputs. Based on my experience I refer to the relevant system engineering lifecycle and to the roles of the participating engineers highlighting the necessity of the DSM. At the end of this section an example is presented, which is to be developed with the new DSM implemented for the railway domain.
Having studied the railway domain, the Visual Studio Integrated Development Environment (IDE) is introduced as well as its software development kit offered for DSM development called VMSDK. As part of this description I depict the structure of the environment, its attributes, objects and their relationships emphasising the connection between the processes and concepts of the DSL and the VMSDK. Eventually using VMSDK and its extensibility the new railway DSM, the Signalling Plan Language (SPL) is implemented with the explanation of the main programming steps and issues. As a conclusion I examine both the existing tools for DSM development and the available railway DSMs and highlight the limitation and possible further improvement of the SPL.