Mining succinct and high-coverage API usage patterns from source code

During software development, a developer often needs to discover specific usage patterns of Application Programming Interface (API) methods. However, these usage patterns are often not well documented. To help developers to get such usage patterns, there are approaches proposed to mine client code o...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Jue Wang, Yingnong Dang, Hongyu Zhang, Kai Chen, Tao Xie, Dongmei Zhang
Format: Tagungsbericht
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 328
container_issue
container_start_page 319
container_title
container_volume
creator Jue Wang
Yingnong Dang
Hongyu Zhang
Kai Chen
Tao Xie
Dongmei Zhang
description During software development, a developer often needs to discover specific usage patterns of Application Programming Interface (API) methods. However, these usage patterns are often not well documented. To help developers to get such usage patterns, there are approaches proposed to mine client code of the API methods. However, they lack metrics to measure the quality of the mined usage patterns, and the API usage patterns mined by the existing approaches tend to be many and redundant, posing significant barriers for being practical adoption. To address these issues, in this paper, we propose two quality metrics (succinctness and coverage) for mined usage patterns, and further propose a novel approach called Usage Pattern Miner (UP-Miner) that mines succinct and high-coverage usage patterns of API methods from source code. We have evaluated our approach on a large-scale Microsoft codebase. The results show that our approach is effective and outperforms an existing representative approach MAPO. The user studies conducted with Microsoft developers confirm the usefulness of the proposed approach in practice.
doi_str_mv 10.1109/MSR.2013.6624045
format Conference Proceeding
fullrecord <record><control><sourceid>ieee_6IE</sourceid><recordid>TN_cdi_ieee_primary_6624045</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>6624045</ieee_id><sourcerecordid>6624045</sourcerecordid><originalsourceid>FETCH-LOGICAL-i283t-3069442b62d6e9c1a39757df6c5ba6358f7d3abe3ad727861d2d63b7e0f49d7e3</originalsourceid><addsrcrecordid>eNotkEtLAzEUhSMqWGv3gpv8gam5uZk8lqXUWmhRfKxLJrnTBuxMmcwI_nsrFg6cb3H4FoexexBTAOEeN-9vUykAp1pLJVR5wSbOWFDaoHSo4ZLdgjLOCVSluGIjCVoUYEt5wyY5p0oAWHeKHbHFJjWp2fE8hJCa0HPfRL5Pu30R2m_q_I747HXFh_xHR9_31DWZ11174LkdukA8tJHu2HXtvzJNzj1mn0-Lj_lzsX5ZruazdZGkxb5AoZ1SstIyanIBPDpTmljrUFZeY2lrE9FXhD4aaayGeBpiZUjUykVDOGYP_95ERNtjlw6--9meX8BfMMNNpw</addsrcrecordid><sourcetype>Publisher</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>Mining succinct and high-coverage API usage patterns from source code</title><source>IEEE Electronic Library (IEL) Conference Proceedings</source><creator>Jue Wang ; Yingnong Dang ; Hongyu Zhang ; Kai Chen ; Tao Xie ; Dongmei Zhang</creator><creatorcontrib>Jue Wang ; Yingnong Dang ; Hongyu Zhang ; Kai Chen ; Tao Xie ; Dongmei Zhang</creatorcontrib><description>During software development, a developer often needs to discover specific usage patterns of Application Programming Interface (API) methods. However, these usage patterns are often not well documented. To help developers to get such usage patterns, there are approaches proposed to mine client code of the API methods. However, they lack metrics to measure the quality of the mined usage patterns, and the API usage patterns mined by the existing approaches tend to be many and redundant, posing significant barriers for being practical adoption. To address these issues, in this paper, we propose two quality metrics (succinctness and coverage) for mined usage patterns, and further propose a novel approach called Usage Pattern Miner (UP-Miner) that mines succinct and high-coverage usage patterns of API methods from source code. We have evaluated our approach on a large-scale Microsoft codebase. The results show that our approach is effective and outperforms an existing representative approach MAPO. The user studies conducted with Microsoft developers confirm the usefulness of the proposed approach in practice.</description><identifier>ISSN: 2160-1852</identifier><identifier>ISBN: 1479903450</identifier><identifier>ISBN: 9781479903450</identifier><identifier>EISBN: 9781467329361</identifier><identifier>EISBN: 1467329363</identifier><identifier>DOI: 10.1109/MSR.2013.6624045</identifier><language>eng</language><publisher>IEEE</publisher><subject>API usage ; Clustering algorithms ; Context ; Data mining ; Indexes ; Measurement ; mining software repositories ; Probabilistic logic ; Redundancy ; sequence mining ; software reuse ; usage pattern</subject><ispartof>2013 10th Working Conference on Mining Software Repositories (MSR), 2013, p.319-328</ispartof><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/6624045$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>309,310,780,784,789,790,2058,27925,54920</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/6624045$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Jue Wang</creatorcontrib><creatorcontrib>Yingnong Dang</creatorcontrib><creatorcontrib>Hongyu Zhang</creatorcontrib><creatorcontrib>Kai Chen</creatorcontrib><creatorcontrib>Tao Xie</creatorcontrib><creatorcontrib>Dongmei Zhang</creatorcontrib><title>Mining succinct and high-coverage API usage patterns from source code</title><title>2013 10th Working Conference on Mining Software Repositories (MSR)</title><addtitle>MSR</addtitle><description>During software development, a developer often needs to discover specific usage patterns of Application Programming Interface (API) methods. However, these usage patterns are often not well documented. To help developers to get such usage patterns, there are approaches proposed to mine client code of the API methods. However, they lack metrics to measure the quality of the mined usage patterns, and the API usage patterns mined by the existing approaches tend to be many and redundant, posing significant barriers for being practical adoption. To address these issues, in this paper, we propose two quality metrics (succinctness and coverage) for mined usage patterns, and further propose a novel approach called Usage Pattern Miner (UP-Miner) that mines succinct and high-coverage usage patterns of API methods from source code. We have evaluated our approach on a large-scale Microsoft codebase. The results show that our approach is effective and outperforms an existing representative approach MAPO. The user studies conducted with Microsoft developers confirm the usefulness of the proposed approach in practice.</description><subject>API usage</subject><subject>Clustering algorithms</subject><subject>Context</subject><subject>Data mining</subject><subject>Indexes</subject><subject>Measurement</subject><subject>mining software repositories</subject><subject>Probabilistic logic</subject><subject>Redundancy</subject><subject>sequence mining</subject><subject>software reuse</subject><subject>usage pattern</subject><issn>2160-1852</issn><isbn>1479903450</isbn><isbn>9781479903450</isbn><isbn>9781467329361</isbn><isbn>1467329363</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2013</creationdate><recordtype>conference_proceeding</recordtype><sourceid>6IE</sourceid><sourceid>RIE</sourceid><recordid>eNotkEtLAzEUhSMqWGv3gpv8gam5uZk8lqXUWmhRfKxLJrnTBuxMmcwI_nsrFg6cb3H4FoexexBTAOEeN-9vUykAp1pLJVR5wSbOWFDaoHSo4ZLdgjLOCVSluGIjCVoUYEt5wyY5p0oAWHeKHbHFJjWp2fE8hJCa0HPfRL5Pu30R2m_q_I747HXFh_xHR9_31DWZ11174LkdukA8tJHu2HXtvzJNzj1mn0-Lj_lzsX5ZruazdZGkxb5AoZ1SstIyanIBPDpTmljrUFZeY2lrE9FXhD4aaayGeBpiZUjUykVDOGYP_95ERNtjlw6--9meX8BfMMNNpw</recordid><startdate>201305</startdate><enddate>201305</enddate><creator>Jue Wang</creator><creator>Yingnong Dang</creator><creator>Hongyu Zhang</creator><creator>Kai Chen</creator><creator>Tao Xie</creator><creator>Dongmei Zhang</creator><general>IEEE</general><scope>6IE</scope><scope>6IL</scope><scope>CBEJK</scope><scope>RIE</scope><scope>RIL</scope></search><sort><creationdate>201305</creationdate><title>Mining succinct and high-coverage API usage patterns from source code</title><author>Jue Wang ; Yingnong Dang ; Hongyu Zhang ; Kai Chen ; Tao Xie ; Dongmei Zhang</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-i283t-3069442b62d6e9c1a39757df6c5ba6358f7d3abe3ad727861d2d63b7e0f49d7e3</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2013</creationdate><topic>API usage</topic><topic>Clustering algorithms</topic><topic>Context</topic><topic>Data mining</topic><topic>Indexes</topic><topic>Measurement</topic><topic>mining software repositories</topic><topic>Probabilistic logic</topic><topic>Redundancy</topic><topic>sequence mining</topic><topic>software reuse</topic><topic>usage pattern</topic><toplevel>online_resources</toplevel><creatorcontrib>Jue Wang</creatorcontrib><creatorcontrib>Yingnong Dang</creatorcontrib><creatorcontrib>Hongyu Zhang</creatorcontrib><creatorcontrib>Kai Chen</creatorcontrib><creatorcontrib>Tao Xie</creatorcontrib><creatorcontrib>Dongmei Zhang</creatorcontrib><collection>IEEE Electronic Library (IEL) Conference Proceedings</collection><collection>IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume</collection><collection>IEEE Xplore All Conference Proceedings</collection><collection>IEEE Electronic Library (IEL)</collection><collection>IEEE Proceedings Order Plans (POP All) 1998-Present</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Jue Wang</au><au>Yingnong Dang</au><au>Hongyu Zhang</au><au>Kai Chen</au><au>Tao Xie</au><au>Dongmei Zhang</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Mining succinct and high-coverage API usage patterns from source code</atitle><btitle>2013 10th Working Conference on Mining Software Repositories (MSR)</btitle><stitle>MSR</stitle><date>2013-05</date><risdate>2013</risdate><spage>319</spage><epage>328</epage><pages>319-328</pages><issn>2160-1852</issn><isbn>1479903450</isbn><isbn>9781479903450</isbn><eisbn>9781467329361</eisbn><eisbn>1467329363</eisbn><abstract>During software development, a developer often needs to discover specific usage patterns of Application Programming Interface (API) methods. However, these usage patterns are often not well documented. To help developers to get such usage patterns, there are approaches proposed to mine client code of the API methods. However, they lack metrics to measure the quality of the mined usage patterns, and the API usage patterns mined by the existing approaches tend to be many and redundant, posing significant barriers for being practical adoption. To address these issues, in this paper, we propose two quality metrics (succinctness and coverage) for mined usage patterns, and further propose a novel approach called Usage Pattern Miner (UP-Miner) that mines succinct and high-coverage usage patterns of API methods from source code. We have evaluated our approach on a large-scale Microsoft codebase. The results show that our approach is effective and outperforms an existing representative approach MAPO. The user studies conducted with Microsoft developers confirm the usefulness of the proposed approach in practice.</abstract><pub>IEEE</pub><doi>10.1109/MSR.2013.6624045</doi><tpages>10</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext_linktorsrc
identifier ISSN: 2160-1852
ispartof 2013 10th Working Conference on Mining Software Repositories (MSR), 2013, p.319-328
issn 2160-1852
language eng
recordid cdi_ieee_primary_6624045
source IEEE Electronic Library (IEL) Conference Proceedings
subjects API usage
Clustering algorithms
Context
Data mining
Indexes
Measurement
mining software repositories
Probabilistic logic
Redundancy
sequence mining
software reuse
usage pattern
title Mining succinct and high-coverage API usage patterns from source code
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-08T06%3A04%3A42IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-ieee_6IE&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Mining%20succinct%20and%20high-coverage%20API%20usage%20patterns%20from%20source%20code&rft.btitle=2013%2010th%20Working%20Conference%20on%20Mining%20Software%20Repositories%20(MSR)&rft.au=Jue%20Wang&rft.date=2013-05&rft.spage=319&rft.epage=328&rft.pages=319-328&rft.issn=2160-1852&rft.isbn=1479903450&rft.isbn_list=9781479903450&rft_id=info:doi/10.1109/MSR.2013.6624045&rft_dat=%3Cieee_6IE%3E6624045%3C/ieee_6IE%3E%3Curl%3E%3C/url%3E&rft.eisbn=9781467329361&rft.eisbn_list=1467329363&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rft_ieee_id=6624045&rfr_iscdi=true