loading...
A Study of Design Characteristics in Evolving Software Using Stability as a Criterion
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TSE.2006.42May 2006 (vol. 32 no. 5) pp. 315-329
 This Article 
 
PDF
HTML
 
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
There are many ideas in software design that are considered good practice. However, research is still needed to validate their contributions to software maintenance. This paper presents a method for examining software systems that have been actively maintained and used over the long term and are potential candidates for yielding lessons about design. The method relies on a criterion of stability and a definition of distance to flag design characteristics that have potentially contributed to long-term maintainability. It is demonstrated by application to an example of long-lived scientific software. The results from this demonstration show that the method can provide insight into the relative importance of individual elements of a set of design characteristics for the long-term evolution of software.

[1] 315 W.W. Agresti and W.M. Evanco, “Projecting Software Defects from Analyzing Ada Designs,” IEEE Trans. Software Eng., vol. 18, no. 11, pp. 988-997, Nov. 1992.
[2] M. Alshayeb and W. Li, “An Empirical Study of System Design Instability Metric and Design Evolution in an Agile Software Process,” J. Systems and Software, vol. 74, pp. 269-274, 2005.
[3] N. Anquetil and T. Lethbridge, “Extracting Concepts from File Names; a New File Clustering Criterion,” Proc. Int'l Conf. Software Eng., pp. 84-93, 1998.
[4] A.I. Anton and C. Potts, “Functional Paleontology: The Evolution of User Visible System Services,” IEEE Trans. Software Eng., vol. 29, no. 2, pp. 151-166, Feb. 2003.
[5] D.C. Arnold and J.J. Dongarra, “Developing an Architecture to Support the Implementation and Development of Scientific Computing Applications,” Proc. IFIP TC2/WG2.5 Working Conf. Architecture of Scientific Software, Oct. 2000, http://seg.iit.nrc.ca/wg25woco822.pdf.
[6] V. Basili, L. Briand, S. Condon, Y.-M. Kim, W.L. Melo, and J.D. Valett, “Understanding and Predicting the Process of Software Maintenance Releases,” Proc. Int'l Conf. Software Eng., pp. 464-474, 1996.
[7] K. Beck, Extreme Programming Explained. Addison-Wesley, 2000.
[8] K.H. Bennett and V.T. Rajlich, “Software Maintenance and Evolution: A Roadmap,” Int'l Conf. Software Eng., Proc. Conf. Future of Software Eng., pp. 73-87, 2000.
[9] The Architecture of Scientific Software, R.F. Boisvert and P.T.P. Tang, eds. Kluwer Academic, 2001.
[10] R. Brooks, “Towards the Theory of the Comprehension of Computer Programs,” Int'l J. Man-Machine Studies, vol. 18, pp. 543-554, 1983.
[11] D.N. Card and R.L. Glass, Measuring Software Design Quality. Prentice Hall, 1990.
[12] B. Curtis, S.B. Sheppard, P. Milliman, M.A. Borst, and T. Love, “Measuring the Psychological Complexity of Software Maintenance Tasks with the Halstead and McCabe Metrics,” IEEE Trans. Software Eng., vol. 5, no. 2, pp. 96-104, Mar. 1979.
[13] S.G. Eick, T.L. Graves, A.F. Kerr, J.S. Marron, and A. Mockus, “Does Code Decay? Assessing the Evidence from Change Management Data,” IEEE Trans. Software Eng., vol. 27, no. 1, pp. 1-12, Jan. 2001.
[14] K. El Emam, S. Benlarbi, N. Goel, W. Melo, H. Lounis, and S.N. Rai, “The Optimal Class Size for Object-Oriented Software,” IEEE Trans. Software Eng., vol. 28, no. 5, pp. 494-509, May 2002.
[15] N. Fenton, “Software Measurement: A Necessary Scientific Basis,” IEEE Trans. Software Eng., vol. 20, no. 3, pp. 199-206, Mar. 1994.
[16] M.W. Godfrey and Q. Tu, “Evolution in Open Source Software: A Case Study,” Proc. Int'l Conf. Software Maintenance, pp. 131-142, 2000.
[17] T.L. Graves, A.F. Kerr, J.S. Marron, and H. Siy, “Predicting Fault Incidence Using Software Change History,” IEEE Trans. Software Eng., vol. 26, no. 7, pp. 653-661, July 2000.
[18] D. Hand, H. Mannila, and P. Smyth, Principles of Data Mining, A Bradford Book. MIT Press, 2001.
[19] S. Henry and D. Kafura, “Software Structure Metrics Based on Information Flow,” IEEE Trans. Software Eng., vol. 7, no. 5, pp. 510-518, Sept. 1981.
[20] D. Kafura and G.R. Reddy, “The Use of Software Complexity Metrics in Software Maintenance,” IEEE Trans. Software Eng., vol. 13, no. 3, pp. 335-343, Mar. 1987.
[21] I. Kaplansky, Set Theory and Metric Spaces. Allyn and Bacon Inc., 1975.
[22] D.F. Kelly, “An Exploration of Evolutionary Change in an Example of Scientific Software,” PhD thesis, Royal Military College of Canada, July 2004.
[23] C. Kemerer and S. Slaughter, “An Empirical Approach to Studying Software Evolution,” IEEE Trans. Software Eng., vol. 25, no. 4, pp. 493-509, July/Aug. 1999.
[24] K. Kreyman, D.L. Parnas, and S. Qiao, “Inspection Procedures for Critical Programs that Model Physical Phenomena,” CRL Report No. 368, McMaster Univ., Feb. 1999.
[25] A. Lakhotia, “Understanding Someone Else's Code: Analysis of Experiences,” J. Systems Software, vol. 23, pp. 269-275, 1993.
[26] M.M. Lehman and F.N. Parr, “Program Evolution and Its Impact on Software Engineering,” Proc. Int'l Conf. Software Eng., pp. 350-357, 1976.
[27] M.M. Lehman, “Rules and Tools for Software Evolution Planning and Management,” Feast 2000 Pre-prints, Imperial College, London, July 2000, www.doc.ic.ac.uk/~mml/feast2/papers/pdf611_2.pdf .
[28] S. Letovsky, “Cognitive Processes in Program Comprehension,” Proc. Workshop Empirical Studies of Programmers, pp. 58-79, 1986.
[29] T. Nakamura and V.R. Basili, “Metrics of Software Architecture Changes Based on Structural Distance,” Proc. IEEE Int'l Software Metrics Symp., pp. 8-17, Sept. 2005.
[30] D. Parnas, “Software Aging,” Invited Plenary Talk, Proc. Int'l Conf. Software Eng., pp. 279-287, 1994.
[31] D.E. Perry and A.L. Wolf, “Foundations for the Study of Software Architecture,” ACM SIGSOFT, Software Eng. Notes, vol. 17, no. 4, pp. 40-52, Oct. 1992.
[32] D. Perry, “Dimensions of Software Evolution,” Proc. Int'l Conf. Software Maintenance, 1994, http://citeseer.nj.nec.com82523.html.
[33] A.L. Powell, “A Literature Review on the Quantification of Software Change,” Computer Science Yellow Report YCS 305, Univ. of York, 1998.
[34] V. Rajlich, J. Doran, and R.T.S. Gudla, “Layered Explanations of Software: A Methodology for Program Comprehension,” Proc. Third IEEE Workshop Program Comprehension, pp. 46-54, 1994.
[35] M. Shepperd and D.C. Ince, “A Critique of Three Metrics,” J. Systems and Software, vol. 26, pp. 197-210, 1994.
[36] D.M. Weiss and V.R. Basili, “Evaluating Software Development by Analysis of Changes: Some Data from the Software Engineering Laboratory,” IEEE Trans. Software Eng., vol. 11, no. 2, pp. 157-168, Feb. 1985.
[37] S.S. Yau and J.S. Collofello, “Some Stability Measures for Software Maintenance,” IEEE Trans. Software Eng., vol. 6, no. 6, pp. 545-552, Nov. 1980.
[38] S.S. Yau and J.S. Collofello, “Design Stability Measures for Software Maintenance,” IEEE Trans. Software Eng., vol. 11, no. 9, pp. 849-856, Sept. 1985.

Index Terms:
Software evolution, scientific software, maintainability, distance metric, software design, stability, software architecture.
Citation:
Diane Kelly, "A Study of Design Characteristics in Evolving Software Using Stability as a Criterion," IEEE Transactions on Software Engineering, vol. 32, no. 5, pp. 315-329, May 2006, doi:10.1109/TSE.2006.42
Usage of this product signifies your acceptance of the Terms of Use.