Abstrakt. Återanvändning av befintliga bibliotek förenklar programvaruutvecklingsarbetet. Dessa bibliotek är dock ofta komplexa och att återanvända API:erna i biblioteken innebär en brant inlärningskurva. En programmerare använder ofta en sökmotor som Google för att upptäcka kodslippar som involverar biblioteksanvändning för att utföra en gemensam uppgift. Ett problem med sökmotorer är att de returnerar många sidor som en programmerare måste manuellt min för att upptäcka den önskade koden. Nya forskningsinsatser har försökt ta itu med detta problem genom att automatisera generering av kodsnuttar från användarfrågor. Dessa frågor måste dock ha typinformation och kräver därför att användaren har en partiell kunskap om API:erna. Vi föreslår en ny kodsökningsteknik, kallad SNIFF, som behåller flexibiliteten i att utföra kodsökning på vanlig engelska, samtidigt som man får en liten uppsättning relevanta kodsnuttar för att utföra den önskade uppgiften. Vår teknik bygger på observationen att bibliotekets metoder att en användarkod ringer ofta är väldokumenterade. Vi använder dokumentationen av bibliotekets metoder för att lägga till enkel engelsk mening till en annars odokumenterad användarkod. Den kommenterade användarkoden indexeras sedan för fri-form frågesökning. Ett annat nytt bidrag av vår teknik är att vi tar en typ-baserad skärningspunkt av kandidatkoden snippets som erhållits från en frågesökning för att generera en uppsättning små och mycket relevanta kod snippets. Vi har implementerat SNIFF för Java och har genomfört utvärderingar och användarstudier för att visa nyttan av SNIFF. Våra utvärderingar visar att SNIFF presterade bättre än de flesta av de befintliga sökmotorerna på nätet samt relaterade verktyg.
Sniff (Snippet for Free-From questions) REF ] är en Java-kodsökningsteknik som möjliggör friformsförfrågningar i naturligt språk för att erhålla en uppsättning relevanta kodsnuttar genom att kombinera API-dokumentation med allmänt tillgänglig Java-kod.
SNIFF: A Search Engine for Java using Free-Form Queries
{'venue': 'FASE', 'journal': None, 'mag_field_of_study': ['Computer Science']}