Further Considerations about Relationship between Framework and Application Components

A large number of software applications are used over ten years, and are subjected to continuous maintenance activities to improve their operability, functionality, stability and so on. Through such maintenance activities, the internal structure of the software system becomes more complex. We believe that studying how the complexity has evolved is important for understanding the actual maintenance activities. In a previous experiment, we analyzed how code clones and use relations between application and framework components change through a longitudinal study of open source software. However, we performed our analysis over only one set of framework and application, so we would like to discuss how our findings generalize. In this paper, we replicate the previous experiment, targeting several open source projects. By comparing with the result of the past experiment, we will discuss about generalities of our findings. Moreover, we study the differences between the trends for both incoming and outgoing edges, how use relations increase and decrease through long term development, and how code clones are introduced in the software in the early period of the development. These analyses have a certain level of commonality for understanding actual developers' activities.

[1]  Katsuro Inoue,et al.  Evolution of Component Relationships between Framework and Application , 2012 .

[2]  Manishankar Mondal,et al.  Comparative stability of cloned and non-cloned code: an empirical study , 2012, SAC '12.

[3]  Qin Zhang,et al.  Practical automated process and product metric collection and analysis in a classroom setting: lessons learned from Hackystat-UH , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[4]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[5]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[6]  Michalis Faloutsos,et al.  Graph-based analysis and prediction for software evolution , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[7]  Giuliano Antoniol,et al.  Analyzing cloning evolution in the Linux kernel , 2002, Inf. Softw. Technol..

[8]  Yoshinobu Tamura,et al.  A Method of Reliability Assessment Based on Deterministic Chaos Theory for an Open Source Software , 2008, 2008 Second International Conference on Secure System Integration and Reliability Improvement.

[9]  Ioannis Stamelos,et al.  Towards Open Source Software System Architecture Recovery Using Design Metrics , 2011, 2011 15th Panhellenic Conference on Informatics.

[10]  Lei Sun,et al.  Object-oriented software architecture recovery using a new hybrid clustering algorithm , 2010, 2010 Seventh International Conference on Fuzzy Systems and Knowledge Discovery.

[11]  Tracy Hall,et al.  Fault Analysis in OSS Based on Program Slicing Metrics , 2009, 2009 35th Euromicro Conference on Software Engineering and Advanced Applications.

[12]  Katsuro Inoue,et al.  Assessing the impact of framework changes using component ranking , 2009, 2009 IEEE International Conference on Software Maintenance.

[13]  Andreas Zeller,et al.  Mining Version Histories to Guide Software Changes , 2004 .

[14]  Audris Mockus,et al.  An empirical study of global software development: distance and speed , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.