Elsevier

Computer Networks

Volume 49, Issue 5, 5 December 2005, Pages 676-688
Computer Networks

Tool-based language development

https://doi.org/10.1016/j.comnet.2005.05.004Get rights and content

Abstract

This paper shows how to tackle the problem of ever larger languages and the problem of combining multiple languages. The central idea is to build a foundation for language definitions that uses a metamodel-driven approach with support of language engineering tools. Thus development and further evolution of languages will be transformed from the traditional paper- and -pen style into an engineering activity. This allows an early detection of problems within the language definition and increases the reliability of the language and the supporting tools.

Introduction

Developing high quality software in a cost effective manner is crucial for the competitiveness of software industry, and it continues to be a technological challenge. Today, a diversity of languages and notations is used, depending on the development phase and the viewpoints to be expressed. However, the use of several notations in the same project often leads to ambiguities and inconsistencies, jeopardizing the overall success of the project. To overcome this problem and to achieve the full benefit of the languages, they have to be integrated both syntactically and semantically.

An additional problem arises from the complexity of single languages. A monolithic style of a language definition (in SDL-2000 [1] for example), not only makes it hard for the user to fully understand and apply the language, but also aggravates the development of supporting tools. Five years after the finalization of the SDL-2000 Recommendation there is still not one tool available that fully supports SDL-2000. A hierarchical language definition is a promising way forward. It has to consist of a language core and a series of enhancing building blocks, accompanied with a clear list of compliance points that integrate the single part syntactically and semantically.

The development of SDL-2000—especially with the definition of the formal semantics—has already shown that it is possible and feasible to use software engineering tools in language development. This leads to a smaller number of errors and inconsistencies in the language standard and results in a prototypical set of tools that support this language.

Moreover, there is a trend towards languages that are tailored for special problem domains, and there is also the trend to integrate different languages. In the OMG (Object Management Group) context this is done by using the extension mechanisms of UML [2]; this is either the definition of UML profiles or the definition of new MOF (Meta Object Facility) based metamodels [3]. Tools that support the definition and application of this kind of language are largely missing.

It has been shown that it is possible to combine languages whose grammar is primarily based on a (context-free) syntax with languages that are based on metamodels [4]. But in general this requires a considerable amount of work in comparison with purely metamodel based languages, where very generic solutions can be achieved. To overcome this problem a transformation of the grammar based definition into a metamodel is necessary. In [5] an approach is given, in which an automatic generation of a initial metamodel from a grammar is combined with semi-automatic model transformations and manual refinements.

Until today, most approaches for integration of languages are tailored to two concrete languages (such as SDL and MSC, SDL and ASN.1), and they are not reusable. If the integration of another language is required, many steps of the previously done, work, have to be repeated. Therefore we propose a general framework for a metamodel based integration of languages.

This general framework is the key to the integration of different languages and their building blocks. It will allow the definition of languages on all modelling and metamodelling levels, including a proper exchange format for models. This implies also that languages are defined in a modular fashion, including proper interfaces. A language core, defined in such a way, can be extended in different ways, and thus cover further and more language specific concepts; it is sufficiently flexible to support future language add-ins.

Ultimately, the availability of a common semantic middleware with the possibility of modular language description paves the way for a new methodology of language design: Languages can be customized from a set of building blocks on a case by case basis, depending, for instance, on the application context and the preferences of the system developer.

We will implement this strategy within the SMILE1 project. Our SMILE project targets all levels of the OMG four-layer metamodel architecture; it uses a common basic representation on all levels. This representation is called FORM after its main construct Form.2 This lays the ground for executable UML with “metadata facilities” and makes it possible to specify how two neighbouring levels fit together.

In order to integrate our approach with traditional grammar based language definitions of SDL and other ITU languages, we developed supporting tools that transform them into a metamodel based definition. This is accompanied by a proposal for the hierarchical division of a language into a core language and building blocks of enhanced features. Such a solution does not only help to manage the complexity of the language itself, but it also supports the development of dedicated tools.

Different solutions for the combination of the language core with the enhancement building blocks are shown. These are not only applicable for the definition of a single language but also for the combination with other languages.

This paper is structured as follows: Section 2 gives an introduction into metamodelling and MDA, as well as into the combination of models. Afterwards we give a short description of the SMILE project to show how it solves the integration problems. We discuss the first steps made in Section 4, namely the basic FORM representation and the transformation of a grammar based language definition into a metamodel. In Section 5, we provide a deeper discussion of approaches for the combination and integration of different languages. Finally, we give some conclusions in Section 6.

Section snippets

Metamodelling

In many industrial sectors, the development of high quality software systems in a cost effective manner requires mixing various specification techniques, reusing existing software artefacts, and capitalising on existing know-how. This reality is addressed by the Object Management Group with the Model Driven Architecture (MDA). This architecture is an approach to the full life cycle integration and interoperability of enterprise systems, comprised of software, hardware, humans, and business

The SMILE project

