Skip to main content

2013 | Buch

Domain Engineering

Product Lines, Languages, and Conceptual Models

herausgegeben von: Iris Reinhartz-Berger, Arnon Sturm, Tony Clark, Sholom Cohen, Jorn Bettin

Verlag: Springer Berlin Heidelberg

insite
SUCHEN

Über dieses Buch

Domain engineering is a set of activities intended to develop, maintain, and manage the creation and evolution of an area of knowledge suitable for processing by a range of software systems. It is of considerable practical significance, as it provides methods and techniques that help reduce time-to-market, development costs, and project risks on one hand, and helps improve system quality and performance on a consistent basis on the other.

In this book, the editors present a collection of invited chapters from various fields related to domain engineering. The individual chapters present state-of-the-art research and are organized in three parts. The first part focuses on results that deal with domain engineering in software product lines. The second part describes how domain-specific languages are used to support the construction and deployment of domains. Finally, the third part presents contributions dealing with domain engineering within the field of conceptual modeling.

All chapters utilize a similar terminology, which will help readers to understand and relate to the chapters content. The book will be especially rewarding for researchers and students of software engineering methodologies in general and of domain engineering and its related fields in particular, as it contains the most comprehensive and up-to-date information on this topic.

Inhaltsverzeichnis

Frontmatter

Software Product Line Engineering (SPLE)

Frontmatter
Separating Concerns in Feature Models: Retrospective and Support for Multi-Views
Abstract
Feature models (FMs) are a popular formalism to describe the commonality and variability of a set of assets in a software product line (SPL). SPLs usually involve large and complex FMs that describe thousands of features whose legal combinations are governed by many and often complex rules. The size and complexity of these models is partly explained by the large number of concerns considered by SPL practitioners when managing and configuring FMs. In this chapter, we first survey concerns and their separation in FMs, highlighting the need for more modular and scalable techniques. We then revisit the concept of view as a simplified representation of an FM. We finally describe a set of techniques to specify, visualise and verify the coverage of a set of views. These techniques are implemented in complementary tools providing practical support for feature-based configuration and large-scale management of FMs.
Arnaud Hubaux, Mathieu Acher, Thein Than Tun, Patrick Heymans, Philippe Collet, Philippe Lahire
A Survey of Feature Location Techniques
Abstract
Feature location techniques aim at locating software artifacts that implement a specific program functionality, a.k.a. a feature. These techniques support developers during various activities such as software maintenance, aspect- or feature-oriented refactoring, and others. For example, detecting artifacts that correspond to product line features can assist the transition from unstructured to systematic reuse approaches promoted by software product line engineering (SPLE). Managing features, as well as the traceability between these features and the artifacts that implement them, is an essential task of the SPLE domain engineering phase, during which the product line resources are specified, designed, and implemented. In this chapter, we provide an overview of existing feature location techniques. We describe their implementation strategies and exemplify the techniques on a realistic use-case. We also discuss their properties, strengths, and weaknesses and provide guidelines that can be used by practitioners when deciding which feature location technique to choose. Our survey shows that none of the existing feature location techniques are designed to consider families of related products and only treat different products of a product line as individual, unrelated entities. We thus discuss possible directions for leveraging SPLE architectures in order to improve the feature location process.
Julia Rubin, Marsha Chechik
Modeling Real-Time Design Patterns with the UML-RTDP Profile
Abstract
The use of design patterns in the real-time (RT) domain could bring many benefits. RT design patterns capture domain knowledge and design expertise. They improve the quality of RT software. These patterns contain a set of common elements and a set of variable elements known as variation points. Yet one of the main difficulties for representing RT design patterns is variability management. Thus, many questions arise: how to express variations? How to ensure the consistency of various views and avoid conflicts?
In order to express the variability in an RT design pattern and to reinforce its comprehension, it is necessary to define a design language that aims to model RT features and to distinguish the commonalities and differences between different RT applications involving time-constrained data and time-constrained transactions. Accordingly, we present in this chapter new UML extensions that take into account the design of both RT-specific concepts and variability in patterns. The coherence between the proposed extensions is then ensured by OCL (object constraint language) constraints. Finally, the UML extensions are illustrated using an example of a controller pattern.
Saoussen Rekhis, Nadia Bouassida, Rafik Bouaziz, Claude Duvallet, Bruno Sadeg
When Aspect-Orientation Meets Software Product Line Engineering
Abstract
Aspect-oriented software development (AOSD) and software product line engineering (SPLE) are two approaches for software reuse, which promote model-driven development and variability management. While AOSD supports developing crosscutting concerns separately from traditional units and weaving them to different software products, software product line engineering (SPLE) handles the development and maintenance of families of software products utilizing different domain and application engineering techniques. In this chapter, we review the existing points of synergy between these two approaches and, in particular, the complementary and aggregative use of these approaches. Furthermore, we present a method that uses aspect-oriented principles for horizontal reuse and domain engineering guidelines for vertical reuse. We term this kind of use dimensional synergy. The presented method supports defining families of aspects and their weaving rules applied to families of software products, potentially increasing the reuse throughout the entire development life cycle. We exemplify the method on a Check-In check-Out product line and a family of security aspects, utilizing UML 2 class and sequence diagrams.
Iris Reinhartz-Berger
Utilizing Application Frameworks: A Domain Engineering Approach
Abstract
Application frameworks aim to provide coherent code to be used and reused. The primary benefits of application frameworks stem from the modularity, reusability, extensibility, and inversion of control they provide to developers. Yet, as these frameworks become more extensive and complex, their usage becomes a burden and requires further effort. In this chapter we adopt the Application-based DOmain Modeling (ADOM), a domain engineering approach offering guidance and validation for developers when using existing knowledge, as in the case of application frameworks. The approach is adopted in the context of a programming language and demonstrated with the use of Java and is thus denoted as ADOM-JAVA. The approach preserves the regular development environment and requires minimal adaptation for using the proposed approach. We also demonstrate the use of ADOM-JAVA as a vehicle for defining and using domain-specific languages. Finally, we evaluate the use of ADOM when applied to a Java-based development. Following the guidance and validation capabilities provided by the proposed approach, the experiment shows that the productivity of the developers in terms of time and quality is expected to increase.
Arnon Sturm, Oded Kramer

