COSPA: Identifying Key Classes in Object-Oriented Software Using Preference Aggregation

Software comprehension helps us to maintain software better. The developers often use documentation and mutual communication to understand software. However, the incompletion of documentation usually causes some problems such that we cannot acquire the detailed information of software. So researcher...

Full description

Bibliographic Details
Main Authors: Xin Du, Tian Wang, Weifeng Pan, Muchou Wang, Bo Jiang, Yiming Xiang, Chunlai Chai, Jiale Wang, Chengxiang Yuan
Format: Article
Language:English
Published: IEEE 2021-01-01
Series:IEEE Access
Subjects:
Online Access:https://ieeexplore.ieee.org/document/9514899/
_version_ 1819137988793204736
author Xin Du
Tian Wang
Weifeng Pan
Muchou Wang
Bo Jiang
Yiming Xiang
Chunlai Chai
Jiale Wang
Chengxiang Yuan
author_facet Xin Du
Tian Wang
Weifeng Pan
Muchou Wang
Bo Jiang
Yiming Xiang
Chunlai Chai
Jiale Wang
Chengxiang Yuan
author_sort Xin Du
collection DOAJ
description Software comprehension helps us to maintain software better. The developers often use documentation and mutual communication to understand software. However, the incompletion of documentation usually causes some problems such that we cannot acquire the detailed information of software. So researchers are now using key classes as starting points for software understanding and propose several effective methods for key class identification. Such methods are mostly implemented using supervised and unsupervised learning methods; however, they may be subject to class imbalance, insufficient amount of data, and lack of accuracy. In this paper, we propose a novel approach, called COSPA (identifying key <underline>C</underline>lasses in <underline>O</underline>bject-Oriented <underline>S</underline>oftware using <underline>P</underline>reference <underline>A</underline>ggregation), to identify key classes in software. Our approach is inspired by the social choice theory and uses Kemeny-Young method to find a preference that minimizes the total difference between different pairs of sequences returned by three key class identification methods (i.e., a-index, InDeg, and OSE). Further, we rank the classes in descending order according to that preference set, and a small number of top-ranked classes are considered as key candidates. To better evaluate the performance of our approach, we apply it to six Java software systems and compare it with nine state-of-the-art approaches. In the experiments, we use Friedman to evaluate all methods in the whole set of research subjects; results show that, though no single method works always best in all subject systems, our method indeed performs better than others.
first_indexed 2024-12-22T10:59:37Z
format Article
id doaj.art-85a8d8644a6e47cbaaf1e86185daa97b
institution Directory Open Access Journal
issn 2169-3536
language English
last_indexed 2024-12-22T10:59:37Z
publishDate 2021-01-01
publisher IEEE
record_format Article
series IEEE Access
spelling doaj.art-85a8d8644a6e47cbaaf1e86185daa97b2022-12-21T18:28:33ZengIEEEIEEE Access2169-35362021-01-01911476711478010.1109/ACCESS.2021.31054759514899COSPA: Identifying Key Classes in Object-Oriented Software Using Preference AggregationXin Du0https://orcid.org/0000-0003-0356-623XTian Wang1Weifeng Pan2https://orcid.org/0000-0001-6355-1385Muchou Wang3Bo Jiang4Yiming Xiang5Chunlai Chai6Jiale Wang7Chengxiang Yuan8School of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou, ChinaSchool of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou, ChinaSchool of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou, ChinaWenzhou University Library, Wenzhou University, Wenzhou, ChinaSchool of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou, ChinaSchool of Management and E-Business, Zhejiang Gongshang University, Hangzhou, ChinaSchool of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou, ChinaSchool of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou, ChinaSchool of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou, ChinaSoftware comprehension helps us to maintain software better. The developers often use documentation and mutual communication to understand software. However, the incompletion of documentation usually causes some problems such that we cannot acquire the detailed information of software. So researchers are now using key classes as starting points for software understanding and propose several effective methods for key class identification. Such methods are mostly implemented using supervised and unsupervised learning methods; however, they may be subject to class imbalance, insufficient amount of data, and lack of accuracy. In this paper, we propose a novel approach, called COSPA (identifying key <underline>C</underline>lasses in <underline>O</underline>bject-Oriented <underline>S</underline>oftware using <underline>P</underline>reference <underline>A</underline>ggregation), to identify key classes in software. Our approach is inspired by the social choice theory and uses Kemeny-Young method to find a preference that minimizes the total difference between different pairs of sequences returned by three key class identification methods (i.e., a-index, InDeg, and OSE). Further, we rank the classes in descending order according to that preference set, and a small number of top-ranked classes are considered as key candidates. To better evaluate the performance of our approach, we apply it to six Java software systems and compare it with nine state-of-the-art approaches. In the experiments, we use Friedman to evaluate all methods in the whole set of research subjects; results show that, though no single method works always best in all subject systems, our method indeed performs better than others.https://ieeexplore.ieee.org/document/9514899/Complex networkkey classesdivergencesoftware comprehension
spellingShingle Xin Du
Tian Wang
Weifeng Pan
Muchou Wang
Bo Jiang
Yiming Xiang
Chunlai Chai
Jiale Wang
Chengxiang Yuan
COSPA: Identifying Key Classes in Object-Oriented Software Using Preference Aggregation
IEEE Access
Complex network
key classes
divergence
software comprehension
title COSPA: Identifying Key Classes in Object-Oriented Software Using Preference Aggregation
title_full COSPA: Identifying Key Classes in Object-Oriented Software Using Preference Aggregation
title_fullStr COSPA: Identifying Key Classes in Object-Oriented Software Using Preference Aggregation
title_full_unstemmed COSPA: Identifying Key Classes in Object-Oriented Software Using Preference Aggregation
title_short COSPA: Identifying Key Classes in Object-Oriented Software Using Preference Aggregation
title_sort cospa identifying key classes in object oriented software using preference aggregation
topic Complex network
key classes
divergence
software comprehension
url https://ieeexplore.ieee.org/document/9514899/
work_keys_str_mv AT xindu cospaidentifyingkeyclassesinobjectorientedsoftwareusingpreferenceaggregation
AT tianwang cospaidentifyingkeyclassesinobjectorientedsoftwareusingpreferenceaggregation
AT weifengpan cospaidentifyingkeyclassesinobjectorientedsoftwareusingpreferenceaggregation
AT muchouwang cospaidentifyingkeyclassesinobjectorientedsoftwareusingpreferenceaggregation
AT bojiang cospaidentifyingkeyclassesinobjectorientedsoftwareusingpreferenceaggregation
AT yimingxiang cospaidentifyingkeyclassesinobjectorientedsoftwareusingpreferenceaggregation
AT chunlaichai cospaidentifyingkeyclassesinobjectorientedsoftwareusingpreferenceaggregation
AT jialewang cospaidentifyingkeyclassesinobjectorientedsoftwareusingpreferenceaggregation
AT chengxiangyuan cospaidentifyingkeyclassesinobjectorientedsoftwareusingpreferenceaggregation