On the Applicability of SOFA/SODA Antipattern Detection Approach to Multi-Module Solutions via a Pluggable Pre-Build Linter
News
On the Applicability of SOFA/SODA Antipattern Detection Approach to Multi-Module Solutions via a Pluggable Pre-Build Linter
Abstract
This paper studies the applicability of the SOFA/SODA formalism, originally proposed for the detection of antipatterns in service-oriented systems, to the problem of structural analysis of multi-module software projects. We formulate antipattern detection as the evaluation of declarative rules over a static component dependency graph and propose a pluggable architecture in which any project that can expose its component graph through a small adapter interface becomes a valid input for the analyzer. The SOFA layer is implemented as a fixed set of graph metrics and the SODA layer as a set of declarative rule cards. A prototype command-line tool is implemented in Go with external rule plugins; two adapters cover the SwiftPM and Gradle ecosystems. The evaluation on two reference projects with labelled violations gives F_1=1.00 on the Swift project (13 violations, no false positives), zero false positives on the Kotlin control project, and 80% of the rules reusable between the two ecosystems. Our findings suggest that SOFA/SODA can be carried over from service-oriented systems to structural linting of multi-module projects in general, as long as a suitable project adapter is available.
Keywords
Edition
Proceedings of the Institute for System Programming, vol. 38, issue 5, 2026, pp. 119-132
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
DOI: 10.15514/ISPRAS-2026-38(5)-8
For citation
Full text of the paper in pdf
Back to the contents of the volume