Haki: A runtime verification tool for javascript MVC web applications
- Global styles
- Apa
- Bibtex
- Chicago Fullnote
- Help
Abstract
Biz bu tezde, JavaScript – AngularJS uygulamalarının view ve modelbağlantılarında oluşan tutarsızlıkları etkin bir şekilde tespit edebilen biryaklaşım sunmaktayız. JavaScript, günümüzde web uygulaması geliştirmealanında kullanılan en yaygın betimleme dillerinden biridir. Oldukçadinamik olan yapısı sayesinde esnek ve etkin kod yazma imkânı sağlar.Buna ek olarak birçok yapısal çatı geliştirilmiştir. Bu çatıların en popülerolanlarından biri MVC (Model-View-Controller) mimarisini kullananAngularJS'dir. JavaScript'in dinamik yapısına, AngularJS'in soyut vekatmanlı mimarisi de eklenince kodlama yapmak oldukça zorlayıcı bir halegelebilir. Öyle ki geliştirilen yazılımı okunamaz, bakım yapılamaz veözellikle güvenilemez bir hale getirebilir. Ayrıca günümüzde uygulamalarıntutarlılığını ve doğrulamasını zorlaştıran kişiselleştirilmiş bileşengeliştirebilme imkanı da bu JavaScript çatılarının en büyük özelliklerindenbiri olarak sayılmaktadır. Literatürdeki diğer çalışmalardan farklı olarakbizim bu çalışmadaki amacımız view ve model bağlantılarında oluşantutarsızlıkları etkin bir şekilde tespit edebilen bir yaklaşım sunmaktır. Buamaçla HAKI adını verdiğimiz aracı geliştirdik. Aracımızı 2 farklıuygulama üzerinde test ettik; bir büyük çaplı gerçek bir uygulama ve bir dedaha küçük kapsamlı, içerisine hatalar yerleştirilmiş bir uygulama. Aracımızilk uygulama için 8 tanesi önemli olmak üzere 55 hata ve hataya nedenolabileceğini düşündüğümüz 35 tane de uyarı tespit etmiş ve raporlamıştır.Ayrıca bu deneyler sırasında HAKI sebebiyle oluşan performans kaybınıngöz ardı edilebilir derecede minimum olduğu görülmüştür. In this thesis, we propose an efficient approach for locating inconsistenciesin view-model bindings of JavaScript AngularJS web applications.JavaScript is one of the most common scripting languages used fordeveloping web applications. It can be used to create flexible, efficient codethanks to its highly dynamic nature. In addition, many structuralframeworks have been developed for building even more extensible andmore dynamic web applications. One of the most popular of theseframeworks is AngularJS which uses the MVC (Model-View-Controller)pattern. The dynamism of JavaScript including abstraction and layering ofAngularJS can make coding very challenging by making it open formistakes and vulnerable to inconsistencies that create unreadable, notmaintainable, and particularly, unreliable code. In addition, custom webcomponents remain a challenge for verification and consistency of theapplications whereas these components are considered the biggest feature ofJavaScript frameworks nowadays. Differing from the existing studies inliterature, our aim in this study is to propose an effective and compactapproach to locate inconsistencies in view-model bindings including typerelated errors and errors about custom web components. We introduce a toolcalled HAKI that executes runtime verification process on JavaScript -AngularJS applications and locates errors and warnings by using dynamicanalysis. We evaluated our tool using two sets of experiments, one largescale real application and one smaller application with injected faults. Ourtool located 55 errors in real application with 8 of them are evaluated asmajor errors; it also reported 35 warnings that can possibly cause errors. Inaddition, the runtime verification overhead is minimal.
Collections