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.
| Date | 21 Apr 2016 |
|---|
| Original language | French |
|---|
| Awarding Institution | - École de technologie supérieure
|
|---|
| Supervisor | Sègla Jean-Luc Kpodjedo (Supervisor) |
|---|
Cloutier, J. (Author),
Kpodjedo (Supervisor),
21 Apr 2016Student thesis: Master's thesis › Master in Engineering: Engineering