Efficient static analysis and verification of featured transition systems
A Featured Transition System (FTS) models the behaviour of all products of a Software Product Line (SPL) in a single compact structure, by associating action-labelled transitions with features that condition their presence in product behaviour. It ...
Conclusion stability for natural language based mining of design discussions
Developer discussions range from in-person hallway chats to comment chains on bug reports. Being able to identify discussions that touch on software design would be helpful in documentation and refactoring software. Design mining is the ...
TaintBench: Automatic real-world malware benchmarking of Android taint analyses
- Linghui Luo,
- Felix Pauck,
- Goran Piskachev,
- Manuel Benz,
- Ivan Pashchenko,
- Martin Mory,
- Eric Bodden,
- Ben Hermann,
- Fabio Massacci
Due to the lack of established real-world benchmark suites for static taint analyses of Android applications, evaluations of these analyses are often restricted and hard to compare. Even in evaluations that do use real-world apps, details about ...
Studying eventual connectivity issues in Android apps
- Camilo Escobar-Velásquez,
- Alejandro Mazuera-Rozo,
- Claudia Bedoya,
- Michael Osorio-Riaño,
- Mario Linares-Vásquez,
- Gabriele Bavota
Mobile apps have become indispensable for daily life, not only for individuals but also for companies/organizations that offer their services digitally. Inherited by the mobility of devices, there are no limitations regarding the locations or ...
An exploratory study on the repeatedly shared external links on Stack Overflow
On Stack Overflow, users reuse 11,926,354 external links to share the resources hosted outside the Stack Overflow website. The external links connect to the existing programming-related knowledge and extend the crowdsourced knowledge on Stack ...
Deep security analysis of program code: A systematic literature review
Due to the continuous digitalization of our society, distributed and web-based applications become omnipresent and making them more secure gains paramount relevance. Deep learning (DL) and its representation learning approach are increasingly been ...
Demystifying regular expression bugs: A comprehensive study on regular expression bug causes, fixes, and testing
Regular expressions cause string-related bugs and open security vulnerabilities for DOS attacks. However, beyond ReDoS (Regular expression Denial of Service), little is known about the extent to which regular expression issues affect software ...
Mining and relating design contexts and design patterns from Stack Overflow
Design contexts are factors that shape a design, and whilst they are recognised by developers, they are typically tacit. Unlike software requirements, software engineering researchers have paid little attention to design contexts and there is ...
Reviewing rounds prediction for code patches
Code review is one of the common activities to guarantee the reliability of software, while code review is time-consuming as it requires reviewers to inspect the source code of each patch. A patch may be reviewed more than once before it is ...
“More Than Deep Learning”: post-processing for API sequence recommendation
In the daily development process, developers often need assistance in finding a sequence of APIs to accomplish their development tasks. Existing deep learning models, which have recently been developed for recommending one single API, can be ...
Game-based Sprint retrospectives: multiple action research
In today’s fast-paced world of rapid technological change, software development teams need to constantly revise their work practices. Not surprisingly, regular reflection on how to become more effective is perceived as one of the most important ...
How do i refactor this? An empirical study on refactoring trends and topics in Stack Overflow
- Anthony Peruma,
- Steven Simmons,
- Eman Abdullah AlOmar,
- Christian D. Newman,
- Mohamed Wiem Mkaouer,
- Ali Ouni
An essential part of software maintenance and evolution, refactoring is performed by developers, regardless of technology or domain, to improve the internal quality of the system, and reduce its technical debt. However, choosing the appropriate ...
Dynamical analysis of diversity in rule-based open source network intrusion detection systems
Diverse layers of defence play an important role in the design of defence-in-depth architectures. The use of Intrusion Detection Systems (IDSs) are ubiquitous in this design. But the selection of the “right” IDSs in various configurations is an ...
Injecting software faults in Python applications: The OpenStack case study
Software fault injection techniques have been largely used as means for evaluating the dependability of systems in presence of certain types of faults. Despite the large diversity of tools offering the possibility of emulating the presence of ...
Information retrieval versus deep learning approaches for generating traceability links in bilingual projects
Software traceability links are established between diverse artifacts of the software development process in order to support tasks such as compliance analysis, safety assurance, and requirements validation. However, practice has shown that it is ...
Quick remedy commits and their impact on mining software repositories
Most changes during software maintenance and evolution are not atomic changes, but rather the result of several related changes affecting different parts of the code. It may happen that developers omit needed changes, thus leaving a task partially ...
Developers perception of peer code review in research software development
Research software is software developed by and/or used by researchers, across a wide variety of domains, to perform their research. Because of the complexity of research software, developers cannot conduct exhaustive testing. As a result, ...
An empirical study of developers’ discussions about security challenges of different programming languages
Given programming languages can provide different types and levels of security support, it is critically important to consider security aspects while selecting programming languages for developing software systems. Inadequate consideration of ...
Ethics in the mining of software repositories
Research in Mining Software Repositories (MSR) is research involving human subjects, as the repositories usually contain data about developers’ and users’ interactions with the repositories and with each other. The ethics issues raised by such ...
GitHub Discussions: An exploratory study of early adoption
Discussions is a new feature of GitHub for asking questions or discussing topics outside of specific Issues or Pull Requests. Before being available to all projects in December 2020, it had been tested on selected open source software projects. To ...
Studying donations and their expenses in open source projects: a case study of GitHub projects collecting donations through open collectives
Operating an open source project requires not only intrinsic motivation (e.g., the joy of participation) but also extrinsic motivation (e.g., financial incentives). Almost 95% of open source projects are no longer maintained after a year. Nowadays,...
On the analysis of non-coding roles in open source development: An empirical study of NPM package projects
The role of non-coding contributors in Open Source Software (OSS) is poorly understood. Most of current research around OSS development focuses on the coding aspects of the project (e.g., commits, pull requests or code reviews) while ignoring the ...
Enjoy your observability: an industrial survey of microservice tracing and analysis
Microservice systems are often deployed in complex cloud-based environments and may involve a large number of service instances being dynamically created and destroyed. It is thus essential to ensure observability to understand these microservice ...
Omni: automated ensemble with unexpected models against adversarial evasion attack
Machine learning-based security detection models have become prevalent in modern malware and intrusion detection systems. However, previous studies show that such models are susceptible to adversarial evasion attacks. In this type of attack,...
Rap4DQ: Learning to recommend relevant API documentation for developer questions
Developers often face difficulties in using different API methods during the software development process. Answering API related questions on API Q&A forums often costs API development teams a lot of time. To help save time for API development ...
Using code reviews to automatically configure static analysis tools
- Fiorella Zampetti,
- Saghan Mudbhari,
- Venera Arnaoudova,
- Massimiliano Di Penta,
- Sebastiano Panichella,
- Giuliano Antoniol
Developers often use Static Code Analysis Tools (SCAT) to automatically detect different kinds of quality flaws in their source code. Since many warnings raised by SCATs may be irrelevant for a project/organization, it can be possible to leverage ...