ABSTRACT
Context. Code quality is a key issue in software development. The ability to develop high quality software is therefore a key learning goal of computing programs. However, there are no universally accepted measures to assess the quality of code and current standards are considered weak. Furthermore, there are many facets to code quality. Defining and explaining the concept of code quality is therefore a challenge faced by many educators.
Objectives. In this working group, we investigated code quality as perceived by students, educators, and professional developers, in particular, the differences in their views of code quality and which quality aspects they consider as more or less important. Furthermore, we investigated their sources for information about code quality and its assessment.
Methods. We interviewed 34 students, educators and professional developers regarding their perceptions of code quality. For the interviews they brought along code from their own experience to discuss and exemplify code quality.
Results. There was no common definition of code quality among or within these groups. Quality was mostly described in terms of indicators that could measure an aspect of code quality. Among these indicators, readability was named most frequently by all groups. The groups showed significant differences in the sources they use for learning about code quality with education ranked lowest in all groups.
Conclusions. Code quality should be discussed more thoroughly in educational programs.
- Yonatan Woodbridge, and Dror G Feitelson 2017 Syntax, predicates, idioms: what really affects code complexity?. Proceedings of the 25th International Conference on Program Comprehension 66--76. Google ScholarDigital Library
- Eran Avidan and Dror G Feitelson 2017 Effects of variable names on comprehension an empirical study. Proceedings of the 25th International Conference on Program Comprehension 55--65. Google ScholarDigital Library
- Gabriele Bavota and Barbara Russo 2015 Four eyes are better than two: On the impact of code reviews on software quality. Proceedings of the 31st IEEE International Conference on Software Maintenance and Evolution 81--90. Google ScholarDigital Library
- Kent Beck 2002\natexlab.booktitle Test Driven Development: By Example. Addison-Wesley Professional. ISBNx978-0321146533 Google ScholarDigital Library
- Gal Beniamini, Sarah Gingichashvili, Alon Klein Orbach, and Dror G Feitelson 2017 Meaningful identifier names: the case of single-letter variables. Proceedings of the 25th International Conference on Program Comprehension 45--54. Google ScholarDigital Library
- Barry Boehm 2016 Improving and balancing software qualities. Proceedings of the 38th International Conference on Software Engineering Companion 890--891. Google ScholarDigital Library
- Jürgen Börstler, Mark S Hall, Marie Nordström, James H Paterson, Kate Sanders, Carsten Schulte, and Lynda Thomas 2010 An evaluation of object oriented example programs in introductory programming textbooks.journal ACM SIGCSE Bulletinvolume41,number4 (2010),pages126--143. Google ScholarDigital Library
- Jürgen Börstler, Marie Nordström, and James H Paterson 2011 On the quality of examples in introductory Java textbooks.journal ACM Transactions on Computing Educationvolume11,number1 (2011),pages3. Google ScholarDigital Library
- Neil CC Brown and Amjad Altadmri 2017 Novice Java programming mistakes: large-scale data vs. educator beliefs.journal ACM Transactions on Computing Educationvolume17,number2 (2017). Google ScholarDigital Library
- Simon Butler, Michel Wermelinger, Yijun Yu, and Helen Sharp 2010 Exploring the influence of identifier names on code quality: An empirical study. Proceedings of the 14th European Conference on Software Maintenance and Reengineering 156--165. Google ScholarDigital Library
- Norman Fenton and James Bieman 2014\natexlab.booktitle Software metrics: a rigorous and practical approach. CRC Press. Google ScholarDigital Library
- Gal Lalouche 2017 On the correlation between size and metric validity.journal Empirical Software Engineeringvolume22,number5 (2017),pages2585--2611. Google ScholarDigital Library
- Robert Green and Henry Ledgard 2011 Coding Guidelines: Finding the Art in the Science.journal Commun. ACMvolume54,number12 (2011),pages57--63. Google ScholarDigital Library
- Les Hatton 2008 Testing the value of checklists in code inspections.journal IEEE softwarevolume25,number4 (2008),pages82--88. Google ScholarDigital Library
- Christopher D Hundhausen, Anukrati Agrawal, and Pawan Agarwal Talking about code: Integrating pedagogical code reviews into early computing courses.journal ACM Transactions on Computing Educationvolume13,number3 (2013),pages14. Google ScholarDigital Library
- Ronald Jabangwe, Jürgen Börstler, Darjav Smite, and Claes Wohlin 2015 Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review.journal Empirical Software Engineeringvolume20,number3 (2015),pages640--693. Google ScholarDigital Library
- Joint ACM/IEEE Task Force on Computing Curricula .booktitle Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science.typeTechnical Report.institutionACM & IEEE Computer Society. Google ScholarDigital Library
- Hieke Keuning, Bastiaan Heeren, and Johan Jeuring 2017 Code quality Issues in Student Programs. Proceedings of the 22nd Annual Conference on Innovation and Technology in Computer Science Education. Google ScholarDigital Library
- Hieke Keuning, Johan Jeuring, and Bastiaan Heeren 2016 Towards a systematic review of automated feedback generation for programming exercises. Proceedings of the 22rd Annual Conference on Innovation and Technology in Computer Science Education 41--46. Google ScholarDigital Library
- Päivi Kinnunen and Beth Simon 2010 Building theory about computing education phenomena: a discussion of grounded theory. Proceedings of the 10th Koli Calling International Conference on Computing Education Research. ACM,pages37--42. Google ScholarDigital Library
- Sami Kollanus and Jussi Koskinen Survey of Software Inspection Research.journal The Open Software Engineering Journalvolume3,number1 (2009),pages15--34.Google Scholar
- Taek Lee and Jung-Been Lee 2015 Effect analysis of coding convention violations on readability of post-delivered code.journal IEICE TRANSACTIONS on Information and SystemsvolumeE98-D,number7 (2015),pages1286--1296.Google Scholar
- T.C. Lethbridge, R.J. LeBlanc, A.E.K. Sobel, T.B. Hilburn, and J.L. Diaz-Herrera 2006 SE2004: Recommendations for undergraduate software engineering curricula.journal IEEE Softwarevolume23,number6 (2006),pages19--25. Google ScholarDigital Library
- Romero Malaquias, Márcio Ribeiro, Rodrigo Bonifácio, Eduardo Monteiro, Flávio Medeiros, Alessandro Garcia, and Rohit Gheyi 2017 The discipline of preprocessor-based annotations does\# ifdef TAG n't\# endif matter. Proceedings of the 25th International Conference on Program Comprehension 297--307. Google ScholarDigital Library
- Robert C. Martin 2008\natexlab.booktitle Clean Code: A Handbook of Agile Software Craftsmanship. Prentice-Hall. ISBNx978-0132350884 Google ScholarDigital Library
- José P Miguel, David Mauricio, and Glen Rodrïguez 2014 A review of software quality models for the evaluation of software products.journal International Journal of Software Engineering & Applicationsvolume5,number6 (2014),pages31--53.Google Scholar
- Eric S. Raymond 2010\natexlab.booktitle The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary. www.snowballpublishing.com. ISBNx978--1607962281 Google ScholarDigital Library
- Johannes Siedersleben 2002\natexlab.booktitle Softwaretechnik: Praxiswissen für Softwareingenieure (\edition2 ed.). Carl Hanser Verlag. ISBNx978--3446218437Google Scholar
- Saikrishna Sripada, Y Raghu Reddy, and Ashish Sureka 2015 In support of peer code review and inspection in an undergraduate software engineering course. Software Engineering Education and Training (CSEET), 2015 IEEE 28th Conference on 3--6. Google ScholarDigital Library
- Martijn Stegeman, Erik Barendsen, and Sjaak Smetsers 2014 Towards an empirically validated model for assessment of code quality. Proceedings of the 14th Koli Calling International Conference on Computing Education Research 99--108. Google ScholarDigital Library
- Martijn Stegeman, Erik Barendsen, and Sjaak Smetsers 2016 Designing a rubric for feedback on code quality in programming courses. Proceedings of the 16th Koli Calling International Conference on Computing Education Research 160--164. Google ScholarDigital Library
- Michael Striewe and Michael Goedicke 2014 A review of static analysis approaches for programming exercises. International Computer Assisted Assessment Conference 100--113.Google ScholarCross Ref
- Ted Tenny Program readability: Procedures versus comments.journal IEEE Transactions on Software Engineeringvolume14,number9 (1988),pages1271--1279. Google ScholarDigital Library
Index Terms
- "I know it when I see it" Perceptions of Code Quality: ITiCSE '17 Working Group Report
Recommendations
How Teachers Would Help Students to Improve Their Code
ITiCSE '19: Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science EducationCode quality has been receiving less attention than program correctness in both the practice of and research into programming education. Writing poor quality code might be a sign of carelessness, or not fully understanding programming concepts and ...
On Assuring Learning About Code Quality
ACE'20: Proceedings of the Twenty-Second Australasian Computing Education ConferenceMost of the lifetime cost of a software product is incurred after it is first delivered, i.e. during the maintenance phase. It is generally acknowledged that the quality of the code significantly impacts maintenance costs. This suggests that "code ...
"I know it when I see it": Perceptions of Code Quality
ITiCSE '17: Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science EducationCode quality is a key issue in software development. The ability to develop software of high quality is therefore a key learning goal of computing programs. However, there are no universally accepted measures to assess the quality of code and current ...
Comments