A Longitudinal Study of Anti Micro Patterns in 113 versions of Tomcat

Background: Micro patterns represent design decisions in code. They are similar to design patterns and can be detected automatically. These micro structures can be helpful in identifying portions of code which should be improved (anti-micro patterns), or other well-designed parts which need to be preserved. The concepts expressed in these design decisions are defined at class-level; therefore the primary goal is to detect and provide information related to a specific granularity level. Aim: this paper aims to present preliminary results about a longitudinal study performed on anti-micro pattern distributions over 113 versions of Tomcat. Method: we first extracted the micro patterns from the 113 versions of Tomcat, then found the percentage of classes matching each of the six anti-micro pattern considered for this analysis, and studied correlations among the obtained time series after testing for stationarity, randomness and seasonality. Results: results show that the time series are stationary, not random (except for Function Pointer), and that additional studied are needed for studying seasonality. Regarding correlations, only the Pool and Record time series presented a correlation of 0.69, while moderate correlation has been found between Function Pointer and Function Object (0.58) and between Cobol Like and Pool (0.44).

[1]  R. Bartels The Rank Version of von Neumann's Ratio Test for Randomness , 1982 .

[2]  Michele Marchesi,et al.  113 times Tomcat: A dataset , 2018, PeerJ Prepr..

[3]  Glenn D. Rudebusch,et al.  On the Power of Dickey-Fuller Tests against Fractional Alternatives , 1991, Business Cycles.

[4]  D. B. Preston Spectral Analysis and Time Series , 1983 .

[5]  P. Phillips,et al.  Testing the null hypothesis of stationarity against the alternative of a unit root: How sure are we that economic time series have a unit root? , 1992 .

[6]  Kazi Zakia Sultana,et al.  Evaluating micro patterns and software metrics in vulnerability prediction , 2017, 2017 6th International Workshop on Software Mining (SoftwareMining).

[7]  Gavin Brown,et al.  Fundamental Nano-Patterns to Characterize and Classify Java Methods , 2010, LDTA.

[8]  Itay Maman,et al.  Micro patterns in Java code , 2005, OOPSLA '05.

[9]  F Arcelli Fontana,et al.  Metrics-based Detection of Micro Patterns to improve the Assesment of Software Quality , 2009 .

[10]  G. Box,et al.  On a measure of lack of fit in time series models , 1978 .

[11]  Kazi Zakia Sultana Towards a software vulnerability prediction model using traceable code patterns and software metrics , 2017, 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[12]  Michele Marchesi,et al.  On the randomness and seasonality of affective metrics for software development , 2017, SAC.

[13]  Richard A. Davis,et al.  Introduction to time series and forecasting , 1998 .

[14]  Brian Robinson,et al.  Improving industrial adoption of software engineering research: a comparison of open and closed source software , 2010, ESEM '10.

[15]  Jonathan D. Cryer,et al.  Time Series Analysis , 1986 .

[16]  Michele Marchesi,et al.  An analysis of anti-micro-patterns effects on fault-proneness in large Java systems , 2012, SAC '12.

[17]  Kazi Zakia Sultana,et al.  The Relationship between Traceable Code Patterns and Code Smells , 2017, SEKE.

[18]  D. Dickey,et al.  Testing for unit roots in autoregressive-moving average models of unknown order , 1984 .

[19]  Michele Marchesi,et al.  Micro Pattern Fault-Proneness , 2012, 2012 38th Euromicro Conference on Software Engineering and Advanced Applications.

[20]  David F. Hendry,et al.  Co-Integration, Error Correction, and the Econometric Analysis of Non-Stationary Data , 1993, Advanced texts in econometrics.

[21]  Michele Marchesi,et al.  Micro Patterns in Agile Software , 2013, XP.

[22]  Michele Marchesi,et al.  Could micro patterns be used as software stability indicator? , 2015, 2015 IEEE 2nd International Workshop on Patterns Promotion and Anti-patterns Prevention (PPAP).

[23]  M. B. Priestley,et al.  Non-linear and non-stationary time series analysis , 1990 .