软件库调用规约挖掘
作者:
基金项目:

国家自然科学基金(90718042, 90718016); 国家重点基础研究发展计划(973)(2007CB310802, 2009CB320703); 国家高技术研究发展计划(863) (2007AA010303, 2007AA010301)


Mining Invocation Specifications for API Libraries
Author:
  • 摘要
  • | |
  • 访问统计
  • |
  • 参考文献 [53]
  • |
  • 相似文献
  • |
  • 引证文献
  • | |
  • 文章评论
    摘要:

    软件库调用规约是一种描述软件库提供函数正确调用顺序的规约.客户代码应按此规约描述的内容调用函数,否则可能引入缺陷,从而降低软件的可信性.由于能够描述可信软件应该满足的性质,软件库调用规约在可信软件、模型检测等研究中扮演特殊的角色.但是,受制于编写规约的巨大代价,软件库通常并不提供已编写好的调用规约.为此,研究者提出了各种自动挖掘此种规约的方法.阐述了其中代表性的方法及其最新的研究进展,并在此基础上探讨了将来的研究方向.

    Abstract:

    Invocation Specifications of an API library are types of specifications that are able to describe the legal invocation sequences of methods. Client code should follow descriptions of invocation specifications to call upon methods provided by API libraries. If this procedure is not followed, defects can be introduced into client code, and reduce its integrity. Because invocation specifications define the properties that are trustworthy for a software system, they play a central role in the research of trustworthy software and model checking; however, due to the great efforts to write invocation specifications, most API libraries do not provide such specifications. To address the problem, researchers have proposed various approaches to mine invocation specifications automatically. In this paper update-to-date research of mining specifications is surveyed, and the potential direction of further research is discussed.

    参考文献
    [1] Lin HM, Zhang WH. Model checking: Theories, techniques and applications. Acta Electronica Sinica, 2002,30(12):1907?1912 (in Chinese with English abstract).
    [2] Mei H, Wang QX, Zhang L, Wang J. Software analysis: A road map. Chinese Journal of Computers, 2009,32(9):1697?1710 (in Chinese with English abstract).
    [3] Ernst MD, Perkins JH, Guo PJ, McCamant S, Pacheco C, Tschantz MS, Xiao C. The Daikon system for dynamic detection of likely invariants. Science of Computer Programming, 2007,69(1):35?45.
    [4] Lorenzoli D, Mariani L, Pezzè M. Automatic generation of software behavioral models. In: Proc. of the 13th ICSE. 2008. 501?510. http://portal.acm.org/citation.cfm?id=1368157
    [5] Cook J, Wolf A. Discovering models of software processes from event-based data. ACM Trans. on Software Engineering and Methodology, 1998,7(3):215?249. [doi: 10.1145/287000.287001]
    [6] Yang J, Evans D, Bhardwaj D, Bhat T, Das M. Perracotta: Mining temporal API rules from imperfect traces. In: Proc. of the 28th ICSE. 2006. 282?291. http://portal.acm.org/citation.cfm?id=1134325&dl= [doi: 10.1145/1134285.1134325]
    [7] Ammons G, Bodok R, Larus JR. Mining specifications. In: Proc. of the 29th POPL. 2002. 4?16. http://portal.acm.org/citation.cfm?id=503275 [doi: 10.1145/503272.503275]
    [8] Chen F, Rosu G. Parametric trace slicing and monitoring. In: Proc. of the 15th TACAS. 2009. 246?261. http://www.springerlink.com/content/p270100k362x2w86/ [doi: 10.1007/978-3-642-00768-2_23]
    [9] Thummalapenta S, Xie T. Parseweb: A programmer assistant for reusing open source code on the Web. In: Proc. of the 21st ASE. 2007. 204?213. http://portal.acm.org/citation.cfm?id=1321631.1321663 [doi: 10.1145/1321631.1321663]
    [10] Dallmeier V, Lindig C, Wasylkowski A, Zeller A. Mining object behavior with ADABU. In: Proc. of the WODA. 2006. 17?24. http://portal.acm.org/citation.cfm?id=1138918 [doi: 10.1145/1138912.1138918]
    [11] Shoham S, Yahav E, Fink S, Pistoia M. Static specification mining using automata based abstractions. In: Proc. of the ISSTA. 2007. 174?184. http://portal.acm.org/citation.cfm?id=1273487 [doi: 10.1145/1273463.1273487]
    [12] Engler DR, Chen DY, Chou A. Bugs as deviant behavior: A general approach to inferring errors in systems code. In: Proc. of the 8th SOSP. 2001. 57?72. http://portal.acm.org/citation.cfm?id=502041 [doi: 10.1145/502034.502041]
    [13] Ramanathan MK, Grama A, Jagannathan S. Path-Sensitive inference of function precedence protocols. In: Proc. of the 29th ICSE. 2007. 240?250. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4222586&tag=1 [doi: 10.1109/ICSE.2007.63]
    [14] Li ZΜ, Zhou YY. PR-Miner: Automatically extracting implicit programming rules and detecting violations in large software code. In: Proc. of the 10th ESEC/13th FSE. 2005. 306?315. http://portal.acm.org/citation.cfm?id=1081755&dl= [doi: 10.1145/1081706.1081755]
    [15] Livshits VB, Zimmermann T. Dynamine: Finding common error patterns by mining software revision histories. In: Proc. of the Joint 10th ESEC/13th FSE. 2005. 296?305. http://portal.acm.org/citation.cfm?id=1081754&dl=
    [16] Williams CC, Hollingsworth JK. Recovering system specific rules from software repositories. In: Proc. of the 2nd MSR. 2005. 1?5. http://portal.acm.org/citation.cfm?id=1082983.1083144 [doi: 10.1145/1083142.1083144]
    [17] Wasylkowski A, Zeller A, Lindig C. Detecting object usage anomalies. In: Proc. of the 6th ESEC and the 14th FSE. 2007. 35?44. http://portal.acm.org/citation.cfm?id=1287632 [doi: 10.1145/1287624.1287632]
    [18] Weimer W, Necula G. Mining temporal specifications for error detection. In: Proc. of the 11th TACAS. 2005. 461?476. http://www.springerlink.com/content/48gf5k4nrja0f4p4/
    [19] Acharya M, Xie T, Pei J, Xu J. Mining API patterns as partial orders from source code: From usage scenarios to specifications. In: Proc. of the 6th ESEC/14th FSE. 2007. 25?34. http://portal.acm.org/citation.cfm?id=1287630&dl= [doi: 10.1145/1287624.1287630]
    [20] Lo D, Khoo SC. SMArTIC: Towards building an accurate, robust and scalable specification miner. In: Proc. of the 5th ESEC/13th FSE. 2006. 265?275. http://portal.acm.org/citation.cfm?id=1181775.1181808 [doi: 10.1145/1181775.1181808]
    [21] Gabel M, Su Z. Symbolic mining of temporal specifications. In: Proc. of the 30th ICSE. 2008. 51?60. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4814116
    [22] Gabel M, Su Z. Javert: Fully automatic mining of general temporal properties from dynamic traces. In: Proc. of the 7th ESEC/15th FSE. 2008. 339?349. http://portal.acm.org/citation.cfm?id=1453150 [doi: 10.1145/1453101.1453150]
    [23] Henzinger TA, Jhala R, Majumdar R. Permissive interfaces. In: Proc. of the 10th ESEC/13th FSE. 2005. 31?40. http://portal.acm.org/citation.cfm?id=1081706.1081713 [doi: 10.1145/1081706.1081713]
    [24] Reiss SP, Renieris M. Encoding program executions. In: Proc. of the 23rd ICSE. 2001. 221?230. http://portal.acm.org/citation.cfm?id=381497
    [25] Whaley J, Martin MC, Lam MS. Automatic extraction of object-oriented component interfaces. In: Proc. of the ISSTA. 2002. 218?228. http://portal.acm.org/citation.cfm?id=566212 [doi: 10.1145/566172.566212]
    [26] Kremenek T, Twohey P, Back G, Ng A, Engler D. From uncertainty to belief: Inferring the specification within. In: Proc. of the 7th OSDI. 2006. 259?272. http://portal.acm.org/citation.cfm?id=1298471
    [27] Alur R, C?rn? P, Madhusudan P, Nam W. Synthesis of interface specifications for Java classes. In: Proc. of the 32nd POPL. 2005. 98?109. http://portal.acm.org/citation.cfm?id=1047659.1040314 [doi: 10.1145/1040305.1040314]
    [28] Sankaranarayanan S, Ivan?i F, Gupta A. Mining library specifications using inductive logic programming. In: Proc. of the 13th ICSE. 2008. 131?140. http://portal.acm.org/citation.cfm?id=1368107 [doi: 10.1145/1368088.1368107]
    [29] Gowri M, Grothoff C, Chandra S. Deriving object type states in the presence of inter-object references. In: Proc. of the OOPSLA. 2005. 77?96. http://portal.acm.org/citation.cfm?id=1103845.1094818 [doi: 10.1145/1094811.1094818]
    [30] Thummalapenta S, Xie T. Alattin: Mining alternative patterns for detecting neglected conditions. In: Proc. of the 24th ASE. 2009. 283?294. http://portal.acm.org/citation.cfm?id=1747526 [doi: 10.1109/ASE.2009.72]
    [31] Wasylkowski A, Zeller A. Mining temporal specifications from object usage. In: Proc. of the 24th ASE. 2009. 295?306. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5431762 [doi: 10.1109/ASE.2009.30]
    [32] Lo D, Maoz S. Mining hierarchical scenario-based specifications. In: Proc. of the 24th ASE. 2009. 359?370. http://portal.acm.org/citation.cfm?id=1747491.1747532 [doi: 10.1109/ASE.2009.19]
    [33] Pradel M, Gross TR. Automatic Generation of object usage specifications from large method traces. In: Proc. οf the 24th ASE. 2009. 371?382. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5431756 [doi: 10.1109/ASE.2009.60]
    [34] Thummalapenta S, Xie T. SpotWeb: Detecting framework hotspots and coldspots via mining open source code on the Web. In: Proc. of the 23rd ASE. 2008. 327?336. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4639336 [doi: 10.1109/ASE.2008.43]
    [35] Tan L, Yuan D, Krishna G, Zhou Y. iComment: Bugs or bad comments? In: Proc. of the 21st SOSP. 2007. 145?158. http://portal.acm.org/citation.cfm?id=1323293.1294276
    [36] Zhong H, Zhang L, Mei H. Inferring specifications of object oriented APIs from API source code. In: Proc. of the 15th APSEC. 2008. 221?228. http://portal.acm.org/citation.cfm?id=1488103 [doi: 10.1109/APSEC.2008.54]
    [37] Nguyen TT, Nguyen HA, Pham NH, Al-Kofahi JM, Nguyen TN. Graph-Based mining of multiple object usage patterns. In: Proc. of the 7th ESEC/FSE. 2009. 383?392. http://portal.acm.org/citation.cfm?id=1595767 [doi: 10.1145/1595696.1595767]
    [38] Lo D, Maoz S, Khoo SC. Mining modal scenario-based specifications from execution traces of reactive systems. In: Proc. of the 22nd ASE. 2007. 465?468. http://portal.acm.org/citation.cfm?id=1321710 [doi: 10.1145/1321631.1321710]
    [39] Lo D, Khoo SC, Liu C. Efficient mining of iterative patterns for software specification discovery. In: Proc. of the KDD. 2007. 460?469. http://portal.acm.org/citation.cfm?id=1281192.1281243 [doi: 10.1145/1281192.1281243]
    [40] Huth M, Ryan M. Logic in Computer Science. Cambridge: Cambridge University Press, 2004.
    [41] Long F, Wang X, Cai Y. API hyperlinking via structural overlap. In: Proc. of the ESEC/FSE. 2009. 203?212. http://portal.acm.org/citation.cfm?id=1595727 [doi: 10.1145/1595696.1595727]
    [42] Zhong H, Zhang L, Xie T, Mei H. Inferring resource specifications from natural language API documentation. In: Proc. of the 24th ASE. 2009. 307?318. http://portal.acm.org/citation.cfm?id=1747528 [doi: 10.1109/ASE.2009.94]
    [43] Rescher N, Urquhart A. Temporal Logic. New York: Springer-Verlag, 1971.
    [44] Clarke E, Grumberg O, Peled D. Model Checking. MIT Press, 1999.
    [45] Lo D, Khoo SC. Software specification discovery: A new data mining approach. In: Proc. of the NGDM. 2007. http://en.scientificcommons.org/42486510
    [46] Agrawal R, Imielínski T, and Swami A. Mining association rules between sets of items in large databases. In: Proc. of the ICMD. 1993. 207?216. http://portal.acm.org/citation.cfm?id=170036.170072 [doi: 10.1145/170035.170072]
    [47] Agrawal R, Srikant R. Mining sequential patterns. In: Proc. of the 7th ICDE. 1995. 3?14. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=380415 [doi: 10.1109/ICDE.1995.380415]
    [48] Parekh R, Honavar V. Grammar Inference, Automata Induction, and Language Acquisition. Handbook of Natural Language Processing. Marcel Dekker, 1998.
    [49] Biermann A, Feldman J. On the synthesis of finite state machines from samples of their behavior. IEEE Trans. on Computer, 1972,21(6):592?597. [doi: 10.1109/TC.1972.5009015]
    [50] Das M, Lerner S, Seigle M. ESP: Path-Sensitive program verification in polynomial time. In: Proc. of the PLDI. 2002. 57?68. http://portal.acm.org/citation.cfm?id=512529.512538 [doi: 10.1145/512529.512538]
    [51] Zhong H, Xie T, Zhang L, Pei J, Mei H. MAPO: Mining and recommending API usage patterns. In: Proc. of the 23rd ECOOP. 2009. 318?343. http://www.springerlink.com/content/m342264m3h326774/
    [52] Weimer W, Mishra N. Privately finding specifications. IEEE Trans. on Software Engineering, 2008,34(1):21?32. [doi: 10.1109/TSE.2007.70744]
    [53] Zhong H, Zhang L, Mei H. Early filtering of polluting method calls for mining temporal specifications. In: Proc. of the 15th APSEC. 2008. 9?16. [doi: 10.1109/APSEC.2008.53]
    相似文献
    引证文献
引用本文

钟浩,张路,梅宏.软件库调用规约挖掘.软件学报,2011,22(3):408-416

复制
分享
文章指标
  • 点击次数:9138
  • 下载次数: 9279
  • HTML阅读次数: 0
  • 引用次数: 0
历史
  • 收稿日期:2010-03-04
  • 最后修改日期:2010-04-27
文章二维码
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号