Domain-Specific Language Engineering (DSLE)

Frontmatter
Domain-Specific Modeling Languages: Requirements Analysis and Design Guidelines
Abstract
In recent years, the development of domain-specific modeling languages has gained remarkable attention. This is for good reasons. A domain-specific modeling language incorporates concepts that represent domain-level knowledge. Hence, systems analysts are not forced to reconstruct these concepts from scratch. At the same time, domain-specific modeling languages contribute to model integrity, because they include already constraints that would otherwise have to be added manually. Even though there has been a considerable amount of research on developing and using domain-specific modeling languages, there is still lack of comprehensive methods to guide the design of these languages. With respect to the complexity and risk related to developing a domain-specific modeling language, this is a serious shortfall. This chapter is aimed at a contribution to filling the gap. At first, it presents guidelines for selecting a metamodeling language. Its main focus is on supporting the process from analyzing requirements to specifying and evaluating a domain-specific modeling language.
Ulrich Frank
Domain-Specific Languages and Standardization: Friends or Foes?
Abstract
Domain-specific languages (DSLs) capture the domain knowledge through the constructs of the language, but making a good language takes more than combining a set of domain concepts in some random fashion. Creating a good language requires knowledge not only from the domain but also from the domain of language design. Generic abstraction concepts turn out to be useful for many different domains and thus for DSLs. In this chapter we discuss how DSLs can benefit from standardized generic languages to cope with abstraction needs. A successful combination will keep the DSL simple and its implementation maintainable while the generic language will add expressiveness and structuring means. We give examples of DSLs as well as general ones and use the examples to illustrate our advice on how to make a good language. We share experiences of language evolution and finally show an example of combining a generic language for variability with a DSL for train signaling.
Øystein Haugen
Domain Engineering for Software Tools
Abstract
General purpose software engineering tools are expensive to develop and maintain, and often difficult to learn and use. Domain-specific tools tend to be small, focussed and easier to learn; however, domain-specific tooling tends to be technology specific and therefore introduces interoperability problems. This chapter provides a contribution to DSL tool development by describing a language-driven approach to domain engineering whereby a tool is modelled in terms of the syntax and semantics of the language it supports. This chapter uses UML to define a simple class modelling language and its tooling.
Tony Clark, Balbir S. Barn
Modeling a Model Transformation Language
Abstract
Domain-specific modeling techniques can reduce the gap between the problem space and the solution space by using abstractions and notations that represent domain concepts. The fact that only familiar concepts and notations are used in the model allows domain experts to understand and be involved directly in design. The resulting artifacts of this process are models and transformations. There are well-known techniques for developing modeling languages (e.g., meta-modeling and synthesis of modeling environments); however, there is currently no well-defined technique for engineering model transformation languages (MTLs). This chapter introduces a language engineering technique for building MTLs that is based on treating each MTL as a domain-specific language, more specifically, as languages for describing specific classes of transformations. In this approach, all the components of an MTL are modeled explicitly at the proper level of abstraction using the most appropriate formalisms. Consequently, this facilitates the automatic synthesis of MTL development environments and supports the evolution of model transformations, which assists domain experts in designing models and transformations in an integrated and uniform manner.
Eugene Syriani, Jeff Gray, Hans Vangheluwe
A Reconciliation Framework to Support Cooperative Work with DSM
Abstract
Despite the fact that domain specific models (DSM) tools become very powerful and more frequently used, the support for their cooperation has not reached its full strength and the demand for model management is growing. In cooperative work, the decision agents are semi-autonomous and therefore a solution for reconciliating DSM after a concurrent evolution is needed. Computer supported cooperative work (CSCW) community proposes tools or techniques to ensure collaboration among general purpose modeling languages, but they do not usually give functionalities to support reconciliation and merging for asynchronous modifications. In addition, management of communications among members of a working group could also help to facilitate their collaboration. In this chapter, we propose a communication framework called DiCoMEF to manage exchanges of concurrently edited DSM models among a group of engineers. Besides, we present a reconciliation framework to merge concurrently evolved DSM models along with their metamodels.
Amanuel Alemayehu Koshima, Vincent Englebert, Philippe Thiran

