Change profiles of a reused class framework vs. two of its applications

Software reuse is expected to improve software productivity and quality. Although many empirical studies have investigated the benefits and challenges of software reuse from development viewpoints, few studies have explored reuse from the perspective of maintenance. This paper reports on a case study that compares software changes during the maintenance and evolution phases of a reused Java class framework with two applications that are reusing the framework. The results reveal that: (1) The reused framework is more stable, in terms of change density, than the two applications that are reusing it. (2) The reused framework has profiles for change types that are similar to those of the applications, where perfective changes dominate. (3) The maintenance and evolution lifecycle of both the reused framework and its applications is the same: initial development, followed by a stage with extending capabilities and functionality to meet user needs, then a stage in which only minor defect repairs are made, and finally, phase-out. However, the reused framework goes faster from the stage of extending capabilities to the stage in which only minor defect repairs are made than its applications. (4) We have validated that several factors, such as are functionalities, development practice, complexity, size, and age, have affected the change densities and change profiles of the framework and applications. Thus, all these factors must be considered to predict change profiles in the maintenance and evolution phase of software.

[1]  N. Schneidewind,et al.  Towards an Ontology of software maintenance , 1999 .

[2]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[3]  Carolyn Seaman,et al.  Practical Software Maintenance , 2000, J. Softw. Maintenance Res. Pract..

[4]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[5]  David D. McDonald,et al.  Programs , 1984, CL.

[6]  Ned Chapin,et al.  Types of software evolution and software maintenance , 2001, J. Softw. Maintenance Res. Pract..

[7]  Stephen R. Schach,et al.  Object-oriented and classical software engineering , 1995 .

[8]  Ian Sommerville,et al.  Software Engineering (7th Edition) , 2004 .

[9]  Reidar Conradi,et al.  An empirical study of software change: origin, acceptance rate, and functionality vs. quality attributes , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[10]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[11]  Reidar Conradi,et al.  A case study comparing defect profiles of a reused framework and of applications reusing it , 2009, Empirical Software Engineering.

[12]  H. Dieter Rombach Proceedings of the 18th international conference on Software engineering , 1996, ICSE 1996.

[13]  Alain Abran,et al.  Analysis of maintenance work categories through measurement , 1991, Proceedings. Conference on Software Maintenance 1991.

[14]  Alexandra Poulovassilis,et al.  Classical and Object-Oriented Software Engineering with UML and C++, Stephen R. Schach, McGraw-Hill, 1998 (Book Review) , 2000, Softw. Test. Verification Reliab..

[15]  Maria Joao C. Sousa,et al.  A survey on the Software Maintenance Process , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[16]  Tom Lam,et al.  A software maintenance survey , 1994, Proceedings of 1st Asia-Pacific Software Engineering Conference.

[17]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[18]  H Schaefer Metrics for optimal maintenance management , 1986 .

[19]  Brian Foote,et al.  Designing Reusable Classes , 2001 .

[20]  David Gefen,et al.  The non-homogeneous maintenance periods: a case study of software modifications , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[21]  Stephen R. Schach,et al.  Determining the Distribution of Maintenance Categories: Survey versus Measurement , 2003, Empirical Software Engineering.

[22]  William M. Evanco,et al.  Analyzing change effort in software during development , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[23]  Martin Dick,et al.  Including practical software evolution in software engineering education , 2001, Proceedings 14th Conference on Software Engineering Education and Training. 'In search of a software engineering profession' (Cat. No.PR01059).

[24]  David N. Card,et al.  Learning from Our Mistakes with Defect Causal Analysis , 1999, IEEE Softw..

[25]  Hsiang-Jui Kung,et al.  Modeling software maintenance requests: A case study , 1999 .

[26]  Chris F. Kemerer,et al.  Determinants of software maintenance profiles: an empirical investigation , 1997, J. Softw. Maintenance Res. Pract..

[27]  John Krogstie,et al.  A longitudinal study of development and maintenance in Norway: Report from the 2003 investigation , 2006, Inf. Softw. Technol..

[28]  Cemal Yilmaz,et al.  Software Metrics , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[29]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach (McGraw-Hill Series in Computer Science) , 2004 .

[30]  Victor R. Basili,et al.  Understanding and predicting the process of software maintenance releases , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[31]  Audris Mockus,et al.  Identifying reasons for software changes using historic databases , 2000, Proceedings 2000 International Conference on Software Maintenance.

[32]  Weishan Zhang,et al.  Reuse without Compromising Performance: Industrial Experience from RPG Software Product Line for Mobile Devices , 2005, SPLC.

[33]  Manoranjan Satpathy,et al.  Maintenance of object oriented systems through re-engineering: a case study , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[34]  Ned Chapin,et al.  Software maintenance: a different view , 1985 .

[35]  Min-Gu Lee,et al.  An empirical study of software maintenance of a Web-based Java application , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[36]  Giancarlo Succi,et al.  An industrial study of reuse, quality, and productivity , 2001, J. Syst. Softw..

[37]  Lars Lundberg,et al.  Using components to increase maintainability in a large telecommunication system , 2002, Ninth Asia-Pacific Software Engineering Conference, 2002..

[38]  Hausi A. Müller,et al.  Predicting fault-proneness using OO metrics. An industrial case study , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

[39]  Richard W. Selby,et al.  Enabling reuse-based software development of large-scale systems , 2005, IEEE Transactions on Software Engineering.

[40]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[41]  Mr. Larry,et al.  Applying and Interpreting Object Oriented Metrics , 1998 .

[42]  Reidar Conradi,et al.  An empirical study of software reuse vs. defect-density and stability , 2004, Proceedings. 26th International Conference on Software Engineering.

[43]  Ralph E. Johnson,et al.  Designing Reuseable Classes , 1988 .

[44]  Wayne C. Lim,et al.  Effects of reuse on quality, productivity, and economics , 1994, IEEE Software.

[45]  E. Burton Swanson,et al.  The dimensions of maintenance , 1976, ICSE '76.

[46]  Yuming Zhou,et al.  Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults , 2006, IEEE Transactions on Software Engineering.

[47]  Shinji Kusumoto,et al.  Prediction of fault-proneness at early phase in object-oriented development , 1999, Proceedings 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'99) (Cat. No.99-61702).

[48]  Thomas M. Pigoski Practical Software Maintenance: Best Practices for Managing Your Software Investment , 1996 .

[49]  Magne Jøgensen,et al.  The quality of questionnaire based software maintenance studies , 1995, SOEN.

[50]  E. Burton Swanson,et al.  Characteristics of application software maintenance , 1978, CACM.

[51]  Keith H. Bennett,et al.  A Staged Model for the Software Life Cycle , 2000, Computer.

[52]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .