Source code ch.29: Correlating source & non-source documents

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.)

Print Friendly, PDF & Email