IEEE Spectrum October, 2010 - 48

Software v. Software

age, rather than unique features, such as the number of tail fins.
And rather than rendering a definitive verdict that illegal copying has or hasn't occurred, CodeMatch relies on measurable
Continued from page 35
quantities that can be used to judge the likelihood of copying.
CodeMatch works by gauging the statistical correlation of
just the threat of a plagiarism-detection program, whether it
two variables. A correlation of 0 indicates that the two variaworked or not, was enough to discourage cheating.
The goals of a software forensics tool used in intellectual- bles are unrelated. A correlation of 1 indicates that a change in
property litigation have to be very different. In these cases, there one variable always causes a similar change in the other. And
may be hundreds of millions of dollars at stake. The tool must -1 indicates a completely opposite correspondence between
favor false positives over false negatives so that it does not miss their variations. For source-code fi les that have no similariany cases of copying; an expert can then examine the results and ties, the correlation is 0; for identical files, it's 1.
eliminate those false positives. And it must be
fast, but not at the expense of accuracy; in these
high-stakes cases, it's fine to dedicate a computer or set of computers to analyze the code
for a day, a week, or even a month if necessary.

>
>
>
>

s

few people have the expertise to parse
source code--the human-readable form
of a program--to determine what, if
anything, has been illegally reproduced

o how do you go about creating such a
software forensics tool? I spent about
a year developing CodeMatch, for use
in copyright infringement cases. My company released
the first version in 2003, and the program has been
evolving ever since. Here are the basic principles I followed in
developing CodeMatch. First, the tool can analyze source code in
a way that's independent of the programming language. That's
extremely important, given the wide variety of software cases
in which the program is used. To be able to do that, CodeMatch
focuses on characteristics in the code that are generic to all
types of source code. If the program were comparing automobile
designs instead, it might look at characteristics such as gas mile-

CodeMatch looks for such correlations by examining and
comparing two collections of source-code fi les. Source code
consists of statements, which include the instructions and
identifiers that guide the program, as well as comments and
strings that serve to document the code but cause no action
to occur. A single line of source code may include one or more
statements and one or more comments.
CodeMatch spots correlations in four places: statements,
comments/strings, identifiers, and instruction sequences.
Each type of correlation offers a clue to plagiarism that the

The Exact Lens you need,
The Expert Support you want
Universe Kogaku America designs
Lens Assemblies for Every Application...

Custom Lens Designer and Manufacturer.
Thousands of Lens Sizes in Stock.
Most Lenses Ship Same Day.

Medical Imaging Lenses
Microscope Objectives & Eyepieces
Photographic Lenses
Lens Mounting Accessories
Lens Filters and Accessories
Image and Barcode Lenses
UV Quartz Lenses
CCD and CMOS Lenses
CCTV Lenses
Diode Laser Lenses
High Resolution Lenses
Your Custom Lens Assembly

Focus on Medical Lenses

from Prototype to Production
Lens assemblies for medical imaging and diagnostic cameras
from Universe Kogaku are available off-the-shelf in a wide
variety of sizes and styles designed for use with today's highresolution diagnostic cameras. Our design capability and 60
years of manufacturing experience allow us to produce any
special lens.... in any quantity! Applications include Endoscope
and fiber scope couplers, diagnostic camera hand pieces, and
medical X-ray scanning. Contact Universe for drawings, full
performance data, and pricing.

www.UKAoptics.com
In USA: 516-624-2444
48

Na * iEEE SpEctrum * octobEr 2010

Email: info@ukaoptics.com

© 2010 Universe Kogaku (America) Inc.

spectrum.ieee.org


http://www.UKAoptics.com http://spectrum.ieee.org

Table of Contents for the Digital Edition of IEEE Spectrum October, 2010

