On the Applicability of SOFA/SODA Antipattern Detection Approach to Multi-Module Solutions via a Pluggable Pre-Build Linter


On the Applicability of SOFA/SODA Antipattern Detection Approach to Multi-Module Solutions via a Pluggable Pre-Build Linter

Timonin A.S. (NRU HSE, Moscow, Russia)
Shershakov S.A. (NRU HSE, Moscow, Russia)

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

multi-module projects; structural analysis; software antipatterns; SOFA; SODA; static analysis; dependency graph.

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

Timonin A.S., Shershakov S.A. On the Applicability of SOFA/SODA Antipattern Detection Approach to Multi-Module Solutions via a Pluggable Pre-Build Linter. Proceedings of the Institute for System Programming, vol. 38, issue 5, 2026, pp. 119-132 DOI: 10.15514/ISPRAS-2026-38(5)-8.

Full text of the paper in pdf Back to the contents of the volume