The Impact of Functional Complexity on Open Source Maintenance Costs: An Exploratory Empirical Analysis
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.
KeywordsMaintenance Cost Software Product Line Functional Complexity Maintenance Effort Cyclomatic Complexity
Unable to display preview. Download preview PDF.
- 3.Emerson, T.J. (1984). Program testing, path coverage and the cohesion metric. In: Proc. COMPSAC84, pp. 421-431.Google Scholar
- 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
- 6.Brito e Abreu, F. (1995). The MOOD metrics set. In: Proc. ECOOP Workshop on Metrics.Google Scholar
- 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.Cocomo official website (http://sunset.usc.edu/research/cocomoii/index.html).
- 13.McCabe, T.J. (1976). A complexity measure. In: Proc. Int. Conf. Software Engineering, vol. 1, p. 407.Google Scholar
- 14.Boehm, B. (1981). Software Engineering Economics. Prentice-Hall, NJ.Google Scholar
- 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.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
- 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.Raymond, E.S. (2004). The Art of Unix Programming. Addison Wesley, Reading, MA.Google Scholar