A Modular Graphical Editing Architecture for Flexible Modeling
Total Page:16
File Type:pdf, Size:1020Kb
Fakultät für Ingenieurwissenschaften, Informatik und Psychologie Institut für Softwaretechnik und Programmiersprachen CouchEdit – A Modular Graphical Editing Architecture for Flexible Modeling Masterarbeit an der Universität Ulm Vorgelegt von: Leander Nachreiner Gutachter: Prof. Dr. Matthias Tichy Prof. Dr. Manfred Reichert Betreuer: Dr. Alexander Raschke 2019 Fassung 11. Februar 2020 c 2019 Leander Nachreiner Satz: PDF-LATEX 2" Zusammenfassung Modelle sind seit langer Zeit ein wichtiger Bestandteil in Systementwicklungsprozessen. Insbesondere die Forschung und Entwicklung im Bereich der Modellgetriebenen Entwick- lung (MDE) zielt darauf ab, einen problemorientierten Ansatz zur Umsetzung komplexer Systeme zu schaffen. Eine tragende Säule dieses Forschungsgebiets ist die Verwendung grafischer / diagrammbasierter Notationen, die dem Benutzer eine besonders intuitive Interaktion mit dem Modell ermöglichen und dabei kognitive Fähigkeiten nutzen, welche mit textbasierten Ansätzen nicht in Anspruch genommen werden können. In der Verwendung dieser grafischen Notationen gibt es allerdings noch Potenzial zur Ver- besserung: Die Unterstützung solcher Workflows durch Werkzeuge ist Untersuchungen zufolge immer noch nicht optimal, da diese Applikationen oftmals schlechte Benutzbarkeit und damit schlechte Modeling Experience, also Benutzererfahrung beim Modellieren, aufweisen. Zudem sollen auch allgemein Entwicklungen in der Welt von Produktivitäts- werkzeugen, wie das verteilte und kollaborative Arbeiten, Modellierungswerkzeugen nicht vorenthalten bleiben. Dadurch gab es Anlass, mit einem neuen Framework für die Umset- zung solcher grafischer Editoren zu experimentieren. Gemäß dem Design Science Research Ansatz wird in dieser Arbeit ein modulares und flexibles Konzept vorgestellt, welches – basierend auf kürzlich veröffentlichten Ideen anderer Forschungsgruppen – die traditionell aus der Beschreibung von Notationen in der Benutzeroberfläche von Editoren gegebenen Einschränkungen soweit wie möglich auf- hebt. Dieses Konzept wird demonstriert in Form eines ausführbaren vertikalen Prototyps, welcher zudem für die Evaluation der Performanz und der Schwachstellen des Konzepts sowie seiner spezifischen Implementierung herangezogen wird. Abstract Models have long become an integral part of many system development activities. In particular, research in the field of Model Driven Engineering (MDE) strives to facilitate problem-oriented creation of complex systems. To this end, the use of graphical (diagram) notations is an important cornerstone, providing users with an intuitive way of interacting with models and taking advantage of wider areas of cognitive capability than possible through purely text-based approaches. However, contrary to these underlying goals, the support of such graphical notations through appropriate tools is still believed to be not optimal, with the usability of such tools being low, thus causing bad Modeling Experience. This is accompanied by new trends in productivity at large, such as the desire to work collaboratively and in a distributed fashion. From this, we saw a need for the conceptualization and development of a graphical editing framework that works on premises different to previous ideas. Following the Design Science Research paradigm, anchored on recent work from other research groups, a modular and flexible concept is presented which strives to remove as much limits as possible that are traditionally given by the user interface – and thus imposed on the user – based on the definition of the supported modeling notation. This concept iii is also demonstrated by use of an executable, vertical prototype, which is furthermore used for evaluating the performance and bottlenecks imposed by the concept and its implementation. iv Contents 1 Introduction1 1.1 Problem Statement: Relaxed Conformance . .2 1.2 Content Summary . .3 1.3 Research Questions . .4 1.4 Thesis Structure . .6 2 Fundamentals and Related Work7 2.1 Design Science Research Process . .7 2.1.1 Problem Identification and Motivation . .8 2.1.2 Definition of Solution Objectives . .8 2.1.3 Design and Development . .9 2.1.4 Demonstration and Evaluation . .9 2.1.5 Communication . 10 2.2 Modeling Language Fundamentals: Concrete and Abstract Syntax . 10 2.2.1 Visual Notations . 11 2.2.2 Taxonomy of Concrete Syntax . 12 2.3 Application Architecture Foundation . 14 2.4 Interpretation and Correctness Checking of Diagrams . 16 2.5 Other “Relaxed Conformance” Modeling Approaches . 21 2.6 Model Editor Usability . 24 3 Concept 27 3.1 Basic Framework . 27 3.1.1 Data Structure . 29 3.1.2 Dynamic Structure . 32 3.2 Modeling Language Mechanisms . 36 3.2.1 Graphic Primitives . 38 3.2.2 HotSpots . 43 3.2.3 Spatial . 46 3.2.4 Connection . 54 3.2.5 Compartments . 59 3.2.6 Containment . 78 3.3 Frontend and User Interface . 82 3.3.1 Integration into the Architecture . 83 3.3.2 Model Actions . 84 4 Application to Statechart Interpretation 87 4.1 Data Model . 87 v Contents 4.2 Interpretation of Statechart Notation Elements . 90 4.2.1 “Simple” States . 94 4.2.2 Composite States . 96 4.2.3 Transitions . 96 4.2.4 Orthogonal Regions . 99 4.3 Front-to-Back Example . 103 5 Prototype Description 105 5.1 Technology Foundation and Description . 105 5.1.1 Core . 106 5.1.2 Frontend . 107 5.1.3 Statecharts . 107 5.2 Implemented Functionality . 108 5.3 Implementation Details . 113 5.3.1 Processing . 113 5.3.2 ModelRepository . 114 5.3.3 Timestamps . 116 6 Evaluation 119 6.1 Test Setup . 120 6.2 System Test Cases . 123 6.3 Evaluation Results . 128 6.3.1 Performance . 129 6.3.2 Discussion of Framework Design . 137 7 Perspectives 141 7.1 Declarative Concrete Syntax Definition . 141 7.2 Framework Improvements . 143 7.3 Additional Functionality and Use Cases . 145 7.4 Frontend Improvements . 147 A System Test Case Details 149 A.1 StateGridTest . 149 A.2 CompleteTransitionGraphTest . 150 A.3 OrthogonalStateGridTest . 151 A.4 RecursiveOrthogonalStateTest . 152 A.5 ChildStateChangeTest . 154 A.6 OrthogonalHierarchyConnectionTest . 156 B System Test Case Result Tables 161 Bibliography 167 vi 1 Introduction Models are an essential part of software and system development. In the most general sense, every piece of software can be seen as a model – an abstraction of the aspects identified in its use cases and the external entities it interacts with. However, when speaking of “models”, practitioners usually talk about a higher-level abstraction of certain aspects, for example the description of a project’s data structures and their relations in a class diagram like defined in the Unified Modeling Language (UML) or a summary of a business process to be supported by a system defined in a process diagram, such as a Business Process Model and Notation (BPMN) drawing. It should be kept in mind, though, that what is often colloquially referred to as a model is rather the graphical representation of a model as a diagram, giving a hint that there is more to modeling than just boxes and lines. Often, such graphical modeling languages serve as an alternative to textual program code for viewing and creating software systems, both as a pure documentation tool (to provide an abstraction of a complex system for a certain end) and, in paradigms such as Model Driven Engineering (MDE) and Business Process Management (BPM), as a self-sufficient way and a primary artifact to create entire systems. In particular, so-called Domain Specific Modeling Languages (DSMLs), a term used to describe modeling languages specifically tailored to a certain field of application, have been described as a way to move thinking during the system design phase from the solution space, i.e. the technologies in which a system will be realized, to the problem space, putting emphasis on the needs to be fulfilled by the system in the future [1], and making the system verifiable against these needs [2]. DSMLs also enable domain experts to be a more integral part of the system development process, as they put systems in terms understandable for them, especially when using intuitive graphical notations [3]. As a result of applying MDE in practice, it has been shown that there can be tremendous increases in productivity, result quality and learnability, for example in [4]. Already when modeling purely for documentation purposes but especially when applying MDE, graphical modeling tools become an essential part of system engineers’ workflows, akin to text editors and text-based Integrated Development Environments (IDEs) when developing with a traditional code-only approach. The communicative and agile nature of graphical notations is leveraged best if the modeling software itself is flexible, supporting the workflow of modeling language design and use [3]. Furthermore, as both the general technical environment and the graphical notations themselves are often dynamic and in continuous development, it is important to have an easy way of extending, modifying and adapting tools both to varying conditions and to changing requirements. However, the general state of tool support in Model Driven Engineering is widely perceived to be in need of improvement, with a big part of the shortcomings being attributed to User 1 1 Introduction Experience (UX) or, more specific, Modeling Experience (MX) in the tooling available [5]. Many potential ways are proposed to remedy this issue, for example better support for domain-specific modeling tasks and collaborative modeling. As one of the ways of improving the state of MX, the Blended Modeling initiative [6] has been brought to life. The term Blended