Collecting Service-Based Maintainability Metrics from RESTful API Descriptions: Static Analysis and Threshold Derivation

被引:11
作者
Bogner, Justus [1 ]
Wagner, Stefan [1 ]
Zimmermann, Alfred [2 ]
机构
[1] Univ Stuttgart, Inst Software Engn, Stuttgart, Germany
[2] Univ Appl Sci Reutlingen, Herman Hollerith Ctr, Reutlingen, Germany
来源
SOFTWARE ARCHITECTURE, ECSA 2020 TRACKS AND WORKSHOPS | 2020年 / 1269卷
关键词
RESTful services; Microservices; Maintainability; Size; Complexity; Cohesion; Metrics; Static analysis; API documentation;
D O I
10.1007/978-3-030-59155-7_16
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
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.
引用
收藏
页码:215 / 227
页数:13
相关论文
共 27 条
[1]  
[Anonymous], 2014, Web Services Foundations
[2]   Cohesion-Driven Decomposition of Service Interfaces without Access to Source Code [J].
Athanasopoulos, Dionysis ;
Zarras, Apostolos V. ;
Miskos, George ;
Issarny, Valerie ;
Vassiliadis, Panos .
IEEE TRANSACTIONS ON SERVICES COMPUTING, 2015, 8 (04) :550-562
[3]   Standardized code quality benchmarking for improving software maintainability [J].
Baggen, Robert ;
Correia, Jose Pedro ;
Schill, Katrin ;
Visser, Joost .
SOFTWARE QUALITY JOURNAL, 2012, 20 (02) :287-307
[4]   Data Complexity Metrics for XML Web Services [J].
Basci, Dilek ;
Misra, Sanjay .
ADVANCES IN ELECTRICAL AND COMPUTER ENGINEERING, 2009, 9 (02) :9-15
[5]  
Bogner J, 2017, P 27 INT WORKSH SOFT, P107, DOI [10.1145/3143434, DOI 10.1145/3143434.3143443]
[6]   Assuring the Evolvability of Microservices: Insights into Industry Practices and Challenges [J].
Bogner, Justus ;
Fritzsch, Jonas ;
Wagner, Stefan ;
Zimmermann, Alfred .
2019 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2019), 2019, :546-556
[7]   A Modular Approach to Calculate Service-Based Maintainability Metrics from Runtime Data of Microservices [J].
Bogner, Justus ;
Schlinger, Steffen ;
Wagner, Stefan ;
Zimmermann, Alfred .
PRODUCT-FOCUSED SOFTWARE PROCESS IMPROVEMENT, PROFES 2019, 2019, 11915 :489-496
[8]   Microservices in Industry: Insights into Technologies, Characteristics, and Software Quality [J].
Bogner, Justus ;
Fritzsch, Jonas ;
Wagner, Stefan ;
Zimmermann, Alfred .
2019 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE COMPANION (ICSA-C 2019), 2019, :187-195
[9]  
Brauer J., 2017, P 27 INT WORKSH SOFT, P244, DOI [10.1145/3143434.3143454, DOI 10.1145/3143434.3143454]
[10]   USING METRICS TO EVALUATE SOFTWARE SYSTEM MAINTAINABILITY [J].
COLEMAN, D ;
ASH, D ;
LOWTHER, B ;
OMAN, P .
COMPUTER, 1994, 27 (08) :44-49