AEROSPACE REPORT NUMBER: TOR-2012(3906)-72, UNIFIED CODE COUNTER (UCC) SOFTWARE DESIGN (10-JUL-2012)
AEROSPACE REPORT NUMBER: TOR-2012(3906)-72, UNIFIED CODE COUNTER (UCC) SOFTWARE DESIGN (10-JUL-2012)., The purpose of this technical operating report (TOR) is to document the development and design of the Unified Code Counter (UCC) software produced and maintained by the University of Southern California (USC) Center for Systems and Software Engineering (CSSE) [1]. The Aerospace Corporation provides project direction, oversight, and validation and verification support. This project is sponsored by a U.S. Government cost analysis and improvement group. The purpose of the UCC software is to count source lines of code (SLOC) according to a defined set of standards for a variety of programming languages. UCC provides a generic code-counting tool that is designed to provide consistency and impartiality. It also provides counts of new, modified, deleted, and unmodified lines of code between two baselines. UCC replaces the original CodeCount toolset by combining the code counting and differencing functionality of the previous tools.
Typically, software code counts are based on physical source lines of code (PSLOC) or logical source lines of code (LSLOC). A PSLOC corresponds to a single line terminated by a carriage return and/or line feed, typically excluding blank lines and comments. This measure is language independent and simple to count, but it is very sensitive to formatting and coding styles, such as the placement of multiple statements on a single line or the spanning of statements across multiple lines. A more accurate determination of SLOC is an LSLOC. An LSLOC corresponds to a single statement of code logic. This is language dependent, but it is not affected by formatting or coding styles. Both of these SLOC types are included in the UCC software output results. The LSLOC definitions are designed to be compatible with the Software Engineering Institute�s (SEI) code-counting framework [2].
Lines of code are often used as input to software cost estimation and analysis tools. Historical cost and schedule data are correlated to actual code counts and are used to predict future software project costs and schedules based upon estimated code counts. Thus, consistency of line counting is critical to producing meaningful metrics for accurate software cost estimates and software development productivity metrics.