Chapter 29: Correlating source code with non-source documents
- Sometimes too much focus is put on source code
- Ideally, source code is used to provide fine-grained detail and confirmation to points learned elsewhere?
- Non-source evidence may sometimes be superior
- Used together, source code and non-source evidence may be stronger than either one by itself
- Non-source evidence is often more compelling-looking to the fact finder (see chapter xxx on demonstrative exhibits)
- See also chapters xxx and xxx, on correlating source code with examination of the product itself
29.1 Searching and locating non-source documents related to source code
- Searching in non-source discovery production for function/data/module names learned from the source-code exam
- Likely related documents include emails, specs, requirements docs, diagrams, bug reports, test logs
- References to docs (e.g. internal wikis) in the source code
- Supplementary doc discovery requests prompted by source code
- Non-source docs found inside the source-code production: specs, diagrams, etc.
- Presence of non-source docs in source repository sometimes used to argue for expert’s reasonable reliance upon non-source docs generally (especially emails)
- Conversely, source code is sometimes found in non-source doc production (clawback to coverage under PO?)
- Searching the internet for function/data/module names found in source code; these may turn up in open source, or in error logs posted by users
- Locating error messages, other strings from source code in the product; linking product internals (source code) with its externals (visible behavior, GUI): see chapter 22 on correlating source code with product, and chapter 28 re: demonstrative exhibits
- Locating items from the source-code production in open source and other public source code: see chapter 3
- Seeking creation of new documents to explain source code: e.g. have engineer draw diagram at deposition (see chapter 28); producing party sometimes required to provide new explanation or “roadmap” to its code (see cases in chapter 9 on discovery, but creation of new docs usually NOT required)
- Non-source production is not a substitute for source-code production (see Ioli Trust v. Avigilon; requesting party needs source code to understand for themselves)
29.2 Some uses of source/document correlation
- Non-source docs as additional explanation for source code: motivation for this code; why this approach taken; why other approaches not taken; value of (or problems caused by) this code (see also chapter 30 on damages)
- Using non-source docs to establish dates for source-code files (see chapter 25 re: authentication, dates)
- Using non-source docs to establish developer names for code, or “chain of command”
- Using source code to show that “smoking gun” emails “came to fruition” (usually non-patent cases, but some patent e.g. willfulness; for antitrust example, see internal emails correlated to AARD code, in “The Caldera v. Microsoft Dossier”)
- Source code is of course not the only way to prove or disprove software patent infringement; some claim limitations can be shown without using source code (see chapters 7 and 26 on claims tables)
29.3 How to correlate source code with non-source documents
- Text located in source code (function names, error messages, strings, etc.) may also be found in non-source documents
- How to know when e.g. this piece of code is what this email is talking about, or when this spec/requirements doc came to fruition in this code, etc.
- Use of dates and developer names to correlate
- See papers from IEEE Working Conference on Reverse Engineering (WCRE) on linking e-mails & source code (Bacchelli et al.), recovering code/documentation links (Antoniol et al.)