Evaluation metrics
Silvera uses predefined metrics to evaluate the modeled application:
-
Weighted Service Interface Count (WSIC) - This metric counts the number of exposed interface operations of a service. Lower values for WSIC are more favorable for the maintainability of a service.
-
Number of Versions per Service (NVS) - The number of versions that are used concurrently in system Y for service S.
-
Services Interdependence in the System (SIY) - Pairs ⟨S 1 , S 2 ⟩ where service S1 calls S2 while service S2 also calls S1 at some point.
-
Absolute Importance of the Service (AIS) - AIS(S) for a service S is the number of consumers that depend on S, i.e. the number of clients that invoke at least one operation of S
-
Absolute Dependence of the Service (ADS) - ADS(S) is the number of other services that S depends on, i.e. the number of services from which S invokes at least one operation.
-
Absolute Criticality of the Service (ACS) - ACS(S) = AIS(S) × ADS(S)
To perform evaluation, run following command
$ silvera evaluate <project_dir>
For more info about these evaluation metrics, check these papers:
-
Bogner, J.; Wagner, S.; Zimmermann, A. Automatically measuring the maintainability of service-and microservice-based systems: a literature review. Proceedings of the 27th International Workshop on Software Measurement and 12th International Conference on Software Process and Product Measurement, 2017, pp. 107–115.
-
Hirzalla, M.; Cleland-Huang, J.; Arsanjani, A. A metrics suite for evaluating flexibility and complexity in service oriented architectures. International Conference on Service-Oriented Computing. Springer, 2008, pp. 41–52.
-
Rud, D.; Schmietendorf, A.; Dumke, R. Product metrics for service-oriented infrastructures.