Halo: A Multi-feature Two-pass Analysis to Identify Framework API Evolution. Wu, W., Gu�h�neuc, Y., Antoniol, G., & Kim, M. Technical Report EPM-RT-2013-05, �cole Polytechnique de Montr�al, June, 2013. 24 pages.
Paper abstract bibtex Software frameworks and libraries are indispensable to today's software systems. Because of the fast development of open-source software in recent years, frameworks and libraries have became much versatile as any open-source system or part thereof can be used as a framework (or a library). Developer can reuse frameworks in innovative ways that are not expected by the providers of frameworks. Many frameworks are not well documented and very few owners provide specific documents to describe the changes between different releases of their frameworks. When they evolve, it is often time-consuming for developers to keep their dependent code up-to-date. Approaches have been proposed to lessen the impact of framework evolution on developers by identifying API evolution or change rules between two releases of a framework. However, the precision and recall of the change rules generated by these approaches depend on the features that they use, such as call-dependency relations or text similarity. If these features do not provide enough information, the approaches can miss correct change rules and compromise the precision and recall. For example, if a method in the old release of a framework is not called by other methods, we cannot find its change rule using call-dependency relations alone. Considering more features can overcome this limitation. Yet, because many features may also give contradictory information, integrating them is not straightforward. We thus introduce Halo, a novel hybrid approach that uses multiple features, including call dependency relations, method documentations, inheritance relations, and text similarity. Halo implements a two-pass analysis inspired by pattern classification problem. We implement Halo in Java and compare it with four state-of-the-art approaches. The comparison shows that, on average, the recall and the precision of Halo are 43\NOand 5\NOhigher than that of other approaches.
@TECHREPORT{Wu13-TR-HALO,
AUTHOR = {Wei Wu and Yann-Ga�l Gu�h�neuc and Giuliano Antoniol and
Miryung Kim},
INSTITUTION = {�cole Polytechnique de Montr�al},
TITLE = {Halo: A Multi-feature Two-pass Analysis to Identify
Framework API Evolution},
YEAR = {2013},
OPTADDRESS = {},
MONTH = {June},
NOTE = {24 pages.},
NUMBER = {EPM-RT-2013-05},
OPTTYPE = {},
KEYWORDS = {Topic: <b>Evolution patterns</b>},
URL = {http://www.ptidej.net/publications/documents/Research+report+HALO+June13.doc.pdf},
ABSTRACT = {Software frameworks and libraries are indispensable to
today's software systems. Because of the fast development of
open-source software in recent years, frameworks and libraries have
became much versatile as any open-source system or part thereof can
be used as a framework (or a library). Developer can reuse frameworks
in innovative ways that are not expected by the providers of
frameworks. Many frameworks are not well documented and very few
owners provide specific documents to describe the changes between
different releases of their frameworks. When they evolve, it is often
time-consuming for developers to keep their dependent code
up-to-date. Approaches have been proposed to lessen the impact of
framework evolution on developers by identifying API evolution or
change rules between two releases of a framework. However, the
precision and recall of the change rules generated by these
approaches depend on the features that they use, such as
call-dependency relations or text similarity. If these features do
not provide enough information, the approaches can miss correct
change rules and compromise the precision and recall. For example, if
a method in the old release of a framework is not called by other
methods, we cannot find its change rule using call-dependency
relations alone. Considering more features can overcome this
limitation. Yet, because many features may also give contradictory
information, integrating them is not straightforward. We thus
introduce Halo, a novel hybrid approach that uses multiple features,
including call dependency relations, method documentations,
inheritance relations, and text similarity. Halo implements a
two-pass analysis inspired by pattern classification problem. We
implement Halo in Java and compare it with four state-of-the-art
approaches. The comparison shows that, on average, the recall and the
precision of Halo are 43\NOand 5\NOhigher than that of other
approaches.}
}
Downloads: 0
{"_id":"wfhK6P9sgnNAqw9Rz","bibbaseid":"wu-guhneuc-antoniol-kim-haloamultifeaturetwopassanalysistoidentifyframeworkapievolution-2013","downloads":0,"creationDate":"2018-01-17T20:29:42.351Z","title":"Halo: A Multi-feature Two-pass Analysis to Identify Framework API Evolution","author_short":["Wu, W.","Gu�h�neuc, Y.","Antoniol, G.","Kim, M."],"year":2013,"bibtype":"techreport","biburl":"http://www.yann-gael.gueheneuc.net/Work/Publications/Biblio/complete-bibliography.bib","bibdata":{"bibtype":"techreport","type":"techreport","author":[{"firstnames":["Wei"],"propositions":[],"lastnames":["Wu"],"suffixes":[]},{"firstnames":["Yann-Ga�l"],"propositions":[],"lastnames":["Gu�h�neuc"],"suffixes":[]},{"firstnames":["Giuliano"],"propositions":[],"lastnames":["Antoniol"],"suffixes":[]},{"firstnames":["Miryung"],"propositions":[],"lastnames":["Kim"],"suffixes":[]}],"institution":"�cole Polytechnique de Montr�al","title":"Halo: A Multi-feature Two-pass Analysis to Identify Framework API Evolution","year":"2013","optaddress":"","month":"June","note":"24 pages.","number":"EPM-RT-2013-05","opttype":"","keywords":"Topic: <b>Evolution patterns</b>","url":"http://www.ptidej.net/publications/documents/Research+report+HALO+June13.doc.pdf","abstract":"Software frameworks and libraries are indispensable to today's software systems. Because of the fast development of open-source software in recent years, frameworks and libraries have became much versatile as any open-source system or part thereof can be used as a framework (or a library). Developer can reuse frameworks in innovative ways that are not expected by the providers of frameworks. Many frameworks are not well documented and very few owners provide specific documents to describe the changes between different releases of their frameworks. When they evolve, it is often time-consuming for developers to keep their dependent code up-to-date. Approaches have been proposed to lessen the impact of framework evolution on developers by identifying API evolution or change rules between two releases of a framework. However, the precision and recall of the change rules generated by these approaches depend on the features that they use, such as call-dependency relations or text similarity. If these features do not provide enough information, the approaches can miss correct change rules and compromise the precision and recall. For example, if a method in the old release of a framework is not called by other methods, we cannot find its change rule using call-dependency relations alone. Considering more features can overcome this limitation. Yet, because many features may also give contradictory information, integrating them is not straightforward. We thus introduce Halo, a novel hybrid approach that uses multiple features, including call dependency relations, method documentations, inheritance relations, and text similarity. Halo implements a two-pass analysis inspired by pattern classification problem. We implement Halo in Java and compare it with four state-of-the-art approaches. The comparison shows that, on average, the recall and the precision of Halo are 43\\NOand 5\\NOhigher than that of other approaches.","bibtex":"@TECHREPORT{Wu13-TR-HALO,\r\n AUTHOR = {Wei Wu and Yann-Ga�l Gu�h�neuc and Giuliano Antoniol and \r\n Miryung Kim},\r\n INSTITUTION = {�cole Polytechnique de Montr�al},\r\n TITLE = {Halo: A Multi-feature Two-pass Analysis to Identify \r\n Framework API Evolution},\r\n YEAR = {2013},\r\n OPTADDRESS = {},\r\n MONTH = {June},\r\n NOTE = {24 pages.},\r\n NUMBER = {EPM-RT-2013-05},\r\n OPTTYPE = {},\r\n KEYWORDS = {Topic: <b>Evolution patterns</b>},\r\n URL = {http://www.ptidej.net/publications/documents/Research+report+HALO+June13.doc.pdf},\r\n ABSTRACT = {Software frameworks and libraries are indispensable to \r\n today's software systems. Because of the fast development of \r\n open-source software in recent years, frameworks and libraries have \r\n became much versatile as any open-source system or part thereof can \r\n be used as a framework (or a library). Developer can reuse frameworks \r\n in innovative ways that are not expected by the providers of \r\n frameworks. Many frameworks are not well documented and very few \r\n owners provide specific documents to describe the changes between \r\n different releases of their frameworks. When they evolve, it is often \r\n time-consuming for developers to keep their dependent code \r\n up-to-date. Approaches have been proposed to lessen the impact of \r\n framework evolution on developers by identifying API evolution or \r\n change rules between two releases of a framework. However, the \r\n precision and recall of the change rules generated by these \r\n approaches depend on the features that they use, such as \r\n call-dependency relations or text similarity. If these features do \r\n not provide enough information, the approaches can miss correct \r\n change rules and compromise the precision and recall. For example, if \r\n a method in the old release of a framework is not called by other \r\n methods, we cannot find its change rule using call-dependency \r\n relations alone. Considering more features can overcome this \r\n limitation. Yet, because many features may also give contradictory \r\n information, integrating them is not straightforward. We thus \r\n introduce Halo, a novel hybrid approach that uses multiple features, \r\n including call dependency relations, method documentations, \r\n inheritance relations, and text similarity. Halo implements a \r\n two-pass analysis inspired by pattern classification problem. We \r\n implement Halo in Java and compare it with four state-of-the-art \r\n approaches. The comparison shows that, on average, the recall and the \r\n precision of Halo are 43\\NOand 5\\NOhigher than that of other \r\n approaches.}\r\n}\r\n\r\n","author_short":["Wu, W.","Gu�h�neuc, Y.","Antoniol, G.","Kim, M."],"key":"Wu13-TR-HALO","id":"Wu13-TR-HALO","bibbaseid":"wu-guhneuc-antoniol-kim-haloamultifeaturetwopassanalysistoidentifyframeworkapievolution-2013","role":"author","urls":{"Paper":"http://www.ptidej.net/publications/documents/Research+report+HALO+June13.doc.pdf"},"keyword":["Topic: <b>Evolution patterns</b>"],"metadata":{"authorlinks":{"gu�h�neuc, y":"https://bibbase.org/show?bib=http%3A%2F%2Fwww.yann-gael.gueheneuc.net%2FWork%2FPublications%2FBiblio%2Fcomplete-bibliography.bib&msg=embed","guéhéneuc, y":"https://bibbase.org/show?bib=http://www.yann-gael.gueheneuc.net/Work/BibBase/guehene%20(automatically%20cleaned).bib"}},"downloads":0},"search_terms":["halo","multi","feature","two","pass","analysis","identify","framework","api","evolution","wu","gu�h�neuc","antoniol","kim"],"keywords":["topic: <b>evolution patterns</b>"],"authorIDs":["2tFXMaTSHJKEB5ebi","2wY5eBcsYmbPNfmMS","36dm7jaw5EK5Wrr4D","3NxaNKic3nkXi568L","3S5Dkpx7DNefzJrnf","3afmfmoPr4SHa8B5F","3wmHB7JoQbQz2ujun","4YBWWbao6RKgiyGJE","4jZj9tB4SJ8zEEgHk","5CvA2hsaib2bPMaef","5TFJbxqRDGFj2P8Rg","5a5fb236a39f2c3645000032","5a8f17e006df23bc34000020","5cx79LBmaWcihgM4J","5de9a6425b51bcde01000042","5dee1197584fb4df010000fc","5df228a41e4fe9df0100012c","5df617f72b34d0de0100008b","5dfa14782e791dde010000ea","5dfe3d5e68d95dde01000080","5e02525b6ffa15df0100009f","5e0662c07da1d1de0100021a","5e093e8b934cacdf0100008b","5e0a61673eccf6e001000016","5e0b75b7e73cd6de010000f9","5e0d4ca6ae5827df0100007f","5e0ddf08552b25df01000137","5e0e5c41ac7d11df010000a3","5e1268e7a4cabfdf0100002c","5e12c45a70e2c4f201000043","5e157809f1f31adf01000006","5e162ca1df1bb4de01000123","5e185cff809b84f201000091","5e1a6c39b16ec5df0100000f","5e21b27e96aea7de01000084","5e22c57e49e2b4df0100000f","5e23c2aeb93b51de01000030","5e245835079bb2df0100007d","5e24fa3e2e79a1f201000027","5e26252f408641df01000161","5e26bfbd8535cedf0100005c","5e280fd1f860fcde0100006a","5e2a827f881468de01000080","5e2eb321b84405df01000128","5e2ef635e374eede0100001a","5e2fd6a74e91a9df01000010","5e3266bb5633c9de01000068","5e32ab0ee17accde0100012a","5e32bdec466076df010000d9","5e32d603150c84df01000068","5e34fb145978bef2010000a6","5e36bc8e7b975dde0100009a","5e389940030bcadf010001b4","5e39dd9a3687dddf010000a4","5e3ad173f2a00cdf01000206","5e3dcd50d51253de0100003d","5e3e8713666d79df010000a6","5e3ed80986a596de010000b9","5e3fefe1add5fbde01000087","5e409c79d668c6de010000c7","5e41795ed9f47bee01000194","5e41cd5be7c67ade010000eb","5e42ef1ca6f4a6f2010001eb","5e46dcb342fb31df01000113","5e46f12c461d04f201000078","5e478c9e27a0c8de010000ef","5e47fb06385298df010000b2","5e4add1941072bdf01000011","5e4c1c792dc400de0100011a","5e4c6262271596df010001b9","5e4f0360338acfde01000156","5e4f11b0e5389bde0100007e","5e530b976d68b8df010000a5","5e54ad6d929495df0100007c","5e57161b429006de0100005a","5e57839fcef9b7de0100003c","5e580f5a6a456fde0100004f","5e5afa78038583de010000f7","5e5b477174a3e7df010000b7","5e5d370173eb2edf01000038","5e5fca336b32b0f20100011b","5e60e7f0839e59df010000e8","5e6377cfae1c4dde0100011e","5e657007de41b9df0100017a","5e676f0910be53de0100001a","5gPbX6aQJFjpv2Na9","6eE2yRdMDQr2WGXuA","6iHE5tuM7yTfLd2pA","7BPWyvMr5e6bzbk7T","7RFwhpGkpZRsLwnmB","7amRA4ALcR2mksheF","7mkQL8eiftj5bGMzB","8jPjKehCMsj7ncvxN","8peLXfWtCSic5n7oz","95eRgTcabnJwF46f3","9Ba9JxkjQBCeGBZKg","9DjgvzQrx27uxbyJj","9HD56d3k5yrB9H9oq","9RtPuXNyeS3k8LM9J","9diLYpd8cMmjBh54T","9nx6Yv3XREwJDyRms","AfJhKcg96muyPdu7S","BGvchZsjW7Wejj9Cz","BYwdHpGr6xT5vmE5C","Bah6LM7GXdXTy8GGA","BmH2ytt7sXwPHcrse","CqJYxtqe6qBbtd5yz","D4kEZ2JcWCoMvRPy7","DFWW7D6Y7X57n4cbM","DSorPqHDfrFiNM5Ew","DWXisKXaQArvre3QL","DwBm6isMpKSHHkhAd","E88raoktD8ANF92Yu","EAjLox7ycbofcCXce","F8rzFhY9yWA7pBX4j","G3iynDKjz9BHJbrdg","GJw6mQETXADSCZuuk","GWK5669HLqPyYMQ5J","GibAXjj4xXdFT8qWh","HzFZpgGcfabjAp9x6","KJ4eYziy6hanF9kr9","Kcyu7uncEFiYzYP2D","N4zzhqcywSzDDYsdh","NCDg3xE2mPcNAu7LX","NvgbTAz3hZ9SevZvd","QbcDS3wK43sRASvgu","S3b7Bb9wwfpByQgbo","SXJaeFCgBDJ5HAHtj","T5nL8TGrggoLAF8Dj","W9vT8YcCNFEcp9mWQ","WZ5CpBEFNsb2ivfah","XxviSwRxhwgNwsraH","Z2Zs662GpXqKBEAMc","ZKYFgjHGm7PE4Y2kv","a5qpGirN3B5BLKdMh","ahGA65oGDChNYp7Mb","bA7pGCMS9AB2RBo2p","bTQb3TcrbBShtqFPS","cYnqisf4wzBsM7MF5","cjHpaYiWD5eX7btH4","ckrbesqi3pWqfF2nP","dH8EsWHZtCFuQk5bq","dS5kvBMnk3LMQe56w","eXsFRMzE7WfbHbBL4","fmmsBu4m6ayKtuopf","hdXr3PD8cHNWyAdCe","hgZxckC87u2A57teF","juvCjffHJaPQf44im","keQBT2Apb9yaev8AH","myHdF8zARwW5uGmFs","nJLfaznnYgFqWQQrv","onghitNWSvN2FpCaN","osgPwDW2y5KDXRa2i","pAWFMDHu5dNixqPAq","pLvmgrCjMeDYJiJxB","q4azvWakEjp2TQM7S","qBee6Md9YwRKwkeW3","qQky2Csek4mroLn2P","tJz4YBCqAzZAzek5d","tLtjttw8dEqF6YQ4s","uQ6jCrPijzAmZyfXz","vGEaFNt7mm92Z7GXc","vRkMmE65HSFpCk6FW","vsEsf8FR3Fxb6z7fJ","x5ejzvDeXCc89Dukv","xEQyC5shxpYySSJJm","xhwDdvQ7MYxa6keXm","xkviMnkrGBneANvMr","y64rFMcyp7tDsBrJQ","yBYJWSShoKkMG8aPE","yQPghCwQv22kf6dFq","yd5sCxaEiu5vWizTq"],"dataSources":["Sed98LbBeGaXxenrM","8vn5MSGYWB4fAx9Z4"]}