September 11, 2020 /

New Publication on Service-Based Maintainability Metrics from RESTful APIs

Justus Bogner of the Empirical Software Engineering group will present a paper on collecting service-based maintainability metrics from RESTful APIs using static analysis and their thresholds next week at the Joint Workshop CSE/QUDOS 2020. It proposes the flexible RAMA approach to perform such metric collection. It thereby provides a novel way of measuring maintainability not on the code level but on the architectural level of service-based software systems.

While many maintainability metrics have been explicitly designed for service-based systems, tool-supported approaches to automatically collect these metrics are lacking. Especially in the context of microservices, decentralization and technological heterogeneity may pose challenges for static analysis. We therefore propose the modular and extensible RAMA approach (RESTful API Metric Analyzer) to calculate such metrics from machine-readable interface descriptions of RESTful services. We also provide prototypical tool support, the RAMA CLI, which currently parses the formats OpenAPI, RAML, and WADL and calculates 10 structural service-based metrics proposed in scientific literature. To make RAMA measurement results more actionable, we additionally designed a repeatable benchmark for quartile-based threshold ranges (green, yellow, orange, red). In an exemplary run, we derived thresholds for all RAMA CLI metrics from the interface descriptions of 1,737 publicly available RESTful APIs. Researchers and practitioners can use RAMA to evaluate the maintainability of RESTful services or to support the empirical evaluation of new service interface metrics.

This new paper by the Empirical Software Engineering group in collaboration with Reutlingen University will by presented by Justus Bogner next week at the 5th Workshop on Continuous Software Engineering and 6th International Workshop on Quality-Aware DevOps. The official publication can be found here and the open preprint here. The supporting tool is open source and available on GitHub.

To the top of the page