Show simple item record

Authordc.contributor.authorSilva, Leonardo Humberto 
Authordc.contributor.authorValente, Marco Tulio 
Authordc.contributor.authorBergel, Alexandre 
Admission datedc.date.accessioned2019-05-29T13:30:01Z
Available datedc.date.available2019-05-29T13:30:01Z
Publication datedc.date.issued2017
Cita de ítemdc.identifier.citationEn: 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER)
Identifierdc.identifier.other10.1109/SANER.2017.7884647
Identifierdc.identifier.urihttps://repositorio.uchile.cl/handle/2250/168892
Abstractdc.description.abstractIdentifying dependencies between classes is an essen-tial activity when maintaining and evolving software applications.It is also known that JavaScript developers often use classes tostructure their projects. This happens even in legacy code, i.e.,code implemented in JavaScript versions that do not providesyntactical support to classes. However, identifying associationsand other dependencies between classes remain a challenge dueto the lack of static type annotations. This paper investigates theuse of type inference to identify relations between classes in legacyJavaScript code. To this purpose, we rely on Flow, a state-of-the-art type checker and inferencer tool for JavaScript. We performa study using code with and without annotating the class importstatements in two modular applications. The results show thatprecision is 100% in both systems, and that the annotated versionimproves the recall, ranging from 37% to 51% for dependenciesin general and from 54% to 85% for associations. Therefore,we hypothesize that these tools should also depend on dynamicanalysis to cover all possible dependencies in JavaScript code.
Lenguagedc.language.isoen
Publisherdc.publisherIEEE
Type of licensedc.rightsAttribution-NonCommercial-NoDerivs 3.0 Chile
Link to Licensedc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/cl/
Sourcedc.sourceSANER 2017 - 24th IEEE International Conference on Software Analysis, Evolution, and Reengineering
Keywordsdc.subjectClass dependencies
Keywordsdc.subjectJavaScript
Keywordsdc.subjectReverse engineering
Títulodc.titleStatically identifying class dependencies in legacy JavaScript systems: First results
Document typedc.typeCapítulo de libro
Catalogueruchile.catalogadorlaj
Indexationuchile.indexArtículo de publicación SCOPUS
uchile.cosechauchile.cosechaSI


Files in this item

Icon

This item appears in the following Collection(s)

Show simple item record

Attribution-NonCommercial-NoDerivs 3.0 Chile
Except where otherwise noted, this item's license is described as Attribution-NonCommercial-NoDerivs 3.0 Chile