Automatic Model Generation from Documentation for Java API Functions
Modern software systems are becoming increasingly complex, relying on a lot of third-party library support. Library behaviors are hence an integral part of software behaviors. Analyzing them is as important as analyzing the software itself. However, analyzing libraries is highly challenging due to t...
Saved in:
Published in | Proceedings / International Conference on Software Engineering pp. 380 - 391 |
---|---|
Main Authors | , , , , , , |
Format | Conference Proceeding |
Language | English |
Published |
ACM
01.05.2016
|
Subjects | |
Online Access | Get full text |
ISSN | 1558-1225 |
DOI | 10.1145/2884781.2884881 |
Cover
Abstract | Modern software systems are becoming increasingly complex, relying on a lot of third-party library support. Library behaviors are hence an integral part of software behaviors. Analyzing them is as important as analyzing the software itself. However, analyzing libraries is highly challenging due to the lack of source code, implementation in different languages, and complex optimizations. We observe that many Java library functions provide excellent documentation, which concisely describes the functionalities of the functions. We develop a novel technique that can construct models for Java API functions by analyzing the documentation. These models are simpler implementations in Java compared to the original ones and hence easier to analyze. More importantly, they provide the same functionalities as the original functions. Our technique successfully models 326 functions from 14 widely used Java classes. We also use these models in static taint analysis on Android apps and dynamic slicing for Java programs, demonstrating the effectiveness and efficiency of our models. |
---|---|
AbstractList | Modern software systems are becoming increasingly complex, relying on a lot of third-party library support. Library behaviors are hence an integral part of software behaviors. Analyzing them is as important as analyzing the software itself. However, analyzing libraries is highly challenging due to the lack of source code, implementation in different languages, and complex optimizations. We observe that many Java library functions provide excellent documentation, which concisely describes the functionalities of the functions. We develop a novel technique that can construct models for Java API functions by analyzing the documentation. These models are simpler implementations in Java compared to the original ones and hence easier to analyze. More importantly, they provide the same functionalities as the original functions. Our technique successfully models 326 functions from 14 widely used Java classes. We also use these models in static taint analysis on Android apps and dynamic slicing for Java programs, demonstrating the effectiveness and efficiency of our models. |
Author | Lin Tan Feng Qin Jianjun Huang Xiangyu Zhang Shiqing Ma Jianhua Zhao Juan Zhai |
Author_xml | – sequence: 1 surname: Juan Zhai fullname: Juan Zhai email: zhaijuan@seg.nju.edu.cn – sequence: 2 surname: Jianjun Huang fullname: Jianjun Huang email: huang427@cs.purdue.edu – sequence: 3 surname: Shiqing Ma fullname: Shiqing Ma email: ma229@cs.purdue.edu – sequence: 4 surname: Xiangyu Zhang fullname: Xiangyu Zhang email: xyzhang@cs.purdue.edu – sequence: 5 surname: Lin Tan fullname: Lin Tan email: lintan@uwaterloo.ca – sequence: 6 surname: Jianhua Zhao fullname: Jianhua Zhao email: zhaojh@nju.edu.cn – sequence: 7 surname: Feng Qin fullname: Feng Qin email: qin@cse.ohio-state.edu |
BookMark | eNotjDtPwzAURg0CibZ0ZmDxH0jx9SvXY9XSUlQEA8yV41xLQU2M8kDi35OqXb6jc4Zvym6a1BBjDyAWANo8SUSdIyxORIQrNnejaiOUckLANZuAMZiBlOaOTbvuWwhhtXMTtl4Ofap9XwX-lko68i011I6eGh7bVPN1CkNNTX9JqeWv_tfz5ceOb4YmnGp3z26jP3Y0v3DGvjbPn6uXbP--3a2W-8xLnfdZpBgDRolOWwJrC0VS2hhkbg1JARhy6VVZkCrKwpFGJ5QYF8hKE6xRM_Z4_q2I6PDTVrVv_w45onXg1D80GUuG |
CODEN | IEEPAD |
ContentType | Conference Proceeding |
DBID | 6IE 6IH CBEJK RIE RIO |
DOI | 10.1145/2884781.2884881 |
DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Proceedings Order Plan (POP) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP) 1998-present |
DatabaseTitleList | |
Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/ sourceTypes: Publisher |
DeliveryMethod | fulltext_linktorsrc |
Discipline | Computer Science |
EISBN | 9781450339001 145033900X |
EISSN | 1558-1225 |
EndPage | 391 |
ExternalDocumentID | 7886919 |
Genre | orig-research |
GroupedDBID | -~X .4S .DC 123 23M 29O 5VS 6IE 6IF 6IH 6IK 6IL 6IM 6IN 8US AAJGR AAWTH ABLEC ADZIZ AFFNX ALMA_UNASSIGNED_HOLDINGS APO ARCSS AVWKF BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK CHZPO EDO FEDTE I-F I07 IEGSK IJVOP IPLJI M43 OCL RIE RIL RIO RNS XOL |
ID | FETCH-LOGICAL-a247t-feffc8f28946e166b3e226fc2765e2018c72a3dbe3bdb9e4890304891e625c653 |
IEDL.DBID | RIE |
IngestDate | Wed Aug 27 02:07:20 EDT 2025 |
IsPeerReviewed | false |
IsScholarly | true |
Language | English |
LinkModel | DirectLink |
MergedId | FETCHMERGED-LOGICAL-a247t-feffc8f28946e166b3e226fc2765e2018c72a3dbe3bdb9e4890304891e625c653 |
PageCount | 12 |
ParticipantIDs | ieee_primary_7886919 |
PublicationCentury | 2000 |
PublicationDate | 2016-May |
PublicationDateYYYYMMDD | 2016-05-01 |
PublicationDate_xml | – month: 05 year: 2016 text: 2016-May |
PublicationDecade | 2010 |
PublicationTitle | Proceedings / International Conference on Software Engineering |
PublicationTitleAbbrev | ICSE |
PublicationYear | 2016 |
Publisher | ACM |
Publisher_xml | – name: ACM |
SSID | ssj0006499 |
Score | 2.1836329 |
Snippet | Modern software systems are becoming increasingly complex, relying on a lot of third-party library support. Library behaviors are hence an integral part of... |
SourceID | ieee |
SourceType | Publisher |
StartPage | 380 |
SubjectTerms | Analytical models auto-testing Documentation documentation analysis environment modeling Generators Indexes Java Libraries natural language processing Software |
Title | Automatic Model Generation from Documentation for Java API Functions |
URI | https://ieeexplore.ieee.org/document/7886919 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV09T8MwED0VJqYCLeJbHhhx2iSO44wVpSqVijpQqVtlO-cF1KAqYeDXc07SghADUywvZ9mXvLv43juAO3SEsnkoOIXiyIVAzY2QOY8Exo5cyKXaE5znz3K6FLNVsurA_Z4Lg4h18RkGfljf5eeFrfyvsgGlazLzGp8H5GYNV2v_1ZUUurfSPaFIBpFSnkQZ-KfyotU_eqfU0DHpwnxntKkYeQ2q0gT285ce439XdQz9b5IeW-zh5wQ6uDmF7q5LA2tf2h6MR1VZ1MKszDc-e2ON0rQ_EObJJWzcmminii2b6Q_NRosnNiHUqx2zD8vJ48vDlLe9E7iORFpyh85Z5SidEhJDKU2MFGg5G6UyQQJ9ZdNIx7nB2OQmQ6Eyf0eqshApIbIyic_gcFNs8ByYE0Y5JVyirBPSDLWUQ4Uu1CGFMkNhLqDnN2X93shjrNv9uPx7-gqOyLxsagav4bDcVnhDuF6a2_pAvwBG-6Nu |
linkProvider | IEEE |
linkToHtml | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV07b8IwED4hOrRTH1D1XQ8dm0CSi-OMqBQBBcQAEhuyk_PSilQo6dBfXzsJtKo6dLLlxZZf351933cAD6QNyqYeOsYUJweRpKOQp46PFGizhXQkLcF5OuPDJY5X4aoBj3suDBGVwWfk2mr5l59mSWGfyjrGXeOx1fg8MLiPYcXW2t-73BjvtXiPh2HHF8LSKF1bCitb_SN7Sgkeg2OY7rqtYkZe3SJXbvL5S5Hxv-M6gfY3TY_N9wB0Cg3anMHxLk8Dq49tC_q9Is9KaVZmU5-9sUpr2i4Js_QS1q-7qJuyLRvLD8l68xEbGNwrt2YbloPnxdPQqbMnONLHKHc0aZ0IbRwq5ORxrgIyppZO_IiHZGBfJJEvg1RRoFIVE4rY_pKK2CPjEiU8DM6huck2dAFMoxJaoA5FopGrruS8K0h70jPGTBfVJbTspKzfK4GMdT0fV38338PhcDGdrCej2cs1HJmh8Co67gaa-bagW4PyuborF_cLBj2mtw |
openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+%2F+International+Conference+on+Software+Engineering&rft.atitle=Automatic+Model+Generation+from+Documentation+for+Java+API+Functions&rft.au=Juan+Zhai&rft.au=Jianjun+Huang&rft.au=Shiqing+Ma&rft.au=Xiangyu+Zhang&rft.date=2016-05-01&rft.pub=ACM&rft.eissn=1558-1225&rft.spage=380&rft.epage=391&rft_id=info:doi/10.1145%2F2884781.2884881&rft.externalDocID=7886919 |