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.2. INTEGRATION OF MINDBREEZE CODE SEARCH INTO MINDBREEZE ENTERPRISE SEARCH41<br />

We created tables for each <strong>Code</strong>Search artifact, for some <strong>of</strong> their metadata <strong>and</strong> the relations<br />

that were established between the hit-types <strong>of</strong> the artifacts. For instance, the table callables<br />

refers to the callables artifacts, the table returns refers to its return value, the table is descendant<br />

refers to the artifact one level up in the hierarchy.<br />

The client application that connects to the SQLite database engine uses a generic database<br />

access class for this purpose.<br />

More details about the integration can be found in [Luk08].<br />

3.2.2 Query Service Context Provider Interface Enhancements<br />

Scenarios like 3.2.1.6, involving relations between the hit-types, are not possible with simple text<br />

<strong>and</strong> faceted search using the existing Mindbreeze Query Language.<br />

How the services <strong>and</strong> interfaces interact as well as where is necessary an enhancement <strong>of</strong> the<br />

infrastructure or interfaces involved is depicted in the Figure 3.5.<br />

Figure 3.5: Scenario requiring Query Service Context Provider Interface Enhancements<br />

What components <strong>of</strong> the MCS architecture interact <strong>and</strong> how is explained as follows.<br />

Step 1. A query is introduced in the client interface by the user. The query is taken over by<br />

the Query Service which creates a Query object, an instance <strong>of</strong> the IQueryFactory interface <strong>and</strong><br />

<strong>of</strong> Constraint class.<br />

Step 2. The query might be performed into the index. In this case the user is querying static<br />

information about a hit-type. This kind <strong>of</strong> query is done by simple <strong>and</strong> faceted text searching,<br />

when the central role is played by the query language.<br />

We assume the structure <strong>of</strong> the index like in Table 3.3.<br />

Step 3. The hit types fulfilling the query are a subset <strong>of</strong> the hit types stored into the index<br />

Table 3.3.

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

Saved successfully!

Ooh no, something went wrong!