Title: Java?????????????? SPARS-J
1????????????????????????????????
- ??????????????
- ?????
- ????
2??
- Java?????????????? SPARS-J
- ??
- ??????????????
- ??
- ?????????????
- ?????,???????????????????????
- ??????????????
3??????
????????? ??????????????
????????????????
??????????????????
4???
- ??????????????????????????????????????
???????????????????
- ?????????????????????????????????????????????????
5?????????????
??
public void class A public int x public
int a ( int p ) B b new B() x
b.b(p) return x public void
aa() x x 1
6?????????????
- ????,?????????????????????????????????????????????
??,???2???????????? - ????????????(???)
- ?????????(?????)
???????????????
7?????
- ???????????????????????????????????,????????????
- ????????????
- ????????????
- ???????????????????
- ?????????
8??????
- ?????????????????,????????????E-Zone
- ??
- ????
- ??
- ?????
- ??????????????,?????????
- ????????????
- ??????????????????????
- ?????????
- ?????
- ?????????????
9???????
??????
4
??????
?????
???? ??????
?????
Java????
??????
SPARS-J
??????
???????
????????
??????
10?????
A.java
????
public void class A public int x public
int a ( int p ) B b new B() x
b.b(p) return x public void
aa() x x 1
1
??? ????
???
1
???? ????
????
11???????
????
??????
12???????
??????
4
??????
?????
???? ??????
?????
Java????
??????
??????
SPARS-J
??
??????
???????
???????
????????
??????
13???????
????
14???????
??????
4
??????
?????
???? ??????
Java????
??????
??????
SPARS-J
??????
???????
???????
????????
??????
????????
15????????
- ????????
- LOC(??)
- ??????????
- CYC(?????????)
- ???????????
- CR(Component Rank)
- ????????????????
16???????????
- ???????
- ??????????????????????????????????????
- ?CR
- ??????????
- ?LOC/CYC
- ?????
- ????????
- ??
- ?CRCR???30??
- ?LOC/CYCCYC?3???,1CYC???LOC?3??
17???????
??????
4
??????
?????
???? ??????
Java????
??????
??????
SPARS-J
??????
???????
????????
??????
????????
??????
18??????
?????
?????? ??????
19E-Zone
- ????????????????E-Zone????,SPARS-J??????????
- ?????????,2?????????????????????????
20???1
- ????????????
- ?????????????????
- ????
- ???????????????????,SPARS-J?quicksort???????????
????????????2?????????????????????????????????
21???????
- ??1
- org.apache.turbine.util.QuickSort.quickSort(Object
, int, int, Comparable) - LOC 74,CYC 11
- ??2
- cz.dhl.io.CoSort.QuickSort(CoFile, int, int)
- LOC 47,CYC 12
22????????
??2 ? loc47, cyc12 ? loc94, cyc31
??1 ? loc74, cyc11 ? loc76, cyc12
?????quicksort
????????????????
?????????????????1
23???2
- ?????????
- ???????????????
- ????
- C,C,Java???????????,???????????AStyle?main????
??????????????????????
24????
???????????????????? 5????? ????????
??????? ?? LOC CYC CR
ASBeautifire.beautify ???????? 918 292 20
AStyle.parseOption ?????????? 163 41 14
ASFormatter. isOneLineBlockReached ?????1?????????? 52 14 16
ASBeautifier. getNextProgramCharDistnce ?????????????? 32 8 27
ASFormatter. peekNextChar ????????? 18 5 26
25????????
???????????????????? ??????????????????
- beautify?main??????????????
- AStyle.main ? ASFormatter.nextLine ?
ASBeautifier.beautify - 1???beautify????????????????
26????
- ????????????????????????????(?CR?LOC/CYC)??????
??????????????????????????? - ??
- ???????10?????????main????
- ????????????
- ???????????????????????
27??????? ????? ????? (????) ????? (??) ???
1 JEdit 237 16 10 0.625
2 JeditLogger 7 1 1 1.000
3 JGraph 49 1 1 1.000
4 Astyle 92 5 4 0.800
5 Tidy 35 2 2 1.000
6 VncViewer 102 11 7 0.636
7 GanttProject 163 12 11 0.917
8 FontChooser 3 1 0 0.000
9 Parser 94 14 11 0.786
10 ClassFinder 8 1 1 1.000
? 790 64 48 0.750
28??????
- ????0.750?????????
- ??????????????????????????????????????????
- ??????????????????????????
- ?????????CR??????????
- ???????,????????????????????
29?????????
- ???
- ??????????????,????????????????????????E-Zone???
?,SPARS-J?????????? - ????????,????????????????????????????????
- ?????
- ??????????????????
30???
31???2
- ???????
- ?????????????????????
- ????????
- ????,??????????
- ?????????????
- ???????????????????????????
32??????
1???????? 2??????? 3???? 4??
public void Class Man public int age
public int last ( int now ) Life a new
Life() age a.limit() - now
return age public void next()
age age 1
??????? ???? ????????
Man.last(int) 2 Life
????????
Man.last(int) 1 Life.limit()
33??????????
?? ??????
Man.java
????
public void Class Man public int age
public int last ( int now ) Life a new
Life() age a.limit() - now
return age public void next()
age age 1
1
?? ??? ? ??? ???
???
1
1
??
????
?? ??? ? ?? ??? ??? ?????????
1
?? ??? ?
34???????
SPARS-J????????????????? ??????
???
35???????
?????????????????????? ??????????????????
???
????
36?????
- ???root?????????????????
- ???root?????????????????
java.
lang.
io.
org.
apache.
soap.
server.
ServiceManager
io.
javax.
servlet.
xml.
parsers.
37????????????
- Component Rank(CR)?
- ???????????????,??????
- ???????????????????
- ?????????????????????
5
1
1
1
A
B
C
D
38CR?????
- ??????????????????
- ???????1????????????
- ??????,??????????
- ?????????????,?????????????
- ????????????,2.3.???????
- ???????????CR?