Globalizing Domain-Specific Languages


Book Description

The development of modern complex software-intensive systems often involves the use of multiple DSMLs that capture different system aspects. Supporting coordinated use of DSMLs leads to what we call the globalization of modeling languages, that is, the use of multiple modeling languages to support coordinated development of diverse aspects of a system. In this book, a number of articles describe the vision and the way globalized DSMLs currently assist integrated DSML support teams working on systems that span many domains and concerns to determine how their work on a particular aspect influences work on other aspects. Globalized DSMLs offer support for communicating relevant information, and for coordinating development activities and associated technologies within and across teams, in addition to providing support for imposing control over development artifacts produced by multiple teams. DSMLs can be used to support socio-technical coordination by providing the means for stakeholders to bridge the gap between how they perceive a problem and its solution, and the programming technologies used to implement a solution. They also support coordination of work across multiple teams. DSMLs developed in an independent manner to meet the specific needs of domain experts have an associated framework that regulates interactions needed to support collaboration and work coordination across different system domains. The articles in the book describe how multiple heterogeneous modeling languages (or DSMLs) can be related to determine how different aspects of a system influence each other. The book includes a research roadmap that broadens the current DSML research focus beyond the development of independent DSMLs to one that provides support for globalized DSMLs.




Variable Domain-specific Software Languages with DjDSL


Book Description

This book details the conceptual foundations, design and implementation of the domain-specific language (DSL) development system DjDSL. DjDSL facilitates design-decision-making on and implementation of reusable DSL and DSL-product lines, and represents the state-of-the-art in language-based and composition-based DSL development. As such, it unites elements at the crossroads between software-language engineering, model-driven software engineering, and feature-oriented software engineering. The book is divided into six chapters. Chapter 1 (“DSL as Variable Software”) explains the notion of DSL as variable software in greater detail and introduces readers to the idea of software-product line engineering for DSL-based software systems. Chapter 2 (“Variability Support in DSL Development”) sheds light on a number of interrelated dimensions of DSL variability: variable development processes, variable design-decisions, and variability-implementation techniques for DSL. The three subsequent chapters are devoted to the key conceptual and technical contributions of DjDSL: Chapter 3 (“Variable Language Models”) explains how to design and implement the abstract syntax of a DSL in a variable manner. Chapter 4 (“Variable Context Conditions”) then provides the means to refine an abstract syntax (language model) by using composable context conditions (invariants). Next, Chapter 5 (“Variable Textual Syntaxes”) details solutions to implementing variable textual syntaxes for different types of DSL. In closing, Chapter 6 (“A Story of a DSL Family”) shows how to develop a mixed DSL in a step-by-step manner, demonstrating how the previously introduced techniques can be employed in an advanced example of developing a DSL family. The book is intended for readers interested in language-oriented as well as model-driven software development, including software-engineering researchers and advanced software developers alike. An understanding of software-engineering basics (architecture, design, implementation, testing) and software patterns is essential. Readers should especially be familiar with the basics of object-oriented modelling (UML, MOF, Ecore) and programming (e.g., Java).




An Extensible Component & Connector Architecture Description Infrastructure for Multi-Platform Modeling


Book Description

Software engineering for complex systems requires abstraction, multi-domain expertise, separation of concerns, and reuse. Domain experts rarely are software engineers and should formulate solutions using their domain's vocabulary instead of general purpose programming languages (GPLs). Successful integration of domain-specific languages (DSLs) into a software system requires a separation of concerns between domain issues and integration issues while retaining a loose enough coupling to support DSL reuse in different contexts. Component-based software engineering (CBSE) increases reuse and separation of concerns by encapsulating functionalities in components. Components are GPL artifacts, which raises accidental complexities. Model-driven engineering (MDE) abstracts from GPLs by lifting models to primary development artifacts. Models can be abstract and better comprehensible by using domain vocabulary instead of a GPL. They can be platform-independent and translated into GPLs for different target platforms. Component & connector (C&C) architecture description languages (ADLs) combine CBSE and MDE to compose of architectures from component models. We present concepts for engineering software systems with exchangeable component behavior languages. The concepts are realized in a software architecture modeling infrastructure that comprises modeling languages to develop applications based on C&C software architectures with exchangeable component behavior DSLs. It supports transformations from platform-independent to platform-specific software architectures and compositional code generation. With this, it enables domain experts to (re-)use the most appropriate component behavior DSL and facilitates composition of domain solutions through encapsulation in components.







Present and Ulterior Software Engineering


Book Description

