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 I...

Full description

Bibliographic Details
Main Authors: Justus Bogner, Stefan Wagner, Alfred Zimmermann
Format: Article
Language:English
Published: PeerJ Inc. 2019-08-01
Series:PeerJ Computer Science
Subjects:
Online Access:https://peerj.com/articles/cs-213.pdf
id doaj-a4790cdcdcd74674b17677d48c122956
record_format Article
spelling doaj-a4790cdcdcd74674b17677d48c1229562020-11-25T02:03:07ZengPeerJ Inc.PeerJ Computer Science2376-59922019-08-015e21310.7717/peerj-cs.213On the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysisJustus Bogner0Stefan Wagner1Alfred Zimmermann2Herman Hollerith Center, University of Applied Sciences Reutlingen, Boeblingen, Baden-Wuerttemberg, GermanyInstitute of Software Technology/Software Engineering Group, University of Stuttgart, Stuttgart, Baden-Wuerttemberg, GermanyHerman Hollerith Center, University of Applied Sciences Reutlingen, Boeblingen, Baden-Wuerttemberg, GermanyBackground 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.https://peerj.com/articles/cs-213.pdfDesign patternsEvolvabilityModifiabilityControlled experimentMetricsService-oriented architecture
collection DOAJ
language English
format Article
sources DOAJ
author Justus Bogner
Stefan Wagner
Alfred Zimmermann
spellingShingle Justus Bogner
Stefan Wagner
Alfred Zimmermann
On the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysis
PeerJ Computer Science
Design patterns
Evolvability
Modifiability
Controlled experiment
Metrics
Service-oriented architecture
author_facet Justus Bogner
Stefan Wagner
Alfred Zimmermann
author_sort Justus Bogner
title 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_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_sort on the impact of service-oriented patterns on software evolvability: a controlled experiment and metric-based analysis
publisher PeerJ Inc.
series PeerJ Computer Science
issn 2376-5992
publishDate 2019-08-01
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.
topic Design patterns
Evolvability
Modifiability
Controlled experiment
Metrics
Service-oriented architecture
url https://peerj.com/articles/cs-213.pdf
work_keys_str_mv AT justusbogner ontheimpactofserviceorientedpatternsonsoftwareevolvabilityacontrolledexperimentandmetricbasedanalysis
AT stefanwagner ontheimpactofserviceorientedpatternsonsoftwareevolvabilityacontrolledexperimentandmetricbasedanalysis
AT alfredzimmermann ontheimpactofserviceorientedpatternsonsoftwareevolvabilityacontrolledexperimentandmetricbasedanalysis
_version_ 1724949421617053696