46 research outputs found
Generating graphical and projectional editors
En ingénierie dirigée par les modèles, les langages spécifiques au domaine (DSL) offrent des
notations adaptées à un domaine précis pour représenter ses différents concepts. De nombreux
outils permettent la définition de DSLs en explicitant les relations entre un concept et
ses représentations. En fonction de la sémantique du domaine, l’ingénieur du langage peut
choisir entre des notations textuelles ou graphiques. Les langages de modélisation graphique
nécessitent une gestion de la position, la taille et la disposition des éléments visuels afin de
maximiser leur expressivité visuelle. La plupart des éditeurs de modélisation manquent de
support automatique pour gérer ces propriétés de la syntaxe concrète. Les éditeurs projectionnels
permettent aux utilisateurs de se concentrer sur la conception de leur modèle en
limitant les modifications de la syntaxe concrète. Cependant, bien qu’ils offrent de multiples
notations, ces éditeurs ne permettent pas la création de langage graphique. Dans
ce mémoire, nous proposons une nouvelle approche pour concevoir des éditeurs graphiques
et projectionnels. Nous avons créé une extension d’un éditeur projectionnel orienté vers le
web, Gentleman, qui nous a permis d’extraire différentes exigences. Au cours du mémoire,
nous décrivons leurs impacts sur les projections et proposons des lignes directrices ainsi
que des exemples d’implémentation. Comme l’édition projectionnelle demande une gestion
spécifique de l’interaction, nous présentons différentes approches pour interagir avec les représentations
graphiques utilisant les nouvelles informations disponibles dans les projections.
Étant donné que la plupart des exigences se concentrent sur la disposition des projections,
nous avons défini plusieurs algorithmes simples de disposition qui couvrent une large gamme
de structures pouvant être retrouvées dans un éditeur graphique. Enfin, afin d’évaluer cette
approche, nous avons exploré la génération de trois éditeurs graphiques et projectionnels
pour différents domaines: les machines d’états, les diagrammes de séquences et les partitions
de musique.In model-driven engineering, domain specific-languages (DSL) provide tailored notations towards
a specific problem domain to represent its different concepts. Multiple tools allow the
definition of DSL by specifying the relations between a concept and its representations. Depending
on the semantics of the domain, the language engineer can choose between textual or
graphical notations. Graphical modeling languages require proper management of position,
size, and layout to maximize their visual expressiveness. Most modeling editors lack automated
support to manage these graphical concrete syntax properties. It is a time-consuming
effort that affects the understandability of the model. Projectional editors prevent end-users
from modifying the concrete syntax so they can focus on the modeling task. However, while
they offer multiple notations, these editors lack support for graphical languages. During this
thesis, we propose a new approach to design graphical and projectional editors. We created
an extension of a web-oriented projectional editor, Gentleman, that allowed us to extract
different requirements. During the thesis, we describe their impact on the projections and
propose guidelines and examples of implementation. Because projectional editing requires
specific management of the interaction, we present multiple approaches to interact with the
graphical representations, using the new information available in the graphics. Since most
of the requirements were focusing on the disposition of the projection, we define multiple
simple layout algorithms that cover a large range of structures that can be found in a graphical
editor. Finally, we explore the generation of three graphical and projectional editors for
different domains: statecharts, sequence diagrams, and music sheet
The State of the Art in Language Workbenches. Conclusions from the Language Workbench Challenge
Language workbenches are tools that provide high-level mechanisms for the implementation of (domain-specific) languages. Language workbenches are an active area of research that also receives many contributions from industry. To compare and discuss existing language workbenches, the annual Language Workbench Challenge was launched in 2011. Each year, participants are challenged to realize a given domain-specific language with their workbenches as a basis for discussion and comparison. In this paper, we describe the state of the art of language workbenches as observed in the previous editions of the Language Workbench Challenge. In particular, we capture the design space of language workbenches in a feature model and show where in this design space the participants of the 2013 Language Workbench Challenge reside. We compare these workbenches based on a DSL for questionnaires that was realized in all workbenches
Semi-Automatische Deduktion von Feature-Lokalisierung während der Softwareentwicklung: Masterarbeit
Despite extensive research on software product lines in the last decades, ad-hoc clone-and-own development is still the dominant way for introducing variability to software systems. Therefore, the same issues for which software product lines were developed in the first place are still imminent in clone-and-own development: Fixing bugs consistently throughout clones and avoiding duplicate implementation effort is extremely diffcult as similarities and differences between variants are unknown.
In order to remedy this, we enhance clone-and-own development with techniques from product-line engineering for targeted variant synchronisation such that domain knowledge can be integrated stepwise and without obligation. Contrary to retroactive feature mapping recovery (e.g., mining) techniques, we infer feature-to-code mappings directly during software development when concrete domain knowledge is present.
In this thesis, we focus on the first step towards targeted synchronisation between variants: the recording of feature mappings. By letting developers specify on which feature they are working on, we derive feature mappings directly during software development. We ensure syntactic validity of feature mappings and variant synchronisation by implementing disciplined annotations through abstract syntax trees. To bridge the mismatch between change classification in the implementation and abstract layer, we synthesise semantic edits on abstract syntax trees. We show that our derivation can be used to reproduce variability-related real-world code changes and compare it to the feature mapping derivation of the projectional variation control system VTS by Stanciulescu et al.Trotz umfangreicher Forschung zu Software-Produktlinien in den letzten Jahrzehnten ist Clone-and-Own immer noch der dominierende Ansatz zur Einführung von Variabilität in Softwaresystemen. Daher stehen bei Clone-and-Own immer noch die gleichen Probleme im Vordergrund, für die Software-Produktlinien überhaupt erst entwickelt wurden: Die konsistente Behebung von Fehlern in allen Klonen und die Vermeidung von doppeltem Implementierungsaufwand sind äußerst schwierig, da Ähnlichkeiten und Unterschiede zwischen den Varianten unbekannt sind.
Um hier Abhilfe zu schaffen, erweitern wir die Clone-and-Own-Entwicklung mit Techniken aus der Produktlinien-Entwicklung zur gezielten Synchronisierung von Varianten, sodass Entwickler ihr Domänenwissen schrittweise und unverbindlich integrieren können. Im Gegensatz zu nachträglich arbeitenden Feature-Mapping-Recovery- oder auch Mining-Techniken, leiten wir Zuordungen von Features zu Quellcode direkt während der Softwareentwicklung ab, wenn konkretes Domänenwissen vorhanden ist.
In dieser Arbeit entwickeln wir den ersten Schritt zur gezielten Synchronisation von Varianten: die Aufzeichnung von Feature-Mappings. Indem Entwickler spezifizieren an welchem Feature sie arbeiten, leiten wir Feature-Mappings direkt während der Softwareentwicklung ab. Wir stellen die syntaktische Korrektheit von Feature-Mappings und der Synchronisation von Varianten sicher, indem wir disziplinierte Annotationen mithilfe von abstrakten Syntaxbäumen implementieren. Um die Diskrepanz der Klassifizierung von Änderungen zwischen der Implementierungs- und der Abstraktionsschicht zu überbrücken, synthetisieren wir Semantic Edits auf abstrakten Syntaxbäumen. Wir zeigen, dass unsere Ableitung von Feature-Mappings in der Lage ist reale Codeänderungen zu reproduzieren und vergleichen sie mit der Feature-Mapping-Ableitung des Variationskontrollsystems VTS von Stanciulescu et al
Effects of variability in models: a family of experiments
The ever-growing need for customization creates a need to maintain software systems in many different variants. To avoid having to maintain different copies of the same model, developers of modeling languages and tools have recently started to provide implementation techniques for such variant-rich systems, notably variability mechanisms, which support implementing the differences between model variants. Available mechanisms either follow the annotative or the compositional paradigm, each of which have dedicated benefits and drawbacks. Currently, language and tool designers select the used variability mechanism often solely based on intuition. A better empirical understanding of the comprehension of variability mechanisms would help them in improving support for effective modeling. In this article, we present an empirical assessment of annotative and compositional variability mechanisms for three popular types of models. We report and discuss findings from a family of three experiments with 164 participants in total, in which we studied the impact of different variability mechanisms during model comprehension tasks. We experimented with three model types commonly found in modeling languages: class diagrams, state machine diagrams, and activity diagrams. We find that, in two out of three experiments, annotative technique lead to better developer performance. Use of the compositional mechanism correlated with impaired performance. For all three considered tasks, the annotative mechanism was preferred over the compositional one in all experiments. We present actionable recommendations concerning support of flexible, tasks-specific solutions, and the transfer of established best practices from the code domain to models
Modeling of Movement Control Architectures based on Motion Primitives using Domain-Specific Languages
Nordmann A, Wrede S, Steil JJ. Modeling of Movement Control Architectures based on Motion Primitives using Domain-Specific Languages. Presented at the Int. Conf. on Robotics and Automation
Modeling of motion primitive architectures using domain-specific languages
Nordmann A. Modeling of motion primitive architectures using domain-specific languages. Bielefeld: Universität Bielefeld; 2016