• No results found

The rest of the thesis is structured as follows: First, the foundations of the thesis are laid out in Chapter 2. The foundations are language engineering, model-driven development and deep modeling because the contributions made here represent a delta to the state-of-practice in these fields. Furthermore, the prototype implementation presented here is based on the concepts of model- driven development. The deep modeling approach which addresses the require- ment of deep domains (R1) is introduced in the foundations because it not only addresses R1 but also builds the foundation for all other presented areas. A further goal of the foundations chapter is not only to introduce all concepts used throughout the work but also to create a common understanding of the technical terms used.

The foundations chapter is followed by Chapter 3 focusing on technologies which address requirements for displaying and editing models. First, user- defined visualization definition and retrieval in deep models is discussed in general. Then, multi-format visualization is discussed which addresses the re- quirement of multi-format modeling (R3) followed by a description of how the different formats are enriched with the option to model in multiple notations (R4). Then, an aspect-oriented approach for defining user-defined syntax across several inheritance and classification levels is presented (R6). Finally, the different notations are enhanced by context-sensitive functions addressing the requirement for context-sensitive visualization (R5).

The chapter about user-defined deep visualization of deep models is then followed by a description of the various formats supporting user-defined, deep, multi-format, multi-notation modeling. These formats are: diagram (Chap- ter 4), text (Chapter 5), table (Chapter 6), and form (Chapter 7).

The deep visualization approach heavily depends on deep constraints in all formats. Hence, a deep constraint language (R7) supporting user-defined, deep, multi-format, mutli-notation modeling is presented in Chapter 8.

Seamless modeling is then described in Chapter 9 which enables all the aforementioned technologies to be used in an efficient manner. Seamless mod- eling is the ability to model across multiple classification levels without the need to perform any manual or automatic deployment steps. This feature is

1.5. Outline

founded on the deep modeling approach presented in Chapter 2. The main fo- cus of this chapter, however, is to describe the problems which result from the power of seamless modeling and point out ways of handling the complexity it causes in a deep modeling environment. It therefore addresses the requirement of seamless modeling (R2).

The theoretical part of the thesis’s contributions is then closed with a description of the implementation of the Melanee tool in Chapter 10. This chapter describes how the tool implements the described contributions and, hence, demonstrates their feasibility. The chapter on Melanee closes with a small tutorial on how to create a deep, multi-format, multi-notation user- defined modeling language on the running ArchiMate business layer modeling example which models a company’s structure.

The advantages of the approach introduced in this thesis over existing lan- guage definition workbenches are shown in a comparative evaluation (Chap- ter 11). In this evaluation, the company structure modeling language example covering all aforementioned requirements is created once with the Melanee tool and once with a widely-distributed, model-driven development tool stack. The advantages and disadvantages of the two solutions are compared with respect to each defined requirement for language workbenches.

The work closes with a discussion of related work in Chapter 12 followed by suggestions for future work and conclusions in Chapter 13.

Chapter 2

Foundations

This chapter describes the foundations for the work presented in the thesis, which are primarily theories from classical language engineering, model-driven language engineering and deep modeling. The first part therefore focuses on language engineering, the second part focuses on model-driven language engi- neering and the Object Management Group’s (OMG) model-driven architec- ture [176], and the third part focuses on deep modeling.

2.1

Language Engineering

A software language is a “language that is created to describe and create software systems” [133]. Such languages play a key role in all branches of information technology and although the details of how they are defined and used differ, they invariably contain the same basic ingredients. In this thesis a language is defined as a set of concepts which, when combined according to a set of well defined rules and represented using a set of well defined symbols, can be used to make statements with a precise meaning about some subject (a.k.a. domain) of interest. The concepts and rules used to construct statements in a language are often referred to as the abstract syntax of the language, the symbols mapped to the abstract syntax and used to represent sentences are referred to as the concrete syntax of the language, and the meaning of statements is referred to as the semantic domain of the language on which

abstract syntax elements are mapped [101].

More formally speaking a language can be defined by a five-tuple L={C, A,

S, MS, MC} as for example described in [44, 86]. C is the concrete syntax, A

is the abstract syntax, S is the semantic domain, MS is the semantic mapping

which maps the abstract syntax to the semantic domain (MS: A → S ) and

MC is the syntactic mapping which maps the concrete syntax to the abstract

syntax (MC: C → A).

Since the late 1950s, abstract syntax and concrete syntax have tradition- ally been defined using grammar definition languages. One of the first and most widely known languages for defining textual concrete and abstract syn- tax is the Backus Normal Form (BNF) which was described for the first time by Gorn in [93] after appearing two years earlier for the first time in [32]. This language evolved into grammarware systems [135] such as Yet Another Compiler-Compiler (YACC) [117] which can automatically create parsers for a given grammar. These are usually accompanied by additional construction rules, called the static semantics, and a definition of the intended (dynamic)

semantics of the language. Semantics can be defined by means of natural lan-

guage text (informal), by constructing mathematical objects (denotational), by a precise semantic mapping of the abstract syntax concepts to another establish semantic domain (translational), by means of a reference implemen- tation (pragmatic) or by describing how a program is interpreted as sequences through formalisms such as statecharts (operational) (cf. [133]). Today, so- called language workbenches are available which offer convenient creation of abstract syntax, concrete syntax, static semantics, dynamic semantics and corresponding tooling. Examples of such language workbenches are tools like Meta-Environment [134] from the early 1990s or the more recently published Spoofax [125]. Although the grammarware-based approach and its implement- ing tools focus on textual languages, tools for other language formats such as diagrammatic languages also exist today.