TY - GEN
T1 - Automatic model generation from documentation for Java API functions
AU - Zhai, Juan
AU - Huang, Jianjun
AU - Ma, Shiqing
AU - Zhang, Xiangyu
AU - Tan, Lin
AU - Zhao, Jianhua
AU - Qin, Feng
N1 - Funding Information:
This work was supported by grant 96/39 from Plan Andaluz de Investigación (Consejerı́a de Salud, Junta de Andalucı́a, Spain). The authors thank Dr. A.T. Blei for helpful comments and suggestions in reviewing the manuscript, Dr. E. Suárez-Garcı́a useful comments, and J. A. Guerrero and Ana Fernández for review of the statistical methods used.
Publisher Copyright:
© 2016 ACM.
PY - 2016/5/14
Y1 - 2016/5/14
N2 - Modern software systems are becoming increasingly com-plex, relying on a lot of third-party library support. Li-brary behaviors are hence an integral part of software be-haviors. Analyzing them is as important as analyzing the software itself. However, analyzing libraries is highly chal-lenging due to the lack of source code, implementation in different languages, and complex optimizations. We observe that many Java library functions provide excellent documen-tation, which concisely describes the functionalities of the functions. We develop a novel technique that can construct models for Java API functions by analyzing the documen-tation. 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.
AB - Modern software systems are becoming increasingly com-plex, relying on a lot of third-party library support. Li-brary behaviors are hence an integral part of software be-haviors. Analyzing them is as important as analyzing the software itself. However, analyzing libraries is highly chal-lenging due to the lack of source code, implementation in different languages, and complex optimizations. We observe that many Java library functions provide excellent documen-tation, which concisely describes the functionalities of the functions. We develop a novel technique that can construct models for Java API functions by analyzing the documen-tation. 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.
UR - http://www.scopus.com/inward/record.url?scp=84971484615&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84971484615&partnerID=8YFLogxK
U2 - 10.1145/2884781.2884881
DO - 10.1145/2884781.2884881
M3 - Conference contribution
AN - SCOPUS:84971484615
T3 - Proceedings - International Conference on Software Engineering
SP - 380
EP - 391
BT - Proceedings - 2016 IEEE/ACM 38th IEEE International Conference on Software Engineering Companion, ICSE 2016
PB - IEEE Computer Society
T2 - 2016 IEEE/ACM 38th IEEE International Conference on Software Engineering, ICSE 2016
Y2 - 14 May 2016 through 22 May 2016
ER -