Alexander Egyed

Alexander Egyed
Johannes Kepler University Linz | JKU · Institute for Software Systems Engineering

Prof. Dr.

About

374
Publications
73,562
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
7,662
Citations
Introduction
Alexander Egyed is a Full Professor and Chair for Software-Intensive Systems at the Johannes Kepler University, Austria (JKU). He received a Doctorate degree from the University of Southern California, USA in 2000 and then worked for industry for many years before joining the University College London, UK in 2007 and JKU in 2008. At JKU, he built up a research institute which has a staff of over 30 people today. He is most recognized for his work on software and systems design – particularly on
Additional affiliations
April 2008 - present
Johannes Kepler University Linz
Position
  • Professor (Full)
October 2007 - present
Johannes Kepler University Linz
Position
  • Professor (Full)
Description
  • teaching a wide variety of courses including software architecture, model-driven engineering, and software intensive systems
September 2007 - March 2008
University College London
Position
  • Research Associate
Education
September 1996 - August 2000
University of Southern California
Field of study
  • Computer Science
September 1995 - June 1996
University of Southern California
Field of study
  • Computer Science

Publications

Publications (374)
Conference Paper
Full-text available
Consistency checking is widely used to detect inconsistencies in engineering artifacts. In collaborative modeling environments, however, maintaining model consistency is challenging due to the frequent changes introduced by multiple engineers, leading to possibly numerous inconsistencies. These inconsistencies need to be identified and shared among...
Article
In safety‐critical systems engineering, regulations such as Automotive SPICE, ISO26262, or ED‐109A mandate software quality assurance measures to provide evidence that the developed system is high quality. The constraints that define quality assurance conditions during the engineering life cycle are often non‐trivial. This paper addresses the chall...
Article
Full-text available
Bug localization is the task of recommending source code locations (typically files) that contain the cause of a bug and hence need to be changed to fix the bug. Along these lines, information retrieval-based bug localization (IRBL) approaches have been adopted, which identify the most bug-prone files from the source code space. In current practice...
Preprint
Full-text available
Metamodels like many other software artifacts, are expected to evolve and exist in different versions. Consequently, the instances of these metamodels (models), become invalid and need fixing. The usual strategy for this is adapting models based on changes made to the metamodels, i.e., co-evolution. However, co-evolution usually adopts an all-or-no...
Preprint
Full-text available
Software modernization is an inherent activity of software engineering, as inevitably systems become old and technology advances. The term "software modernization" emerged as a research topic in the early 2000's, with a differentiation of the traditional software evolution. Studies on this topic became popular due to new programming paradigms, tech...
Article
Full-text available
Collaborative Model-driven Software Engineering (CoMDSE) involves multiple engineers working together on modifying domain-specific models. This collaborative effort, however, can lead to conflicts during merges due to differing perspectives and goals among engineers. Solutions primarily focus on resolving conflicts during merges, but these approach...
Preprint
Full-text available
Model-Based Engineering (MBE) has streamlined software development by focusing on abstraction and automation. The adoption of MBE in Maintenance and Evolution (MBM&E), however, is still limited due to poor tool support and a lack of perceived benefits. We argue that Generative Artificial Intelligence (GenAI) can be used as a means to address the li...
Article
Full-text available
Collaborative model-driven development is a de facto practice to create software-intensive systems in several domains (e.g., aerospace, automotive, and robotics). However, when multiple engineers work concurrently, keeping all model artifacts synchronized and consistent is difficult. This is even harder when the engineering process relies on a myri...
Conference Paper
Full-text available
Metamodels, as any other software artifact, are expected to evolve. Consequently, the instances of those metamodels - aka the models- must evolve according to the changes made to the metamodels.This is commonly known as co-evolution and is a prominent research topic in Model Driven Engineering. However, co-evolutionmostly adopts an all-or-nothing s...
Conference Paper
Full-text available
Refining high-level requirements into low-level requirements is a common task, especially in safety-critical systems engineering. The objective is to describe every important aspect of the high-level requirement in a low-level requirement, ensuring a complete and correct implementation of the system’s features. To this end, standards and regulation...
Article
In software development, developer turnover is among the primary reasons for project failures, leading to a great void of knowledge and strain for newcomers. Unfortunately, no established methods exist to measure how the problem domain knowledge is distributed among developers. Awareness of how this knowledge evolves and is owned by key developers...
Chapter
Formal methods play a fundamental role in asserting the correctness of requirements specifications. However, historically, formal method experts have primarily focused on verifying those specifications. Although equally important, validation of requirements specifications often takes the back seat. This paper introduces a validation-driven developm...
Article
The quality of a pull request is the primary factor integrators consider for its acceptance or rejection. Code smells indicate sub‐optimal design or implementation choices in the source code that often lead to a fault‐prone outcome, threatening the quality of pull requests. This study explores code smells in 21k pull requests from 25 popular Java p...
Preprint
Full-text available
Formal methods play a fundamental role in asserting the correctness of requirements specifications. However, historically, formal method experts have primarily focused on verifying those specifications. Although equally important, validation of requirements specifications often takes the back seat. This paper introduces a validation-driven developm...
Preprint
Users of software applications use Issue Tracking Systems (ITSs) to file enhancement reports, which leads to a large quantity of user requests. Indeed, these reports have become an important source for software requirements because they help to continuously improve software applications. Usually, developers and maintainers evaluate them and decide...
Preprint
Full-text available
Repairing design models is a laborious task that requires a considerable amount of time and effort from developers. Repair recommendation (RR) approaches focus on reducing the effort and improving the quality of the repairs performed. Such approaches have been evaluated in terms of scalability, correctness, and minimalism. These evaluations, howeve...
Chapter
Full-text available
While refinement can help structure the modeling and proving process, it also forces the modeler to introduce features in a particular order. This means that features deeper in the refinement chain cannot be validated in isolation, making some reasoning unnecessarily intricate. In this paper, we present the AVoiR (Abstraction-Validation Obligation-...
Preprint
Full-text available
Bug localization is the task of recommending source code locations (typically files) that probably contain the cause of a bug and hence need to be changed to fix the bug. Along these lines, information retrieval-based bug localization (IRBL) approaches have been adopted, which identify the most bug-prone files from the source code space. In current...
Preprint
Full-text available
A large number of bug reports are created during the evolution of a software system. Locating the source code files that need to be changed in order to fix these bugs is a challenging task. Information retrieval-based bug localization techniques do so by correlating bug reports with historical information about the source code (e.g., previously res...
Preprint
Full-text available
Maintaining the consistency of engineering artifacts is a challenge faced by several engineering companies. This is more evident when the engineering artifacts are created using different tools and have different formats. This is the context of a company that builds agricultural machines, where components are developed using a decentralized iterati...
Chapter
Products and production are inherently variable. That is, the products themselves often need to be variable—as in a car plant producing many similar, albeit not identical cars. Such flexibility allows a product to be more easily customizable. We speak of variable products. At the same time, production systems typically need to be flexible in suppor...
Chapter
Loose coupling of system components on all levels of automated production systems enables vital systems-of-systems properties such as simplified composition, variability, testing, reuse, maintenance, and adaptation. All these are crucial aspects needed to realize highly flexible and adaptable production systems. Based on traditional software archit...
Chapter
Software-intensive systems in general and Cyber-Physical Systems (CPS) in particular have drawn considerable attention from both industry and academia in recent years, with companies increasingly adopting Cyber-Physical Production Systems (CPPS). Regardless of the domain in which these systems are deployed, what they have in common is a shift from...
Conference Paper
A unique selling point for cyber-physical production system manufacturers becomes the easy with which machines and cells can be adapted to new products and production processes. Adaptations, however, are often done by domain experts without in-depth programming know-how. We investigate in this paper, the implications of using a planning-based appro...
Article
Full-text available
With the increasing prevalence of AI, a key question is how to adequately prepare the next generation of software engineers to build AIintensive systems. This article presents our teaching experience for the “Engineering of AI-intensive Systems” course to postgraduate students. This course is tailored for computer science students, bridging the dis...
Chapter
Traces are used to show whether a model complies with the intended behavior. A modeler can use trace checking to ensure the preservation of the model behavior during the refinement process. In this paper, we present a trace refinement technique and tool called BERT that allows designers to ensure the behavioral integrity of high-level traces at the...
Conference Paper
Full-text available
Software systems are becoming increasingly configurable. A paradigmatic example is the Linux kernel, which can be adjusted for a tremendous variety of hardware devices, from mobile phones to supercomputers, thanks to the thousands of configurable features it supports. In principle, many relevant problems on configurable systems, such as completing...
Article
Full-text available
In large code bases, locating the elements that implement concrete features of a system is challenging. This information is paramount for maintenance and evolution tasks, although not always explicitly available. In this work, motivated by the needs of locating features as a first step for feature-based Software Product Line adoption, we propose a...
Conference Paper
Full-text available
Families of software products are usually created using opportunistic reuse (clone-and-own) in which products are cloned and adapted to meet new requirements, user preferences, or non-functional properties. Opportunistic reuse brings short-term benefits, e.g., reduced time-to-market, whereas creating long-term drawbacks, e.g., the need of changing...
Preprint
Traceability approves trace links among software artifacts based on whether two artifacts are related by system functionalities. The traces are valuable for software development, but are difficult to obtain manually. To cope with the costly and fallible manual recovery, automated approaches are proposed to recover traces through textual similaritie...
Article
Full-text available
Software companies commonly develop and maintain variants of systems, with different feature combinations for different customers. Thus, they must cope with variability in space. Software companies further must cope with variability in time, when updating system variants by revising existing software features. Inevitably, variants evolve orthogonal...
Chapter
Our lives become increasingly dependent on safety- and security-critical systems, so formal techniques are advocated for engineering such systems. One of such techniques is validation obligations that enable formalizing requirements early in development to ensure their correctness. Furthermore, validation obligations help hold requirements consiste...
Preprint
Full-text available
Traces are used to show whether a model complies with the intended behavior. A modeler can use trace checking to ensure the preservation of the model behavior during the refinement process. In this paper, we present a trace refinement technique and tool called BERT that allows designers to ensure the behavioral integrity of high-level traces at the...
Preprint
In software development teams, developer turnover is among the primary reasons for project failures as it leads to a great void of knowledge and strain for the newcomers. Unfortunately, no established methods exist to measure how knowledge is distributed among development teams. Knowing how this knowledge evolves and is owned by key developers in a...
Preprint
Full-text available
Our lives become increasingly dependent on safety- and security-critical systems, so formal techniques are advocated for engineering such systems. One of such techniques is validation obligations that enable formalizing requirements early in development to ensure their correctness. Furthermore, validation obligations help hold requirements consiste...
Preprint
Full-text available
Repairing software models may be a laborious task, as the number of alternatives that must be considered by engineers can be large. This is more evident in collaborative environments, where the stream of changes applied to models by different engineers is constant and unanticipated. These changes can cause multiple inconsistencies that must be fixe...
Preprint
Full-text available
This document lays out the foundations for VO and requirement refinement, abstractions of models, and instantiations. Also, VOs on abstractions and instantiations are considered.
Preprint
Full-text available
This report discusses the foundations of the VO approach. Then, it explores multiple directions and argues about structure and applications.
Article
Full-text available
This article presents a systematic mapping study on the model‐driven engineering of safety and security concerns in software systems. Combined modeling and development of both safety and security concerns is an emerging field of research as both concerns affect one another in unique ways. Our mapping study provides an overview of the current state...
Article
Full-text available
Engineering projects involve a variety of artifacts such as requirements, design, or source code. These artifacts, many of which tend to be interdependent, are often manipulated concurrently. To keep artifacts consistent, engineers must continuously consider their work in relation to the work of multiple other engineers. Traditional consistency che...
Article
Full-text available
There are many repair alternatives for resolving model inconsistencies, each involving one or more model changes. Enumerating them all could overwhelm the developer because the number of possible repairs can grow exponentially. To address this problem, this paper focuses on the immediate cause of an inconsistency. By focusing on the cause, we can g...
Article
Full-text available
Traceability recovery captures trace links among different software artifacts (e.g., requirements and code) when two artifacts cover the same part of system functionalities. These trace links provide important support for developers in software maintenance and evolution tasks. Information Retrieval (IR) is now the mainstream technique for semi-auto...
Article
Full-text available
Artificial intelligence and software engineering complement each other in various ways. This special issue highlights how this relationship is developing over time to address the challenges faced in modern-day computing.
Chapter
Full-text available
Semantic clone detection is the process of finding program elements with similar or equal runtime behavior. For example, detecting the semantic equality between the recursive and iterative implementation of the factorial computation. Semantic clone detection is the de facto technical boundary of clone detectors. In recent years, this boundary has b...
Article
Full-text available
The software engineering community is rapidly adopting machine learning for transitioning modern-day software towards highly intelligent and self-learning systems. However, the software engineering community is still discovering new ways how machine learning can offer help for various software development life cycle stages. In this article, we pres...
Preprint
Full-text available
Feature annotation based on preprocessor directives is the most common mechanism in Highly-Configurable Software Systems (HCSSs) to manage variability. However, it is challenging to understand, maintain, and evolve feature fragments guarded by #ifdef directives. Yet, despite HCSSs being implemented in Version Control Systems, the support for evolvi...