1,720,997 research outputs found
Using BERT to Predict Bug-Fixing Time
Prediction of the resolution time of a newly-submitted bug is a relevant aspect during the bug triage process since it can help project managers to better estimate software maintenance efforts and better manage software projects. Once a bug is reported, it is typically recorded in a Bug Tracking System, and it is assigned to a developer in order to solve the issue. The contribution of this paper is to provide a deep learning approach for the resolution of the bug-fixing time prediction, proposing a new feature set, consisting of the description of the issue and comments of the developers, in order to perform transfer learning on a pre-trained language representations model, called BERT. The problem of predicting the resolution time of a bug is therefore formulated as a supervised text categorization task. BERT makes use of a self-attention mechanism that allows learning the bidirectional context representation of a word in a sentence, which constitutes one of the main advantages over the previously proposed solutions. Experimental results show the proposed approach has effective bug-fixing time prediction ability
Flipping the Laboratory in an Academic Course on Object-Oriented Paradigm
This paper reports an application of a teaching strategy based on a flipped classroom approach for laboratory sessions of a second-year programming university course, Programming II, held at the University of Bari and focused on the OOP paradigm. In our experience, this approach lets the students train to implement programs on their own before coming to class. Here, they will apply the knowledge during face-to-face lessons to elaborate, reflect and compare on what has been learned. We provided an evaluation of the approach through a quasi-experiment aiming at comparing two groups of students: one followed laboratory sessions by a flipped classroom approach and the other one by the traditional approach. Results show that the flipped group helps to produce better source code than the traditional group over the course of the time
Towards automatic assessment of object-oriented programs
The computing education community has shown a long-time interest in how to analyze the Object-Oriented (OO) source codedeveloped by students to provide them with useful formative tips.In this paper, we propose and evaluate an approach to analyzehow students use Java and its language constructs. The approach isimplemented through a cloud-based integrated development environment (IDE) and it is based on the analysis of the most commonviolations of the OO paradigm in the student source code. Moreover,the IDE supports the automatic generation of reports about student's mistakes and misconceptions that can be used by instructorsto improve the course design. The paper discusses the preliminaryresults of an experiment performed in a class of a Programming IIcourse to investigate the effects of the provided reports in terms ofcoding ability (concerning the correctness of the produced code)
Software Analytics to Support Students in Object-Oriented Programming Tasks: An Empirical Study
The computing education community has shown a long-time interest in how to analyze the Object-Oriented (OO) source code developed by students to provide them with useful formative tips. Instructors need to understand the student's difficulties to provide precise feedback on most frequent mistakes and to shape, design and effectively drive the course. This paper proposes and evaluates an approach allowing to analyze student's source code and to automatically generate feedback about the more common violations of the produced code. The approach is implemented through a cloud-based tool allowing to monitor how students use language constructs based on the analysis of the most common violations of the Object-Oriented paradigm in the student source code. Moreover, the tool supports the generation of reports about student's mistakes and misconceptions that can be used to improve the students' education. The paper reports the results of a quasi-experiment performed in a class of a CS1 course to investigate the effects of the provided reports in terms of coding ability (concerning the correctness and the quality of the produced source code). Results show that after the course the treatment group obtained higher scores and produced better source code than the control group following the feedback provided by the teachers
Managing Domain Analysis in Software Product Lines with Decision Tables: An Approach for Decision Representation, Anomaly Detection and Resolution
This paper proposes an approach to managing domain analysis in Software Product Lines (SPLs) using Decision Tables (DTs) that are adapted to the unique characteristics of SPLs. The adapted DTs enable clear and explicit representation of the intricate decisions involved in deriving each software product. Additionally, a method is presented for detecting and resolving anomalies that may disrupt proper product derivation. The effectiveness of the approach is evaluated through a case study, which suggests that it has the potential to significantly reduce development time and costs for SPLs. Future research directions include investigating the integration of SAT solvers or other methods to improve specific cases of scalability and conducting empirical validation to further assess the effectiveness of the proposed approach
Predicting Bug-Fixing Time Using the Latent Dirichlet Allocation Model with Covariates
The expected bug-fixing resolution time is one of the most important factors in bug triage, as an accurate prediction of bug-fixing times of newly submitted bugs helps to support both resource allocation and the triage process. Our approach treats the problem of bug-fix time estimation as a text categorization problem. To address this problem, we used Latent Dirichlet Allocation (LDA) model, a hierarchical statistical model based on what are called topics. Formally, a topic is a probability distribution over terms in a vocabulary. Such topic models provide useful descriptive statistics for a collection, which facilitates tasks like classification. Here we build a classification model on latent Dirichlet allocation (LDA). In LDA, we treat the topic proportions for a bug report as a draw from a Dirichlet distribution. We obtain the words in the bug report by repeatedly choosing a topic assignment from those proportions, then drawing a word from the corresponding topic. In supervised latent Dirichlet allocation (SLDA), we add to LDA a response variable associated with each document. Finally, we consider the supervised latent Dirichlet allocation with covariates (SLDAX) model, a generalization of SLDA, that incorporates manifest variables and latent topics as predictors of an outcome. We evaluated the proposed approach on a large dataset, composed of data gathered from defect tracking systems of five well-known open-source systems. Results show that SLDAX provides a better recall than those provided by topic models LDA-based
Malware Phylogeny Analysis using Data-Aware Declarative Process Mining
Mobile phones are currently the main targets of continuous malware attacks. Usually, new malicious code is generated conveniently changing the existing one. According to this, it becomes very useful to identify new approaches for the analysis of malware phylogeny. This paper proposes a data-aware process mining approach performing a malware dynamic analysis. The process mining is performed by using a multiperspective declarative approach allowing to model a malware family as a set of constraints (within their data attributes) among the system call traces gathered from infected applications. The models are used to detect execution patterns or other relationships among families. The obtained models can be used to verify if a checked malware is a potential member of a known malware family and its difference with respect to other malware variants of the family. The approach is implemented and applied on a dataset composed of 5648 trusted and malicious applications across 39 malware families. The obtained results show great performance in malware phylogeny generation
Reusing bugged source code to support novice programmers in debugging tasks
Novice programmers often encounter difficulties performing debugging tasks effectively. Even if modern development environments (IDEs) provide high-level support for navigating through code elements and for identifying the right conditions leading to the bug, debugging still requires considerable human effort. Programmers usually have to make hypotheses that are based on both program state evolution and their past debugging experiences. To mitigate this effort and allow novice programmers to gain debugging experience quickly, we propose an approach based on the reuse of existing bugs of open source systems to provide informed guidance from the failure site to the fault position. The goal is to help novices in reasoning on the most promising paths to follow and conditions to define. We implemented this approach as a tool that exploits the knowledge about fault and bug position in the system, as long as any bug of the system is known. The effectiveness of the proposed approach is validated through a quasi-experiment that qualitatively and quantitatively evaluates how the debugging performances of the students change when they are trained using the tool
Temporal convolutional networks for just-in-Time software defect prediction
Defect prediction and estimation techniques play a significant role in software maintenance and evolution. Recently, several research studies proposed just-in-time techniques to predict defective changes. Such prediction models make the developers check and fix the defects just at the time they are introduced (commit level). Nevertheless, early prediction of defects is still a challenging task that needs to be addressed and can be improved by getting higher performances. To address this issue this paper proposes an approach exploiting a large set of features corresponding to source code metrics detected from commits history of software projects. In particular, the approach uses deep temporal convolutional networks to make the fault prediction. The evaluation is performed on a large data-set, concerning four well-known open-source projects and shows that, under certain considerations, the proposed approach has effective defect proneness prediction ability
Data-Aware Declarative Process Mining for Malware Detection
Mobile devices have become, in the last years, an essential tool used to perform daily activities. However, they also have become the target of continuous malware attacks usually coming out from new malware obtained as a variant of existing ones. For this reason, we suppose that by comparing the behavior of a new application with those of known malware applications it is possible to define it as malicious or trusted. According to this, the current study proposes an approach based on a data-aware declarative process mining technique to identify similarities and recurring patterns in the system call traces generated by a set of malicious mobile applications. The obtained characterization, represented by a set of declarative constraints within their data attributes, can be considered as a run-time fingerprint of a malware useful to evaluate the membership of a new application to a given malware family. The empirical validation of the proposed approach is performed on a dataset of more than 1200 trusted and malicious applications coming out from eight malware families and the obtained results show a very good discrimination ability
- …
