8 research outputs found
Towards Automatic Support of Software Model Evolution with Large Language~Models
Modeling structure and behavior of software systems plays a crucial role, in
various areas of software engineering. As with other software engineering
artifacts, software models are subject to evolution. Supporting modelers in
evolving models by model completion facilities and providing high-level edit
operations such as frequently occurring editing patterns is still an open
problem. Recently, large language models (i.e., generative neural networks)
have garnered significant attention in various research areas, including
software engineering. In this paper, we explore the potential of large language
models in supporting the evolution of software models in software engineering.
We propose an approach that utilizes large language models for model completion
and discovering editing patterns in model histories of software systems.
Through controlled experiments using simulated model repositories, we conduct
an evaluation of the potential of large language models for these two tasks. We
have found that large language models are indeed a promising technology for
supporting software model evolution, and that it is worth investigating further
in the area of software model evolution
Mining domain-specific edit operations from model repositories with applications to semantic lifting of model differences and change profiling
Model transformations are central to model-driven software development. Applications of model transformations include creating models, handling model co-evolution, model merging, and understanding model evolution. In the past, various (semi-)
automatic approaches to derive model transformations from meta-models or from
examples have been proposed. These approaches require time-consuming handcrafting or the recording of concrete examples, or they are unable to derive complex
transformations. We propose a novel unsupervised approach, called Ockham, which
is able to learn edit operations from model histories in model repositories. Ockham
is based on the idea that meaningful domain-specifc edit operations are the ones
that compress the model diferences. It employs frequent subgraph mining to discover frequent structures in model diference graphs. We evaluate our approach in
two controlled experiments and one real-world case study of a large-scale industrial
model-driven architecture project in the railway domain. We found that our approach
is able to discover frequent edit operations that have actually been applied before.
Furthermore, Ockham is able to extract edit operations that are meaningful—in the
sense of explaining model diferences through the edit operations they comprise—to
practitioners in an industrial setting. We also discuss use cases (i.e., semantic lifting of model diferences and change profles) for the discovered edit operations in
this industrial setting. We fnd that the edit operations discovered by Ockham can be
used to better understand and simulate the evolution of models
Dataset and code for the publication "From Unstructured Product Descriptions to Structured Data for Industry 4.0 with ChatGPT"
<p>This is the code as well as the dataset for our publication "From Unstructured Product Descriptions to Structured Data for Industry 4.0 with ChatGPT".</p><p>Please see the README.md for more information.</p>
Dataset and code for the publication "From Unstructured Product Descriptions to Structured Data for Industry 4.0 with ChatGPT"
<p>This is the code as well as the dataset for our publication "From Unstructured Product Descriptions to Structured Data for Industry 4.0 with ChatGPT".</p><p>Please see the README.md for more information.</p>
Dataset and code for the publication "From Unstructured Product Descriptions to Structured Data for Industry 4.0 with ChatGPT"
<p>This is the code as well as the dataset for our publication "From Unstructured Product Descriptions to Structured Data for Industry 4.0 with ChatGPT".</p><p>Please see the README.md for more information.</p>
Mining domain-specific edit operations from model repositories with applications to semantic lifting of model differences and change profiling
Model transformations are central to model-driven software development. Applications of model transformations include creating models, handling model co-evolution, model merging, and understanding model evolution. In the past, various (semi-)automatic approaches to derive model transformations from meta-models or from examples have been proposed. These approaches require time-consuming handcrafting or the recording of concrete examples, or they are unable to derive complex transformations. We propose a novel unsupervised approach, called Ockham, which is able to learn edit operations from model histories in model repositories. Ockham is based on the idea that meaningful domain-specific edit operations are the ones that compress the model differences. It employs frequent subgraph mining to discover frequent structures in model difference graphs. We evaluate our approach in two controlled experiments and one real-world case study of a large-scale industrial model-driven architecture project in the railway domain. We found that our approach is able to discover frequent edit operations that have actually been applied before. Furthermore, Ockham is able to extract edit operations that are meaningful—in the sense of explaining model differences through the edit operations they comprise—to practitioners in an industrial setting. We also discuss use cases (i.e., semantic lifting of model differences and change profiles) for the discovered edit operations in this industrial setting. We find that the edit operations discovered by Ockham can be used to better understand and simulate the evolution of models
Classifying Edits to Variability in Source Code
For highly configurable software systems, such as the Linux kernel, maintaining and evolving variability information along changes to source code poses a major challenge. While source code itself
may be edited, also feature-to-code mappings may be introduced, removed, or changed. In practice, such edits are often conducted ad-hoc and without proper documentation. To support the mainte-
nance and evolution of variability, it is desirable to understand the impact of each edit on the variability. We propose the first complete and unambiguous classification of edits to variability in source code
by means of a catalog of edit classes. This catalog is based on a scheme that can be used to build classifications that are complete and unambiguous by construction. To this end, we introduce a complete and sound model for edits to variability. In about 21.5 ms per commit, we validate the correctness and suitability of our classification by classifying each edit in 1.7 million commits in the change histories of 44 open-source software systems automatically. We are able to classify all edits with syntactically correct feature-to-code mappings and find that all our edit classes occur in practice
Views on Edits to Variational Software
Software systems are subject to frequent changes, for example
to fix bugs or meet new customer requirements. In variational
software systems, developers are confronted with the complexity of
evolution and configurability on a daily basis; essentially handling
changes to many distinct software variants simultaneously. To
reduce the complexity of configurability for developers, filtered
or projectional editing was introduced: By providing a partial or
complete configuration, developers can interact with a simpler view
of the variational system that shows only artifacts belonging to that
configuration. Yet, such views are available for individual revisions
only but not for edits performed across revisions. To reduce the
complexity of evolution in variational software for developers, we
extend the concept of views to edits. We formulate a correctness
criterion for views on edits and introduce two correct operators for
view generation, one operator suitable for formal reasoning, and a
runtime optimized operator. In an empirical study, we demonstrate
the feasibility of our operators by applying them to the change
histories of 44 open-source software systems