{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,15]],"date-time":"2026-05-15T10:13:49Z","timestamp":1778840029593,"version":"3.51.4"},"reference-count":54,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2015,12,2]],"date-time":"2015-12-02T00:00:00Z","timestamp":1449014400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"US National Science Foundation","doi-asserted-by":"crossref","award":["CNS-15-13263, CNS-15-12947, CCF-14-23370, CCF-13-49153, CCF-13-20578, TWC-12-23828, CCF-11-17937, CCF-10-17334 and CCF-10-18600"],"award-info":[{"award-number":["CNS-15-13263, CNS-15-12947, CCF-14-23370, CCF-13-49153, CCF-13-20578, TWC-12-23828, CCF-11-17937, CCF-10-17334 and CCF-10-18600"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2015,12,2]]},"abstract":"<jats:p>\n            In today's software-centric world, ultra-large-scale software repositories, such as SourceForge, GitHub, and Google Code, are the new library of Alexandria. They contain an enormous corpus of software and related information. Scientists and engineers alike are interested in analyzing this wealth of information. However, systematic extraction and analysis of relevant data from these repositories for testing hypotheses is hard, and best left for\n            <jats:italic>mining software repository<\/jats:italic>\n            (MSR) experts! Specifically, mining source code yields significant insights into software development artifacts and processes. Unfortunately, mining source code at a large scale remains a difficult task. Previous approaches had to either limit the scope of the projects studied, limit the scope of the mining task to be more coarse grained, or sacrifice studying the history of the code. In this article we address mining source code: (a) at a very large scale; (b) at a fine-grained level of detail; and (c) with full history information. To address these challenges, we present domain-specific language features for source-code mining in our language and infrastructure called\n            <jats:italic>Boa<\/jats:italic>\n            . The goal of\n            <jats:italic>Boa<\/jats:italic>\n            is to ease testing MSR-related hypotheses. Our evaluation demonstrates that\n            <jats:italic>Boa<\/jats:italic>\n            substantially reduces programming efforts, thus lowering the barrier to entry. We also show drastic improvements in scalability.\n          <\/jats:p>","DOI":"10.1145\/2803171","type":"journal-article","created":{"date-parts":[[2015,12,4]],"date-time":"2015-12-04T13:43:07Z","timestamp":1449236587000},"page":"1-34","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":76,"title":["Boa"],"prefix":"10.1145","volume":"25","author":[{"given":"Robert","family":"Dyer","sequence":"first","affiliation":[{"name":"Bowling Green State University, Bowling Green, OH"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hoan Anh","family":"Nguyen","sequence":"additional","affiliation":[{"name":"Iowa State University, Ames, IA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hridesh","family":"Rajan","sequence":"additional","affiliation":[{"name":"Iowa State University, Ames, IA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tien N.","family":"Nguyen","sequence":"additional","affiliation":[{"name":"Iowa State University, Ames, IA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2015,12,2]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Hadoop: Open source implementation of MapReduce","author":"Foundation Apache Software","year":"2015","unstructured":"Apache Software Foundation . 2015 a. Hadoop: Open source implementation of MapReduce . http:\/\/hadoop. apache.org\/. Apache Software Foundation. 2015a. Hadoop: Open source implementation of MapReduce. http:\/\/hadoop. apache.org\/."},{"key":"e_1_2_1_2_1","unstructured":"Apache Software Foundation. 2015b. HBase: Open source implementation of Bigtable. http:\/\/hbase. apache.org\/  Apache Software Foundation. 2015b. HBase: Open source implementation of Bigtable. http:\/\/hbase. apache.org\/"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1081706.1081736"},{"key":"e_1_2_1_4_1","unstructured":"Black Duck Software. 2015. Black duck open HUB. https:\/\/www.openhub.net\/.  Black Duck Software. 2015. Black duck open HUB. https:\/\/www.openhub.net\/."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/362686.362692"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806638"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1365815.1365816"},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the 4th USENIX Conference on Operating Systems Design and Implementation (OSDI'04)","author":"Dean Jeffrey","year":"2004","unstructured":"Jeffrey Dean and Sanjay Ghemawat . 2004 . MapReduce: Simplified data processing on large clusters . In Proceedings of the 4th USENIX Conference on Operating Systems Design and Implementation (OSDI'04) . 107--113. Jeffrey Dean and Sanjay Ghemawat. 2004. MapReduce: Simplified data processing on large clusters. In Proceedings of the 4th USENIX Conference on Operating Systems Design and Implementation (OSDI'04). 107--113."},{"key":"e_1_2_1_9_1","unstructured":"Robert Di Falco. 2011. Hierarchical visitor pattern C2 pattern repository. http:\/\/c2.com\/cgi\/wiki?  Robert Di Falco. 2011. Hierarchical visitor pattern C2 pattern repository. http:\/\/c2.com\/cgi\/wiki?"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/143457.143468"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2162049.2162067"},{"key":"e_1_2_1_12_1","volume-title":"Proceedings of the 35th International Conference on Software Engineering (ICSE'13)","author":"Dyer Robert","unstructured":"Robert Dyer , Hoan Anh Nguyen , Hridesh Rajan , and Tien N. Nguyen . 2013a. Boa: A language and infrastructure for analyzing ultra-large-scale software repositories . In Proceedings of the 35th International Conference on Software Engineering (ICSE'13) . 422--431. Robert Dyer, Hoan Anh Nguyen, Hridesh Rajan, and Tien N. Nguyen. 2013a. Boa: A language and infrastructure for analyzing ultra-large-scale software repositories. In Proceedings of the 35th International Conference on Software Engineering (ICSE'13). 422--431."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/2554488.2554493"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517208.2517226"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2568225.2568295"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1882291.1882315"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2009.6"},{"key":"e_1_2_1_18_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma Erich","year":"1994","unstructured":"Erich Gamma , Richard Helm , Ralph Johnson , and John Vlissides . 1994 . Design Patterns: Elements of Reusable Object-Oriented Software . Addison-Wesley Professional . Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/FLOSS.2007.1"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-011-9181-9"},{"key":"e_1_2_1_21_1","volume-title":"Building on the basics: An examination of high-performance computing export control policy in the","author":"Goodman Seymour","year":"1990","unstructured":"Seymour Goodman , Peter Wolcott , and Grey Burkhart . 1995. Building on the basics: An examination of high-performance computing export control policy in the 1990 s. http:\/\/fsi.stanford.edu\/sites\/default\/files\/buildingbasics.pdf. Seymour Goodman, Peter Wolcott, and Grey Burkhart. 1995. Building on the basics: An examination of high-performance computing export control policy in the 1990s. http:\/\/fsi.stanford.edu\/sites\/default\/files\/buildingbasics.pdf."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/2487085.2487132"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2009.5070560"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSR.2009.5069478"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.5555\/2664446.2664449"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1852786.1852801"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSMR.2009.43"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1083142.1083161"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1272996.1273005"},{"key":"e_1_2_1_30_1","volume-title":"Vinju","author":"Izmaylova Anastasia","year":"2013","unstructured":"Anastasia Izmaylova , Paul Klint , Ashim Shahi , and Jurgen J . Vinju . 2013 . M3: An open model for measuring code artifacts. http:\/\/arxiv.org\/abs\/1312.1188v1 Anastasia Izmaylova, Paul Klint, Ashim Shahi, and Jurgen J. Vinju. 2013. M3: An open model for measuring code artifacts. http:\/\/arxiv.org\/abs\/1312.1188v1"},{"key":"e_1_2_1_31_1","volume-title":"Haskell 98 Language and Libraries: The Revised Report","author":"Jones Simon Peyton","unstructured":"Simon Peyton Jones . 2003. Haskell 98 Language and Libraries: The Revised Report . Cambridge University Press . Simon Peyton Jones. 2003. Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2009.28"},{"key":"e_1_2_1_33_1","first-page":"3","article-title":"Standing the test of time: The data encryption standard","volume":"47","author":"Landau Susan","year":"2000","unstructured":"Susan Landau . 2000 . Standing the test of time: The data encryption standard . Not. Amer. Math. Soc. 47 , 3 , 341. Susan Landau. 2000. Standing the test of time: The data encryption standard. Not. Amer. Math. Soc. 47, 3, 341.","journal-title":"Not. Amer. Math. Soc."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.1992.242533"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1111\/1467-6451.00174"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10618-008-0118-x"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1094811.1094840"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/1449764.1449799"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/1376616.1376726"},{"key":"e_1_2_1_40_1","volume-title":"Proceedings of the 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns (REFLECTION'01)","author":"Orleans Doug","unstructured":"Doug Orleans and Karl J. Lieberherr . 2001. DJ: Dynamic adaptive programming in Java . In Proceedings of the 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns (REFLECTION'01) . 73--80. Doug Orleans and Karl J. Lieberherr. 2001. DJ: Dynamic adaptive programming in Java. In Proceedings of the 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns (REFLECTION'01). 73--80."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1155\/2005\/962135"},{"key":"e_1_2_1_42_1","unstructured":"Promise Dataset 2009. Promise 2009. http:\/\/promisedata.org\/2009\/datasets.html.  Promise Dataset 2009. Promise 2009. http:\/\/promisedata.org\/2009\/datasets.html."},{"key":"e_1_2_1_43_1","volume-title":"Proceedings of the 2nd Workshop on Assessment of Contemporary Modularization Techniques (ACoM'08)","author":"Rajan Hridesh","year":"2008","unstructured":"Hridesh Rajan . 2008 . Mining software repositories for evaluating software engineering properties of language designs . In Proceedings of the 2nd Workshop on Assessment of Contemporary Modularization Techniques (ACoM'08) . Hridesh Rajan. 2008. Mining software repositories for evaluating software engineering properties of language designs. In Proceedings of the 2nd Workshop on Assessment of Contemporary Modularization Techniques (ACoM'08)."},{"key":"e_1_2_1_44_1","unstructured":"Hridesh Rajan Tien N. Nguyen Robert Dyer and Hoan Anh Nguyen. 2015. Boa website. http:\/\/boa.cs. iastate.edu\/.  Hridesh Rajan Tien N. Nguyen Robert Dyer and Hoan Anh Nguyen. 2015. Boa website. http:\/\/boa.cs. iastate.edu\/."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/s12130-999-1026-0"},{"key":"e_1_2_1_46_1","volume-title":"Proceedings of the 25th European Conference on Object-Oriented Programming (ECOOP'11)","author":"Richards Gregor","year":"2011","unstructured":"Gregor Richards , Christian Hammer , Brian Burg , and Jan Vitek . 2011 . The Eval that men do: A large-scale study of the use of Eval in JavaScript applications . In Proceedings of the 25th European Conference on Object-Oriented Programming (ECOOP'11) . 52--78. Gregor Richards, Christian Hammer, Brian Burg, and Jan Vitek. 2011. The Eval that men do: A large-scale study of the use of Eval in JavaScript applications. In Proceedings of the 25th European Conference on Object-Oriented Programming (ECOOP'11). 52--78."},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1858996.1859050"},{"key":"e_1_2_1_48_1","unstructured":"SourceForge. 2015. SourceForge website. http:\/\/sourceforge.net\/.  SourceForge. 2015. SourceForge website. http:\/\/sourceforge.net\/."},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.5555\/832307.837083"},{"key":"e_1_2_1_50_1","volume-title":"TIOBE programming community index for","author":"Tiobe Software BV.","year":"2012","unstructured":"Tiobe Software BV. 2012. TIOBE programming community index for July 2012 . Tech . rep. http:\/\/www. tiobe.com\/tpci.htm. Tiobe Software BV. 2012. TIOBE programming community index for July 2012. Tech. rep. http:\/\/www. tiobe.com\/tpci.htm."},{"key":"e_1_2_1_51_1","volume-title":"Sizzle: A compiler and runtime for Sawzall, optimized for Hadoop. https:\/\/github.com\/anthonyu\/Sizzle.","author":"Urso Anthony","year":"2013","unstructured":"Anthony Urso . 2013 . Sizzle: A compiler and runtime for Sawzall, optimized for Hadoop. https:\/\/github.com\/anthonyu\/Sizzle. Anthony Urso. 2013. Sizzle: A compiler and runtime for Sawzall, optimized for Hadoop. https:\/\/github.com\/anthonyu\/Sizzle."},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/504282.504302"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSR.2007.13"},{"key":"e_1_2_1_54_1","volume-title":"Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI'08)","author":"Yu Yuan","year":"2008","unstructured":"Yuan Yu , Michael Isard , Dennis Fetterly , Mihai Budiu , \u00dalfar Erlingsson , Pradeep Kumar Gunda , and Jon Currey . 2008 . DryadLINQ: A system for general-purpose distributed data-parallel computing using a high-level language . In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI'08) . 1--14. Yuan Yu, Michael Isard, Dennis Fetterly, Mihai Budiu, \u00dalfar Erlingsson, Pradeep Kumar Gunda, and Jon Currey. 2008. DryadLINQ: A system for general-purpose distributed data-parallel computing using a high-level language. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI'08). 1--14."}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2803171","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2803171","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T05:07:09Z","timestamp":1750223229000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2803171"}},"subtitle":["Ultra-Large-Scale Software Repository and Source-Code Mining"],"short-title":[],"issued":{"date-parts":[[2015,12,2]]},"references-count":54,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2015,12,2]]}},"alternative-id":["10.1145\/2803171"],"URL":"https:\/\/doi.org\/10.1145\/2803171","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2015,12,2]]},"assertion":[{"value":"2014-01-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-07-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-12-02","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}