What kinds of contracts do ML APIs need?
Recent work has shown that Machine Learning (ML) programs are error-prone and called for contracts for ML code. Contracts, as in the design by contract methodology, help document APIs and aid API users in writing correct code. The question is: ...
Evaluating seed selection for fuzzing JavaScript engines
JavaScript (JS), as a platform-independent programming language, remains to be the most popular language over the years. However, popular JavaScript engines that have been widely utilized by web browsers to interpret JS code, have become the most ...
Computation offloading for ground robotic systems communicating over WiFi – an empirical exploration on performance and energy trade-offs
Robotic systems are known to perform computation-intensive tasks with limited computational resources and battery life. Such systems might benefit from offloading heavy workloads to the Cloud; however, in some cases, this implies high ...
Technical leverage analysis in the Python ecosystem
Technical leverage is the ratio between dependencies (other people’s code) and own codes of a software package. It has been shown to be useful to characterize the Java ecosystem and there are also studies on the NPM ecosystem available.
...Automated NFR testing in continuous integration environments: a multi-case study of Nordic companies
Non-functional requirements (NFRs) (also referred to as system qualities) are essential for developing high-quality software. Notwithstanding its importance, NFR testing remains challenging, especially in terms of automation. Compared to ...
On the Investigation of Empirical Contradictions - Aggregated Results of Local Studies on Readability and Comprehensibility of Source Code
Reading and understanding the source code are fundamental to supporting software programmers’ daily activities. Still, there is no agreement regarding the program attributes needed to achieve the readability and comprehensibility of source ...
Automated detection, categorisation and developers’ experience with the violations of honesty in mobile apps
- Humphrey O. Obie,
- Hung Du,
- Kashumi Madampe,
- Mojtaba Shahin,
- Idowu Ilekura,
- John Grundy,
- Li Li,
- Jon Whittle,
- Burak Turhan,
- Hourieh Khalajzadeh
Human values such as honesty, social responsibility, fairness, privacy, and the like are things considered important by individuals and society. Software systems, including mobile software applications (apps), may ignore or violate such values, ...
On the effectiveness of log representation for log-based anomaly detection
Logs are an essential source of information for people to understand the running status of a software system. Due to the evolving modern software architecture and maintenance methods, more research efforts have been devoted to automated log ...
Using gameplay videos for detecting issues in video games
The game industry is increasingly growing in recent years. Every day, millions of people play video games, not only as a hobby, but also for professional competitions ( e.g., e-sports or speed-running) or for making business by entertaining ...
When conversations turn into work: a taxonomy of converted discussions and issues in GitHub
Popular and large contemporary open-source projects now embrace a diverse set of documentation for communication channels. Examples include contribution guidelines (i.e., commit message guidelines, coding rules, submission guidelines), code of ...
Do RESTful API design rules have an impact on the understandability of Web APIs?
Web APIs are one of the most used ways to expose application functionality on the Web, and their understandability is important for efficiently using the provided resources. While many API design rules exist, empirical evidence for the ...
GitHub Actions: The Impact on the Pull Request Process
Software projects frequently use automation tools to perform repetitive activities in the distributed software development process. Recently, GitHub introduced GitHub Actions, a feature providing automated workflows for software projects. ...
Operationalizing validity of empirical software engineering studies
Empirical Software Engineering studies apply methods, like linear regression, statistic tests, or correlation analysis, to better understand software engineering scenarios. Assuring the validity of such methods and corresponding results is ...
A syntax-guided multi-task learning approach for Turducken-style code generation
Due to the development of pre-trained language models, automated code generation techniques have shown great promise in recent years. However, the generated code will not always adhere to syntactic constraints of the target language, especially in ...
Experimental comparison of features, analyses, and classifiers for Android malware detection
- Lwin Khin Shar,
- Biniam Fisseha Demissie,
- Mariano Ceccato,
- Yan Naing Tun,
- David Lo,
- Lingxiao Jiang,
- Christoph Bienert
Android malware detection has been an active area of research. In the past decade, several machine learning-based approaches based on different types of features that may characterize Android malware behaviors have been proposed. The usually-...
The software heritage license dataset (2022 edition)
When software is released publicly, it is common to include with it either the full text of the license or licenses under which it is published, or a detailed reference to them. Therefore public licenses, including FOSS (free, open source ...
CoCoAST: Representing Source Code via Hierarchical Splitting and Reconstruction of Abstract Syntax Trees
Recently, machine learning techniques especially deep learning techniques have made substantial progress on some code intelligence tasks such as code summarization, code search, clone detection, etc. How to represent source code to effectively ...
Is GitHub’s Copilot as bad as humans at introducing vulnerabilities in code?
Several advances in deep learning have been successfully applied to the software development process. Of recent interest is the use of neural language models to build tools, such as Copilot, that assist in writing code. In this paper we perform a ...
Developers talking about code quality
- Jürgen Börstler,
- Kwabena E. Bennin,
- Sara Hooshangi,
- Johan Jeuring,
- Hieke Keuning,
- Carsten Kleiner,
- Bonnie MacKellar,
- Rodrigo Duran,
- Harald Störrle,
- Daniel Toll,
- Jelle van Assema
There are many aspects of code quality, some of which are difficult to capture or to measure. Despite the importance of software quality, there is a lack of commonly accepted measures or indicators for code quality that can be linked to quality ...
Studying the characteristics of AIOps projects on GitHub
Artificial Intelligence for IT Operations (AIOps) leverages AI approaches to handle the massive amount of data generated during the operations of software systems. Prior works have proposed various AIOps solutions to support different tasks in ...
Analyzing the BizDev interface in an enterprise context: a case of developers acting in business
Currently, organizations seek to evolve software engineering methodologies targeting a wider and healthier collaboration among their functional areas. In this context, the interface between business and development (BizDev) includes all the ...
Energy efficiency of the Visitor Pattern: contrasting Java and C++ implementations
Design patterns are applied frequently during software evolution in order to make the software more flexible and amenable to extension. One little-studied aspect of design patterns is their propensity to increase run-time energy consumption due to ...
An empirical comparison of ethnic and gender diversity of DevOps and non-DevOps contributions to open-source projects
Diversity has been recognized as a high-value team characteristic. Both open-source and proprietary software organizations have been investing heavily in creating more diverse teams. Prior work has raised diversity concerns about open-source ...
An empirical study on software understandability and its dependence on code characteristics
Insufficient code understandability makes software difficult to inspect and maintain and is a primary cause of software development cost. Several source code measures may be used to identify difficult-to-understand code, including well-...
On the coordination of vulnerability fixes: An empirical study of practices from 13 CVE numbering authorities
The Common Vulnerabilities and Exposures (CVE) program is dedicated to analyzing vulnerabilities, then to assigning a unique ID to them and disclosing the vulnerabilities to affected software vendors. A CVE Numbering Authority (CNA) is a key ...
We do not understand what it says – studying student perceptions of software modelling
Despite the potential benefits of software modelling, developers have shown a considerable reluctance towards its application. There is substantial existing research studying industrial use and technical challenges of modelling. However, ...