% SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko % SPDX-License-Identifier: MIT @book{symons1991software, author = {Symons, Charles R.}, doi = {10.5555/120462}, publisher = {Wiley}, title = {{Software Sizing and Estimating: Mk II FPA (Function Point Analysis)}}, year = {1991}, } @article{demillo1978hints, author = {DeMillo, Richard A. and Lipton, Richard J. and Sayward, Frederick G.}, doi = {10.1109/c-m.1978.218136}, journal = {{Computer}}, number = {4}, pages = {34--41}, title = {{Hints on Test Data Selection: Help for the Practicing Programmer}}, volume = {11}, year = {1978}, } @misc{budd1981mutation, author = {Budd, Timothy A.}, organization = {North-Holland Publishing Company, Amsterdam, Netherlands}, title = {{Mutation Analysis: Ideas, Examples, Problems and Prospects}}, year = {1981}, } @book{halstead1977elements, author = {Halstead, Maurice H.}, doi = {10.5555/540137}, publisher = {Elsevier Science Inc.}, title = {{Elements of Software Science (Operating and Programming Systems Series)}}, year = {1977}, } @article{howden1982weak, author = {Howden, William E.}, doi = {10.1109/tse.1982.235571}, journal = {{IEEE Transactions on Software Engineering}}, number = {4}, pages = {371--379}, title = {{Weak Mutation Testing and Completeness of Test Sets}}, volume = {8}, year = {1982}, } @article{offutt1994empirical, author = {Offutt, A. Jefferson and Lee, Stephen D.}, doi = {10.1109/32.286422}, journal = {{IEEE Transactions on Software Engineering}}, number = {5}, pages = {337--344}, title = {{An Empirical Evaluation of Weak Mutation}}, volume = {20}, year = {1994}, } @misc{agrawal1989design, author = {Agrawal, Hiralal and DeMillo, Richard A. and Hathaway, R. and Hsu, William and Hsu, Wynne and Krauser, Edward W. and Martin, Rhonda J. and Mathur, Aditya P. and Spafford, Eugene}, title = {{Design of Mutant Operators for the C Programming Language}}, year = {1989}, } @article{frankl1997all, author = {Frankl, Phyllis G. and Weiss, Stewart N. and Hu, Cang}, doi = {10.1016/s0164-1212(96)00154-9}, journal = {{Journal of Systems and Software}}, number = {3}, pages = {235--253}, title = {{All-Uses vs Mutation Testing: An Experimental Comparison of Effectiveness}}, volume = {38}, year = {1997}, } @book{jones2007, author = {Jones, Capers}, publisher = {McGraw-Hill}, title = {{Estimating Software Costs: Bringing Realism to Estimating}}, year = {2007}, } @article{putnam1978general, author = {Putnam, Lawrence H.}, doi = {10.1109/tse.1978.231521}, journal = {{IEEE Transactions on Software Engineering}}, number = {4}, pages = {345--361}, title = {{A General Empirical Solution to the Macro Software Sizing and Estimating Problem}}, volume = {4}, year = {1978}, } @book{brooks1978mythical, author = {Brooks, Frederick P.}, doi = {10.5555/540031}, publisher = {Addison-Wesley}, title = {{The Mythical Man-Month: Essays on Software Engineering}}, year = {1978}, } @article{boehm1984software, author = {Boehm, Barry W.}, doi = {10.1109/tse.1984.5010193}, journal = {{IEEE Transactions on Software Engineering}}, number = {1}, pages = {4--21}, title = {{Software Engineering Economics}}, volume = {10}, year = {1984}, } @book{boehm2000, author = {Boehm, Barry and Abts, Chris and Brown, Winsor and Chulani, Sunita and Clark, Bradford K. and Horowitz, Ellis and Madachy, Ray and Reifer, Donald J. and Bert, Steece}, doi = {10.5555/1795822}, publisher = {Prentice Hall}, title = {{Software Cost Estimation With COCOMO II}}, year = {2000}, } @misc{albrecht1979measuring, author = {Albrecht, Allan J.}, organization = {Proceedings of the Joint SHARE, GUIDE, and IBM Application Development Symposium}, title = {{Measuring Application Development Productivity}}, year = {1979}, } @article{albrecht1983software, author = {Albrecht, Allan J. and Gaffney, John E.}, doi = {10.1109/tse.1983.235271}, journal = {{IEEE Transactions on Software Engineering}}, number = {6}, pages = {639--648}, title = {{Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation}}, volume = {9}, year = {1983}, } @book{iso20926foreword, author = {Jones, Capers T.}, publisher = {ISO/IEC 20926:2009}, title = {{Foreword to IFPUG Functional Size Measurement Method}}, year = {2009}, } @misc{iso20926, author = {ISO, International Stardardization Organization}, title = {{ISO/IEC {20926:2009}, IFPUG Functional Size Measurement Method}}, year = {2009}, } @book{galorath2006software, author = {Galorath, Daniel D. and Evans, Michael W.}, doi = {10.1201/9781420013122}, publisher = {CRC Press}, title = {{Software Sizing, Estimation, and Risk Management: When Performance Is Measured Performance Improves}}, year = {2006}, } @book{pressman2005software, author = {Pressman, Roger S. and Maxim, Bruce}, publisher = {McGraw Hill}, title = {{Software Engineering: A Practitioner's Approach}}, year = {2014}, } @article{chen1976entity, author = {Chen, Peter Pin-Shan}, doi = {10.1145/320434.320440}, journal = {{ACM Transactions on Database Systems}}, number = {1}, pages = {9--36}, title = {{The Entity-Relationship Model --- Toward a Unified View of Data}}, volume = {1}, year = {1976}, } @book{demarco1978, author = {DeMarco, Tom}, doi = {10.1007/978-3-642-48354-7_9}, publisher = {Prentice Hall}, title = {{Structure Analysis and System Specification}}, year = {1978}, } @article{kemerer1987empirical, author = {Kemerer, Chris F.}, doi = {10.1145/22899.22906}, journal = {{Communications of the ACM}}, number = {5}, pages = {416--429}, title = {{An Empirical Validation of Software Cost Estimation Models}}, volume = {30}, year = {1987}, } @article{low1990function, author = {Low, Graham C. and Jeffery, D. Ross}, doi = {10.1109/32.44364}, journal = {{IEEE Transactions on Software Engineering}}, number = {1}, pages = {64--71}, title = {{Function Points in the Estimation and Evaluation of the Software Process}}, volume = {16}, year = {1990}, } @inproceedings{nagappan2005use, author = {Nagappan, Nachiappan and Ball, Thomas}, booktitle = {{Proceedings of the 27th International Conference on Software Engineering}}, doi = {10.1145/1062455.1062514}, pages = {284--292}, title = {{Use of Relative Code Churn Measures to Predict System Defect Density}}, year = {2005}, } @inproceedings{farago2015cumulative, author = {Farag{\'o}, Csaba and Heged{\H{u}}s, P{\'e}ter and Ferenc, Rudolf}, booktitle = {{Proceedings of the 15th International Working Conference on Source Code Analysis and Manipulation (SCAM)}}, doi = {10.1109/scam.2015.7335410}, organization = {IEEE}, pages = {141--150}, title = {{Cumulative Code Churn: Impact on Maintainability}}, year = {2015}, } @article{kelly1992analysis, author = {Kelly, John C. and Sherif, Joseph S. and Hops, Jonathan}, doi = {10.1016/0164-1212(92)90089-3}, journal = {{Journal of Systems and Software}}, number = {2}, pages = {111--117}, title = {{An Analysis of Defect Densities Found During Software Inspections}}, volume = {17}, year = {1992}, } @inproceedings{mohagheghi2004empirical, author = {Mohagheghi, Parastoo and Conradi, Reidar and Killi, Ole M. and Schwarz, Henrik}, booktitle = {{Proceedings of the 26th International Conference on Software Engineering}}, doi = {10.1109/icse.2004.1317450}, organization = {IEEE}, pages = {282--291}, title = {{An Empirical Study of Software Reuse vs. Defect-Density and Stability}}, year = {2004}, } @misc{ieee982, author = {Board, IEEE Standards}, doi = {10.1109/ieeestd.1989.122630}, title = {{IEEE Std {982.2-1988}: Guide for the Use of IEEE Standard Dictionary of Measures to Produce Reliable Software}}, year = {1989}, } @article{basili1984software, author = {Basili, Victor R. and Perricone, Barry T.}, doi = {10.1145/69605.2085}, journal = {{Communications of the ACM}}, number = {1}, pages = {42--52}, title = {{Software Errors and Complexity: An Empirical Investigation}}, volume = {27}, year = {1984}, } @misc{arguelles2020, author = {Arguelles, Carlos and Ivankovi{\'c}, Marko and Bender, Adam}, howpublished = {\url{https://jttu.net/arguelles2020}}, note = {[Online; accessed 15-03-2024]}, title = {{Code Coverage Best Practices}}, year = {2020}, } @misc{social2017, author = {ThoughtWorks}, howpublished = {\url{https://jttu.net/social2017}}, month = {3}, note = {[Online; accessed 09-10-2024]}, title = {{Social Code Analysis}}, year = {2017}, } @article{bowen1979survey, author = {Bowen, John B.}, doi = {10.1109/mc.1979.1658854}, journal = {{Computer}}, number = {8}, pages = {37--42}, title = {{A Survey of Standards and Proposed Metrics for Software Quality Testing}}, volume = {12}, year = {1979}, } @misc{jones1996pragmatics, author = {Jones, Capers}, organization = {Technical Council on Software Engineering}, title = {{The Pragmatics of Software Process Improvements}}, year = {1996}, } @article{fenton1999critique, author = {Fenton, Norman E. and Neil, Martin}, doi = {10.1109/32.815326}, journal = {{IEEE Transactions on Software Engineering}}, number = {5}, pages = {675--689}, title = {{A Critique of Software Defect Prediction Models}}, volume = {25}, year = {1999}, } @book{jones1991, author = {Jones, Capers}, doi = {10.5555/109758}, publisher = {McGraw-Hill}, title = {{Applied Software Measurement}}, year = {1991}, } @article{koru2008investigation, author = {Koru, A. G{\"u}ne{\c{s}} and Zhang, Dongsong and El Emam, Khaled and Liu, Hongfang}, doi = {10.1109/tse.2008.90}, journal = {{IEEE Transactions on Software Engineering}}, number = {2}, pages = {293--304}, title = {{An Investigation into the Functional Form of the Size-Defect Relationship for Software Modules}}, volume = {35}, year = {2008}, } @book{mcconnell2004code, author = {McConnell, Steve}, doi = {10.5555/1096143}, publisher = {Pearson Education}, title = {{Code Complete}}, year = {2004}, } @article{cobb1990engineering, author = {Cobb, Richard H. and Mills, Harlan D.}, doi = {10.1109/52.60601}, journal = {{IEEE Software}}, number = {6}, pages = {45--54}, title = {{Engineering Software Under Statistical Quality Control}}, volume = {7}, year = {1990}, } @article{basili1996validation, author = {Basili, Victor R. and Briand, Lionel C. and Melo, Walc{\'e}lio L.}, doi = {10.1109/32.544352}, journal = {{IEEE Transactions on Software Engineering}}, number = {10}, pages = {751--761}, title = {{A Validation of Object-Oriented Design Metrics as Quality Indicators}}, volume = {22}, year = {1996}, } @article{chidamber1994metrics, author = {Chidamber, Shyam R. and Kemerer, Chris F.}, doi = {10.1109/32.295895}, journal = {{IEEE Transactions on Software Engineering}}, number = {6}, pages = {476--493}, title = {{A Metrics Suite for Object Oriented Design}}, volume = {20}, year = {1994}, } @article{radjenovic2013software, author = {Radjenovi{\'c}, Danijel and Heri{\v{c}}ko, Marjan and Torkar, Richard and {\v{Z}}ivkovi{\v{c}}, Ale{\v{s}}}, doi = {10.1016/j.infsof.2013.02.009}, journal = {{Information and Software Technology}}, number = {8}, pages = {1397--1418}, title = {{Software Fault Prediction Metrics: A Systematic Literature Review}}, volume = {55}, year = {2013}, } @article{yu2022predicting, author = {Yu, Xiao and Keung, Jacky and Xiao, Yan and Feng, Shuo and Li, Fuyang and Dai, Heng}, doi = {10.1016/j.infsof.2022.106847}, journal = {{Information and Software Technology}}, number = {1}, pages = {106847}, title = {{Predicting the Precise Number of Software Defects: Are We There yet?}}, volume = {146}, year = {2022}, } @inproceedings{yamashita2016thresholds, author = {Yamashita, Kazuhiro and Huang, Changyun and Nagappan, Meiyappan and Kamei, Yasutaka and Mockus, Audris and Hassan, Ahmed E. and Ubayashi, Naoyasu}, booktitle = {{Proceedings of the International Conference on Software Quality, Reliability and Security (QRS)}}, doi = {10.1109/qrs.2016.31}, organization = {IEEE}, pages = {191--201}, title = {{Thresholds for Size and Complexity Metrics: A Case Study From the Perspective of Defect Density}}, year = {2016}, } @inproceedings{nagappan2005static, author = {Nagappan, Nachiappan and Ball, Thomas}, booktitle = {{Proceedings of the 27th International Conference on Software Engineering}}, doi = {10.1145/1062455.1062558}, pages = {580--586}, title = {{Static Analysis Tools as Early Indicators of Pre-Release Defect Density}}, year = {2005}, } @article{parnas1972criteria, author = {Parnas, David Lorge}, doi = {10.1145/361598.361623}, journal = {{Communications of the ACM}}, number = {12}, pages = {1053--1058}, title = {{On the Criteria to Be Used in Decomposing Systems into Modules}}, volume = {15}, year = {1972}, } @inproceedings{parnas1994software, author = {Parnas, David Lorge}, booktitle = {{Proceedings of the 16th International Conference on Software Engineering}}, doi = {10.1109/icse.1994.296790}, organization = {IEEE}, pages = {279--287}, title = {{Software Aging}}, year = {1994}, } @inproceedings{arafat2009comment, author = {Arafat, Oliver and Riehle, Dirk}, booktitle = {{Proceedings of the 31st International Conference on Software Engineering, Companion Volume}}, doi = {10.1109/icse-companion.2009.5070980}, organization = {IEEE}, pages = {195--198}, title = {{The Comment Density of Open Source Software Code}}, year = {2009}, } @inproceedings{fluri2007code, author = {Fluri, Beat and Wursch, Michael and Gall, Harald C.}, booktitle = {{Proceedings of the 14th Working Conference on Reverse Engineering}}, doi = {10.1109/wcre.2007.21}, organization = {IEEE}, pages = {70--79}, title = {{Do Code and Comments Co-Evolve? On the Relation Between Source Code and Comment Changes}}, year = {2007}, } @inproceedings{woodfield1981effect, author = {Woodfield, Scott N. and Dunsmore, Hubert E. and Shen, Vincent Y.}, booktitle = {{Proceedings of the 5th International Conference on Software Engineering}}, doi = {10.5555/800078.802534}, pages = {215--223}, title = {{The Effect of Modularization and Comments on Program Comprehension}}, year = {1981}, } @inproceedings{haouari2011good, author = {Haouari, Dorsaf and Sahraoui, Houari and Langlais, Philippe}, booktitle = {{Proceedings of the International Symposium on Empirical Software Engineering and Measurement}}, doi = {10.1109/esem.2011.22}, organization = {IEEE}, pages = {137--146}, title = {{How Good Is Your Comment? A Study of Comments in Java Programs}}, year = {2011}, } @inproceedings{oman1992metrics, author = {Oman, Paul and Hagemeister, Jack}, booktitle = {{Proceedings of the International Conference on Software Maintenance}}, doi = {10.1109/icsm.1992.242525}, organization = {IEEE}, pages = {337--338}, title = {{Metrics for Assessing a Software System's Maintainability}}, year = {1992}, } @article{pascarella2019classifying, author = {Pascarella, Luca and Bruntink, Magiel and Bacchelli, Alberto}, doi = {10.1007/s10664-019-09694-w}, journal = {{Empirical Software Engineering}}, number = {3}, pages = {1499--1537}, title = {{Classifying Code Comments in Java Software Systems}}, volume = {24}, year = {2019}, } @inproceedings{garcia1996maintainability, author = {Barranco Garcia, Manuel J. and Granja Alvarez, Juan Carlos}, booktitle = {{Proceedings of the International Conference on Software Maintenance}}, doi = {10.1109/icsm.1996.564992}, organization = {IEEE}, pages = {87--93}, title = {{Maintainability as a Key Factor in Maintenance Productivity: A Case Study}}, year = {1996}, } @inproceedings{nurvitadhi2003class, author = {Nurvitadhi, Eriko and Leung, Wing Wah and Cook, Curtis}, booktitle = {{Proceedings of the 33rd Annual Frontiers in Education}}, doi = {10.1109/fie.2003.1263332}, organization = {IEEE}, pages = {130--131}, title = {{Do Class Comments Aid Java Program Understanding?}}, volume = {1}, year = {2003}, } @inproceedings{he2019understanding, author = {He, Hao}, booktitle = {{Proceedings of the 27th Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering}}, doi = {10.1145/3338906.3342494}, pages = {1217--1219}, title = {{Understanding Source Code Comments at Large-Scale}}, year = {2019}, } @inproceedings{hu2022practitioners, author = {Hu, Xing and Xia, Xin and Lo, David and Wan, Zhiyuan and Chen, Qiuyuan and Zimmermann, Thomas}, booktitle = {{Proceedings of the 44th International Conference on Software Engineering}}, doi = {10.1145/3510003.3510152}, pages = {1693--1705}, title = {{Practitioners' Expectations on Automated Code Comment Generation}}, year = {2022}, } @inproceedings{roehm2012professional, author = {Roehm, Tobias and Tiarks, Rebecca and Koschke, Rainer and Maalej, Walid}, booktitle = {{Proceedings of the 34th International Conference on Software Engineering (ICSE)}}, doi = {10.1109/icse.2012.6227188}, organization = {IEEE}, pages = {255--265}, title = {{How Do Professional Developers Comprehend Software?}}, year = {2012}, } @inproceedings{stapleton2020human, author = {Stapleton, Sean and Gambhir, Yashmeet and LeClair, Alexander and Eberhart, Zachary and Weimer, Westley and Leach, Kevin and Huang, Yu}, booktitle = {{Proceedings of the 28th International Conference on Program Comprehension}}, doi = {10.1145/3387904.3389258}, pages = {2--13}, title = {{A Human Study of Comprehension and Code Summarization}}, year = {2020}, } @book{kernighan1974elements, author = {Kernighan, Brian W. and Plauger, Phillip James}, doi = {10.5555/601121}, publisher = {McGraw-Hill, Inc}, title = {{The Elements of Programming Style}}, year = {1974}, } @inproceedings{brooks1978using, author = {Brooks, Ruven}, booktitle = {{Proceedings of the 3rd International Conference on Software Engineering}}, doi = {10.5555/800099.803210}, pages = {196--201}, title = {{Using a Behavioral Theory of Program Comprehension in Software Engineering}}, year = {1978}, } @misc{spertus2021, author = {Spertus, Ellen}, howpublished = {\url{https://jttu.net/spertus2021}}, title = {{Best Practices for Writing Code Comments}}, year = {2021}, } @book{fowler1999refactoring, author = {Fowler, Martin and Beck, Kent and Brant, John and Opdyke, William and Roberts, Don}, doi = {10.5555/311424}, publisher = {Addison-Wesley}, title = {{Refactoring: Improving the Design of Existing Code}}, year = {1999}, } @book{hunt1999pragmatic, author = {Hunt, Andrew and Thomas, Dave}, doi = {10.5555/320326}, publisher = {Pearson Education}, title = {{The Pragmatic Programmer: From Journeyman to Master}}, year = {1999}, } @book{martin2008clean, author = {Martin, Robert C.}, doi = {10.5555/1388398}, publisher = {Pearson Education}, title = {{Clean Code: A Handbook of Agile Software Craftsmanship}}, year = {2008}, } @inproceedings{barnett2016relationship, author = {Barnett, Jacob G. and Gathuru, Charles K. and Soldano, Luke S. and McIntosh, Shane}, booktitle = {{Proceedings of the 13th International Conference on Mining Software Repositories}}, doi = {10.1145/2901739.2903496}, pages = {496--499}, title = {{The Relationship Between Commit Message Detail and Defect Proneness in Java Projects on Github}}, year = {2016}, } @inproceedings{moser2008comparative, author = {Moser, Raimund and Pedrycz, Witold and Succi, Giancarlo}, booktitle = {{Proceedings of the 30th International Conference on Software Engineering}}, doi = {10.1145/1368088.1368114}, pages = {181--190}, title = {{A Comparative Analysis of the Efficiency of Change Metrics and Static Code Attributes for Defect Prediction}}, year = {2008}, } @inproceedings{sohn2017fluccs, author = {Sohn, Jeongju and Yoo, Shin}, booktitle = {{Proceedings of the 26th International Symposium on Software Testing and Analysis}}, doi = {10.1145/3092703.3092717}, pages = {273--283}, title = {{FLUCCS: Using Code and Change Metrics to Improve Fault Localization}}, year = {2017}, } @inproceedings{hassan2008road, author = {Hassan, Ahmed E.}, booktitle = {{Proceedings of the Frontiers of Software Maintenance}}, doi = {10.1109/fosm.2008.4659248}, organization = {IEEE}, pages = {48--57}, title = {{The Road Ahead for Mining Software Repositories}}, year = {2008}, } @inproceedings{arafat2009commit, author = {Arafat, Oliver and Riehle, Dirk}, booktitle = {{Proceedings of the 42nd Hawaii International Conference on System Sciences}}, doi = {10.1109/hicss.2009.421}, organization = {IEEE}, pages = {1--8}, title = {{The Commit Size Distribution of Open Source Software}}, year = {2009}, } @inproceedings{alali2008s, author = {Alali, Abdulkareem and Kagdi, Huzefa and Maletic, Jonathan I.}, booktitle = {{Proceedings of the 16th International Conference on Program Comprehension}}, doi = {10.1109/icpc.2008.24}, organization = {IEEE}, pages = {182--191}, title = {{What's a Typical Commit? A Characterization of Open Source Software Repositories}}, year = {2008}, } @inproceedings{eyolfson2011time, author = {Eyolfson, Jon and Tan, Lin and Lam, Patrick}, booktitle = {{Proceedings of the 8th Working Conference on Mining Software Repositories}}, doi = {10.1145/1985441.1985464}, pages = {153--162}, title = {{Do Time of Day and Developer Experience Affect Commit Bugginess?}}, year = {2011}, } @inproceedings{dyer2013boa, author = {Dyer, Robert and Nguyen, Hoan Anh and Rajan, Hridesh and Nguyen, Tien N.}, booktitle = {{Proceedings of the 35th International Conference on Software Engineering (ICSE)}}, doi = {10.1109/icse.2013.6606588}, organization = {IEEE}, pages = {422--431}, title = {{Boa: A Language and Infrastructure for Analyzing Ultra-Large-Scale Software Repositories}}, year = {2013}, } @inproceedings{d2010commit, author = {D'Ambros, Marco and Lanza, Michele and Robbes, Romain}, booktitle = {{Proceedings of the 1st Workshop on Web 2.0 for Software Engineering}}, doi = {10.1145/1809198.1809204}, pages = {14--19}, title = {{Commit 2.0}}, year = {2010}, } @inproceedings{buse2010automatically, author = {Buse, Raymond P. L. and Weimer, Westley R.}, booktitle = {{Proceedings of the 25th International Conference on Automated Software Engineering}}, doi = {10.1145/1858996.1859005}, pages = {33--42}, title = {{Automatically Documenting Program Changes}}, year = {2010}, } @inproceedings{cortes2014automatically, author = {Cort{\'e}s-Coy, Luis Fernando and Linares-V{\'a}squez, Mario and Aponte, Jairo and Poshyvanyk, Denys}, booktitle = {{Proceedings of the 14th International Working Conference on Source Code Analysis and Manipulation}}, doi = {10.1109/scam.2014.14}, organization = {IEEE}, pages = {275--284}, title = {{On Automatically Generating Commit Messages via Summarization of Source Code Changes}}, year = {2014}, } @article{zhang2024automatic, author = {Zhang, Yuxia and Qiu, Zhiqing and Stol, Klaas-Jan and Zhu, Wenhui and Zhu, Jiaxin and Tian, Yingchen and Liu, Hui}, doi = {10.1109/tse.2024.3364675}, journal = {{IEEE Transactions on Software Engineering}}, number = {4}, title = {{Automatic Commit Message Generation: A Critical Review and Directions for Future Work}}, volume = {50}, year = {2024}, } @inproceedings{hindle2008large, author = {Hindle, Abram and German, Daniel M. and Holt, Ric}, booktitle = {{Proceedings of the International Working Conference on Mining Software Repositories}}, doi = {10.1145/1370750.1370773}, pages = {99--108}, title = {{What Do Large Commits Tell Us? A Taxonomical Study of Large Commits}}, year = {2008}, } @inproceedings{li2023commit, author = {Li, Jiawei and Ahmed, Iftekhar}, booktitle = {{Proceedings of the 45th International Conference on Software Engineering (ICSE)}}, doi = {10.1109/icse48619.2023.00076}, organization = {IEEE}, pages = {806--817}, title = {{Commit Message Matters: Investigating Impact and Evolution of Commit Message Quality}}, year = {2023}, } @article{german2004using, author = {German, Daniel M.}, doi = {10.1002/smr.301}, journal = {{Journal of Software Maintenance and Evolution: Research and Practice}}, number = {6}, pages = {367--384}, title = {{Using Software Trails to Reconstruct the Evolution of Software}}, volume = {16}, year = {2004}, } @inproceedings{mockus2000identifying, author = {Mockus, Audris and Votta, Lawrence G.}, booktitle = {{Proceedings of the International Conference on Software Maintenance}}, doi = {10.1109/icsm.2000.883028}, organization = {IEEE}, pages = {120--130}, title = {{Identifying Reasons for Software Changes Using Historic Databases}}, year = {2000}, } @inproceedings{atkins1999using, author = {Atkins, David and Ball, Thomas and Graves, Todd and Mockus, Audris}, booktitle = {{Proceedings of the 21st International Conference on Software Engineering}}, doi = {10.1145/302405.302649}, pages = {324--333}, title = {{Using Version Control Data to Evaluate the Impact of Software Tools}}, year = {1999}, } @article{rochkind1975source, author = {Rochkind, Marc J.}, doi = {10.1109/tse.1975.6312866}, journal = {{IEEE Transactions on Software Engineering}}, number = {4}, pages = {364--370}, title = {{The Source Code Control System}}, volume = {31}, year = {1975}, } @inproceedings{graves1998inferring, author = {Graves, Todd L. and Mockus, Audris}, booktitle = {{Proceedings of the 5th International Software Metrics Symposium}}, doi = {10.1109/metric.1998.731253}, organization = {IEEE}, pages = {267--273}, title = {{Inferring Change Effort From Configuration Management Databases}}, year = {1998}, } @book{lorenz1994object, author = {Lorenz, Mark and Kidd, Jeff}, doi = {10.5555/177063}, publisher = {Prentice Hall}, title = {{Object-Oriented Software Metrics: A Practical Guide}}, year = {1994}, } @misc{brito1994object, author = {Brito, Fernando and dos Santos Carapu{\c{c}}a, Rog{\'e}rio}, organization = {Proceedings of the 4th International Conference on Software Quality}, title = {{Object-Oriented Software Engineering: Measuring and Controlling the Development Process}}, year = {1994}, } @misc{fowler2006, author = {Fowler, Martin}, howpublished = {\url{http://martinfowler.com/articles/continuousIntegration.html}}, note = {[Online; accessed 07-02-2024]}, title = {{Continuous Integration}}, year = {2006}, } @inproceedings{hilton2017trade, author = {Hilton, Michael and Nelson, Nicholas and Tunnell, Timothy and Marinov, Darko and Dig, Danny}, booktitle = {{Proceedings of the 11th Joint Meeting on Foundations of Software Engineering}}, doi = {10.1145/3106237.3106270}, pages = {197--207}, title = {{Trade-Offs in Continuous Integration: Assurance, Security, and Flexibility}}, year = {2017}, } @inproceedings{hilton2016usage, author = {Hilton, Michael and Tunnell, Timothy and Huang, Kai and Marinov, Darko and Dig, Danny}, booktitle = {{Proceedings of the 31st International Conference on Automated Software Engineering}}, doi = {10.1145/2970276.2970358}, pages = {426--437}, title = {{Usage, Costs, and Benefits of Continuous Integration in Open-Source Projects}}, year = {2016}, } @article{parry2021survey, author = {Parry, Owain and Kapfhammer, Gregory M. and Hilton, Michael and McMinn, Phil}, doi = {10.1145/3476105}, journal = {{ACM Transactions on Software Engineering and Methodology}}, number = {1}, pages = {1--74}, title = {{A Survey of Flaky Tests}}, volume = {31}, year = {2021}, } @inproceedings{lam2020understanding, author = {Lam, Wing and Winter, Stefan and Astorga, Angello and Stodden, Victoria and Marinov, Darko}, booktitle = {{Proceedings of the 31st International Symposium on Software Reliability Engineering (ISSRE)}}, doi = {10.1109/issre5003.2020.00045}, organization = {IEEE}, pages = {403--413}, title = {{Understanding Reproducibility and Characteristics of Flaky Tests Through Test Reruns in Java Projects}}, year = {2020}, } @misc{micco2016, author = {Micco, John}, howpublished = {\url{https://jttu.net/micco2016}}, month = {5}, note = {[Online; accessed 25-02-2024]}, title = {{Flaky Tests at Google and How We Mitigate Them}}, year = {2016}, } @misc{micco2017state, author = {Micco, John}, organization = {ICST}, title = {{The State of Continuous Integration Testing at Google}}, year = {2017}, } @book{humble2010continuous, author = {Humble, Jez and Farley, David}, doi = {10.5555/1869904}, publisher = {Pearson Education}, title = {{Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation}}, year = {2010}, } @article{cusumano1997microsoft, author = {Cusumano, Michael A. and Selby, Richard W.}, doi = {10.1145/255656.255698}, journal = {{Communications of the ACM}}, number = {6}, pages = {53--61}, title = {{How Microsoft Builds Software}}, volume = {40}, year = {1997}, } @inproceedings{vasilescu2015quality, author = {Vasilescu, Bogdan and Yu, Yue and Wang, Huaimin and Devanbu, Premkumar and Filkov, Vladimir}, booktitle = {{Proceedings of the 10th Joint Meeting on Foundations of Software Engineering}}, doi = {10.1145/2786805.2786850}, pages = {805--816}, title = {{Quality and Productivity Outcomes Relating to Continuous Integration in GitHub}}, year = {2015}, } @book{booch1994object, author = {Booch, Grady and Maksimchuk, Robert A. and Engle, Michael W. and Young, Bobbi J. and Connallen, Jim and Houston, Kelli A.}, doi = {10.5555/1407387}, publisher = {Addison-Wesley}, title = {{Object-Oriented Analysis and Design With Applications}}, year = {1994}, } @inproceedings{beck1998extreme, author = {Beck, Kent}, booktitle = {{Proceedings of the International Conference on Fundamental Approaches to Software Engineering}}, doi = {10.1007/bfb0053579}, organization = {Springer}, pages = {1--6}, title = {{Extreme Programming: A Humanistic Discipline of Software Development}}, year = {1998}, } @inproceedings{rausch2017empirical, author = {Rausch, Thomas and Hummer, Waldemar and Leitner, Philipp and Schulte, Stefan}, booktitle = {{Proceedings of the 14th International Conference on Mining Software Repositories}}, doi = {10.1109/msr.2017.54}, organization = {IEEE}, pages = {345--355}, title = {{An Empirical Analysis of Build Failures in the Continuous Integration Workflows of Java-Based Open-Source Software}}, year = {2017}, } @inproceedings{jain2018brief, author = {Jain, Romit and Singh, Saket Kumar and Mishra, Bharavi}, booktitle = {{Proceedings of the Progress in Advanced Computing and Intelligent Engineering}}, doi = {10.1007/978-981-13-0224-4_2}, organization = {Springer}, pages = {17--27}, title = {{A Brief Study on Build Failures in Continuous Integration: Causation and Effect}}, year = {2018}, } @misc{johnson1977lint, author = {Johnson, Stephen C.}, organization = {Bell Labs}, title = {{Lint, a C Program Checker}}, year = {1977}, } @article{green2011coding, author = {Green, Robert and Ledgard, Henry}, doi = {10.1145/2043174.2043191}, journal = {{Communications of the ACM}}, number = {12}, pages = {57--63}, title = {{Coding Guidelines: Finding the Art in the Science}}, volume = {54}, year = {2011}, } @misc{bugayenko2014blog0813, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/140813.html}}, month = {8}, note = {[Online; accessed 26-02-2024]}, title = {{Strict Control of Java Code Quality}}, year = {2014}, } @inproceedings{bauer2019indentation, author = {Bauer, Jennifer and Siegmund, Janet and Peitek, Norman and Hofmeister, Johannes C. and Apel, Sven}, booktitle = {{Proceedings of the 27th International Conference on Program Comprehension (ICPC)}}, doi = {10.1109/icpc.2019.00033}, organization = {IEEE}, pages = {154--164}, title = {{Indentation: Simply a Matter of Style or Support for Program Comprehension?}}, year = {2019}, } @article{zou2019does, author = {Zou, Weiqin and Xuan, Jifeng and Xie, Xiaoyuan and Chen, Zhenyu and Xu, Baowen}, doi = {10.1007/s10664-019-09720-x}, journal = {{Empirical Software Engineering}}, number = {1}, pages = {3871--3903}, title = {{How Does Code Style Inconsistency Affect Pull Request Integration? An Exploratory Study on 117 GitHub Projects}}, volume = {24}, year = {2019}, } @inproceedings{rigby2011understanding, author = {Rigby, Peter C. and Storey, Margaret-Anne}, booktitle = {{Proceedings of the 33rd International Conference on Software Engineering}}, doi = {10.1145/1985793.1985867}, pages = {541--550}, title = {{Understanding Broadcast Based Peer Review on Open Source Software Projects}}, year = {2011}, } @article{berry1985style, author = {Berry, R. E. and Meekings, B. A. E.}, doi = {10.1145/2465.2469}, journal = {{Communications of the ACM}}, number = {1}, pages = {80--88}, title = {{A Style Analysis of C Programs}}, volume = {28}, year = {1985}, } @article{harrison1986note, author = {Harrison, Warren and Cook, Curtis R.}, doi = {10.1145/5657.5660}, journal = {{Communications of the ACM}}, number = {2}, pages = {123--125}, title = {{A Note on the Berry-Meekings Style Metric}}, volume = {29}, year = {1986}, } @article{marca1981some, author = {Marca, David}, doi = {10.1145/988131.988140}, journal = {{ACM SIGPLAN Notices}}, number = {4}, pages = {70--80}, title = {{Some Pascal Style Guidelines}}, volume = {16}, year = {1981}, } @article{rees1982automatic, author = {Rees, Michael J.}, doi = {10.1145/948086.948088}, journal = {{ACM SIGPLAN Notices}}, number = {10}, pages = {33--42}, title = {{Automatic Assessment Aids for Pascal Programs}}, volume = {17}, year = {1982}, } @misc{collberg1997taxonomy, author = {Collberg, Christian and Thomborson, Clark and Low, Douglas}, title = {{A Taxonomy of Obfuscating Transformations}}, year = {1997}, } @inproceedings{beller2016analyzing, author = {Beller, Moritz and Bholanath, Radjino and McIntosh, Shane and Zaidman, Andy}, booktitle = {{Proceedings of the 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER)}}, doi = {10.1109/saner.2016.105}, organization = {IEEE}, pages = {470--481}, title = {{Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Source Software}}, volume = {1}, year = {2016}, } @inproceedings{zampetti2017open, author = {Zampetti, Fiorella and Scalabrino, Simone and Oliveto, Rocco and Canfora, Gerardo and Di Penta, Massimiliano}, booktitle = {{Proceedings of the 14th International Conference on Mining Software Repositories (MSR)}}, doi = {10.1109/msr.2017.2}, organization = {IEEE}, pages = {334--344}, title = {{How Open Source Projects Use Static Code Analysis Tools in Continuous Integration Pipelines}}, year = {2017}, } @inproceedings{boogerd2008assessing, author = {Boogerd, Cathal and Moonen, Leon}, booktitle = {{Proceedings of the International Conference on Software Maintenance}}, doi = {10.1109/icsm.2008.4658076}, organization = {IEEE}, pages = {277--286}, title = {{Assessing the Value of Coding Standards: An Empirical Study}}, year = {2008}, } @inproceedings{tomasdottir2017and, author = {T{\'o}masd{\'o}ttir, Krist{\'\i}n Fj{\'o}la and Aniche, Mauricio and Van Deursen, Arie}, booktitle = {{Proceedings of the 32nd International Conference on Automated Software Engineering (ASE)}}, doi = {10.1109/ase.2017.8115668}, organization = {IEEE}, pages = {578--589}, title = {{Why and How JavaScript Developers Use Linters}}, year = {2017}, } @inproceedings{obermuller2021code, author = {Oberm{\"u}ller, Florian and Bloch, Lena and Greifenstein, Luisa and Heuer, Ute and Fraser, Gordon}, booktitle = {{Proceedings of the 16th Workshop in Primary and Secondary Computing Education}}, doi = {10.1145/3481312.3481346}, pages = {1--10}, title = {{Code Perfumes: Reporting Good Code to Encourage Learners}}, year = {2021}, } @article{tomasdottir2018adoption, author = {T{\'o}masd{\'o}ttir, Krist{\'\i}n Fj{\'o}la and Aniche, Mauricio and Van Deursen, Arie}, doi = {10.1109/tse.2018.2871058}, journal = {{IEEE Transactions on Software Engineering}}, number = {8}, pages = {863--891}, title = {{The Adoption of JavaScript Linters in Practice: A Case Study on ESLint}}, volume = {46}, year = {2018}, } @article{chess2004static, author = {Chess, Brian and McGraw, Gary}, doi = {10.1109/msp.2004.111}, journal = {{IEEE Security \& Privacy}}, number = {6}, pages = {76--79}, title = {{Static Analysis for Security}}, volume = {2}, year = {2004}, } @misc{sarif2023, author = {OASIS}, howpublished = {\url{https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html}}, note = {[Online; accessed 08-03-2024]}, title = {{Static Analysis Results Interchange Format (SARIF) Version 2.1.0 Plus Errata 01}}, year = {2023}, } @inproceedings{kim2007warnings, author = {Kim, Sunghun and Ernst, Michael D.}, booktitle = {{Proceedings of the the 6th Joint Meeting of the European Software Engineering Conference}}, doi = {10.1145/1287624.1287633}, pages = {45--54}, title = {{Which Warnings Should I Fix First?}}, year = {2007}, } @inproceedings{arzt2015using, author = {Arzt, Steven and Rasthofer, Siegfried and Hahn, Robert and Bodden, Eric}, booktitle = {{Proceedings of the 4th International Workshop on State of the Art in Program Analysis}}, doi = {10.1145/2771284.2771285}, pages = {1--6}, title = {{Using Targeted Symbolic Execution for Reducing False-Positives in Dataflow Analysis}}, year = {2015}, } @article{mccabe1976complexity, author = {McCabe, Thomas J.}, doi = {10.1109/tse.1976.233837}, journal = {{IEEE Transactions on Software Engineering}}, number = {4}, pages = {308--320}, title = {{A Complexity Measure}}, volume = {2}, year = {1976}, } @inproceedings{campbell2018cognitive, author = {Campbell, G. Ann}, booktitle = {{Proceedings of the International Conference on Technical Debt}}, doi = {10.1145/3194164.3194186}, pages = {57--58}, title = {{Cognitive Complexity: An Overview and Evaluation}}, year = {2018}, } @article{lavazza2023empirical, author = {Lavazza, Luigi and Abualkishik, Abedallah Zaid and Liu, Geng and Morasca, Sandro}, doi = {10.1016/j.jss.2022.111561}, journal = {{Journal of Systems and Software}}, number = {1}, title = {{An Empirical Evaluation of the ``Cognitive Complexity'' Measure as a Predictor of Code Understandability}}, volume = {197}, year = {2023}, } @misc{campbell2017, author = {Campbell, G. Ann}, doi = {10.1145/3194164.3194186}, organization = {Sonar}, title = {{\{Cognitive Complexity\} --- A New Way of Measuring Understandability}}, year = {2017}, } @inproceedings{chidamber1991towards, author = {Chidamber, Shyam R. and Kemerer, Chris F.}, booktitle = {{Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications}}, doi = {10.1145/117954.117970}, pages = {197--211}, title = {{Towards a Metrics Suite for Object Oriented Design}}, year = {1991}, } @article{stevens1974structured, author = {Stevens, Wayne P. and Myers, Glenford J. and Constantine, Larry L.}, doi = {10.1147/sj.132.0115}, journal = {{IBM Systems Journal}}, number = {2}, pages = {115--139}, title = {{Structured Design}}, volume = {13}, year = {1974}, } @misc{henderson1996coupling, author = {Henderson-Sellers, Brian and Constantine, Larry L. and Graham, Ian M.}, organization = {Object Oriented Systems}, title = {{Coupling and Cohesion (Towards a Valid Metrics Suite for Object-Oriented Analysis and Design)}}, year = {1996}, } @misc{hitz1995measuring, author = {Hitz, Martin and Montazeri, Behzad}, doi = {10.22436/jmcs.09.02.08}, title = {{Measuring Coupling and Cohesion in Object-Oriented Systems}}, year = {1995}, } @article{counsell2006interpretation, author = {Counsell, Steve and Swift, Stephen and Crampton, Jason}, doi = {10.1145/1131421.1131422}, journal = {{ACM Transactions on Software Engineering and Methodology (TOSEM)}}, number = {2}, pages = {123--149}, title = {{The Interpretation and Utility of Three Cohesion Metrics for Object-Oriented Design}}, volume = {15}, year = {2006}, } @misc{bansiya1999class, author = {Bansiya, Jagdish}, organization = {Journal of Object-Oriented Programming}, title = {{Class Cohesion Metric for Object Oriented Designs}}, year = {1999}, } @article{bieman1995cohesion, author = {Bieman, James M. and Kang, Byung-Kyoo}, doi = {10.1145/223427.211856}, journal = {{SIGSOFT Software Engineering Notes}}, number = {51}, pages = {259--262}, title = {{Cohesion and Reuse in an Object-Oriented System}}, volume = {20}, year = {1995}, } @misc{curtis1979, author = {Curtis, Bill}, organization = {Proceedings of the 4th Summer Software Engineering Workshop}, title = {{Program Complexity and Software Errors: A Front End for Reliability}}, year = {1979}, } @inproceedings{cunningham1992, author = {Cunningham, Ward}, booktitle = {{Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)}}, doi = {10.1145/157710.157715}, pages = {29--30}, title = {{Experience Report --- The WyCash Portfolio Management System}}, year = {1992}, } @article{coleman1994, author = {Coleman, Don and Ash, Dan and Lowther, Bruce and Oman, Paul}, doi = {10.1109/2.303623}, journal = {{Computer}}, number = {8}, title = {{Using Metrics to Evaluate Software System Maintainability}}, volume = {27}, year = {1994}, } @misc{niedermayr2016, author = {Niedermayr, Rainer}, howpublished = {\url{https://teamscale.com/blog/en/news/blog/maintainability-index}}, note = {[Online; accessed 15-03-2024]}, title = {{Why We Don't Use the Software Maintainability Index}}, year = {2016}, } @misc{deursen2014, author = {van Deursen, Arie}, howpublished = {\url{https://jttu.net/deursen2014}}, note = {[Online; accessed 15-03-2024]}, title = {{Think Twice Before Using the ``Maintainability Index''}}, year = {2014}, } @misc{gilboy2022, author = {Gilboy, Tim}, howpublished = {\url{https://sourcery.ai/blog/maintainability-index/}}, note = {[Online; accessed 15-03-2024]}, title = {{Maintainability Index --- What Is It and Where Does It Fall Short?}}, year = {2022}, } @misc{hericko2023, author = {Heri{\v{c}}ko, Tja{\v{s}}a}, doi = {10.3390/app13052972}, organization = {Applied Sciences}, title = {{Exploring Maintainability Index Variants for Software Maintainability Measurement in Object-Oriented Systems}}, year = {2023}, } @misc{ardito2020, author = {Ardito, Luca and Coppola, Riccardo and Barbato, Luca and Verga, Diego}, doi = {10.1155/2020/8840389}, organization = {Scientific Programming}, title = {{A Tool-Based Perspective on Software Code Maintainability Metrics: A Systematic Literature Review}}, year = {2020}, } @article{bansiya2002, author = {Bansiya, J. and Davis, C. G.}, doi = {10.1109/32.979986}, journal = {{IEEE Transactions on Software Engineering}}, number = {1}, title = {{A Hierarchical Model for Object-Oriented Design Quality Assessment}}, volume = {28}, year = {2002}, } @article{fowler2001, author = {Fowler, Martin}, doi = {10.1109/ms.2001.936226}, journal = {{IEEE Software}}, number = {4}, title = {{Reducing Coupling}}, volume = {18}, year = {2001}, } @inproceedings{mubarak2010, author = {Mubarak, A. and Counsell, S. and Hierons, R. M.}, booktitle = {{Proceedings of the 4th International Conference on Research Challenges in Information Science (RCIS)}}, doi = {10.1109/rcis.2010.5507329}, title = {{An Evolutionary Study of Fan-in and Fan-Out Metrics in OSS}}, year = {2010}, } @misc{comartin2021, author = {Comartin, Derek}, howpublished = {\url{https://jttu.net/comartin2021}}, note = {[Online; accessed 15-03-2024]}, title = {{Write Stable Code Using Coupling Metrics}}, year = {2021}, } @misc{ford2024, author = {Ford, Neal}, howpublished = {\url{https://nealford.com/}}, note = {[Online; accessed 15-03-2024]}, title = {{Architecture Is the Tension Between Coupling and Cohesion}}, year = {2024}, } @book{yourdon1979structured, author = {Yourdon, Edward and Constantine, Larry}, doi = {10.5555/578522}, publisher = {Prentice Hall}, title = {{Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design}}, year = {1979}, } @book{martin2002, author = {Martin, Robert C.}, doi = {10.5555/515230}, publisher = {Prentice Hall}, title = {{Agile Software Development, Principles, Patterns, and Practices}}, year = {2002}, } @article{ain2019, author = {Ain, Qurat Ul and Butt, Wasi Haider and Anwar, Muhammad Waseem and Azam, Farooque and Maqbool, Bilal}, doi = {10.1109/access.2019.2918202}, journal = {{IEEE Access}}, number = {1}, title = {{A Systematic Review on Code Clone Detection}}, volume = {7}, year = {2019}, } @article{bellon2007, author = {Bellon, Stefan and Koschke, Rainer and Antoniol, Giulio and Krinke, Jens and Merlo, Ettore}, doi = {10.1109/tse.2007.70725}, journal = {{IEEE Transactions on Software Engineering}}, number = {9}, title = {{Comparison and Evaluation of Clone Detection Tools}}, volume = {33}, year = {2007}, } @misc{baker1993, author = {Baker, Brenda S.}, organization = {Proceedings of the 24th Symposium on the Interface}, title = {{A Program for Identifying Duplicated Code}}, year = {1993}, } @inproceedings{livieri2007, author = {Livieri, Simone and Higo, Yoshiki and Matsushita, Makoto and Inoue, Katsuro}, booktitle = {{Proceedings of the 4th International Workshop on Mining Software Repositories}}, doi = {10.1109/msr.2007.1}, title = {{Analysis of the Linux Kernel Evolution Using Code Clone Coverage}}, year = {2007}, } @inproceedings{krinke2011, author = {Krinke, Jens}, booktitle = {{Proceedings of the 5th International Workshop on Software Clones}}, doi = {10.1145/1985404.1985410}, title = {{Is Cloned Code Older Than Non-Cloned Code?}}, year = {2011}, } @article{romano2018, author = {Romano, Simone and Vendome, Christopher and Scanniello, Giuseppe and Poshyvanyk, Denys}, doi = {10.1109/tse.2018.2842781}, journal = {{IEEE Transactions on Software Engineering}}, number = {1}, title = {{A Multi-Study Investigation into Dead Code}}, volume = {46}, year = {2018}, } @inproceedings{eder2012, author = {Eder, Sebastian and Junker, Maximilian and Jurgens, Elmar and Hauptmann, Benedikt and Vaas, Rudolf and Prommer, Karl-Heinz}, booktitle = {{Proceedings of the 34th International Conference on Software Engineering (ICSE)}}, doi = {10.1109/icse.2012.6227109}, title = {{How Much Does Unused Code Matter for Maintenance?}}, year = {2012}, } @article{potvin2016, author = {Potvin, Rachel and Levenberg, Josh}, doi = {10.1145/2854146}, journal = {{Communications of the ACM}}, number = {7}, title = {{Why Google Stores Billions of Lines of Code in a Single Repository}}, volume = {59}, year = {2016}, } @misc{goode2014, author = {Durham Goode, Rain}, howpublished = {\url{https://jttu.net/goode2014}}, note = {[Online; accessed 15-03-2024]}, title = {{Scaling Mercurial at Facebook}}, year = {2014}, } @misc{votruba2017, author = {Votruba, Tomas}, howpublished = {\url{https://jttu.net/votruba2017}}, note = {[Online; accessed 15-03-2024]}, title = {{How Monolithic Repository in Open Source Saved My Laziness}}, year = {2017}, } @inproceedings{mantyla2003, author = {Mantyla, M. and Vanhanen, J. and Lassenius, C.}, booktitle = {{Proceedings of the International Conference on Software Maintenance}}, doi = {10.1109/icsm.2003.1235447}, title = {{A Taxonomy and an Initial Empirical Study of Bad Smells in Code}}, year = {2003}, } @inproceedings{munson1998, author = {Munson, J. C. and Elbaum, S. G.}, booktitle = {{Proceedings of the International Conference on Software Maintenance}}, doi = {10.1109/icsm.1998.738486}, title = {{Code Churn: A Measure for Estimating the Impact of Code Change}}, year = {1998}, } @inproceedings{olsson2017, author = {Olsson, Tobias and Ericsson, Morgan and Wingkvist, Anna}, booktitle = {{Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings}}, doi = {10.1145/3129790.3129810}, title = {{The Relationship of Code Churn and Architectural Violations in the Open Source Software JabRef}}, year = {2017}, } @article{bugayenko2023, author = {Bugayenko, Yegor and Farina, Mirko and Kruglov, Artem and Pedrycz, Witold and Plaksin, Yaroslav and Succi, Giancarlo}, doi = {10.1109/access.2023.3305249}, journal = {{IEEE Access}}, number = {1}, title = {{Automatically Prioritizing Tasks in Software Development}}, volume = {11}, year = {2023}, } @article{pradel2021neural, author = {Pradel, Michael and Chandra, Satish}, doi = {10.1145/3460348}, journal = {{Communications of the ACM}}, number = {1}, pages = {86--96}, title = {{Neural Software Analysis}}, volume = {65}, year = {2021}, } @article{alon2019code2vec, author = {Alon, Uri and Zilberstein, Meital and Levy, Omer and Yahav, Eran}, doi = {10.1145/3290353}, journal = {{Proceedings of the Principles of Programming Languages (POPL)}}, number = {1}, title = {{Code2vec: Learning Distributed Representations of Code}}, volume = {3}, year = {2019}, } @misc{taylor2023, author = {Taylor, Chris}, howpublished = {\url{https://catid.io/posts/llm_bugs/}}, note = {[Online; accessed 15-03-2024]}, title = {{Can Open-Source LLMs Detect Bugs in C++ Code?}}, year = {2023}, } @misc{mohajer2023skipanalyzer, archiveprefix = {arXiv}, author = {Mohajer, Mohammad Mahdi and Aleithan, Reem and Harzevili, Nima Shiri and Wei, Moshi and Belle, Alvine Boaye and Pham, Hung Viet and Wang, Song}, eprint = {2310.18532}, primaryclass = {cs.PL}, title = {{SkipAnalyzer: An Embodied Agent for Code Analysis With Large Language Models}}, year = {2023}, } @inproceedings{li2023assisting, author = {Li, Haonan and Hao, Yu and Zhai, Yizhuo and Qian, Zhiyun}, booktitle = {{Proceedings of the 31st Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering}}, doi = {10.1145/3611643.3613078}, pages = {2107--2111}, title = {{Assisting Static Analysis With Large Language Models: A ChatGPT Experiment}}, year = {2023}, } @inproceedings{johnson2013don, author = {Johnson, Brittany and Song, Yoonki and Murphy-Hill, Emerson and Bowdidge, Robert}, booktitle = {{Proceedings of the 35th International Conference on Software Engineering (ICSE)}}, doi = {10.1109/ICSE.2013.6606613}, organization = {IEEE}, pages = {672--681}, title = {{Why Don't Software Developers Use Static Analysis Tools to Find Bugs?}}, year = {2013}, } @article{livshits2015defense, author = {Livshits, Benjamin and Sridharan, Manu and Smaragdakis, Yannis and Lhot{\'a}k, Ond{\v{r}}ej and Amaral, J. Nelson and Chang, Bor-Yuh Evan and Guyer, Samuel Z. and Khedker, Uday P. and M{\o}ller, Anders and Vardoulakis, Dimitrios}, doi = {10.1145/2644805}, journal = {{Communications of the ACM}}, number = {2}, pages = {44--46}, title = {{In Defense of Soundiness: A Manifesto}}, volume = {58}, year = {2015}, } @inproceedings{bielik2017learning, author = {Bielik, Pavol and Raychev, Veselin and Vechev, Martin}, booktitle = {{Proceedings of the 29th International Conference on Computer Aided Verification (CAV)}}, doi = {10.1007/978-3-319-63387-9_12}, organization = {Springer}, pages = {233--253}, title = {{Learning a Static Analyzer From Data}}, year = {2017}, } @article{elmendorf1969, author = {Elmendorf, William Robert}, doi = {10.1109/tssc.1969.300221}, journal = {{IEEE Transactions on Systems Science and Cybernetics}}, number = {4}, title = {{Controlling the Functional Testing of an Operating System}}, volume = {5}, year = {1969}, } @article{gelperin1988, author = {Gelperin, D. and Hetzel, B.}, doi = {10.1145/62959.62965}, journal = {{Communications of the ACM}}, number = {6}, title = {{The Growth of Software Testing}}, volume = {31}, year = {1988}, } @book{beizer1995, author = {Beizer, Boris}, doi = {10.5555/202699}, publisher = {John Wiley \& Sons, Inc.}, title = {{Black-Box Testing: Techniques for Functional Testing of Software and Systems}}, year = {1995}, } @misc{marick1997, author = {Marick, Brian}, organization = {Proceedings of the 16th International Conference on Testing Computer Software}, title = {{How to Misuse Code Coverage}}, year = {1997}, } @misc{fowler1997, author = {Fowler, Martin}, howpublished = {\url{https://martinfowler.com/bliki/TestCoverage.html}}, note = {[Online; accessed 17-03-2024]}, title = {{Continuous Integration}}, year = {1997}, } @book{kaner2002lessons, author = {Kaner, Cem and Bach, James and Pettichord, Bret}, doi = {10.5555/559964}, publisher = {Wiley}, title = {{Lessons Learned in Software Testing: A Context-Driven Approach}}, year = {2002}, } @article{kochhar2017, author = {Kochhar, Pavneet Singh and Lo, David and Lawall, Julia and Nagappan, Nachiappan}, doi = {10.1109/tr.2017.2727062}, journal = {{IEEE Transactions on Reliability}}, number = {4}, title = {{Code Coverage and Postrelease Defects: A Large-Scale Study on Open Source Projects}}, volume = {66}, year = {2017}, } @inproceedings{ivankovi2019, author = {Petrovi{\'c}, Goran and Ivankovi{\'c}, Marko and Just, Ren{\'e} and Fraser, Gordon}, booktitle = {{Proceedings of the 27th Joint Meeting on ESEC/FSE}}, doi = {10.1145/3338906.3340459}, title = {{Code Coverage at Google}}, year = {2019}, } @article{hamlet1997, author = {Hamlet, Richard G.}, doi = {10.1109/tse.1977.231145}, journal = {{IEEE Transactions on Software Engineering}}, number = {4}, title = {{Testing Programs With the Aid of a Compiler}}, volume = {3}, year = {1997}, } @inproceedings{offutt1991, author = {Offutt, A. Jefferson and Lee, Stephen D.}, booktitle = {{Proceedings of the Symposium on Testing, Analysis, and Verification}}, doi = {10.1145/120807.120826}, title = {{How Strong Is Weak Mutation?}}, year = {1991}, } @inproceedings{andrews2005, author = {Andrews, James H. and Briand, Lionel C. and Labiche, Y.}, booktitle = {{Proceedings of the 27th International Conference on Software Engineering (ICSE)}}, doi = {10.1145/1062455.1062530}, title = {{Is Mutation an Appropriate Tool for Testing Experiments?}}, year = {2005}, } @inproceedings{ma2006, author = {Ma, Yu-Seung and Offutt, Jeff and Kwon, Yong-Rae}, booktitle = {{Proceedings of the 28th International Conference on Software Engineering (ICSE)}}, doi = {10.1145/1134285.1134425}, title = {{MuJava: A Mutation System for Java}}, year = {2006}, } @book{ammann2008, author = {Ammann, Paul and Offutt, Jeff}, doi = {10.5555/1355340}, publisher = {Cambridge University Press}, title = {{Introduction to Software Testing}}, year = {2008}, } @article{jia2009, author = {Jia, Yue and Harman, Mark}, doi = {10.1016/j.infsof.2009.04.016}, journal = {{Information and Software Technology}}, number = {10}, title = {{Higher Order Mutation Testing}}, volume = {51}, year = {2009}, } @article{jia2010, author = {Jia, Yue and Harman, Mark}, doi = {10.1109/tse.2010.62}, journal = {{IEEE Transactions on Software Engineering}}, number = {5}, title = {{An Analysis and Survey of the Development of Mutation Testing}}, volume = {37}, year = {2010}, } @inproceedings{zhang2016, author = {Zhang, Jie and Wang, Ziyi and Zhang, Lingming and Hao, Dan and Zang, Lei and Cheng, Shiyang and Zhang, Lu}, booktitle = {{Proceedings of the 25th International Symposium on Software Testing and Analysis}}, doi = {10.1145/2931037.2931038}, title = {{Predictive Mutation Testing}}, year = {2016}, } @article{pradel2018deepbugs, author = {Pradel, Michael and Sen, Koushik}, doi = {10.1145/3276517}, journal = {{Proceedings of the ACM on Programming Languages}}, number = {1}, pages = {1--25}, title = {{DeepBugs: A Learning Approach to Name-Based Bug Detection}}, volume = {2}, year = {2018}, } @misc{mikolov2013distributed, author = {Mikolov, Tomas and Sutskever, Ilya and Chen, Kai and Corrado, Greg S. and Dean, Jeff}, organization = {Advances in Neural Information Processing Systems}, title = {{Distributed Representations of Words and Phrases and Their Compositionality}}, year = {2013}, } @article{haner2023predicting, author = {Haner K{\i}r{\u{g}}{\i}l, Elif Nur and Er{\c{c}}elebi Ayy{\i}ld{\i}z, T{\"u}lin}, doi = {10.3390/app13063722}, journal = {{Applied Sciences}}, number = {6}, pages = {3722}, title = {{Predicting Software Cohesion Metrics With Machine Learning Techniques}}, volume = {13}, year = {2023}, } @inproceedings{white2016deep, author = {White, Martin and Tufano, Michele and Vendome, Christopher and Poshyvanyk, Denys}, booktitle = {{Proceedings of the 31st International Conference on Automated Software Engineering}}, doi = {10.1145/2970276.2970326}, pages = {87--98}, title = {{Deep Learning Code Fragments for Code Clone Detection}}, year = {2016}, } @article{arcelli2016comparing, author = {Arcelli Fontana, Francesca and M{\"a}ntyl{\"a}, Mika V. and Zanoni, Marco and Marino, Alessandro}, doi = {10.1007/s10664-015-9378-4}, journal = {{Empirical Software Engineering}}, number = {1}, pages = {1143--1191}, title = {{Comparing and Experimenting Machine Learning Techniques for Code Smell Detection}}, volume = {21}, year = {2016}, } @inproceedings{di2018detecting, author = {Di Nucci, Dario and Palomba, Fabio and Tamburri, Damian A. and Serebrenik, Alexander and De Lucia, Andrea}, booktitle = {{Proceedings of the 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)}}, doi = {10.1109/SANER.2018.8330266}, organization = {IEEE}, pages = {612--621}, title = {{Detecting Code Smells Using Machine Learning Techniques: Are We There yet?}}, year = {2018}, } @inproceedings{rahman2024flakesync, author = {Rahman, Shanto and Shi, August}, booktitle = {{Proceedings of the 46th International Conference on Software Engineering (ICSE)}}, doi = {10.1145/3597503.3639115}, organization = {IEEE}, pages = {920}, title = {{FlakeSync: Automatically Repairing Async Flaky Tests}}, year = {2024}, } @article{gill1991cyclomatic, author = {Gill, Geoffrey K. and Kemerer, Chris F.}, doi = {10.1109/32.106988}, journal = {{IEEE Transactions on Software Engineering}}, number = {12}, pages = {1284--1288}, title = {{Cyclomatic Complexity Density and Software Maintenance Productivity}}, volume = {17}, year = {1991}, } @article{pfleeger2008software, author = {Pfleeger, Shari Lawrence}, doi = {10.1109/MS.2008.160}, journal = {{IEEE Software}}, number = {6}, pages = {32--34}, title = {{Software Metrics: Progress After 25 Years?}}, volume = {25}, year = {2008}, } @inproceedings{vassallo2017tale, author = {Vassallo, Carmine and Schermann, Gerald and Zampetti, Fiorella and Romano, Daniele and Leitner, Philipp and Zaidman, Andy and Di Penta, Massimiliano and Panichella, Sebastiano}, booktitle = {{Proceedings of the International Conference on Software Maintenance and Evolution (ICSME)}}, doi = {10.1109/ICSME.2017.67}, organization = {IEEE}, pages = {183--193}, title = {{A Tale of CI Build Failures: An Open Source and a Financial Organization Perspective}}, year = {2017}, } @inproceedings{liu2022first, author = {Liu, Pei and Sun, Xiaoyu and Zhao, Yanjie and Liu, Yonghui and Grundy, John and Li, Li}, booktitle = {{Proceedings of the 37th International Conference on Automated Software Engineering}}, doi = {10.1145/3551349.3561341}, pages = {1--6}, title = {{A First Look at CI/CD Adoptions in Open-Source Android Apps}}, year = {2022}, } @inproceedings{santos2016judging, author = {Santos, Eddie Antonio and Hindle, Abram}, booktitle = {{Proceedings of the 13th Working Conference on Mining Software Repositories (MSR)}}, doi = {10.7939/r3-h4d8-ej76}, pages = {504--507}, title = {{Judging a Commit by Its Cover: Correlating Commit Message Entropy With Build Status on Travis-CI}}, year = {2016}, } @inproceedings{golzadeh2022rise, author = {Golzadeh, Mehdi and Decan, Alexandre and Mens, Tom}, booktitle = {{Proceedings of the International Conference on Software Analysis, Evolution and Reengineering (SANER)}}, doi = {10.1109/SANER53432.2022.00084}, organization = {IEEE}, pages = {662--672}, title = {{On the Rise and Fall of CI Services in GitHub}}, year = {2022}, } @article{graylin2009cyclomatic, author = {Graylin, Jay and Hale, Joanne E. and Smith, Randy K. and David, Hale and Kraft, Nicholas A. and Charles, Ward}, doi = {10.4236/jsea.2009.23020}, journal = {{Journal of Software Engineering and Applications}}, number = {3}, pages = {137}, title = {{Cyclomatic Complexity and Lines of Code: Empirical Evidence of a Stable Linear Relationship}}, volume = {2}, year = {2009}, } @misc{muslija2018correlation, author = {Muslija, Adnan and Enoiu, Eduard P.}, organization = {PeerJ Preprints}, title = {{On the Correlation Between Testing Effort and Software Complexity Metrics}}, year = {2018}, } @misc{seront2005relationship, author = {Seront, Gr{\'e}gory and Lopez, Miguel and Paulus, Val{\'e}rie and Habra, Naji}, organization = {Proceedings of the 9th ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering (QAOOSE)}, title = {{On the Relationship Between Cyclomatic Complexity and the Degree of Object Orientation}}, year = {2005}, } @misc{abd2018, author = {Jader, Abd and Najm, Marwa and Mahmood, Riyadh Zaghlool}, organization = {International Journal of Innovative Research and Creative Technology}, title = {{Calculating McCabe's Cyclomatic Complexity Metric and Its Effecct on the Quality Aspects of Software}}, year = {2018}, } @inproceedings{meine2007correlations, author = {van der Meulen, Meine J. P. and Revilla, Miguel A.}, booktitle = {{Proceedings of the 18th International Symposium on Software Reliability (ISSRE'07)}}, doi = {10.1109/ISSRE.2007.12}, organization = {IEEE}, pages = {203--208}, title = {{Correlations Between Internal Software Metrics and Software Dependability in a Large Population of Small C/C++ Programs}}, year = {2007}, } @inproceedings{shin2008complexity, author = {Shin, Yonghee and Williams, Laurie}, booktitle = {{Proceedings of the 4th Workshop on Quality of Protection}}, doi = {10.1145/1456362.1456372}, pages = {47--50}, title = {{Is Complexity Really the Enemy of Software Security?}}, year = {2008}, } @inproceedings{hindle2008reading, author = {Hindle, Abram and Godfrey, Michael W. and Holt, Richard C.}, booktitle = {{Proceedings of the 16th International Conference on Program Comprehension}}, doi = {10.1109/ICPC.2008.13}, organization = {IEEE}, pages = {133--142}, title = {{Reading Beside the Lines: Indentation as a Proxy for Complexity Metrics}}, year = {2008}, } @inproceedings{mamun2017correlations, author = {Mamun, Md Abdullah Al and Berger, Christian and Hansson, J{\"o}rgen}, booktitle = {{Proceedings of the 27th International Workshop on Software Measurement and the 12th International Conference on Software Process and Product Measurement}}, doi = {10.1145/3143434.3143445}, pages = {255--266}, title = {{Correlations of Software Code Metrics: An Empirical Study}}, year = {2017}, } @inproceedings{balachandran2013reducing, author = {Balachandran, Vipin}, booktitle = {{Proceedings of the 35th International Conference on Software Engineering (ICSE)}}, doi = {10.1109/ICSE.2013.6606642}, organization = {IEEE}, pages = {931--940}, title = {{Reducing Human Effort and Improving Quality in Peer Code Reviews Using Automatic Static Analysis and Reviewer Recommendation}}, year = {2013}, } @inproceedings{raymond1991reading, author = {Raymond, Darrell R.}, booktitle = {{Proceedings of the Conference of the Centre for Advanced Studies on Collaborative Research}}, doi = {10.5555/962111.962113}, pages = {3--16}, title = {{Reading Source Code}}, year = {1991}, } @article{deimel1985uses, author = {Deimel Jr, Lionel E.}, doi = {10.1145/382204.382524}, journal = {{ACM SIGCSE Bulletin}}, number = {2}, pages = {5--14}, title = {{The Uses of Program Reading}}, volume = {17}, year = {1985}, } @article{buse2009learning, author = {Buse, Raymond P. L. and Weimer, Westley R.}, doi = {10.1109/TSE.2009.70}, journal = {{IEEE Transactions on Software Engineering}}, number = {4}, pages = {546--558}, title = {{Learning a Metric for Code Readability}}, volume = {36}, year = {2009}, } @article{dijkstra1972humble, author = {Dijkstra, Edsger W.}, doi = {10.1145/355604.361591}, journal = {{Communications of the ACM}}, number = {10}, pages = {859--866}, title = {{The Humble Programmer}}, volume = {15}, year = {1972}, } @book{abelson1996structure, author = {Abelson, Harold and Sussman, Gerald Jay}, doi = {10.5555/26777}, publisher = {The MIT Press}, title = {{Structure and Interpretation of Computer Programs}}, year = {1996}, } @article{filo2024evaluating, author = {Fil{\'o}, Tarc{\'\i}sio G. S. and Bigonha, Mariza A. S. and Ferreira, Kecia A. M.}, doi = {10.5753/jbcs.2024.3373}, journal = {{Journal of the Brazilian Computer Society}}, number = {1}, pages = {313--346}, title = {{Evaluating Thresholds for Object-Oriented Software Metrics}}, volume = {30}, year = {2024}, } @misc{filo2015catalogue, author = {Fil{\'o}, Tarc{\'\i}sio G. S. and Bigonha, Mariza and Ferreira, Kecia}, title = {{A Catalogue of Thresholds for Object-Oriented Software Metrics}}, year = {2015}, } @misc{bugayenko2015blog0629, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/150629.html}}, note = {[Online; accessed 22-09-2024]}, title = {{The Better Architect You Are, the Simpler Your Diagrams}}, year = {2015}, } @misc{bugayenko2014blog1026, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/141026.html}}, month = {1}, note = {[Online; accessed 22-09-2024]}, title = {{Are You a Hacker or a Designer?}}, year = {2014}, } @misc{boswell2011art, author = {Boswell, Dustin and Foucher, Trevor}, organization = {O'Reilly Media}, title = {{The Art of Readable Code}}, year = {2011}, } @misc{khorikov2015kiss, author = {Khorikov, Vladimir}, howpublished = {\url{https://enterprisecraftsmanship.com/posts/kiss-revisited/}}, month = {6}, note = {[Online; accessed 22-09-2024]}, title = {{KISS Revisited}}, year = {2015}, } @misc{rolland2013, author = {Rolland, Stephane}, howpublished = {\url{https://graphicdesign.stackexchange.com/a/16706/81312}}, month = {3}, note = {[Online; accessed 22-09-2024]}, title = {{How Can I Convey Complexity of Source Code Without Showing Code?}}, year = {2013}, } @inproceedings{wang2006cognitive, author = {Wang, Yingxu}, booktitle = {{Proceedings of the 5th International Conference on Cognitive Informatics}}, doi = {10.1109/COGINF.2006.365701}, organization = {IEEE}, pages = {226--235}, title = {{Cognitive Complexity of Software and Its Measurement}}, volume = {1}, year = {2006}, } @article{shao2003new, author = {Shao, Jingqiu and Wang, Yingxu}, doi = {10.1109/CJECE.2003.1532511}, journal = {{Canadian Journal of Electrical and Computer Engineering}}, number = {2}, pages = {69--74}, title = {{A New Measure of Software Complexity Based on Cognitive Weights}}, volume = {28}, year = {2003}, } @article{fenton1994software, author = {Fenton, Norman}, doi = {10.1109/32.268921}, journal = {{IEEE Transactions on Software Engineering}}, number = {3}, pages = {199--206}, title = {{Software Measurement: A Necessary Scientific Basis}}, volume = {20}, year = {1994}, } @article{briand2001integrating, author = {Briand, Lionel C. and W{\"u}st, J{\"u}rgen}, doi = {10.1016/S0164-1212(01)00045-0}, journal = {{Journal of Systems and Software}}, number = {1}, pages = {3--22}, title = {{Integrating Scenario-Based and Measurement-Based Software Product Assessment}}, volume = {59}, year = {2001}, } @article{kushwaha2006improved, author = {Kushwaha, Dharmender Singh and Misra, Arun Kumar}, doi = {10.1145/1163514.1163533}, journal = {{ACM SIGSOFT Software Engineering Notes}}, number = {5}, pages = {1--7}, title = {{Improved Cognitive Information Complexity Measure: A Metric That Establishes Program Comprehension Effort}}, volume = {31}, year = {2006}, } @misc{benjapol2008underlying, author = {Benjapol, Auprasert and Limpiyakorn, Yachai}, doi = {10.5281/zenodo.1077527}, organization = {ORKG}, title = {{Underlying Cognitive Complexity Measure Computation With Combinatorial Rules}}, year = {2008}, } @article{saborido2022automatizing, author = {Saborido, Rub{\'e}n and Ferrer, Javier and Chicano, Francisco and Alba, Enrique}, doi = {0.1109/ACCESS.2022.3144743}, journal = {{IEEE Access}}, number = {1}, pages = {11642--11656}, title = {{Automatizing Software Cognitive Complexity Reduction}}, volume = {10}, year = {2022}, } @article{medeiros2021can, author = {Medeiros, J{\'u}lio and Couceiro, Ricardo and Duarte, Gon{\c{c}}alo and Dur{\~a}es, Jo{\~a}o and Castelhano, Jo{\~a}o and Duarte, Catarina and Castelo-Branco, Miguel and Madeira, Henrique and de Carvalho, Paulo and Teixeira, C{\'e}sar}, doi = {10.3390/s21072338}, journal = {{Sensors}}, number = {7}, pages = {2338}, title = {{Can EEG Be Adopted as a Neuroscience Reference for Assessing Software Programmers' Cognitive Load?}}, volume = {21}, year = {2021}, } @inproceedings{couceiro2019spotting, author = {Couceiro, Ricardo and Barbosa, Raul and Dur{\'a}es, Jo{\'a}o and Duarte, Gon{\c{c}}alo and Castelhano, Jo{\'a}o and Duarte, Catarina and Teixeira, Cesar and Laranjeiro, Nuno and Medeiros, J{\'u}lio and Carvalho, Paulo and others}, booktitle = {{Proceedings of the 30th International Symposium on Software Reliability Engineering (ISSRE)}}, doi = {10.1109/ISSRE.2019.00019}, organization = {IEEE}, pages = {93--103}, title = {{Spotting Problematic Code Lines Using Nonintrusive Programmers' Biofeedback}}, year = {2019}, } @inproceedings{smith1980software, author = {Smith, Charles P.}, booktitle = {{Proceedings of the Annual Conference}}, doi = {10.1145/800176.809965}, pages = {179--185}, title = {{A Software Science Analysis of Programming Size}}, year = {1980}, } @article{fitzsimmons1978review, author = {Fitzsimmons, Ann and Love, Tom}, doi = {10.1145/356715.356717}, journal = {{ACM Computing Surveys (CSUR)}}, number = {1}, pages = {3--18}, title = {{A Review and Evaluation of Software Science}}, volume = {10}, year = {1978}, } @article{halstead1979advances, author = {Halstead, Maurice H.}, doi = {10.1016/S0065-2458(08)60583-5}, journal = {{Advances in Computers}}, number = {1}, pages = {119--172}, title = {{Advances in Software Science}}, volume = {18}, year = {1979}, } @inproceedings{bailey1981software, author = {Bailey, C. T. and Dingee, W. L.}, booktitle = {{Proceedings of the Workshop/Symposium on Measurement and Evaluation of Software Quality}}, doi = {10.1145/800003.807928}, pages = {189--197}, title = {{A Software Study Using Halstead Metrics}}, year = {1981}, } @article{curtis1979measuring, author = {Curtis, Bill and Sheppard, Sylvia B. and Milliman, Phil and Borst, M. A. and Love, Tom}, doi = {10.1109/TSE.1979.234165}, journal = {{IEEE Transactions on Software Engineering}}, number = {2}, pages = {96--104}, title = {{Measuring the Psychological Complexity of Software Maintenance Tasks With the Halstead and McCabe Metrics}}, volume = {5}, year = {1979}, } @misc{tashtoush2014correlation, archiveprefix = {arXiv}, author = {Tashtoush, Yahya and Al-Maolegi, Mohammed and Arkok, Bassam}, eprint = {1408.4523}, primaryclass = {cs.SE}, title = {{The Correlation Among Software Complexity Metrics With Case Study}}, year = {2014}, } @misc{bugayenko2020blog1027, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/201027.html}}, month = {1}, note = {[Online; accessed 22-09-2024]}, title = {{New Metric: The Distance of Coupling}}, year = {2020}, } @misc{bugayenko2018blog0918, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/180918.html}}, month = {9}, note = {[Online; accessed 22-09-2024]}, title = {{Fear of Decoupling}}, year = {2018}, } @misc{bugayenko2015blog1208, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/151208.html}}, month = {12}, note = {[Online; accessed 22-09-2024]}, title = {{Temporal Coupling Between Method Calls}}, year = {2015}, } @misc{bugayenko2016blog0913, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/160913.html}}, month = {9}, note = {[Online; accessed 22-09-2024]}, title = {{Inheritance Is a Procedural Technique for Code Reuse}}, year = {2016}, } @misc{bugayenko2016blog0426, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/160426.html}}, month = {4}, note = {[Online; accessed 22-09-2024]}, title = {{Why InputStream Design Is Wrong}}, year = {2016}, } @article{korson1990understanding, author = {Korson, Tim and McGregor, John D.}, doi = {10.1145/83880.84459}, journal = {{Communications of the ACM}}, number = {9}, pages = {40--60}, title = {{Understanding Object-Oriented: A Unifying Paradigm}}, volume = {33}, year = {1990}, } @misc{nierstrasz1989survey, author = {Nierstrasz, Oscar}, organization = {Citeseer}, title = {{A Survey of Object-Oriented Concepts}}, year = {1989}, } @article{rentsch1982object, author = {Rentsch, Tim}, doi = {10.1145/947955.947961}, journal = {{ACM SIGPLAN Notices}}, number = {9}, pages = {51--57}, title = {{Object Oriented Programming}}, volume = {17}, year = {1982}, } @inproceedings{madsen1988object, author = {Madsen, Ole Lehrmann and M{\o}ller-Pedersen, Birger}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming}}, doi = {10.1007/3-540-45910-3_1}, organization = {Springer}, pages = {1--20}, title = {{What Object-Oriented Programming May Be --- And What It Does Not Have to Be}}, year = {1988}, } @book{west2004object, author = {West, David}, doi = {10.5555/984130}, publisher = {Pearson Education}, title = {{Object Thinking}}, year = {2004}, } @misc{khanam2018, author = {Khanam, Zeba}, organization = {International Journal on Future Revolution in Computer Science \& Communication Engineering}, title = {{Barriers to Refactoring: Issues and Solutions}}, year = {2018}, } @misc{kay97keynote, author = {Kay, Alan}, doi = {10.1007/978-3-322-89884-5_3}, title = {{The Computer Revolution Hasn't Happened yet}}, year = {1997}, } @misc{bugayenko2017blog1212, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/171212.html}}, month = {12}, note = {[Online; accessed 08-07-2024]}, title = {{Alan Kay Was Wrong About Him Being Wrong}}, year = {2017}, } @misc{bugayenko2016blog0815, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/160815.html}}, month = {8}, note = {[Online; accessed 08-07-2024]}, title = {{What's Wrong With Object-Oriented Programming?}}, year = {2016}, } @misc{shelly2015flaws, author = {Shelly, Asaf}, howpublished = {\url{https://jttu.net/shelly2015flaws}}, note = {[Online; accessed 15-03-2016]}, title = {{Flaws of Object Oriented Modeling}}, year = {2015}, } @misc{bugayenko2015blog0220, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/150220.html}}, month = {2}, note = {[Online; accessed 08-07-2024]}, title = {{Utility Classes Have Nothing to Do With Functional Programming}}, year = {2015}, } @misc{bugayenko2015blog0706, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/150706.html}}, month = {7}, note = {[Online; accessed 08-07-2024]}, title = {{Public Static Literals ... Are Not a Solution for Data Duplication}}, year = {2015}, } @misc{bugayenko2016blog0627, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/160627.html}}, month = {6}, note = {[Online; accessed 08-07-2024]}, title = {{Singletons Must Die}}, year = {2016}, } @misc{bugayenko2015blog0226, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/150226.html}}, month = {2}, note = {[Online; accessed 08-07-2024]}, title = {{Composable Decorators vs. Imperative Utility Methods}}, year = {2015}, } @misc{bugayenko2014blog0505, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/140505.html}}, month = {5}, note = {[Online; accessed 08-07-2024]}, title = {{OOP Alternative to Utility Classes}}, year = {2014}, } @misc{bugayenko2014blog0916, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/140916.html}}, month = {9}, note = {[Online; accessed 08-07-2024]}, title = {{Getters/Setters.} {Evil.} {Period.}}, year = {2014}, } @misc{fowler2013tell, author = {Fowler, Martin}, howpublished = {\url{https://martinfowler.com/bliki/TellDontAsk.html}}, month = {9}, note = {[Online; accessed 12-09-2024]}, title = {{TellDontAsk}}, year = {2013}, } @misc{holub2003why, author = {Holub, Allen}, howpublished = {\url{https://jttu.net/holub2003why}}, month = {9}, note = {[Online; accessed 12-09-2024]}, title = {{Why Getter and Setter Methods Are Evil}}, year = {2003}, } @misc{holub2003extends, author = {Holub, Allen}, howpublished = {\url{https://jttu.net/holub2003extends}}, month = {9}, note = {[Online; accessed 12-09-2024]}, title = {{Why Extends Is Evil}}, year = {2003}, } @book{bloch2008effective, author = {Bloch, Joshua}, doi = {10.5555/1377533}, publisher = {Prentice Hall}, title = {{Effective Java}}, year = {2008}, } @misc{bugayenko2016blog0706, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/160706.html}}, month = {7}, note = {[Online; accessed 08-07-2024]}, title = {{Data Transfer Object Is a Shame}}, year = {2016}, } @misc{bugayenko2016blog0405, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/160405.html}}, month = {4}, note = {[Online; accessed 08-07-2024]}, title = {{Printers Instead of Getters}}, year = {2016}, } @misc{bugayenko2014blog0609, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/140609.html}}, month = {6}, note = {[Online; accessed 08-07-2024]}, title = {{Objects Should Be Immutable}}, year = {2014}, } @misc{bugayenko2014blog1222, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/141222.html}}, month = {12}, note = {[Online; accessed 08-07-2024]}, title = {{Immutable Objects Are Not Dumb}}, year = {2014}, } @misc{bugayenko2014blog1209, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/141209.html}}, month = {12}, note = {[Online; accessed 08-07-2024]}, title = {{How an Immutable Object Can Have State and Behavior?}}, year = {2014}, } @misc{bugayenko2014blog1107, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/141107.html}}, month = {11}, note = {[Online; accessed 08-07-2024]}, title = {{How Immutability Helps}}, year = {2014}, } @misc{bugayenko2014blog1201, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/141201.html}}, month = {12}, note = {[Online; accessed 08-07-2024]}, title = {{ORM Is an Offensive Anti-Pattern}}, year = {2014}, } @misc{bugayenko2016blog0907, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/160907.html}}, month = {9}, note = {[Online; accessed 08-07-2024]}, title = {{Gradients of Immutability}}, year = {2016}, } @book{goetz2006java, author = {Goetz, Brian}, doi = {10.5555/1076522}, publisher = {Pearson Education}, title = {{Java Concurrency in Practice}}, year = {2006}, } @book{mcconnell1998, author = {McConnell, Steve}, doi = {10.5555/270015}, publisher = {Microsoft Press}, title = {{Software Project Survival Guide}}, year = {1998}, } @book{feathers2004working, author = {Feathers, Michael}, doi = {10.5555/1050933}, publisher = {Prentice Hall}, title = {{Working Effectively With Legacy Code}}, year = {2004}, } @article{budimlic1999cost, author = {Budimli{\'c}, Zoran and Kennedy, Ken and Piper, Jeff}, doi = {10.1155/1999/464598}, journal = {{Scientific Programming}}, number = {2}, pages = {87--95}, title = {{The Cost of Being Object-Oriented: A Preliminary Study}}, volume = {7}, year = {1999}, } @misc{neward2006vietnam, author = {Neward, Ted}, howpublished = {\url{https://jttu.net/neward2006vietnam}}, month = {6}, note = {[Online; accessed 19-09-2024]}, title = {{The Vietnam of Computer Science}}, year = {2006}, } @book{freeman2009growing, author = {Freeman, Steve and Pryce, Nat}, doi = {10.5555/1655852}, publisher = {Pearson Education}, title = {{Growing Object-Oriented Software, Guided by Tests}}, year = {2009}, } @book{evans2004domain, author = {Evans, Eric}, doi = {10.5555/861502}, publisher = {Addison-Wesley}, title = {{Domain-Driven Design: Tackling Complexity in the Heart of Software}}, year = {2004}, } @misc{pescio2011your, author = {Pescio, Carlo}, howpublished = {\url{http://jttu.net/pescio2011your}}, month = {4}, note = {[Online; accessed 25-09-2024]}, title = {{Your Coding Conventions Are Hurting You}}, year = {2011}, } @misc{bugayenko2015blog0309, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/150309.html}}, month = {3}, note = {[Online; accessed 22-09-2024]}, title = {{Don't Create Objects That End With -ER}}, year = {2015}, } @misc{bugayenko2017blog0912, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/170912.html}}, month = {9}, note = {[Online; accessed 22-09-2024]}, title = {{Yet Another Evil Suffix for Object Names: Client}}, year = {2017}, } @misc{bugayenko2016blog1213, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/161213.html}}, month = {12}, note = {[Online; accessed 22-09-2024]}, title = {{MVC vs. OOP}}, year = {2016}, } @misc{sukhova2024java, archiveprefix = {arXiv}, author = {Sukhova, Anna and Akhundov, Alexey and Verzakov, Efim and Bugayenko, Yegor}, eprint = {2403.17430}, primaryclass = {cs.PL}, title = {{Java Classes With ``-Er'' and ``-Utils'' Suffixes Have Higher Complexity}}, year = {2024}, } @misc{hoare2009null, author = {Hoare, Tony}, howpublished = {\url{https://jttu.net/hoare2009null}}, month = {8}, note = {[Online; accessed 22-09-2024]}, title = {{Null References: The Billion Dollar Mistake}}, year = {2009}, } @article{shore2004fail, author = {Shore, James}, doi = {10.1109/MS.2004.1331296}, journal = {{IEEE Software}}, number = {5}, title = {{Fail Fast}}, volume = {21}, year = {2004}, } @misc{bugayenko2015blog0825, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/150825.html}}, month = {8}, note = {[Online; accessed 22-09-2024]}, title = {{Need Robust Software? Make It Fragile}}, year = {2015}, } @misc{bugayenko2014blog0513, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/140513.html}}, month = {5}, note = {[Online; accessed 22-09-2024]}, title = {{Why NULL Is Bad?}}, year = {2014}, } @misc{bugayenko2018blog0522, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/180522.html}}, month = {5}, note = {[Online; accessed 22-09-2024]}, title = {{One More Recipe Against NULL}}, year = {2018}, } @misc{bugayenko2015blog1201, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/151201.html}}, month = {12}, note = {[Online; accessed 22-09-2024]}, title = {{Throwing an Exception Without Proper Context Is a Bad Habit}}, year = {2015}, } @inproceedings{garmash2021exploring, author = {Garmash, Ekaterina and Cheshkov, Anton}, booktitle = {{Proceedings of the 1st International Conference on Code Quality (ICCQ)}}, doi = {10.1109/ICCQ51190.2021.9392959}, organization = {IEEE}, pages = {1--14}, title = {{Exploring the Effect of NULL Usage in Source Code}}, year = {2021}, } @misc{bugayenko2014blog1003, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/141003.html}}, month = {1}, note = {[Online; accessed 22-09-2024]}, title = {{Dependency Injection Containers Are Code Polluters}}, year = {2014}, } @misc{bugayenko2015blog0402, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/150402.html}}, month = {4}, note = {[Online; accessed 22-09-2024]}, title = {{Class Casting Is a Discriminating Anti-Pattern}}, year = {2015}, } @misc{bugayenko2016blog0412, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/160412.html}}, month = {4}, note = {[Online; accessed 22-09-2024]}, title = {{Java Annotations Are a Big Mistake}}, year = {2016}, } @misc{bugayenko2022blog0605, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/220605.html}}, month = {6}, note = {[Online; accessed 22-09-2024]}, title = {{Reflection Means Hidden Coupling}}, year = {2022}, } @misc{bugayenko2017blog1114, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/171114.html}}, month = {11}, note = {[Online; accessed 22-09-2024]}, title = {{Constructors or Static Factory Methods?}}, year = {2017}, } @misc{bugayenko2020blog1110, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/201110.html}}, month = {11}, note = {[Online; accessed 22-09-2024]}, title = {{Strong Typing Without Types}}, year = {2020}, } @inproceedings{li2014self, author = {Li, Yue and Tan, Tian and Sui, Yulei and Xue, Jingling}, booktitle = {{Proceedings of the 28th European Conference on Object-Oriented Programming}}, doi = {10.1007/978-3-662-44202-9_2}, organization = {Springer}, pages = {27--53}, title = {{Self-Inferencing Reflection Resolution for Java}}, year = {2014}, } @misc{sobel1996introduction, author = {Sobel, Jonathan M. and Friedman, Daniel P.}, organization = {Citeseer}, title = {{An Introduction to Reflection-Oriented Programming}}, year = {1996}, } @misc{liskov1987keynote, author = {Liskov, Barbara}, organization = {Proceedings of the Object-Oriented Programming Systems, Languages and Applications (Addendum)}, title = {{Keynote Address --- Data Abstraction and Hierarchy}}, year = {1987}, } @misc{darashkevich2024, archiveprefix = {arXiv}, author = {Darashkevich, Eugene and Rusyaev, Roman and Korostinskiy, Roman and Bugayenko, Yegor}, eprint = {2403.17430}, primaryclass = {cs.PL}, title = {{A Minority of C++ Objects Account for the Majority of Allocation CPU Time}}, year = {2024}, } @misc{zakharov2024, archiveprefix = {arXiv}, author = {Zakharov, Vladimir and Bugayenko, Yegor}, eprint = {2410.05631}, primaryclass = {cs.SE}, title = {{Embracing Objects Over Statics: An Analysis of Method Preferences in Open Source Java Frameworks}}, year = {2024}, } @article{church1936some, author = {Church, Alonzo and Rosser, J. Barkley}, doi = {10.2307/2268572}, journal = {{Transactions of the American Mathematical Society}}, number = {3}, pages = {472--482}, title = {{Some Properties of Conversion}}, volume = {39}, year = {1936}, } @inproceedings{kastenberg2006defining, author = {Kastenberg, Harmen and Kleppe, Anneke and Rensink, Arend}, booktitle = {{Proceedings of the 8th International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS)}}, doi = {10.1007/11768869_15}, organization = {Springer}, pages = {186--201}, title = {{Defining Object-Oriented Execution Semantics Using Graph Transformations}}, year = {2006}, } @article{6506076, author = {Yazdanpanah, Fahimeh and Alvarez-Martinez, Carlos and Jimenez-Gonzalez, Daniel and Etsion, Yoav}, doi = {10.1109/TPDS.2013.125}, journal = {{IEEE Transactions on Parallel and Distributed Systems}}, number = {6}, pages = {1489--1509}, title = {{Hybrid Dataflow/Von-Neumann Architectures}}, volume = {25}, year = {2014}, } @inproceedings{papadopoulos1991multithreading, author = {Papadopoulos, Gregory M. and Traub, Kenneth R.}, booktitle = {{Proceedings of the 18th Annual International Symposium on Computer Architecture}}, doi = {10.1145/115952.115986}, pages = {342--351}, title = {{Multithreading: A Revisionist View of Dataflow Architectures}}, year = {1991}, } @misc{erlang2020manual, author = {Ericsson}, organization = {Ericsson AB}, title = {{{Erlang/OTP} System Documentation}}, year = {2020}, } @inproceedings{usov2020, author = {Usov, Artem and Dardha, Prnela}, booktitle = {{Proceedings of the Coordination Models and Languages ({COORDINATION})}}, doi = {10.1007/978-3-030-50029-0_10}, title = {{{SJF:} an Implementation of Semantic Featherweight Java}}, volume = {12134}, year = {2020}, } @article{bright2020origins, author = {Bright, Walter and Alex and Rescu, Andrei and Parker, Michael}, doi = {10.1145/3386323}, journal = {{ACM on Programming Languages}}, number = {1}, title = {{Origins of the D Programming Language}}, volume = {4}, year = {2020}, } @article{coblenz2019, author = {Coblenz, Michael J. and Oei, Reed and Etzel, Tyler and Koronkevich, Paulette and Baker, Miles and Bloem, Yannick and Myers, Brad A. and Sunshine, Joshua and Aldrich, Jonathan}, doi = {10.1145/3417516}, journal = {{ACM Transactions on Programming Languages and Systems}}, number = {3}, title = {{Obsidian: Typestate and Assets for Safer Blockchain Programming}}, volume = {42}, year = {2020}, } @book{jdk8, author = {Schildt, Herbert}, publisher = {McGraw-Hill Education}, title = {{Java: The Complete Reference, Eleventh Edition}}, year = {2018}, } @inproceedings{bi2018typed, author = {Bi, Xuan and Oliveira, Bruno C. S.}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming}}, doi = {10.4230/LIPIcs.ECOOP.2018.9}, title = {{Typed First-Class Traits}}, year = {2018}, } @inproceedings{rocha2018javaexception, author = {Rocha, Jonathan and Melo, Hugo and Coelho, Roberta and Sena, Bruno}, booktitle = {{Proceedings of the 25th Conference on Pattern Languages of Programs}}, doi = {10.5555/3373669.3373675}, title = {{Towards a Catalogue of Java Exception Handling Bad Smells and Refactorings}}, year = {2018}, } @book{jemerov2017kotlin, author = {Jemerov, Dmitry and Isakova, Svetlana}, publisher = {Manning Publications}, title = {{Kotlin in Action}}, year = {2017}, } @misc{gannimo2017typeconfusion, author = {Gannimo}, title = {{Type Confusion: Discovery, Abuse, and Protection}}, year = {2017}, } @book{eo2, author = {Bugayenko, Yegor}, publisher = {Amazon}, title = {{Elegant Objects}}, year = {2017}, } @book{ierusalimschy2016lua, author = {Ierusalimschy, Roberto}, publisher = {Lua.Org}, title = {{Programming in Lua, Fourth Edition}}, year = {2016}, } @book{bloch2016effective, author = {Bloch, Joshua}, publisher = {Pearson Education India}, title = {{Effective Java}}, year = {2016}, } @book{eo1, author = {Bugayenko, Yegor}, publisher = {Amazon}, title = {{Elegant Objects}}, year = {2016}, } @book{ca1, author = {Bugayenko, Yegor}, publisher = {Amazon}, title = {{Code Ahead}}, year = {2018}, } @book{bernstein2016legacy, author = {Bernstein, David Scott}, publisher = {Pragmatic Bookshelf}, title = {{Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software}}, year = {2016}, } @book{donovankernighan2015go, author = {Donovan, Alan A. A. and Kernighan, Brian W.}, publisher = {Addison-Wesley}, title = {{The Go Programming Language}}, year = {2015}, } @book{nielson2015principles, author = {Nielson, Flemming and Nielson, Hanne R. and Hankin, Chris}, publisher = {Springer}, title = {{Principles of Program Analysis}}, year = {2015}, } @article{matsakis2014rust, author = {Matsakis, Nicholas D. and Klock, Felix S.}, doi = {10.1145/2692956.2663188}, journal = {{ACM SIGADA Ada Letters}}, number = {3}, title = {{The Rust Language}}, volume = {34}, year = {2014}, } @inproceedings{burton2014using, author = {Burton, Eden and Sekerinski, Emil}, booktitle = {{Proceedings of the European Conference on Pattern Languages of Programs}}, doi = {10.1145/2721956.2721991}, title = {{Using Dynamic Mixins to Implement Design Patterns}}, year = {2014}, } @book{nystrom2014game, author = {Nystrom, R.}, publisher = {Genever Benning}, title = {{Game Programming Patterns}}, year = {2014}, } @book{jech2013set, author = {Jech, Thomas}, publisher = {Springer}, title = {{Set Theory}}, year = {2013}, } @book{lutz2013learning, author = {Lutz, Mark}, publisher = {O'Reilly Media}, title = {{Learning Python: Powerful Object-Oriented Programming}}, year = {2013}, } @misc{bezanson2012julia, author = {Bezanson, Jeff and Karpinski, Stefan and Shah, Viral B. and Edelman, Alan}, title = {{Julia: A Fast Dynamic Language for Technical Computing}}, year = {2012}, } @book{liang2012, author = {Liang, Y. Daniel}, doi = {10.5555/2341389}, publisher = {Pearson Education, Inc.}, title = {{Introduction to Java Programming: Brief Version}}, year = {2012}, } @book{barendregt2012, author = {Barendregt, Hendrik P.}, publisher = {College Publications}, title = {{The Lambda Calculus: Its Syntax and Semantics}}, year = {2012}, } @article{bettinibono2008delegation, author = {Bettini, Lorenzo and Bono, Viviana and Venneri, Betti}, doi = {10.1016/j.scico.2010.04.006}, journal = {{Science of Computer Programming}}, number = {1}, title = {{Delegation by Object Composition}}, volume = {76}, year = {2011}, } @inproceedings{schmager2010gohotdraw, author = {Schmager, Frank and Cameron, Nicholas and Noble, James}, booktitle = {{Proceedings of the {PLATEAU'10:} Evaluation and Usability of Programming Languages and Tools}}, doi = {10.1145/1937117.1937127}, pages = {1--6}, title = {{{GoHotDraw:} Evaluating the Go Programming Language With Design Patterns}}, year = {2010}, } @article{richards2010analysis, author = {Richards, Gregor and Lebresne, Sylvain and Burg, Brian and Vitek, Jan}, doi = {10.1145/1809028.1806598}, journal = {{{ACM} SIGPLAN Notices}}, number = {6}, pages = {1--12}, title = {{An Analysis of the Dynamic Behavior of {JavaScript} Programs}}, volume = {45}, year = {2010}, } @article{armstrong2010erlang, author = {Armstrong, Joe}, doi = {10.1145/1810891.1810910}, journal = {{Communications of the ACM}}, number = {9}, title = {{Erlang}}, volume = {53}, year = {2010}, } @article{nierstrasz2010ten, author = {Nierstrasz, Oscar Marius}, doi = {10.5381/jot.2010.9.5.e1}, journal = {{Journal of Object Technology}}, number = {5}, title = {{Ten Things I Hate About Object-Oriented Programming}}, volume = {9}, year = {2010}, } @book{metula2010managed, author = {Metula, Erez}, publisher = {Syngress}, title = {{Managed Code Rootkits: Hooking into Runtime Environments}}, year = {2010}, } @book{martin2008cleancode, author = {Martin, Robert C.}, doi = {10.5555/1388398}, publisher = {Prentice Hall}, title = {{Clean Code: A Handbook of Agile Software Craftsmanship}}, year = {2008}, } @book{deitel2007java, author = {Deitel, Harvey M. and Deitel, Paul J.}, doi = {10.5555/2011858}, publisher = {Prentice Hall}, title = {{Java How to Program}}, year = {2007}, } @book{grady2007object, author = {Booch, Grady and Maksimchuk, Robert A. and Engle, Michael and Young, Bobbi and Conallen, Jim and Houston, Kelli}, doi = {10.5555/1407387}, publisher = {Addison-Wesley}, title = {{Object-Oriented Analysis and Design With Applications}}, year = {2007}, } @book{eckel2006thinking, author = {Eckel, Bruce}, doi = {10.5555/1076545}, publisher = {Prentice Hall}, title = {{Thinking in Java}}, year = {2006}, } @misc{fluentinterface, author = {Fowler, Martin}, howpublished = {\url{https://www.martinfowler.com/bliki/FluentInterface.html}}, note = {[Online; accessed 15-03-2024]}, title = {{Fluent Interface}}, year = {2005}, } @misc{android2024, author = {Google}, howpublished = {\url{https://jttu.net/android2024}}, note = {[Online; accessed 04-04-2024]}, title = {{Performance Tips}}, year = {2024}, } @misc{holub2004more, author = {Holub, Allen}, howpublished = {\url{https://jttu.net/holub2004more}}, note = {[Online; accessed 10-04-2024]}, organization = {InfoWorld}, title = {{More on Getters and Setters}}, year = {2004}, } @book{mcconnell2004codecomplete, author = {McConnell, Steve}, doi = {10.5555/1096143}, edition = {2}, publisher = {Microsoft Press}, title = {{Code Complete}}, year = {2004}, } @book{graham2004hackers, author = {Graham, Paul}, publisher = {O'Reilly Media}, title = {{Hackers \& Painters: Big Ideas From the Computer Age}}, year = {2004}, } @inproceedings{ciaffaglione2003reasoning, author = {Ciaffaglione, Alberto and Liquori, Luigi and Miculan, Marino}, booktitle = {{Proceedings of the {MERLIN'03:} Proceedings of the Workshop on Mechanized Reasoning About Languages With Variable Binding}}, doi = {10.1145/976571.976574}, title = {{Reasoning on an Imperative Object-Based Calculus in Higher Order Abstract Syntax}}, year = {2003}, } @misc{eden2002visual, author = {Eden, Amnon}, organization = {Citeseer}, title = {{A Visual Formalism for Object-Oriented Architecture}}, year = {2002}, } @misc{lattner2002llvm, author = {Lattner, Chris Arthur}, title = {{{LLVM:} an Infrastructure for Multi-Stage Optimization}}, year = {2002}, } @book{metsker2002, author = {Metsker, Steven John}, publisher = {Addison-Wesley}, title = {{Design Patterns Java Workbook}}, year = {2002}, } @inproceedings{eden2001principles, author = {Eden, Amnon H. and Hirshfeld, Yoram}, booktitle = {{Proceedings of the {CASCON'01:} Proceedings of the Conference of the Centre for Advanced Studies on Collaborative Research}}, doi = {10.5555/782096.782099}, title = {{Principles in Formal Specification of Object-Oriented Architectures}}, year = {2001}, } @inproceedings{alpern2001efficient, author = {Alpern, Bowen and Cocchi, Anthony and Fink, Stephen and Grove, David}, booktitle = {{Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications}}, doi = {10.1145/504311.504291}, title = {{Efficient Implementation of Java Interfaces: Invokeinterface Considered Harmless}}, year = {2001}, } @book{hunt2000, author = {Hunt, John}, publisher = {Springer}, title = {{Inheritance Considered Harmful}}, year = {2000}, } @book{duke1991object, author = {Duke, Roger and King, Paul and Rose, Gordon and Smith, Graeme}, publisher = {Citeseer}, title = {{The Object-Z Specification Language}}, year = {2000}, } @misc{paige1999object, author = {Paige, Richard F. and Ostroff, Jonathan S.}, title = {{An Object-Oriented Refinement Calculus}}, year = {1999}, } @misc{gordon1998concurrent, author = {Gordon, Andy and Hankin, Paul D.}, title = {{A Concurrent Object Calculus: Reduction and Typing}}, year = {1998}, } @inproceedings{mikhajlov1998study, author = {Mikhajlov, Leonid and Sekerinski, Emil}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming}}, doi = {10.1007/bfb0054099}, title = {{A Study of the Fragile Base Class Problem}}, year = {1998}, } @inproceedings{bono1998imperative, author = {Bono, Viviana and Fisher, Kathleen}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming}}, doi = {10.1007/bfb0054104}, title = {{An Imperative, First-Order Calculus With Object Extension}}, year = {1998}, } @book{hunt1997smalltalk, author = {Hunt, John}, publisher = {Springer}, title = {{Smalltalk and Object Orientation: An Introduction}}, year = {1997}, } @book{meyer1997object, author = {Meyer, Bertran}, doi = {10.5555/261119}, edition = {2}, publisher = {Prentice Hall}, title = {{Object-Oriented Software Construction}}, year = {1997}, } @misc{bosch1997object, author = {Bosch, Jan}, title = {{Object-Oriented Frameworks: Problems \& Experiences}}, year = {1997}, } @book{beck1997smalltalk, author = {Beck, Kent}, publisher = {Prentice Hall}, title = {{Smalltalk Best Practice Patterns}}, year = {1997}, } @book{martin1997pattern, author = {Martin, Robert C. and Riehle, Dirk and Buschmann, Frank}, publisher = {Addison-Wesley}, title = {{Pattern Languages of Program Design 3}}, year = {1997}, } @book{stroustrup1997, author = {Stroustrup, Bjarne}, doi = {10.5555/2543987}, publisher = {Addison-Wesley}, title = {{The C++ Programming Language}}, year = {1997}, } @misc{giger1996object, author = {Giger, Emanuel and Gall, Harald}, title = {{Object-Oriented Design Heuristics}}, year = {1996}, } @inproceedings{fisher1995delegation, author = {Fisher, Kathleen and Mitchell, John C.}, booktitle = {{Proceedings of the International Symposium on Fundamentals of Computation Theory}}, doi = {10.1007/3-540-60249-6_40}, title = {{A Delegation-Based Object Calculus With Subtyping}}, year = {1995}, } @book{gamma1994design, author = {Gamma, Erich and Helm, Richard and Johnson, Ralph and Vlissides, John}, publisher = {Addison-Wesley}, title = {{Design Patterns: Elements of Reusable Object-Oriented Software}}, year = {1994}, } @misc{cheon1994quick, author = {Cheon, Yoonsik and Leavens, Gary T.}, title = {{A Quick Overview of {Larch/C++}}}, year = {1994}, } @book{steele1990common, author = {Steele, Guy}, doi = {10.5555/95411}, edition = {2}, publisher = {Digital Press}, title = {{Common {LISP:} the Language}}, year = {1990}, } @misc{kaymaster68, author = {Kay, Alan}, title = {{{FLEX --- A} Flexible Extendable Language}}, year = {1986}, } @book{goldbergrobson1983smalltalk, author = {Goldberg, Adele and Robson, David}, doi = {10.5555/273}, publisher = {Addison-Wesley}, title = {{Smalltalk-80: The Language and Its Implementation}}, year = {1983}, } @book{dijkstra1982role, author = {Dijkstra, Edsger W.}, publisher = {Springer}, title = {{On the Role of Scientific Thought}}, year = {1982}, } @article{landin1966next, author = {Landin, Peter J.}, doi = {10.1145/365230.365257}, journal = {{Communications of the ACM}}, number = {3}, title = {{The Next 700 Programming Languages}}, volume = {9}, year = {1966}, } @misc{lukasiewicz1951aristotle, author = {Lukasiewicz, Jan}, title = {{Aristotle's Syllogistic From the Standpoint of Modern Formal Logic}}, year = {1951}, } @book{lucas1891theorie, author = {Lucas, Edouard}, publisher = {Gauthier-Villars}, title = {{{Th{\'e}orie} Des Nombres}}, year = {1891}, } @misc{czaplicki_elmguide, author = {Czaplicki, Evan}, howpublished = {\url{https://guide.elm-lang.org/error_handling/}}, note = {[Online; accessed 15-03-2024]}, title = {{Elm, Official Guide}}, year = {2024}, } @inproceedings{driesen1996direct, author = {Driesen, Karel and H{\"o}lzle, Urs}, booktitle = {{Proceedings of the 11th Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)}}, doi = {10.1145/236337.236369}, pages = {306--323}, title = {{The Direct Cost of Virtual Function Calls in C++}}, year = {1996}, } @inproceedings{dufour2003dynamic, author = {Dufour, Bruno and Driesen, Karel and Hendren, Laurie and Verbrugge, Clark}, booktitle = {{Proceedings of the 18th Conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA)}}, doi = {10.1145/949305.949320}, pages = {149--168}, title = {{Dynamic Metrics for Java}}, year = {2003}, } @inproceedings{dolby2000automatic, author = {Dolby, Julian and Chien, Andrew}, booktitle = {{Proceedings of the Conference on Programming Language Design and Implementation (PLDI)}}, doi = {10.1145/349299.349344}, pages = {345--357}, title = {{An Automatic Object Inlining Optimization and Its Evaluation}}, year = {2000}, } @inproceedings{bacon1996fast, author = {Bacon, David F. and Sweeney, Peter F.}, booktitle = {{Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)}}, doi = {10.1145/236337.236371}, pages = {324--341}, title = {{Fast Static Analysis of C++ Virtual Function Calls}}, year = {1996}, } @article{chambers1989efficient, author = {Chambers, Craig and Ungar, David and Lee, Elgin}, doi = {10.1145/74878.74884}, journal = {{ACM SIGPLAN Notices}}, number = {10}, pages = {49--70}, title = {{An Efficient Implementation of SELF a Dynamically-Typed Object-Oriented Language Based on Prototypes}}, volume = {24}, year = {1989}, } @inproceedings{ungar1987self, author = {Ungar, David and Smith, Randall B.}, booktitle = {{Proceedings of the SIGPLAN Notices}}, doi = {10.1145/38807.38828}, pages = {227--242}, title = {{Self: The Power of Simplicity}}, volume = {22}, year = {1987}, } @misc{lee1995dynamic, author = {Lee, Y. F. and Serrano, M. J.}, organization = {IBM Santa Teresa Laboratory}, title = {{Dynamic Measurements of C++ Program Characteristics}}, year = {1995}, } @inproceedings{calder1994reducing, author = {Calder, Brad and Grunwald, Dirk}, booktitle = {{Proceedings of the Symposium on Principles of Programming Panguages (POPL)}}, doi = {10.1145/174675.177973}, pages = {397--408}, title = {{Reducing Indirect Function Call Overhead in C++ Programs}}, year = {1994}, } @article{budimlic1997optimizing, author = {Budimlic, Zoran and Kennedy, Ken}, doi = {10.1002/(SICI)1096-9128(199706)9:6<445::AID-CPE301>3.0.CO;2-L}, journal = {{Concurrency: Practice and Experience}}, number = {6}, pages = {445--463}, title = {{Optimizing Java: Theory and Practice}}, volume = {9}, year = {1997}, } @inproceedings{dolby1997automatic, author = {Dolby, Julian}, booktitle = {{Proceedings of the Conference on Programming Language Design and Implementation (PLDI)}}, doi = {10.1145/258915.258918}, pages = {7--17}, title = {{Automatic Inline Allocation of Objects}}, year = {1997}, } @inproceedings{dean1995optimization, author = {Dean, Jeffrey and Grove, David and Chambers, Craig}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming (ECOOP)}}, doi = {10.1007/3-540-49538-X_5}, organization = {Springer}, pages = {77--101}, title = {{Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis}}, year = {1995}, } @article{sundaresan2000practical, author = {Sundaresan, Vijay and Hendren, Laurie and Razafimahefa, Chrislain and Vall{\'e}e-Rai, Raja and Lam, Patrick and Gagnon, Etienne and Godin, Charles}, doi = {10.1145/354222.353189}, journal = {{ACM SIGPLAN Notices}}, number = {10}, pages = {264--280}, title = {{Practical Virtual Method Call Resolution for Java}}, volume = {35}, year = {2000}, } @inproceedings{tip2000scalable, author = {Tip, Frank and Palsberg, Jens}, booktitle = {{Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)}}, doi = {10.1145/353171.353190}, pages = {281--293}, title = {{Scalable Propagation-Based Call Graph Construction Algorithms}}, year = {2000}, } @article{schultz2003automatic, author = {Schultz, Ulrik P. and Lawall, Julia L. and Consel, Charles}, doi = {10.1145/778559.778561}, journal = {{ACM Transactions on Programming Languages and Systems (TOPLAS)}}, number = {4}, pages = {452--499}, title = {{Automatic Program Specialization for Java}}, volume = {25}, year = {2003}, } @book{jones1993partial, author = {Jones, Neil D. and Gomard, Carsten K. and Sestoft, Peter}, publisher = {Prentice Hall}, title = {{Partial Evaluation and Automatic Program Generation}}, year = {1993}, } @inproceedings{moller2020eliminating, author = {M{\o}ller, Anders and Veileborg, Oskar Haarklou}, booktitle = {{Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)}}, doi = {10.1145/3428236}, pages = {1--29}, title = {{Eliminating Abstraction Overhead of Java Stream Pipelines Using Ahead-of-Time Program Optimization}}, year = {2020}, } @inproceedings{detlefs1999inlining, author = {Detlefs, David and Agesen, Ole}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming (ECOOP)}}, doi = {10.1007/3-540-48743-3_12}, organization = {Springer}, pages = {258--277}, title = {{Inlining of Virtual Methods}}, year = {1999}, } @inproceedings{deutsch1984efficient, author = {Deutsch, L. Peter and Schiffman, Allan M.}, booktitle = {{Proceedings of the Symposium on Principles of Programming Languages (POPL)}}, doi = {10.1145/800017.800542}, pages = {297--302}, title = {{Efficient Implementation of the Smalltalk-80 System}}, year = {1984}, } @book{dean1996whole, author = {Dean, Jeffrey Adgate}, publisher = {University of Washington}, title = {{Whole-Program Optimization of Object-Oriented Languages}}, year = {1996}, } @article{choi1999escape, author = {Choi, Jong-Deok and Gupta, Manish and Serrano, Mauricio and Sreedhar, Vugranam C. and Midkiff, Sam}, doi = {10.1145/320385.320386}, journal = {{ACM SIGPLAN Notices}}, number = {10}, pages = {1--19}, title = {{Escape Analysis for Java}}, volume = {34}, year = {1999}, } @inproceedings{bruno2021compiler, author = {Bruno, Rodrigo and Jovanovic, Vojin and Wimmer, Christian and Alonso, Gustavo}, booktitle = {{Proceedings of the International Conference on Programming Language Design and Implementation (PLDI)}}, doi = {10.1145/3453483.3454034}, pages = {128--141}, title = {{Compiler-Assisted Object Inlining With Value Fields}}, year = {2021}, } @article{chambers1989customization, author = {Chambers, Craig and Ungar, David}, doi = {10.1145/74818.74831}, journal = {{ACM SIGPLAN Notices}}, number = {7}, pages = {146--160}, title = {{Customization: Optimizing Compiler Technology for {SELF}, a Dynamically-Typed Object-Oriented Programming Language}}, volume = {24}, year = {1989}, } @inproceedings{fernandez1995simple, author = {Fernandez, Mary F.}, booktitle = {{Proceedings of the Conference on Programming Language Design and Implementation (PLDI)}}, doi = {10.1145/223428.207121}, pages = {103--115}, title = {{Simple and Effective Link-Time Optimization of Modula-3 Programs}}, year = {1995}, } @inproceedings{wimmer2007automatic, author = {Wimmer, Christian and M{\"o}ssenb{\"o}ck, Hanspeter}, booktitle = {{Proceedings of the 3rd International Conference on Virtual Execution Environments}}, doi = {10.1145/1254810.1254813}, pages = {12--21}, title = {{Automatic Feedback-Directed Object Inlining in the Java HotSpot Virtual Machine}}, year = {2007}, } @inproceedings{lhotak2002run, author = {Lhot{\'a}k, Ondr\u{e}j and Hendren, Laurie}, booktitle = {{Proceedings of the Joint Conference on Java Grande}}, doi = {10.1145/583810.583830}, pages = {175--184}, title = {{Run-Time Evaluation of Opportunities for Object Inlining in Java}}, year = {2002}, } @inproceedings{veldema2002object, author = {Veldema, Ronald and Ceriel, J. H. and Rutger, F. H. and Henri, E.}, booktitle = {{Proceedings of the Joint Conference on Java Grande}}, doi = {10.1145/583810.583829}, pages = {165--174}, title = {{Object Combining: A New Aggressive Optimization for Object Intensive Programs}}, year = {2002}, } @article{wimmer2010automatic, author = {Wimmer, Christian and M{\"o}ssenb{\"o}sck, Hanspeter}, doi = {10.1145/1839667.1839669}, journal = {{ACM Transactions on Architecture and Code Optimization (TACO)}}, number = {2}, pages = {1--35}, title = {{Automatic Feedback-Directed Object Fusing}}, volume = {7}, year = {2010}, } @book{wu1998improving, author = {Wu, Peng and Midkiff, Sam and Moreira, Jos{\'e} E. and Gupta, Manish}, publisher = {IBM Thomas J. Watson Research Division}, title = {{Improving Java Performance Through Semantic Inlining}}, year = {1998}, } @misc{budimlic1998static, author = {Budimlic, Zoran and Kennedy, Ken}, organization = {Center for Research on Parallel Computation, Rice University}, title = {{Static Interprocedural Optimizations in Java, Technical Report CRPC-TR98746}}, year = {1998}, } @article{ben2012refactoring, author = {Ben Asher, Yosi and Gal, Tomer and Haber, Gadi and Zalmanovici, Marcel}, doi = {10.1007/s10515-011-0096-x}, journal = {{Automated Software Engineering}}, number = {1}, pages = {97--136}, title = {{Refactoring Techniques for Aggressive Object Inlining in Java Applications}}, volume = {19}, year = {2012}, } @inproceedings{holzle1991optimizing, author = {H{\"o}lzle, Urs and Chambers, Craig and Ungar, David}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming (ECOOP)}}, doi = {10.5555/646149.679193}, organization = {Springer}, pages = {21--38}, title = {{Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches}}, year = {1991}, } @inproceedings{aigner1996eliminating, author = {Aigner, Gerald and H{\"o}lzle, Urs}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming}}, doi = {10.1007/BFb0053060}, organization = {Springer}, pages = {142--166}, title = {{Eliminating Virtual Function Calls in C++ Programs}}, year = {1996}, } @inproceedings{holzle1994optimizing, author = {H{\"o}lzle, Urs and Ungar, David}, booktitle = {{Proceedings of the Conference on Programming Language Design and Implementation (PLDI)}}, doi = {10.1145/773473.178478}, pages = {326--336}, title = {{Optimizing Dynamically-Dispatched Calls With Run-Time Type Feedback}}, year = {1994}, } @inproceedings{wu2020hidden, author = {Wu, Zhefeng and Sun, Zhe and Gong, Kai and Chen, Lingyun and Liao, Bin and Jin, Yihua}, booktitle = {{Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)}}, doi = {10.1145/3428242}, pages = {1--29}, title = {{Hidden Inheritance: An Inline Caching Design for TypeScript Performance}}, year = {2020}, } @inproceedings{choi2019reusable, author = {Choi, Jiho and Shull, Thomas and Torrellas, Josep}, booktitle = {{Proceedings of the Conference on Programming Language Design and Implementation (PLDI)}}, doi = {10.1145/3314221.3314587}, pages = {889--901}, title = {{Reusable Inline Caching for JavaScript Performance}}, year = {2019}, } @book{pande1993static, author = {Pande, Hemant D. and Ryder, Barbara G.}, publisher = {Rutgers University}, title = {{Static Type Determination for C++}}, year = {1993}, } @inproceedings{johnston1979dynamic, author = {Johnston, Ronald L.}, booktitle = {{Proceedings of the International Conference on APL}}, doi = {10.1145/800136.804442}, pages = {82--87}, title = {{The Dynamic Incremental Compiler of APL\textbackslash{}{3000}}}, year = {1979}, } @article{davidson1988study, author = {Davidson, Jack W. and Holler, Anne M.}, doi = {10.1002/spe.4380180805}, journal = {{Software: Practice and Experience}}, number = {8}, pages = {775--790}, title = {{A Study of a C Function Inliner}}, volume = {18}, year = {1988}, } @article{cooper1991experiment, author = {Cooper, Keith D. and Hall, Mary W. and Torczon, Linda}, doi = {10.1002/spe.4380210604}, journal = {{Software: Practice and Experience}}, number = {6}, pages = {581--601}, title = {{An Experiment With Inline Substitution}}, volume = {21}, year = {1991}, } @inproceedings{chang1989inline, author = {Chang, Pohua P. and Hwu, Wen-Mei W.}, booktitle = {{Proceedings of the Conference on Programming Language Design and Implementation (PLDI)}}, doi = {10.1002/spe.4380220502}, pages = {246--257}, title = {{Inline Function Expansion for Compiling C Programs}}, year = {1989}, } @article{chang1992profile, author = {Chang, Pohua P. and Mahlke, Scott A. and Chen, William Y. and Hwu, Wen-Mei W.}, doi = {10.1002/spe.4380220502}, journal = {{Software: Practice and Experience}}, number = {5}, pages = {349--369}, title = {{Profile-Guided Automatic Inline Expansion for C Programs}}, volume = {22}, year = {1992}, } @book{hall1991managing, author = {Hall, Mary Wolcott}, publisher = {Rice University}, title = {{Managing Interprocedural Optimization}}, year = {1991}, } @article{chambers1991making, author = {Chambers, Craig and Ungar, David}, doi = {10.1145/118014.117955}, journal = {{{ACM} SIGPLAN Notices}}, number = {11}, pages = {1--15}, title = {{Making Pure Object-Oriented Languages Practical}}, volume = {26}, year = {1991}, } @article{dean1995selective, author = {Dean, Jeffrey and Chambers, Craig and Grove, David}, doi = {10.1145/223428.207119}, journal = {{ACM SIGPLAN Notices}}, number = {6}, pages = {93--102}, title = {{Selective Specialization for Object-Oriented Languages}}, volume = {30}, year = {1995}, } @misc{calder1994quantifying, author = {Calder, Brad and Grunwald, Dirk and Zorn, Benjamin}, organization = {Journal of Programming Languages}, title = {{Quantifying Behavioral Differences Between C and C++ Programs}}, year = {1994}, } @inproceedings{pande1996data, author = {Pande, Hemant D. and Ryder, Barbara G.}, booktitle = {{Proceedings of the International Static Analysis Symposium}}, doi = {10.1007/3-540-61739-6_45}, organization = {Springer}, pages = {238--254}, title = {{Data-Flow-Based Virtual Function Resolution}}, year = {1996}, } @inproceedings{maclaren1984inline, author = {MacLaren, M. Donald}, booktitle = {{Proceedings of the Symposium on Compiler Construction}}, doi = {10.1145/502874.502900}, pages = {266--275}, title = {{Inline Routines in VAXELN Pascal}}, year = {1984}, } @article{ball1979predicting, author = {Ball, J. Eugene}, doi = {10.1145/872732.806972}, journal = {{ACM SIGPLAN Notices}}, number = {8}, pages = {214--220}, title = {{Predicting the Effects of Optimization on a Procedure Body}}, volume = {14}, year = {1979}, } @article{li2019understanding, author = {Li, Yue and Tan, Tian and Xue, Jingling}, doi = {10.1145/3295739}, journal = {{ACM Transactions on Software Engineering and Methodology (TOSEM)}}, number = {2}, pages = {1--50}, title = {{Understanding and Analyzing Java Reflection}}, volume = {28}, year = {2019}, } @inproceedings{fursin2005practical, author = {Fursin, Grigori and Cohen, Albert and O'Boyle, Michael and Temam, Olivier}, booktitle = {{Proceedings of the High Performance Embedded Architectures and Compilers: First International Conference, HiPEAC}}, doi = {10.1007/11587514_4}, organization = {Springer}, pages = {29--46}, title = {{A Practical Method for Quickly Evaluating Program Optimizations}}, year = {2005}, } @book{marlet2013program, author = {Marlet, Renaud}, publisher = {Wiley}, title = {{Program Specialization}}, year = {2013}, } @article{copperman1994debugging, author = {Copperman, Max}, doi = {10.1145/177492.177517}, journal = {{ACM Transactions on Programming Languages and Systems (TOPLAS)}}, number = {3}, pages = {387--427}, title = {{Debugging Optimized Code Without Being Misled}}, volume = {16}, year = {1994}, } @inproceedings{ochoa2021u, author = {Ochoa, Erick and Xia, Cijie and Ali, Karim and Craik, Andrew and Amaral, Jos{\'e} Nelson}, booktitle = {{Proceedings of the International Conference on Computer Science and Software Engineering (CASCON)}}, doi = {10.5555/3507788.3507812}, title = {{U Can't Inline This!}}, year = {2021}, } @inproceedings{landman2017challenges, author = {Landman, Davy and Serebrenik, Alexander and Vinju, Jurgen J.}, booktitle = {{Proceedings of the 39th International Conference on Software Engineering (ICSE)}}, doi = {10.1109/ICSE.2017.53}, organization = {IEEE}, pages = {507--518}, title = {{Challenges for Static Analysis of Java Reflection --- Literature Review and Empirical Study}}, year = {2017}, } @article{kim2000memory, author = {Kim, Jin-Soo and Hsu, Yarsun}, doi = {10.1145/345063.339422}, journal = {{ACM SIGMETRICS Performance Evaluation Review}}, number = {1}, pages = {264--274}, title = {{Memory System Behavior of Java Programs: Methodology and Analysis}}, volume = {28}, year = {2000}, } @inproceedings{vasileva2023object, author = {Vasileva, Alena and Bugayenko, Yegor}, booktitle = {{Proceedings of the 7th International Conference on Computer Science and Artificial Intelligence}}, doi = {10.1145/3638584.3638674}, pages = {106--115}, title = {{Object Specialization to Partially Reduce Polymorphism of Attributes}}, year = {2023}, } @inproceedings{andersen2004declarative, author = {Andersen, Helle Markmann and Schultz, Ulrik Pagh}, booktitle = {{Proceedings of the Symposium on Partial Evaluation and Semantics-Based Program Manipulation}}, doi = {10.1145/1014007.1014011}, pages = {27--38}, title = {{Declarative Specialization for Object-Oriented Program Specialization}}, year = {2004}, } @article{kazi2000techniques, author = {Kazi, Iffat H. and Chen, Howard H. and Stanley, Berdenia and Lilja, David J.}, doi = {10.1145/367701.367714}, journal = {{ACM Computing Surveys}}, number = {3}, pages = {213--240}, title = {{Techniques for Obtaining High Performance in Java Programs}}, volume = {32}, year = {2000}, } @inproceedings{duboscq2013intermediate, author = {Duboscq, Gilles and W{\"u}rthinger, Thomas and Stadler, Lukas and Wimmer, Christian and Simon, Doug and M{\"o}ssenb{\"o}ck, Hanspeter}, booktitle = {{Proceedings of the 7th Workshop on Virtual Machines and Intermediate Languages}}, doi = {10.1145/2542142.2542143}, pages = {1--10}, title = {{An Intermediate Representation for Speculative Optimizations in a Dynamic Compiler}}, year = {2013}, } @inproceedings{vallee1999soot, author = {Vall{\'e}e-Rai, Raja and Co, Phong and Gagnon, Etienne and Hendren, Laurie and Lam, Patrick and Sundaresan, Vijay}, booktitle = {{Proceedings of the Conference of the Centre for Advanced Studies on Collaborative Research (CASCON'99)}}, doi = {10.5555/781995.782008}, pages = {214--224}, title = {{Soot: A Java Bytecode Optimization Framework}}, year = {1999}, } @inproceedings{demange2010provably, author = {Demange, Delphine and Jensen, Thomas and Pichardie, David}, booktitle = {{Proceedings of the Asian Symposium on Programming Languages and Systems}}, doi = {10.1007/978-3-642-17164-2_8}, organization = {Springer}, pages = {97--113}, title = {{A Provably Correct Stackless Intermediate Representation for Java Bytecode}}, year = {2010}, } @inproceedings{puder2005xml, author = {Puder, Arno}, booktitle = {{Proceedings of the OTM Confederated International Conferences ``on the Move to Meaningful Internet Systems''}}, doi = {10.1007/11575863_10}, organization = {Springer}, pages = {20--21}, title = {{An XML-Based Cross-Language Framework}}, year = {2005}, } @book{cierniak1996briki, author = {Cierniak, Michal and Li, Wei}, doi = {10.5555/898219}, publisher = {University of Rochester}, title = {{Briki: A Flexible Java Compiler}}, year = {1996}, } @article{stanier2013intermediate, author = {Stanier, James and Watson, Des}, doi = {10.1145/2480741.2480743}, journal = {{ACM Computing Surveys}}, number = {3}, pages = {1--27}, title = {{Intermediate Representations in Imperative Compilers: A Survey}}, volume = {45}, year = {2013}, } @inproceedings{lattner2004llvm, author = {Lattner, Chris and Adve, Vikram}, booktitle = {{Proceedings of the International Symposium on Code Generation and Optimization}}, doi = {10.1109/CGO.2004.1281665}, organization = {IEEE}, pages = {75--86}, title = {{LLVM: A Compilation Framework for Lifelong Program Analysis \& Transformation}}, year = {2004}, } @inproceedings{lattner2021mlir, author = {Lattner, Chris and Amini, Mehdi and Bondhugula, Uday and Cohen, Albert and Davis, Andy and Pienaar, Jacques and Riddle, River and Shpeisman, Tatiana and Vasilache, Nicolas and Zinenko, Oleksandr}, booktitle = {{Proceedings of the International Symposium on Code Generation and Optimization}}, doi = {10.1109/CGO51591.2021.9370308}, organization = {IEEE}, pages = {2--14}, title = {{MLIR: Scaling Compiler Infrastructure for Domain Specific Computation}}, year = {2021}, } @inproceedings{zhao2012formalizing, author = {Zhao, Jianzhou and Nagarakatte, Santosh and Martin, Milo MK and Zdancewic, Steve}, booktitle = {{Proceedings of the 39th Annual SIGPLAN-SIGACT Symposium on Principles of Programming Languages}}, doi = {10.1145/2103656.2103709}, pages = {427--440}, title = {{Formalizing the LLVM Intermediate Representation for Verified Program Transformations}}, year = {2012}, } @inproceedings{lopes2015provably, author = {Lopes, Nuno P. and Menendez, David and Nagarakatte, Santosh and Regehr, John}, booktitle = {{Proceedings of the 36th Conference on Programming Language Design and Implementation}}, doi = {10.1145/2737924.2737965}, pages = {22--32}, title = {{Provably Correct Peephole Optimizations With Alive}}, year = {2015}, } @inproceedings{kang2018crellvm, author = {Kang, Jeehoon and Kim, Yoonseung and Song, Youngju and Lee, Juneyoung and Park, Sanghoon and Shin, Mark Dongyeon and Kim, Yonghyun and Cho, Sungkeun and Choi, Joonwon and Hur, Chung-Kil and others}, booktitle = {{Proceedings of the 39th Conference on Programming Language Design and Implementation}}, doi = {10.1145/3192366.3192377}, pages = {631--645}, title = {{Crellvm: Verified Credible Compilation for LLVM}}, year = {2018}, } @inproceedings{zakowski2021modular, author = {Zakowski, Yannick and Beck, Calvin and Yoon, Irene and Zaichuk, Ilia and Zaliva, Vadim and Zdancewic, Steve}, booktitle = {{Proceedings of the International Conference on Functional Programming}}, doi = {10.1145/3473572}, pages = {1--30}, title = {{Modular, Compositional, and Executable Formal Semantics for LLVM IR}}, year = {2021}, } @inproceedings{webb2023verifying, author = {Webb, Brae J. and Hayes, Ian J. and Utting, Mark}, booktitle = {{Proceedings of the 12th International Conference on Certified Programs and Proofs}}, doi = {10.1145/3573105.3575673}, pages = {320--333}, title = {{Verifying Term Graph Optimizations Using Isabelle/HOL}}, year = {2023}, } @inproceedings{yu2023reasoning, author = {Yu, Pingshi}, booktitle = {{Proceedings of the 32nd International Symposium on Software Testing and Analysis}}, doi = {10.1145/3597926.3605239}, pages = {1552--1554}, title = {{Reasoning About MLIR Semantics Through Effects and Handlers}}, year = {2023}, } @inproceedings{mehnert2011kopitiam, author = {Mehnert, Hannes}, booktitle = {{Proceedings of the NASA Formal Methods Symposium}}, doi = {10.1007/978-3-642-20398-5_42}, organization = {Springer}, pages = {518--524}, title = {{Kopitiam: Modular Incremental Interactive Full Functional Static Verification of Java Code}}, year = {2011}, } @article{ishizaki2000study, author = {Ishizaki, Kazuaki and Kawahito, Motohiro and Yasue, Toshiaki and Komatsu, Hideaki and Nakatani, Toshio}, doi = {10.1145/354222.353191}, journal = {{SIGPLAN Notices}}, month = {1}, number = {10}, pages = {294--310}, title = {{A Study of Devirtualization Techniques for a Java Just-in-Time Compiler}}, volume = {35}, year = {2000}, } @book{alfred2007compilers, author = {Alfred, V. Aho and Monica, S. Lam and Jeffrey, D. Ullman}, doi = {10.5555/1177220}, publisher = {Pearson Education}, title = {{Compilers Principles, Techniques \& Tools}}, year = {2007}, } @article{conway1958proposal, author = {Conway, Melvin E.}, doi = {10.1145/368924.368928}, journal = {{Communications of the ACM}}, number = {10}, pages = {5--8}, title = {{Proposal for an UNCOL}}, volume = {1}, year = {1958}, } @inproceedings{necula2002cil, author = {Necula, George C. and McPeak, Scott and Rahul, Shree P. and Weimer, Westley}, booktitle = {{Proceedings of the International Conference on Compiler Construction}}, doi = {10.1007/3-540-45937-5_16}, organization = {Springer}, pages = {213--228}, title = {{CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs}}, year = {2002}, } @inproceedings{chen2005simple, author = {Chen, Juan and Tarditi, David}, booktitle = {{Proceedings of the 32nd Symposium on Principles of Programming Languages}}, doi = {10.1145/1040305.1040309}, pages = {38--49}, title = {{A Simple Typed Intermediate Language for Object-Oriented Languages}}, year = {2005}, } @inproceedings{nistor2013wyvern, author = {Nistor, Ligia and Kurilova, Darya and Balzer, Stephanie and Chung, Benjamin and Potanin, Alex and Aldrich, Jonathan}, booktitle = {{Proceedings of the 5th Workshop on MechAnisms for SPEcialization, Generalization and InHerItance}}, doi = {10.1145/2489828.2489830}, pages = {9--16}, title = {{Wyvern: A Simple, Typed, and Pure Object-Oriented Language}}, year = {2013}, } @article{wilson1994suif, author = {Wilson, Robert P. and French, Robert S. and Wilson, Christopher S. and Amarasinghe, Saman P. and Anderson, Jennifer M. and Tjiang, Steve W. K. and Liao, Shih-Wei and Tseng, Chau-Wen and Hall, Mary W. and Lam, Monica S.}, doi = {10.1145/193209.193217}, journal = {{ACM Sigplan Notices}}, number = {12}, pages = {31--37}, title = {{SUIF: An Infrastructure for Research on Parallelizing and Optimizing Compilers}}, volume = {29}, year = {1994}, } @inproceedings{furr2009ruby, author = {Furr, Michael and An, Jong-Hoon and Foster, Jeffrey S. and Hicks, Michael}, booktitle = {{Proceedings of the 5th Symposium on Dynamic Languages}}, doi = {10.1145/1640134.1640148}, pages = {89--98}, title = {{The Ruby Intermediate Language}}, year = {2009}, } @inproceedings{shao1997typed, author = {Shao, Zhong}, booktitle = {{Proceedings of the Conference on Domain-Specific Languages}}, doi = {10.5555/1267950.1267958}, title = {{Typed Common Intermediate Format}}, year = {1997}, } @inproceedings{reynolds1974towards, author = {Reynolds, John C.}, booktitle = {{Proceedings of the Programming Symposium}}, doi = {10.1007/3-540-06859-7_148}, organization = {Springer}, pages = {408--425}, title = {{Towards a Theory of Type Structure}}, year = {1974}, } @inproceedings{bugayenko2023algorithm, author = {Bugayenko, Yegor and Lipanin, Mikhail}, booktitle = {{Proceedings of the 7th International Conference on Computer Science and Artificial Intelligence}}, doi = {10.1145/3638584.3638679}, pages = {152--164}, title = {{An Algorithm for Partial Elimination of Jumps in an Object-Oriented Dataflow Language}}, year = {2023}, } @inproceedings{nelson1979comparison, author = {Nelson, Philip A.}, booktitle = {{Proceedings of the SIGPLAN Symposium on Compiler Construction}}, doi = {10.1145/800229.806971}, pages = {208--213}, title = {{A Comparison of PASCAL Intermediate Languages}}, year = {1979}, } @inproceedings{jones1997c, author = {Jones, Simon Peyton and Nordin, Thomas and Oliva, Dino}, booktitle = {{Proceedings of the Symposium on Implementation and Application of Functional Languages}}, doi = {10.1007/BFb0055421}, organization = {Springer}, pages = {1--19}, title = {{C--: A Portable Assembly Language}}, year = {1997}, } @inproceedings{qian2002formal, author = {Qian, Zhenyu}, booktitle = {{Proceedings of the Formal Syntax and Semantics of Java}}, doi = {10.1007/3-540-48737-9_8}, pages = {271--311}, title = {{A Formal Specification of Java Virtual Machine Instructions for Objects, Methods and Subroutines}}, year = {2002}, } @book{gosling2005java, author = {Gosling, James and Joy, Bill and Steele, Guy and Bracha, Gilad}, publisher = {Addison-Wesley}, title = {{The Java Language Specification}}, year = {2005}, } @misc{altherr2006typed, author = {Altherr, Philippe}, title = {{A Typed Intermediate Language and Algorithms for Compiling Scala by Successive Rewritings}}, year = {2006}, } @inproceedings{fehr2022irdl, author = {Fehr, Mathieu and Niu, Jeff and Riddle, River and Amini, Mehdi and Su, Zhendong and Grosser, Tobias}, booktitle = {{Proceedings of the 43rd International Conference on Programming Language Design and Implementation}}, doi = {10.1145/3519939.3523700}, pages = {199--212}, title = {{IRDL: An IR Definition Language for SSA Compilers}}, year = {2022}, } @article{meyer1986genericity, author = {Meyer, Bertrand}, doi = {10.1145/960112.28738}, journal = {{ACM Sigplan Notices}}, number = {11}, pages = {391--405}, title = {{Genericity versus Inheritance}}, volume = {21}, year = {1986}, } @misc{schaffert1985trellis, author = {Schaffert, Craig and Cooper, Topher and Wilpolt, Carrie}, title = {{Trellis Object-Based Environment, Language Reference Manual}}, year = {1985}, } @inproceedings{black1986object, author = {Black, Andrew and Hutchinson, Norman and Jul, Eric and Levy, Henry}, booktitle = {{Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications}}, doi = {10.1145/28697.28706}, pages = {78--86}, title = {{Object Structure in the Emerald System}}, year = {1986}, } @article{stefik1985object, author = {Stefik, Mark and Bobrow, Daniel G.}, doi = {10.1609/aimag.v6i4.508}, journal = {{AI Magazine}}, number = {4}, title = {{Object-Oriented Programming: Themes and Variations}}, volume = {6}, year = {1985}, } @article{armstrong2006quarks, author = {Armstrong, Deborah J.}, doi = {10.1145/1113034.1113040}, journal = {{Communications of the ACM}}, number = {2}, title = {{The Quarks of Object-Oriented Development}}, volume = {49}, year = {2006}, } @article{dahl1966simula, author = {Dahl, Ole-Johan and Nygaard, Kristen}, doi = {10.1145/365813.365819}, journal = {{Communications of the ACM}}, number = {9}, title = {{{SIMULA:} an {ALGOL-based} Simulation Language}}, volume = {9}, year = {1966}, } @book{meyer1988object, author = {Meyer, Bertrand}, doi = {10.5555/534929}, publisher = {Prentice Hall}, title = {{Object-Oriented Software Construction}}, year = {1988}, } @book{coad1991object, author = {Coad, Peter and Yourdon, Edward and Coad, Peter}, doi = {10.5555/79077}, publisher = {Yourdon Press}, title = {{Object-Oriented Analysis}}, year = {1991}, } @article{sciore1989object, author = {Sciore, Edward}, doi = {10.1145/65935.65936}, journal = {{ACM Transactions on Information Systems (TOIS)}}, number = {2}, pages = {103--122}, title = {{Object Specialization}}, volume = {7}, year = {1989}, } @inproceedings{snyder1986encapsulation, author = {Snyder, Alan}, booktitle = {{Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications}}, doi = {10.1145/28697.28702}, pages = {38--45}, title = {{Encapsulation and Inheritance in Object-Oriented Programming Languages}}, year = {1986}, } @article{stein1987delegation, author = {Stein, Lynn Andrea}, doi = {10.1145/38807.38820}, journal = {{ACM SIGPLAN Notices}}, number = {12}, pages = {138--146}, title = {{Delegation Is Inheritance}}, volume = {22}, year = {1987}, } @book{wirfs1990designing, author = {Wirfs-Brock, Rebecca and Wilkerson, Brian and Wiener, Lauren}, doi = {10.5555/130445}, publisher = {Prentice Hall}, title = {{Designing Object-Oriented Software}}, year = {1990}, } @book{flanagan2008ruby, author = {Flanagan, David and Matsumoto, Yukihiro}, doi = {10.5555/1408408}, publisher = {O'Reilly Media}, title = {{The Ruby Programming Language}}, year = {2008}, } @book{madsen1993object, author = {Madsen, Ole Lehrmann and M{\o}ller-Pedersen, Birger and Nygaard, Kristen}, doi = {10.5555/221048}, publisher = {Addison-Wesley}, title = {{Object-Oriented Programming in the BETA Programming Language}}, year = {1993}, } @inproceedings{stroustrup1987object, author = {Stroustrup, Bjarne}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming}}, doi = {10.1007/3-540-47891-4_6}, organization = {Springer}, pages = {51--70}, title = {{What Is ``Object-Oriented Programming''?}}, year = {1987}, } @inproceedings{nygaard1986basic, author = {Nygaard, Kristen}, booktitle = {{Proceedings of the SIGPLAN Workshop on Object-Oriented Programming}}, doi = {10.1145/323648.323751}, pages = {128--132}, title = {{Basic Concepts in Object Oriented Programming}}, year = {1986}, } @article{joque2016invention, author = {Joque, Justin}, doi = {10.1007/s13347-016-0223-5}, journal = {{Philosophy \& Technology}}, number = {1}, pages = {335--356}, title = {{The Invention of the Object: Object Orientation and the Philosophical Development of Programming Languages}}, volume = {29}, year = {2016}, } @book{walrath2012dart, author = {Walrath, Kathy and Ladd, Seth}, publisher = {O'Reilly Media}, title = {{Dart: Up and Running: A New, Tool-Friendly Language for Structured Web Apps}}, year = {2012}, } @inproceedings{inostroza2018jeff, author = {Inostroza, Pablo and van der Storm, Tijs}, booktitle = {{Proceedings of the SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software}}, doi = {10.1145/3276954.3276955}, pages = {111--124}, title = {{{JEff}: Objects for Effect}}, year = {2018}, } @misc{odersky2004overview, author = {Odersky, Martin and Altherr, Philippe and Cremet, Vincent and Emir, Burak and Maneth, Sebastian and Micheloud, St{\'e}phane and Mihaylov, Nikolay and Schinz, Michel and Stenman, Erik and Zenger, Matthias}, organization = {EPFL}, title = {{An Overview of the Scala Programming Language}}, year = {2004}, } @article{beyond2022, author = {Editorial}, doi = {10.1038/s41565-020-0738-x}, journal = {{Nature Nanotechnoly}}, number = {1}, title = {{Beyond {von} Neumann}}, volume = {15}, year = {2020}, } @inproceedings{bugayenko2024algo, author = {Bugayenko, Yegor and Lipanin, Mikhail}, booktitle = {{Proceedings of the 7th International Conference on Computer Science and Artificial Intelligence}}, doi = {10.1145/3638584.3638679}, pages = {152--164}, title = {{An Algorithm for Partial Elimination of Jumps in an Object-Oriented Dataflow Language}}, year = {2024}, } @inproceedings{kudasov2022formalizing, author = {Kudasov, Nikolai and Sim, Violetta}, booktitle = {{Proceedings of the 24th International Workshop on Formal Techniques for Java-Like Programs}}, doi = {10.1145/3611096.3611103}, pages = {29--36}, title = {{Formalizing \(\varphi\)-Calculus: A Purely Object-Oriented Calculus of Decorated Objects}}, year = {2022}, } @article{legalov2023, author = {Legalov, A. I. and Bugayenko, Y. G. and Chuykin, N. K. and Shipitsin, M. V. and Riabtsev, Y. I. and Kamenskiy, A. N.}, doi = {10.3103/S0146411623070088}, journal = {{Automated Control Computer Science}}, number = {7}, pages = {803--816}, title = {{Transformation of C Programming Language Memory Model into Object-Oriented Representation of EO Language}}, volume = {57}, year = {2024}, } @article{raymond1999cathedral, author = {Raymond, Eric}, doi = {10.1007/s12130-999-1026-0}, journal = {{Knowledge, Technology \& Policy}}, number = {3}, pages = {23--49}, title = {{The Cathedral and the Bazaar}}, volume = {12}, year = {1999}, } @book{fogel2005producing, author = {Fogel, Karl}, publisher = {O'Reilly Media}, title = {{Producing Open Source Software: How to Run a Successful Free Software Project}}, year = {2005}, } @misc{pope2014, author = {Winfield, Nicole}, month = {2}, organization = {New York Post}, title = {{Pope's Advice to Couples: Say `Please, Thanks and Sorry'}}, year = {2014}, } @article{nowak2005influence, author = {Nowak, Kristine L. and Rauh, Christian}, doi = {10.1111/j.1083-6101.2006.tb00308.x}, journal = {{Journal of Computer-Mediated Communication}}, number = {1}, pages = {153--178}, title = {{The Influence of the Avatar on Online Perceptions of Anthropomorphism, Androgyny, Credibility, Homophily, and Attraction}}, volume = {11}, year = {2005}, } @misc{laurentsyeva2019friends, author = {Laurentsyeva, Nadzeya}, title = {{From Friends to Foes: National Identity and Collaboration in Diverse Teams}}, year = {2019}, } @misc{fackler2020gravity, author = {Fackler, Thomas and Laurentsyeva, Nadzeya}, organization = {CESifo Forum}, title = {{Gravity in Online Collaborations: Evidence From Github}}, year = {2020}, } @inproceedings{tsay2014let, author = {Tsay, Jason and Dabbish, Laura and Herbsleb, James}, booktitle = {{Proceedings of the 22nd International Symposium on Foundations of Software Engineering}}, doi = {10.1145/2635868.2635882}, pages = {144--154}, title = {{Let's Talk About It: Evaluating Contributions Through Discussion in GitHub}}, year = {2014}, } @article{terrell2017gender, author = {Terrell, Josh and Kofink, Andrew and Middleton, Justin and Rainear, Clarissa and Murphy-Hill, Emerson and Parnin, Chris and Stallings, Jon}, doi = {10.7717/peerj-cs.111}, journal = {{PeerJ Computer Science}}, number = {1}, pages = {111}, title = {{Gender Differences and Bias in Open Source: Pull Request Acceptance of Women versus Men}}, volume = {3}, year = {2017}, } @inproceedings{imtiaz2019investigating, author = {Imtiaz, Nasif and Middleton, Justin and Chakraborty, Joymallya and Robson, Neill and Bai, Gina and Murphy-Hill, Emerson}, booktitle = {{Proceedings of the 41st International Conference on Software Engineering (ICSE)}}, doi = {10.1109/ICSE.2019.00079}, organization = {IEEE}, pages = {700--711}, title = {{Investigating the Effects of Gender Bias on GitHub}}, year = {2019}, } @article{nadri2021insights, author = {Nadri, Reza and Rodriguez-Perez, Gema and Nagappan, Meiyappan}, doi = {10.1109/MS.2020.3036758}, journal = {{IEEE Software}}, number = {2}, pages = {51--57}, title = {{Insights into Nonmerged Pull Requests in GitHub: Is There Evidence of Bias Based on Perceptible Race?}}, volume = {38}, year = {2021}, } @inproceedings{egelman2020predicting, author = {Egelman, Carolyn D. and Murphy-Hill, Emerson and Kammer, Elizabeth and Hodges, Margaret Morrow and Green, Collin and Jaspan, Ciera and Lin, James}, booktitle = {{Proceedings of the 42nd International Conference on Software Engineering}}, doi = {10.1145/3377811.3380414}, pages = {174--185}, title = {{Predicting Developers' Negative Feelings About Code Review}}, year = {2020}, } @inproceedings{middleton2018contributions, author = {Middleton, Justin and Murphy-Hill, Emerson and Green, Demetrius and Meade, Adam and Mayer, Roger and White, David and McDonald, Steve}, booktitle = {{Proceedings of the 15th International Conference on Mining Software Repositories}}, doi = {10.1145/3196398.3196429}, pages = {403--413}, title = {{Which Contributions Predict Whether Developers Are Accepted into Github Teams}}, year = {2018}, } @inproceedings{miller2022did, author = {Miller, Courtney and Cohen, Sophie and Klug, Daniel and Vasilescu, Bogdan and KaUstner, Christian}, booktitle = {{Proceedings of the 44th International Conference on Software Engineering}}, doi = {10.1145/3510003.3510111}, pages = {710--722}, title = {{``Did You Miss My Comment or What?'' Understanding Toxicity in Open Source Discussions}}, year = {2022}, } @article{lu2022emojis, author = {Lu, Xuan and Ai, Wei and Chen, Zhenpeng and Cao, Yanbin and Mei, Qiaozhu}, doi = {10.1371/journal.pone.0261262}, journal = {{PLOS One}}, number = {1}, title = {{Emojis Predict Dropouts of Remote Workers: An Empirical Study of Emoji Usage on GitHub}}, volume = {17}, year = {2022}, } @misc{mytton2016, author = {Mytton, David}, month = {2}, organization = {InfoWorld}, title = {{What's the Real Reason Microsoft and Google Are Releasing Open Source?}}, year = {2016}, } @inproceedings{raman2020stress, author = {Raman, Naveen and Cao, Minxuan and Tsvetkov, Yulia and K{\"a}stner, Christian and Vasilescu, Bogdan}, booktitle = {{Proceedings of the 42nd International Conference on Software Engineering: New Ideas and Emerging Results}}, doi = {10.1145/3377816.3381732}, pages = {57--60}, title = {{Stress and Burnout in Open Source: Toward Finding, Understanding, and Mitigating Unhealthy Interactions}}, year = {2020}, } @article{li2021code, author = {Li, Renee and Pandurangan, Pavitthra and Frluckaj, Hana and Dabbish, Laura}, doi = {10.1145/3449093}, journal = {{Proceedings of the ACM on Human-Computer Interaction}}, number = {1}, pages = {1--31}, title = {{Code of Conduct Conversations in Open Source Software Projects on Github}}, volume = {5}, year = {2021}, } @inproceedings{jamieson2023predicting, author = {Jamieson, Jack and Yamashita, Naomi and Foong, Eureka}, booktitle = {{Proceedings of the 46th International Conference on Software Engineering}}, doi = {10.1145/3597503.3623340}, organization = {IEEE}, pages = {667--679}, title = {{Predicting Open Source Contributor Turnover From Value-Related Discussions: An Analysis of GitHub Issues}}, year = {2023}, } @article{ferreira2021shut, author = {Ferreira, Isabella and Cheng, Jinghui and Adams, Bram}, doi = {10.1145/3479497}, journal = {{Proceedings of the ACM on Human-Computer Interaction}}, number = {2}, pages = {1--35}, title = {{The ``Shut the F** K Up'' Phenomenon: Characterizing Incivility in Open Source Code Review Discussions}}, volume = {5}, year = {2021}, } @misc{warschauer1995comparing, author = {Warschauer, Mark}, organization = {CALICO Journal}, title = {{Comparing Face-to-Face and Electronic Discussion in the Second Language Classroom}}, year = {1995}, } @inproceedings{ebert2022communication, author = {Ebert, Verena and Graziotin, Daniel and Wagner, Stefan}, booktitle = {{Proceedings of the 26th International Conference on Evaluation and Assessment in Software Engineering}}, doi = {10.1145/3530019.3530024}, pages = {40--49}, title = {{How Are Communication Channels on GitHub Presented to Their Intended Audience? --- A Thematic Analysis}}, year = {2022}, } @book{hetzel1993complete, author = {Hetzel, Bill}, publisher = {Wiley}, title = {{The Complete Guide to Software Testing}}, year = {1993}, } @book{myers2012art, author = {Myers, Glenford J. and Badgett, Tom and Thomas, Todd M. and Sandler, Corey}, doi = {10.5555/2161638}, edition = {2}, publisher = {Wiley}, title = {{The Art of Software Testing}}, year = {2012}, } @misc{spolsky2000bugs, author = {Spolsky, Joel}, howpublished = {\url{https://jttu.net/spolsky2000bugs}}, month = {11}, note = {[Online; accessed 07-02-2024]}, title = {{Painless Bug Tracking}}, year = {2000}, } @inproceedings{bettenburg2008makes, author = {Bettenburg, Nicolas and Just, Sascha and Schr{\"o}ter, Adrian and Weiss, Cathrin and Premraj, Rahul and Zimmermann, Thomas}, booktitle = {{Proceedings of the 16th International Symposium on Foundations of Software Engineering}}, doi = {10.1145/1453101.1453146}, pages = {308--318}, title = {{What Makes a Good Bug Report?}}, year = {2008}, } @misc{bugayenko2018blog0206, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/180206.html}}, month = {2}, note = {[Online; accessed 07-02-2024]}, title = {{More Bugs, Please}}, year = {2018}, } @misc{bugayenko2018blog0724, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/180724.html}}, month = {7}, note = {[Online; accessed 07-02-2024]}, title = {{Either Bugs or Pull Requests ... or You Are Out}}, year = {2018}, } @inproceedings{herzig2013s, author = {Herzig, Kim and Just, Sascha and Zeller, Andreas}, booktitle = {{Proceedings of the 35th International Conference on Software Engineering}}, doi = {10.1109/ICSE.2013.6606585}, organization = {IEEE}, pages = {392--401}, title = {{It's Not a Bug, It's a Feature: How Misclassification Impacts Bug Prediction}}, year = {2013}, } @misc{bugayenko2022blog0329, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/220329.html}}, month = {3}, note = {[Online; accessed 07-02-2024]}, title = {{Bugs Occam's Razor}}, year = {2022}, } @misc{bugayenko2015blog1222, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/151222.html}}, month = {12}, note = {[Online; accessed 07-02-2024]}, title = {{Why Don't You Contribute to Open Source?}}, year = {2015}, } @misc{bugayenko2020blog0729, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/200729.html}}, month = {7}, note = {[Online; accessed 07-02-2024]}, title = {{Open Source Etiquette}}, year = {2020}, } @misc{bugayenko2014blog1007, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/141007.html}}, month = {1}, note = {[Online; accessed 07-02-2024]}, title = {{Stop Chatting, Start Coding}}, year = {2014}, } @misc{bugayenko2016blog0823, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/160823.html}}, month = {8}, note = {[Online; accessed 07-02-2024]}, title = {{Eight Levels of Communication Maturity}}, year = {2016}, } @misc{reis2002overview, author = {Reis, Christian Robottom and de Mattos Fortes, Renata Pontin}, organization = {Open Source Software Development Workshop}, title = {{An Overview of the Software Engineering Process and Tools in the Mozilla Project}}, year = {2002}, } @inproceedings{anvik2006should, author = {Anvik, John and Hiew, Lyndon and Murphy, Gail C.}, booktitle = {{Proceedings of the 28th International Conference on Software Engineering}}, doi = {10.1145/1134285.1134336}, pages = {361--370}, title = {{Who Should Fix This Bug?}}, year = {2006}, } @inproceedings{dal2016makes, author = {Dal Sasso, Tommaso and Mocci, Andrea and Lanza, Michele}, booktitle = {{Proceedings of the International Conference on Software Quality, Reliability and Security (QRS)}}, doi = {10.1109/QRS.2016.28}, organization = {IEEE}, pages = {164--174}, title = {{What Makes a Satisficing Bug Report?}}, year = {2016}, } @misc{bugayenko2023blog0725, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/230725.html}}, month = {7}, note = {[Online; accessed 07-02-2024]}, title = {{A Disabled Test in Lieu of a Bug Report}}, year = {2023}, } @misc{bugayenko2014blog1124, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/141124.html}}, month = {11}, note = {[Online; accessed 07-02-2024]}, title = {{Five Principles of Bug Tracking}}, year = {2014}, } @misc{bugayenko2018blog0424, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/180424.html}}, month = {4}, note = {[Online; accessed 08-02-2024]}, title = {{The Right Way to Report a Bug}}, year = {2018}, } @inproceedings{sadowski2018modern, author = {Sadowski, Caitlin and S{\"o}derberg, Emma and Church, Luke and Sipko, Michal and Bacchelli, Alberto}, booktitle = {{Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice}}, doi = {10.1145/3183519.3183525}, pages = {181--190}, title = {{Modern Code Review: A Case Study at Google}}, year = {2018}, } @inproceedings{bosu2015characteristics, author = {Bosu, Amiangshu and Greiler, Michaela and Bird, Christian}, booktitle = {{Proceedings of the 12th Working Conference on Mining Software Repositories}}, doi = {10.1109/MSR.2015.21}, organization = {IEEE}, pages = {146--156}, title = {{Characteristics of Useful Code Reviews: An Empirical Study at Microsoft}}, year = {2015}, } @inproceedings{czerwonka2015code, author = {Czerwonka, Jacek and Greiler, Michaela and Tilford, Jack}, booktitle = {{Proceedings of the 37th International Conference on Software Engineering}}, doi = {10.1109/ICSE.2015.131}, organization = {IEEE}, pages = {27--28}, title = {{Code Reviews Do Not Find Bugs: How the Current Code Review Best Practice Slows Us Down}}, volume = {2}, year = {2015}, } @inproceedings{jiang2013will, author = {Jiang, Yujuan and Adams, Bram and German, Daniel M.}, booktitle = {{Proceedings of the 10th Working Conference on Mining Software Repositories (MSR)}}, doi = {10.1109/MSR.2013.6624016}, organization = {IEEE}, pages = {101--110}, title = {{Will My Patch Make It? And How Fast? Case Study on the Linux Kernel}}, year = {2013}, } @article{ackerman1989software, author = {Ackerman, A. Frank and Buchwald, Lynne S. and Lewski, Frank H.}, doi = {10.1109/52.28121}, journal = {{IEEE Software}}, number = {3}, pages = {31--36}, title = {{Software Inspections: An Effective Verification Process}}, volume = {6}, year = {1989}, } @article{fagan1976design, author = {Fagan, Michael}, doi = {10.1147/sj.382.0258}, journal = {{IBM Systems Journal}}, number = {3}, pages = {258--287}, title = {{Design and Code Inspections to Reduce Errors in Program Development}}, volume = {38}, year = {1999}, } @inproceedings{bacchelli2013expectations, author = {Bacchelli, Alberto and Bird, Christian}, booktitle = {{Proceedings of the 35th International Conference on Software Engineering}}, doi = {10.1109/ICSE.2013.6606617}, organization = {IEEE}, pages = {712--721}, title = {{Expectations, Outcomes, and Challenges of Modern Code Review}}, year = {2013}, } @inproceedings{sutherland2009can, author = {Sutherland, Andrew and Venolia, Gina}, booktitle = {{Proceedings of the 31st International Conference on Software Engineering: Companion Volume}}, doi = {10.1109/ICSE-COMPANION.2009.5070996}, organization = {IEEE}, pages = {259--262}, title = {{Can Peer Code Reviews Be Exploited for Later Information Needs?}}, year = {2009}, } @article{ortu2020you, author = {Ortu, Marco and Destefanis, Giuseppe and Graziotin, Daniel and Marchesi, Michele and Tonelli, Roberto}, doi = {10.1109/ACCESS.2020.3002663}, journal = {{IEEE Access}}, number = {1}, pages = {110897--110907}, title = {{How Do You Propose Your Code Changes? Empirical Analysis of Affect Metrics of Pull Requests on GitHub}}, volume = {8}, year = {2020}, } @misc{freira2018analyzing, author = {Freira, Mateus and Caetano, Josemar and Oliveira, Johnatan and Marques-Neto, Humberto}, organization = {International Conference on Software Engineering \& Knowledge Engineering}, title = {{Analyzing the Impact of Feedback in GitHub on the Software Developer's Mood}}, year = {2018}, } @article{iyer2019effects, author = {Iyer, Rahul N. and Yun, S. Alex and Nagappan, Meiyappan and Hoey, Jesse}, doi = {10.1109/TSE.2019.2960357}, journal = {{IEEE Transactions on Software Engineering}}, number = {11}, pages = {2632--2643}, title = {{Effects of Personality Traits on Pull Request Acceptance}}, volume = {47}, year = {2019}, } @inproceedings{ford2019beyond, author = {Ford, Denae and Behroozi, Mahnaz and Serebrenik, Alexander and Parnin, Chris}, booktitle = {{Proceedings of the 41st International Conference on Software Engineering: Software Engineering in Society}}, doi = {10.1109/ICSE-SEIS.2019.00014}, organization = {IEEE}, pages = {51--60}, title = {{Beyond the Code Itself: How Programmers \emph{Really} Look at Pull Requests}}, year = {2019}, } @inproceedings{liu2019automatic, author = {Liu, Zhongxin and Xia, Xin and Treude, Christoph and Lo, David and Li, Shanping}, booktitle = {{Proceedings of the 34th International Conference on Automated Software Engineering}}, doi = {10.1109/ase.2019.00026}, organization = {IEEE}, pages = {176--188}, title = {{Automatic Generation of Pull Request Descriptions}}, year = {2019}, } @misc{bugayenko2022blog0804, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/220804.html}}, month = {8}, note = {[Online; accessed 08-02-2024]}, title = {{The Code and Its Tests in Different Pull Requests}}, year = {2022}, } @misc{bugayenko2019blog1203, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/191203.html}}, month = {12}, note = {[Online; accessed 08-02-2024]}, title = {{Does Code Review Involve Testing?}}, year = {2019}, } @misc{bugayenko2015blog0209, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/150209.html}}, month = {2}, note = {[Online; accessed 08-02-2024]}, title = {{Four NOs of a Serious Code Reviewer}}, year = {2015}, } @misc{bugayenko2015blog0622, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/150622.html}}, month = {6}, note = {[Online; accessed 08-02-2024]}, title = {{A Few Valid Reasons to Reject a Bug Fix}}, year = {2015}, } @article{lenarduzzi2021does, author = {Lenarduzzi, Valentina and Nikkola, Vili and Saarim{\"a}ki, Nyyti and Taibi, Davide}, doi = {10.1016/j.jss.2020.110806}, journal = {{Journal of Systems and Software}}, number = {1}, title = {{Does Code Quality Affect Pull Request Acceptance? An Empirical Study}}, volume = {171}, year = {2021}, } @article{wessel2023github, author = {Wessel, Mairieli and Vargovich, Joseph and Gerosa, Marco A. and Treude, Christoph}, doi = {10.1007/s10664-023-10369-w}, journal = {{Empirical Software Engineering}}, number = {6}, pages = {131}, title = {{{\scshape GitHub Actions}: The Impact on the Pull Request Process}}, volume = {28}, year = {2023}, } @inproceedings{chidambaram2024rabbit, author = {Chidambaram, Natarajan and Mens, Tom and Decan, Alexandre}, booktitle = {{Proceedings of the 21st International Conference on Mining Software Repositories}}, doi = {10.1145/3643991.3644877}, organization = {ACM}, title = {{RABBIT: A Tool for Identifying Bot Accounts Based on Their Recent GitHub Event History}}, year = {2024}, } @inproceedings{rigby2013convergent, author = {Rigby, Peter C. and Bird, Christian}, booktitle = {{Proceedings of the 9th Joint Meeting on Foundations of Software Engineering}}, doi = {10.1145/2491411.2491444}, pages = {202--212}, title = {{Convergent Contemporary Software Peer Review Practices}}, year = {2013}, } @article{rigby2012contemporary, author = {Rigby, Peter and Cleary, Brendan and Painchaud, Frederic and Storey, Margaret-Anne and German, Daniel}, doi = {10.1109/MS.2012.24}, journal = {{IEEE Software}}, number = {6}, pages = {56--61}, title = {{Contemporary Peer Review in Action: Lessons From Open Source Development}}, volume = {29}, year = {2012}, } @inproceedings{yu2015wait, author = {Yu, Yue and Wang, Huaimin and Filkov, Vladimir and Devanbu, Premkumar and Vasilescu, Bogdan}, booktitle = {{Proceedings of the 12th Working Conference on Mining Software Repositories}}, doi = {10.1109/MSR.2015.42}, organization = {IEEE}, pages = {367--371}, title = {{Wait for It: Determinants of Pull Request Evaluation Latency on GitHub}}, year = {2015}, } @article{engelfriet2009choosing, author = {Engelfriet, Arnoud}, doi = {10.1109/MS.2010.5}, journal = {{IEEE Software}}, number = {1}, pages = {48--49}, title = {{Choosing an Open Source License}}, volume = {27}, year = {2009}, } @misc{stallman1985gnu, author = {Stallman, Richard}, title = {{The GNU Manifesto}}, year = {1985}, } @misc{github2015licenses, author = {Balter, Ben}, howpublished = {\url{https://jttu.net/github2015licenses}}, month = {3}, note = {[Online; accessed 20-03-2024]}, title = {{Open Source License Usage on {GitHub.com}}}, year = {2015}, } @misc{balter2014rules, author = {Balter, Ben}, howpublished = {\url{https://jttu.net/balter2014rules}}, month = {11}, note = {[Online; accessed 22-03-2024]}, title = {{15 Rules for Communicating at GitHub}}, year = {2014}, } @misc{lin2006open, author = {Lin, Yi-Hsuan and Ko, Tung-Mei and Chuang, Tyng-Ruey and Lin, Kwei-Jay and others}, organization = {Journal of Information Science and Engineering}, title = {{Open Source Licenses and the Creative Commons Framework: License Selection and Comparison}}, year = {2006}, } @misc{bugayenko2014blog0721, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/140721.html}}, month = {7}, note = {[Online; accessed 05-03-2024]}, title = {{Master Branch Must Be Read-Only}}, year = {2014}, } @misc{bugayenko2019blog0423, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/190423.html}}, month = {4}, note = {[Online; accessed 05-03-2024]}, title = {{Elegant READMEs}}, year = {2019}, } @article{prana2019categorizing, author = {Prana, Gede Artha Azriadi and Treude, Christoph and Thung, Ferdian and Atapattu, Thushari and Lo, David}, doi = {10.1007/s10664-018-9660-3}, journal = {{Empirical Software Engineering}}, number = {1}, pages = {1296--1327}, title = {{Categorizing the Content of GitHub README Files}}, volume = {24}, year = {2019}, } @inproceedings{tourani2017code, author = {Tourani, Parastou and Adams, Bram and Serebrenik, Alexander}, booktitle = {{Proceedings of the 24th International Conference on Software Analysis, Evolution and Reengineering (SANER)}}, doi = {10.1109/SANER.2017.7884606}, organization = {IEEE}, pages = {24--33}, title = {{Code of Conduct in Open Source Projects}}, year = {2017}, } @inproceedings{kinsman2021software, author = {Kinsman, Timothy and Wessel, Mairieli and Gerosa, Marco A. and Treude, Christoph}, booktitle = {{Proceedings of the 18th International Conference on Mining Software Repositories (MSR)}}, doi = {10.1109/MSR52588.2021.00054}, organization = {IEEE}, pages = {420--431}, title = {{How Do Software Developers Use GitHub Actions to Automate Their Workflows?}}, year = {2021}, } @inproceedings{decan2022use, author = {Decan, Alexandre and Mens, Tom and Mazrae, Pooya Rostami and Golzadeh, Mehdi}, booktitle = {{Proceedings of the International Conference on Software Maintenance and Evolution (ICSME)}}, doi = {10.1109/ICSME55016.2022.00029}, organization = {IEEE}, pages = {235--245}, title = {{On the Use of GitHub Actions in Software Development Repositories}}, year = {2022}, } @inproceedings{durieux2020empirical, author = {Durieux, Thomas and Le Goues, Claire and Hilton, Michael and Abreu, Rui}, booktitle = {{Proceedings of the 17th International Conference on Mining Software Repositories}}, doi = {10.1145/3379597.3387460}, pages = {254--264}, title = {{Empirical Study of Restarted and Flaky Builds on Travis CI}}, year = {2020}, } @misc{bugayenko2023blog0822, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/230822.html}}, month = {8}, note = {[Online; accessed 05-03-2024]}, title = {{Fast Tests Help Humans, Deep Tests Help Servers}}, year = {2023}, } @inproceedings{beller2017oops, author = {Beller, Moritz and Gousios, Georgios and Zaidman, Andy}, booktitle = {{Proceedings of the 14th International Conference on Mining Software Repositories (MSR)}}, doi = {10.1109/MSR.2017.62}, organization = {IEEE}, pages = {356--367}, title = {{Oops, My Tests Broke the Build: An Explorative Analysis of Travis CI With GitHub}}, year = {2017}, } @misc{batilo2022ways, author = {Batilo, Aaron}, howpublished = {\url{https://jttu.net/batilo2022ways}}, month = {11}, note = {[Online; accessed 03-04-2024]}, title = {{The 4 Ways to Run Your Unit Tests in CI With Dockerfiles}}, year = {2022}, } @inproceedings{saroar2023developers, author = {Saroar, Sk Golam and Nayebi, Maleknaz}, booktitle = {{Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering}}, doi = {10.1145/3593434.3593475}, pages = {121--130}, title = {{Developers' Perception of GitHub Actions: A Survey Analysis}}, year = {2023}, } @inproceedings{bouzenia2024resource, author = {Bouzenia, Islem and Pradel, Michael}, booktitle = {{Proceedings of the 46th International Conference on Software Engineering}}, doi = {10.1145/3597503.3623303}, pages = {1--12}, title = {{Resource Usage and Optimization Opportunities in Workflows of GitHub Actions}}, year = {2024}, } @inproceedings{weber2014makes, author = {Weber, Simon and Luo, Jiebo}, booktitle = {{Proceedings of the International Conference on Data Mining Workshop}}, doi = {10.1109/ICDMW.2014.55}, organization = {IEEE}, pages = {851--855}, title = {{What Makes an Open Source Code Popular on GitHub?}}, year = {2014}, } @article{ruhe2005art, author = {Ruhe, G{\"u}nther and Saliu, Moshood Omolade}, doi = {10.1109/MS.2005.164}, journal = {{IEEE Software}}, number = {6}, pages = {47--53}, title = {{The Art and Science of Software Release Planning}}, volume = {22}, year = {2005}, } @article{van1997software, author = {Van Der Hoek, Andre and Hall, Richard S. and Heimbigner, Dennis and Wolf, Alexander L.}, doi = {10.1145/267896.267909}, journal = {{ACM SIGSOFT Software Engineering Notes}}, number = {6}, pages = {159--175}, title = {{Software Release Management}}, volume = {22}, year = {1997}, } @article{okumoto1979optimum, author = {Okumoto, Kazu and Goel, Amrit L.}, doi = {10.1016/0164-1212(79)90033-5}, journal = {{Journal of Systems and Software}}, number = {1}, pages = {315--318}, title = {{Optimum Release Time for Software Systems Based on Reliability and Cost Criteria}}, volume = {1}, year = {1979}, } @article{yamada1985cost, author = {Yamada, Shigeru and Osaki, Shunji}, doi = {10.1109/TR.1985.5222222}, journal = {{IEEE Transactions on Reliability}}, number = {5}, pages = {422--424}, title = {{Cost-Reliability Optimal Release Policies for Software Systems}}, volume = {34}, year = {1985}, } @inproceedings{khomh2012faster, author = {Khomh, Foutse and Dhaliwal, Tejinder and Zou, Ying and Adams, Bram}, booktitle = {{Proceedings of the 9th Working Conference on Mining Software Repositories (MSR)}}, doi = {10.1109/MSR.2012.6224279}, organization = {IEEE}, pages = {179--188}, title = {{Do Faster Releases Improve Software Quality? An Empirical Case Study of Mozilla Firefox}}, year = {2012}, } @inproceedings{basili1996understanding, author = {Basili, Victor and Briand, Lionel and Condon, Steven and Kim, Yong-Mi and Melo, Walc{\'e}lio L. and Valen, Jon D.}, booktitle = {{Proceedings of the 18th International Conference on Software Engineering}}, doi = {10.1109/ICSE.1996.493441}, organization = {IEEE}, pages = {464--474}, title = {{Understanding and Predicting the Process of Software Maintenance Releases}}, year = {1996}, } @inproceedings{wu2022demystifying, author = {Wu, Jianyu and He, Hao and Xiao, Wenxin and Gao, Kai and Zhou, Minghui}, booktitle = {{Proceedings of the 30th International Conference on Program Comprehension}}, doi = {10.1145/3524610.3527919}, pages = {602--613}, title = {{Demystifying Software Release Note Issues on GitHub}}, year = {2022}, } @inproceedings{borges2016popularity, author = {Borges, Hudson and Hora, Andre and Valente, Marco Tulio}, booktitle = {{Proceedings of the International Conference on Software Maintenance and Evolution (ICSME)}}, doi = {10.1109/ICSME.2016.31}, pages = {334--344}, title = {{Understanding the Factors That Impact the Popularity of GitHub Repositories}}, year = {2016}, } @inproceedings{tsay2014influence, author = {Tsay, Jason and Dabbish, Laura and Herbsleb, James}, booktitle = {{Proceedings of the 36th International Conference on Software Engineering}}, doi = {10.1145/2568225.2568315}, pages = {356--366}, title = {{Influence of Social and Technical Factors for Evaluating Contribution in GitHub}}, year = {2014}, } @inproceedings{fang2020need, author = {Fang, Hongbo and Klug, Daniel and Lamba, Hemank and Herbsleb, James and Vasilescu, Bogdan}, booktitle = {{Proceedings of the 17th International Conference on Mining Software Repositories}}, doi = {10.1145/3379597.3387466}, pages = {322--326}, title = {{Need for Tweet: How Open Source Developers Talk About Their GitHub Work on Twitter}}, year = {2020}, } @article{imtiaz2022open, author = {Imtiaz, Nasif and Khanom, Aniqa and Williams, Laurie}, doi = {10.1109/TSE.2022.3181010}, journal = {{IEEE Transactions on Software Engineering}}, number = {4}, pages = {1540--1560}, title = {{Open or Sneaky? Fast or Slow? Light or Heavy? Investigating Security Releases of Open Source Packages}}, volume = {49}, year = {2022}, } @article{cheong2023ethical, author = {Cheong, Marc and Kula, Raula Gaikovina and Treude, Christoph}, doi = {10.1109/MS.2023.3344778}, journal = {{IEEE Software}}, number = {1}, pages = {67--75}, title = {{Ethical Considerations Towards Protestware}}, volume = {41}, year = {2023}, } @inproceedings{lam2020putting, author = {Lam, Patrick and Dietrich, Jens and Pearce, David J.}, booktitle = {{Proceedings of the SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software}}, doi = {10.1145/3426428.3426922}, pages = {157--179}, title = {{Putting the Semantics into Semantic Versioning}}, year = {2020}, } @book{nygard2007release, author = {Nygard, Michael}, doi = {10.5555/1200767}, publisher = {Pragmatic Bookshelf}, title = {{Release It!: Design and Deploy Production-Ready Software}}, year = {2007}, } @misc{stewart2002exploratory, author = {Stewart, Katherine and Ammeter, Tony}, title = {{An Exploratory Study of Factors Influencing the Level of Vitality and Popularity of Open Source Projects}}, year = {2002}, } @inproceedings{fang2022damn, author = {Fang, Hongbo and Lamba, Hemank and Herbsleb, James and Vasilescu, Bogdan}, booktitle = {{Proceedings of the 44th International Conference on Software Engineering}}, doi = {10.1145/3510003.3510121}, pages = {2116--2129}, title = {{``This Is Damn Slick!'' Estimating the Impact of Tweets on Open Source Project Popularity and New Contributors}}, year = {2022}, } @article{borges2019developers, author = {Borges, Hudson Silva and Valente, Marco Tulio}, doi = {0.1109/MC.2018.2888770}, journal = {{Computer}}, number = {8}, pages = {27--33}, title = {{How Do Developers Promote Open Source Projects?}}, volume = {52}, year = {2019}, } @inproceedings{trockman2018adding, author = {Trockman, Asher and Zhou, Shurui and K{\"a}stner, Christian and Vasilescu, Bogdan}, booktitle = {{Proceedings of the 40th International Conference on Software Engineering}}, doi = {10.1145/3180155.3180209}, pages = {511--522}, title = {{Adding Sparkle to Social Coding: An Empirical Study of Repository Badges in the \textit{npm} Ecosystem}}, year = {2018}, } @inproceedings{borges2016predicting, author = {Borges, Hudson and Hora, Andre and Valente, Marco Tulio}, booktitle = {{Proceedings of the 12th International Conference on Predictive Models and Data Analytics in Software Engineering}}, doi = {10.1145/2972958.2972966}, pages = {1--10}, title = {{Predicting the Popularity of GitHub Repositories}}, year = {2016}, } @inproceedings{fronchetti2019attracts, author = {Fronchetti, Felipe and Wiese, Igor and Pinto, Gustavo and Steinmacher, Igor}, booktitle = {{Proceedings of the 15th IFIP WG of the International Conference on Open Source Software}}, doi = {10.1007/978-3-030-20883-7_9}, organization = {Springer}, pages = {91--103}, title = {{What Attracts Newcomers to Onboard on OSS Projects? TL;DR: Popularity}}, year = {2019}, } @article{borges2018s, author = {Borges, Hudson and Valente, Marco Tulio}, doi = {10.1016/j.jss.2018.09.016}, journal = {{Journal of Systems and Software}}, number = {1}, pages = {112--129}, title = {{What's in a GitHub Star? Understanding Repository Starring Practices in a Social Coding Platform}}, volume = {146}, year = {2018}, } @article{wang2023study, author = {Wang, Tianlei and Wang, Shaowei and Chen, Tse-Hsun Peter}, doi = {10.1016/j.jss.2023.111806}, journal = {{Journal of Systems and Software}}, number = {1}, title = {{Study the Correlation Between the Readme File of GitHub Projects and Their Popularity}}, volume = {205}, year = {2023}, } @article{ardito2020tool, author = {Ardito, Luca and Coppola, Riccardo and Barbato, Luca and Verga, Diego}, doi = {10.1155/2020/8840389}, journal = {{Scientific Programming}}, number = {1}, pages = {8840389}, title = {{A Tool-Based Perspective on Software Code Maintainability Metrics: A Systematic Literature Review}}, volume = {2020}, year = {2020}, } @misc{rita2009pmp, author = {Mulcahy, Rita}, organization = {RMC Publications}, title = {{PMP Exam Prep}}, year = {2009}, } @misc{plato370, author = {Plato}, title = {{Phaedrus (Dialogue)}}, year = {{370 B.C.}}, } @misc{aristotle1897nicomachean, author = {Aristotle}, title = {{Nicomachean Ethics}}, year = {{III B.C.}}, } @book{arrow1972economic, author = {Arrow, Kenneth Joseph}, doi = {10.1007/978-1-349-15486-9_13}, publisher = {Springer}, title = {{Economic Welfare and the Allocation of Resources for Invention}}, year = {1972}, } @article{nelson1959simple, author = {Nelson, Richard R.}, doi = {10.1086/258177}, journal = {{Journal of Political Economy}}, number = {3}, pages = {297--306}, title = {{The Simple Economics of Basic Scientific Research}}, volume = {67}, year = {1959}, } @article{hall2002financing, author = {Hall, Bronwyn H.}, doi = {10.1093/oxrep/18.1.35}, journal = {{Oxford Review of Economic Policy}}, number = {1}, pages = {35--51}, title = {{The Financing of Research and Development}}, volume = {18}, year = {2002}, } @book{zobel2004writing, author = {Zobel, Justin}, doi = {10.5555/2742708}, publisher = {Springer}, title = {{Writing for Computer Science}}, year = {2004}, } @book{lamport1994latex, author = {Lamport, Leslie}, doi = {10.5555/63364}, edition = {2}, publisher = {Addison-Wesley}, title = {{LaTeX: A Document Preparation System}}, year = {1994}, } @misc{galiullin2024, author = {Galiulin, Rusland and Bugayenko, Yegor}, organization = {Not Published}, title = {{Exploring Blank Lines Inside Java Methods as Indicators of Increased Code Complexity}}, year = {2024}, } @article{tuckman1975article, author = {Tuckman, Howard P. and Leahey, Jack}, doi = {10.1086/260371}, journal = {{Journal of Political Economy}}, number = {5}, pages = {951--967}, title = {{What Is an Article Worth?}}, volume = {83}, year = {1975}, } @article{diamond1986citation, author = {Diamond, Arthur M.}, doi = {10.2307/145797}, journal = {{The Journal of Human Resources}}, number = {2}, pages = {200--215}, title = {{What Is a Citation Worth?}}, volume = {21}, year = {1986}, } @article{faria2021marginal, author = {Faria, Jo{\~a}o Ricardo and Mixon Jr, Franklin G.}, doi = {10.1007/s11192-021-04073-z}, journal = {{Scientometrics}}, number = {9}, pages = {8217--8226}, title = {{The Marginal Impact of a Publication on Citations, and Its Effect on Academic Pay}}, volume = {126}, year = {2021}, } @misc{bugayenko2020blog0219, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/200219.html}}, month = {2}, note = {[Online; accessed 26-10-2024]}, title = {{Fat vs. Skinny Design}}, year = {2020}, } @book{kruchten2004rational, author = {Kruchten, Philippe}, doi = {10.5555/518604}, publisher = {Addison-Wesley}, title = {{The Rational Unified Process: An Introduction}}, year = {2004}, } @misc{shuja2007ibm, author = {Shuja, Ahmad K. and Krebs, Jochen}, organization = {Pearson Education}, title = {{IBM Rational Unified Process (RUP) Reference and Certification Guide: Solution Designer}}, year = {2007}, } @article{alexandrov2021validating, author = {Alexandrov, Dmitry and Ismoilov, Maqsudjon and Kozlov, Artem and Savachenko, Anton and Zykov, Sergey}, doi = {10.1016/j.procs.2021.09.265}, journal = {{Procedia Computer Science}}, number = {1}, pages = {4865--4876}, title = {{Validating New Method for Measuring Cohesion in Object-Oriented Projects}}, volume = {192}, year = {2021}, } @article{harrison1998evaluation, author = {Harrison, Rachel and Counsell, Steve J. and Nithi, Reuben V.}, doi = {10.1109/32.689404}, journal = {{IEEE Transactions on Software Engineering}}, number = {6}, pages = {491--496}, title = {{An Evaluation of the MOOD Set of Object-Oriented Software Metrics}}, volume = {24}, year = {1998}, } @inproceedings{casazza2001identifying, author = {Casazza, Gerardo and Antoniol, Giuliano and Villano, Umberto and Merlo, Ettore and Di Penta, Massimiliano}, booktitle = {{Proceedings of the 1st International Workshop on Source Code Analysis and Manipulation}}, doi = {10.1109/SCAM.2001.972670}, organization = {IEEE}, pages = {90--97}, title = {{Identifying Clones in the Linux Kernel}}, year = {2001}, } @inproceedings{zhang2024assessing, author = {Zhang, Zixian and Saber, Takfarinas}, booktitle = {{Proceedings of the 4th International Conference on Code Quality (ICCQ)}}, doi = {10.1109/ICCQ60895.2024.10576803}, organization = {IEEE}, pages = {75--83}, title = {{Assessing the Code Clone Detection Capability of Large Language Models}}, year = {2024}, } @book{beck2000extreme, author = {Beck, Kent}, doi = {10.5555/318762}, publisher = {Addison-Wesley}, title = {{Extreme Programming Explained: Embrace Change}}, year = {2000}, } @inproceedings{bugayenko2021volatility, author = {Bugayenko, Yegor}, booktitle = {{Proceedings of the 1st SIGPLAN International Workshop on Beyond Code: No Code}}, doi = {10.1145/3486949.3486961}, pages = {1--4}, title = {{Volatility Metric to Detect Anomalies in Source Code Repositories}}, year = {2021}, } @inproceedings{jaspan2018advantages, author = {Jaspan, Ciera and Jorde, Matthew and Knight, Andrea and Sadowski, Caitlin and Smith, Edward K. and Winter, Collin and Murphy-Hill, Emerson}, booktitle = {{Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice}}, doi = {10.1145/3183519.3183550}, pages = {225--234}, title = {{Advantages and Disadvantages of a Monolithic Repository: A Case Study at Google}}, year = {2018}, } @misc{bugayenko2018blog0905, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/180905.html}}, month = {9}, note = {[Online; accessed 15-12-2024]}, title = {{Monolithic Repos Are Evil}}, year = {2018}, } @misc{kruglov2018yandex, author = {Kruglov, Alexey}, howpublished = {\url{https://jttu.net/kruglov2018yandex}}, month = {11}, note = {[Online; accessed 15-12-2024]}, title = {{Continuous Integration in Yandex}}, year = {2018}, } @inproceedings{caivano2021exploratory, author = {Caivano, Danilo and Cassieri, Pietro and Romano, Simone and Scanniello, Giuseppe}, booktitle = {{Proceedings of the 15th International Symposium on Empirical Software Engineering and Measurement (ESEM)}}, doi = {10.1145/3475716.3475773}, pages = {1--11}, title = {{An Exploratory Study on Dead Methods in Open-Source Java Desktop Applications}}, year = {2021}, } @article{malavolta2023javascript, author = {Malavolta, Ivano and Nirghin, Kishan and Scoccia, Gian Luca and Romano, Simone and Lombardi, Salvatore and Scanniello, Giuseppe and Lago, Patricia}, doi = {10.1109/TSE.2023.3267848}, journal = {{IEEE Transactions on Software Engineering}}, number = {7}, pages = {3692--3714}, title = {{JavaScript Dead Code Identification, Elimination, and Empirical Assessment}}, volume = {49}, year = {2023}, } @inproceedings{romano2016graph, author = {Romano, Simone and Scanniello, Giuseppe and Sartiani, Carlo and Risi, Michele}, booktitle = {{Proceedings of the 31st Annual Symposium on Applied Computing}}, doi = {10.1145/2851613.2851968}, pages = {1538--1541}, title = {{A Graph-Based Approach to Detect Unreachable Methods in Java Software}}, year = {2016}, } @inproceedings{shackleton2023dead, author = {Shackleton, Will and Cohn-Gordon, Katriel and Rigby, Peter C. and Abreu, Rui and Gill, James and Nagappan, Nachiappan and Nakad, Karim and Papagiannis, Ioannis and Petre, Luke and Megreli, Giorgi and others}, booktitle = {{Proceedings of the 31st Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering}}, doi = {10.1145/3611643.3613871}, pages = {1705--1715}, title = {{Dead Code Removal at Meta: Automatically Deleting Millions of Lines of Code and Petabytes of Deprecated Data}}, year = {2023}, } @inproceedings{romano2024folklore, author = {Romano, Simone and Toriello, Giovanni and Cassieri, Pietro and Francese, Rita and Scanniello, Giuseppe}, booktitle = {{Proceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering}}, doi = {10.1145/3661167.3661188}, pages = {333--338}, title = {{A Folklore Confirmation on the Removal of Dead Code}}, year = {2024}, } @misc{bugayenko2014blog1114, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/141114.html}}, month = {11}, note = {[Online; accessed 15-12-2024]}, title = {{Hits-of-Code Instead of SLoC}}, year = {2014}, } @article{hall2000software, author = {Hall, Gregory A. and Munson, John C.}, doi = {10.1016/S0164-1212(00)00031-5}, journal = {{Journal of Systems and Software}}, number = {2}, pages = {111--118}, title = {{Software Evolution: Code Delta and Code Churn}}, volume = {54}, year = {2000}, } @article{ajila2007experimental, author = {Ajila, Samuel A. and Dumitrescu, Razvan T.}, doi = {10.1016/j.jss.2006.05.034}, journal = {{Journal of Systems and Software}}, number = {1}, pages = {74--91}, title = {{Experimental Use of Code Delta, Code Churn, and Rate of Change to Understand Software Product Line Evolution}}, volume = {80}, year = {2007}, } @inproceedings{gousios2014exploratory, author = {Gousios, Georgios and Pinzger, Martin and Deursen, Arie van}, booktitle = {{Proceedings of the 36th International Conference on Software Engineering}}, doi = {10.1145/2568225.2568260}, pages = {345--355}, title = {{An Exploratory Study of the Pull-Based Software Development Model}}, year = {2014}, } @book{beck2002test, author = {Beck, Kent}, doi = {10.5555/579193}, publisher = {Addison-Wesley}, title = {{Test Driven Development: By Example}}, year = {2002}, } @inproceedings{pradel2012fully, author = {Pradel, Michael and Gross, Thomas R.}, booktitle = {{Proceedings of the 33rd SIGPLAN Conference on Programming Language Design and Implementation}}, doi = {10.1145/2254064.2254126}, pages = {521--530}, title = {{Fully Automatic and Precise Detection of Thread Safety Violations}}, year = {2012}, } @book{fletcher2017spock, author = {Fletcher, Rob}, doi = {10.5555/2836829}, publisher = {O'Reilly Media}, title = {{Spock: Up and Running: Writing Expressive Tests in Java and Groovy}}, year = {2017}, } @misc{garcia2017mastering, author = {Garcia, Boni}, organization = {Packt Publishing Ltd.}, title = {{Mastering Software Testing With JUnit 5: Comprehensive Guide to Develop High Quality Java Applications}}, year = {2017}, } @book{osherove2022art, author = {Osherove, Roy and Khorikov, Vladimir}, doi = {10.5555/1717314}, edition = {3}, publisher = {Manning Publications}, title = {{The Art of Unit Testing: With Examples in JavaScript}}, year = {2022}, } @misc{mackinnon2001endo, author = {Mackinnon, Tim and Freeman, Steve and Craig, Philip}, doi = {10.5555/377517.377534}, organization = {Extreme Programming Examined}, title = {{Endo-Testing: Unit Testing With Mock Objects}}, year = {2001}, } @misc{bugayenko2014blog0923, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/140923.html}}, month = {9}, note = {[Online; accessed 15-12-2024]}, title = {{Built-in Fake Objects}}, year = {2014}, } @book{whittaker2012google, author = {Whittaker, James A. and Arbon, Jason and Carollo, Jeff}, doi = {10.1145/1852666.1852675}, publisher = {Addison-Wesley}, title = {{How Google Tests Software}}, year = {2012}, } @inproceedings{spadini2017mock, author = {Spadini, Davide and Aniche, Maur{\'\i}cio and Bruntink, Magiel and Bacchelli, Alberto}, booktitle = {{Proceedings of the 14th International Conference on Mining Software Repositories (MSR)}}, doi = {10.1109/MSR.2017.61}, organization = {IEEE}, pages = {402--412}, title = {{To Mock or Not to Mock? An Empirical Study on Mocking Practices}}, year = {2017}, } @book{kaczanowski2013practical, author = {Kaczanowski, Tomek}, doi = {10.5555/2530313}, publisher = {LeanPub}, title = {{Practical Unit Testing With JUnit and Mockito}}, year = {2013}, } @misc{astels2004one, author = {Astels, Dave}, howpublished = {\url{https://jttu.net/astels2004one}}, month = {2}, note = {[Online; accessed 01-01-2025]}, title = {{One Assertion Per Test}}, year = {2004}, } @inproceedings{daka2014survey, author = {Daka, Ermira and Fraser, Gordon}, booktitle = {{Proceedings of the 25th International Symposium on Software Reliability Engineering}}, doi = {10.1109/ISSRE.2014.11}, organization = {IEEE}, pages = {201--211}, title = {{A Survey on Unit Testing Practices and Problems}}, year = {2014}, } @misc{bugayenko2010blog0304, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/100304.html}}, month = {3}, note = {[Online; accessed 15-12-2024]}, title = {{Puzzle Driven Development}}, year = {2010}, } @inproceedings{bhat2006evaluating, author = {Bhat, Thirumalesh and Nagappan, Nachiappan}, booktitle = {{Proceedings of the International Symposium on Empirical Software Engineering}}, doi = {10.1145/1159733.1159787}, pages = {356--363}, title = {{Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies}}, year = {2006}, } @inproceedings{beller2015and, author = {Beller, Moritz and Gousios, Georgios and Panichella, Annibale and Zaidman, Andy}, booktitle = {{Proceedings of the 10th Joint Meeting on Foundations of Software Engineering}}, doi = {10.1145/2786805.2786843}, pages = {179--190}, title = {{When, How, and Why Developers (Do Not) Test in Their IDEs}}, year = {2015}, } @inproceedings{borle2018analyzing, author = {Borle, Neil C. and Feghhi, Meysam and Stroulia, Eleni and Greiner, Russell and Hindle, Abram}, booktitle = {{Proceedings of the 40th International Conference on Software Engineering}}, doi = {10.1145/3180155.3182535}, pages = {1062}, title = {{Analyzing the Effects of Test Driven Development in GitHub}}, year = {2018}, } @misc{khorikov2019unit, author = {Khorikov, Vladimir}, organization = {Manning Publications}, title = {{Unit Testing Principles, Practices, and Patterns}}, year = {2019}, } @book{meszaros2007xunit, author = {Meszaros, Gerard}, doi = {10.5555/1076526}, publisher = {Pearson Education}, title = {{{xUnit} Test Patterns: Refactoring Test Code}}, year = {2007}, } @misc{langr2024, author = {Langr, Jeff}, organization = {Pragmatic Bookshelf}, title = {{Pragmatic Unit Testing in Java With JUnit, 3rd Edition}}, year = {2024}, } @article{miller1990empirical, author = {Miller, Barton P. and Fredriksen, Lars and So, Bryan}, doi = {10.1145/96267.96279}, journal = {{Communications of the ACM}}, number = {12}, pages = {32--44}, title = {{An Empirical Study of the Reliability of UNIX Utilities}}, volume = {33}, year = {1990}, } @article{fioraldi2023dissecting, author = {Fioraldi, Andrea and Mantovani, Alessandro and Maier, Dominik and Balzarotti, Davide}, doi = {10.1145/3580596}, journal = {{ACM Transactions on Software Engineering and Methodology}}, number = {2}, pages = {1--26}, title = {{Dissecting American Fuzzy Lop: A FuzzBench Evaluation}}, volume = {32}, year = {2023}, } @inproceedings{ding2021empirical, author = {Ding, Zhen Yu and Le Goues, Claire}, booktitle = {{Proceedings of the 18th International Conference on Mining Software Repositories (MSR)}}, doi = {10.1109/MSR52588.2021.00026}, pages = {131--142}, title = {{An Empirical Study of OSS-Fuzz Bugs}}, year = {2021}, } @inproceedings{klees2018evaluating, author = {Klees, George and Ruef, Andrew and Cooper, Benji and Wei, Shiyi and Hicks, Michael}, booktitle = {{Proceedings of the SIGSAC Conference on Computer and Communications Security}}, doi = {10.1145/3243734.3243804}, pages = {2123--2138}, title = {{Evaluating Fuzz Testing}}, year = {2018}, } @article{fink1997property, author = {Fink, George and Bishop, Matt}, doi = {10.1145/263244.263267}, journal = {{SIGSOFT Software Engineering Notes}}, number = {4}, pages = {74--80}, title = {{Property-Based Testing: A New Approach to Testing for Assurance}}, volume = {22}, year = {1997}, } @inproceedings{padhye2019jqf, author = {Padhye, Rohan and Lemieux, Caroline and Sen, Koushik}, booktitle = {{Proceedings of the 28th SIGSOFT International Symposium on Software Testing and Analysis}}, doi = {10.1145/3293882.3339002}, pages = {398--401}, title = {{JQF: Coverage-Guided Property-Based Testing in Java}}, year = {2019}, } @misc{koskela2013effective, author = {Koskela, Lasse}, organization = {Manning Publications}, title = {{Effective Unit Testing: A Guide for Java Developers}}, year = {2013}, } @misc{north2006bdd, author = {North, Dan}, organization = {StickyMinds}, title = {{Behavior Modification: The Evolution of Behavior-Driven Development}}, year = {2006}, } @misc{rainsberger2004junit, author = {Rainsberger, Joe B. and Stirling, Scott}, organization = {Manning Publications}, title = {{JUnit Recipes: Practical Methods for Programmer Testing}}, year = {2004}, } @misc{stephens2016driller, author = {Stephens, Nick and Grosen, John and Salls, Christopher and Dutcher, Andrew and Wang, Ruoyu and Corbetta, Jacopo and Shoshitaishvili, Yan and Kruegel, Christopher and Vigna, Giovanni}, organization = {NDSS}, title = {{Driller: Augmenting Fuzzing Through Selective Symbolic Execution}}, year = {2016}, } @article{zhu2022fuzzing, author = {Zhu, Xiaogang and Wen, Sheng and Camtepe, Seyit and Xiang, Yang}, doi = {10.1145/3512345}, journal = {{ACM Computing Surveys}}, number = {11}, pages = {1--36}, title = {{Fuzzing: A Survey for Roadmap}}, volume = {54}, year = {2022}, } @article{mallissery2023demystify, author = {Mallissery, Sanoop and Wu, Yu-Sung}, doi = {10.1145/3623375}, journal = {{ACM Computing Surveys}}, number = {3}, pages = {1--38}, title = {{Demystify the Fuzzing Methods: A Comprehensive Survey}}, volume = {56}, year = {2023}, } @article{godefroid2020fuzzing, author = {Godefroid, Patrice}, doi = {10.1145/3363824}, journal = {{Communications of the ACM}}, number = {2}, pages = {70--76}, title = {{Fuzzing: Hack, Art, and Science}}, volume = {63}, year = {2020}, } @misc{fuzzingbook2024, author = {Zeller, Andreas and Gopinath, Rahul and B{\"o}hme, Marcel and Fraser, Gordon and Holler, Christian}, howpublished = {\url{https://www.fuzzingbook.org/}}, note = {[Online; accessed 08-01-2025]}, organization = {CISPA Helmholtz Center for Information Security}, title = {{The Fuzzing Book}}, year = {2024}, } @book{loeliger2012version, author = {Loeliger, Jon and McCullough, Matthew}, doi = {10.5555/2371221}, publisher = {O'Reilly Media}, title = {{Version Control With Git: Powerful Tools and Techniques for Collaborative Software Development}}, year = {2012}, } @misc{beck2018tcr, author = {Beck, Kent}, howpublished = {\url{https://jttu.net/beck2018tcr}}, note = {[Online; accessed 08-01-2025]}, organization = {Medium}, title = {{Test} \&\& {commit} \textbar\textbar{} {revert}}, year = {2018}, } @book{astels2003test, author = {Astels, Dave}, doi = {10.5555/864016}, publisher = {Prentice Hall}, title = {{Test Driven Development: A Practical Guide}}, year = {2003}, } @article{mernik2005and, author = {Mernik, Marjan and Heering, Jan and Sloane, Anthony M.}, doi = {10.1145/1118890.1118892}, journal = {{ACM Computing Surveys}}, number = {4}, pages = {316--344}, title = {{When and How to Develop Domain-Specific Languages}}, volume = {37}, year = {2005}, } @book{fowler2010domain, author = {Fowler, Martin}, doi = {10.5555/1809745}, publisher = {Pearson Education}, title = {{Domain-Specific Languages}}, year = {2010}, } @article{zhang2022pull, author = {Zhang, Xunhui and Yu, Yue and Gousios, Georgios and Rastogi, Ayushi}, doi = {10.1109/TSE.2022.3165056}, journal = {{IEEE Transactions on Software Engineering}}, number = {2}, pages = {849--871}, title = {{Pull Request Decisions Explained: An Empirical Overview}}, volume = {49}, year = {2022}, } @article{khatoonabadi2023wasted, author = {Khatoonabadi, SayedHassan and Costa, Diego Elias and Abdalkareem, Rabe and Shihab, Emad}, doi = {10.1145/3530785}, journal = {{ACM Transactions on Software Engineering and Methodology}}, number = {1}, pages = {1--39}, title = {{On Wasted Contributions: Understanding the Dynamics of Contributor-Abandoned Pull Requests --- A Mixed-Methods Study of 10 Large Open-Source Projects}}, volume = {32}, year = {2023}, } @article{king1976symbolic, author = {King, James C.}, doi = {10.1145/360248.360252}, journal = {{Communications of the ACM}}, number = {7}, pages = {385--394}, title = {{Symbolic Execution and Program Testing}}, volume = {19}, year = {1976}, } @article{meudec2001atgen, author = {Meudec, Christophe}, doi = {10.1002/stvr.225}, journal = {{Software Testing, Verification and Reliability}}, number = {2}, pages = {81--96}, title = {{ATGen: Automatic Test Data Generation Using Constraint Logic Programming and Symbolic Execution}}, volume = {11}, year = {2001}, } @inproceedings{godefroid2007compositional, author = {Godefroid, Patrice}, booktitle = {{Proceedings of the 34th Annual SIGPLAN-SIGACT Symposium on Principles of Programming Languages}}, doi = {10.1145/1190216.1190226}, pages = {47--54}, title = {{Compositional Dynamic Test Generation}}, year = {2007}, } @article{fontes2023integration, author = {Fontes, Afonso and Gay, Gregory}, doi = {10.1002/stvr.1845}, journal = {{Software Testing, Verification and Reliability}}, number = {4}, title = {{The Integration of Machine Learning into Automated Test Generation: A Systematic Mapping Study}}, volume = {33}, year = {2023}, } @incollection{candea2019automated, author = {Candea, George and Godefroid, Patrice}, booktitle = {{Proceedings of the Computing and Software Science: State of the Art and Perspectives}}, doi = {10.1007/978-3-319-91908-9_24}, editor = {Steffen, Bernhard and Woeginger, Gerhard}, pages = {505--531}, publisher = {Springer}, title = {{Automated Software Test Generation: Some Challenges, Solutions, and Recent Advances}}, year = {2019}, } @misc{myeong2021googletest, author = {Myeong, Hyuk}, organization = {Amazon}, title = {{Googletest in Practice: Unit Testing Guide for C++ Programmers}}, year = {2021}, } @misc{hamill2004unit, author = {Hamill, Paul}, organization = {O'Reilly Media}, title = {{Unit Test Frameworks: Tools for High-Quality Software Development}}, year = {2004}, } @inproceedings{xie2004rostra, author = {Xie, Tao and Notkin, D. and Marinov, D.}, booktitle = {{Proceedings of the 19th International Conference on Automated Software Engineering}}, doi = {10.1109/ASE.2004.1342737}, pages = {196--205}, title = {{Rostra: A Framework for Detecting Redundant Object-Oriented Unit Tests}}, year = {2004}, } @article{koochakzadeh2010tester, author = {Koochakzadeh, Negar and Garousi, Vahid}, doi = {10.1155/2010/932686}, journal = {{Advances in Software Engineering}}, number = {1}, title = {{A Tester-Assisted Methodology for Test Redundancy Detection}}, volume = {2010}, year = {2010}, } @inproceedings{chang2022putting, author = {Chang, Zhiyuan and Li, Mingyang and Wang, Junjie and Wang, Qing and Li, Shoubin}, booktitle = {{Proceedings of the 30th Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering}}, doi = {10.1145/3540250.3549089}, pages = {1161--1172}, title = {{Putting Them Under Microscope: A Fine-Grained Approach for Detecting Redundant Test Cases in Natural Language}}, year = {2022}, } @misc{rahman2024comprehensive, author = {Rahman, Mizanur and Zamli, Kamal Z. and Kader, Md Abdul and Sidek, Roslina Mohd and Din, Fakhrud}, organization = {Journal of Advanced Research in Applied Sciences and Engineering Technology}, title = {{Comprehensive Review on the State-of-the-Arts and Solutions to the Test Redundancy Reduction Problem With Taxonomy}}, year = {2024}, } @incollection{papadakis2019mutation, author = {Papadakis, Mike and Kintis, Marinos and Zhang, Jie and Jia, Yue and Le Traon, Yves and Harman, Mark}, booktitle = {{Proceedings of the Advances in Computers}}, doi = {10.1016/bs.adcom.2018.03.015}, editor = {Memon, Atif M.}, pages = {275--378}, publisher = {Elsevier}, title = {{Mutation Testing Advances: An Analysis and Survey}}, volume = {112}, year = {2019}, } @inproceedings{just2014mutants, author = {Just, Ren{\'e} and Jalali, Darioush and Inozemtseva, Laura and Ernst, Michael D. and Holmes, Reid and Fraser, Gordon}, booktitle = {{Proceedings of the 22nd SIGSOFT International Symposium on Foundations of Software Engineering}}, doi = {10.1145/2635868.2635929}, pages = {654--665}, title = {{Are Mutants a Valid Substitute for Real Faults in Software Testing?}}, year = {2014}, } @inproceedings{lee2023fuzzing, author = {Lee, Jaekwon and Vigan{\`o}, Enrico and Cornejo, Oscar and Pastore, Fabrizio and Briand, Lionel}, booktitle = {{Proceedings of the 38th International Conference on Automated Software Engineering (ASE)}}, doi = {10.1109/ASE56229.2023.00079}, organization = {IEEE}, pages = {1377--1389}, title = {{Fuzzing for CPS Mutation Testing}}, year = {2023}, } @article{petrovic2021practical, author = {Petrovi{\'c}, Goran and Ivankovi{\'c}, Marko and Fraser, Gordon and Just, Ren{\'e}}, doi = {10.1109/TSE.2021.3107634}, journal = {{IEEE Transactions on Software Engineering}}, number = {10}, pages = {3900--3912}, title = {{Practical Mutation Testing at Scale: A View From Google}}, volume = {48}, year = {2021}, } @inproceedings{petrovic2018state, author = {Petrovi{\'c}, Goran and Ivankovi{\'c}, Marko}, booktitle = {{Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice}}, doi = {10.1145/3183519.3183521}, pages = {163--171}, title = {{State of Mutation Testing at Google}}, year = {2018}, } @article{smith2020chasing, author = {Smith, Adam Leon}, doi = {10.1007/978-3-030-29509-7_12}, journal = {{The Future of Software Quality Assurance}}, number = {1}, pages = {147--159}, title = {{Chasing Mutants}}, volume = {1}, year = {2020}, } @article{andrews2006using, author = {Andrews, James H. and Briand, Lionel C. and Labiche, Yvan and Namin, Akbar Siami}, doi = {10.1109/TSE.2006.83}, journal = {{IEEE Transactions on Software Engineering}}, number = {8}, pages = {608--624}, title = {{Using Mutation Analysis for Assessing and Comparing Testing Coverage Criteria}}, volume = {32}, year = {2006}, } @article{pizzoleto2019systematic, author = {Pizzoleto, Alessandro Viola and Ferrari, Fabiano Cutigi and Offutt, Jeff and Fernandes, Leo and Ribeiro, M{\'a}rcio}, doi = {10.1016/j.jss.2019.07.100}, journal = {{Journal of Systems and Software}}, number = {1}, pages = {110388}, title = {{A Systematic Literature Review of Techniques and Metrics to Reduce the Cost of Mutation Testing}}, volume = {157}, year = {2019}, } @misc{seemann2021code, author = {Seemann, Mark}, organization = {Addison-Wesley}, title = {{Code That Fits in Your Head: Heuristics for Software Engineering}}, year = {2021}, } @misc{bugayenko2018blame, author = {Bugayenko, Yegor}, howpublished = {\url{https://jttu.net/bugayenko2018blame}}, note = {[Online; accessed 14-01-2025]}, organization = {Blog@CACM}, title = {{Blame-Free Quality Control}}, year = {2018}, } @inproceedings{alblwi2024mutation, author = {Alblwi, Samia and Ayad, Amani and Mili, Ali}, booktitle = {{Proceedings of the 5th International Conference on Automation of Software Test}}, doi = {10.1145/3644032.3644442}, pages = {1--11}, title = {{Mutation Coverage Is Not Strongly Correlated With Mutation Coverage}}, year = {2024}, } @inproceedings{tengeri2016relating, author = {Tengeri, D{\'a}vid and Vid{\'a}cs, L{\'a}szl{\'o} and Besz{\'e}des, {\'A}rp{\'a}d and J{\'a}sz, Judit and Balogh, Gergo and Vancsics, B{\'e}la and Gyim{\'o}thy, Tibor}, booktitle = {{Proceedings of the 9th International Conference on Software Testing, Verification and Validation Workshops}}, doi = {10.1109/ICSTW.2016.25}, organization = {IEEE}, pages = {174--179}, title = {{Relating Code Coverage, Mutation Score and Test Suite Reducibility to Defect Density}}, year = {2016}, } @article{nadeem2022human, author = {Nadeem, Ayman}, doi = {10.1145/3486597}, journal = {{Communications of the ACM}}, number = {3}, pages = {38--45}, title = {{Human-Centered Approach to Static-Analysis-Driven Developer Tools}}, volume = {65}, year = {2022}, } @inproceedings{claessen2000quickcheck, author = {Claessen, Koen and Hughes, John}, booktitle = {{Proceedings of the 5th SIGPLAN International Conference on Functional Programming}}, doi = {10.1145/351240.351266}, pages = {268--279}, title = {{QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs}}, year = {2000}, } @incollection{hughes2016experiences, author = {Hughes, John}, booktitle = {{Proceedings of the a List of Successes That Can Change the World: Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday}}, doi = {10.1007/978-3-319-30936-1_9}, editor = {Lindley, Sam and McBride, Conor and Trinder, Phil and Sannella, Don}, pages = {169--186}, publisher = {Springer}, title = {{Experiences With QuickCheck: Testing the Hard Stuff and Staying Sane}}, year = {2016}, } @article{chen2018metamorphic, author = {Chen, Tsong Yueh and Kuo, Fei-Ching and Liu, Huai and Poon, Pak-Lok and Towey, Dave and Tse, TH and Zhou, Zhi Quan}, doi = {10.1145/3143561}, journal = {{ACM Computing Surveys}}, number = {1}, pages = {1--27}, title = {{Metamorphic Testing: A Review of Challenges and Opportunities}}, volume = {51}, year = {2018}, } @article{chen2010adaptive, author = {Chen, Tsong Yueh and Kuo, Fei-Ching and Merkel, Robert G. and Tse, T. H.}, doi = {10.1016/j.jss.2009.02.022}, journal = {{Journal of Systems and Software}}, number = {1}, pages = {60--66}, title = {{Adaptive Random Testing: The Art of Test Case Diversity}}, volume = {83}, year = {2010}, } @misc{martin2017clean, author = {Martin, Robert C.}, doi = {10.5555/3175742}, organization = {Prentice Hall}, title = {{Clean Architecture}}, year = {2017}, } @misc{fitzpatrick1996software, author = {Fitzpatrick, Ronan}, organization = {Technological University Dublin}, title = {{Software Quality: Definitions and Strategic Issues}}, year = {1996}, } @misc{prothero2006usability, author = {Prothero, J.}, organization = {White Paper From JackBe Corporation}, title = {{Usability Best Practices}}, year = {2006}, } @article{tenny1988program, author = {Tenny, Ted}, doi = {10.1109/32.6171}, journal = {{IEEE Transactions on Software Engineering}}, number = {9}, pages = {1271--1279}, title = {{Program Readability: Procedures versus Comments}}, volume = {14}, year = {1988}, } @inproceedings{cunha2006reusable, author = {Cunha, Carlos A. and Sobral, Joao L. and Monteiro, Miguel P.}, booktitle = {{Proceedings of the 5th International Conference on Aspect-Oriented Software Development}}, doi = {10.1145/1119655.1119674}, pages = {134--145}, title = {{Reusable Aspect-Oriented Implementations of Concurrency Patterns and Mechanisms}}, year = {2006}, } @inproceedings{walchshofer2024introducing, author = {Walchshofer, Andrea and Fischer, Stefan and W{\"o}{\ss}, Albrecht and Duque-Torres, Alejandra and L{\"o}berbauer, Markus and Koll, Georg}, booktitle = {{Proceedings of the International Conference on Software Analysis, Evolution and Reengineering-Companion}}, doi = {10.1109/SANER-C62648.2024.00032}, organization = {IEEE}, pages = {191--198}, title = {{Introducing a Linter in an Industrial Lua Code Base}}, year = {2024}, } @inproceedings{herivcko2023relationship, author = {Heri{\v{c}}ko, Tja{\v{s}}a and {\v{S}}umak, Bo{\v{s}}tjan}, booktitle = {{Proceedings of the 6th International Conference on Software Engineering and Information Management}}, doi = {10.1145/3584871.3584884}, pages = {86--91}, title = {{On the Relationship Between Linter Warning Density and Software Maintainability: An Empirical Study of JavaScript Projects}}, year = {2023}, } @book{rosen2005open, author = {Rosen, Lawrence}, doi = {10.5555/1014911}, publisher = {Prentice Hall}, title = {{Open Source Licensing: Software Freedom and Intellectual Property Law}}, year = {2005}, } @misc{bugayenko2014blog0412, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/140412.html}}, month = {4}, note = {[Online; accessed 15-12-2024]}, title = {{PDD by Roles}}, year = {2014}, } @article{allman2012managing, author = {Allman, Eric}, doi = {10.1145/2160718.2160733}, journal = {{Communications of the ACM}}, number = {5}, pages = {50--55}, title = {{Managing Technical Debt}}, volume = {55}, year = {2012}, } @inproceedings{potdar2014exploratory, author = {Potdar, Aniket and Shihab, Emad}, booktitle = {{Proceedings of the International Conference on Software Maintenance and Evolution}}, doi = {10.1109/ICSME.2014.31}, organization = {IEEE}, pages = {91--100}, title = {{An Exploratory Study on Self-Admitted Technical Debt}}, year = {2014}, } @inproceedings{bavota2016large, author = {Bavota, Gabriele and Russo, Barbara}, booktitle = {{Proceedings of the 13th International Conference on Mining Software Repositories}}, doi = {10.1145/2901739.2901742}, pages = {315--326}, title = {{A Large-Scale Empirical Study on Self-Admitted Technical Debt}}, year = {2016}, } @article{besker2020influence, author = {Besker, Terese and Ghanbari, Hadi and Martini, Antonio and Bosch, Jan}, doi = {10.1016/j.jss.2020.110586}, journal = {{Journal of Systems and Software}}, number = {1}, title = {{The Influence of Technical Debt on Software Developer Morale}}, volume = {167}, year = {2020}, } @article{avgeriou2020overview, author = {Avgeriou, Paris C. and Taibi, Davide and Ampatzoglou, Apostolos and Fontana, Francesca Arcelli and Besker, Terese and Chatzigeorgiou, Alexander and Lenarduzzi, Valentina and Martini, Antonio and Moschou, Athanasia and Pigazzini, Ilaria and others}, doi = {10.1109/MS.2020.3024958}, journal = {{IEEE Software}}, number = {3}, pages = {61--71}, title = {{An Overview and Comparison of Technical Debt Measurement Tools}}, volume = {38}, year = {2020}, } @article{kashiwa2022empirical, author = {Kashiwa, Yutaro and Nishikawa, Ryoma and Kamei, Yasutaka and Kondo, Masanari and Shihab, Emad and Sato, Ryosuke and Ubayashi, Naoyasu}, doi = {10.1016/j.infsof.2022.106855}, journal = {{Information and Software Technology}}, number = {1}, title = {{An Empirical Study on Self-Admitted Technical Debt in Modern Code Review}}, volume = {146}, year = {2022}, } @article{coughlan2020standardizing, author = {Coughlan, Shane}, doi = {10.1109/MC.2020.3016107}, journal = {{Computer}}, number = {11}, pages = {70--74}, title = {{Standardizing Open Source License Compliance With OpenChain}}, volume = {53}, year = {2020}, } @misc{alifanov2024developers, archiveprefix = {arXiv}, author = {Alifanov, Vitaly and Almetov, Kamil and Kornienko, Ivan and Mutalapov, Arsen and Bugayenko, Yegor}, eprint = {2403.10806}, primaryclass = {cs.SE}, title = {{Developers' Perception: Fixed Bugs Often Overlooked as Quality Contributions}}, year = {2024}, } @article{soltani2020significance, author = {Soltani, Mozhan and Hermans, Felienne and B{\"a}ck, Thomas}, doi = {10.1007/S10664-020-09882-Z}, journal = {{Empirical Software Engineering}}, number = {6}, pages = {5255--5294}, title = {{The Significance of Bug Report Elements}}, volume = {25}, year = {2020}, } @book{wiegers2002peer, author = {Wiegers, Karl Eugene}, doi = {10.5555/502971}, publisher = {Addison-Wesley}, title = {{Peer Reviews in Software: A Practical Guide}}, year = {2002}, } @misc{bugayenko2019blog0528, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/190528.html}}, month = {5}, note = {[Online; accessed 17-01-2025]}, title = {{Trust Them to Get the Job Done, ... Not!}}, year = {2019}, } @article{thomson2021static, author = {Thomson, Patrick}, doi = {10.1145/3487019.3487021}, journal = {{Queue}}, number = {4}, pages = {29--41}, title = {{Static Analysis: An Introduction}}, volume = {19}, year = {2021}, } @inproceedings{ricca2021web, author = {Ricca, Filippo and Stocco, Andrea}, booktitle = {{Proceedings of the 47th International Conference on Current Trends in Theory and Practice of Computer Science}}, doi = {10.1007/978-3-030-67731-2_35}, pages = {472--485}, title = {{Web Test Automation: Insights From the Grey Literature}}, year = {2021}, } @inproceedings{khan2022web, author = {Khan, Sara and Pal, Saurabh}, booktitle = {{Proceedings of the International Conference on Sustainable and Innovative Solutions for Current Challenges in Engineering \& Technology}}, doi = {10.1007/978-981-99-1431-9_22}, pages = {281--298}, title = {{Web Based User Interface Testing and Test Automation: Exploring the Current Market Challenges}}, year = {2022}, } @book{molyneaux2014art, author = {Molyneaux, Ian}, doi = {10.5555/1550832}, publisher = {O'Reilly Media}, title = {{The Art of Application Performance Testing: From Strategy to Tools}}, year = {2014}, } @article{knuth1974structured, author = {Knuth, Donald E.}, doi = {10.1145/356635.356640}, journal = {{ACM Computing Surveys}}, number = {4}, pages = {261--301}, title = {{Structured Programming With \texttt{go To} Statements}}, volume = {6}, year = {1974}, } @book{gregg2014systems, author = {Gregg, Brendan}, doi = {10.5555/2568162}, publisher = {Pearson Education}, title = {{Systems Performance: Enterprise and the Cloud}}, year = {2014}, } @misc{sites2021understanding, author = {Sites, Richard}, organization = {Addison-Wesley}, title = {{Understanding Software Dynamics}}, year = {2021}, } @article{isemann2023don, author = {Isemann, Raphael and Giuffrida, Cristiano and Bos, Herbert and Van Der Kouwe, Erik and Von Gleissenthall, Klaus}, doi = {10.1145/3591257}, journal = {{Proceedings of the ACM on Programming Languages}}, number = {1}, pages = {907--927}, title = {{Don't Look UB: Exposing Sanitizer-Eliding Compiler Optimizations}}, volume = {7}, year = {2023}, } @misc{li2025optimization, archiveprefix = {arXiv}, author = {Li, Jiawei and Farag{\'o}, David and Petrov, Christian and Ahmed, Iftekhar}, doi = {10.48550/arXiv.2501.09861}, eprint = {2501.09861}, primaryclass = {cs.SE}, title = {{Optimization Is Better Than Generation: Optimizing Commit Message Leveraging Human-Written Commit Message}}, year = {2025}, } @inproceedings{lam2019root, author = {Lam, Wing and Godefroid, Patrice and Nath, Suman and Santhiar, Anirudh and Thummalapenta, Suresh}, booktitle = {{Proceedings of the 28th SIGSOFT International Symposium on Software Testing and Analysis}}, doi = {10.1145/3293882.3330570}, pages = {101--111}, title = {{Root Causing Flaky Tests in a Large-Scale Industrial Setting}}, year = {2019}, } @inproceedings{luo2014empirical, author = {Luo, Qingzhou and Hariri, Farah and Eloussi, Lamyaa and Marinov, Darko}, booktitle = {{Proceedings of the 22nd SIGSOFT International Symposium on Foundations of Software Engineering}}, doi = {10.1145/2635868.2635920}, pages = {643--653}, title = {{An Empirical Analysis of Flaky Tests}}, year = {2014}, } @inproceedings{zhang2009investigation, author = {Zhang, Hongyu}, booktitle = {{Proceedings of the International Conference on Software Maintenance}}, doi = {10.1109/ICSM.2009.5306304}, pages = {274--283}, title = {{An Investigation of the Relationships Between Lines of Code and Defects}}, year = {2009}, } @article{wang2024beyond, author = {Wang, Han and Yu, Sijia and Chen, Chunyang and Turhan, Burak and Zhu, Xiaodong}, doi = {10.1145/3638245}, journal = {{ACM Transactions on Software Engineering and Methodology}}, number = {4}, pages = {1--22}, title = {{Beyond Accuracy: An Empirical Study on Unit Testing in Open-Source Deep Learning Projects}}, volume = {33}, year = {2024}, } @inproceedings{kim2021disabled, author = {Kim, Dong Jae and Yang, Bo and Yang, Jinqiu and Chen, Tse-Hsun}, booktitle = {{Proceedings of the 29th Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering}}, doi = {10.1145/3468264.3468609}, pages = {1045--1055}, title = {{How Disabled Tests Manifest in Test Maintainability Challenges?}}, year = {2021}, } @book{duvall2007continuous, author = {Duvall, Paul M. and Matyas, Steve and Glover, Andrew}, doi = {10.5555/1208841}, publisher = {Pearson Education}, title = {{Continuous Integration: Improving Software Quality and Reducing Risk}}, year = {2007}, } @article{ghaleb2019empirical, author = {Ghaleb, Taher Ahmed and Da Costa, Daniel Alencar and Zou, Ying}, doi = {10.1007/s10664-019-09695-9}, journal = {{Empirical Software Engineering}}, number = {1}, pages = {2102--2139}, title = {{An Empirical Study of the Long Duration of Continuous Integration Builds}}, volume = {24}, year = {2019}, } @article{zheng2024does, author = {Zheng, Shenyu and Adams, Bram and Hassan, Ahmed E.}, doi = {10.1007/s10664-024-10497-x}, journal = {{Empirical Software Engineering}}, number = {5}, pages = {110}, title = {{Does Using Bazel Help Speed up Continuous Integration Builds?}}, volume = {29}, year = {2024}, } @misc{bugayenko2014blog1103, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/141103.html}}, month = {11}, note = {[Online; accessed 31-01-2025]}, title = {{An Empty Line Is a Code Smell}}, year = {2014}, } @misc{bugayenko2016blog0209, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/160209.html}}, month = {2}, note = {[Online; accessed 31-01-2025]}, title = {{Are You Still Debugging?}}, year = {2016}, } @book{mcconnell2006software, author = {McConnell, Steve}, doi = {10.5555/1204642}, publisher = {Microsoft Press}, title = {{Software Estimation: Demystifying the Black Art}}, year = {2006}, } @inproceedings{zhang2024detecting, author = {Zhang, Yichi}, booktitle = {{Proceedings of the 32nd International Conference on the Foundations of Software Engineering}}, doi = {10.1145/3663529.3664458}, pages = {683--685}, title = {{Detecting Code Comment Inconsistencies Using LLM and Program Analysis}}, year = {2024}, } @inproceedings{bappon2024autogenics, author = {Bappon, Suborno Deb and Mondal, Saikat and Roy, Banani}, booktitle = {{Proceedings of the International Conference on Source Code Analysis and Manipulation (SCAM)}}, doi = {10.1109/SCAM63643.2024.00013}, organization = {IEEE}, pages = {24--35}, title = {{AUTOGENICS: Automated Generation of Context-Aware Inline Comments for Code Snippets on Programming {Q\&A} Sites Using LLM}}, year = {2024}, } @inproceedings{khajezade2024investigating, author = {Khajezade, Mohamad and Wu, Jie J. W. and Fard, Fatemeh Hendijani and Rodr{\'\i}guez-P{\'e}rez, Gema and Shehata, Mohamed Sami}, booktitle = {{Proceedings of the 32nd International Conference on Program Comprehension}}, doi = {10.1145/3643916.3645030}, pages = {161--165}, title = {{Investigating the Efficacy of Large Language Models for Code Clone Detection}}, year = {2024}, } @inproceedings{kudrjavets2022unexplored, author = {Kudrjavets, Gunnar and Kumar, Aditya and Nagappan, Nachiappan and Rastogi, Ayushi}, booktitle = {{Proceedings of the 44th International Conference on Software Engineering: Software Engineering in Practice}}, doi = {10.1145/3510457.3513057}, pages = {283--284}, title = {{The Unexplored Terrain of Compiler Warnings}}, year = {2022}, } @misc{holzmann2006rules, author = {Holzmann, Gerard J.}, title = {{The Power of 10: Rules for Developing Safety-Critical Code}}, year = {2006}, } @article{meyer1992applying, author = {Meyer, Bertrand}, doi = {10.1109/2.161279}, journal = {{Computer}}, number = {10}, pages = {40--51}, title = {{Applying 'Design by Contract'}}, volume = {25}, year = {1992}, } @misc{bugayenko2015blog0507, author = {Bugayenko, Yegor}, howpublished = {\url{https://www.yegor256.com/150507.html}}, month = {5}, note = {[Online; accessed 03-02-2025]}, title = {{Constructors Must Be Code-Free}}, year = {2015}, } @misc{cam2024, archiveprefix = {arXiv}, author = {Bugayenko, Yegor}, doi = {10.48550/arXiv.2403.08488}, eprint = {2403.08488}, primaryclass = {cs.SE}, title = {{CAM: A Collection of Snapshots of GitHub Java Repositories Together With Metrics}}, year = {2024}, } @article{dallal2012, author = {Al Dallal, Jehad and Briand, Lionel C.}, doi = {10.1145/2089116.2089118}, journal = {{ACM Transactions on Software Engineering and Methodology (TOSEM)}}, number = {2}, title = {{A Precise Method-Method Interaction-Based Cohesion Metric for Object-Oriented Classes}}, volume = {21}, year = {2012}, } @article{counsell2006, author = {Counsell, Steve and Swift, Stephen and Crampton, Jason}, doi = {10.1145/1131421.1131422}, journal = {{ACM Transactions on Software Engineering and Methodology (TOSEM)}}, month = {4}, number = {2}, pages = {123--149}, title = {{The Interpretation and Utility of Three Cohesion Metrics for Object-Oriented Design}}, volume = {15}, year = {2006}, } @misc{HendersonSellers1996, author = {Henderson-Sellers, Brian and Constantine, Larry L. and Graham, Ian M.}, title = {{Coupling and Cohesion (Towards a Valid Metrics Suite for Object-Oriented Analysis and Design)}}, year = {1996}, } @misc{fernandez2006, author = {Fern\'{a}ndez, Luis and Pe\~{n}a, Rosal\'{i}a}, title = {{A Sensitive Metric of Class Cohesion}}, year = {2006}, } @inproceedings{5463348, author = {Robles, Gregorio}, booktitle = {{Proceedings of the Working Conference on Mining Software Repositories}}, doi = {10.1109/MSR.2010.5463348}, pages = {171--180}, title = {{Replicating MSR: A Study of the Potential Replicability of Papers Published in the Mining Software Repositories Proceedings}}, year = {2010}, } @article{7887704, author = {Cosentino, Valerio and C\'{a}novas Izquierdo, Javier L. and Cabot, Jordi}, doi = {10.1109/ACCESS.2017.2682323}, journal = {{IEEE Access}}, number = {1}, pages = {7173--7192}, title = {{A Systematic Mapping Study of Software Development With GitHub}}, volume = {5}, year = {2017}, } @article{nunez2017source, author = {Nu{\~n}ez-Varela, Alberto S. and P{\'e}rez-Gonzalez, H{\'e}ctor G. and Mart{\'\i}nez-Perez, Francisco E. and Soubervielle-Montalvo, Carlos}, doi = {10.1016/j.jss.2017.03.044}, journal = {{Journal of Systems and Software}}, number = {1}, pages = {164--197}, title = {{Source Code Metrics: A Systematic Mapping Study}}, volume = {128}, year = {2017}, } @misc{dohmke2023, author = {Dohmke, Thomas}, howpublished = {\url{https://shorturl.at/oWGK4}}, note = {[Online; accessed 13-03-2024]}, title = {{100 Million Developers and Counting}}, year = {2023}, } @misc{daigle2023, author = {Daigle, Kyle}, howpublished = {\url{https://github.blog/2023-11-08-the-state-of-open-source-and-ai/}}, note = {[Online; accessed 13-03-2024]}, title = {{Octoverse: The State of Open Source and Rise of AI in {2023}}}, year = {2023}, } @article{munaiah2017curating, author = {Munaiah, Nuthan and Kroh, Steven and Cabrey, Craig and Nagappan, Meiyappan}, doi = {10.1007/s10664-017-9512-6}, journal = {{Empirical Software Engineering}}, number = {1}, pages = {3219--3253}, title = {{Curating GitHub for Engineered Software Projects}}, volume = {22}, year = {2017}, } @book{martin2011clean, author = {Martin, Robert C.}, doi = {10.5555/1999258}, publisher = {Pearson Education}, title = {{The Clean Coder: A Code of Conduct for Professional Programmers}}, year = {2011}, } @book{kruchten2019managing, author = {Kruchten, Philippe and Nord, Robert and Ozkaya, Ipek}, doi = {10.5555/3364312}, publisher = {Addison-Wesley}, title = {{Managing Technical Debt: Reducing Friction in Software Development}}, year = {2019}, } @book{ernst2021technical, author = {Ernst, Neil and Kazman, Rick and Delange, Julien}, doi = {10.7551/mitpress/12440.001.0001}, publisher = {MIT Press}, title = {{Technical Debt in Practice: How to Find It and Fix It}}, year = {2021}, } @article{li2024enhancing, author = {Li, Haonan and Hao, Yu and Zhai, Yizhuo and Qian, Zhiyun}, doi = {10.1145/3649828}, journal = {{Proceedings of the {ACM} on Programming Languages}}, number = {1}, pages = {474--499}, title = {{Enhancing Static Analysis for Practical Bug Detection: An LLM-Integrated Approach}}, volume = {8}, year = {2024}, } @article{liu2025llm, author = {Liu, Puzhuo and Sun, Chengnian and Zheng, Yaowen and Feng, Xuan and Qin, Chuan and Wang, Yuncheng and Xu, Zhenyang and Li, Zhi and Di, Peng and Jiang, Yu and others}, doi = {10.1145/3711816}, journal = {{ACM Transactions on Software Engineering and Methodology}}, number = {3}, title = {{LLM-Powered Static Binary Taint Analysis}}, volume = {34}, year = {2025}, } @inproceedings{mohajer2024effectiveness, author = {Mohajer, Mohammad Mahdi and Aleithan, Reem and Harzevili, Nima Shiri and Wei, Moshi and Belle, Alvine Boaye and Pham, Hung Viet and Wang, Song}, booktitle = {{Proceedings of the 1st International Conference on AI-Powered Software}}, doi = {10.1145/3711816}, pages = {151--160}, title = {{Effectiveness of ChatGPT for Static Analysis: How Far Are We?}}, year = {2024}, } @misc{beck2023tidy, author = {Beck, Kent}, organization = {O'Reilly Media}, title = {{Tidy First?: A Personal Exercise in Empirical Software Design}}, year = {2023}, } @misc{fields2006damp, author = {Fields, Jay}, howpublished = {\url{http://blog.jayfields.com/2006/05/dry-code-damp-dsls.html}}, month = {5}, note = {[Online; accessed 23-03-2025]}, title = {{DRY Code, DAMP DSLs}}, year = {2006}, } @book{wiegers2003software, author = {Wiegers, Karl E. and Beatty, Joy}, edition = {2}, publisher = {Microsoft Press}, title = {{Software Requirements}}, year = {2003}, } @book{harold2000xml, author = {Harold, Elliotte Rusty and Means, W. Scott}, doi = {10.5555/557805}, publisher = {O'Reilly Media}, title = {{XML in a Nutshell: A Desktop Quick Reference}}, year = {2000}, } @book{kernighan1979unix, author = {Kernighan, Brian W. and Mashey, John R.}, doi = {10.5555/577554}, publisher = {Prentice Hall}, title = {{The UNIX\(^{TM}\) Programming Environment}}, year = {1984}, } @book{flannagan2006javascript, author = {Flannagan, David}, doi = {10.5555/1196481}, publisher = {O'Reilly Media}, title = {{JavaScript: The Definitive Guide}}, year = {2006}, } @book{cockburn2000writing, author = {Cockburn, Alistair and Cockburn, Lord}, doi = {10.5555/517669}, publisher = {Addison-Wesley}, title = {{Writing Effective Use Cases}}, year = {2000}, } @misc{goodman2002dynamic, author = {Goodman, Danny}, organization = {O'Reilly Media}, title = {{Dynamic HTML: The Definitive Reference: A Comprehensive Resource for HTML, CSS, DOM \& JavaScript}}, year = {2002}, } @misc{maclellan2015, author = {MacLellan, Scott}, howpublished = {\url{https://jttu.net/maclellan2015}}, month = {9}, note = {[Online; accessed 08-04-2025]}, title = {{How Preflights Changed Our World}}, year = {2015}, } @misc{crawford1989, author = {Crawford, Bob}, organization = {TUG LINES}, title = {{A Series of Articles About Object Oriented Programming}}, year = {1989}, } @misc{schindler2007, author = {Schindler, Esther}, howpublished = {\url{https://jttu.net/schindler2007}}, note = {[Online; accessed 08-04-2025]}, organization = {CIO}, title = {{Linus Torvalds: Why C++ Sucks}}, year = {2007}, } @misc{atwood2007, author = {Atwood, Jeff}, howpublished = {\url{https://jttu.net/atwood2007}}, note = {[Online; accessed 08-04-2025]}, title = {{Your Code: OOP or POO?}}, year = {2007}, } @misc{hickey2010, author = {Hickey, Rich}, howpublished = {\url{https://jttu.net/hickey2010}}, note = {[Online; accessed 08-04-2025]}, title = {{SE Radio 158: Rich Hickey on Clojure}}, year = {2010}, } @inproceedings{brito1996evaluating, author = {Brito, Fernando and Melo, Walc\'{e}lio}, booktitle = {{Proceedings of the 3rd International Software Metrics Symposium}}, doi = {10.1109/METRIC.1996.492446}, organization = {IEEE}, pages = {90--99}, title = {{Evaluating the Impact of Object-Oriented Design on Software Quality}}, year = {1996}, } @article{holzle1996reconciling, author = {H{\"o}lzle, Urs and Ungar, David}, doi = {10.1145/233561.233562}, journal = {{ACM Transactions on Programming Languages and Systems (TOPLAS)}}, number = {4}, pages = {355--400}, title = {{Reconciling Responsiveness With Performance in Pure Object-Oriented Languages}}, volume = {18}, year = {1996}, } @misc{martin2025we, author = {Martin, Robert C.}, organization = {Pearson Education}, title = {{We, Programmers: A Chronicle of Coders From Ada to AI}}, year = {2025}, } @book{stroustrup1994design, author = {Stroustrup, Bjarne}, doi = {10.5555/193198}, publisher = {Pearson Education}, title = {{The Design and Evolution of C++}}, year = {1994}, } @book{pawson2002naked, author = {Pawson, Richard and Matthews, Robert}, doi = {10.5555/599809}, publisher = {Wiley}, title = {{Naked Objects}}, year = {2002}, } @book{bass2021software, author = {Bass, Len and Clements, Paul and Kazman, Rick}, edition = {4}, publisher = {Pearson Education}, title = {{Software Architecture in Practice}}, year = {2021}, } @book{clements2011documenting, author = {Clements, Paul and Bachmann, Felix and Bass, Len and Garlan, David and Ivers, James and Merson, Paulo and Little, Reed and Nord, Robert}, edition = {2}, publisher = {Addison-Wesley}, title = {{Documenting Software Architectures: Views and Beyond}}, year = {2011}, } @book{wiegers2006more, author = {Wiegers, Karl E.}, publisher = {Microsoft Press}, title = {{More About Software Requirements: Thorny Issues and Practical Advice}}, year = {2006}, } @book{kroll2003rational, author = {Kroll, Per and Kruchten, Philippe}, publisher = {Addison-Wesley}, title = {{The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP}}, year = {2003}, } @book{stroustrup2014programming, author = {Stroustrup, Bjarne}, edition = {2}, publisher = {Pearson Education}, title = {{Programming: Principles and Practice Using C++}}, year = {2014}, } @book{mclaughlin2006head, author = {McLaughlin, Brett and Pollice, Gary and West, David}, publisher = {O'Reilly Media}, title = {{Head First Object-Oriented Analysis and Design: A Brain Friendly Guide to OOA\&D}}, year = {2006}, } @book{meyers2005effective, author = {Meyers, Scott}, edition = {3}, publisher = {Addison-Wesley}, title = {{Effective C++: 55 Specific Ways to Improve Your Programs and Designs}}, year = {2005}, } @book{fitzgerald2003learning, author = {Fitzgerald, Michael}, publisher = {O'Reilly Media}, title = {{Learning XSLT: A Hands-on Introduction to XSLT and XPath}}, year = {2003}, } @book{fowler2004uml, author = {Fowler, Martin}, edition = {3}, publisher = {Addison-Wesley}, title = {{UML Distilled: A Brief Guide to the Standard Object Modeling Language}}, year = {2004}, } @book{kleppe2003mda, author = {Kleppe, Anneke G. and Warmer, Jos B. and Bast, Wim}, publisher = {Addison-Wesley}, title = {{MDA Explained: The Model Driven Architecture: Practice and Promise}}, year = {2003}, } @book{date2004introduction, author = {Date, C. J.}, edition = {8}, publisher = {Pearson/Addison Wesley}, title = {{An Introduction to Database Systems}}, year = {2004}, } @book{sadalage2013nosql, author = {Sadalage, Pramod J. and Fowler, Martin}, publisher = {Addison-Wesley}, title = {{NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence}}, year = {2013}, } @book{richardson2013restful, author = {Richardson, Leonard and Amundsen, Mike and Ruby, Sam}, publisher = {O'Reilly Media}, title = {{RESTful Web APIs: Services for a Changing World}}, year = {2013}, } @book{newman2019monolith, author = {Newman, Sam}, publisher = {O'Reilly Media}, title = {{Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith}}, year = {2019}, } @book{piper2019aws, author = {Piper, Ben and Clinton, David}, publisher = {Wiley}, title = {{AWS Certified Cloud Practitioner Study Guide: CLF-C01 Exam}}, year = {2019}, } @book{erl2013cloud, author = {Erl, Thomas and Puttini, Ricardo and Mahmood, Zaigham}, publisher = {Prentice Hall}, title = {{Cloud Computing: Concepts, Technology \& Architecture}}, year = {2013}, } @article{freeman2004science, author = {Freeman, Peter and Hart, David}, doi = {10.1145/1012037.1012054}, journal = {{Communications of the ACM}}, number = {8}, pages = {19--21}, title = {{A Science of Design for Software-Intensive Systems}}, volume = {47}, year = {2004}, } @misc{ieee1016, author = {Board, IEEE Standards}, doi = {10.1109/ieeestd.2009.5167255}, title = {{IEEE Std {1016-2009}: Standard for Information Technology --- Systems Design --- Software Design Descriptions}}, year = {2009}, } @book{pmbok2021, author = {Institute, Project Management}, publisher = {Project Management Institute}, title = {{Guide to the Project Management Body of Knowledge (PMBOK\textregistered{} Guide) and the Standard for Project Management}}, year = {2021}, } @misc{cmmi2010, author = {Team, CMMI Product}, doi = {10.1184/R1/6572342.v1}, title = {{CMMI for Development, Version 1.3}}, year = {2010}, } @book{bourque2014guide, author = {Bourque, Pierre and Fairley, Richard E.}, doi = {10.5555/2616205}, publisher = {IEEE}, title = {{Guide to the Software Engineering Body of Knowledge (SWEBOK\textregistered{} Guide), Version 3.0}}, year = {2014}, } @book{goldberg1983smalltalk, author = {Goldberg, Adele and Robson, David}, publisher = {Addison-Wesley}, title = {{Smalltalk-80: The Language and Its Implementation}}, year = {1983}, } @book{evans2018java, author = {Evans, Benjamin J. and Flanagan, David}, edition = {7}, publisher = {O'Reilly Media}, title = {{Java in a Nutshell: A Desktop Quick Reference}}, year = {2018}, } @misc{iso19501, author = {ISO, International Stardardization Organization}, title = {{ISO/IEC {19501:2005}: Information Technology --- Open Distributed Processing --- Unified Modeling Language (UML) Version 1.4.2}}, year = {2005}, } @book{black2007pragmatic, author = {Black, Rex}, doi = {10.5555/1215210}, publisher = {John Wiley \& Sons, Inc.}, title = {{Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional}}, year = {2007}, } @book{chauhan2010software, author = {Chauhan, Naresh}, publisher = {Oxford University Press}, title = {{Software Testing: Principles and Practices}}, year = {2010}, } @book{beizer1990software, author = {Beizer, Boris}, doi = {10.5555/79060}, edition = {2}, publisher = {Van Nostrand Reinhold}, title = {{Software Testing Techniques}}, year = {1990}, } @misc{dijkstra1970notes, author = {Dijkstra, Edsger W.}, title = {{Notes on Structured Programming}}, year = {1970}, } @misc{hansson2014tdd, author = {Hansson, David H.}, howpublished = {\url{https://dhh.dk/2014/tdd-is-dead-long-live-testing.html}}, note = {[Online; accessed 04-05-2025]}, title = {{TDD Is Dead{.} Long Live Testing}}, year = {2014}, } @misc{martin2014tdd, author = {Martin, Robert C.}, howpublished = {\url{https://shorturl.at/nGS3G}}, note = {[Online; accessed 04-05-2025]}, title = {{Professionalism and TDD (Reprise)}}, year = {2014}, } @misc{bugayenko2021eolang, archiveprefix = {arXiv}, author = {Bugayenko, Yegor and Trunnikov, Maxim}, eprint = {2111.13384}, primaryclass = {cs.PL}, title = {{EOLANG and \(\varphi\)-Calculus}}, year = {2021}, } @misc{clancy2020, author = {Clancy, Lisa}, howpublished = {\url{https://jttu.net/clancy2020}}, note = {[Online; accessed 10-04-2024]}, title = {{How to Write a Figure Caption}}, year = {2020}, } @misc{bugayenko2021reducing, archiveprefix = {arXiv}, author = {Bugayenko, Yegor}, eprint = {2112.11988}, primaryclass = {cs.PL}, title = {{Reducing Programs to Objects}}, year = {2021}, } @inproceedings{booch1990design, author = {Booch, Grady and Vilot, Michael}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming Systems, Languages, and Applications}}, doi = {10.1145/97945.97947}, pages = {1--11}, title = {{The Design of the C++ Booch Components}}, year = {1990}, } @misc{ieee754, author = {IEEE~754}, doi = {10.1109/IEEESTD.2019.8766229}, organization = {IEEE}, title = {{IEEE Standard for Floating-Point Arithmetic}}, year = {2019}, } @misc{posix, author = {{IEEE~1003.1}}, doi = {10.1109/IEEESTD.2018.8277153}, organization = {IEEE}, title = {{IEEE Standard for Information Technology --- Portable Operating System Interface (POSIX\(^\text{TM}\)) Base Specifications}}, year = {2018}, } @misc{EcmaScript, author = {ECMA}, organization = {ECMA}, title = {{Standard ECMA-262 --- ECMAScript Language Specification}}, year = {2011}, } @misc{unicode, author = {ISO~10646}, organization = {ISO/IEC 10646:2020}, title = {{Information Technology --- Universal Coded Character Set (UCS)}}, year = {2020}, } @misc{rfc2616, author = {Fielding, Roy and Gettys, Jim and Mogul, Jeffrey and Frystyk, Henrik and Masinter, Larry and Leach, Paul and Berners-Lee, Tim}, organization = {RFC Editor}, title = {{RFC2616: Hypertext Transfer Protocol --- HTTP/1.1}}, year = {1999}, } @book{hellmann2017python, author = {Hellmann, Doug}, doi = {10.5555/3161131}, publisher = {Addison-Wesley Professional}, title = {{The Python 3 Standard Library by Example (Developer's Library)}}, year = {2017}, } @book{josuttis2012cpp, author = {Josuttis, Nicolai}, doi = {10.5555/2544010}, publisher = {Addison-Wesley Professional}, title = {{The C++ Standard Library: A Tutorial and Reference}}, year = {2012}, } @misc{python2024, author = {Python}, howpublished = {\url{https://docs.python.org/3/library/index.html}}, note = {[Online; accessed 09-04-2024]}, title = {{The Python Standard Library}}, year = {2024}, } @misc{swift2024, author = {Apple}, howpublished = {\url{https://jttu.net/swift2024}}, note = {[Online; accessed 09-04-2024]}, title = {{Swift Standard Library}}, year = {2024}, } @book{deitel2015swift, author = {Deitel, Paul and Deitel, Harvey}, doi = {10.5555/2756809}, publisher = {Pearson PTR}, title = {{Swift for Programmers}}, year = {2015}, } @misc{rust2024, author = {Rust}, howpublished = {\url{https://doc.rust-lang.org/std/}}, note = {[Online; accessed 09-04-2024]}, title = {{The Rust Standard Library}}, year = {2024}, } @misc{cpp2024, author = {C++}, howpublished = {\url{https://en.cppreference.com/w/cpp/header}}, note = {[Online; accessed 09-04-2024]}, title = {{C++ Standard Library}}, year = {2024}, } @misc{blandy2021rust, author = {Blandy, Jim and Orendorff, Jason and Tindall, Leonora}, organization = {O'Reilly Media}, title = {{Programming Rust: Fast, Safe Systems Development}}, year = {2021}, } @misc{jdk2024, author = {Oracle}, howpublished = {\url{https://openjdk.org/projects/jdk/22/}}, note = {[Online; accessed 09-04-2024]}, title = {{Java Development Kit, Version 22}}, year = {2024}, } @misc{net2023, author = {Microsoft}, howpublished = {\url{https://jttu.net/net2023}}, note = {[Online; accessed 09-04-2024]}, title = {{.NET Standard}}, year = {2023}, } @book{abrams2005net, author = {Abrams, Brad and Abrams, Tamara}, doi = {10.5555/1051166}, publisher = {Addison-Wesley Professional}, title = {{.NET Framework Standard Library Reference: Networking Library, Reflection Library, and XML Library}}, year = {2005}, } @misc{js2024, author = {Mozilla}, howpublished = {\url{https://jttu.net/js2024}}, note = {[Online; accessed 09-04-2024]}, title = {{Standard Built-in Objects}}, year = {2024}, } @book{crockford2008js, author = {Crockford, Douglas}, doi = {10.5555/1386753}, publisher = {Oreilly \& Associates Inc}, title = {{JavaScript: The Good Parts}}, year = {2008}, } @article{williams1985restructuring, author = {Williams, M. Howard and Chen, G.}, journal = {{The Computer Journal}}, number = {2}, pages = {134--137}, title = {{Restructuring Pascal Programs Containing Goto Statements}}, volume = {28}, year = {1985}, doi={10.1093/comjnl/28.2.134} } @article{pan1996formal, author = {Pan, Si and Dromey, R. Geoff}, journal = {{The Computer Journal}}, number = {3}, pages = {203--214}, title = {{A Formal Basis for Removing Goto Statements}}, volume = {39}, year = {1996}, doi={10.1093/comjnl/39.3.203} } @inproceedings{erosa1994taming, author = {Erosa, Ana M. and Hendren, Laurie J.}, booktitle = {{Proceedings of the International Conference on Computer Languages}}, organization = {IEEE}, pages = {229--240}, title = {{Taming Control Flow: A Structured Approach to Eliminating Goto Statements}}, year = {1994}, doi = {10.1109/ICCL.1994.288377} } @inproceedings{ceccato2008goto, author = {Ceccato, Mariano and Tonella, Paolo and Matteotti, Cristina}, booktitle = {{Proceedings of the 12th European Conference on Software Maintenance and Reengineering}}, organization = {IEEE}, pages = {53--62}, title = {{Goto Elimination Strategies in the Migration of Legacy Code to Java}}, year = {2008}, doi = {10.1109/CSMR.2008.4493300} } @book{goodman2002, title={{Dynamic HTML}}, author={Goodman, Danny}, year={2002}, publisher={O'Reilly Media}, doi={10.5555/515272} } @article{wadler1990deforestation, author = {Wadler, Philip}, doi = {10.1016/0304-3975(90)90147-A}, journal = {{Theoretical Computer Science}}, number = {2}, pages = {231--248}, title = {{Deforestation: Transforming Programs to Eliminate Trees}}, volume = {73}, year = {1990}, } @inproceedings{gill1993fusion, author = {Gill, Andrew and Launchbury, John and Peyton Jones, Simon L.}, booktitle = {{Proceedings of the Conference on Functional Programming Languages and Computer Architecture}}, doi = {10.1145/165180.165214}, pages = {223--232}, title = {{A Short Cut to Deforestation}}, year = {1993}, } @article{bird1989calculation, author = {Bird, R. S.}, doi = {10.1093/comjnl/32.2.122}, journal = {{The Computer Journal}}, month = {1}, number = {2}, pages = {122--126}, title = {{Algebraic Identities for Program Calculation}}, volume = {32}, year = {1989}, } @inproceedings{chin1992fusion, author = {Chin, Wei-Ngan}, booktitle = {{Proceedings of the Conference on LISP and Functional Programming}}, doi = {10.1145/141471.141494}, pages = {11--20}, title = {{Safe Fusion of Functional Expressions}}, year = {1992}, } @misc{hamilton2002deforestation, author = {Hamilton, G. W.}, organization = {{Proceedings of the Trends in Functional Programming}}, title = {{Extending Higher-Order Deforestation: Transforming Programs to Eliminate Even More Trees}}, year = {2002}, } @inproceedings{hinze2011fusion, author = {Hinze, Ralf and Harper, Thomas and James, Daniel W. H.}, booktitle = {{Proceedings of the Implementation and Application of Functional Languages}}, doi = {10.1007/978-3-642-24276-2_2}, pages = {19--37}, title = {{Theory and Practice of Fusion}}, year = {2011}, } @inproceedings{meijer1991bananas, author = {Meijer, Erik and Fokkinga, Maarten and Paterson, Ross}, booktitle = {{Proceedings of the Functional Programming Languages and Computer Architecture}}, doi = {10.1007/3540543961_7}, pages = {124--144}, title = {{Functional Programming With Bananas, Lenses, Envelopes and Barbed Wire}}, year = {1991}, } @inproceedings{takano1995deforestation, author = {Takano, Akihiko and Meijer, Erik}, booktitle = {{Proceedings of the 7th International Conference on Functional Programming Languages and Computer Architecture}}, doi = {10.1145/224164.224221}, pages = {306--313}, title = {{Shortcut Deforestation in Calculational Form}}, year = {1995}, } @article{kiselyov2017, author = {Kiselyov, Oleg and Biboudis, Aggelos and Palladinos, Nick and Smaragdakis, Yannis}, doi = {10.1145/3093333.3009880}, journal = {{SIGPLAN Notices}}, month = {1}, number = {1}, pages = {285--299}, title = {{Stream Fusion, to Completeness}}, volume = {52}, year = {2017}, } @article{ji2024superfusion, author = {Ji, Ruyi and Zhao, Yuwei and Polikarpova, Nadia and Xiong, Yingfei and Hu, Zhenjiang}, doi = {10.1145/3656415}, journal = {{Proceedings of ACM Programmning Languages}}, month = {6}, number = {1}, title = {{Superfusion: Eliminating Intermediate Data Structures via Inductive Synthesis}}, volume = {8}, year = {2024}, } @article{coutts2007, author = {Coutts, Duncan and Leshchinskiy, Roman and Stewart, Don}, doi = {10.1145/1291220.1291199}, journal = {{SIGPLAN Notices}}, month = {10}, number = {9}, pages = {315--326}, title = {{Stream Fusion: From Lists to Streams to Nothing at All}}, volume = {42}, year = {2007}, } @article{bird1997algebra, author = {Poll, Erik and Thompson, Simon}, doi = {10.1017/S095679689922326X}, journal = {{Journal of Functional Programming}}, number = {3}, pages = {347--354}, title = {{Algebra of Programming by Richard Bird and Oege De Moor}}, volume = {9}, year = {1999}, } @article{birka2004practical, author = {Birka, Adrian and Ernst, Michael D.}, doi = {10.1145/1035292.1028976}, journal = {{ACM SIGPLAN Notices}}, number = {10}, title = {{A Practical Type System and Language for Reference Immutability}}, volume = {39}, year = {2004}, } @inproceedings{mitchell1993lambda, author = {Mitchell, John C. and Honsell, Furio and Fisher, Kathleen}, booktitle = {{Proceedings of the Symposium on Logic in Computer Science}}, doi = {10.1109/LICS.1993.287566}, organization = {IEEE}, title = {{A Lambda Calculus of Objects and Method Specialization}}, year = {1993}, } @inproceedings{di1998lambda, author = {Di Gianantonio, Pietro and Honsell, Furio and Liquori, Luigi}, booktitle = {{Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications}}, doi = {10.1145/286936.286947}, title = {{A Lambda Calculus of Objects With Self-Inflicted Extension}}, year = {1998}, } @article{seiter1998evolution, author = {Seiter, Linda M. and Palsberg, Jens and Lieberherr, Karl J.}, doi = {10.1109/32.663997}, journal = {{IEEE Transactions on Software Engineering}}, number = {1}, title = {{Evolution of Object Behavior Using Context Relations}}, volume = {24}, year = {1998}, } @article{abadi1995imperative, author = {Abadi, Mart\'in and Cardelli, Luca}, doi = {10.1002/tapo.4410010304}, journal = {{Theory and Practice of Object Systems}}, number = {3}, title = {{An Imperative Object Calculus}}, volume = {1}, year = {1995}, } @inproceedings{jeffrey1999distributed, author = {Jeffrey, Alan}, booktitle = {{Proceedings of the International Workshop on Foundations of Object-Oriented Languages}}, doi = {10.1145/319195.319216}, title = {{A Distributed Object Calculus}}, year = {1999}, } @inproceedings{honda1991object, author = {Honda, Kohei and Tokoro, Mario}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming}}, doi = {10.1007/BFb0057019}, title = {{An Object Calculus for Asynchronous Communication}}, year = {1991}, } @inproceedings{jones1993pi, author = {Jones, Cliff B.}, booktitle = {{Proceedings of the International Conference on Concurrency Theory}}, doi = {10.1007/3-540-57208-2_6}, title = {{A Pi-Calculus Semantics for an Object-Based Design Notation}}, year = {1993}, } @article{igarashi2001featherweight, author = {Igarashi, Atsushi and Pierce, Benjamin C. and Wadler, Philip}, doi = {10.1145/503502.503505}, journal = {{ACM Transactions on Programming Languages and Systems}}, number = {3}, title = {{Featherweight Java: A Minimal Core Calculus for Java and {GJ}}}, volume = {23}, year = {2001}, } @article{jagannathan2005transactional, author = {Jagannathan, Suresh and Vitek, Jan and Welc, Adam and Hosking, Antony}, doi = {10.1016/j.scico.2005.02.008}, journal = {{Science of Computer Programming}}, number = {2}, title = {{A Transactional Object Calculus}}, volume = {57}, year = {2005}, } @inproceedings{durr1992vdm, author = {Durr, Eugene and Van Katwijk, Jan}, booktitle = {{Proceedings of the Computer Systems and Software Engineering}}, doi = {10.1109/CSSE.1992.209289}, title = {{{VDM++,} a Formal Specification Language for Object-Oriented Designs}}, year = {1992}, } @inproceedings{duke1990towards, author = {Duke, David and Duke, Roger}, booktitle = {{Proceedings of the International Symposium of {VDM} Europe}}, doi = {10.1007/3-540-53692-X_56}, title = {{Towards a Semantics for Object-Z}}, year = {1990}, } @inproceedings{bancilhon1985calculus, author = {Bancilhon, Francois and Khoshafian, Setrag}, booktitle = {{Proceedings of the Symposium on Principles of Database Systems}}, doi = {10.1145/325405.325451}, title = {{A Calculus for Complex Objects}}, year = {1985}, } @article{jankowska2003anotheroop, author = {Jankowska, Beata}, doi = {10.3166/ejc.32.123-142}, journal = {{Control and Cybernetics}}, number = {2}, title = {{Yet Another Object-Oriented Data Model and Its Application}}, volume = {32}, year = {2003}, } @article{leekwakryu1996transform, author = {Lee, Kwak and Ryu, Hong-Ro, Hoon-Sung and Keun-Ho}, doi = {10.3745/KIPST.1996.3.4.123}, journal = {{The Transactions of the Korea Information Processing Society}}, number = {4}, title = {{A Translation of an Object Calculus into an Object Algebra}}, volume = {3}, year = {1996}, } @inproceedings{nierstrasz1991towards, author = {Nierstrasz, Oscar}, booktitle = {{Proceedings of the European Conference on Object-Oriented Programming}}, doi = {10.1007/BFb0057013}, title = {{Towards an Object Calculus}}, year = {1991}, } @inproceedings{ciaffaglione2003typetheories, author = {Ciaffaglione, Alberto and Liquori, Luigi and Miculan, Marino}, booktitle = {{Proceedings of the International Conference on Logic for Programming Artificial Intelligence and Reasoning}}, doi = {10.1007/978-3-540-39813-4_18}, title = {{Imperative Object-Based Calculi in Co-Inductive Type Theories}}, year = {2003}, } @article{ciaffaglione2007theory_of_contexts, author = {Ciaffaglione, Alberto and Liquori, Luigi and Miculan, Marino}, doi = {10.1007/s10817-007-9077-x}, journal = {{Journal of Automated Reasoning}}, number = {1}, title = {{Reasoning About Object-Based Calculi in {(Co) Inductive} Type Theory and the Theory of Contexts}}, volume = {39}, year = {2007}, } @book{meyers2014, doi={10.5555/2685398}, author = {Meyers, Scott}, title = {{Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14}}, year = {2014}, publisher = {O'Reilly Media}, } @misc{biboudis2014clash, title={{Clash of the Lambdas}}, author={Biboudis, Aggelos and Palladinos, Nick and Smaragdakis, Yannis}, year={2014}, archiveprefix = {arXiv}, eprint = {1406.6631}, primaryclass = {cs.PL}, } @misc{ribeiro2018java, title={{Java Stream Optimization Through Program Fusion}}, author={Ribeiro, Francisco Jos\'{e} Torres}, year={2018}, organization={Universidade {do} Minho}, howpublished = {\url{https://hdl.handle.net/1822/59688}}, note = {[Online; accessed 23-07-2025]}, } @inproceedings{ribeiro2019java, title={{Java Stream Fusion: Adapting FP Mechanisms for an OO Setting}}, author={Ribeiro, Francisco and Saraiva, Jo{\~a}o and Pardo, Alberto}, booktitle={{Proceedings of the 23rd Brazilian Symposium on Programming Languages}}, pages={30--37}, year={2019}, doi={10.1145/3355378.3355386} } @misc{kiselyov2024complete, title={{Complete Fusion for Stateful Streams: Equational Theory of Stateful Streams and Fusion as Normalization-by-Evaluation}}, author={Kiselyov, Oleg and Kobayashi, Tomoaki and Palladinos, Nick}, year={2024}, archiveprefix = {arXiv}, eprint = {2412.15768}, primaryclass = {cs.PL}, } @inproceedings{khatchadourian2020study, title={{An Empirical Study on the Use and Misuse of Java 8 Streams}}, author={Khatchadourian, Raffi and Tang, Yiming and Bagherzadeh, Mehdi and Ray, Baishakhi}, booktitle={{Proceedings of the International Conference on Fundamental Approaches to Software Engineering}}, pages={97--118}, year={2020}, doi={10.1007/978-3-030-45234-6_5} } @inproceedings{basso2022optimizing, title={{Optimizing Parallel Java Streams}}, author={Basso, Matteo and Schiavio, Filippo and Ros{\`a}, Andrea and Binder, Walter}, booktitle={{Proceedings of the 26th International Conference on Engineering of Complex Computer Systems}}, pages={23--32}, year={2022}, doi={10.1109/ICECCS54210.2022.00012} } @article{hirzel2014catalog, title={{A Catalog of Stream Processing Optimizations}}, author={Hirzel, Martin and Soul{\'e}, Robert and Schneider, Scott and Gedik, Bu{\u{g}}ra and Grimm, Robert}, journal={{ACM Computing Surveys}}, volume={46}, number={4}, pages={1--34}, year={2014}, doi={10.1145/2528412} } @inproceedings{biboudis2015streams, title={{Streams {{\`a}} {la} {carte}: Extensible Pipelines {with} Object Algebras}}, author={Biboudis, Aggelos and Palladinos, Nick and Fourtounis, George and Smaragdakis, Yannis}, booktitle={{Proceedings of the 29th European Conference on Object-Oriented Programming}}, pages={591--613}, year={2015}, doi={10.4230/LIPIcs.ECOOP.2015.591} } @article{khatchadourian2020safe, title={{Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams}}, author={Khatchadourian, Raffi and Tang, Yiming and Bagherzadeh, Mehdi}, journal={{Science of Computer Programming}}, volume={195}, number={1}, year={2020}, doi={10.1016/j.scico.2020.102476} } @inproceedings{murray2011steno, title={{Steno: Automatic Optimization of Declarative Queries}}, author={Murray, Derek Gordon and Isard, Michael and Yu, Yuan}, booktitle={{Proceedings of the 32md Conference on Programming Language Design and Implementation}}, pages={121--131}, year={2011}, doi={10.1145/1993498.1993513} } @inproceedings{adamus2015step, title={{A Step Towards Genuine Declarative Language-Integrated Queries}}, author={Adamus, Rados{\l}aw and Kowalski, Tomasz Marek and Wi{\'s}licki, Jacek}, booktitle={{Proceedings of the Federated Conference on Computer Science and Information Systems}}, pages={935--946}, year={2015}, doi={10.15439/2015F156} } @inproceedings{dekorte2005io, title={{Io: A Small Programming Language}}, author={Dekorte, Steve}, booktitle={{Proceedings of the 20th Conference on Object-Oriented Programming, Systems, Languages, and Applications}}, pages={166--167}, year={2005}, doi={10.1145/1094855.1094916} } @misc{chong2024artificial, archiveprefix = {arXiv}, title={{Artificial-Intelligence Generated Code Considered Harmful: A Road Map for Secure and High-Quality Code Generation}}, author={Chong, Chun Jie and Yao, Zhihao and Neamtiu, Iulian}, eprint = {2409.19182}, primaryclass = {cs.CR}, year = {2024}, } @misc{abbassi2025taxonomy, archiveprefix = {arXiv}, title={{A Taxonomy of Inefficiencies in LLM-Generated Python Code}}, author={Abbassi, Altaf Allah and Da Silva, Leuson and Nikanjam, Amin and Khomh, Foutse}, eprint = {2503.06327}, primaryclass = {cs.SE}, year = {2025}, } @article{alami2025accountability, title={{Accountability in Code Review: The Role of Intrinsic Drivers and the Impact of LLMs}}, author={Alami, Adam and Jensen, Victor Vadmand and Ernst, Neil A.}, journal={{ACM Transactions on Software Engineering and Methodology}}, year={2025}, number={1}, volume={2025}, doi={10.1145/3721127} } @article{collberg2007empirical, title={{An Empirical Study of Java Bytecode Programs}}, author={Collberg, Christian and Myles, Ginger and Stepp, Michael}, journal={{Software: Practice and Experience}}, volume={37}, number={6}, pages={581--641}, year={2007}, doi={10.1002/spe.776} } @inproceedings{rose2009bytecodes, title={{Bytecodes Meet Combinators: Invokedynamic on the JVM}}, author={Rose, John R.}, booktitle={{Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages}}, pages={1--11}, year={2009}, doi={10.1145/1711506.1711508} } @inproceedings{miecznikowski2002decompiling, title={{Decompiling Java Bytecode: Problems, Traps and Pitfalls}}, author={Miecznikowski, Jerome and Hendren, Laurie}, booktitle={{Proceedings of the International Conference on Compiler Construction}}, pages={111--127}, year={2002}, doi={10.1007/3-540-45937-5_10} } @inproceedings{blackburn2006dacapo, title={{The DaCapo Benchmarks: Java Benchmarking Development and Analysis}}, author={Blackburn, Stephen M. and Garner, Robin and Hoffmann, Chris and Khang, Asjad M. and McKinley, Kathryn S. and Bentzur, Rotem and Diwan, Amer and Feinberg, Daniel and Frampton, Daniel and Guyer, Samuel Z. and others}, booktitle={{Proceedings of the 21st Annual Conference on Object-Oriented Programming Systems, Languages, and Applications}}, pages={169--190}, year={2006}, doi={10.1145/1167515.1167488} } @article{georges2007statistically, title={{Statistically Rigorous Java Performance Evaluation}}, author={Georges, Andy and Buytaert, Dries and Eeckhout, Lieven}, journal={{ACM SIGPLAN Notices}}, volume={42}, number={10}, pages={57--76}, year={2007}, doi={10.1145/1297105.1297033} } @article{mazinanian2017understanding, title={{Understanding the Use of Lambda Expressions in Java}}, author={Mazinanian, Davood and Ketkar, Ameya and Tsantalis, Nikolaos and Dig, Danny}, journal={{Proceedings of the ACM on Programming Languages}}, volume={1}, number={1}, pages={1--31}, year={2017}, doi={10.1145/3133909} } @book{mcgraw2006software, title={{Software Security: Building Security in}}, author={McGraw, Gary}, year={2006}, publisher={Addison-Wesley}, doi={10.5555/1121680} } @misc{xu2025transformed, archiveprefix = {arXiv}, title={{{code\_transformed}: The Influence of Large Language Models on Code}}, author={Xu, Yuliang and Huang, Siming and Geng, Mingmeng and Wan, Yao and Shi, Xuanhua and Chen, Dongping}, eprint = {2506.12014}, primaryclass = {cs.CL}, year = {2025} } @inproceedings{santos2022program, title={{Program Analysis Using WALA}}, author={Santos, Joanna C. S. and Dolby, Julian}, booktitle={{Proceedings of the 30th Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering}}, pages={1819}, year={2022}, doi={10.1145/3540250.3569449} } @misc{duboscq2013graal, title={{Graal IR: An Extensible Declarative Intermediate Representation}}, author={Duboscq, Gilles and Stadler, Lukas and W{\"u}rthinger, Thomas and Simon, Doug and Wimmer, Christian and M{\"o}ssenb{\"o}ck, Hanspeter}, organization={{Proceedings of the Asia-Pacific Programming Languages and Compilers Workshop}}, year={2013} } @inproceedings{tian23tai, author = {Tan, Tian and Li, Yue}, title = {{{Tai-e}: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics}}, year = {2023}, doi = {10.1145/3597926.3598120}, booktitle = {{Proceedings of the 32nd International Symposium on Software Testing and Analysis}}, pages = {1093--1105}, } @inproceedings{reif2020tacai, title={{TACAI: An Intermediate Representation Based on Abstract Interpretation}}, author={Reif, Michael and K{\"u}bler, Florian and Helm, Dominik and Hermann, Ben and Eichberg, Michael and Mezini, Mira}, booktitle={{Proceedings of the 9th SIGPLAN International Workshop on the State of the Art in Program Analysis}}, pages={2--7}, year={2020}, doi={10.1145/3394451.3397204} } @inproceedings{eichberg2014software, title={{A Software Product Line for Static Analyses: The OPAL Framework}}, author={Eichberg, Michael and Hermann, Ben}, booktitle={{Proceedings of the 3rd SIGPLAN International Workshop on the State of the Art in Java Program Analysis}}, pages={1--6}, year={2014}, doi={10.1145/2614628.2614630} } @misc{yifeng2025repo, archiveprefix = {arXiv}, title={{RepoSummary: Feature-Oriented Summarization and Documentation Generation for Code Repositories}}, author={Zhu, Yifeng and Zhao, Xianlin and Li, Xutian and Zou, Yanzhen and Yuan, Haizhuo and Wang, Yue and Xie, Bing}, eprint = {2510.11039}, primaryclass = {cs.SE}, year = {2025} }