Service Oriented Framework For Analysis



Investigating the Maintenance Cost of SOA Patterns and Antipatterns

In this empirical study, we relate some SO patterns and antipatterns with the change-proneness of services. We proposed a four-step approach to conduct our study:

Step 1. Collecting Mailing Data: The first step consists in mining change data information from the complete FraSCAti-commits mailing list archives. The FraSCAticommits mailing list archive is available online at http://mail-archive.ow2.org/.

Step 2. Extracting Source Code Changes and Code Churns: The second step involves the extraction of the number of changes made and the number of code churns for a certain service artefact.

Step 3. Service-oriented Patterns and Antipatterns Detection: The third step in our approach involves detecting service patterns and antipatterns in FraSCAti. This detection is done on the client-side artefacts, i.e., analysing services composition, system design, and the quality of service (QoS). We perform the detection of SO antipatterns using the SODA. We also used the SODOP proposed by Demange et al. to perform the detection of SO design patterns.

Step 4. Data Preparation: Once we extracted the changes and code churns and performed the detection of service patterns and antipatterns, in this last step of our approach, we grouped the source code changes and code churns to link them with the detected patterns and antipatterns.

approach


SO Antipatterns

The set of SO antipatterns that we considered in this study are the subset of the antipatterns described and specified using a domain specific language here.


SO Patterns

Also, the set of SO patterns that we considered in this study are the subset of the patterns described and specified here.



Study Materials

1. You can have the the complete "frascati-commits mailing list archives" from here.

2. Download the complete list of changes and code churns extracted from the entire FraSCAti commits from here.

3. Download the related list of Java classes for the services detected as patterns and antipatterns (with the changed lines of code and code churns) extracted from the entire FraSCAti commits from here.

4. Download the complete list of Java classes with any kinds of code smells detected by the PMD tool from here.

5. Download the aggregated list of smells for each Java classes from the entire FraSCAti from here.

[top]


Study Results

Our Research Questions:

RQ1 : What is the relation between service patterns and change-proneness?

Null Hypotheses:
H101: there is no difference between the total number of changes experienced by files involved in the implementation of a service pattern and other files.
H201: there is no difference between the total number of code churns experienced by files involved in the implementation of a service pattern and other files.

Findings : Services involved in service patterns are less change-prone than other services; the total number of source code changes and code churns performed during the maintenance and evolution of services involved in a service pattern is lower than the total number of source code changes and code churns performed on other services. However, this difference is not statistically significant.


RQ2 : What is the relation between service antipatterns and change-proneness?

Null Hypotheses:
H102: there is no difference between the total number of changes experienced by files involved in the implementation of a service antipattern and other files.
H202: there is no difference between the total number of code churns experienced by files involved in the implementation of a service antipattern and other files.

Findings : Services involved in service antipatterns are more change-prone than the services that are not involved in any service antipattern. The total number of source code changes and code churns performed during the maintenance and evolution of services involved in a service antipattern is higher than the total number of source code changes and code churns performed on other services. The difference is statistically significant.


RQ3 : What is the relation between particular kinds of service antipatterns and change-proneness?

Null Hypotheses:
H103: there is no difference between the total number of changes experienced by files from eight groups of antipatterns and and non-antipatterns group.
H203: there is no difference between the total number of code churns experienced by files from eight groups of antipatterns and non-antipatterns group.

Findings : Services involved in God Component, Multi service, and Service Chain antipatterns more change-prone than services involved in other kinds of service antipatterns. The difference is statistically significant.



To answer above questions, we mainly use three tests:

Mann-Whitney U or Wilcoxon rank-sum test is a non-parametric test of the null hypothesis that two populations are the same against an alternative hypothesis, especially that a particular population tends to have larger values than the other.

Kruskal-Wallis one-way analysis of variance is a non-parametric method for testing whether samples originate from the same distribution. It is used for comparing more than two samples that are independent, or not related.

Cliff's Delta is a non-parametric effect size measure that quantifies the amount of difference between two groups of observations beyond p-values interpretation. This measure can be understood as a useful complementary analysis for the corresponding hypothesis testing.

[top]


Results on FraSCAti services

RQ1:

Summary: Services involved in service patterns are less change-prone than the services not involved in any service pattern.


results

results

results


results


results


RQ2:

Summary : Services involved in service antipatterns are more change-prone than the services that are not involved in any service antipattern.


results

results


results


results


RQ3:

Summary : Services involved in God Component, Multi service, and Service Chain SO antipatterns more change-prone in the server-side than services involved in other SO antipatterns. Therefore, the eight kinds of antipatterns investigated in this study are not equally change-prone.


results

results


results


SO Antipattens/Patterns vs OO Smells

Summary : In FraSCAti, the implementations of service antipatterns contain significantly more code smells than the implementations of service patterns, and other services. Hence, the higher change-proneness observed for service antipatterns implementations is likely to be affected by the presence of these code smells (which are known to change more frequently).


results

results


results


results


[top]



Logo Logo