This book focuses on the study of ontology-based models and methods used for the implementation of the evolution of external domain-specific languages (DSL), which are mainly intended for modelling the structure of human-machine interfaces. The primary goal of the approach is to increase the efficiency of support processes during the life cycle of general-purpose software systems. The book is structured in seven chapters. Chapter 1 presents the objectives and significance of the research, as well as a summary of the contents of the work. Chapter 2 analyses the existing classical DSL design and implementation methodology for modelling human-machine interfaces in the context of the lifecycle of general-purpose software systems. Next, chapter 3 is devoted to an analysis of existing methods and formalisms used in describing the structure of a DSL for modelling human-machine interfaces of software systems. Subsequently, chapter 4 provides a detailed description of the proposed new projection-based approach for developing such DSLs. Chapter 5 then describes the software implementation of the human-machine interface evolution based on an example of an external DSL in two domains. Eventually, chapter 6 analyses the application of the proposed projection approach for more complex systems, namely, decision support systems based on heterogeneous information of decision makers. The concluding chapter 7 summarizes the main results of the research and suggests further development paths and practical applications. The book is written for researchers in model-driven software development in general and in domain-specific language engineering in particular. Preface Acknowledgments Contents Acronyms 1 Research Background Part I The Place of a Domain-Specific Language in Modern Information Systems 2 Analysis of Approaches to the Development of a DSL for Software Systems 2.1 Definition, Classification, and General Structure of the DSL 2.2 DSL Lifecycle Models 2.2.1 Analysis of the Applicability of the DSL 2.2.2 Domain Analysis 2.2.3 Design and Implementation of the DSL 2.2.4 Deployment of the DSL 2.2.5 Shortcomings of Existing DSL Lifecycle Management Methods to Support DSL Evolution 2.3 Features of the Development and Operation of Software Systems in Dynamic Contexts 2.4 Analysis of the Classical Approach to the Development of a DSL 3 Analysis of Existing Approaches to the Formalization of the DSL Structure 3.1 Approaches to the Development and Analysis of the Domain Semantic Model 3.2 Definition and Classification of Ontologies 3.3 Languages and Visualization Tools for Ontologies as DSM 3.4 The Concept of Model-to-Model (M2M) Transformations 3.5 Defining Model Transformations Through Graphs and Invariants 3.6 Model-Based Methods for Defining DSLs 3.6.1 Three-Tiered Structure of the DSL 3.6.2 Semantic DSL Model 3.6.3 Methods for Developing a DSL Metamodel 3.6.4 Methods for Modeling a Specific DSL Syntax 3.7 Formalization of Cross-Model Transformations Based on Graph Models 3.8 Defining Rule-Based Model Transformations with Triple Graph Grammars 3.9 Definition of GTS Using Invariants 3.10 Behavior Preservation for Model Transformations Part II A Projection Approach to DSL Development 4 Developing a Projection Approach to DSL Development 4.1 Outline of the Proposed Projection Approach Based on a Generalized Model-Oriented DSL Structure and Cross-Model Transformations 4.2 Representation of the DSL Evolution Under the Proposed Approach 4.3 Algorithmization of DSL Evolution Procedures Using Cross-Model Transformations 5 Practical Use of the Proposed Projection Approach for Developing and Modifying a DSL in Changing Contexts 5.1 Arguments for the Choice of Domains to Verify the Results 5.2 Development of a Software System Based on the Projection Approach for Railway Station Resource Management 5.2.1 Applying the Projection Approach: Developing a Model of the Domain 5.2.2 Applying the Projection Approach: Describing MCUs in DSL Models 5.2.3 Applying the Projection Approach: Describing Cross-Model Transformations Between DSM and DSL Metamodels 5.2.4 Applying the Projection Approach: Describing the MCC in the Architecture of the Proposed System 5.2.5 Applying the Projection Approach: Designing the Architecture of the Proposed Software System 5.2.6 Design and Implementation of the DSL Evolution Module 5.2.7 Analysis of the Effectiveness of the Proposed Solution 5.3 Development of a Software System Based on the Projection Approach for the University Admissions Office 5.3.1 Applying the Projection Approach: Developing a Model of the Domain 5.3.2 Applying the Projection Approach: Describing MCUs in DSL Models 5.3.3 Applying the Projection Approach: Describing Cross-Model Transformations Between DSM and DSL Metamodels 5.3.4 Applying the Projection Approach: Describing the MCC in the Architecture of the Proposed System 5.3.5 Applying the Projection Approach: Designing the Architecture of the Proposed Software System 5.3.6 Design and Implementation of the DSL Evolution Module 5.3.7 Analysis of the Effectiveness of the Proposed Solution 5.4 Technical Features of the Implemented Software Prototypes 5.5 Analysis of the Applicability of the Proposed Approaches and Implemented Software Prototypes 6 Discussion and Further Development 6.1 Crisisology-Based Trade-Off Optimization in Sociotechnical Systems 6.2 Crisisology as a Conceptual Framework for Multi-criteria Decision Support in Information Systems Design 6.3 A Proposed Method for Hierarchical Multi-criteria Choice 6.4 A Proposed Hierarchical Structure of the Criteria for Selection of IT System Architecture 6.5 Description of the Decision Support Service 6.6 Case Study of the Proposed Prototype 7 Conclusion and Final Remarks A Example of an MCC Handler for an int Field MCU B Object-Relational Model MCU Correspondence Function and DSL MCC C Cross-Model Transformations in ATL D Textual DSL for Railway Station Resource Allocation Glossary References