Skip to main navigation Skip to search Skip to main content

Rétro ingénierie d'applications web javascript pour aider à la compréhension et à la documentation

Translated title of the thesis: Reverse engineering of web application for comprehension and documentation
  • Jonathan Cloutier

Student thesis: Master's thesisMaster in Engineering: Engineering

Abstract

Web developers face some unique challenges when trying to understand, modify and document the structure of their web applications. The heterogeneity and complexity of the underlying technologies and languages heighten comprehension problems. In particular, JavaScript, which is an essential part of the Web ecosystem, is a language that offers a flexibility that can make its code hard to grasp, when it comes to comprehension and documentation tasks. Indeed, its dynamic nature (ex.: dynamically typed, real-time evaluation) seems to complicate things. While the task of analyzing the code seems to be tailor-made for the dynamic analysis, some situations prevent us from using it (eg .: faulty orincomplete code). Moreover, there is no certainty that developers use enough of these dynamic features to render the results of static analysis useless. One of the mandates of this thesis is to empirically assess the use of static analysis for JavaScript as a viable approach for reverse engineering for documentation purpose. Then, using the results of the empirical study and the findings on existing tools and techniques, we offer our own potential solutions. A new reverse engineering approach is presented that takes the form of a tool called WAVI. This tool is subsequently used to perform structural visualization experiments using force directed diagrams and classes. The established reverse engineering tool is used to extract the key elements of the structure of a web application for JavaScript, Node.js, HTML and CSS. The effectiveness of WAVI is evaluated with experiments that demonstrate that it can resolve JavaScript calls better than a recent technique, and its visualisation modules are intuitive and scalable. The results are satisfactory and allow the developer to document their applications quickly using diagrams.
Date21 Apr 2016
Original languageFrench
Awarding Institution
  • École de technologie supérieure
SupervisorSègla Jean-Luc Kpodjedo (Supervisor)

Cite this

'