Framework for Software Code Reviews and Inspections in a Classroom Environment

Full Text (PDF, 452KB), PP.31-39

Views: 0 Downloads: 0

Author(s)

Fernando Almeida 1,*

1. Faculty of Engineering of Oporto University, INESC TEC, Porto, Portugal

* Corresponding author.

DOI: https://doi.org/10.5815/ijmecs.2018.10.04

Received: 17 Aug. 2018 / Revised: 26 Aug. 2018 / Accepted: 5 Sep. 2018 / Published: 8 Oct. 2018

Index Terms

Code Review, Education, Learning, Software Engineering, Software Development, Software Quality

Abstract

Code reviews and inspections have the purpose to ensure that the code has sufficient quality to be released. It is generally seen as an economical way of finding errors, increase team productivity and sharing technical and product knowledge among team members. This approach is traditionally adopted in software development companies, but their practices may be useful in other contexts, such as in the process of learning software engineering. In this sense, this study proposes an innovative framework for conducting code reviews in a Computer Science course. The proposed framework can be applied in any object-oriented program language, and it is sufficiently concise to be applied in the classroom, namely in a 90-minute session in which all students are invited to collaborate in this process. The findings suggest that code reviews in an academic context can help students to strategically reflect about the performed work, enhance their soft skills, and increase their ability to work in groups. On the other hand, as the main challenges, the findings reveal that students typically don’t have previous experience in performing inspections and it can become difficult to perform a complete inspection in a classroom session.

Cite This Paper

Fernando Almeida, " Framework for Software Code Reviews and Inspections in a Classroom Environment", International Journal of Modern Education and Computer Science(IJMECS), Vol.10, No.10, pp. 31-39, 2018. DOI:10.5815/ijmecs.2018.10.04

Reference

