Galorath Incorporated

Automatic Functional Size Determination from Source Code

Project Synopsis

Knowledge of a software project's relative size is helpful for any number of reasons. Software size is firstly critical for gauging, by analogy or statistical means, the time and effort required for future software or other development projects. Software size also is helpful for developing defect prediction models, understanding trends over time, and for a variety of other studies. There are two primary measures of software size, lines of code and an assortment of functional measures, chiefly COSMIC and Function Points. In most domains, however, lines of code is an increasingly unreliable measure. Functional metrics are meanwhile difficult to obtain because they largely are counted manually; attempts have been made to automate functional counting but only one method has been commercialized, and its efficacy and training requirements are uncertain. The goal of this project is to explore and hopefully automate the sizing process, increasingly obtaining a more accurate reading of size with each release. Source code will be parsed into abstract syntax trees, and those trees will be analyzed based on a set of rules that will ultimately produce a size estimate of functional size.