The Client Insourcing Refactoring to Facilitate the Re-engineering of Web-Based Applications

dc.contributor.authorAn, Kijinen
dc.contributor.committeechairTilevich, Elien
dc.contributor.committeememberJian, Xunen
dc.contributor.committeememberBack, Godmar V.en
dc.contributor.committeememberServant Cortes, Francisco Javieren
dc.contributor.committeememberBinder, Walteren
dc.contributor.departmentComputer Scienceen
dc.date.accessioned2021-05-20T08:00:54Zen
dc.date.available2021-05-20T08:00:54Zen
dc.date.issued2021-05-19en
dc.description.abstractDevelopers often need to re-engineer distributed applications to address changes in requirements, made only after deployment. Much of the complexity of inspecting and evolving distributed applications lies in their distributed nature, while the majority of mature program analysis and transformation tools works only with centralized software. Inspired by business process re-engineering, in which remote operations can be insourced back in house to restructure and outsource anew, this dissertation brings an analogous approach to the re-engineering of distributed applications. Our approach introduces a novel automatic refactoring---Client Insourcing---that creates a semantically equivalent centralized version of a distributed application. This centralized version is then inspected, modified, and redistributed to meet new requirements. This dissertation demonstrates the utility of Client Insourcing in helping meet the changed requirements in performance, reliability, and security. We implemented Client Insourcing in the important domain of full-stack JavaScript applications, in which both the client and server parts are written in JavaScript, and applied our implementation to re-engineer mobile web applications. Client Insourcing reduces the complexity of inspecting and evolving distributed applications, thereby facilitating their re-engineering. This dissertation is based on 4 conference papers and 2 doctoral symposium papers, presented at ICWE 2019, SANER 2020, WWW 2020, and ICWE 2021.en
dc.description.abstractgeneralModern web applications are distributed across a browser-based client and a remote server. Software developers need to optimize the performance of web applications as well as correct and modify their functionality. However, the vast majority of mature development tools, used for optimizing, correcting, and modifying applications work only with non-distributed software, written to run on a single machine. To facilitate the maintenance and evolution of web applications, this dissertation research contributes new automated software transformation techniques. These contributions can be incorporated into the design of software development tools, thereby advancing the engineering of web applications.en
dc.description.degreeDoctor of Philosophyen
dc.format.mediumETDen
dc.identifier.othervt_gsexam:30671en
dc.identifier.urihttp://hdl.handle.net/10919/103391en
dc.publisherVirginia Techen
dc.rightsIn Copyrighten
dc.rights.urihttp://rightsstatements.org/vocab/InC/1.0/en
dc.subjectSoftware Engineeringen
dc.subjectReengineeringen
dc.subjectWeb Appsen
dc.subjectJavaScripten
dc.subjectMobile Appsen
dc.subjectProgram Analysisen
dc.subjectMiddlewareen
dc.subjectCloud Computingen
dc.subjectEdge Computingen
dc.titleThe Client Insourcing Refactoring to Facilitate the Re-engineering of Web-Based Applicationsen
dc.typeDissertationen
thesis.degree.disciplineComputer Science and Applicationsen
thesis.degree.grantorVirginia Polytechnic Institute and State Universityen
thesis.degree.leveldoctoralen
thesis.degree.nameDoctor of Philosophyen

Files

Original bundle
Now showing 1 - 2 of 2
Loading...
Thumbnail Image
Name:
An_K_D_2021.pdf
Size:
5.53 MB
Format:
Adobe Portable Document Format
Loading...
Thumbnail Image
Name:
An_K_D_2021_support_1.pdf
Size:
31.17 KB
Format:
Adobe Portable Document Format
Description:
Supporting documents