13.06.2014 Views

Automated Formal Static Analysis and Retrieval of Source Code - JKU

Automated Formal Static Analysis and Retrieval of Source Code - JKU

Automated Formal Static Analysis and Retrieval of Source Code - JKU

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.1. BACKGROUND 29<br />

Figure 3.1: <strong>Source</strong> <strong>Code</strong> <strong>Retrieval</strong> Model<br />

• different users can have different underst<strong>and</strong>ings <strong>of</strong> the same problem;<br />

• the query language used by the users might be not too expressive for their needs;<br />

• information can be lost during the indexing process.<br />

3.1.2.1 History <strong>and</strong> State <strong>of</strong> the Art<br />

The work from the early 90’s proposed classification schemes for the classification <strong>and</strong> storage <strong>of</strong><br />

the source code.<br />

A classification scheme provides a network <strong>of</strong> predefined relationships, thus introducing some<br />

semantic information absent in free-text analysis.<br />

Such classification schemes are: facet-based ([PD91]), sampling behavior ([PP93]), automatic<br />

retrieval ([MBK91]), user adaptable ([Hen97]), etc.<br />

3.1.2.2 Facet-Based Scheme<br />

The idea behind this scheme ([PD91]) is that the source code objects can be classified (faceted)<br />

in a limited number, <strong>and</strong> retrieved using a keyword associated to each facet can be attached a<br />

keyword (Table 3.1).<br />

Callable Object Type Container<br />

Method Enum File<br />

Field Package<br />

Interface<br />

Class<br />

Table 3.1: A Simplified Faceted Scheme for Java Programming Language Objects

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!