Martin Feilkas

Learn More
More than 20 years of research has created a large body of ideas, concepts, and theories for model-based development of embedded software-intensive systems. These approaches have been implemented by several tools and successfully applied to various development projects. However, the everyday use of model-based approaches in the automotive and avionic(More)
Due to their pivotal role in software engineering, considerable effort is spent on the quality assurance of software requirements specifications. As they are mainly described in natural language, relatively few means of automated quality assessment exist. However, we found that <i>clone detection</i>, a technique widely applied to source code, is promising(More)
Architecture defines the components of a system and their dependencies. The knowledge about how the architecture is intended to be implemented is essential to keep the system structure coherent and thereby comprehensible. In practice, this architectural knowledge is explicitly formulated only in the documentation (if at all), which usually gets outdated(More)
Domain specific APIs offer their clients ready-to-use implementations of domain concepts. Beside being interfaces between the worlds of humans and computers, domain specific APIs contain a considerable amount of domain knowledge. Due to the big abstraction gap between the real world and today's programming languages, in addition to the knowledge about their(More)
One of the main goals of domain-specific languages is to enable the developer to define completely new languages for special domains in order to get the advantages of programming on a higher level of abstraction. Nowadays languages are represented in different ways: by metamodels specified in some data modelling technique or by formal grammars. This(More)
Traditionally, most work in program comprehension focuses on understanding the inner workings of software systems. However, for many software maintenance tasks, not only a sound understanding of a system's implementation but also comprehensive and accurate information about the way users actually use a system's features is of crucial importance. Such(More)
Regression testing analyzes whether software maintenance has inadvertently broken existing functionality. Since it is costly -- especially for manual testing -- it is typically limited to a subset of test cases. Since impact analysis of code modifications on test cases is far from trivial for real world software, regression test selection is hard. However,(More)
This report summarizes the main results of the project DENTUM between DENSO CORPORATION and the chair for Software & Systems Engineering at Technische Univer-sität München. The goal of this project was to define a methodology for the model-based development of automotive systems. This methodology was evaluated by developing an Adaptive Cruise Control (ACC)(More)