an approach to context- based recommendation in software

19
An approach to Context- Based Recommendation in Software Development

Upload: others

Post on 11-Jan-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

AnapproachtoContext-BasedRecommendationinSoftwareDevelopment

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”

Modelodelabasedeconocimientos

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

Retrieval

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”

AprendizajeCalculodelainfluenciadeunelemento

Calculodelainfluenciadeforma“balanceada”

AprendizajeCoeficiente deaprendizaje

Prototipo

EvaluaciónSehizounexperimentoconungrupode5desarrolladoresenlaindustriay10estudiantes

Usaronlaherramientaenintervalosdetiempodentrodeunrangode2semanasa3meses

Resultadoscuantitativos

Resultadoscualitativos

ConclusionesLosresultadosobtenidosmuestranqueusandounenfoquederecomendacionessepuedeayudardebuenamaneraaundesarrollador◦ Estoreduceelesfuerzoquedebeninvertirlosprogramadoresalrealizarunatarea

Elusodelmodelodelcontextofuecrucialparaidentificarloselementosrelevantes◦ Estosedemuestraporelimpactopositivoenlasrecomendacionesofrecidas

Porotrolado,sedebetrabajarenlainterfazdeusuarioymejorarlo

Tambiénseríaútilanalizarlostiemposqueseahorrausandorecomendacionescontraotrosenfoquescomounabúsquedaenelcódigo

ReferenciasBrunoAntunes,JoelCordeiro,andPauloGomes.2012.Anapproachtocontext-basedrecommendationinsoftwaredevelopment.InProceedingsofthesixthACMconferenceonRecommendersystems(RecSys '12).ACM,NewYork,NY,USA,171-178