[1]I. Sommerville, Software Engineering. Pearson Education, 2015.
[2]M. Zhivich and R. Cunningham, “The Real Cost of Software Errors”, Secure Systems, vol. March/April, pp. 87-90, 2009.
[3]L. Bergmane, J. Grabis and E. Zeiris, “A Case Study: Software Defect Root Causes”, Information Technology and Management Science, vol. 20, pp. 54-57, 2017.
[4]J. Dooley, Walkthroughs, Code Reviews, and Inspections. Apress, 2011.
[5]IEEE, “IEEE Standard for Software Reviews and Audits”, IEEE Standards. Retrieved 2018, May 28, from https://ieeexplore.ieee.org/document/4601584/
[6]A. Mishra and H. Shukla, “Software Inspection: An Overview”, International Journal of Advanced Computational Engineering and Networking, vol. 1, no. 5, pp. 32-34, 2013.
[7]A. Qazi, S. Shahzadi and M. Humayun, “A Comparative Study of Software Inspection Techniques for Quality Perspective”, International Journal of Modern Education and Computer Science, vol. 10, pp. 9-16, 2016.
[8]Y. Zhu, Software Reading Techniques: Twenty Techniques for More Effective Software Review and Inspection. Apress, 2016.
[9]S. Kollanus and J. Koskinen, “Survey of Software Inspection Research”, The Open Software Engineering Journal, vol. 3, pp. 15-34, 2009.
[10]T. Devi, “Improving Quality of Software through Formal Inspection”, International Journal of Engineering Research and Application (IJERA), vol. 2, no. 1, pp. 552-557, 2012.
[11]J. Coelho, J. Braga and B. Ambrósio, “System dynamics model for simulation of the software inspection process”, ACM SIGSOFT Software Engineering Notes, vol. 38, no. 5, pp. 1-8, 2013.
[12]I. Akpannah, “Optimization of Software Quality using Management and Technical Review Techniques”, International Journal of Computer Trends and Technology (IJCTI), vol. 17, no. 6, pp. 304-309, 2014.
[13]A. Ahad, Z. Ullah, L. Tariq and S. Niaz, “Software Inspections and Their Role in Software Quality Assurance”, American Journal of Software Engineering and Applications, vol. 6, no. 4, pp. 105-110, 2017.
[14]G. O’Regan, A Practical Approach to Software Quality. Springer-Verlag, 2012.
[15]A. Alshazly, A. Elfatatry and M. Abougabal, “Detecting defects in software requirements specification”, Alexandria Engineering Journal, vol. 53, pp. 513-527, 2014.
[16]G. Huzooree and V. Ramdoo, “Evaluation of Code Inspection on an Outsourced Software Project in Mauritius”, International Journal of Computer Applications, vol. 113, no. 10, pp. 39-44, 2015.
[17]K. Wiegers, Peer Reviews in Software: A Practical Guide. Addison-Wesley Professional, 2001.
[18]L. Copeland, A Practitioner’s Guide to Software Test Design. Artech House, 2013.
[19]A. Bhuyan, “Code Review Principles, Processes and Tools”, Retrieved 2018, May 29, from https://www.scribd.com/document/291887013/Code-Review-Principles-Process-and-Tools
[20]D. Galin, Software Quality: Concepts and Practice. Wiley-IEEE Computer Society, 2018.
[21]S. McIntosh, Y. Kamei, B. Adams and A. Hassan, “The impact of code review coverage and code review participation on software quality: a case study of the qt, VTK, and ITK projects”, Proceedings of the 11th Working Conference on Mining Software Repositories, Hyderabad, India, pp. 192-201, 2014.
[22]A. Koru, D. Zhang, K. Eman and H. Liu, “An Investigation into the Functional Form of the Size-Defect Relationship for Software Modules”, Transactions on Software Engineering (TSE), vol. 35, no. 2, pp. 293-304, 2009.
[23]N. Nagappan and T. Ball, “Using Software Dependencies and Churn Metrics to Predict Field Failures: An Empirical Case Study”, Proceedings of the 1st International Symposium on Empirical Software Engineering and Measurement (ESEM), Madrid, Spain, pp. 364-373, 2007.
[24]S. Ahmed and R. Purohit, “Evaluating Efficiency and Effectiveness of Code Reading Technique with an Emphasis on Enhancing Software Quality”, International Journal of Computer Applications, vol. 2, pp. 32-36, 2014.
[25]E. Santos and I. Nunes, “Investigating the Effectiveness of Peer Code Review in Distributed Software Development”, Proceedings of the 31st Brazilian Symposium on Software Engineering, Fortaleza, Brazil, pp. 84-93, 2017.
[26]S. Nelson and J. Schumann, “What makes a Code Review Trustworthy?”, Proceedings of the Thirty-Seventh Annual Hawaii Int. Conf. on System Sciences (HICSS-37), Hawaii, USA, pp. 1-10. 2004.
[27]T. Gee, “Ways to Make Code Reviews More Effective”, Retrieved 2018, May 30, from https://www.infoq.com/articles/effective-code-reviews
[28]A. Bacchelli and C. Bird, “Expectations, outcomes, and challenges of modern code review”, Proceedings of the 2013 International Conference on Software Engineering, San Francisco, USA, pp. 712-721, 2013.
[29]J. McCrary, “An Effective Code Review Process”, Retrieved 2018, May 30, from https://jakemccrary.com/blog/2014/12/09/an-effective-code-review-process/
[30]A. Bosu, M. Greiler and C. Bird, “Characteristics of useful code reviews: an empirical study at Microsoft”, Proceedings of the 12th Working Conference on Mining Software Repositories, Florence, Italy, pp. 146-156, 2015.
[31]J. Cohen, S. Teleki and E. Brown, Best kept secrets of peer code review. SmartBear Software, 2013.
[32]N. Fogelström and T. Gorschek, “Test-case Driven versus Checklist-based Inspections of Software Requirements – An Experimental Evaluation”, Retrieved 2018, May 29, from http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.218.5538
[33]A. Dunsmore, M. Roper and M. Wood, “Practical Code Inspection Techniques for Object-Oriented Systems: An Experimental Comparison”, IEEE Software, vol. 20, no. 4, pp. 21-29, 2003.
[34]H. Sondergaard and R. Mulder, “Collaborative learning through formative peer review: Pedagogy, programs and potential”, Computer Science Education, vol. 22, pp. 343-467, 2012.
[35]Y. Wang, H. Li, Y. Feng, Y. Jiang and Y. Liu, “Assessment of programming language learning based on peer code review model: Implementation and experience report”, Computers & Education, vol. 59, pp. 412-422, 2012.
[36]H. Pon-Barry, B. Packard and A. John, “Expanding capacity and promoting inclusion in introductory computer science: a focus on near-peer mentor preparation and code review”, Computer Science Education, vol. 27, no. 1, pp. 54-77, 2017.
[37]C. Van Bael, “Feature Review Checklist”, Retrieved 2018, June 22, from https://www.polteq.com/wp-content/uploads/2016/06/Gherkin-Checklists-1.pdf
[38]G. Khattak and P. Koopman, “Embedded System Code Review Checklist”, Retrieved 2018, June 22, from https://users.ece.cmu.edu/~koopman/pubs/code_review_checklist_v1_00.pdf
[39]J. Dalbey, “Code Review Checklist – Java”, Retrieved 2018, June 22, from http://users.csc.calpoly.edu/~jdalbey/301/Forms/CodeReviewChecklistJava.doc
[40]M. Ernst, “Code Review Framework”, Retrieved 2018, June 22, from https://homes.cs.washington.edu/
[41]C. Marshall and G. Rossman, Designing Qualitative Research. SAGE Publications, 2015.
[42]S. Oltmann, “Qualitative Interviews: A Methodological Discussion of the Interviewer and Respondent Contexts”, Forum: Qualitative Social Research, vol. 17, no. 2, art. 15, 2016.
[43]A. Queirós, D. Faria and F. Almeida, “Strengths and Limitation of Qualitative and Quantitative Research Methods”, European Journal of Education Studies, vol. 3, no. 9, pp. 369-387, 2017.