This book provides an effective overview of the state-of-the art in software engineering, with a projection of the future of the discipline. It includes 13 papers, written by leading researchers in the respective fields, on important topics like model-driven software development, programming language design, microservices, software reliability, model checking and simulation. The papers are edited and extended versions of the presentations at the PAUSE symposium, which marked the completion of 14 years of work at the Chair of Software Engineering at ETH Zurich. In this inspiring context, some of the greatest minds in the field extensively discussed the past, present and future of software engineering. It guides readers on a voyage of discovery through the discipline of software engineering today, offering unique food for thought for researchers and professionals, and inspiring future research and development.




Advanced Information Systems Engineering Workshops


Book Description

This book constitutes the thoroughly refereed proceedings of six international workshops held in Tallinn, Estonia, in conjunction with the 30th International Conference on Advanced Information Systems Engineering, CAiSE 2018, in June 2018. These workshops were: – The 5th Workshop on Advances in Services DEsign based on the Notion of Capability (ASDENCA) – The 1st Workshop on Business Data Analytics: Techniques and Applications (BDA) – The 1st Workshop on Blockchains for Inter-Organizational Collaboration (BIOC) – The 6thWorkshop on Cognitive Aspects of Information Systems Engineering (COGNISE) – The 2nd Workshop on Enterprise Modeling – The 1st Workshop on Flexible Advanced Information Systems (FAiSE) Two more workshops decided to produce their own, independent proceedings. The 22 full papers presented here were carefully reviewed and selected from a total of 49 submissions.




Information and Software Technologies


Book Description

This book constitutes the refereed proceedings of the 22nd International Conference on Information and Software Technologies, ICIST 2016, held in Druskininkai, Lithuania, in October 2016. The 61 papers presented were carefully reviewed and selected from 158 submissions. The papers are organized in topical sections on information systems; business intelligence for information and software systems; software engineering; information technology applications.




Software Languages


Book Description

This book identifies, defines and illustrates the fundamental concepts and engineering techniques relevant to applications of software languages in software development. It presents software languages primarily from a software engineering perspective, i.e., it addresses how to parse, analyze, transform, generate, format, and otherwise process software artifacts in different software languages, as they appear in software development. To this end, it covers a wide range of software languages – most notably programming languages, domain-specific languages, modeling languages, exchange formats, and specifically also language definition languages. Further, different languages are leveraged to illustrate software language engineering concepts and techniques. The functional programming language Haskell dominates the book, while the mainstream programming languages Python and Java are additionally used for illustration. By doing this, the book collects and organizes scattered knowledge from software language engineering, focusing on application areas such as software analysis (software reverse engineering), software transformation (software re-engineering), software composition (modularity), and domain-specific languages. It is designed as a textbook for independent study as well as for bachelor’s (advanced level) or master’s university courses in Computer Science. An additional website provides complementary material, for example, lecture slides and videos. This book is a valuable resource for anyone wanting to understand the fundamental concepts and important engineering principles underlying software languages, allowing them to acquire much of the operational intelligence needed for dealing with software languages in software development practice. This is an important skill set for software engineers, as languages are increasingly permeating software development.




Enterprise, Business-Process and Information Systems Modeling


Book Description

This book contains the refereed proceedings of two long-running events held along with the CAiSE conference relating to the areas of enterprise, business-process and information systems modeling: * the 23rd International Conference on Business Process Modeling, Development and Support, BPMDS 2022, and * the 27th International Conference on Exploring Modeling Methods for Systems Analysis and Development, EMMSAD 2022. The conferences were taking place in Leuven, Belgium during June 6-7, 2022. For BPMDS 7 full papers and 2 short papers were carefully reviewed and selected for publication from a total of 18 submissions; for EMMSAD 11 full papers and 3 short papers were accepted from 30 submissions after thorough reviews. The papers were organized in topical sections as follows: BPMDS: Actual and perceived challenges; business process modeling; understanding collaboration: one issue, many perspectives; and event logs – why it derivates; EMMSAD: Foundations of modeling and method engineering; enterprise, business process, and capability modeling; information systems and requirements modeling; domain-specific and knowledge modeling; and evaluation of modeling approaches.




The Essence of Software Engineering


Book Description

This open access book includes contributions by leading researchers and industry thought leaders on various topics related to the essence of software engineering and their application in industrial projects. It offers a broad overview of research findings dealing with current practical software engineering issues and also pointers to potential future developments. Celebrating the 20th anniversary of adesso AG, adesso gathered some of the pioneers of software engineering including Manfred Broy, Ivar Jacobson and Carlo Ghezzi at a special symposium, where they presented their thoughts about latest software engineering research and which are part of this book. This way it offers readers a concise overview of the essence of software engineering, providing valuable insights into the latest methodological research findings and adesso’s experience applying these results in real-world projects.