Cargando…

On the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysis

BACKGROUND: Design patterns are supposed to improve various quality attributes of software systems. However, there is controversial quantitative evidence of this impact. Especially for younger paradigms such as service- and Microservice-based systems, there is a lack of empirical studies. OBJECTIVE:...

Descripción completa

Detalles Bibliográficos
Autores principales: Bogner, Justus, Wagner, Stefan, Zimmermann, Alfred
Formato: Online Artículo Texto
Lenguaje:English
Publicado: PeerJ Inc. 2019
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7924695/
https://www.ncbi.nlm.nih.gov/pubmed/33816866
http://dx.doi.org/10.7717/peerj-cs.213
_version_ 1783659143338393600
author Bogner, Justus
Wagner, Stefan
Zimmermann, Alfred
author_facet Bogner, Justus
Wagner, Stefan
Zimmermann, Alfred
author_sort Bogner, Justus
collection PubMed
description BACKGROUND: Design patterns are supposed to improve various quality attributes of software systems. However, there is controversial quantitative evidence of this impact. Especially for younger paradigms such as service- and Microservice-based systems, there is a lack of empirical studies. OBJECTIVE: In this study, we focused on the effect of four service-based patterns—namely Process Abstraction, Service Façade, Decomposed Capability, and Event-Driven Messaging—on the evolvability of a system from the viewpoint of inexperienced developers. METHOD: We conducted a controlled experiment with Bachelor students (N = 69). Two functionally equivalent versions of a service-based web shop—one with patterns (treatment group), one without (control group)—had to be changed and extended in three tasks. We measured evolvability by the effectiveness and efficiency of the participants in these tasks. Additionally, we compared both system versions with nine structural maintainability metrics for size, granularity, complexity, cohesion, and coupling. RESULTS: Both experiment groups were able to complete a similar number of tasks within the allowed 90 min. Median effectiveness was 1/3. Mean efficiency was 12% higher in the treatment group, but this difference was not statistically significant. Only for the third task, we found statistical support for accepting the alternative hypothesis that the pattern version led to higher efficiency. In the metric analysis, the pattern version had worse measurements for size and granularity while simultaneously having slightly better values for coupling metrics. Complexity and cohesion were not impacted. INTERPRETATION: For the experiment, our analysis suggests that the difference in efficiency is stronger with more experienced participants and increased from task to task. With respect to the metrics, the patterns introduce additional volume in the system, but also seem to decrease coupling in some areas. CONCLUSIONS: Overall, there was no clear evidence for a decisive positive effect of using service-based patterns, neither for the student experiment nor for the metric analysis. This effect might only be visible in an experiment setting with higher initial effort to understand the system or with more experienced developers.
format Online
Article
Text
id pubmed-7924695
institution National Center for Biotechnology Information
language English
publishDate 2019
publisher PeerJ Inc.
record_format MEDLINE/PubMed
spelling pubmed-79246952021-04-02 On the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysis Bogner, Justus Wagner, Stefan Zimmermann, Alfred PeerJ Comput Sci World Wide Web and Web Science BACKGROUND: Design patterns are supposed to improve various quality attributes of software systems. However, there is controversial quantitative evidence of this impact. Especially for younger paradigms such as service- and Microservice-based systems, there is a lack of empirical studies. OBJECTIVE: In this study, we focused on the effect of four service-based patterns—namely Process Abstraction, Service Façade, Decomposed Capability, and Event-Driven Messaging—on the evolvability of a system from the viewpoint of inexperienced developers. METHOD: We conducted a controlled experiment with Bachelor students (N = 69). Two functionally equivalent versions of a service-based web shop—one with patterns (treatment group), one without (control group)—had to be changed and extended in three tasks. We measured evolvability by the effectiveness and efficiency of the participants in these tasks. Additionally, we compared both system versions with nine structural maintainability metrics for size, granularity, complexity, cohesion, and coupling. RESULTS: Both experiment groups were able to complete a similar number of tasks within the allowed 90 min. Median effectiveness was 1/3. Mean efficiency was 12% higher in the treatment group, but this difference was not statistically significant. Only for the third task, we found statistical support for accepting the alternative hypothesis that the pattern version led to higher efficiency. In the metric analysis, the pattern version had worse measurements for size and granularity while simultaneously having slightly better values for coupling metrics. Complexity and cohesion were not impacted. INTERPRETATION: For the experiment, our analysis suggests that the difference in efficiency is stronger with more experienced participants and increased from task to task. With respect to the metrics, the patterns introduce additional volume in the system, but also seem to decrease coupling in some areas. CONCLUSIONS: Overall, there was no clear evidence for a decisive positive effect of using service-based patterns, neither for the student experiment nor for the metric analysis. This effect might only be visible in an experiment setting with higher initial effort to understand the system or with more experienced developers. PeerJ Inc. 2019-08-19 /pmc/articles/PMC7924695/ /pubmed/33816866 http://dx.doi.org/10.7717/peerj-cs.213 Text en © 2019 Bogner et al. https://creativecommons.org/licenses/by/4.0/ This is an open access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Computer Science) and either DOI or URL of the article must be cited.
spellingShingle World Wide Web and Web Science
Bogner, Justus
Wagner, Stefan
Zimmermann, Alfred
On the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysis
title On the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysis
title_full On the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysis
title_fullStr On the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysis
title_full_unstemmed On the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysis
title_short On the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysis
title_sort on the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysis
topic World Wide Web and Web Science
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7924695/
https://www.ncbi.nlm.nih.gov/pubmed/33816866
http://dx.doi.org/10.7717/peerj-cs.213
work_keys_str_mv AT bognerjustus ontheimpactofserviceorientedpatternsonsoftwareevolvabilityacontrolledexperimentandmetricbasedanalysis
AT wagnerstefan ontheimpactofserviceorientedpatternsonsoftwareevolvabilityacontrolledexperimentandmetricbasedanalysis
AT zimmermannalfred ontheimpactofserviceorientedpatternsonsoftwareevolvabilityacontrolledexperimentandmetricbasedanalysis