{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,5,22]],"date-time":"2024-05-22T20:35:18Z","timestamp":1716410118154},"reference-count":29,"publisher":"Wiley","issue":"2","license":[{"start":{"date-parts":[[2017,2,3]],"date-time":"2017-02-03T00:00:00Z","timestamp":1486080000000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Comp Applic In Engineering"],"published-print":{"date-parts":[[2017,3]]},"abstract":"ABSTRACT<\/jats:title>A key issue involved with software engineering education consists of how to guarantee that adequate software engineering principles are being followed at the code level, thus reinforcing that students produce high\u2010quality code. Reviewing and grading student projects to verify whether they followed such principles is a time\u2010consuming task, since this typically involves manual code inspection. In this paper, we exploit code quality tools and metrics to automatically assess student projects with respect to methods with many responsibilities (i.e., where the Extract Method refactoring should be applied), and evaluate their effectiveness. We conducted a study using two sets of student projects, developed in two academic semesters. Our results indicate that, to reduce the effort required to grade projects, two traditional code metrics, namely method lines of code and number of statements, perform best, and other metrics can be selected according to the system being implemented. \u00a9 2016 Wiley Periodicals, Inc. Comput Appl Eng Educ 25:230\u2013241, 2017; View this article online at wileyonlinelibrary.com\/journal\/cae<\/jats:ext-link>; DOI 10.1002\/cae.21793<\/jats:ext-link><\/jats:p><\/jats:sec>","DOI":"10.1002\/cae.21793","type":"journal-article","created":{"date-parts":[[2017,2,4]],"date-time":"2017-02-04T03:55:18Z","timestamp":1486180518000},"page":"230-241","source":"Crossref","is-referenced-by-count":4,"title":["Investigating code quality tools in the context of software engineering education"],"prefix":"10.1002","volume":"25","author":[{"given":"Danilo","family":"Silva","sequence":"first","affiliation":[{"name":"Universidade Federal de Minas Gerais Belo Horizonte Brazil"}]},{"given":"Ingrid","family":"Nunes","sequence":"additional","affiliation":[{"name":"Universidade Federal do Rio Grande do Sul Porto Alegre Brazil"},{"name":"TU Dortmund Dortmund Germany"}]},{"given":"Ricardo","family":"Terra","sequence":"additional","affiliation":[{"name":"Universidade Federal de Lavras Lavras Brazil"}]}],"member":"311","published-online":{"date-parts":[[2017,2,3]]},"reference":[{"key":"e_1_2_10_2_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2008.12.038"},{"key":"e_1_2_10_3_1","volume-title":"Engineering Software as a Service: An Agile Approach Using Cloud Computing","author":"Fox A.","year":"2013"},{"key":"e_1_2_10_4_1","doi-asserted-by":"crossref","unstructured":"V. T.Heikkil\u00e4 M.Paasivaara andC.Lassenius. Teaching university students Kanban with a collaborative board game in: 38th International Conference on Software Engineering (ICSE) 2016 pp471\u2013480.","DOI":"10.1145\/2889160.2889201"},{"key":"e_1_2_10_5_1","doi-asserted-by":"crossref","unstructured":"H.Cervantes S.Haziyev O.Hrytsay andR.Kazman Smart decisions: an architectural design game in: 38th International Conference on Software Engineering (ICSE) 2016 pp327\u2013335.","DOI":"10.1145\/2889160.2889184"},{"key":"e_1_2_10_6_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2010.10.042"},{"key":"e_1_2_10_7_1","doi-asserted-by":"crossref","unstructured":"I.K\u00e1d\u00e1r P.Heged\u00fcs R.Ferenc andT.Gyim\u00f3thy Assessment of the Code Refactoring Dataset Regarding the Maintainability of Methods Computational Science and Its Applications\u2014ICCSA2016 Volume 9789 of the series Lecture Notes in Computer Science 2016 pp610\u2013624.","DOI":"10.1007\/978-3-319-42089-9_43"},{"key":"e_1_2_10_8_1","doi-asserted-by":"crossref","unstructured":"I.K\u00e1d\u00e1r P.Hegedus R.Ferenc andT.Gyim\u00f3thy A Code Refactoring Dataset and Its Assessment Regarding Software Maintainability in: 23rd International Conference on Software Analysis Evolution and Reengineering (SANER) 2016 pp599\u2013603.","DOI":"10.1109\/SANER.2016.42"},{"key":"e_1_2_10_9_1","doi-asserted-by":"crossref","unstructured":"F.Arcelli Fontana M.Zanoni andF.Zanoni. A duplicated code refactoring advisor in: 16th International Conference on Agile Software Development (XP) 2015 pp3\u201314.","DOI":"10.1007\/978-3-319-18612-2_1"},{"key":"e_1_2_10_10_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2016.04.016"},{"key":"e_1_2_10_11_1","doi-asserted-by":"crossref","unstructured":"D.Silva R.Terra andM. T.Valente Recommending automated extract method refactorings in: 22nd International Conference on Program Comprehension (ICPC) 2014 pp146\u2013156.","DOI":"10.1145\/2597008.2597141"},{"key":"e_1_2_10_12_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2011.05.016"},{"key":"e_1_2_10_13_1","doi-asserted-by":"crossref","unstructured":"J.Van Eyck N.Bouc\u1e31e A.Helleboogh andT.Holvoet Using code analysis tools for architectural conformance checking in: 6th International Workshop on Sharing and Reusing Architectural Knowledge (SHARK) ACM New York USA 2011 pp53\u201354.","DOI":"10.1145\/1988676.1988687"},{"key":"e_1_2_10_14_1","volume-title":"An Introduction to Object\u2010Oriented Programming with Java","author":"Thomas Wu C.","year":"2009"},{"key":"e_1_2_10_15_1","unstructured":"M.Fowler Refactoring: Improving the Design of Existing Code Addison\u2010Wesley 1999."},{"key":"e_1_2_10_16_1","unstructured":"N.Tsantalis andA.Chatzigeorgiou Identification of Move Method refactoring opportunities IEEE Transactions on Software Engineering352009347\u2013367."},{"key":"e_1_2_10_17_1","doi-asserted-by":"crossref","unstructured":"M.Fokaefs N.Tsantalis andA.Chatzigeorgiou JDeodorant: Identification and removal of feature envy bad smells in: 23rd International Conference on Software Maintenance (ICSM) 2007 pp519\u2013520.","DOI":"10.1109\/ICSM.2007.4362679"},{"key":"e_1_2_10_18_1","doi-asserted-by":"crossref","unstructured":"K.Maruyama Automated method\u2010extraction refactoring by using block\u2010based slicing. In: Software reusability: putting software reuse in context Proceedings of the 2001 symposium (SSR '01) ACM New York NY USA 2001 pp31\u201340. DOI=https:\/\/doi.org\/10.1145\/375212.375233","DOI":"10.1145\/375212.375233"},{"key":"e_1_2_10_19_1","unstructured":"S. R.Chidamber andC. F.Kemerer A metrics suite for object oriented design IEEE Transactions on Software Engineering201994476\u2013493."},{"key":"e_1_2_10_20_1","volume-title":"Object\u2010Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object\u2010Oriented Systems","author":"Lanza M.","year":"2010"},{"key":"e_1_2_10_21_1","volume-title":"Object\u2010oriented metrics: measures of complexity","author":"Henderson\u2010Sellers B.","year":"1996"},{"key":"e_1_2_10_22_1","unstructured":"R.Martin OO design quality metrics: an analysis of dependencies in: Workshop on Pragmatic and Theoretical Directions in Object\u2010Oriented Software Metrics New York NY USA 1994 pp1\u20138."},{"key":"e_1_2_10_23_1","unstructured":"V.Basili R.Selby andD.Hutchens Experimentation in software engineering IEEE Transactions on Software Engineering121986733\u2013743."},{"key":"e_1_2_10_24_1","doi-asserted-by":"publisher","DOI":"10.3926\/jotse.146"},{"key":"e_1_2_10_25_1","doi-asserted-by":"crossref","unstructured":"S.Pape J.Flake A.Beckmann andJ.J\u00fcrjens STAGE: a software tool for automatic grading of testing exercises: case study paper in: 38th International Conference on Software Engineering Companion (ICSE) 2016 pp491\u2013500.","DOI":"10.1145\/2889160.2889203"},{"key":"e_1_2_10_26_1","doi-asserted-by":"crossref","unstructured":"P.Ihantola T.Ahoniemi V.Karavirta andO.Sepp\u00e4l\u00e4. Review of recent systems for automatic assessment of programming assignments in: 10th Koli Calling International Conference on Computing Education Research 2010 pp86\u201393.","DOI":"10.1145\/1930464.1930480"},{"key":"e_1_2_10_27_1","unstructured":"D.Evans Teaching software engineering using lightweight analysis Technical report University of Virginia2001."},{"key":"e_1_2_10_28_1","doi-asserted-by":"crossref","unstructured":"T.McCabe A complexity measure IEEE Transactions on Software Engineering SE\u20102 (4) (1976)308\u2013320.","DOI":"10.1109\/TSE.1976.233837"},{"key":"e_1_2_10_29_1","doi-asserted-by":"crossref","unstructured":"P.Oliveira M. T.Valente andF.Lima Extracting relative thresholds for source code metrics in: IEEE Conference on Software Maintenance Reengineering and Reverse Engineering (CSMR\u2010WCRE) 2014 pp254\u2013263.","DOI":"10.1109\/CSMR-WCRE.2014.6747177"},{"key":"e_1_2_10_30_1","doi-asserted-by":"crossref","unstructured":"T.Alves C.Ypma andJ.Visser Deriving metric thresholds from benchmark data in: International Conference on Software Maintenance (ICSM) 2010 pp1\u201310.","DOI":"10.1109\/ICSM.2010.5609747"}],"container-title":["Computer Applications in Engineering Education"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fcae.21793","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/cae.21793","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,7]],"date-time":"2023-10-07T02:14:40Z","timestamp":1696644880000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/cae.21793"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,2,3]]},"references-count":29,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2017,3]]}},"alternative-id":["10.1002\/cae.21793"],"URL":"https:\/\/doi.org\/10.1002\/cae.21793","archive":["Portico"],"relation":{},"ISSN":["1061-3773","1099-0542"],"issn-type":[{"value":"1061-3773","type":"print"},{"value":"1099-0542","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,2,3]]}}}