Welf Löwe

dblp:l/WelfLowe · DBLP profile ↗
← Back
54ranked-venue papers
8as first author
7since 2021 · last 2026
0000-0002-7565-3714ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 33 · 1 first-author · 4 since 2021Systems, architecture and hardware · 13 · 7 first-author · 1 since 2021Artificial intelligence and machine learning · 3 · 1 since 2021Theory of computation · 3 · 1 since 2021Databases, data management, data science and information retrieval · 2Human-computer interaction and ubiquitous computing · 1
YearPublicationVenuePosition
2026 A modular multi-agent pipeline framework for large-scale code translation
abstract
This publication presents an established engineering-driven framework for pipelining large language model (LLM) agents for automatic code translation. The framework is applied in a long-term ongoing industrial project with Danfoss Power Solutions aimed at translating five million lines of Delphi to C#. To manage this scale, the source codebase is divided into translatable chunks, which are processed independently through an agentic LLM pipeline, with subsequently the reassembly of the translated code chunks in the target language. Due to the inherent stochasticity of LLMs, the framework incorporates processing and validation functions to ensure consistency and correctness. As an extended version of our short paper (Bruneel et al., 2025), this paper provides a significantly more comprehensive architectural blueprint. Specifically, we present an in-depth background & related work section, formalise the chunking and reassembly strategies, detail the internal mechanics of agent stages, and introduce sequential agent orchestration alongside the dynamic LLM pipeline architecture. Furthermore, we report early empirical observations regarding the pipeline’s computational overhead, validation dynamics, and translation quality, noting a practical impact of an initial 10x acceleration over estimated manual translation efforts. Ultimately, we share these expanded insights to inform future development and application in similar large-scale translation tasks.
Tibo Bruneel, Sandu Crucerescu, Welf Löwe, Morgan Ericsson, Diego Perez-Palacin, Jonas Nordqvist
Future Gener. Comput. Syst.3
2024 Unpaired Image-to-Image Translation to Improve Log End Identification
abstract
Visual re-identification tasks are often subject to large domain variations due to camera types, brightness conditions, or environmental differences.For identification models to generalize in such varying domains, a large amount of training data is necessary for capturing these variations.We explore the potential of using unpaired image-to-image translation to enhance the generalization capacity of a log end identification model in the absence or combined with a smaller amount of labeled training data.
Dag Björnberg, Morgan Ericsson, Welf Löwe, Jonas Nordqvist
ESANN3
2022 Contextual Operationalization of Metrics as Scores: Is My Metric Value Good?
abstract
Software quality models aggregate metrics to indicate quality. Most metrics reflect counts derived from events or attributes that cannot directly be associated with quality. Worse, what constitutes a desirable value for a metric may vary across contexts. We demonstrate an approach to transforming arbitrary metrics into absolute quality scores by leveraging metrics captured from similar contexts. In contrast to metrics, scores represent freestanding quality properties that are also comparable. We provide a web-based tool for obtaining contextualized scores for metrics as obtained from one’s software. Our results indicate that significant differences among various metrics and contexts exist. The suggested approach works with arbitrary contexts. Given sufficient contextual information, it allows for answering the question of whether a metric value is good/bad or common/extreme.
Sebastian Hönel, Morgan Ericsson, Welf Löwe, Anna Wingkvist
QRS3
2022 A Framework for Memory Efficient Context-Sensitive Program Analysis
abstract
Abstract Static program analysis is in general more precise if it is sensitive to execution contexts (execution paths). But then it is also more expensive in terms of memory consumption. For languages with conditions and iterations, the number of contexts grows exponentially with the program size. This problem is not just a theoretical issue. Several papers evaluating inter-procedural context-sensitive data-flow analysis report severe memory problems, and the path-explosion problem is a major issue in program verification and model checking. In this paper we propose χ-terms as a means to capture and manipulate context-sensitive program information in a data-flow analysis. χ-terms are implemented as directed acyclic graphs without any redundant subgraphs. We introduce the k-approximation and the l-loop-approximation that limit the size of the context-sensitive information at the cost of analysis precision. We prove that every context-insensitive data-flow analysis has a corresponding k,l-approximated context-sensitive analysis, and that these analyses are sound and guaranteed to reach a fixed point. We also present detailed algorithms outlining a compact, redundancy-free, and DAG-based implementation of χ-terms.
Mathias Hedenborg, Jonas Lundberg, Welf Löwe, Martin Trapp 0002
Theory Comput. Syst.3
2021 Weighted software metrics aggregation and its application to defect prediction
abstract
Abstract It is a well-known practice in software engineering to aggregate software metrics to assess software artifacts for various purposes, such as their maintainability or their proneness to contain bugs. For different purposes, different metrics might be relevant. However, weighting these software metrics according to their contribution to the respective purpose is a challenging task. Manual approaches based on experts do not scale with the number of metrics. Also, experts get confused if the metrics are not independent, which is rarely the case. Automated approaches based on supervised learning require reliable and generalizable training data, a ground truth, which is rarely available. We propose an automated approach to weighted metrics aggregation that is based on unsupervised learning. It sets metrics scores and their weights based on probability theory and aggregates them. To evaluate the effectiveness, we conducted two empirical studies on defect prediction, one on ca. 200 000 code changes, and another ca. 5 000 software classes. The results show that our approach can be used as an agnostic unsupervised predictor in the absence of a ground truth.
Maria Ulan, Welf Löwe, Morgan Ericsson, Anna Wingkvist
Empir. Softw. Eng.2
2021 Memory efficient context-sensitive program analysis
abstract
Static program analysis is in general more precise if it is sensitive to execution contexts (execution paths). But then it is also more expensive in terms of memory consumption. For languages with conditions and iterations, the number of contexts grows exponentially with the program size. This problem is not just a theoretical issue. Several papers evaluating inter-procedural context-sensitive data-flow analysis report severe memory problems, and the path-explosion problem is a major issue in program verification and model checking. In this paper we propose χ-terms as a means to capture and manipulate context-sensitive program information in a data-flow analysis. χ-terms are implemented as directed acyclic graphs without any redundant subgraphs. To show the efficiency of our approach we run experiments comparing the memory usage of χ-terms with four alternative data structures. Our experiments show that χ-terms clearly outperform all the alternatives in terms of memory efficiency.
Mathias Hedenborg, Jonas Lundberg, Welf Löwe
J. Syst. Softw.3
2021 Copula-based software metrics aggregation
abstract
Abstract A quality model is a conceptual decomposition of an abstract notion of quality into relevant, possibly conflicting characteristics and further into measurable metrics. For quality assessment and decision making, metrics values are aggregated to characteristics and ultimately to quality scores. Aggregation has often been problematic as quality models do not provide the semantics of aggregation. This makes it hard to formally reason about metrics, characteristics, and quality. We argue that aggregation needs to be interpretable and mathematically well defined in order to assess, to compare, and to improve quality. To address this challenge, we propose a probabilistic approach to aggregation and define quality scores based on joint distributions of absolute metrics values. To evaluate the proposed approach and its implementation under realistic conditions, we conduct empirical studies on bug prediction of ca. 5000 software classes, maintainability of ca. 15000 open-source software systems, and on the information quality of ca. 100000 real-world technical documents. We found that our approach is feasible, accurate, and scalable in performance.
Maria Ulan, Welf Löwe, Morgan Ericsson, Anna Wingkvist
Softw. Qual. J.2
2020 Using source code density to improve the accuracy of automatic commit classification into maintenance activities
Sebastian Hönel, Morgan Ericsson, Welf Löwe, Anna Wingkvist
J. Syst. Softw.3
2019 Optimization of Software Estimation Models
abstract
In software engineering, estimations are frequently used to determine expected but yet unknown properties of software development processes or the developed systems, such as costs, time, number of developers, efforts, sizes, and complexities. Plenty of estimation models exist, but it is hard to compare and improve them as software technologies evolve quickly. We suggest an approach to estimation model design and automated optimization allowing for model comparison and improvement based on commonly collected data points. This way, the approach simplifies model optimization and selection. It contributes to a convergence of existing estimation models to meet contemporary software technology practices and provide a possibility for selecting the most appropriate ones.
Chris Kopetschny, Morgan Ericsson, Welf Löwe, Anna Wingkvist
ICSOFT3
2019 Towards an Automated Assessment of Musculoskeletal Insufficiencies
Danny Dressler, Pavlo Liapota, Welf Löwe
KES-IDT (1)3
2019 Data-Driven Human Movement Assessment
Danny Dressler, Pavlo Liapota, Welf Löwe
KES-IDT (2)3
2019 Importance and Aptitude of Source Code Density for Commit Classification into Maintenance Activities
abstract
Commit classification, the automatic classification of the purpose of changes to software, can support the understanding and quality improvement of software and its development process. We introduce code density of a commit, a measure of the net size of a commit, as a novel feature and study how well it is suited to determine the purpose of a change. We also compare the accuracy of code-density-based classifications with existing size-based classifications. By applying standard classification models, we demonstrate the significance of code density for the accuracy of commit classification. We achieve up to 89% accuracy and a Kappa of 0.82 for the cross-project commit classification where the model is trained on one project and applied to other projects. Such highly accurate classification of the purpose of software changes helps to improve the confidence in software (process) quality analyses exploiting this classification information.
Sebastian Hönel, Morgan Ericsson, Welf Löwe, Anna Wingkvist
QRS3
2018 Quality Models Inside Out: Interactive Visualization of Software Metrics by Means of Joint Probabilities
abstract
Assessing software quality, in general, is hard; each metric has a different interpretation, scale, range of values, or measurement method. Combining these metrics automatically is especially difficult, because they measure different aspects of software quality, and creating a single global final quality score limits the evaluation of the specific quality aspects and trade-offs that exist when looking at different metrics. We present a way to visualize multiple aspects of software quality. In general, software quality can be decomposed hierarchically into characteristics, which can be assessed by various direct and indirect metrics. These characteristics are then combined and aggregated to assess the quality of the software system as a whole. We introduce an approach for quality assessment based on joint distributions of metrics values. Visualizations of these distributions allow users to explore and compare the quality metrics of software systems and their artifacts, and to detect patterns, correlations, and anomalies. Furthermore, it is possible to identify common properties and flaws, as our visualization approach provides rich interactions for visual queries to the quality models' multivariate data. We evaluate our approach in two use cases based on: 30 real-world technical documentation projects with 20,000 XML documents, and an open source project written in Java with 1000 classes. Our results show that the proposed approach allows an analyst to detect possible causes of bad or good quality.
Maria Ulan, Sebastian Hönel, Rafael Messias Martins, Morgan Ericsson, Welf Löwe, Anna Wingkvist, Andreas Kerren
VISSOFT5
2018 Self-adaptive concurrent components
Erik Österlund, Welf Löwe
Autom. Softw. Eng.2
2016 Block-free concurrent GC: stack scanning and copying
abstract
On-the-fly Garbage Collectors (GCs) are the state-of-the-art concurrent GC algorithms today. Everything is done concurrently, but phases are separated by blocking handshakes. Hence, progress relies on the scheduler to let application threads (mutators) run into GC checkpoints to reply to the handshakes. For a non-blocking GC, these blocking handshakes need to be addressed. Therefore, we propose a new non-blocking handshake to replace previous blocking handshakes. It guarantees scheduling-independent operation level progress without blocking. It is scheduling independent but requires some other OS support. It allows bounded waiting for threads that are currently running on a processor, regardless of threads that are not running on a processor. We discuss this non-blocking handshake in two GC algorithms for stack scanning and copying objects. They pave way for a future completely non-blocking GC by solving hard open theory problems when OS support is permitted. The GC algorithms were integrated to the G1 GC of OpenJDK for Java. GC pause times were reduced to 12.5% compared to the original G1 on average in DaCapo. For a memory intense benchmark, latencies were reduced from 174 ms to 0.67 ms for the 99.99% percentile. The improved latency comes at a cost of 15% lower throughput.
Erik Österlund, Welf Löwe
ISMM2
2015 Concurrent compaction using a field pinning protocol
abstract
Compaction of memory in long running systems has always been important. The latency of compaction increases in today’s systems with high memory demands and large heaps. To deal with this problem, we present a lock-free protocol allowing for copying concurrent with the application running, which reduces the latencies of compaction radically. It provides theoretical progress guarantees for copying and application threads without making it practically infeasible, with performance overheads of 15% on average. The algorithm paves the way for a future lock-free Garbage Collector.
Erik Österlund, Welf Löwe
ISMM2
2015 Classification vs. Regression - Machine Learning Approaches for Service Recommendation Based on Measured Consumer Experiences
abstract
Service functionality can be provided by more than one service consumer. In order to choose the service which creates the most benefit before its consumption, a selection based on previous measurable experiences by other consumers is beneficial. In this paper, we present the results of our analysis of two machine learning approaches to predict the best service within this selection problem. The first approach focuses on classification, predicting the best performing service, while the second approach focuses on regression, predicting service performances which can then be used for the determination of the best candidate. We assessed and compared both approaches for service recommendation w.r.t. The performance gain when selecting the recommended instead of a random service. Our evaluation is based on data measured on real Web services as well as on simulated data. The latter is needed for a more profound analysis of the strengths and weaknesses of each approach. The simulated data has similar statistical properties as the data measured on real Web services. In the real-world case, regression achieved a response time gain of over 92% of the optimum and classification over 83%. In case of simulated data, we could achieve an overall gain of up to 95% using classification, while regression achieved 89%.
Jens Kirchner, Andreas Heberle, Welf Löwe
SERVICES3
2014 Evaluation and Reproducibility of Program Analysis (Track Introduction)
Markus Schordan, Welf Löwe, Dirk Beyer 0001
ISoLA (2)2
2014 Concurrent transformation components using contention context sensors
abstract
Sometimes components are conservatively implemented as thread-safe, while during the actual execution they are only accessed from one thread. In these scenarios, overly conservative assumptions lead to suboptimal performance.
Erik Österlund, Welf Löwe
ASE2
2013 A Study of the Effect of Data Normalization on Software and Information Quality Assessment
abstract
Indirect metrics in quality models define weighted integrations of direct metrics to provide higher-level quality indicators. This paper presents a case study that investigates to what degree quality models depend on statistical assumptions about the distribution of direct metrics values when these are integrated and aggregated. We vary the normalization used by the quality assessment efforts of three companies, while keeping quality models, metrics, metrics implementation and, hence, metrics values constant. We find that normalization has a considerable impact on the ranking of an artifact (such as a class). We also investigate how normalization affects the quality trend and find that normalizations have a considerable effect on quality trends. Based on these findings, we find it questionable to continue to aggregate different metrics in a quality model as we do today.
Morgan Ericsson, Welf Löwe, Tobias Olsson, Daniel Toll, Anna Wingkvist
APSEC (2)2
2013 Dynamically transforming data structures
abstract
Fine-tuning which data structure implementation to use for a given problem is sometimes tedious work since the optimum solution depends on the context, i.e., on the operation sequences, actual parameters as well as on the hardware available at run time. Sometimes a data structure with higher asymptotic time complexity performs better in certain contexts because of lower constants. The optimal solution may not even be possible to determine at compile time. We introduce transformation data structures that dynamically change their internal representation variant based on a possibly changing context. The most suitable variant is selected at run time rather than at compile time. We demonstrate the effect on performance with a transformation ArrayList data structure using an array variant and a linked hash bag variant as alternative internal representations. Using our transformation ArrayList, the standard DaCapo benchmark suite shows a performance gain of 5.19% in average.
Erik Österlund, Welf Löwe
ASE2
2012 Collections Frameworks for Points-To Analysis
abstract
Points-to information is the basis for many analyses and transformations, e.g., for program understanding and optimization. Collections frameworks are part of most modern programming languages' infrastructures and used by many applications. The richness of features and the inherent structure of collection classes affect both performance and precision of points-to analysis negatively. In this paper, we discuss how to replace original collections frameworks with versions specialized for points-to analysis. We implement such a replacement for the Java Collections Framework and support its benefits for points-to analysis by applying it to three different points-to analysis implementations. In experiments, context-sensitive points-to analyses require, on average, 16-24% less time while at the same time being more precise. Context-insensitive analysis in conjunction with in lining also benefits in both precision and analysis cost.
Tobias Gutzmann, Jonas Lundberg, Welf Löwe
SCAM3
2012 Optimized composition of performance-aware parallel components
abstract
SUMMARY We describe the principles of a novel framework for performance‐aware composition of sequential and explicitly parallel software components with implementation variants. Automatic composition results in a table‐driven implementation that, for each parallel call of a performance‐aware component, looks up the expected best implementation variant, processor allocation and schedule given the current problem, and processor group sizes. The dispatch tables are computed off‐line at component deployment time by an interleaved dynamic programming algorithm from time‐prediction meta‐code provided by the component supplier. Copyright © 2011 John Wiley & Sons, Ltd.
Christoph W. Kessler, Welf Löwe
Concurr. Comput. Pract. Exp.2
2011 Parallel points-to analysis for multi-core machines
abstract
Static program analysis supporting software development is often part of edit-compile-cycles, and precise program analysis is time consuming. Points-to analysis is a data-flow-based static program analysis used to find object references in programs. Its applications include test case generation, compiler optimizations and program understanding, and more. Recent increases in processing power of desktop computers comes mainly from multiple cores. Parallel algorithms are vital for simultaneous use of multiple cores. An efficient parallel points-to analysis requires sufficient work for each processing unit.
Marcus Edvinsson, Jonas Lundberg, Welf Löwe
HiPEAC3
2010 Parallel Reachability and Escape Analyses
abstract
Static program analysis usually consists of a number of steps, each producing partial results. For example, the points-to analysis step, calculating object references in a program, usually just provides the input for larger client analyses like reach ability and escape analyses. All these analyses are computationally intense and it is therefore vital to create parallel approaches that make use of the processing power that comes from multiple cores in modern desktop computers. The present paper presents two parallel approaches to increase the efficiency of reach ability analysis and escape analysis, based on a parallel points-to analysis. The experiments show that the two parallel approaches achieve a speed-up of 1.5 for reach ability analysis and 3.8 for escape analysis on 8 cores for a benchmark suite of Java programs.
Marcus Edvinsson, Jonas Lundberg, Welf Löwe
SCAM3
2010 Evaluation of Accuracy in Design Pattern Occurrence Detection
abstract
Detection of design pattern occurrences is part of several solutions to software engineering problems, and high accuracy of detection is important to help solve the actual problems. The improvement in accuracy of design pattern occurrence detection requires some way of evaluating various approaches. Currently, there are several different methods used in the community to evaluate accuracy. We show that these differences may greatly influence the accuracy results, which makes it nearly impossible to compare the quality of different techniques. We propose a benchmark suite to improve the situation and a community effort to contribute to, and evolve, the benchmark suite. Also, we propose fine-grained metrics assessing the accuracy of various approaches in the benchmark suite. This allows comparing the detection techniques and helps improve the accuracy of detecting design pattern occurrences.
Niklas Pettersson, Welf Löwe, Joakim Nivre
IEEE Trans. Software Eng.2
2009 Natural language parsing for fact extraction from source code
abstract
We present a novel approach to extract structural information from source code using state-of-the-art parser technologies for natural languages. The parser technology is robust in the sense that it guarantees to produce some output, entailing that even incomplete or incorrect source code as input will get some kind of analysis. This comes at the expense of possibly assigning a partially incorrect analysis for input free of errors. However, an evaluation on source codes of the Java, Python and C/C++ languages shows that the committed errors are few i.e., our accuracy is close to 100%. The error analysis indicates that the majority of the errors remaining are harmless.
Jens Nilsson 0001, Welf Löwe, Johan Hall, Joakim Nivre
ICPC2
2009 Towards Comparing and Combining Points-to Analyses
abstract
Points-to information is the basis for many analyses and transformations, e.g., for program understanding and optimization. To justify new analysis techniques, they need to be compared to the state of the art regarding their accuracy and efficiency. Usually, benchmark suites are used to experimentally compare the different techniques. In this paper, we show that the accuracy of two analyses can only be compared in restricted cases, as there is no benchmark suite with exact Points-to information, no Gold Standard, and it is hard to construct one for realistic programs. We discuss the challenges and possible traps that may arise when comparing different Points-to analyses directly with each other, and with over- and under-approximations of a Gold Standard. Moreover, we discuss how different Points-to analyses can be combined to a more precise one. We complement the paper with experiments comparing and combining different static and dynamic Points-to analyses.
Tobias Gutzmann, Antonina Khairova, Jonas Lundberg, Welf Löwe
SCAM4
2009 Fast and precise points-to analysis
Jonas Lundberg, Tobias Gutzmann, Marcus Edvinsson, Welf Löwe
Inf. Softw. Technol.4
2008 Comparing software metrics tools
abstract
This paper shows that existing software metric tools interpret and implement the definitions of object-oriented software metrics differently. This delivers tool-dependent metrics results and has even implications on the results of analyses based on these metrics results. In short, the metrics-based assessment of a software system and measures taken to improve its design differ considerably from tool to tool. To support our case, we conducted an experiment with a number of commercial and free metrics tools. We calculated metrics values using the same set of standard metrics for three software systems of different sizes. Measurements show that, for the same software system and metrics, the metrics values are tool depended. We also defined a (simple) software quality model for "maintainability" based on the metrics selected. It defines a ranking of the classes that are most critical wrt. maintainability. Measurements show that even the ranking of classes in a software system is metrics tool dependent.
Rüdiger Lincke, Jonas Lundberg, Welf Löwe
ISSTA3
2008 Fast and Precise Points-to Analysis
abstract
Many software engineering applications require points-to analysis. Client applications range from optimizing compilers to program development and testing environments to reverse-engineering tools. In this paper, we present a new context-sensitive approach to points-to analysis where calling contexts are distinguished by the points-to sets analyzed for their target expressions. Compared to other well-known context-sensitive techniques, it is faster - twice as fast as the call string approach and by an order of magnitude faster than the object-sensitive technique - and requires less memory. At the same time, it provides higher precision than the call string technique and is similar in precision to the object-sensitive technique. These statements are confirmed by experiments.
Jonas Lundberg, Tobias Gutzmann, Welf Löwe
SCAM3
2008 Automatic Rule Derivation for Adaptive Architectures
abstract
This paper discusses on-going work in adaptive architectures concerning automatic adaptation rule derivation. Adaptation is rule-action based but deriving rules that meet the adaptation goals are tedious and error prone. We present an approach that uses model-driven derivation and training for automatically deriving adaptation rules, and exemplify this in an environment for scientific computing.
Jesper Andersson, Morgan Ericsson, Welf Löwe
WICSA3
2007 A Non-conservative Approach to Software Pattern Detection
abstract
Pattern detection in software systems is one of several collaborating techniques for reverse engineering and program comprehension. Unfortunately, it is a hard problem in both theory and practice. A recent method to increase efficiency is based on conservatively filtering edges of a software system's structure graph, i.e., only removing edges guaranteed not to be part of any pattern instance. This leads to planar graphs in many cases allowing for efficient matching algorithms. This paper shows the feasibility of a non-conservative filtering approach, where even edges possibly part of a pattern instance can be removed to reach planarity. We show theoretically that not only decreased accuracy is possible due to non-conservative filtering, but also increased accuracy. We also perform an experimental evaluation supporting this statement. The paper complements the safe filtering method and together the two approaches allow for efficient pattern detection for all systems and patterns.
Niklas Pettersson, Welf Löwe
ICPC2
2007 An Extensible Meta-Model for Program Analysis
abstract
Software maintenance tools for program analysisand refactoring rely on a meta-model capturing the relevantproperties of programs. However, what is considered relevantmay change when the tools are extended with new analyses andrefactorings, and new programming languages. This paper proposesa language independent meta-model and an architecture toconstruct instances thereof, which is extensible for new analyses,refactorings, and new front-ends of programming languages. Dueto the loose coupling between analysis-, refactoring-, and frontend-components, new components can be added independentlyand reuse existing ones. Two maintenance tools implementingthe meta-model and the architecture, VIZZANALYZER and XDEVELOP,serve as a proof of concept.
Dennis Strein, Rüdiger Lincke, Jonas Lundberg, Welf Löwe
IEEE Trans. Software Eng.4
2007 An Extensible Metamodel for Program Analysis (abstract only)
abstract
Software maintenance tools for program analysis and refactoring rely on a metamodel capturing the relevant properties of programs. However, what is considered relevant may change when the tools are extended with new analyses, refactorings, and new programming languages. This paper proposes a language independent metamodel and an architecture to construct instances thereof, which is extensible for new analyses, refactorings, and new front-ends of programming languages. Due to the loose coupling between analysis, refactoring, and front-end components, new components can be added independently and reuse existing ones. Two maintenance tools implementing the metamodel and the architecture, VizzAnalyzer and X-develop, serve as proof of concept.
Dennis Strein, Rüdiger Lincke, Jonas Lundberg, Welf Löwe
IEEE Trans. Software Eng.4
2006 Efficient and Accurate Software Pattern Detection
abstract
Pattern detection is part of many solutions to software engineering problems. Unfortunately, it is a hard problem in itself in both theory and practice. Both exact and approximative approaches have been used earlier to increase efficiency. We propose a novel method to improve the performance of pattern detection, which is in many cases both exact and efficient. It is based on the idea of filtering information from the program representation (graphs), which is unnecessary for detecting a particular pattern. This makes the remaining program representation graph planar, in many cases, thus allowing for linear pattern detection. We evaluate our approach experimentally: we detect six design patterns in six software systems. Filtering leads to planar program representation graphs in 14 out of 36 cases. For most of the remaining graphs, filtering makes the graphs almost planar and gives a significant reduction of the graph size, which speeds up existing heuristics.
Niklas Pettersson, Welf Löwe
APSEC2
2006 An Extensible Meta-Model for Program Analysis
abstract
Software maintenance tools for program-analysis and refactoring rely on a meta-model capturing the relevant properties of programs. However, what is considered relevant may change when the tools are extended with new analyses and refactorings, and new programming languages. This paper proposes a language independent meta-model and an architecture to construct instances thereof which is extensible for new analyses, refactorings, and new front-ends of programming languages. Due to the loose coupling between analysis-, refactoring-, and front-end-components, new components can be added independently and reuse existing ones. Two maintenance tools implementing the meta-model and the architecture, VizzAnalyzer and X-DEVELOP, serve as a proof of concept
Dennis Strein, Rüdiger Lincke, Jonas Lundberg, Welf Löwe
ICSM4
2005 A Qualitative Evaluation of a Software Development and Re-Engineering Project
abstract
The VizzAnalyzer is a framework for analyses and visualizations of software. It has been developed over years, to a great deal by students and PhD students. In between it has been re-engineered to improve the software quality. In this paper, we publish the results of the software quality measurements over different versions of the VizzAnalyzer framework with well established quality metrics. Some metrics uncover qualities we were aiming at in our re-engineering, e.g. maintainability, some others uncover qualities we were deliberately ignoring or did not even think about, e.g. good "object-orientedness". Our measurements validate our expectation: the former metrics significantly improve over the versions whereas the latter contain positive as well as negative surprises
Thomas Panas, Rüdiger Lincke, Jonas Lundberg, Welf Löwe
SEW4
2005 DMDA - A Dynamic Service Architecture for Scientific Computing
abstract
Abstract—The objective of this paper is to ad-dress the design of an architecture for scientific ap-plications utilizing sensor data. The proposed archi-tecture models applications as services in a service-oriented architecture. This architecture is, mapped to a heterogeneous architecture that contains high-performance, data-driven components and SOA-style components, and a superimposed on a service archi-tecture that provides dynamism. I.
Jesper Andersson, Morgan Ericsson, Welf Löwe
WICSA3
2005 Rapid Construction of Software Comprehension Tools
abstract
A software comprehension tool defines an abstract software model, views on this model, analyses creating the model, and a mapping between model and view. For creating new comprehension tools, we configure online analyses, models, views and their mappings instead of hand-coding them. In this paper, we introduce an architecture allowing such an online configuration and, as a proof of concept, a framework implementing this architecture. In several examples, we demonstrate the generality and flexibility of our approach.
Welf Löwe, Thomas Panas
Int. J. Softw. Eng. Knowl. Eng.1
2004 Lookahead Scheduling for Reconfigurable GRID Systems
Jesper Andersson, Morgan Ericsson, Welf Löwe, Wolf Zimmermann
Euro-Par3
2003 Generating Design Pattern Detectors from Pattern Specifications
abstract
We present our approach to support program understanding by a tool that generates static and dynamic analysis algorithms from design pattern specifications to detect design patterns in legacy code. We therefore specify the static and dynamic aspects of patterns as predicates, and represent legacy code by predicates that encode its attributed abstract syntax trees. Given these representations, the static analysis is performed on the legacy code representation as a query derived from the specification of the static pattern aspects. It provides us with pattern candidates in the legacy code. The dynamic specification represents state sequences expected when using a pattern. We monitor the execution of the candidates and check their conformance to this expectation. We demonstrate our approach and evaluate our tool by detecting instances of the observer, composite and decorator patterns in Java code using Prolog to define predicates and queries.
Dirk Heuzeroth, Stefan Mandel, Welf Löwe
ASE3
2002 Lazy XML processing
abstract
This paper formalizes the domain of tree-based XML processing and classifies several implementation approaches. The lazy approach, an original contribution, is presented in depth. Proceeding from experimental measurements, we derive a selection strategy for implementation approaches to maximize performance.
Markus L. Noga, Steffen Schott, Welf Löwe
ACM Symposium on Document Engineering3
2002 On Scheduling Task-Graphs to LogP-Machines with Disturbances
Welf Löwe, Wolf Zimmermann
Euro-Par1
2002 On scheduling send-graphs and receive-graphs under the LogP-model
Wolf Zimmermann, Welf Löwe, Denis Trystram
Inf. Process. Lett.2
2001 VizzScheduler - A Framework for the Visualization of Scheduling Algorithms
Welf Löwe, Alex Liebrich
Euro-Par1
2000 Scheduling balanced task-graphs to LogP-machines
Welf Löwe, Wolf Zimmermann
Parallel Comput.1
1999 Scheduling Iterative Programs onto LogP-Machine
Welf Löwe, Wolf Zimmermann
Euro-Par1
1999 Scheduling Inverse Trees Under the Communication Model of the LogP-Machine
Martin Middendorf, Welf Löwe, Wolf Zimmermann
Theor. Comput. Sci.2
1998 BSP, LogP, and Oblivious Programs
Jörn Eisenbiegler, Welf Löwe, Wolf Zimmermann
Euro-Par2
1998 On Optimal k-linear Scheduling of Tree-Like Graphs for LogP-Machines
Wolf Zimmermann, Martin Middendorf, Welf Löwe
Euro-Par3
1997 On Linear Schedules of Task Graphs for Generalized LogP-Machines
Welf Löwe, Wolf Zimmermann, Jörn Eisenbiegler
Euro-Par1
1995 Optimization of PRAM-Programs with Input-Dependent Memory Access
Welf Löwe
Euro-Par1
1995 Upper Time Bounds for Executing PRAM-Programs on the LogP-Machine
abstract
In sequential computing the step from programming in machine code to programming in machine independent high level languages has been done for decades. Although high level programming languages are available for parallel machines today's parallel programs highly depend on the architectures they are intended to run on. Designing efficient parallel programs is a difficult task that can be performed by specialists only. Porting those programs to other parallel architectures is nearly impossible without a considerable loss of performance. Abstract machine models for parallel computing like the PRAM-model are accepted by theoreticians but have no practical relevance since these models don't take into account properties of existing architectures. However, the PRAM is easy to program. Recently, Culler et al. defined the LogP machine model which better reflects the behaviour of massively parallel computers. In this work, we show transformations of a subclass of PRAM-programs leading to efficie...
Welf Löwe, Wolf Zimmermann
International Conference on Supercomputing1