The central objective of the SMILE project is to create a semantic metamodelling framework that allows the definition and integration of computer languages. Included in this project are also concrete integrated language definitions for system design languages such as UML, SDL, and SystemC. Another area of language definition will be knowledge representation and its reasoning in the Web context: one example is Topic Maps, but also other languages might be defined and installed as language

First steps

In this section we want to explain the first achievements, we have made in the SMILE project. We will first describe our basic FORM representation, which can be used on all metamodelling levels. Afterwards, we describe how to transform a grammar-based language description into a metamodel based language definition.

Combination of modelling languages

In [4] three general types of model combination and combination of modelling languages within the software engineering process have been identified:

  • Process driven combination: Models of one design phase or activity serve as starting point for the next phase or activity and different modelling languages are used for the activities or phases. The models are ordered chronologically, i.e., they are not used at the same time.

  • Abstraction driven combination: The single models describe the system

Conclusions and further work

This article outlines the feasibility of an engineering approach to language development. In the same way as software, languages can be developed in a stepwise and iterative process too, a process, where the current state can be checked by using appropriate tools. Most of the tools necessary for this are already in place for grammar-based language definitions.

We propose to transfer this expertise to the metamodel world and to keep the same level of executability and tool support. In addition,

Joachim Fischer received his Master’s degree (1997) and Ph.D. in 1982 at the Humboldt-Universität in Berlin. His working area was combined systems modelling using discrete events and time-continuous state changes. After a post graduate study at the University of Warsaw he published his second thesis in the area of rapid prototyping of distributed systems in 1988. In 1994 he was appointed as a professor for Modelling and Computer Simulation at Humboldt-Universität in Berlin. His current working

References (13)

  • ITU-T Recommendation Z.100 (11/99), Languages for telecommunications applications, Specification and Description...
  • OMG Editor, OMG Unified Modeling Language Specification, Version 2.0. OMG Document, OMG. Available from:...
  • OMG Editor, Revised Submission to OMG RFP ad/2003-04-07: Meta Object Facility (MOF) 2.0 Core Proposal. OMG Document,...
  • E. Holz

    Kombination von Modellierungstechniken für den Softwareentwurf

    (2004)
  • J. Fischer et al.

    A metamodel for SDL-2000 in the context of metamodelling ULF

  • U. Glässer et al.

    The formal semantics of SDL-2000-status and perspectives

    Computer Networks

    (2003)
There are more references available in the full text version of this article.

Cited by (1)

  • A model-based standard for SDL

    2007, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

Joachim Fischer received his Master’s degree (1997) and Ph.D. in 1982 at the Humboldt-Universität in Berlin. His working area was combined systems modelling using discrete events and time-continuous state changes. After a post graduate study at the University of Warsaw he published his second thesis in the area of rapid prototyping of distributed systems in 1988. In 1994 he was appointed as a professor for Modelling and Computer Simulation at Humboldt-Universität in Berlin. His current working area is characterized by development of tool-supported description and design techniques for complex distributed systems and their application in different application domains. He is the author of several books on modelling and simulation. He is a member of the SDL-Forum, and the ASIM (German Simulation Society).

Eckhardt Holz currently chairs the research group Software Technology and Quality Management at the Hasso-Plattner Institute in Potsdam. After studying mathematics and computer science at Humboldt-Universität in Berlin he received his Diploma in mathematics in 1988 and his Ph.D. in Computer Science in 1991. From 1991 to 1992 he worked as a postdoctoral fellow at the International Computer Science Institute (ICSI) in Berkeley, USA. After that he rejoined Humboldt-Universität zu Berlin as a research scientist, and from 2001 until 2003 he was a guest professor in the Department of Systems Architecture. His major research interests are software engineering technologies and model based development techniques. He has also a strong interest in modelling languages and supporting tools. Dr. Holz has been involved in a series of research and development projects with academic and industrial partners, especially in telecommunications.

Andreas Prinz was appointed as a professor for Systems Development at HIA in 2003. He studied mathematics and computer science at the Humboldt-Universität in Berlin and received his M.Sc. in mathematics (1988) and Ph.D. (1990) in computer science there. From 1990 until 1993 he was a post-doctoral fellow at the Humboldt-Universität in Berlin. From 1993 to 1994 he worked at the Software Verification Research Centre (SVRC) in Brisbane, Australia. From 1994 to 1997 he again worked at the Humboldt-Universität in Berlin. From 1997 to 2003 he worked with DResearch GmbH, a company in Berlin. His research interests include formal methods together with their application and use in tools. He has also a strong interest in software technology and compiler construction. He has worked in several projects dealing with the development of modern telecommunication systems using advanced technology.

Markus Scheidgen is a postgraduate at the System Analysis Lab at the Humboldt-Universität in Berlin. He has experience in various fields of computer science; for example in content management systems, the implementation of telecommunication protocols using ITU-T languages, and ad-hoc wireless network protocol development and analysis. He wrote his graduation thesis about automated metamodel construction for grammar based languages. At the moment he is examining the possibilities to use common object-oriented metamodels as a shared bases for the definition of high-level modelling languages, the development of language tools, and compiler construction.

View full text