Publications

View publication

Title Statically Identifying Class Dependencies in Legacy JavaScript Systems: First Results
Authors Leonardo Humberto Silva, Marco Tulio Valente, Alexandre Bergel
Publication date 2017
Abstract Identifying dependencies between classes is an essen- tial
activity when maintaining and evolving software applications. It is also
known that JavaScript developers often use classes to structure their
projects. This happens even in legacy code, i.e., code implemented in
JavaScript versions that do not provide syntactical support to classes.
However, identifying associations and other dependencies between classes
remain a challenge due to the lack of static type annotations. This paper
investigates the use of type inference to identify relations between classes
in legacy JavaScript code. To this purpose, we rely on Flow, a state-of-the-
art type checker and inferencer tool for JavaScript. We perform a study
using code with and without annotating the class import statements in two
modular applications. The results show that precision is 100% in both
systems, and that the annotated version improves the recall, ranging from
37% to 51% for dependencies in general and from 54% to 85% for associations.
Therefore, we hypothesize that these tools should also depend on dynamic
analysis to cover all possible dependencies in JavaScript code.
Pages 427-431
Conference name IEEE International Conference on Software Analysis, Evolution, and Reengineering
Publisher IEEE Computer Society Press (Los Alamitos, CA, USA)
Reference URL View reference page