skip to main content
10.1145/3661167.3661290acmotherconferencesArticle/Chapter ViewAbstractPublication PageseaseConference Proceedingsconference-collections
research-article
Open access

Automatic Assessment of Architectural Anti-patterns and Code Smells in Student Software Projects

Published: 18 June 2024 Publication History

Abstract

When teaching Programming and Software Engineering in Bachelor’s Degree programs, the emphasis on creating functional software projects often overshadows the focus on software quality, a trend consistent with ACM curricula recommendations. Dedicated Software Engineering courses take typically place in the later stages of the curriculum, and allocate only limited time to software quality, leaving educators with the difficult task of deciding which quality aspects to prioritize. To educate students on the importance of developing high-quality code, it is important to introduce these skills as part of the assessment criteria. To this end, we have implemented a pipeline based on advanced frameworks such as ArchUnit and SonarQube. It was successfully tested on a class of students engaged in the Object Oriented Programming course, demonstrating its usefulness as a resource for educators and providing some concrete evidence of quality problems in student projects.

References

[1]
Jonathan Aldrich, Craig Chambers, and David Notkin. 2002. ArchJava: Connecting Software Architecture to Implementation. In Proceedings of the 24th International Conference on Software Engineering(ICSE ’02). ACM, 187–197.
[2]
Alison Clear, Allen S Parrish, John Impagliazzo, and Ming Zhang. 2019. Computing Curricula 2020: introduction and community engagement. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education. 653–654.
[3]
P. Clements, D. Garlan, R. Little, R. Nord, and J. Stafford. 2003. Documenting software architectures: views and beyond. In 25th International Conference on Software Engineering, 2003. Proceedings.740–741.
[4]
Pedro Henrique de Andrade Gomes, Rogério Eduardo Garcia, Gabriel Spadon, Danilo Medeiros Eler, Celso Olivete, and Ronaldo Celso Messias Correia. 2017. Teaching software quality via source code inspection tool. In 2017 IEEE Frontiers in Education Conference (FIE). 1–8. https://doi.org/10.1109/FIE.2017.8190658
[5]
Peter J Denning. 1992. What is software quality?Commun. ACM 35, 1 (1992), 13–15.
[6]
Sergio Di Meglio, Luigi Libero Lucio Starace, Marco De Luca, Porfirio Tramontana, and Anna Rita Fasolino. 2024. Automatic assessment of architectural anti-patterns and code smells in Student Software Projects. https://zenodo.org/records/10800604
[7]
Tomáš Effenberger and Radek Pelánek. 2022. Code Quality Defects across Introductory Programming Topics. In 53rd ACM Technical Symposium on Computer Science Education - Volume 1(SIGCSE 2022). ACM, 941–947.
[8]
John Estdale and Elli Georgiadou. 2018. Applying the ISO/IEC 25010 quality models to software product. In Systems, Software and Services Process Improvement: 25th European Conference, EuroSPI 2018, Bilbao, Spain, September 5-7, 2018, Proceedings 25. Springer, 492–503.
[9]
Julian Jansen, Ana Oprescu, and Magiel Bruntink. 2017. The impact of automated code quality feedback in programming education. CEUR Workshop Proceedings 2070 (2017).
[10]
Hieke Keuning, Bastiaan Heeren, and Johan Jeuring. 2017. Code Quality Issues in Student Programs. In ACM Conference on Innovation and Technology in Computer Science Education(ITiCSE ’17). ACm, 110–115.
[11]
Valentina Lenarduzzi, Fabiano Pecorelli, Nyyti Saarimaki, Savanna Lujan, and Fabio Palomba. 2023. A critical comparison on six static analysis tools: Detection, agreement, and precision. Journal of Systems and Software 198 (2023), 111575. https://doi.org/10.1016/j.jss.2022.111575
[12]
Yao Lu, Xinjun Mao, Tao Wang, Gang Yin, and Zude Li. 2019. Improving students’ programming quality with the continuous inspection process: a social coding perspective. Frontiers of Computer Science 14, 5 (2019). https://doi.org/10.1007/s11704-019-9023-2
[13]
Robert C Martin. 2009. Clean code: a handbook of agile software craftsmanship. Pearson Education.
[14]
Ran Mo, Yuanfang Cai, Rick Kazman, Lu Xiao, and Qiong Feng. 2021. Architecture Anti-Patterns: Automatically Detectable Violations of Design Principles. IEEE Transactions on Software Engineering 47, 5 (2021), 1008–1028.
[15]
Mary Shaw and David Garlan. 1996. Software architecture: perspectives on an emerging discipline. Prentice-Hall, Inc.
[16]
Qing Sun, Ji Wu, and Kaiqi Liu. 2020. Toward understanding Students’ learning performance in an object-oriented programming course: The perspective of program quality. IEEE Access 8 (2020), 37505–37517.
[17]
Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. 2010. Software Architecture: Foundations, Theory, and Practice. John Wiley & Sons.
[18]
Alla Zakurdaeva, Michael Weiss, and Steven Muegge. 2020. Detecting architectural integrity violation patterns using machine learning. In 35th Annual ACM Symposium on Applied Computing(SAC ’20). ACM, 1480–1487.

Cited By

View all
  • (2024)A Methodology for Analysing Code Anomalies in Open-Source Software Using Big Data Analytics2024 IEEE International Conference on Big Data (BigData)10.1109/BigData62323.2024.10825952(8216-8218)Online publication date: 15-Dec-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
EASE '24: Proceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering
June 2024
728 pages
ISBN:9798400717017
DOI:10.1145/3661167
This work is licensed under a Creative Commons Attribution International 4.0 License.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 June 2024

Check for updates

Author Tags

  1. architectural anti-patterns
  2. code quality
  3. oop courses
  4. quality criteria

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

Conference

EASE 2024

Acceptance Rates

Overall Acceptance Rate 71 of 232 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)186
  • Downloads (Last 6 weeks)44
Reflects downloads up to 17 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)A Methodology for Analysing Code Anomalies in Open-Source Software Using Big Data Analytics2024 IEEE International Conference on Big Data (BigData)10.1109/BigData62323.2024.10825952(8216-8218)Online publication date: 15-Dec-2024

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media