On the relationship of class stability and maintainability

On the relationship of class stability and maintainability

For access to this article, please select a purchase option:

Buy article PDF
(plus tax if applicable)
Buy Knowledge Pack
10 articles for $120.00
(plus taxes if applicable)

IET members benefit from discounts to all IET publications and free access to E&T Magazine. If you are an IET member, log in to your account and the discounts will automatically be applied.

Learn more about IET membership 

Recommend Title Publication to library

You must fill out fields marked with: *

Librarian details
Your details
Why are you recommending this title?
Select reason:
IET Software — Recommend this title to your library

Thank you

Your recommendation has been sent to your librarian.

Maintainability is an essential software quality attribute as software maintenance is a costly process. ISO 9126 characterised maintainability with five sub-characteristics, one of which is stability. Unstable software may lead to high maintenance cost and effort. Classes in object-oriented systems form the basic elements of the software architecture; hence, stable classes may contribute to reducing the software maintenance cost and effort. In this study, the author conducts an empirical study to evaluate the relationship between class stability and maintainability. The author correlates class stability with maintainability effort measured by the number of hours spent on maintenance activities and by the line of code changes. Results show that classes with higher values of stability measured by the class stability metric (CSM) are associated with a lower value of perfective maintenance effort measured by hours. CSM also correlated with all types of maintenance (corrective, adaptive and perfective) if measured for the cumulatively combined system classes in all iterations rather than per iteration. The author also found that none of the stability metrics show a relationship with maintainability when measured by number of line of code changes.


    1. 1)
      • 1. ISO: ‘Software Engineering-Product Quality’, vol. ISO/IEC Standard No. 9126, ed, 2001–2004.
    2. 2)
      • 2. Galorath, D.D.: ‘Software total ownership costs: development is only job one’, Softw. Technol. News, 2008, 11.
    3. 3)
      • 3. Chen, J., Huang, S.: ‘An empirical analysis of the impact of software development problem factors on software maintainability’, J. Syst. Softw., 2009, 82, pp. 981992 (doi: 10.1016/j.jss.2008.12.036).
    4. 4)
      • 4. IEEE: ‘IEEE standard glossary of software engineering terminology’, in St. 610.121990 (The Institute of Electrical and Electronics Engineering, 1990).
    5. 5)
      • 5. Li, W., Etzkorn, L., Davis, C., Talburt, J.: ‘An empirical study of object-oriented system evolution’, Inf. Softw. Technol., 2000, 42, pp. 373381 (doi: 10.1016/S0950-5849(99)00088-9).
    6. 6)
      • 6. Alshayeb, M., Li, W.: ‘An empirical study of system design instability metric and design evolution in an agile software process’, J. Syst. Softw., 2004, 74, pp. 269274 (doi: 10.1016/j.jss.2004.02.002).
    7. 7)
      • 7. Olague, H., Etzkorn, L., Li, W., Cox, G.: ‘Assessing design instability in iterative (agile) object-oriented projects’, J. Softw. Maint. Evol. Res. Prat., 2006, 18, pp. 237266 (doi: 10.1002/smr.332).
    8. 8)
      • 8. Kelly, D.: ‘A study of design characteristics in evolving software using stability as a criterion’, IEEE Trans. Softw. Eng., 2006, 32, pp. 315329 (doi: 10.1109/TSE.2006.42).
    9. 9)
      • 9. Jazayeri, M.: ‘On architectural stability and evolution’. Proc. Seventh Ada-Europe Int. Conf. Reliable Software Technologies, 2002, pp. 1323.
    10. 10)
      • 10. Hassan, Y.: ‘Measuring software architectural stability using retrospective analysis’. MS thesis, King Fahd University of Petroleum & Minerals, Dhahran, 2007.
    11. 11)
      • 11. Bahsoon, R., Emmerich, W.: ‘Evaluating software architectures: development, stability, and evolution’. Proc. ACS/IEEE Int. Conf. Computer Systems and Applications, Tunis, Tunisia, 2003, pp. 4756.
    12. 12)
      • 12. Bansiya, J.: ‘Evaluating framework architecture structural stability’, ACM Comput. Surv. (CSUR), 2000, 321.
    13. 13)
      • 13. Tonu, S., Ashkan, A., Tahvildari, L.: ‘Evaluating architectural stability using a metric-based approach’. Proc. Conf. Software Maintenance and Reengineering (CSMR'06), 2006, pp. 261270.
    14. 14)
      • 14. Molesini, A., Garcia, A., Chavez, C.v.F.G., Batista, T.V.: ‘Stability assessment of aspect-oriented software architectures: a quantitative study’, J. Syst. Softw., 2010, 83, pp. 711722 (doi: 10.1016/j.jss.2009.05.022).
    15. 15)
      • 15. Grosser, D., Sahraoui, H., Valtchev, P.: ‘An analogy based approach for predicting design stability of java classes’. Proc. Ninth IEEE Int. Software Metrics Symp., 2003, pp. 252262.
    16. 16)
      • 16. Ratiu, D., Ducasse, S., Girba, T., Marinescu, R.: ‘Using history information to improve design flaws detection’. Proc. Eighth European Conf. Software Maintenance and Reengineering (CSMR'04), 2004, pp. 223232.
    17. 17)
      • 17. Alshayeb, M., Naji, M., Elish, M., Al-Ghamdi, J.: ‘Towards measuring object-oriented class stability’, IET Softw., 2011, 5, pp. 415424 (doi: 10.1049/iet-sen.2010.0050).
    18. 18)
      • 18. Chidamber, S., Darcy, D., Kemerer, C.: ‘Managerial use of metrics for object-oriented software: an exploratory analysis’, IEEE Trans. Softw. Eng., 1998, 24, pp. 629639 (doi: 10.1109/32.707698).
    19. 19)
      • 19. Darcy, D., Kemerer, C., Slaughter, S., Tomayko, J.: ‘The structural complexity of software: an experimental test’, IEEE Trans. Softw. Eng., 2005, 31, pp. 982995 (doi: 10.1109/TSE.2005.130).
    20. 20)
      • 20. MacCormack, A., Rusnak, J., Baldwin, C.: ‘Exploring the structure of complex software designs: an empirical study of open source and proprietary code’, Manage. Sci., 2006, 52, pp. 10151030 (doi: 10.1287/mnsc.1060.0552).
    21. 21)
      • 21. Harrison, R., Counsell, S., Nithi, R.: ‘Experimental assessment of the effect of inheritance on the maintainability of object-oriented systems’, J. Syst. Softw., 2000, 52, pp. 173179 (doi: 10.1016/S0164-1212(99)00144-2).
    22. 22)
      • 22. Li, W., Henry, S.: ‘Object-oriented metrics that predict maintainability’, J. Syst. Softw., 1993, 23, pp. 111122 (doi: 10.1016/0164-1212(93)90077-B).
    23. 23)
      • 23. Chidamber, S.R., Kemerer, C.F.: ‘A metrics suite for object oriented design’, IEEE Trans. Softw. Eng., 1994, 20, pp. 476493 (doi: 10.1109/32.295895).
    24. 24)
      • 24. Zhou, Y., Leung, H.: ‘Predicting object-oriented software maintainability using multivariate adaptive regression splines’, J. Syst. Softw., 2007, 80, pp. 13491361 (doi: 10.1016/j.jss.2006.10.049).
    25. 25)
      • 25. Koten, C., Gray, A.: ‘An application of Bayesian network for predicting object-oriented software maintainability’, Inf. Softw. Technol., 2006, 48, pp. 5967 (doi: 10.1016/j.infsof.2005.03.002).
    26. 26)
      • 26. Fioravanti, F., Nesi, P.: ‘Estimation and prediction metrics for adaptive maintenance effort of object-oriented systems’, IEEE Trans. Softw. Eng., 2001, 27, pp. 10621084 (doi: 10.1109/32.988708).
    27. 27)
      • 27. Thwin, M., Quah, T.: ‘Application of neural networks for software quality prediction using object-oriented metrics’, J. Syst. Softw., 2005, 76, pp. 147156 (doi: 10.1016/j.jss.2004.05.001).
    28. 28)
      • 28. Conejero, J., Figueiredo, E., Garcia, A., Hernández, J., Jurado, E.: ‘On the relationship of concern metrics and requirements maintainability’, Inf. Softw. Technol., 2012, 54, pp. 212238 (doi: 10.1016/j.infsof.2011.09.003).
    29. 29)
      • 29. Binkley, A.B., Scatch, S.R.: ‘Validation of the coupling dependency metric as a predictor of run time failures and maintenance measure’. Proc. 20th Int. Conf. in Software Engineering, 1998, pp. 452455.
    30. 30)
      • 30. Alshayeb, M., Li, W.: ‘An empirical validation of object-oriented metrics in two iterative processes’, IEEE Trans. Softw. Eng., 2003, 29, pp. 10431049 (doi: 10.1109/TSE.2003.1245305).
    31. 31)
      • 31. Beck, K.: ‘Extreme programming explained: embracing change’ (Addison Wesley, 1999).
    32. 32)
      • 32. Vessey, I., Weber, R.: ‘Some factors affecting program repair maintenance: an empirical study’, Commun. ACM CACM Homepage archive, 1983, 26, pp. 128134 (doi: 10.1145/358024.358057).
    33. 33)
      • 33. Bassili, V., Perricone, B.: ‘Software errors and complexity: an empirical investigation’, Commun. ACM, 1984, 27, pp. 4252 (doi: 10.1145/69605.2085).
    34. 34)
      • 34. Nguyen, V., Boehm, B., Danphitsanuphan, P.: ‘A controlled experiment in assessing and estimating software maintenance tasks’, Inf. Softw. Technol., 2011, 53, pp. 682691 (doi: 10.1016/j.infsof.2010.11.003).
    35. 35)
      • 35. Banker, R.D., Davis, G.B., Slaughter, S.A.: ‘Software development practices, software complexity, and software maintenance performance: a field study’, Manag. Sci., 1998, 44, pp. 433450 (doi: 10.1287/mnsc.44.4.433).
    36. 36)
      • 36. Alshayeb, M.: ‘Investigating the relationship between refactoring activities and class stability’. Proc. 21st Int. Conf. Software Engineering and Data Engineering, 2012.
    37. 37)
      • 37. Elish, K., Alshayeb, M.: ‘A classification of refactoring methods based on software quality attributes’, Arab. J. Sci. Eng., 2011, 36, pp. 12531267 (doi: 10.1007/s13369-011-0117-x).

Related content

This is a required field
Please enter a valid email address