Patent ID: 8881091

Claim:
A method for determining complexity of a software component, comprising: a processor executing a program of instruction creating a plurality of versions of the software component including raw program text, normalized program text depending on the raw program text, and normalized unique program text depending on the normalized program text; the processor compressing each of the plurality of versions to provide a compressed version corresponding to each of the plurality of versions including a compressed version of the raw program text, a compressed version of the normalized program text, and compressed version of the normalized unique program text; the processor finding lengths of each of the compressed versions including a length of the compressed version of raw program text, a length of the compressed version of the normalized program text, and a length of the compressed version of the normalized unique program text; and the processor providing a software complexity metric calculated based on a ratio between the lengths of at least two of the compressed versions, wherein a ratio of the length of the compressed version of the raw program text to the length of the compressed version of the normalized program text is to be used as a complexity metric of a redundancy of an implementation of the software component and a ratio of the length of the compressed version of the normalized program text to the length of the compressed version of the normalized unique program text is to be used as a complexity metric of a propagation of defects.