The Impact of Functional Complexity on Open Source Maintenance Costs: An Exploratory Empirical Analysis

  • E. Capra
  • F. Merlo


It is well known that software complexity affects the maintenance costs of proprietary software. In the Open Source (OS) context, the sharing of development and maintenance effort among developers is a fundamental tenet, which can be thought as a driver to reduce the impact of complexity on maintenance costs. However, complexity is a structural property of code, which is not quantitatively accounted for in traditional cost models. We introduce the concept of functional complexity, which weights the well-established cyclomatic complexity metric to the number of interactive functional elements that an application provides to users. The goal of this paper is to analyze how Open Source maintenance costs are affected by functional complexity: we posit that costs are influenced by higher levels of functional complexity, and traditional cost models, like CoCoMo, do not properly take into account the impact of functional complexity on maintenance costs. Analyses are based on quality, complexity and cost data collected for 906 OS application versions.


Maintenance Cost Software Product Line Functional Complexity Maintenance Effort Cyclomatic Complexity 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Banker, R., Datar, S., Kemerer, C., and Zweig, D. (1993). Software complexity and mainte-nance costs. Comm. ACM vol. 36, no. 11, pp. 81-94.CrossRefGoogle Scholar
  2. 2.
    Paulson, J.W., Succi, G., and Eberlein, A. (2004). An empirical study of open-source and closed-source software products. IEEE Trans. Software Eng. vol. 30, no. 4, pp. 246-256.CrossRefGoogle Scholar
  3. 3.
    Emerson, T.J. (1984). Program testing, path coverage and the cohesion metric. In: Proc. COMPSAC84, pp. 421-431.Google Scholar
  4. 4.
    Longworth, H.D., Ottenstein, L.M., and Smith, M.R. (1986). The relationship between pro-gram complexity and slice complexity during debugging tasks. In: Proc. COMPSAC86, pp. 383-389.Google Scholar
  5. 5.
    Chidamber, S. and Kemerer, C. (1994). A metrics suite for object oriented design. IEEE Trans. Software Eng. vol. 20, pp. 476-493.CrossRefGoogle Scholar
  6. 6.
    Brito e Abreu, F. (1995). The MOOD metrics set. In: Proc. ECOOP Workshop on Metrics.Google Scholar
  7. 7.
    Gyimothy, T., Ferenc, R., and Siket, I. (2005). Empirical validation of object-oriented metrics on open source software for fault prediction. IEEE Trans. Software Eng. vol. 31, pp. 897-910.CrossRefGoogle Scholar
  8. 8.
    Zhao, Y., Kuan Tan, H.B., and Zhang, W. (2003). Software cost estimation through conceptual requirement. Proc. Int. Conf. Quality Software vol. 1, pp. 141-144.CrossRefGoogle Scholar
  9. 9.
    Boehm, B., Brown, A.W., Madacy, R., and Yang, Y. (2004). A software product line life cycle cost estimation model. Proc. Int. Symp. Empirical Software Eng. vol. 1, pp. 156-164.CrossRefGoogle Scholar
  10. 10.
    Kemerer, C.F. (1987). An empirical validation of software cost estimation models. Comm. ACM vol. 30, no. 5, pp. 416-430.CrossRefGoogle Scholar
  11. 11.
    Briand, L.C., El Emam, K., Surmann, D., Wiezczorek, I., and Maxwell, K.D. (1999). An assessment and comparison of common software cost estimation modeling techniques. Proc. Int. Conf. Software Eng. vol. 1, pp. 313-323.Google Scholar
  12. 12.
  13. 13.
    McCabe, T.J. (1976). A complexity measure. In: Proc. Int. Conf. Software Engineering, vol. 1, p. 407.Google Scholar
  14. 14.
    Boehm, B. (1981). Software Engineering Economics. Prentice-Hall, NJ.Google Scholar
  15. 15.
    Howison, J. and Crowston, K. (2004). The perils and pitfalls of mining SourceForge. In: Proc. Int. Workshop Mining Software Repositories, pp. 7-12.Google Scholar
  16. 16.
    Pawlak, R. and Spoon (2005). Annotation-driven program transformation - the AOP case. In: Proc. Workshop on Aspect-Orientation for Middleware Development, vol. 1.Google Scholar
  17. 17.
    Chan, T., Chung, S., and Ho, T. (1996). An economic model to estimate software rewriting and replacement times. IEEE Trans. Software Eng. vol. 22, no. 8, pp. 580-598.CrossRefGoogle Scholar
  18. 18.
    Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D. (2001). Refactoring: Improving the Design of Existing Code. Addison Wesley, Reading, MA.Google Scholar
  19. 19.
    Raymond, E.S. (2004). The Art of Unix Programming. Addison Wesley, Reading, MA.Google Scholar

Copyright information

© Physica-Verlag Heidelberg 2008

Authors and Affiliations

  • E. Capra
    • 1
  • F. Merlo
    • 1
  1. 1.Dipartimento di Elettronica e InformazionePolitecnico di MilanoMilanoItaly

Personalised recommendations