HAKI: runtime verification tool for JavaScript MVC web applications

Download
2016
Bilge, İbrahim
In this thesis, we propose an efficient approach for locating inconsistencies in view-model bindings of JavaScript AngularJS web applications. JavaScript is one of the most common scripting languages used for developing web applications. It can be used to create flexible, efficient code thanks to its highly dynamic nature. In addition, many structural frameworks have been developed for building even more extensible and more dynamic web applications. One of the most popular of these frameworks is AngularJS which uses the MVC (Model-View-Controller) pattern. The dynamism of JavaScript including abstraction and layering of AngularJS can make coding very challenging by making it open for mistakes and vulnerable to inconsistencies that create unreadable, not maintainable, and particularly, unreliable code. In addition, custom web components remain a challenge for verification and consistency of the applications whereas these components are considered the biggest feature of JavaScript frameworks nowadays. Differing from the existing studies in literature, our aim in this study is to propose an effective and compact approach to locate inconsistencies in view-model bindings including type related errors and errors about custom web components. We introduce a tool called HAKI that executes runtime verification process on JavaScript - AngularJS applications and locates errors and warnings by using dynamic analysis. We evaluated our tool using two sets of experiments, one large scale real application and one smaller application with injected faults. Our tool located 55 errors in real application with 8 of them are evaluated as major errors; it also reported 35 warnings that can possibly cause errors. In addition, the runtime verification overhead is minimal.

Suggestions

3-D structure assisted reference view generation for H.264 based multi-view video coding
Gedik, O. Serdar; Oezkalayci, Burak; Alatan, Abdullah Aydın (2007-06-13)
A 3D geometry-based multi-view video coding (MVC) method is proposed. In order to utilize the spatial redundancies between multiple views, the scene geometry is estimated as dense depth maps. The dense depth estimation problem is modeled by using a Markov random field (MRF) and solved via the belief propagation algorithm. Relying on these depth maps of the scene, novel view estimates of the intermediate views of the multi-view set is obtained with a 3D warping algorithm, which also performs hole-filling in ...
Multi-view video coding via dense depth estimation
Oezkalayci, Burak; Gedik, O. Serdar; Alatan, Abdullah Aydın (2007-05-09)
A geometry-based multi-view video coding (MVC) method is proposed. In order to utilize the spatial redundancies between multiple views, the scene geometry is estimated as dense depth maps. The dense depth estimation problem is modeled by using a Markov random field (MRF) and solved via the belief propagation algorithm. Relying on these depth maps of the scene, novel view estimates of the intermediate views of the multi-view set is obtained with a 3D warping algorithm, which also performs hole-filling in the...
A knowledge based product line for semantic modeling of web service families
Orhan, Umut; Doğru, Ali Hikmet; Department of Computer Engineering (2008)
Some mechanisms to enable an effective transition from domain models to web service descriptions are developed. The introduced domain modeling support provides verification and correction on the customization part. An automated mapping mechanism from the domain model to web service ontologies is also developed. The proposed approach is based on Feature-Oriented Domain Analysis (FODA), Semantic Web technologies and ebXML Business Process Specification Schema (ebBP). Major contributions of this work are the c...
Dosso - automatic detector of shared objects in multithreaded java programs
Tolubaeva, Munara; Betin Can, Aysu; Department of Information Systems (2009)
In this thesis, we present a simple and efficient automated analysis tool called DoSSO that detects shared objects in multithreaded Java programs. DoSSO reports only the shared objects that are modified by at least one thread. Based on this tool, we propose a new approach in developing concurrent software where programmers implement the system without considering synchronization issues first and then use appropriate locking mechanism only for the objects reported by DoSSO. To evaluate the applicability of D...
Verifiable web services with hierarchical interfaces
Betin Can, Aysu (2005-07-15)
We propose an Hierarchical State Machine (HSM) model for specifying behavioral interfaces of peers participating in a composite web service. We integrate the HSM model to a design pattern which is supported by a modular verification technique that can 1) statically analyze the properties about global interactions of a composite web service and 2) check the conformance of the Java implementations of the participant peers to their interfaces. We extend the synchronizability analysis to HSMs to efficiently ide...
Citation Formats
İ. Bilge, “HAKI: runtime verification tool for JavaScript MVC web applications,” M.S. - Master of Science, Middle East Technical University, 2016.