Architecture-Aware Static Analysis and Violation Detection of C# Student Submissions
Static analysis of student programming submissions has proven a useful supplement to manual evaluation in university courses, but existing approaches focus on local code-quality issues and rarely check higher-level design decisions such as architectural conformance. We propose an architecture-aware static-analysis methodology for student submissions written in C# and structured according to the Model-View (MV) or Model-View-ViewModel (MVVM) architectures. A deterministic clustering algorithm assigns user-defined types to architectural layers by combining heuristic rules derived from SDK conventions with course-specific information, and our 10 proposed violation checks—covering layer-dependency rules, encapsulation, event handling, and dependence on concretions—are evaluated on the recovered layer structure. We implemented the methodology as an open-source analyzer integrated with an automated submission-evaluation system used in a university course focused on event-driven applications, and evaluated it on 947 submissions containing 13,126 user-defined types from past semesters. The analyzer assigned more than 98% of types to their correct layer and surfaced more than 6000 architectural and design issues. The results show that architecture-aware static analysis is a viable complement to manual grading and produces actionable feedback for both students and lecturers.
Authors
- Judit Szűcs (ORCID: https://orcid.org/0000-0002-9828-3322)
- Máté Cserép (ORCID: https://orcid.org/0000-0002-3168-7736)
- Bálint Dominik Orosz
Institutions
- Eötvös Loránd University (HU)
- University of Pannonia (HU)
Publication Details
- Journal
- Computers
- Published
- 2026-06-25
- DOI
- https://doi.org/10.3390/computers15070404
- Primary Topic
- Teaching and Learning Programming
- Type
- article
- Field-Weighted Citation Impact
- 0.00