Conceptual Modeling

Frontmatter
Model Oriented Domain Analysis and Engineering
Abstract
Model oriented domain analysis and engineering (MODA & MODE) is a methodology for value chain analysis and domain engineering that can be used to uncover and formalize the knowledge that is inherent in any software intensive business or any scientific discipline. The target audience consists of domain experts in any line of business or field of scientific endeavour and is not limited to software development professionals. This broad target audience and strong terminological conformance with model theory distinguish MODA & MODE from classical software product line engineering approaches. Whilst the components of the methodology that are concerned with domain analysis can be applied without the help of any sophisticated software tools, the domain engineering components of the methodology are best performed with the help of a dedicated software tool. The MODA & MODE approaches have a track record in industrial practice that extends back to 1994, with roots in software product line engineering and conceptual modelling. The concepts and techniques of the approach have been refined, simplified and aligned with established mathematical theories, systems theory, and empirical research into human psychology, enabling new forms of inter-disciplinary collaboration between domain experts. This chapter provides an overview of MODA & MODE, and it also traces the most important concepts and techniques back to their origins.
Jorn Bettin
Multi-Level Meta-Modelling to Underpin the Abstract and Concrete Syntax for Domain-Specific Modelling Languages
Abstract
A domain-specific modelling language can be considered as a situationally focussed conceptual modelling language. A modelling language is typically underpinned by a meta-model that defines its abstract syntax, utilizes a notation (a.k.a. concrete syntax) and possesses a well-defined semantics, sometimes with an associated ontology. However, the relationships between models, meta-models, modelling languages and ontologies are not well defined in the literature. In particular, the implications of the strict meta-modelling paradigm fostered by the OMG in relation to the type/instance duality are often described in a vague and equivocal fashion. This chapter provides a solid theoretical foundation for the construction of domain-specific modelling languages that can help define both the abstract and concrete syntax aspects. Two example languages are described: ISO/IEC 24744 (Software Engineering Meta-model for Development Methodologies), a language that can be used to define software-intensive development methods; and FAML (FAME Agent-oriented Modelling Language), a language for the specification of agent-oriented software systems.
Brian Henderson-Sellers, Cesar Gonzalez-Perez
Ontology-Based Evaluation and Design of Visual Conceptual Modeling Languages
Abstract
In this chapter, we present a framework for the evaluation and (re)design of modeling languages. In our approach, this property can be systematically evaluated by comparing a concrete representation of the worldview underlying the language (captured in the language’s meta-model), with an explicit and formal representation of a conceptualization of that domain (a reference ontology). Moreover, we elaborate on formal characterizations for the notions of reference ontology, conceptualization and meta-model, as well as on the relations between them. By doing this, we can also formally define the relation between the state of affairs in reality deemed possible by an ontology and the grammatical models admitted by a modeling language. The precise characterization of this relation allows for a systematic improvement of a modeling language by incorporating ontological axioms as grammatical constraints in the language’s meta-model. Furthermore, we demonstrate how an approach based on visual simulation could be used to assess this relation, i.e., to evaluate the distance between the valid models of a language and the intended models according to the underlying conceptualization. Finally, we demonstrate how the use of a system of formal ontological properties can be systematically exploited in the design of pragmatically efficient domain-specific visual languages.
Giancarlo Guizzardi
Automating the Interoperability of Conceptual Models in Specific Development Domains
Abstract
An increasing number of modeling approaches for representing concepts related to a wide variety of domains can be clearly observed in software engineering. In this context, the definition of sound interoperability mechanisms to reuse knowledge and share ideas among existing conceptual models, and also apply them into concrete development processes, is an important challenge to be faced. Thus, different modeling approaches, tools, and standards can be integrated and coordinated to reduce the implementation and learning time of development processes as well as to improve the quality of the final software products. However, there is a lack of approaches to support automatic interoperability among modeling approaches. For tackling this situation, this chapter presents an interoperability approach focused on the characterization of different modeling approaches in a common software development domain. For putting in practice and automate the interoperability the approach proposed, existing modeling technologies and standards are considered. All these elements comprise a reference interoperability model, which can be used to implement specific interoperability solutions.
Oscar Pastor, Giovanni Giachetti, Beatriz Marín, Francisco Valverde
Domain and Model Driven Geographic Database Design
Abstract
After many years of research in the field of conceptual modeling of geographic databases for Geographic Information Systems, experts have produced many different alternatives of conceptual data models from extensions of the Entity-Relationship model or of Unified Modeling Language (UML). However, the lack of consensus on which is the most suitable one for modeling applications in the geographical domain brings up a number of problems for field advancement, mainly problems of interoperability of database design and CASE tools. The Model Driven Architecture (MDA) approach allows the development of systems from an abstract view until the corresponding implementation code that can be automatized by means of models transformation. A UML Profile is an extension mechanism of UML which allows a structured and precise extension of its constructors, being a good solution to standardize domain-specific modeling, as it uses the entire UML infrastructure. This chapter describes the use of MDA approach in the design of databases in geographical domain; using a UML Profile called GeoProfile aligned with international standards of ISO 191xx series. The chapter also shows that with the automatic transformation of models it is possible to achieve the generation of scripts for spatial databases from a conceptual data schema in a high level of abstraction.
Jugurta Lisboa-Filho, Filipe Ribeiro Nalon, Douglas Alves Peixoto, Gustavo Breder Sampaio, Karla Albuquerque de Vasconcelos Borges
Backmatter
Metadaten
Titel
Domain Engineering
herausgegeben von
Iris Reinhartz-Berger
Arnon Sturm
Tony Clark
Sholom Cohen
Jorn Bettin
Copyright-Jahr
2013
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-642-36654-3
Print ISBN
978-3-642-36653-6
DOI
https://doi.org/10.1007/978-3-642-36654-3

Premium Partner