Abstract
It is cost-effective for software practitioners to monitor and control quality of software systems from the early phases of development. Assessing and modeling the effects of design and coding factors on software system maintainability can help provide heuristics to human designers and programmers to reduce maintenance costs and improve quality. This paper presents a study based on intuitive and experimental analyses that use a suite of twenty design/code measures to obtain indications of their effect on maintainability. This paper lists several important contributions of the work, one of which is the investigation of an unprecedentedly large number of systems (fifty) in a single study. The previous related studies on the other hand, have investigated 2–8 systems. The results reported in this paper using experimental procedures are unique, many of which have not been empirically established in the previous literatures, and are interesting because they are not normally intuitively obvious in most cases. The study also serves to empirically validate those results that seem to be intuitive. The results of the study indicate a number of promising effects of design and coding factors on system maintainability. The use of the results from the relatively early phases of software development could significantly help practitioners to improve the quality of systems and thus optimize maintenance costs.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Adamov, R. and Ritcher, 1990. A proposal for measuring the structural complexity of programs, Journal of Systems and Software. 12: 55–70.
Arishom, E., Briand, L.C., and Foyen A. 2003. Dynamic coupling measurement for object oriented software, Technical Report, TR-SCE-03–18, Carleton University.
Basili, V.R., Briand, L.C., and Melo W.L. 1996. A validation of object-oriented design metrics as quality indicators. IEEE Trans. Soft. Engg. 22: 751–761.
Binkley, A.B. and Schach S.R. 1997. Inheritance-Based Metrics for Predicting Maintenance Effort: An Empirical Study, Technical Report: TR-97–05, Computer Science Department, Vanderbilt University, Nashville, USA.
Brite e Abreu, F. and Carapuca, R. 1994. Object-oriented software engineering: Measuring and controlling the development process. In Proceedings of the Fourth International Conference on Software Quality, McLean, Virginia, USA.
Briand, L.C., Devanvu, P., and Melo, W. 1997. An investigation into coupling measures for C++. In Proceedings of ICSE ‘97, Boston, USA, pp. 47–52.
Briand, L.C., Daly, J., Porter, V., and Wust, J. 1998. A comprehensive empirical validation of design measures for object oriented systems. In Proceedings of Fifth International Software Metrics Symposium, Maryland, USA, pp. 246–257.
Briand, L.C., Morasca, S., and Basili, V.R. 1999. Defining and validating measures for object- based high-level design. IEEE Transactions on Software Engineering 25: 722–743.
Briand, L.C., Wuest, J., Daly, J., and Porter, V. 2000. Exploring the relationships between design measures and software quality in object-oriented systems, Journal of Systems and Software 51: 245–273.
Briand, L.C., Bunse, C., and Daly, J.W. 2001. A controlled experiment for evaluating quality guidelines on the maintainability of object-oriented designs, IEEE Transactions on Software Engineering 27: 513–530.
Briand, L.C. and Wust, J. 2001. Modeling development effort in object-oriented systems using design properties. IEEE Transactions on Software Engineering 27: 963–986.
Briand, L.C., Bunse, C., and Daly J.W. 2002. A controlled experiment for evaluating quality guidelines on the maintainability of object oriented designs, IEEE Transactions on Software Engineering 27: 513–530.
Cartwright, M. and Shepperd, M. 2000. An Empirical investigation of an object-oriented software system, IEEE Transactions on Software Engg 26: 786–796.
Chidamber S.R., and Kemerer C.F. 1991. Towards a Metrics suite for Object-Oriented Design. In Proceedings of Conference on Object-Oriented Programming: Systems, Languages and Applications, OOPSLA’91, Phoenix, USA, pp. 197–211.
Chidamber, S.R. and Kemerer, C.F. 1994. A metrics suite for object oriented design, IEEE Transactions on Software Engineering 20: 476–493.
Chidamber, S., Darcy, D., and Kemerer, C. 1998. Managerial use of metrics for object-oriented software: An exploratory analysis, IEEE Transactions on Software Engineering 24: 629–639.
Coleman, D., Lowther, B., and Oman, P. 1994. Using metrics to evaluate software system maintainability, IEEE Computer 27: 44–49.
Daly, J., Brooks, A., Miller, J., Roper, M., and Wood, M. 1996. Evaluating inheritance depth on the maintainability of object-oriented software, International Journal of Empirical Software Engineering 1: 109–132.
Deligiannis, I., Shepperd, M., Roumeliotis, M., and Stamelos, I. 2003. An empirical investigation of an object-oriented design heuristic for maintainability, The Journal of Systems and Software 65: 127–139.
Deligiannis, I., Stramelos, I., Angelis, L., Roumeliotis, M., and Shepperd, M. 2004. A controlled experiment investigation of an object-oriented design heuristic for maintainability, The Journal of Systems and Software 72: 192–143.
El Emam, K., Benlarbi, S., Goel, N., and Rai, S.N. 2001. The confounding effect of class size on the validity of object-oriented metrics, IEEE Transactions on Software Engineering 27: 630–650.
El Emam, K., Benlarbi, S., Goel, N., Melo, W., Lounis, H., and Rai, S.N. 2002. The optimal clsss size for object oriented software, IEEE Transactions on Software Engineering 28: 494–509.
Halstead, M. 1997. Elements of Software Science, Elsevier, North Holland, New York.
Harrison, R., Counsell, S., Nithi, and R. 1991. An experimental assessment of the effect of inheritance on the maintainability of object-oriented systems, In Proceedings of the Empirical Assessment in Software Engineering (EASE), Keele, U.K.
Harrison, R. and Counsell, S. 2000. The role of inheritance in the maintainability of object- oriented systems. In Proceedings of the ESCOM Conference, pp. 449–457.
Henderson-Sellers, B. 1996. Software Metrics, Prentice Hall, U.K.
Koru, A.G. and Tian, J. 2003. An empirical comparison and characterization of high defect and high complexity modules, The Journal of Systems and Software 67: 153–163.
Lanning, D.L. and Khoshgoftaar, T.M. 1994. Modeling the relationship between source code complexity and maintenance difficulty, IEEE Computer 27: 35–40.
Lorenz, M. and Kidd, J. 1994. Object-oriented software metrics, Prentice Hall, New Jersey, USA.
Li, W. and Henry, S. 1993. Object-oriented metrics that predict maintainability, Journal of Systems and Software 23: 111–122.
McCabe, T.J. 1976. A complexity measure, IEEE Transactions on Software Engineering 2: 308–360.
Misra, S.C. 2002. Heuristics for controlling quality of object oriented systems early in the software life cycle. In Proceedings of the 12th International Conference on Software Quality, Ottawa, Canada, Oct 28–30.
Misra, S.C. 2003. Tips on software quality management. In Proceedings of the 6th International Conference on Business Information Systems (BIS), Software Engineering Track, Colorado, USA, June 4–6.
Misra, S.C. and Bhavsar, V.C. 2003. Relationships between selected software measures and latent bug density, international conference on computational science and its applications, LNCS 2667: 724–732.
Misra, S.C. and Bhavsar, V.C. 2003a. Measures of software system difficulty, Software Quality Professional 5: 33–41.
Oman, P. and Hagemeister, J. 1994. Construction and testing of polynomials predicting software maintainability, Journal of Systems and Software 24: 251–266.
Prechlelt, L., Unger B., Philippsen, M., and Tichy, W. 2003. A controlled experiment on inheritance depth as a cost factor for code maintenance, The Journal of Systems and Software 65: 115–126.
Rombach, H.D. 1987. A controlled experiment on the impact of software structure on maintainability, IEEE Transactions on Software Engineering SE-13: 89–94.
Rosenberg, J. 1998. A methodology for evaluating predictive metrics. In Proceedings of the International Symposium on Software Metrics, Bethesda, Maryland, USA, pp. 181.
Succi, G., Pedrycz, W., Stefanovic, M., and Miller, J. 2003. Practical assessment of the models for identification of defect-prone classes in object-oriented commercial systems using design metrics, The Journal of Systems and Software 65: 1–12.
Wake, S. and Henry, S. 1988. A model based on software quality factors which predicts maintainability. In Proceedings of the Conference on Software Maintenance, San Diego, California, USA, pp. 382–387.
Welker, K.D. and Oman, P.W. 1995. Software maintainability metrics models in practice, Journal of Defence Software Engineering 8: 19–23.
Welker, K.D., Oman, P.W., and Atkinson, G.G. 1997. Development and application of an automated source code maintainability index. Software Maintenance: Research & Practice 9: 127–159.
Author information
Authors and Affiliations
Corresponding author
Additional information
Subhas C. Misra is a doctoral student at Carleton University, Ottawa, Canada. Prior to this, he received his M.Tech. degree in Computer Science and Data Processing from the Indian Institute of Technology (IIT), Kharagpur, India and M.S. in Computer Science from the University of New Brunswick, Fredericton, Canada. He has several years of experience working on R&D projects in software engineering and quality engineering. He has worked in the research wings of reputed industries, such as Nortel Networks, Ottawa, Canada and the Indian Telephone Industries, India. He has published several technical papers in different international journals and conference proceedings.
Rights and permissions
About this article
Cite this article
Misra, S.C. Modeling Design/Coding Factors That Drive Maintainability of Software Systems. Software Qual J 13, 297–320 (2005). https://doi.org/10.1007/s11219-005-1754-7
Issue Date:
DOI: https://doi.org/10.1007/s11219-005-1754-7