Exploring community structure of software Call Graph and its applications in class cohesion measurement

•We show that software static Call Graphs exhibit significant community structures.•We propose two new class cohesion metrics based on community structures.•The new metrics provide new and useful measurement of software class cohesion.•The new metrics perform better than existing metrics in software...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:The Journal of systems and software 2015-10, Vol.108, p.193-210
Hauptverfasser: Qu, Yu, Guan, Xiaohong, Zheng, Qinghua, Liu, Ting, Wang, Lidan, Hou, Yuqiao, Yang, Zijiang
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 210
container_issue
container_start_page 193
container_title The Journal of systems and software
container_volume 108
creator Qu, Yu
Guan, Xiaohong
Zheng, Qinghua
Liu, Ting
Wang, Lidan
Hou, Yuqiao
Yang, Zijiang
description •We show that software static Call Graphs exhibit significant community structures.•We propose two new class cohesion metrics based on community structures.•The new metrics provide new and useful measurement of software class cohesion.•The new metrics perform better than existing metrics in software fault prediction. Many complex networked systems exhibit natural divisions of network nodes. Each division, or community, is a densely connected subgroup. Such community structure not only helps comprehension but also finds wide applications in complex systems. Software networks, e.g., Class Dependency Networks, are such networks with community structures, but their characteristics at the function or method call granularity have not been investigated, which are useful for evaluating and improving software intra-class structure. Moreover, existing proposed applications of software community structure have not been directly compared or combined with existing software engineering practices. Comparison with baseline practices is needed to convince practitioners to adopt the proposed approaches. In this paper, we show that networks formed by software methods and their calls exhibit relatively significant community structures. Based on our findings we propose two new class cohesion metrics to measure the cohesiveness of object-oriented programs. Our experiment on 10 large open-source Java programs validate the existence of community structures and the derived metrics give additional and useful measurement of class cohesion. As an application we show that the new metrics are able to predict software faults more effectively than existing metrics.
doi_str_mv 10.1016/j.jss.2015.06.015
format Article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_journals_1700150735</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><els_id>S0164121215001259</els_id><sourcerecordid>3763434101</sourcerecordid><originalsourceid>FETCH-LOGICAL-c325t-fcb2c460f4d409f75d935ba7e07c17cb597ddc2de8f9fd31ddad99779522e21b3</originalsourceid><addsrcrecordid>eNp9kEtPwzAQhC0EEuXxA7hZ4pxgOw834oSqUpAqcYGz5fjROkri4HWA_ntclTOnWa1mZlcfQneU5JTQ-qHLO4CcEVrlpM6TnKEFXfIio4wtz9Eieco0U3aJrgA6QghnhC3Qbv0z9T64cYeVH4Z5dPGAIYZZxTkY7C0Gb-O3TPNK9j3eBDntsRw1dhGwnKbeKRmdHwG7EateAqSivYG0woORkFoGM8YbdGFlD-b2T6_Rx_P6ffWSbd82r6unbaYKVsXMqpapsia21CVpLK90U1St5IZwRblqq4ZrrZg2S9tYXVCtpW4azpuKMcNoW1yj-1PvFPznbCCKzs9hTCcF5SRxIbyokoueXCp4gGCsmIIbZDgISsSRp-hE4imOPAWpRZKUeTxlTHr_y5kgQDkzKqNdMCoK7d0_6V-fkIAt</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>1700150735</pqid></control><display><type>article</type><title>Exploring community structure of software Call Graph and its applications in class cohesion measurement</title><source>Elsevier ScienceDirect Journals Complete</source><creator>Qu, Yu ; Guan, Xiaohong ; Zheng, Qinghua ; Liu, Ting ; Wang, Lidan ; Hou, Yuqiao ; Yang, Zijiang</creator><creatorcontrib>Qu, Yu ; Guan, Xiaohong ; Zheng, Qinghua ; Liu, Ting ; Wang, Lidan ; Hou, Yuqiao ; Yang, Zijiang</creatorcontrib><description>•We show that software static Call Graphs exhibit significant community structures.•We propose two new class cohesion metrics based on community structures.•The new metrics provide new and useful measurement of software class cohesion.•The new metrics perform better than existing metrics in software fault prediction. Many complex networked systems exhibit natural divisions of network nodes. Each division, or community, is a densely connected subgroup. Such community structure not only helps comprehension but also finds wide applications in complex systems. Software networks, e.g., Class Dependency Networks, are such networks with community structures, but their characteristics at the function or method call granularity have not been investigated, which are useful for evaluating and improving software intra-class structure. Moreover, existing proposed applications of software community structure have not been directly compared or combined with existing software engineering practices. Comparison with baseline practices is needed to convince practitioners to adopt the proposed approaches. In this paper, we show that networks formed by software methods and their calls exhibit relatively significant community structures. Based on our findings we propose two new class cohesion metrics to measure the cohesiveness of object-oriented programs. Our experiment on 10 large open-source Java programs validate the existence of community structures and the derived metrics give additional and useful measurement of class cohesion. As an application we show that the new metrics are able to predict software faults more effectively than existing metrics.</description><identifier>ISSN: 0164-1212</identifier><identifier>EISSN: 1873-1228</identifier><identifier>DOI: 10.1016/j.jss.2015.06.015</identifier><identifier>CODEN: JSSODM</identifier><language>eng</language><publisher>New York: Elsevier Inc</publisher><subject>Class cohesion metrics ; Community structure ; Complex network ; Complex systems ; Java ; Open source software ; Software ; Software engineering ; Studies</subject><ispartof>The Journal of systems and software, 2015-10, Vol.108, p.193-210</ispartof><rights>2015 Elsevier Inc.</rights><rights>Copyright Elsevier Sequoia S.A. Oct 2015</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c325t-fcb2c460f4d409f75d935ba7e07c17cb597ddc2de8f9fd31ddad99779522e21b3</citedby><cites>FETCH-LOGICAL-c325t-fcb2c460f4d409f75d935ba7e07c17cb597ddc2de8f9fd31ddad99779522e21b3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://www.sciencedirect.com/science/article/pii/S0164121215001259$$EHTML$$P50$$Gelsevier$$H</linktohtml><link.rule.ids>314,776,780,3537,27901,27902,65534</link.rule.ids></links><search><creatorcontrib>Qu, Yu</creatorcontrib><creatorcontrib>Guan, Xiaohong</creatorcontrib><creatorcontrib>Zheng, Qinghua</creatorcontrib><creatorcontrib>Liu, Ting</creatorcontrib><creatorcontrib>Wang, Lidan</creatorcontrib><creatorcontrib>Hou, Yuqiao</creatorcontrib><creatorcontrib>Yang, Zijiang</creatorcontrib><title>Exploring community structure of software Call Graph and its applications in class cohesion measurement</title><title>The Journal of systems and software</title><description>•We show that software static Call Graphs exhibit significant community structures.•We propose two new class cohesion metrics based on community structures.•The new metrics provide new and useful measurement of software class cohesion.•The new metrics perform better than existing metrics in software fault prediction. Many complex networked systems exhibit natural divisions of network nodes. Each division, or community, is a densely connected subgroup. Such community structure not only helps comprehension but also finds wide applications in complex systems. Software networks, e.g., Class Dependency Networks, are such networks with community structures, but their characteristics at the function or method call granularity have not been investigated, which are useful for evaluating and improving software intra-class structure. Moreover, existing proposed applications of software community structure have not been directly compared or combined with existing software engineering practices. Comparison with baseline practices is needed to convince practitioners to adopt the proposed approaches. In this paper, we show that networks formed by software methods and their calls exhibit relatively significant community structures. Based on our findings we propose two new class cohesion metrics to measure the cohesiveness of object-oriented programs. Our experiment on 10 large open-source Java programs validate the existence of community structures and the derived metrics give additional and useful measurement of class cohesion. As an application we show that the new metrics are able to predict software faults more effectively than existing metrics.</description><subject>Class cohesion metrics</subject><subject>Community structure</subject><subject>Complex network</subject><subject>Complex systems</subject><subject>Java</subject><subject>Open source software</subject><subject>Software</subject><subject>Software engineering</subject><subject>Studies</subject><issn>0164-1212</issn><issn>1873-1228</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2015</creationdate><recordtype>article</recordtype><recordid>eNp9kEtPwzAQhC0EEuXxA7hZ4pxgOw834oSqUpAqcYGz5fjROkri4HWA_ntclTOnWa1mZlcfQneU5JTQ-qHLO4CcEVrlpM6TnKEFXfIio4wtz9Eieco0U3aJrgA6QghnhC3Qbv0z9T64cYeVH4Z5dPGAIYZZxTkY7C0Gb-O3TPNK9j3eBDntsRw1dhGwnKbeKRmdHwG7EateAqSivYG0woORkFoGM8YbdGFlD-b2T6_Rx_P6ffWSbd82r6unbaYKVsXMqpapsia21CVpLK90U1St5IZwRblqq4ZrrZg2S9tYXVCtpW4azpuKMcNoW1yj-1PvFPznbCCKzs9hTCcF5SRxIbyokoueXCp4gGCsmIIbZDgISsSRp-hE4imOPAWpRZKUeTxlTHr_y5kgQDkzKqNdMCoK7d0_6V-fkIAt</recordid><startdate>201510</startdate><enddate>201510</enddate><creator>Qu, Yu</creator><creator>Guan, Xiaohong</creator><creator>Zheng, Qinghua</creator><creator>Liu, Ting</creator><creator>Wang, Lidan</creator><creator>Hou, Yuqiao</creator><creator>Yang, Zijiang</creator><general>Elsevier Inc</general><general>Elsevier Sequoia S.A</general><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>201510</creationdate><title>Exploring community structure of software Call Graph and its applications in class cohesion measurement</title><author>Qu, Yu ; Guan, Xiaohong ; Zheng, Qinghua ; Liu, Ting ; Wang, Lidan ; Hou, Yuqiao ; Yang, Zijiang</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c325t-fcb2c460f4d409f75d935ba7e07c17cb597ddc2de8f9fd31ddad99779522e21b3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2015</creationdate><topic>Class cohesion metrics</topic><topic>Community structure</topic><topic>Complex network</topic><topic>Complex systems</topic><topic>Java</topic><topic>Open source software</topic><topic>Software</topic><topic>Software engineering</topic><topic>Studies</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Qu, Yu</creatorcontrib><creatorcontrib>Guan, Xiaohong</creatorcontrib><creatorcontrib>Zheng, Qinghua</creatorcontrib><creatorcontrib>Liu, Ting</creatorcontrib><creatorcontrib>Wang, Lidan</creatorcontrib><creatorcontrib>Hou, Yuqiao</creatorcontrib><creatorcontrib>Yang, Zijiang</creatorcontrib><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>The Journal of systems and software</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Qu, Yu</au><au>Guan, Xiaohong</au><au>Zheng, Qinghua</au><au>Liu, Ting</au><au>Wang, Lidan</au><au>Hou, Yuqiao</au><au>Yang, Zijiang</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Exploring community structure of software Call Graph and its applications in class cohesion measurement</atitle><jtitle>The Journal of systems and software</jtitle><date>2015-10</date><risdate>2015</risdate><volume>108</volume><spage>193</spage><epage>210</epage><pages>193-210</pages><issn>0164-1212</issn><eissn>1873-1228</eissn><coden>JSSODM</coden><abstract>•We show that software static Call Graphs exhibit significant community structures.•We propose two new class cohesion metrics based on community structures.•The new metrics provide new and useful measurement of software class cohesion.•The new metrics perform better than existing metrics in software fault prediction. Many complex networked systems exhibit natural divisions of network nodes. Each division, or community, is a densely connected subgroup. Such community structure not only helps comprehension but also finds wide applications in complex systems. Software networks, e.g., Class Dependency Networks, are such networks with community structures, but their characteristics at the function or method call granularity have not been investigated, which are useful for evaluating and improving software intra-class structure. Moreover, existing proposed applications of software community structure have not been directly compared or combined with existing software engineering practices. Comparison with baseline practices is needed to convince practitioners to adopt the proposed approaches. In this paper, we show that networks formed by software methods and their calls exhibit relatively significant community structures. Based on our findings we propose two new class cohesion metrics to measure the cohesiveness of object-oriented programs. Our experiment on 10 large open-source Java programs validate the existence of community structures and the derived metrics give additional and useful measurement of class cohesion. As an application we show that the new metrics are able to predict software faults more effectively than existing metrics.</abstract><cop>New York</cop><pub>Elsevier Inc</pub><doi>10.1016/j.jss.2015.06.015</doi><tpages>18</tpages></addata></record>
fulltext fulltext
identifier ISSN: 0164-1212
ispartof The Journal of systems and software, 2015-10, Vol.108, p.193-210
issn 0164-1212
1873-1228
language eng
recordid cdi_proquest_journals_1700150735
source Elsevier ScienceDirect Journals Complete
subjects Class cohesion metrics
Community structure
Complex network
Complex systems
Java
Open source software
Software
Software engineering
Studies
title Exploring community structure of software Call Graph and its applications in class cohesion measurement
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-14T00%3A26%3A15IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Exploring%20community%20structure%20of%20software%20Call%20Graph%20and%20its%20applications%20in%20class%20cohesion%20measurement&rft.jtitle=The%20Journal%20of%20systems%20and%20software&rft.au=Qu,%20Yu&rft.date=2015-10&rft.volume=108&rft.spage=193&rft.epage=210&rft.pages=193-210&rft.issn=0164-1212&rft.eissn=1873-1228&rft.coden=JSSODM&rft_id=info:doi/10.1016/j.jss.2015.06.015&rft_dat=%3Cproquest_cross%3E3763434101%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=1700150735&rft_id=info:pmid/&rft_els_id=S0164121215001259&rfr_iscdi=true