IEEE Spectrum October, 2010 - Cover1
IEEE Spectrum October, 2010 - Cover2
IEEE Spectrum October, 2010 - 1
IEEE Spectrum October, 2010 - 2
IEEE Spectrum October, 2010 - 3
IEEE Spectrum October, 2010 - 4
IEEE Spectrum October, 2010 - 5
IEEE Spectrum October, 2010 - 6
IEEE Spectrum October, 2010 - 7
IEEE Spectrum October, 2010 - 8
IEEE Spectrum October, 2010 - 9
IEEE Spectrum October, 2010 - 10
IEEE Spectrum October, 2010 - 11
IEEE Spectrum October, 2010 - 12
IEEE Spectrum October, 2010 - 13
IEEE Spectrum October, 2010 - 14
IEEE Spectrum October, 2010 - 15
IEEE Spectrum October, 2010 - 16
IEEE Spectrum October, 2010 - 17
IEEE Spectrum October, 2010 - 18
IEEE Spectrum October, 2010 - 19
IEEE Spectrum October, 2010 - 20
IEEE Spectrum October, 2010 - 21
IEEE Spectrum October, 2010 - 22
IEEE Spectrum October, 2010 - 23
IEEE Spectrum October, 2010 - 24
IEEE Spectrum October, 2010 - 25
IEEE Spectrum October, 2010 - 26
IEEE Spectrum October, 2010 - 27
IEEE Spectrum October, 2010 - 28
IEEE Spectrum October, 2010 - 29
IEEE Spectrum October, 2010 - 30
IEEE Spectrum October, 2010 - 31
IEEE Spectrum October, 2010 - 32
IEEE Spectrum October, 2010 - 33
IEEE Spectrum October, 2010 - 34
IEEE Spectrum October, 2010 - 35
IEEE Spectrum October, 2010 - 36
IEEE Spectrum October, 2010 - 37
IEEE Spectrum October, 2010 - 38
IEEE Spectrum October, 2010 - 39
IEEE Spectrum October, 2010 - 40
IEEE Spectrum October, 2010 - 41
IEEE Spectrum October, 2010 - 42
IEEE Spectrum October, 2010 - 43
IEEE Spectrum October, 2010 - 44
IEEE Spectrum October, 2010 - 45
IEEE Spectrum October, 2010 - 46
IEEE Spectrum October, 2010 - 47
IEEE Spectrum October, 2010 - 48
IEEE Spectrum October, 2010 - 49
IEEE Spectrum October, 2010 - 50
IEEE Spectrum October, 2010 - 51
IEEE Spectrum October, 2010 - 52
IEEE Spectrum October, 2010 - 53
IEEE Spectrum October, 2010 - 54
IEEE Spectrum October, 2010 - 55
IEEE Spectrum October, 2010 - 56
IEEE Spectrum October, 2010 - 57
IEEE Spectrum October, 2010 - 58
IEEE Spectrum October, 2010 - 59
IEEE Spectrum October, 2010 - 60
IEEE Spectrum October, 2010 - 61
IEEE Spectrum October, 2010 - 62
IEEE Spectrum October, 2010 - 63
IEEE Spectrum October, 2010 - 64
IEEE Spectrum October, 2010 - 65
IEEE Spectrum October, 2010 - 66
IEEE Spectrum October, 2010 - 67
IEEE Spectrum October, 2010 - 68
IEEE Spectrum October, 2010 - Cover3
IEEE Spectrum October, 2010 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1017
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0917
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0817
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0717
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0617
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0517
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0417
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0317
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1016
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0916
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0816
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0716
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0616
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0516
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0416
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0316
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1015
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0915
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0815
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0715
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0615
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0515
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0415
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0315
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1014
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0914
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0814
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0714
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0614
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0514
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0414
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0314
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1013
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0913
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0813
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0713
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0613
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0513
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0413
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0313
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1012
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0912
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0812
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0712
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0612
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0512
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0412
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0312
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1011
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0911
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0811
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0711
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0611
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0511
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0411
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0311
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1010
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0910
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0810
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0710
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0610
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0510
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0410
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0310
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1009
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0909
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0809
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0709
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0609
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0509
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0409
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0309
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1008
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0908
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0808
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0708
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0608
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0508
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0408
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0308
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1107
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1007
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0907
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0807
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0707
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0607
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0507
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0407
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0307
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0107
https://www.nxtbookmedia.com