Title: Overview and Evaluation of Java Component Search System SPARS-J
1 Overview and Evaluation ofJava Component
Search System SPARS-J
- Reishi Yokomori , Hideo Nishi, Fumiaki
Umemori, Tetsuo Yamamoto, Makoto
Matsushita, Shinji Kusumoto Katsuro Inoue - Japan Science and Technology Agency
- Osaka University
2Outline
- Motivation and research aim
- SPARS-J
- SPARS-J (Outline)
- Ranking method
- System architecture
- Experimental evaluation for SPARS-J
- Conclusion and Future work
3Motivation
- A library of software is a fount of wisdom.
- Reuse of software components improves
productivity and quality. - Example of components source code, document ..
- Maintenance activity is more easier with the
library. - However, a collection of software is not utilized
effectively. - A developer doesnt know an existence of
desirable components. - Although there are a lot of components, these
components are not organized. - We need a system to manage components and to
search suitable component.
4Research aim
- We build a system which have functions as follows
- searches component, which is suitable for users
request - manages the component information
- Targets
- Intranet
- Closed software development environment inside a
company - Internet
- Source code from a lot of open-source-software
community - Source Forge, Jakarta Project. etc.
5Outline
- Motivation and research aim
- SPARS-J
- SPARS-J (Outline)
- Ranking method
- System architecture
- Experimental evaluation for SPARS-J
- Conclusion and Future work
6SPARS-J(Software Product Archive,analysis and
Retrieval System for Java)
- SPARS-J is Java Source Code Search System
- analyzes and extracts components automatically.
- Component a source code of class or interface
- builds a database based on the analysis.
- Use-Relation, Similar Components, Metrics, .....
- provides keyword-search.
- Three ranking methods KR, CR, KRCR
- Analysis information
- Components using (used by) the component
- Package hierarchy
7Ranking search results
- Ranking method
- Component used repeatedly (by important
component) - Ranking based on use relation between components
- Component suited to a user request
- Frequency of word appearance (arranged TF-IDF)
- A class-name, a method-name, ..., have special
importance - Integrated Ranking
- Components prized both in KR and CR are very
important - Integration by Borda Count method
8System architecture of SPARS-J (Building a
Database)
Library(Java source files)
Database
Component analysis
store
- Component Information
- Indexes
- Use-Relation
- Clustered Component Graph
- Component Rank
- extracts components
- indexes each appeared word
- extracts use-relation
- clustering similar components
- calculates Component rank
provide
9System architecture of SPARS-J (Searching
Components)
Component analysis
Component retrieval
- searches components
- from Indexes
- sorts components
- by CR, KR, KRCR
Query
User interface
Query
- analyzes query
- Analysis condition
- Keywords
- displays search results
- Additional Information
- Source Code
- Use Relation
- Similar Components
- Metrics
- etc.........
Components List
Result
Request
Information
10Screenshot (Top page)
11Screenshot (Search results)
12Screenshot (Source code)
13Screenshot (Similar components)
14Screenshot (Using the component)
15Screenshot (Used by the component)
16Screenshot (Package browsing)
17Outline
- Motivation and research aim
- SPARS-J
- SPARS-J (Outline)
- Ranking method
- System architecture
- Experimental evaluation for SPARS-J
- Conclusion and Future work
18Experimental Evaluation
- Comparison of each ranking method in SPARS-J
- We investigate the best ranking method
- CR vs. KR vs. CRKR
- Comparison with other search engines
- We verify SPARS-Js effectiveness as a software
component search engine. - vs. Google, Namazu
- Application of SPARS-J in actual development
environment - We confirm that SPARS-J is useful to management
and understanding of software.
19Experiment 1 Comparison of ranking method in
SPARS-J
- Purpose of Experiment
- We investigate the best method among 3 ranking
method in SPARS-J. - CR (Based on Use-relation)
- KR (Based on TF-IDF)
- CRKR ( Integrating 1 2)
- Preparation
- Database from Java source codes publicly
available - About 140,000 files from JDK, SourceForge,
etc..... - Keywords
- 10 queries assumed development of simple system
20Experiment 1 Comparison of ranking method in
SPARS-J
- Criterion of Evaluation
- Precision of components in the top 10 Result
- The percentage of suitable components
- User tends to look at only a higher ranked
results. - High precision means that there are many useful
components in range of users visibility. - Ndpm
- The percentage of the component pair which
differs rank order between two ranking methods. - We define users ideal ranking in advance, and
calculate ndpm. - The quantitative indicator which shows a distance
from ideal - Ndpm considers all the components in a search
result. - Its distance becomes large when required
components are ranked low.
21Result (Experiment 1)
Ndpm
Precision
Keyword CR KR CRKR CR KR CRKR
A 1 1 1 0.036 0.048 0.037
B 1 1 1 0.194 0.261 0.221
C 0.5 0.5 0.5 0.133 0.117 0.092
D 0.4 0.9 0.8 0.123 0.200 0.189
E 0.4 0.4 0.4 0.208 0.192 0.194
F 0.2 0.2 0.2 0.184 0.184 0.160
G 0.9 1 1 0.081 0.103 0.080
H 1 0.8 1 0.047 0.109 0.052
I 0.6 0.7 0.7 0.210 0.324 0.267
J 0.5 0.7 0.7 0.219 0.243 0.114
Ave. 0.65 0.72 0.73 0.143 0.178 0.141
22Consideration (Experiment 1)
- By Paired-Difference T-Test, we have confirmed
that following difference are significant at the
5 level. - Precision KR,CRKR CR
- Ndpm CR,CRKR KR
- Characteristic of each method
- CR
- CR generally ranks components in desirable order.
- Higher ranked components are important but often
have no relevance to keyword. - KR
- KR generally appreciates components which have
strong relevance. - In required component, keyword doesnt always
appear with high frequency. - CRKR
- CRKR has good result at both precision and ndpm.
- CRKR has the best of both ranking
- We use CRKR as a default ranking method.
23Experiment 2Comparison with other search engines
- Purpose of Experiment
- We verify SPARS-Js effectiveness as a software
component search engine. - SPARS-J
- Database from 140,000 files (Same as Experiment
1) - We use CRKR as ranking method.
- Google
- Famous web search Engine
- Input queries to www.google.co.jp
- Namazu
- Full-text search system for documents.
- Namazu uses TF-IDF to rank documents.
- Database from 140,000 files (Same files as
SPARS-J) - Preparation
- Keywords 10 queries (Same as Experiment 1)
- Criterion of Evaluation Precision of the top 10
Result
24Result (Experiment 2)
Precision of the top 10 result
keyword SPARS-J Google Namazu
A 1 0.7 0.9
B 1 0.4 0.6
C 0.5 0.3 0.4
D 0.8 0.3 0.6
E 0.4 0.1 0.3
F 0.2 0 0.1
G 1 0.3 0.4
H 1 0.1 0.2
I 0.7 0.4 0.4
J 0.7 0.4 0.7
Ave. 0.73 0.3 0.46
25Consideration (Experiment 2)
- By Paired-Difference T-Test, we have confirmed
that following difference are significant at the
5 level. - Precision
- SPARS-J Namazu Google
- () SPARS-J (CR, KR, CRKR) Namazu
- Consideration of Results
- Google
- In the result, there are many pages other than an
explanation of Java source code. - Performance depends on how much description there
are. - Namazu
- Since the datasets consists of only source codes,
the result is better than Google. - Without characteristics of Java programs, we
cannot get good results. - For searching software components, SPARS-J is
more useful than other search engines.
26Experiment 3 Application of SPARS-J in actual
development environment
- Purpose of Experiment
- We confirm that SPARS-J is useful to management
and understanding of software resource. - Criterion of Evaluation
- Qualitative evaluation about SPARS-J
- Preparation
- We set up SPARS-J to a company.
- 7 employees use SPARS-J for two weeks.
- They are all engaged in the software development
and the maintenance activity. - We carry out a questionnaire survey about SPARS-J
27Result (Experiment 3)
( Useful or Used repeatedly 5 4 3 2 1
Useless or seldom Used )
Questionnaire Item \ examinee A B C D E F G Mode
Package Browser 4 5 5 5 4 3 3 5
Similar components 4 5 5 2 4 3 5,4
Components used by the class 5 5 5 5 5 5 5
Components using the class 5 1 5 5 5 5 5
Metrics of the class 1 4 1 2 4 5 4,1
Download of the class 1 3 5 5 2 5 5
Contribution to reduction of time cost 3 5 5 3 4 1 5,3
Improvement for software quality 5 3 3 3 4 1 3
Understanding of software resource 3 1 5 3 5 2 1 5,3,1
View-ability of the component-list view 4 4 5 5 3 3 5 5
View-ability of the highlighted source code 3 5 5 5 5 5 5 5
28Consideration (Experiment 3)
- Highly rated questionnaire items
- Reference by package browser
- Reference by similar components
- Reference by components using (used by) the class
- View-ability of the component list view and
source code - Activities realized by using SPARS-J
- Listing of applications which uses certain
component - Impact analysis at reediting components
29Consideration (Experiment 3)
- Other comment
- Response speed is very quick, and we have felt no
stress. - Since it is not necessary to install in a client,
sharing of software components is easy. - SPARS-J can support maintenance work effectively.
- Easier grasp of software components
30Conclusion and Future works
- Conclusion
- We construct software component search system
SPARS-J. - Search engine for Java source code
- Ranking components with consideration of
characteristics. - Provision of useful relevant information.
- We verified the validity of SPARS-J based on
experimental evaluation. - SPARS-J is useful to search software components.
- SPARS-J is very helpful to grasp and manage
components. - Future works
- The quantitative evaluation other than ranking
performance - Support for other software component
31(No Transcript)
32(No Transcript)
33(No Transcript)
34Outline
- Motivation and research aim
- SPARS-J
- Outline
- System architecture
- Ranking method
- Each part
- Analysis part
- Retrieval part
- User Interface
- Experiment
- Conclusion and Future work
35Component analysis part
- Extract component and its information from a Java
source file - The process
- Extract a component
- Index the component
- Extract use relations
- Clustering similar components
- Rank components based on use relations (CR method)
36Extract and index a component
- Extracting component
- Find class or interface block in a java source
file - Location information in the file (start line
number, end line number) - Indexing
- Extract index key from the component
- Index key a word and the kind of it
- No reserved words are extracted
- Count frequency in use of the word
public final class Sort / quicksort /
private static void quicksort() int
pivot quicksort()
quicksort()
word kind
Sort Class name
quicksort Comment
quicksort Method name
pivot Variable name
quicksort Method call
1
1
1
1
2
Index key
frequency
37Extract use relations
- Extract use relations among components using
semantic analysis - Make component graph from use relations
- Node component
- Edge use relation
Inheritance
Interface implementation
Variable type
Instance creation
Field access
Method call
Data
public class Test extend Data
public static void main()
Sort.quicksort(super.array)
Inheritance Field access
Sort
Test
Method call
The kind of use relation
Component graph
38Similar component
- Similar component is copied component or minor
modified component - We merge similar components into single component
- Merged component have use relations that all
component before merging have
C
G
B
F
A
D
E
Component graph
Clustered component graph
39Clustering components
- We measure characteristics metrics to merge
components - The difference ratio of each component metrics
- Metrics
- complexity
- The number of methods, cyclomatic, etc.
- represent a structural characteristic
- Token-composition
- The number of appearances of each token
- represent a surface characteristic
40Ranking based on use relation
- Component Rank (CR)
- Reusable component have many use relation
- The example of use is much
- General purpose component
- Sophisticated component
- We measure use relation quantitatively, and rank
components - The component used by many components is
important - The component used by important component is also
important
Katsuro Inoue, Reishi Yokomori, Hikaru Fujiwara,
Tetsuo Yamamoto, Makoto Matsushita, Shinji
Kusumoto "Component Rank Relative Significance
Rank for Software Component Search", ICSE,
Portland, OR, May 6, 2003.
41Propagating weights
A
B
C
Ad-hoc weights are assigned to each node
42Propagating weights
A
B
C
The node weights are re-defined by the incoming
edge weights
43Propagating weights
0.5
0.175
A
B
0.345
C
We get new node weights
44Propagating weights
0.4
0.2
0.2
A
B
0.2
0.2
0.4
0.4
C
- We get stable weight assignment
- next-step weights are the same as previous ones
- Component Rank order of nodes sorted by the
weight
45Outline
- Motivation and research aim
- SPARS-J
- Outline
- System architecture
- Ranking method
- Each part
- Analysis part
- Retrieval part
- User Interface
- Experiment
- Conclusion and Future work
46Component retrieval part
- Search components from database, rank components
- The process
- Search components
- Ranking suited to a user request
- Aggregate two ranks (CR and KR)
47Search components
- Search query
- Words a user input
- The kind of an index word, package name
- Components contain given query are searched from
Database
48Ranking suited to a user request
- Keyword Rank (KR)
- Components which contain words given by a user
are searched - Rank components using the value calculated from
index word weight - Index word weight
- Many frequency in use of a component
- A word contained particular components
- A word represent the component function such as
Class name - Sort the sum of all given word weight
- TF-IDF weighting using full-text search engine
49Calculation of KR value
the kind of a word weight
Class name 200
Interface name 50
Method name 200
Package name 50
Import 30
Method call 10
Field access 10
Variable type 10
Instance creation 10
Local var access 1
Comment 30
Doc comment 50
Line comment 10
String 1
- Calculate weight Wct with component c word t
- TFi The frequency with which a kind i of word t
occurs in component c - IDF the total number of components / the number
of components containing word t - kwi Weight of a kind i
- KR value is the sum of all word Wct
50Aggregate two ranks
- Aggregate two ranks KR and CR
- Aggregation method
- Borda Count method known a voting system
- Use for single or multiple-seat elections
- This form of voting is extremely popular in
determining awards - SPARS-J
- Rank components both KR and CR
- Using KR and CR, the component that be suitable
users request, reusable and sophisticated
51Borda Count method
- There are 10 voters and 5 candidates (from A to
E) - Each voter rank candidates
- 1 point for last place, 2 points for second from
last place , and N points for first place - 1st5points,2nd4points,
- A1536428points
- B38points
- C38points
- D22points
- E26points
1st 2nd 3rd 4th 5th
3 A B C D E
3 E B C D A
2 C B A E D
2 C D B A E
Aggregation
1st 1st 3rd 4th 5th
B C A D E
52Outline
- Motivation and research aim
- SPARS-J
- Outline
- System architecture
- Ranking method
- Each part
- Analysis part
- Retrieval part
- User Interface
- Experiment
- Conclusion and Future work
53User interface
- Receive a users query and provide the search
results through Web browser - Microsoft Internet Explore, Mozilla, etc.
- The process
- Parse query word and the search condition
- Show rank ordered results
- Show analyzed information of the component
- Used by/Using the component
- Metrics
54Analyzed information
- A component information are as follows
- Metrics
- The number of method, variable
- LOC, cyclomatic
- Etc. (measurable metrics in the component itself)
- Components used by/using the component
- Show lists of nodes followed use relation
- Components that are similar to the component
- Show lists of similar components
55Package browsing
- The naming structure for Java packages is
hierarchical - A user can search lists of components in same
package of a component easily
56Outline
- Motivation and research aim
- SPARS-J
- Outline
- System architecture
- Ranking method
- Each part
- Analysis part
- Retrieval part
- User Interface
- Experiment
- Conclusion and Future work
57Experiment(1/2)
- Comparison with Google
- Register about 130,000 components get from
Internet - Query words calculator applet and chat server
client - Calculate relevance ratio of 10 rank higher
- Relevance The component is reusable source code
- Google is a web search engine
- Add java source term to the query words
- Follow one link from the result web page
58Experiment(2/2)
- Example 1
- calculator applet
- SPARS-J
- 9 hits
- 7 suited components
- Example 2
- chat server client
- SPARS-J
- 69 hits
- 57 suited components
- Using SPARS-J, suited component is high order
Example1
Example2
SAPRS-J SAPRS-J Google Google SPARS-J SPARS-J Google Google
order Relevance Ratio Relevance Ratio Relevance Ratio Relevance ratio
1 ? 1 ? 1 ? 1 0
2 ? 1 0.5 ? 1 0
3 ? 1 ? 0.67 ? 1 0
4 ? 1 0.5 ? 1 0
5 ? 1 ? 0.6 ? 1 0
6 0.83 ? 0.67 ? 1 0
7 ? 0.86 0.57 ? 1 ? 0.14
8 0.75 ? 0.63 ? 1 0.13
9 ? 0.78 0.56 ? 1 ? 0.22
10 - - 0.5 ? 1 ? 0.3
59Conclusion and Future work
- We developed component search engine SPARS-J
- Using SPARS-J, retrieval of components used well
is enabled easily. - Future work
- Morphological analysis of Index keyword
- Collaborative filtering
- Investigate best ranking method
- The value of weight
- Aggregation ranks
- Evaluation of SPARS-J
- Usability
60End
61Component graph
System Y
System X
A
B
F
C
G
E
D
I
H
component
use relation
62Weight of nodes
System Y
System X
A
B
F
C
G
E
D
I
H
sum of all node weights 1 ... (1) weight of
node represents significance of node
63Weights of edges
A
0.4
0.2
- Node weight is distributed to each outgoing edge
- Edge weights are collected at the destination
node
sum of all outgoing edge weights origin node
weight ... (2) sum of all incoming edge
weights destination node weight ... (3)
64Definition of weights
- Under constraints (1)(3), we have a simultaneous
equation
.
W node weight vector
Dt transposed matrix of distribution ratios
- This simultaneous equation can be solved by
propagating node weight through edges in the graph
65Pseudo use relation
A
B
C
- Weight computation does not always converge
- Add a pseudo edge from a node to another, if
there is no 'real' edge - Distribution ratios pseudo edges ltlt real
edges -
66Markov model
- Component rank model can be considered as a
Markov Chain of user's focus - User's focus moves from one component to another
along a use relation at a fixed time duration - Node weight represents the existence probability
of the user's focus at infinite future
67Related Works
- Markov models of documentation traversal
- Influence Weight impact factor of journal
publication thought incoming references - Page Rank weight of HTML in the Internet through
incoming web links - Explicit use relations
- No clustering (important for software products)
- Measurement reusability of components or
interfaces - Use various characteristic metrics
- Indirect indicator of reusability
- Our approach directly reflects usage of
components
681.????????????
- Component Rank(CR)?
- ?????????????????,??????
- ???????????????????
- ?????????????????????
- ??????????,??????????????????????????
- ??????,????????????
692.?????????????????
- Keyword Rank(KR)?
- ??????????????TF-IDF????
- ??????????????????????
- ????????????????
- ???,??????????????????
- ??????????????????????????
- ????????????????
- ????????????????
703.CR?KR?????????
- ????????
- ?????????,???
- CR?
- ????????????
- KR?
- ???????,???????????????????????
- Borda???
- ????????????????????
71CR????
- ??????????????????
- ????
- ?????????????
- ??????1
- ???????????
- ??????,??????????
- ??????????
- ????????????????,???????????????
- ????????????,2.3.?????????
- ??????????,?????????????CR????
- ??????????????CR????
72?????
- ??????????????????,
- ??????????????????????
- ???????????????????????
- SPARS-J????????????,?????????????
73???????????
- ???????????????
- ????????????????????
- ?????????????????????????????????????
- ??,????????????,??????????????????
????????????
74?????
- ????????????
- ?????????????????,SPARS-J?????????????????????????
?? - SPARS-J???????????
- ???????????,????????????????
- ???????????SPARS-J?????
- ???????????????????,?????????????????????????
75??1. ????????????
- ?????
- ?????????????????,SPARS-J?????????????????????????
?? - ????
- GoogleWeb??????????,???????????????
- Namazu?????????????????
- ????
- ???????????????????
- ???????,???????????????????
76??????
- ?????????????????????????
- ????????????,?????????????????????????
- ?????????????????????????
- Web???????,????????1???(10?)???????????????,2?????
????????????????????????
Amanda Spink, B. J. Jansen, D. Wolfram, T.
SaracevicFrom E-Sex to E-Commerce Web Search
Changes IEEE Computer,Vol.35,No.3,pp.107-109,Mar(
2002).
77??1. ????????????
- ??
- ??????
- SPARS-J?Namazu?????, JDK???Web???????????????(?14?
?????????)??? - Google??????????????????????
- ???????
- ???????????????????10?????
- ??
- ??????????????10??????????,???????
78??1???
??????????????
keyword SPARS-J Google Namazu
A 1 0.7 0.9
B 1 0.4 0.6
C 0.5 0.3 0.4
D 0.8 0.3 0.6
E 0.4 0.1 0.3
F 0.2 0 0.1
G 1 0.3 0.4
H 1 0.1 0.2
I 0.7 0.4 0.4
J 0.7 0.4 0.7
Ave. 0.73 0.3 0.46
79??1???
- ?????????????
- ????5????????????
- ???
- SPARS-J Namazu Google
80??1???
- Google
- Web????????????Java???????????????????????????????
?,????????????? - Namazu
- SPARS-J??????????
- Google????????,???????????????????
- ????????????????????????????????,Java?????????????
???? - SPARS-J???????????,?????????????????????
81??2. SPARS-J???????????
- ????
- ???????????,????????????????
- SPARS-J??3???????????????????
- ??????????????
- ????????????????????
- 1.2.??????????????
- ????
-
821.????????????
- Component Rank(CR)?
- ???????????????,??????
- ???????????????????
- ?????????????????????
- ??????????,??????????????????????????
- ??????,????????????
832.?????????????????
- Keyword Rank(KR)?
- ??????????????TF-IDF????
- ??????????????????????
- ????????????????
- ???,??????????????????
- ??????????????????????????
- ????????????????
- ????????????????
843.CR?KR?????????
- ????????
- ?????????,???
- CR?
- ????????????
- KR?
- ???????,???????????????????????
- ????????????????????
853.CR?KR?????????
- Borda???
- ??????????????,???????????????
- ?) ??? A, B, C, D, E
- ??,CR?KR??????????CRKR????????
CR KR
1? A D
2? E C
3? C A
4? B B
5? D E
CR KR ???
A 1 3 4
B 4 4 8
C 3 2 5
D 5 1 6
E 2 5 7
????
1? A
2? C
3? D
4? E
5? B
????????
???????
CR?KR???
86??2. SPARS-J???????????
- ????
- ???????????,????????????????
- SPARS-J??3???????????????????
- ??????????????(CR)
- ????????????????????(KR)
- 1.2.??????????????(CRKR)
- ????
- ???????????????????
- ???????,???????????????????
- ndpm??????????????????????
- ???????,????????????
87ndpm??????
- ????????????(d,d)????,????????????????????(m)???
- ?????????n????
???
88??2. SPARS-J???????????
- ??
- ??????
- (??1???)14??????????????
- ???????
- (??1???)10?????????
- ??
- ??????????????10?????????????????
- ??????????????????????????,??????????????????ndpm?
???
89??2???
???
ndpm?
keyword CR KR CRKR CR KR CRKR
A 1 1 1 0.036 0.048 0.037
B 1 1 1 0.194 0.261 0.221
C 0.5 0.5 0.5 0.133 0.117 0.092
D 0.4 0.9 0.8 0.123 0.200 0.189
E 0.4 0.4 0.4 0.208 0.192 0.194
F 0.2 0.2 0.2 0.184 0.184 0.160
G 0.9 1 1 0.081 0.103 0.080
H 1 0.8 1 0.047 0.109 0.052
I 0.6 0.7 0.7 0.210 0.324 0.267
J 0.5 0.7 0.7 0.219 0.243 0.114
Ave. 0.65 0.72 0.73 0.143 0.178 0.141
90??2???
- ?????????????
- ????5????????????
- ???
- KR,CRKR CR
- ndpm?
- CR,CRKR KR
91??2???
- CR?
- ?????????????????????????
- KR?
- ?????????????????
- CRKR?
- ????ndpm?????????????????????
- CR??KR?????????????????????????????????
92??3. ??????????????????
- ????
- ???????????????????,?????????????????????????
- ????
- SPARS-J??????????
- ???????????????????????7?????,SPARS-J????????????
?
93????????
(? 5 4 3 2 1 ?)
A B C D E F G ???
???????????? 4 5 5 5 4 3 3 5
???????????? 4 5 5 2 4 3 5,4
????????????????????? 5 5 5 5 5 5 5
????????????????????? 5 1 5 5 5 5 5
?????????? 1 4 1 2 4 5 4,1
??????????????? 1 3 5 5 2 5 5
????????? 3 5 5 3 4 1 5,3
??????????? 5 3 3 3 4 1 3
???????????? 3 1 5 3 5 2 1 5,3,1
????????????? 4 4 5 5 3 3 5 5
???????????? 3 5 5 5 5 5 5 5
94????????
- ??????????
- ????????????
- ????????
- ???????????
- ??????????????????
- SPARS-J??????????????
- ???????????????
- ?????????????
95??3???
- ?????????????????????????????,??????????????????
- ??????
- ???????,?????????
- ????????????????
- ????????????????????,??????????????
- ????????????????
96?????????
- ??????????????SPARS-J??????
- ????????????
- Google?Namazu???????
- SPARS-J???????????
- CRKR?????????,??????????????????
- ???????????SPARS-J?????
- ????????????????
- ?????
- ??????
- ???????????????????
- ??????????????
97END
The End