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...

Full description

Saved in:
Bibliographic Details
Published inProceedings / International Conference on Software Engineering pp. 380 - 391
Main Authors Juan Zhai, Jianjun Huang, Shiqing Ma, Xiangyu Zhang, Lin Tan, Jianhua Zhao, Feng Qin
Format Conference Proceeding
LanguageEnglish
Published ACM 01.05.2016
Subjects
Online AccessGet full text
ISSN1558-1225
DOI10.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