{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2022,4,1]],"date-time":"2022-04-01T01:24:32Z","timestamp":1648776272860},"reference-count":3,"publisher":"World Scientific Pub Co Pte Lt","issue":"08","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Int. J. Soft. Eng. Knowl. Eng."],"published-print":{"date-parts":[[2011,12]]},"abstract":"<jats:p>Developing and maintaining reliable object-oriented software requires a precise understanding of how individual classes must be used. Unfortunately, for many systems, especially those that are large, the available documentation is inadequate. Developers are left with incomplete information concerning the allowable set of call sequences that each class can accommodate. Techniques for reverse engineering this information and presenting it to developers in an intellectually scalable manner are critical.<\/jats:p><jats:p>In this paper, we present four contributions to address this challenge. First, we describe a runtime trace collection system for large C++ applications. Second, we present a methodology for reverse engineering interface protocols from collected trace data. Third, we present a scalable, tunable algorithm for generating compact specifications of these protocols. Finally, we present a detailed case study involving the Mozilla Necko library. We consider popular applications in common use constructed using this library. The results are promising both in terms of the performance of the approach and the utility of the identified protocols.<\/jats:p>","DOI":"10.1142\/s0218194011005645","type":"journal-article","created":{"date-parts":[[2012,3,27]],"date-time":"2012-03-27T10:11:22Z","timestamp":1332843082000},"page":"1123-1146","source":"Crossref","is-referenced-by-count":0,"title":["CAPTURING INTERFACE PROTOCOLS TO SUPPORT COMPREHENSION AND EVALUATION OF C++ LIBRARIES"],"prefix":"10.1142","volume":"21","author":[{"given":"BRIAN A.","family":"MALLOY","sequence":"first","affiliation":[{"name":"School of Computing, Clemson University, Clemson, SC 29634, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"ERROL L.","family":"LLOYD","sequence":"additional","affiliation":[{"name":"Computer and Information Sciences, University of Delaware, Newark, DE 19716, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"JASON O.","family":"HALLSTROM","sequence":"additional","affiliation":[{"name":"School of Computing, Clemson University, Clemson, SC 29634, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"EDWARD B.","family":"DUFFY","sequence":"additional","affiliation":[{"name":"School of Computing, Clemson University, Clemson, SC 29634, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"219","published-online":{"date-parts":[[2012,5,2]]},"reference":[{"key":"rf7","doi-asserted-by":"publisher","DOI":"10.1080\/08839510701853200"},{"key":"rf9","doi-asserted-by":"publisher","DOI":"10.1016\/S0019-9958(67)91165-5"},{"key":"rf17","doi-asserted-by":"crossref","unstructured":"E.\u00a0Soloway and K.\u00a0Ehrlich, Software reusability: Vol. 2, Applications and Experience (New York, NY, 1989)\u00a0pp. 235\u2013267.","DOI":"10.1145\/75722.75734"}],"container-title":["International Journal of Software Engineering and Knowledge Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.worldscientific.com\/doi\/pdf\/10.1142\/S0218194011005645","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,7,4]],"date-time":"2020-07-04T22:50:31Z","timestamp":1593903031000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.worldscientific.com\/doi\/abs\/10.1142\/S0218194011005645"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2011,12]]},"references-count":3,"journal-issue":{"issue":"08","published-online":{"date-parts":[[2012,5,2]]},"published-print":{"date-parts":[[2011,12]]}},"alternative-id":["10.1142\/S0218194011005645"],"URL":"https:\/\/doi.org\/10.1142\/s0218194011005645","relation":{},"ISSN":["0218-1940","1793-6403"],"issn-type":[{"value":"0218-1940","type":"print"},{"value":"1793-6403","type":"electronic"}],"subject":[],"published":{"date-parts":[[2011,12]]}}}