A Standard Process for Software Code Counting
Software Lines of Code or SLOC has long been one of the critical inputs for measuring the effort and time involved with software development projects. SLOC is by no means the only way to measure the size of a project but it is the most mature measure and is well understood by decision makers. Software cost estimating that relies on SLOC as an input depends on accurate and consistent counts. The problem is that no standard has been universally accepted for defining SLOC. Numerous code counting tools in use throughout the industry rely on interpretations of the definition of a line of code.
Use of standard code counting tools provides an objective measure of the size of software development projects. This process provides counts that can be compared consistently across development projects, development teams and contractors. This in turn assists the cost analyst by reducing the potential error in critical inputs to the software cost estimating process.
The University of Southern California Unified Code Counter (USC UCC/d) is a potential solution. It is in use in the NRO and NGA and is an Intelligence Community preferred code counting tool. The USC UCC differential tool provides insight to program managers and cost analysts on the maturity of the code, amount of added/new, modified, deleted and unmodified logical SLOC between two iterations or baselines of the code.
Tecolote Research developed modifications to previous versions of the USC code counters for a number of newer software languages. These modifications were submitted to USC for testing, validation, configuration control and open distribution and USC incorporated most of the inputs in their current USC UCC model. While past USC code counting tools have been helpful in understanding the costs of software developments, their use requires considerable manual effort by a “software developer” in terms of determining the location of the code on the developer’s network, specifying the exact code to count, recognizing file extensions, etc.
Most recently, Tecolote Research used Internal Research and Development funding to develop a working Graphical User Interface for the USC UCC/d tool (GUCC) to allow use by a wider cost analysis and non-technical audience. The GUCC performs many of the previously manual tasks, works with projects developed in a Windows OS, and outputs results in Microsoft Excel, making the UCC/d a more user friendly tool.
This briefing will provide background on use of the UCC as part of a standard process for software code counting. We will discuss the GUCC development efforts to date. The briefing will include a demonstration of the Windows GUCC tool. We will conclude the presentation with a discussion of a UNIX version of the GUCC and continued efforts to standardize the software code counting process.
Tecolote Research, Inc.
Mrs. Legg is a Senior Analyst for the Classified Programs Group of Tecolote Research Inc. For the past five years she has been assigned to work and lead an Agency-wide data collection effort. Mrs. Legg is responsible for collecting, analyzing and normalizing contractor cost, schedule, technical, and programmatic data. The normalized data is provided to the Government customer and cost estimators in support of their efforts including software reuse research, productivity analysis, cost estimating relationship development, and cost estimate generation.
Mrs. Legg is also currently the lead in NGA’s code counting efforts. She developed and implemented a plan for validating beta versions of the University of Southern California Unified Code Counter – USC UCC. She was instrumental in the development of requirements for the USC UCC that were adopted by both the NRO CAIG and NGA. She works closely with the lead of the NRO Cost software working group to establish standard code counting practices and tools.
Prior to her work with NGA, Mrs. Legg supported the NRO Cost Group developing ground and space system software cost estimates and performing data analysis. She coded Perl, xml, and html USC code counters, and by leveraging the USC C/C++ and Java code counters, she helped design and code a diff tool that compares software baselines. These products were provided to USC for validation and adoption in the USC UCC. Increased software lines of code (SLOC) count reliability was achieved by using accepted practices and the USC Toolset, resulting in standardized sizing used in Independent Cost Estimate (ICE) development.
Tecolote Research, Inc.
Mr. Enser is the Chief Scientist for the Classified Programs Group of Tecolote Research. He has 34 years of cost estimating and statistical analysis experience including 26 years with Tecolote. For the past 15 years, Mr. Enser has supported various agencies of the Intelligence Community with the development of cost and technical databases and models and program office and independent cost estimates and studies He was the originator of the NRO Cost Analysis Tools, a robust suite of tools in use by Government and Industry to store, retrieve, and analyze large amounts of cost and technical data.
Prior to his support to the Intelligence Community, Mr. Enser was a Senior Cost Analyst and Operations Manager of Tecolote’s Washington Office. He performed cost and economic analysis studies of major weapon systems for the Navy, Air Force, and Army. Before joining Tecolote, Mr. Enser was an Operations Research Analyst with the Naval Material Command where he performed several should cost studies of missile and radar system procurements and helped establish the Navy’s Cost Analysis Intern Program.
Mr. Enser began his professional career as a Statistician at the Bureau of the Census. He has a Masters degree in Industrial Engineering and Operations Research from Virginia Tech and a Bachelors degree in Mathematics and Statistics from the State University of New York at Buffalo.