- Part I: Introduction
- Part II: Software
- Part III: Intellectual Property
- Part IV: Source Code Differentiation
- Part V: Source Code Correlation
- Part VI: Object and Source/Object Code Correlation
- Part VII: Source Code Cross-Correlation
- Part VIII: Detecting Software IP Theft and Infringement
- Part IX: Miscellaneous Topics
- Part X: Past, Present, and Future
Part IV: Source Code Differentiation
This part describes source code differentiation, a very basic method of comparing and measuring software source code. Source code differentiation is especially useful for finding code that has been directly copied from one program to another and for determining a percentage of direct copying. While there are many metrics for measuring qualities of software, source code differentiation has some unique abilities to measure development effort, software changes, and software intellectual property changes that are particularly useful for determining software intellectual property value for such applications as transfer pricing calculations.
In this Part I introduce the mathematics of the theory of source code differentiation and explain implementations of source code differentiation for programmers who want to understand how to implement it. I also describe the "changing lines of code" or "CLOC" method of measuring software growth that is based on source code differentiation, and I compare it to traditional methods like "source lines of code" or "SLOC." I then discuss various applications of source code differentiation, though I believe that many more applications of this metric will be found in the future.