Demo Data from EDBT 2026 / reviewers in the wild / expert
Sven Amann
dblp:145/7707
· DBLP profile ↗
14ranked-venue papers
5as first author
0since 2021 · last 2020
0000-0003-2952-0475ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 13 · 5 first-authorDatabases, data management, data science and information retrieval · 4 · 2 first-authorSecurity and privacy · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
6 papers |
Software maintenance and evolution · 34% Empirical software engineering · 24% Programming languages and type systems · 20% | |
| Network and information security
1 paper |
Web and mobile security · 87% Systems and software security · 13% |
Topics — the 13 heaviest of 15, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software maintenance and evolution
program comprehension |
0.5 | 2 | 2017 | On the Positive Effect of Reactive Programming on Software Comprehension: An Empirical Study · IEEE Trans. Software Eng. 2017 An empirical study on program comprehension with reactive programming · SIGSOFT FSE 2014 |
Programming languages and type systems › programming paradigms
reactive programming |
0.5 | 2 | 2017 | On the Positive Effect of Reactive Programming on Software Comprehension: An Empirical Study · IEEE Trans. Software Eng. 2017 An empirical study on program comprehension with reactive programming · SIGSOFT FSE 2014 |
Program analysis › error detection
API misuse detection |
0.4 | 1 | 2019 | A Systematic Evaluation of Static API-Misuse Detectors · IEEE Trans. Software Eng. 2019 |
Empirical software engineering
developer studies |
0.4 | 1 | 2019 | Developer Testing in the IDE: Patterns, Beliefs, and Behavior · IEEE Trans. Software Eng. 2019 |
Software testing
test-driven development |
0.4 | 1 | 2019 | Developer Testing in the IDE: Patterns, Beliefs, and Behavior · IEEE Trans. Software Eng. 2019 |
Web and mobile security
mobile security |
0.3 | 1 | 2017 | CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017 |
Web and mobile security › mobile security
repackaged app detection |
0.3 | 1 | 2017 | CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017 |
Empirical software engineering
controlled experiment |
0.3 | 1 | 2017 | On the Positive Effect of Reactive Programming on Software Comprehension: An Empirical Study · IEEE Trans. Software Eng. 2017 |
Software maintenance and evolution › software ecosystems
library identification |
0.3 | 1 | 2017 | CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017 |
Programming languages and type systems
programming paradigms |
0.3 | 1 | 2017 | On the Positive Effect of Reactive Programming on Software Comprehension: An Empirical Study · IEEE Trans. Software Eng. 2017 |
Software maintenance and evolution
software ecosystems |
0.3 | 1 | 2017 | CodeMatch: obfuscation won't conceal your repackaged app · ESEC/SIGSOFT FSE 2017 |
Software maintenance and evolution
code recommendation |
0.2 | 1 | 2016 | Evaluating the evaluations of code recommender systems: a reality check · ASE 2016 |
Software testing › test infrastructure
benchmark construction |
0.1 | 1 | 2019 | A Systematic Evaluation of Static API-Misuse Detectors · IEEE Trans. Software Eng. 2019 |
Methods — techniques the papers use, named apart from their topics
library code removal · 0.6fuzzy hashing · 0.6bytecode abstraction · 0.6empirical study · 0.5static analysis · 0.4root cause analysis · 0.4field study · 0.4classification · 0.4IDE instrumentation · 0.4IDE interaction mining · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Hidden in Plain Sight: Obfuscated Strings Threatening Your PrivacyabstractString obfuscation is an established technique used by proprietary, closed-source applications to protect intellectual property. Furthermore, it is also frequently used to hide spyware or malware in applications. In both cases, the techniques range from bit-manipulation over XOR operations to AES encryption. However, string obfuscation techniques/tools suffer from one shared weakness: They generally have to embed the necessary logic to deobfuscate strings into the app code. In this paper, we show that most of the string obfuscation techniques found in malicious and benign applications for Android can easily be broken in an automated fashion. We developed StringHound, an open-source tool that uses novel techniques that identify obfuscated strings and reconstruct the originals using slicing. We evaluated StringHound on both benign and malicious Android apps. In summary, we deobfuscate almost 30 times more obfuscated strings than other string deobfuscation tools. Additionally, we analyzed 100,000 Google Play Store apps and found multiple obfuscated strings that hide vulnerable cryptographic usages, insecure internet accesses, API keys, hard-coded passwords, and exploitation of privileges without the awareness of the developer. Furthermore, our analysis reveals that not only malware uses string obfuscation but also benign apps make extensive use of string obfuscation. Leonid Glanz, Lars Baumgärtner, Michael Reif, Sven Amann, Pauline Anthonysamy, Mira Mezini |
AsiaCCS | 5 |
| 2019 | Investigating next steps in static API-misuse detectionabstractApplication Programming Interfaces (APIs) often impose constraints such as call order or preconditions. API misuses, i.e., usages violating these constraints, may cause software crashes, data-loss, and vulnerabilities. Researchers developed several approaches to detect API misuses, typically still resulting in low recall and precision. In this work, we investigate ways to improve API-misuse detection. We design MUDetect, an API-misuse detector that builds on the strengths of existing detectors and tries to mitigate their weaknesses. MUDetect uses a new graph representation of API usages that captures different types of API misuses and a systematically designed ranking strategy that effectively improves precision. Evaluation shows that MUDetect identifies real-world API misuses with twice the recall of previous detectors and 2.5x higher precision. It even achieves almost 4x higher precision and recall, when mining patterns across projects, rather than from only the target project. Sven Amann, Hoan Anh Nguyen, Sarah Nadi, Tien N. Nguyen, Mira Mezini |
MSR | 1 |
| 2019 | A Systematic Evaluation of Static API-Misuse DetectorsabstractApplication Programming Interfaces (APIs) often have usage constraints, such as restrictions on call order or call conditions. API misuses, i.e., violations of these constraints, may lead to software crashes, bugs, and vulnerabilities. Though researchers developed many API-misuse detectors over the last two decades, recent studies show that API misuses are still prevalent. Therefore, we need to understand the capabilities and limitations of existing detectors in order to advance the state of the art. In this paper, we present the first-ever qualitative and quantitative evaluation that compares static API-misuse detectors along the same dimensions, and with original author validation. To accomplish this, we develop MUC, a classification of API misuses, and MUBENCHPIPE, an automated benchmark for detector comparison, on top of our misuse dataset, MUBENCH. Our results show that the capabilities of existing detectors vary greatly and that existing detectors, though capable of detecting misuses, suffer from extremely low precision and recall. A systematic root-cause analysis reveals that, most importantly, detectors need to go beyond the naive assumption that a deviation from the most-frequent usage corresponds to a misuse and need to obtain additional usage examples to train their models. We present possible directions towards more-powerful API-misuse detectors. Sven Amann, Hoan Anh Nguyen, Sarah Nadi, Tien N. Nguyen, Mira Mezini |
IEEE Trans. Software Eng. | 1 |
| 2019 | Developer Testing in the IDE: Patterns, Beliefs, and BehaviorabstractSoftware testing is one of the key activities to achieve software quality in practice. Despite its importance, however, we have a remarkable lack of knowledge on how developers test in real-world projects. In this paper, we report on a large-scale field study with 2,443 software engineers whose development activities we closely monitored over 2.5 years in four integrated development environments (IDEs). Our findings, which largely generalized across the studied IDEs and programming languages Java and C#, question several commonly shared assumptions and beliefs about developer testing: half of the developers in our study do not test; developers rarely run their tests in the IDE; most programming sessions end without any test execution; only once they start testing, do they do it extensively; a quarter of test cases is responsible for three quarters of all test failures; 12 percent of tests show flaky behavior; Test-Driven Development (TDD) is not widely practiced; and software developers only spend a quarter of their time engineering tests, whereas they think they test half of their time. We summarize these practices of loosely guiding one's development efforts with the help of testing in an initial summary on Test-Guided Development (TGD), a behavior we argue to be closer to the development reality of most developers than TDD. Moritz Beller, Georgios Gousios, Annibale Panichella, Sebastian Proksch 0001, Sven Amann, Andy Zaidman |
IEEE Trans. Software Eng. | 5 |
| 2018 | Enriched event streams: a general dataset for empirical studies on in-IDE activities of software developersabstractDevelopers have been the subject of many empirical studies over the years. To assist developers in their everyday work, an understanding of their activities is necessary, especially how they develop source code. Unfortunately, conducting such studies is very expensive and researchers often resort to studying artifacts after the fact. To pave the road for future empirical studies on developer activities, we built FeedBaG, a general-purpose interaction tracker for Visual Studio that monitors development activities. The observations are stored in enriched event streams that encode a holistic picture of the in-IDE development process. Enriched event streams capture all commands invoked in the IDE with additional context information, such as the test being run or the accompanying fine-grained code edits. We used FeedBaG to collect enriched event streams from 81 developers. Over 1,527 days, we collected more than 11M events that correspond to 15K hours of working time. Sebastian Proksch 0001, Sven Amann, Sarah Nadi |
MSR | 2 |
| 2017 | CodeMatch: obfuscation won't conceal your repackaged appabstractAn established way to steal the income of app developers, or to trick users into installing malware, is the creation of repackaged apps. These are clones of - typically - successful apps. To conceal their nature, they are often obfuscated by their creators. But, given that it is a common best practice to obfuscate apps, a trivial identification of repackaged apps is not possible. The problem is further intensified by the prevalent usage of libraries. In many apps, the size of the overall code base is basically determined by the used libraries. Therefore, two apps, where the obfuscated code bases are very similar, do not have to be repackages of each other. To reliably detect repackaged apps, we propose a two step approach which first focuses on the identification and removal of the library code in obfuscated apps. This approach - LibDetect - relies on code representations which abstract over several parts of the underlying bytecode to be resilient against certain obfuscation techniques. Using this approach, we are able to identify on average 70% more used libraries per app than previous approaches. After the removal of an app's library code, we then fuzzy hash the most abstract representation of the remaining app code to ensure that we can identify repackaged apps even if very advanced obfuscation techniques are used. This makes it possible to identify repackaged apps. Using our approach, we found that ≈ 15% of all apps in Android app stores are repackages Leonid Glanz, Sven Amann, Michael Eichberg, Michael Reif, Ben Hermann, Johannes Lerch, Mira Mezini |
ESEC/SIGSOFT FSE | 2 |
| 2017 | Enriching in-IDE process information with fine-grained source code historyabstractCurrent studies on software development either focus on the change history of source code from version-control systems or on an analysis of simplistic in-IDE events without context information. Each of these approaches contains valuable information that is unavailable in the other case. Our work proposes enriched event streams, a solution that combines the best of both worlds and provides a holistic view on the software development process. Enriched event streams not only capture developer activities in the IDE, but also specialized context information, such as source-code snapshots for change events. To enable the storage of such code snapshots in an analyzable format, we introduce a new intermediate representation called Simplified Syntax Trees (SSTs) and build CA□RET, a platform that offers reusable components to conveniently work with enriched event streams. We implement FEEDBAG++, an instrumentation for Visual Studio that collects enriched event streams with code snapshots in the form of SSTs. We share a dataset of enriched event streams captured from 58 users and representing 915 days of work. Additionally, to demonstrate usefulness, we present three research applications that have already made use of CA□RET and FEEDBAG++. Sebastian Proksch 0001, Sarah Nadi, Sven Amann, Mira Mezini |
SANER | 3 |
| 2017 | On the Positive Effect of Reactive Programming on Software Comprehension: An Empirical StudyabstractStarting from the first investigations with strictly functional languages, reactive programming has been proposed as the programming paradigm for reactive applications. Over the years, researchers have enriched reactive languages with more powerful abstractions, embedded these abstractions into mainstream languages-including object-oriented languages-and applied reactive programming to several domains, such as GUIs, animations, Web applications, robotics, and sensor networks. However, an important assumption behind this line of research is that, beside other claimed advantages, reactive programming makes a wide class of otherwise cumbersome applications more comprehensible. This claim has never been evaluated. In this paper, we present the first empirical study that evaluates the effect of reactive programming on comprehension. The study involves 127 subjects and compares reactive programming to the traditional object-oriented style with the Observer design pattern. Our findings show that program comprehension is significantly enhanced by the reactive-programming paradigm-a result that suggests to further develop research in this field. Guido Salvaneschi, Sebastian Proksch 0001, Sven Amann, Sarah Nadi, Mira Mezini |
IEEE Trans. Software Eng. | 3 |
| 2016 | FeedBaG: An interaction tracker for Visual StudioabstractIntegrated Development Environments (IDEs) provide a convenient standalone solution that supports developers during various phases of software development. In order to provide better support for developers within such IDEs, we need to understand how developers use them. To infer useful conclusions, such information should be gathered for different types of IDEs, for different programming languages, and in different development settings. In this paper, we present FEEDBAG, an extension for Visual Studio that tracks developers' interactions with the IDE. FEEDBAG generates a rich stream of interaction events and provides means for developers to review and submit the data to a server. We recently used the tool in a study, recording more than 6,300 hours of work time. Future studies with different user groups are needed to explore and compare IDE-usage aspects, like code-comprehension assistance, in detail. Therefore, we publish FEEDBAG and encourage other researchers to use it as well. Sven Amann, Sebastian Proksch 0001, Sarah Nadi |
ICPC | 1 |
| 2016 | Evaluating the evaluations of code recommender systems: a reality checkabstractWhile researchers develop many new exciting code recommender systems, such as method-call completion, code-snippet completion, or code search, an accurate evaluation of such systems is always a challenge. We analyzed the current literature and found that most of the current evaluations rely on artificial queries extracted from released code, which begs the question: Do such evaluations reflect real-life usages? To answer this question, we capture 6,189 fine-grained development histories from real IDE interactions. We use them as a ground truth and extract 7,157 real queries for a specific method-call recommender system. We compare the results of such real queries with different artificial evaluation strategies and check several assumptions that are repeatedly used in research, but never empirically evaluated. We find that an evolving context that is often observed in practice has a major effect on the prediction quality of recommender systems, but is not commonly reflected in artificial evaluations. Sebastian Proksch 0001, Sven Amann, Sarah Nadi, Mira Mezini |
ASE | 2 |
| 2016 | MUBench: a benchmark for API-misuse detectorsabstractOver the last few years, researchers proposed a multitude of automated bug-detection approaches that mine a class of bugs that we call API misuses. Evaluations on a variety of software products show both the omnipresence of such misuses and the ability of the approaches to detect them. Sven Amann, Sarah Nadi, Hoan Anh Nguyen, Tien N. Nguyen, Mira Mezini |
MSR | 1 |
| 2016 | A dataset of simplified syntax trees for C#abstractIn this paper, we present a curated collection of 2833 C# solutions taken from Github. We encode the data in a new intermediate representation (IR) that facilitates further analysis by restricting the complexity of the syntax tree and by avoiding implicit information. The dataset is intended as a standardized input for research on recommendation systems for software engineering, but is also useful in many other areas that analyze source code. Sebastian Proksch 0001, Sven Amann, Sarah Nadi, Mira Mezini |
MSR | 2 |
| 2016 | A Study of Visual Studio Usage in PracticeabstractIntegrated Development Environments (IDEs) provide a convenient standalone solution that supports developers during various phases of software development. In order to provide better support for developers within such IDEs, we need to understand how much time developers spend using various parts of a given IDE and how often they use available assistance tools. To infer useful conclusions, such information should be gathered for different types of IDEs for different languages. In this paper, we instrument the previously unexplored Visual Studio IDE and track the interactions of developers at an industry partner's software-development department. As a result, we capture interactions for more than 6300 hours of work time, from between 27 and 84 professional C# developers. Our work reports how much time professional developers spend on activities such as code editing and execution or navigation, as well as how often they use assistance tools provided by the IDE. We compare our findings to those of prior studies involving other IDEs and discuss the implications of the commonalities and differences for research on (integrated) developer-assistance tools. Sven Amann, Sebastian Proksch 0001, Sarah Nadi, Mira Mezini |
SANER | 1 |
| 2014 | An empirical study on program comprehension with reactive programmingabstractStarting from the first investigations with strictly functional languages, reactive programming has been proposed as THE programming paradigm for reactive applications. The advantages of designs based on this style over designs based on the Observer design pattern have been studied for a long time. Over the years, researchers have enriched reactive languages with more powerful abstractions, embedded these abstractions into mainstream languages – including object-oriented languages – and applied reactive programming to several domains, like GUIs, animations, Web applications, robotics, and sensor networks. However, an important assumption behind this line of research – that, beside other advantages, reactive programming makes a wide class of otherwise cumbersome applications more comprehensible – has never been evaluated. In this paper, we present the design and the results of the first empirical study that evaluates the effect of reactive programming on comprehensibility compared to the traditional object-oriented style with the Observer design pattern. Results confirm the conjecture that comprehensibility is enhanced by reactive programming. In the experiment, the reactive programming group significantly outperforms the other group. Guido Salvaneschi, Sven Amann, Sebastian Proksch 0001, Mira Mezini |
SIGSOFT FSE | 2 |