Rieger, Christoph: Model-Driven Software Development : Cross-Platform App Development and Further Applications of Domain-Specific Languages. 2019
Inhalt
- Abstract
- Contents
- List of Figures
- List of Tables
- List of Listings
- List of Acronyms
- I Research Overview
- 1 Introduction
- 2 Research Design
- 3 Cross-Platform App Development
- 3.1 Foundations on Cross-Platform App Development
- 3.2 Categorising App-Enabled Devices
- 3.3 Challenges of Cross-Platform Apps Across Device Classes
- 3.4 Evaluating Cross-Platform App Development Approaches
- 3.4.1 Criteria Catalogue for Cross-Platform Development Frameworks
- 3.4.2 Assessment of Criteria Using Weight Profiles
- 3.5 Discussion
- 3.6 Contributions to the Field of Research
- 4 Model-Driven Mobile Development
- 4.1 Foundations on Model-Driven Mobile Development
- 4.1.1 Model-Driven Software Development
- 4.1.2 Model-Driven Business Apps
- 4.1.3 Process Modelling Notations
- 4.2 MD2
- 4.3 MAML
- 4.3.1 Language Overview
- 4.3.2 Data Model Inference
- 4.3.3 Identifying Modelling Inconsistencies
- 4.3.4 Model-to-Code Transformation
- 4.3.5 Usability Evaluation
- 4.3.6 Interoperability of MAML and BPMN
- 4.4 Model-Driven App Development Across Device Classes
- 4.4.1 Model-Driven Process for Pluri-Platform App Development
- 4.4.2 Usability Evaluation for Pluri-Platform Development
- 4.5 Discussion
- 4.6 Contributions to the Field of Research
- 5 DSL Design
- 5.1 Foundations on DSL Design
- 5.2 Modularisation of Xtext-Based DSLs
- 5.2.1 Foundations of Language Modularisation
- 5.2.2 Case Study on MD2
- 5.2.3 Recommendations on Modularising Xtext-based DSLs
- 5.3 Musket: A DSL for High-Performance Computing
- 5.3.1 Foundations on Algorithmic Skeletons for High-Performance Computing
- 5.3.2 The Musket DSL
- 5.3.3 DSL Preprocessing for Performance Optimisation
- 5.4 TAL: A DSL for Configurable Traceability Analysis
- 5.5 Discussion
- 5.6 Contributions to the Field of Research
- 6 Conclusion
- References
- II Included Publications
- 7 Towards the Definitive Evaluation Framework for Cross-Platform App Development Approaches
- 7.1 Introduction
- 7.2 Related Work
- 7.3 Criteria Catalogue
- 7.3.1 Fundamental Considerations and Structure
- 7.3.2 Infrastructure Perspective
- 7.3.3 Development Perspective
- 7.3.4 App Perspective
- 7.3.5 Usage Perspective
- 7.4 Weight Profiles
- 7.5 Evaluation Study
- 7.5.1 Method
- 7.5.2 (Progressive) Web Apps
- 7.5.3 PhoneGap
- 7.5.4 React Native
- 7.5.5 Native Apps
- 7.5.6 Intermediate Conclusions
- 7.6 Discussion
- 7.7 Conclusion
- References
- 8 Generation of High-Performance Code Based on a Domain-Specific Language for Algorithmic Skeletons
- 8.1 Introduction
- 8.2 Related Work
- 8.3 A Domain-Specific Language for High-Level Parallel Programming
- 8.4 Code Generation for Multi-Core Clusters
- 8.4.1 Data Structures
- 8.4.2 Model Transformation
- 8.4.3 Custom Reduction
- 8.4.4 User Functions
- 8.4.5 Specific Musket Functions
- 8.4.6 Build Files
- 8.5 Benchmarks
- 8.6 Conclusions and Future Work
- References
- 9 A Process-Oriented Modeling Approach for Graphical Development of Mobile Business Apps
- 9.1 Introduction
- 9.2 Related work
- 9.3 MAML Framework
- 9.3.1 Language Design Principles
- 9.3.2 Language Overview
- 9.3.3 Data-Model Inference
- 9.3.4 Modeling support
- 9.3.5 App generation
- 9.4 Evaluation and Discussion
- 9.5 Conclusion and Outlook
- References
- 10 Towards Pluri-Platform Development
- 10.1 Introduction
- 10.2 Related Work
- 10.3 Münster App Modeling Language
- 10.3.1 Language Design Principles
- 10.3.2 Language Overview
- 10.3.3 App Modelling
- 10.3.4 App Generation
- 10.4 Evaluation
- 10.5 Towards Pluri-Platform Development
- 10.5.1 Challenges
- 10.5.2 Towards Pluri-Platform Development
- 10.5.3 Applicability of Existing Cross-Platform Approaches for Pluri-Platform Development
- 10.5.4 Evaluation of MAML in a Pluri-Platform Context
- 10.6 Discussion
- 10.7 Conclusion
- References
- 11 Musket: A Domain-Specific Language for High-Level Parallel Programming with Algorithmic Skeletons
- 11.1 Introduction
- 11.2 Foundations
- 11.3 Related Work
- 11.4 Musket DSL
- 11.5 Model Transformation
- 11.5.1 Map Fusion
- 11.5.2 Skeleton Fusion
- 11.5.3 User Function Transformation
- 11.5.4 Automated Data Distribution
- 11.6 Evaluation and Discussion
- 11.7 Conclusion and Outlook
- References
- 12 A Model-Driven Cross-Platform App Development Process for Heterogeneous Device Classes
- 12.1 Introduction
- 12.2 Cross-platform app development
- 12.3 A Process Model for App Development Across Device Classes
- 12.4 Realizing Cross Device Class Apps
- 12.5 Evaluation
- 12.6 Discussion
- 12.7 Related Work
- 12.8 Conclusion and Outlook
- References
- 13 Generation of High-Performance Code Based on a Domain-Specific Language for Algorithmic Skeletons
- 13.1 Introduction
- 13.2 Related Work
- 13.3 A Domain-Specific Language for High-Level Parallel Programming
- 13.4 Code Generation for Multi-Core Clusters
- 13.4.1 Data Structures
- 13.4.2 Model Transformation
- 13.4.3 Custom Reduction
- 13.4.4 User Functions
- 13.4.5 Specific Musket Functions
- 13.4.6 Build Files
- 13.5 Benchmarks
- 13.5.1 Frobenius Norm
- 13.5.2 Nbody Simulation
- 13.5.3 Matrix Multiplication
- 13.5.4 Fish School Search
- 13.6 Conclusions and Future Work
- References
- 14 Towards Model-Driven Business Apps for Wearables
- 14.1 Introduction
- 14.2 Related Work
- 14.3 Creating Business App UIs for Wearable Devices
- 14.3.1 Challenges of Wearable UIs
- 14.3.2 Conceptual UI Mapping
- 14.3.3 Modelling Apps Across Device Classes
- 14.4 Discussion
- 14.5 Conclusion and Outlook
- References
- 15 A Taxonomy for App-Enabled Devices: Mastering the Mobile Device Jungle
- 15.1 Introduction
- 15.2 Related Work
- 15.3 Taxonomy of App-Enabled Devices
- 15.3.1 Basic Considerations
- 15.3.2 Dimensions of the Taxonomy
- 15.3.3 Categorizing the Device Landscape
- 15.4 Discussion
- 15.5 Conclusion and Outlook
- References
- 16 Interoperability of BPMN and MAML for Model-Driven Development of Business Apps
- 16.1 Introduction
- 16.2 Related work
- 16.3 Business Process Notations for Mobile App Development
- 16.4 Comparison of Workflow Patterns in MAML and BPMN
- 16.5 Model-to-Model Transformation
- 16.5.1 Mapping of Equivalent Language Constructs
- 16.5.2 Mapping of Related Language Constructs
- 16.5.3 Unmapped Language Constructs
- 16.6 Discussion
- 16.7 Conclusion and Outlook
- References
- 17 Challenges and Opportunities of Modularizing Textual Domain-Specific Languages
- 17.1 Introduction
- 17.2 Related Work
- 17.3 DSL Modularization Concepts
- 17.4 Modularization in Xtext
- 17.4.1 Modularization Concepts in Xtext
- 17.4.2 Case Study on MD2
- 17.4.3 Modularizing MD2
- 17.4.4 Advantages and Disadvantages of Modularization
- 17.5 Discussion
- 17.6 Conclusion and Outlook
- References
- 18 Evaluating a Graphical Model-Driven Approach to Codeless Business App Development
- 18.1 Introduction
- 18.2 Related Work
- 18.3 Münster App Modeling Language
- 18.3.1 Language Design Principles
- 18.3.2 Language Overview
- 18.3.3 App Modelling
- 18.3.4 App Generation
- 18.4 Evaluation
- 18.5 Discussion
- 18.6 Conclusion
- References
- 19 A Model-Driven Approach for Evaluating Traceability Information
- 19.1 Introduction
- 19.2 Related Work
- 19.3 An Integrated Traceability Analysis Language
- 19.4 Discussion
- 19.5 Conclusion
- References
- 20 A Domain-specific Language for Configurable Traceability Analysis
- 20.1 Introduction
- 20.2 Related Work
- 20.3 Defining and Integrating the Domain-Specific Language
- 20.3.1 Composition of Modeling Layers
- 20.3.2 Querying the Traceability Information Model
- 20.3.3 Defining Individual Metrics
- 20.3.4 Evaluating Metrics
- 20.4 Discussion
- 20.5 Conclusion
- References
- 21 Conquering the Mobile Device Jungle: Towards a Taxonomy for App-Enabled Devices
- 21.1 Introduction
- 21.2 Related Work
- 21.3 Taxonomy of App-Enabled Devices
- 21.4 Discussion
- 21.5 Conclusion and Outlook
- References
- 22 Business Apps with MAML
- 22.1 Introduction
- 22.2 Related Work
- 22.3 MAML Framework
- 22.3.1 Language Design Principles
- 22.3.2 Language Overview
- 22.3.3 Data-Model Inference
- 22.3.4 Modeling Support
- 22.3.5 App Generation
- 22.4 Evaluation and Discussion
- 22.5 Conclusion
- References
- 23 Weighted Evaluation Framework for Cross-Platform App Development Approaches
- 23.1 Introduction
- 23.2 Related Work
- 23.3 Background
- 23.4 Criteria
- 23.4.1 General Considerations
- 23.4.2 Infrastructure Perspective
- 23.4.3 Development Perspective
- 23.4.4 App Perspective
- 23.4.5 Usage Perspective
- 23.5 Evaluation
- 23.6 Discussion
- 23.7 Conclusion
- References
- 24 Refining a Reference Architecture for Model-Driven Business Apps
- 24.1 Motivation
- 24.2 Related Work
- 24.2.1 Business Apps and App Development
- 24.2.2 Creating Business Apps with MD2
- 24.2.3 Reference Architectures
- 24.3 Evaluation of a Reference Architecture for Model-Driven Business Apps
- 24.4 Revising the Reference Architecture
- 24.4.1 Reference Architecture Structure
- 24.4.2 Platform-Specific Implementation Variability
- 24.4.3 Reference Architecture Interactions
- 24.5 Discussion and Outlook
- 24.6 Conclusion
- References
- 25 How Cross-Platform Technology Can Facilitate Easier Creation of Business Apps
- 25.1 Introduction
- 25.2 Status Quo of Cross-Platform App Development
- 25.2.1 On the Economic Value of App Development
- 25.2.2 A Brief History of App Development
- 25.2.3 General Approaches Towards Cross-Platform Development
- 25.2.4 Overview of Current Frameworks and Tools
- 25.3 Related Work
- 25.4 Current Contributions to Business App Development
- 25.4.1 Understanding the Current State of Cross-Platform Utilization
- 25.4.2 MD2 as a Contemporary Generative Approach
- 25.5 Paving the Road to Future Cross-Platform Business App Development
- 25.5.2 Improving Domain-Orientation
- 25.5.1 Required Technological Work
- 25.5.3 Sketching the Future
- 25.5.4 Possible Merits and Positive Accessory Phenomena
- 25.5.5 Challenges, Obstacles, and Possibly Negative Ramifications
- 25.5.6 Remaining Issues
- 25.6 Discussion
- 25.7 Conclusion
- References
- 26 A Data Model Inference Algorithm for Schemaless Process Modeling
