|
Software For Algorithmic Trading Of Equities: |
|
Quality Assurance, (QA) |
||
Home | Installation | Usage | FAQs | Utilities | Architecture | QA | Tests | Links | Mailing List | License | Author | Download | Thanks
|
Attached is the quality assurance process for the tsinvest program suite, (ie., the tsinvest(1), tsinvestsim(1), tsshannoneffective(1), tsinvestdb(1), and csv2tsinvest(1) programs.) The programs have a substantial regression test suite (see the tests directory in the source tree, or the Tests page that describes how every line of code is exercised in the programs, and all available command line options.) The regression test suite exercises the programs in an envelope of corner solutions taken from market data, and fabricated using theoretical values where the program's results can be compared against theoretical expectations. The results compare favorably with the theoretical values. The regression suite also contains a fragment of the US equity market exchange tickers, which is used to exercise the tsinvest program, and the internal data structures dumped to a file. This file is then used by the tsinvestsim program to provide theoretically derived data to the tsinvest program, and the two results compared to gain confidence in the stochastic methods used. The two results compare favorably, as table I and III show on the Usage page. In addition, the tsshannoneffective program is a test facility that exercises certain complex functionality of the tsinvest program. Additionally, various static verifications were performed. A description, and the results, are attached for each program. As a support metric for the program suite, the collateral documentation for the program(s) is ninety six lines of collateral per one line of executable code. The process described is not comprehensive. However, it is probably minimally adequate for a useful and maintainable program. By no means can it be regarded as qualifying the program for mission critical applications.
The following is the McCabe and Halstead metrics for the program, tsinvest, as generated by "CodeCheck" from Abraxas Software, Inc., 7033 SW Macadam Ave., Portland, OR 97219, USA, telephone (503) 244-5253. The program has only 908 lines of executable code, and 325 lines of declarations, out of 8402 total lines, of which, 4043 lines are comments, (the rest are whitespace, punctuation, compiler directives, etc.) Over 99% of the lines of executable code is commented. The diagnostics from CodeCheck seem within reasonable bounds, (no errors or warnings were permitted, excepting as noted in tsinvest.c concerning line length of comments, size of functions, etc.) The lint product from Gimpel Software, 3207 Hogarth Lane, Collegeville, PA, 19426, USA, telephone (215) 584-4261, was used to verify the code statics, (no errors or warnings were permitted,) in addition to the lint on the ATT SysV, Rel. 4.2 system that was used for development, (again, no errors or warnings were permitted.) The GNU compiler, GCC, was used for cross development, with all warnings enabled. No errors or warnings were permitted. Memory allocation robustness, (memory boundary overruns and referencing of un-allocated areas,) was verified using Bruce Perens' "efence" library, c/o Pixar, 1001 West Cutting Blvd., Suite 200, Richmond, CA 94804, telephone (510) 215-3502, Bruce@Pixar.com. The sources were formated for consistency with the indent program, available via anonymous ftp from ftp://prep.ai.mit.edu/pub/gnu/ in /pub/gnu/indent.1.9.1.tar.gz.
Date: Nov 07 1999, 17:04:46.
Note: Line counts do NOT include lines from header files.
tsinvest
main
sqrt function
tsgetopt function
atof function
atoi function
atof function
atoi function
atoi function
atof function
printf function
printf function
hash_init function
fopen function
fgets function
strtoken function
atof function
strcpy function
get_stock function
strcmp function
update_stocks function
invest function
printstocks function
strcpy function
update_stocks function
invest function
printstocks function
fclose function
printf function
hash_term function
fprintf function
exit function
Complexity, 49 (very high)
Density, 1.232258
length, 878.613525
volume, 7321.780273
% abstraction, 0.158563
invest
POPINVESTMENT macro
qsortlist function
invest_decisions function
PUSHPRINT macro
Complexity, 4 (low)
Density, 1.894737
length, 167.297318
volume, 808.666565
% abstraction, 2.237602
invest_decisions
sqrt function
sqrt function
GAIN macro
PUSHINVESTMENT macro
sqrt function
sqrt function
GAIN macro
PUSHINVESTMENT macro
sqrt function
GAIN macro
PUSHINVESTMENT macro
sqrt function
sqrt function
GAIN macro
PUSHINVESTMENT macro
sqrt function
sqrt function
GAIN macro
PUSHINVESTMENT macro
PUSHINVESTMENT macro
sqrt function
sqrt function
GAIN macro
PUSHINVESTMENT macro
Complexity, 40 (very high)
Density, 1.653333
length, 336.516418
volume, 6673.011230
% abstraction, 0.378633
printstocks
printf function
printf function
printf function
printf function
printf function
printf function
Complexity, 6 (low)
Density, 1.692308
length, 140.344376
volume, 656.282715
% abstraction, 5.028321
get_stock
hash_find function
hash_insert function
hash_find function
Complexity, 4 (low)
Density, 2.071429
length, 134.013596
volume, 665.859985
% abstraction, 10.229521
update_stocks
statistics function
decisions function
Complexity, 6 (low)
Density, 2.727273
length, 202.277756
volume, 1197.223999
% abstraction, 0.397159
statistics
sqrt function
normal function
sqrt function
confidenceavgrms function
confidenceavg function
confidencerms function
GAIN macro
pow function
normal function
sqrt function
normal function
normal function
sqrt function
normal function
realloc function
pow function
pow function
realloc function
pow function
pow function
Complexity, 35 (very high)
Density, 2.849673
length, 498.939728
volume, 10341.522461
% abstraction, 0.045979
decisions
GAIN macro
GAIN macro
sqrt function
GAIN macro
GAIN macro
GAIN macro
GAIN macro
GAIN macro
rand function
GAIN macro
Complexity, 23 (high)
Density, 2.047619
length, 304.238190
volume, 3208.529053
% abstraction, 0.148195
cumulativenormal
sqrt function
exp function
Complexity, 2 (low)
Density, 3.666667
length, 144.545532
volume, 610.384644
% abstraction, 0.327662
confidencerms
cumulativenormal function
sqrt function
MIDWAY macro
Complexity, 4 (low)
Density, 2.318182
length, 209.092590
volume, 1088.141724
% abstraction, 0.436973
confidenceavg
cumulativenormal function
sqrt function
sqrt function
floor function
MIDWAY macro
sqrt function
sqrt function
Complexity, 7 (low)
Density, 2.500000
length, 246.438568
volume, 1710.131958
% abstraction, 0.278042
confidenceavgrms
cumulativenormal function
sqrt function
MIDWAY macro
sqrt function
MIDWAY macro
Complexity, 7 (low)
Density, 2.538461
length, 247.175629
volume, 2166.167236
% abstraction, 0.219507
normal
cumulativenormal function
floor function
Complexity, 3 (low)
Density, 1.666667
length, 76.238831
volume, 258.647034
% abstraction, 1.838369
strtoken
strcpy function
strtok function
strtok function
Complexity, 2 (low)
Density, 2.166667
length, 77.302971
volume, 272.025330
% abstraction, 9.288177
hash_init
malloc function
Complexity, 4 (low)
Density, 2.700000
length, 133.662018
volume, 554.883362
% abstraction, 0.856917
hash_insert
comphash function
cmphash function
mkhash function
SWAP macro
SWAP macro
Complexity, 5 (low)
Density, 1.933333
length, 156.238663
volume, 791.836914
% abstraction, 1.466166
hash_find
comphash function
cmphash function
Complexity, 3 (low)
Density, 2.100000
length, 128.090225
volume, 485.000000
% abstraction, 2.393740
hash_term
SWAP macro
SWAP macro
rmhash function
free function
Complexity, 3 (low)
Density, 2.000000
length, 150.117310
volume, 548.012085
% abstraction, 0.867661
hash_text
Complexity, 4 (low)
Density, 4.857143
length, 143.258377
volume, 691.894958
% abstraction, 1.677948
text_cmphash
strcmp function
Complexity, 1 (low)
Density, 3.000000
length, 36.529327
volume, 70.308357
% abstraction, 16.512461
text_mkhash
malloc function
strlen function
malloc function
strcpy function
PUSHDECISION macro
free function
Complexity, 3 (low)
Density, 2.644068
length, 485.488190
volume, 3313.655029
% abstraction, 0.143494
text_rmhash
free function
free function
free function
free function
Complexity, 3 (low)
Density, 2.166667
length, 52.870766
volume, 224.810455
% abstraction, 2.115065
qsortlist
element_comp macro
qsortlist function
qsortlist function
Complexity, 5 (low)
Density, 1.904762
length, 117.592590
volume, 775.288696
% abstraction, 1.497460
tsgetopt
strcmp function
strchr function
fprintf function
fprintf function
Complexity, 12 (moderate)
Density, 2.166667
length, 202.277756
volume, 1669.523438
% abstraction, 1.083827
File tsinvest has:
Manifest constants: 13
Executable lines: 908
Comment lines with text: 4043
Declaration lines: 325
Whitespace lines: 2318
Preprocessor lines: 161
Suppressed lines: 181
Punctuation lines: 524
TOTAL LINES: 8460
Low-level statements: 633
Non-executable statements: 49
High-level statements: 366
TOTAL STATEMENTS: 1048
Macros defined: 211
Functions defined: 24
Executable lines per function (1):
Mean: 108.000000
Minimum: 19.000000
Std.Dev: 62.965599
Maximum: 155.000000
Executable lines per function (2):
Mean: 26.142857
Minimum: 1.000000
Std.Dev: 32.740372
Maximum: 153.000000
Function Density (operators per executable line) (1):
Mean: 1.593443
Std.Dev: 0.273751
Function Density (operators per executable line) (2):
Mean: 2.462742
Std.Dev: 0.709164
Function Complexity (McCabe) (1):
Mean: 31.000000
Std.Dev: 19.442223
Maximum: 49.000000
Function Complexity (McCabe) (2):
Mean: 6.761905
Std.Dev: 7.794410
Maximum: 35.000000
Histogram (1):
0 +
1 +
2 +
3 +
4 + x
5 +
6 +
7 +
8 +
9 +
10 +
11 +
12 +
13 +
14 +
15 +
16 +
17 +
18 +
19 +
20 +
[2 cases were above 20]
Histogram (2):
0 +
1 + x
2 + xx
3 + xxxxx
4 + xxxx
5 + xx
6 + xx
7 + xx
8 +
9 +
10 +
11 +
12 + x
13 +
14 +
15 +
16 +
17 +
18 +
19 +
20 +
[2 cases were above 20]
Level of Function Abstraction (percent) (1)
Histogram:
0 + tsinvest
5 +
10 +
15 +
20 +
25 +
30 +
35 +
40 +
45 +
50 +
Level of Function Abstraction (percent) (2)
Histogram:
0 + xxxxxxxxxxxxxxxxx
5 + xx
10 + x
15 + x
20 +
25 +
30 +
35 +
40 +
45 +
50 +
Halstead Volume (1): 24634.103516
Halstead Length (1): 2023.955200
Halstead Purity (1): 0.663157
Halstead Effort (1): 1840848.875000
Halstead Volume (2): 52541.007813
Halstead Length (2): 2290.774902
Halstead Purity (2): 0.358774
Halstead Effort (2): 9626044.000000
2318 whitespace lines
908 executable lines
8462 source-file lines
The following is the McCabe and Halstead metrics for the program, tsinvestsim, as generated by "CodeCheck" from Abraxas Software, Inc., 7033 SW Macadam Ave., Portland, OR 97219, USA, telephone (503) 244-5253. The program has only 195 lines of executable code, and 43 lines of declarations, out of 1262 total lines, of which, 406 lines are comments, (the rest are whitespace, punctuation, compiler directives, etc.) Over 99% of the lines of executable code is commented. The diagnostics from CodeCheck seem within reasonable bounds, (no errors or warnings were permitted, excepting as noted in tsinvestsim.c concerning line length of comments, size of functions, etc.) The lint product from Gimpel Software, 3207 Hogarth Lane, Collegeville, PA, 19426, USA, telephone (215) 584-4261, was used to verify the code statics, (no errors or warnings were permitted,) in addition to the lint on the ATT SysV, Rel. 4.2 system that was used for development, (again, no errors or warnings were permitted.) The GNU compiler, GCC, was used for cross development, with all warnings enabled. No errors or warnings were permitted. Memory allocation robustness, (memory boundary overruns and referencing of un-allocated areas,) was verified using Bruce Perens' "efence" library, c/o Pixar, 1001 West Cutting Blvd., Suite 200, Richmond, CA 94804, telephone (510) 215-3502, Bruce@Pixar.com. The sources were formated for consistency with the indent program, available via anonymous ftp from ftp://prep.ai.mit.edu/pub/gnu/ in /pub/gnu/indent.1.9.1.tar.gz.
Date: Nov 07 1999, 17:14:36.
Note: Line counts do NOT include lines from header files.
tsinvestsim
main
sqrt function
tsgetopt function
atoi function
sqrt function
printf function
printf function
read_infile function
atoi function
floor function
rand function
printf function
POP macro
free function
free function
fprintf function
exit function
Complexity, 14 (moderate)
Density, 2.043478
length, 428.013885
volume, 2716.929443
% abstraction, 0.427307
read_infile
cumulative_normal function
fopen function
fgets function
strtoken function
malloc function
PUSH macro
toupper function
strcmp function
atof function
strcmp function
atof function
findHvalue function
sqrt function
strcmp function
atof function
strcmp function
atof function
malloc function
strlen function
strcpy function
sprintf function
malloc function
strlen function
strcpy function
fclose function
cumulative_normal function
Complexity, 28 (high)
Density, 2.694444
length, 523.775330
volume, 5270.562012
% abstraction, 0.220273
strtoken
strcpy function
strtok function
strtok function
Complexity, 2 (low)
Density, 2.166667
length, 77.302971
volume, 272.025330
% abstraction, 9.288177
cumulative_normal
sqrt function
malloc function
exp function
free function
Complexity, 4 (low)
Density, 3.000000
length, 214.203903
volume, 1094.254028
% abstraction, 0.182773
findHvalue
MIDWAY macro
Complexity, 5 (low)
Density, 2.142857
length, 134.013596
volume, 620.460449
% abstraction, 0.766348
tsgetopt
strcmp function
strchr function
fprintf function
fprintf function
Complexity, 12 (moderate)
Density, 2.166667
length, 202.277756
volume, 1669.523438
% abstraction, 1.083827
File tsinvestsim has:
Manifest constants: 10
Executable lines: 195
Comment lines with text: 406
Declaration lines: 43
Whitespace lines: 390
Preprocessor lines: 51
Suppressed lines: 25
Punctuation lines: 152
TOTAL LINES: 1262
Low-level statements: 111
Non-executable statements: 16
High-level statements: 116
TOTAL STATEMENTS: 243
Macros defined: 233
Functions defined: 6
Executable lines per function:
Mean: 30.833334
Minimum: 6.000000
Std.Dev: 22.423326
Maximum: 72.000000
Function Density (operators per executable line):
Mean: 2.369019
Std.Dev: 0.351913
Function Complexity (McCabe):
Mean: 10.833333
Std.Dev: 8.801830
Maximum: 28.000000
Histogram:
0 +
1 +
2 + x
3 +
4 + x
5 + x
6 +
7 +
8 +
9 +
10 +
11 +
12 + x
13 +
14 + x
15 +
16 +
17 +
18 +
19 +
20 +
[1 case was above 20]
Level of Function Abstraction (percent)
Histogram:
0 + xxxxx
5 + x
10 +
15 +
20 +
25 +
30 +
35 +
40 +
45 +
50 +
Halstead Volume: 16521.371094
Halstead Length: 1197.520874
Halstead Purity: 0.541865
Halstead Effort: 1515717.875000
390 whitespace lines
195 executable lines
1262 source-file lines
The following is the McCabe and Halstead metrics for the program, tsshannoneffective, as generated by "CodeCheck" from Abraxas Software, Inc., 7033 SW Macadam Ave., Portland, OR 97219, USA, telephone (503) 244-5253. The program has only 202 lines of executable code, and 51 lines of declarations, out of 2517 total lines, of which, 1370 lines are comments, (the rest are whitespace, punctuation, compiler directives, etc.) Over 99% of the lines of executable code is commented. The diagnostics from CodeCheck seem within reasonable bounds, (no errors or warnings were permitted, excepting as noted in tsshannoneffective.c concerning line length of comments, size of functions, etc.) The lint product from Gimpel Software, 3207 Hogarth Lane, Collegeville, PA, 19426, USA, telephone (215) 584-4261, was used to verify the code statics, (no errors or warnings were permitted,) in addition to the lint on the ATT SysV, Rel. 4.2 system that was used for development, (again, no errors or warnings were permitted.) The GNU compiler, GCC, was used for cross development, with all warnings enabled. No errors or warnings were permitted. Memory allocation robustness, (memory boundary overruns and referencing of un-allocated areas,) was verified using Bruce Perens' "efence" library, c/o Pixar, 1001 West Cutting Blvd., Suite 200, Richmond, CA 94804, telephone (510) 215-3502, Bruce@Pixar.com. The sources were formated for consistency with the indent program, available via anonymous ftp from ftp://prep.ai.mit.edu/pub/gnu/ in /pub/gnu/indent.1.9.1.tar.gz.
Date: Nov 07 1999, 16:56:30.
Note: Line counts do NOT include lines from header files.
tsshannoneffective
main
tsgetopt function
printf function
printf function
atof function
atof function
atoi function
confidenceavg function
printf function
confidencerms function
printf function
confidenceavgrms function
printf function
normal function
sqrt function
sqrt function
confidenceavg function
printf function
confidencerms function
printf function
confidenceavgrms function
printf function
atoi function
normal function
sqrt function
sqrt function
printf function
fprintf function
exit function
Complexity, 12 (moderate)
Density, 2.428571
length, 424.713379
volume, 3463.256592
% abstraction, 0.335223
cumulativenormal
sqrt function
exp function
Complexity, 2 (low)
Density, 3.666667
length, 144.545532
volume, 610.384644
% abstraction, 0.327662
confidencerms
cumulativenormal function
sqrt function
MIDWAY macro
Complexity, 4 (low)
Density, 2.318182
length, 209.092590
volume, 1088.141724
% abstraction, 0.436973
confidenceavg
cumulativenormal function
sqrt function
sqrt function
floor function
MIDWAY macro
sqrt function
sqrt function
Complexity, 7 (low)
Density, 2.500000
length, 246.438568
volume, 1710.131958
% abstraction, 0.278042
confidenceavgrms
cumulativenormal function
sqrt function
MIDWAY macro
sqrt function
MIDWAY macro
Complexity, 7 (low)
Density, 2.538461
length, 247.175629
volume, 2166.167236
% abstraction, 0.219507
normal
cumulativenormal function
floor function
Complexity, 3 (low)
Density, 1.666667
length, 76.238831
volume, 258.647034
% abstraction, 1.838369
tsgetopt
strcmp function
strchr function
fprintf function
fprintf function
Complexity, 12 (moderate)
Density, 2.166667
length, 202.277756
volume, 1669.523438
% abstraction, 1.083827
File tsshannoneffective has:
Manifest constants: 5
Executable lines: 202
Comment lines with text: 1370
Declaration lines: 51
Whitespace lines: 706
Preprocessor lines: 44
Suppressed lines: 24
Punctuation lines: 120
TOTAL LINES: 2517
Low-level statements: 125
Non-executable statements: 15
High-level statements: 81
TOTAL STATEMENTS: 221
Macros defined: 176
Functions defined: 7
Executable lines per function:
Mean: 27.714285
Minimum: 6.000000
Std.Dev: 16.059837
Maximum: 56.000000
Function Density (operators per executable line):
Mean: 2.469316
Std.Dev: 0.560576
Function Complexity (McCabe):
Mean: 6.714286
Std.Dev: 3.768830
Maximum: 12.000000
Histogram:
0 +
1 +
2 + x
3 + x
4 + x
5 +
6 +
7 + xx
8 +
9 +
10 +
11 +
12 + xx
13 +
14 +
15 +
16 +
17 +
18 +
19 +
20 +
Level of Function Abstraction (percent)
Histogram:
0 + xxxxxxx
5 +
10 +
15 +
20 +
25 +
30 +
35 +
40 +
45 +
50 +
Halstead Volume: 15364.805664
Halstead Length: 905.949585
Halstead Purity: 0.421568
Halstead Effort: 1544302.750000
706 whitespace lines
202 executable lines
2517 source-file lines
The following is the McCabe and Halstead metrics for the program, tsinvestdb, as generated by "CodeCheck" from Abraxas Software, Inc., 7033 SW Macadam Ave., Portland, OR 97219, USA, telephone (503) 244-5253. The program has only 199 lines of executable code, and 75 lines of declarations, out of 1989 total lines, of which, 682 lines are comments, (the rest are whitespace, punctuation, compiler directives, etc.) Over 99% of the lines of executable code is commented. The diagnostics from CodeCheck seem within reasonable bounds, (no errors or warnings were permitted, excepting as noted in tsinvestdb.c concerning line length of comments, size of functions, etc.) The lint product from Gimpel Software, 3207 Hogarth Lane, Collegeville, PA, 19426, USA, telephone (215) 584-4261, was used to verify the code statics, (no errors or warnings were permitted,) in addition to the lint on the ATT SysV, Rel. 4.2 system that was used for development, (again, no errors or warnings were permitted.) The GNU compiler, GCC, was used for cross development, with all warnings enabled. No errors or warnings were permitted. Memory allocation robustness, (memory boundary overruns and referencing of un-allocated areas,) was verified using Bruce Perens' "efence" library, c/o Pixar, 1001 West Cutting Blvd., Suite 200, Richmond, CA 94804, telephone (510) 215-3502, Bruce@Pixar.com. The sources were formated for consistency with the indent program, available via anonymous ftp from ftp://prep.ai.mit.edu/pub/gnu/ in /pub/gnu/indent.1.9.1.tar.gz.
Date: Nov 07 1999, 16:40:25.
Note: Line counts do NOT include lines from header files.
tsinvestdb
main
tsgetopt function
printf function
printf function
hash_init function
fopen function
fgets function
strtoken function
atof function
strcpy function
get_stock function
strcmp function
update_stocks function
strcpy function
printf function
fprintf function
fprintf function
fprintf function
printf function
update_stocks function
fclose function
hash_term function
fprintf function
exit function
Complexity, 22 (high)
Density, 1.645161
length, 485.256592
volume, 3601.605469
% abstraction, 0.322346
get_stock
hash_find function
hash_insert function
hash_find function
Complexity, 4 (low)
Density, 2.142857
length, 76.635040
volume, 401.348846
% abstraction, 2.892656
update_stocks
Complexity, 3 (low)
Density, 1.777778
length, 81.832298
volume, 321.172913
% abstraction, 1.480476
strtoken
strcpy function
strtok function
strtok function
Complexity, 2 (low)
Density, 2.166667
length, 77.302971
volume, 272.025330
% abstraction, 9.288177
hash_init
malloc function
Complexity, 4 (low)
Density, 2.700000
length, 133.662018
volume, 554.883362
% abstraction, 0.856917
hash_insert
comphash function
cmphash function
mkhash function
SWAP macro
SWAP macro
Complexity, 5 (low)
Density, 1.933333
length, 156.238663
volume, 791.836914
% abstraction, 1.466166
hash_find
comphash function
cmphash function
Complexity, 3 (low)
Density, 2.100000
length, 128.090225
volume, 485.000000
% abstraction, 2.393740
hash_term
SWAP macro
SWAP macro
rmhash function
free function
Complexity, 3 (low)
Density, 2.000000
length, 150.117310
volume, 548.012085
% abstraction, 0.867661
hash_text
Complexity, 4 (low)
Density, 4.857143
length, 143.258377
volume, 691.894958
% abstraction, 1.677948
text_cmphash
strcmp function
Complexity, 1 (low)
Density, 3.000000
length, 36.529327
volume, 70.308357
% abstraction, 16.512461
text_mkhash
malloc function
strlen function
malloc function
strcpy function
PUSHDECISION macro
free function
Complexity, 3 (low)
Density, 2.450000
length, 186.211441
volume, 1046.109497
% abstraction, 0.454531
text_rmhash
free function
free function
Complexity, 1 (low)
Density, 1.500000
length, 16.364529
volume, 39.000000
% abstraction, 12.192019
tsgetopt
strcmp function
strchr function
fprintf function
fprintf function
Complexity, 12 (moderate)
Density, 2.166667
length, 202.277756
volume, 1669.523438
% abstraction, 1.083827
File tsinvestdb has:
Manifest constants: 10
Executable lines: 199
Comment lines with text: 682
Declaration lines: 75
Whitespace lines: 694
Preprocessor lines: 71
Suppressed lines: 95
Punctuation lines: 173
TOTAL LINES: 1989
Low-level statements: 136
Non-executable statements: 24
High-level statements: 110
TOTAL STATEMENTS: 270
Macros defined: 104
Functions defined: 13
Executable lines per function:
Mean: 14.615385
Minimum: 1.000000
Std.Dev: 15.524365
Maximum: 62.000000
Function Density (operators per executable line):
Mean: 2.341508
Std.Dev: 0.825335
Function Complexity (McCabe):
Mean: 5.153846
Std.Dev: 5.530978
Maximum: 22.000000
Histogram:
0 +
1 + xx
2 + x
3 + xxxx
4 + xxx
5 + x
6 +
7 +
8 +
9 +
10 +
11 +
12 + x
13 +
14 +
15 +
16 +
17 +
18 +
19 +
20 +
[1 case was above 20]
Level of Function Abstraction (percent)
Histogram:
0 + xxxxxxxxxx
5 + x
10 + x
15 + x
20 +
25 +
30 +
35 +
40 +
45 +
50 +
Halstead Volume: 18580.429688
Halstead Length: 1288.533203
Halstead Purity: 0.524434
Halstead Effort: 1977755.750000
694 whitespace lines
199 executable lines
1989 source-file lines
The following is the McCabe and Halstead metrics for the program, csv2tsinvest, as generated by "CodeCheck" from Abraxas Software, Inc., 7033 SW Macadam Ave., Portland, OR 97219, USA, telephone (503) 244-5253. The program has only 129 lines of executable code, and 24 lines of declarations, out of 835 total lines, of which, 282 lines are comments, (the rest are whitespace, punctuation, compiler directives, etc.) Over 99% of the lines of executable code is commented. The diagnostics from CodeCheck seem within reasonable bounds, (no errors or warnings were permitted, excepting as noted in csv2tsinvest.c concerning line length of comments, size of functions, etc.) The lint product from Gimpel Software, 3207 Hogarth Lane, Collegeville, PA, 19426, USA, telephone (215) 584-4261, was used to verify the code statics, (no errors or warnings were permitted,) in addition to the lint on the ATT SysV, Rel. 4.2 system that was used for development, (again, no errors or warnings were permitted.) The GNU compiler, GCC, was used for cross development, with all warnings enabled. No errors or warnings were permitted. Memory allocation robustness, (memory boundary overruns and referencing of un-allocated areas,) was verified using Bruce Perens' "efence" library, c/o Pixar, 1001 West Cutting Blvd., Suite 200, Richmond, CA 94804, telephone (510) 215-3502, Bruce@Pixar.com. The sources were formated for consistency with the indent program, available via anonymous ftp from ftp://prep.ai.mit.edu/pub/gnu/ in /pub/gnu/indent.1.9.1.tar.gz.
Date: Nov 07 1999, 17:08:11.
Note: Line counts do NOT include lines from header files.
csv2tsinvest
main
tsgetopt function
printf function
printf function
fopen function
fgets function
strtoken function
atof function
strtoken function
atoi function
strcmp function
strcmp function
strcmp function
strcmp function
strcmp function
strcmp function
strcmp function
strcmp function
strcmp function
strcmp function
strcmp function
strcmp function
atoi function
realloc function
fprintf function
fprintf function
fprintf function
fprintf function
printf function
fclose function
free function
fprintf function
exit function
Complexity, 34 (very high)
Density, 1.727273
length, 733.090820
volume, 5642.929688
% abstraction, 0.205738
strtoken
strcpy function
strtok function
strtok function
Complexity, 2 (low)
Density, 2.166667
length, 77.302971
volume, 272.025330
% abstraction, 9.288177
tsgetopt
strcmp function
strchr function
fprintf function
fprintf function
Complexity, 12 (moderate)
Density, 2.166667
length, 202.277756
volume, 1669.523438
% abstraction, 1.083827
File csv2tsinvest has:
Manifest constants: 6
Executable lines: 129
Comment lines with text: 282
Declaration lines: 24
Whitespace lines: 259
Preprocessor lines: 26
Suppressed lines: 16
Punctuation lines: 99
TOTAL LINES: 835
Low-level statements: 70
Non-executable statements: 9
High-level statements: 79
TOTAL STATEMENTS: 158
Macros defined: 75
Functions defined: 3
Executable lines per function:
Mean: 41.333332
Minimum: 6.000000
Std.Dev: 34.422215
Maximum: 88.000000
Function Density (operators per executable line):
Mean: 2.020202
Std.Dev: 0.207132
Function Complexity (McCabe):
Mean: 16.000000
Std.Dev: 13.366625
Maximum: 34.000000
Histogram:
0 +
1 +
2 + x
3 +
4 +
5 +
6 +
7 +
8 +
9 +
10 +
11 +
12 + x
13 +
14 +
15 +
16 +
17 +
18 +
19 +
20 +
[1 case was above 20]
Level of Function Abstraction (percent)
Histogram:
0 + xx
5 + x
10 +
15 +
20 +
25 +
30 +
35 +
40 +
45 +
50 +
Halstead Volume: 9791.950195
Halstead Length: 985.125671
Halstead Purity: 0.729183
Halstead Effort: 605192.312500
259 whitespace lines
129 executable lines
835 source-file lines
A license is hereby granted to reproduce this software source code and to create executable versions from this source code for personal, non-commercial use. The copyright notice included with the software must be maintained in all copies produced. THIS PROGRAM IS PROVIDED "AS IS". THE AUTHOR PROVIDES NO WARRANTIES WHATSOEVER, EXPRESSED OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, TITLE, OR FITNESS FOR ANY PARTICULAR PURPOSE. THE AUTHOR DOES NOT WARRANT THAT USE OF THIS PROGRAM DOES NOT INFRINGE THE INTELLECTUAL PROPERTY RIGHTS OF ANY THIRD PARTY IN ANY COUNTRY. So there. Copyright © 1994-2011, John Conover, All Rights Reserved. Comments and/or bug reports should be addressed to:
|
Home | Installation | Usage | FAQs | Utilities | Architecture | QA | Tests | Links | Mailing List | License | Author | Download | Thanks