an approach to context- based recommendation in software
TRANSCRIPT
IntroducciónLaestructuradelcódigofuenteenlenguajesOOestáninterrelacionados
Laideageneraldeunsistemaderecomendaciónesestimarlautilidaddeunítemespecíficoaundeterminadousuario
Eneláreadelaingenieríadesoftwareunsistemaderecomendaciónpuededefinirsecomo:◦ ”asoftwareapplicationthatprovidesinformationitemsestimatedtobevaluableforasoftwareengineeringtaskinagivencontext”(Robbilard etal)
Enelprocesodedesarrollodesoftwareelprogramadordebelidiarconestructurasquepuedencontenercientoselementosenelcódigofuente◦ Estoscomponentesestánrelacionadosentresí
Unenfoquederecomendaciónbasadaenelcontextopuedeseraplicadoalosdistintoscomponentesdelcódigofuente
EstudiosrelacionadosEnelpasadosehanpropuestodiferentesmodelosdelcontextodeldesarrollador◦ Kertsen yMurphypropusieronunmodelopararepresentarelcontextoasociadoaunatarea◦ Warr yRobillard desarrollaronunplugin paraEclipsequesugiereelementosdelcódigobasadoenelcontextoactual
◦ Heinemann yHummel tienenunenfoquedeproponermétodosrelevantesparaunatareaenactualdesarrollo
Otrosenfoquesusanlainformacióncontextualparamejorarlarecomendacióndecomponentesreusablesoejemplosdecódigofuente◦ YeyFisherdesarrollaronunaherramientaquesugieredeformaproactivacomponentesreusablesaprogramadoresJava
◦ HolmesyMurphypropusieronunaherramientaparaEclipsequepermiteencontrarejemplosdecódigoquepuedenserrelevantesparaunatarea
◦ Thummalapenta yXie desarrollaronunplugin quesugiereejemplosde”comohacerllamadasaciertosmétodos”
ModelodelcontextoEstabasadoenloselementosqueseencuentrandentrodecódigofuenteysonmásrelevantesduranteeltrabajodeldesarrollador
Lainformacióndelcontextoseloobtienedeformaimplícitadelasinteraccionesenelcódigofuente
Larelevanciadecadaelementoestádadoporun“gradodeinterés”(DOI)◦ CuandoelusuarioabreointeractúaconuncomponentesuDOIseincrementa◦ CuandoelusuariocierraodejadeinteractuarconelcomponentesuDOIsedecrementa
Lasrelacionesqueexistenentreelementosdecódigofuentesonconsideradoscomo“másrelevantes”paraelprogramador◦ SecalculaigualmenteusandoelpromediodelDOIdeloselementosrelacionados
RecomendaciónSeimplementóunmétodoqueusaelmodelodelcontextoparaextraeryrankear loselementosrelevantesdelcódigofuente
Elprocesosebasaenelhechoquemuchoselementosdelcódigofuentequesonnecesariosparaeldesarrolladorestánrelacionadosestructuralmenteodeformaléxica.
Lasrecomendacionesobtenidassonentoncesrankeadas tomandoencuentadistintoscomponentes
RetrievalLasrecomendaciones seobtienen dependiendo dedosenfoques:◦ Basado en elDOIasignado acada elemento◦ Basado en eltiempo transcurrido desde laultimavez queunelemento fue consultado
Elenfoque basado en elDOIusa laposible relevancia delos elementos delcódigo◦ Larecomendación incluye unTopNdeelementos conelDOImás alto
Elenfoque basado en eltiempo sebasa en los siguientes hechos:◦ Es muchomás probablequelos elementos relevantes sean los quefueron accedidos recientemente◦ ElDOIpor otro lado muestra una relevancia anivel general
RankingLasrecomendaciones obtenidas sonrankeadas dependiendo los siguientes criterios:◦ DOI(DOIScore)◦ Tiempo◦ Relevancia en laestructura◦ Relevancia léxica
En elcaso delDOIsetiene doscasos◦ Cuando elelemento seloobtuvo deformadirecta,su puntaje es elDOIquetiene este◦ Elementos relacionados alos anteriores,su DOI“final”esta calculado consu DOIyelDOIasignado asurelación
Paraelcaso deltiempo seusa unenfoque similaraldelDOI◦ Eltiempo selonormaliza usando elmáximo tiempo entrelos elementos en eltopNobtenido
RankingElpuntajequeseledaalarelaciónestructuralestacalculadodelasiguientemanera:◦ Sedefineunadistanciaentreunelementoqueestasiendorecomendadoconloselementosenelcontextoestructural
◦ Ladistanciasecalculausandolasrelacionesestructuralesrepresentadasenlabasedeconocimiento◦ LarelaciónentreelcostoyDOIesinversamenteproporcional◦ Elcostototalqueseasignaaunelementoeselcostototalqueesnecesarioparallegardeunelementoaotroatravésdesusrelaciones
◦ Laproximidaddeunelementoalcontextoestácalculadocomoelpromediodelcostoparallegaralelemento
◦ Elpromedioesnormalizadosegúnlasiguienteformula
RankingElpuntajeléxicoestádefinidocomoladistanciaentrelostérminosquerelacionanloselementosdelcódigofuentequesonrecomendadosconsucontextológico◦ Seusalarelación“associateWith”◦ Elcálculoessimilaralcálculodelpuntaje“estructural”◦ Setratadeeliminartérminosfrecuentesenelcódigocomo“get,set”
EvaluaciónSehizounexperimentoconungrupode5desarrolladoresenlaindustriay10estudiantes
Usaronlaherramientaenintervalosdetiempodentrodeunrangode2semanasa3meses
ConclusionesLosresultadosobtenidosmuestranqueusandounenfoquederecomendacionessepuedeayudardebuenamaneraaundesarrollador◦ Estoreduceelesfuerzoquedebeninvertirlosprogramadoresalrealizarunatarea
Elusodelmodelodelcontextofuecrucialparaidentificarloselementosrelevantes◦ Estosedemuestraporelimpactopositivoenlasrecomendacionesofrecidas
Porotrolado,sedebetrabajarenlainterfazdeusuarioymejorarlo
Tambiénseríaútilanalizarlostiemposqueseahorrausandorecomendacionescontraotrosenfoquescomounabúsquedaenelcódigo