7,334 research outputs found
MaintainoMATE: A GitHub App for Intelligent Automation of Maintenance Activities
Software development projects rely on issue tracking systems at the core of
tracking maintenance tasks such as bug reports, and enhancement requests.
Incoming issue-reports on these issue tracking systems must be managed in an
effective manner. First, they must be labelled and then assigned to a
particular developer with relevant expertise. This handling of issue-reports is
critical and requires thorough scanning of the text entered in an issue-report
making it a labor-intensive task. In this paper, we present a unified framework
called MaintainoMATE, which is capable of automatically categorizing the
issue-reports in their respective category and further assigning the
issue-reports to a developer with relevant expertise. We use the Bidirectional
Encoder Representations from Transformers (BERT), as an underlying model for
MaintainoMATE to learn the contextual information for automatic issue-report
labeling and assignment tasks. We deploy the framework used in this work as a
GitHub application. We empirically evaluate our approach on GitHub
issue-reports to show its capability of assigning labels to the issue-reports.
We were able to achieve an F1-score close to 80\%, which is comparable to
existing state-of-the-art results. Similarly, our initial evaluations show that
we can assign relevant developers to the issue-reports with an F1 score of
54\%, which is a significant improvement over existing approaches. Our initial
findings suggest that MaintainoMATE has the potential of improving software
quality and reducing maintenance costs by accurately automating activities
involved in the maintenance processes. Our future work would be directed
towards improving the issue-assignment module
Software Verification and Graph Similarity for Automated Evaluation of Students' Assignments
In this paper we promote introducing software verification and control flow
graph similarity measurement in automated evaluation of students' programs. We
present a new grading framework that merges results obtained by combination of
these two approaches with results obtained by automated testing, leading to
improved quality and precision of automated grading. These two approaches are
also useful in providing a comprehensible feedback that can help students to
improve the quality of their programs We also present our corresponding tools
that are publicly available and open source. The tools are based on LLVM
low-level intermediate code representation, so they could be applied to a
number of programming languages. Experimental evaluation of the proposed
grading framework is performed on a corpus of university students' programs
written in programming language C. Results of the experiments show that
automatically generated grades are highly correlated with manually determined
grades suggesting that the presented tools can find real-world applications in
studying and grading
Reason Maintenance - Conceptual Framework
This paper describes the conceptual framework for reason maintenance developed as part of
WP2
Diagnose network failures via data-plane analysis
Diagnosing problems in networks is a time-consuming and error-prone process. Previous tools to assist operators primarily focus on analyzing control
plane configuration. Configuration analysis is limited in that it cannot find
bugs in router software, and is harder to generalize across protocols since it
must model complex configuration languages and dynamic protocol behavior.
This paper studies an alternate approach: diagnosing problems through
static analysis of the data plane. This approach can catch bugs that are
invisible at the level of configuration files, and simplifies unified analysis of a
network across many protocols and implementations. We present Anteater, a
tool for checking invariants in the data plane. Anteater translates high-level
network invariants into boolean satisfiability problems, checks them against
network state using a SAT solver, and reports counterexamples if violations
have been found. Applied to a large campus network, Anteater revealed 23
bugs, including forwarding loops and stale ACL rules, with only five false
positives. Nine of these faults are being fixed by campus network operators
Should I Bug You? Identifying Domain Experts in Software Projects Using Code Complexity Metrics
In any sufficiently complex software system there are experts, having a
deeper understanding of parts of the system than others. However, it is not
always clear who these experts are and which particular parts of the system
they can provide help with. We propose a framework to elicit the expertise of
developers and recommend experts by analyzing complexity measures over time.
Furthermore, teams can detect those parts of the software for which currently
no, or only few experts exist and take preventive actions to keep the
collective code knowledge and ownership high. We employed the developed
approach at a medium-sized company. The results were evaluated with a survey,
comparing the perceived and the computed expertise of developers. We show that
aggregated code metrics can be used to identify experts for different software
components. The identified experts were rated as acceptable candidates by
developers in over 90% of all cases
A unified modulo scheduling and register allocation technique for clustered processors
This work presents a modulo scheduling framework for clustered ILP processors that integrates the cluster assignment, instruction scheduling and register allocation steps in a single phase. This unified approach is more effective than traditional approaches based on sequentially performing some (or all) of the three steps, since it allows optimizing the global code generation problem instead of searching for optimal solutions to each individual step. Besides, it avoids the iterative nature of traditional approaches, which require repeated applications of the three steps until a valid solution is found. The proposed framework includes a mechanism to insert spill code on-the-fly and heuristics to evaluate the quality of partial schedules considering simultaneously inter-cluster communications, memory pressure and register pressure. Transformations that allow trading pressure on a type of resource for another resource are also included. We show that the proposed technique outperforms previously proposed techniques. For instance, the average speed-up for the SPECfp95 is 36% for a 4-cluster configuration.Peer ReviewedPostprint (published version
ASSISTments Cross-Platform Mobile App
This Interactive Qualifying Project (IQP) delivers the ASSISTments web-based system to a mobile context through the creation of a cross-platform mobile application available for both Android and iOS devices. This improved mobile app serves as a replacement to the existing native ASSISTments apps that existed prior. This cross- platform mobile solution significantly consolidates the size of the app by providing a single code base that deploys to both Android and iOS. While written utilizing an intermediary framework, the app includes truly native app components in order to maintain user interface familiarity and deliver a seamless experience. Furthermore, this project structure unifies the mobile experience across different operating systems
- …