Applications of Multi-view Learning Approaches for Software Comprehension

02/01/2019
by   Amir Saeidi, et al.
0

Program comprehension concerns the ability of an individual to make an understanding of an existing software system to extend or transform it. Software systems comprise of data that are noisy and missing, which makes program understanding even more difficult. A software system consists of various views including the module dependency graph, execution logs, evolutionary information and the vocabulary used in the source code, that collectively defines the software system. Each of these views contain unique and complementary information; together which can more accurately describe the data. In this paper, we investigate various techniques for combining different sources of information to improve the performance of a program comprehension task. We employ state-of-the-art techniques from learning to 1) find a suitable similarity function for each view, and 2) compare different multi-view learning techniques to decompose a software system into high-level units and give component-level recommendations for refactoring of the system, as well as cross-view source code search. The experiments conducted on 10 relatively large Java software systems show that by fusing knowledge from different views, we can guarantee a lower bound on the quality of the modularization and even improve upon it. We proceed by integrating different sources of information to give a set of high-level recommendations as to how to refactor the software system. Furthermore, we demonstrate how learning a joint subspace allows for performing cross-modal retrieval across views, yielding results that are more aligned with what the user intends by the query. The multi-view approaches outlined in this paper can be employed for addressing problems in software engineering that can be encoded in terms of a learning problem, such as software bug prediction and feature location.

READ FULL TEXT
research
07/25/2020

Joint Featurewise Weighting and Lobal Structure Learning for Multi-view Subspace Clustering

Multi-view clustering integrates multiple feature sets, which reveal dis...
research
08/16/2019

Multi-View Broad Learning System for Primate Oculomotor Decision Decoding

Multi-view learning improves the learning performance by utilizing multi...
research
07/09/2020

Multi-view Orthonormalized Partial Least Squares: Regularizations and Deep Extensions

We establish a family of subspace-based learning method for multi-view l...
research
08/25/2023

Investigating the Impact of Vocabulary Difficulty and Code Naturalness on Program Comprehension

Context: Developers spend most of their time comprehending source code d...
research
08/04/2017

On the Effect of Semantically Enriched Context Models on Software Modularization

Many of the existing approaches for program comprehension rely on the li...
research
08/06/2019

Scalable Inference of System-level Models from Component Logs

Behavioral software models play a key role in many software engineering ...
research
05/13/2022

dewolf: Improving Decompilation by leveraging User Surveys

Analyzing third-party software such as malware or firmware is a crucial ...

Please sign up or login with your details

Forgot password? Click here to reset