通过连接客户端和服务器端执行来理解Ajax应用程序.docx
《通过连接客户端和服务器端执行来理解Ajax应用程序.docx》由会员分享,可在线阅读,更多相关《通过连接客户端和服务器端执行来理解Ajax应用程序.docx(38页珍藏版)》请在优知文库上搜索。
1、通过连接客户端和服务器端执行来理解Ajax应用程序可以追溯到AndyZaidmanNickMatthijssen-Margaret-AnneStoreyArievanDeursen在线发布:2012年3月4日作者2012。本文发表于编辑:GiUliOAntOniol和KeithBrianGallagher摘要基于ajax的Web应用程序是一种新型的高度交互、高度动态的Web应用程序。尽管AjaX允许开发人员创建富Web应用程序,但AjaX应用程序可能难以理解,因此难以维护。出于这个原因,我们创建了FireDetective,这是一个在客户端(浏览器)和服务器端使用动态分析的工具,以促进对Aja
2、x应用程序的理解。我们使用测试前-测试后用户研究和现场用户研究来评估FireDetective0初步证据表明,FireDetective工具是努力理解Ajax应用程序的Web开发人员的有效辅助工具。关键词Ajax:Web应用:程序理解:逆向工程;动态分析;执行轨迹在过去的十年中,Web开发已经从创建静态Web站点发展到创建丰富且高度交互的Web应用程序。用于创建这些交互式Web应用程序的启用技术之一是Ajax(异步Javascript和XML)是现11技术的总称,如JaVaSCript、文档对象模型(DOM)的动态操作和JaVaSCriPt的XMLHttpRequest对象。自从AjaX这个术
3、语在2005年被创造出来以来(Garrett2005),大量支持Ajax的Web站点出现了,大量Ajax框架被创建,“大量的文章出现在开发者网站和专业杂志上(Mesbah和vanDeursen2008)0一个著名的Ajax应用程序示例是Gmail,它使用Ajax技术在您打开电子邮件对话时仅更新页面的一部分,并在您输入时提示最近通讯员的电子邮件地址。不幸的是,AjaX也使Web开发更加复杂。经典的Web应用程序基于多页面界面模型,其中交互基于页面序列范式(MeSbah和VanDeUrSen2008)。AjaX改变了这一点,它允许在页面加载后发出异步请求,并允许JaVaSCriPt代码在浏览器中更
4、新页面的部分内容,有效地进行增量更新,而无需重新加载整个页面。在Ajax出现之前,Hassan和Holt已经指出“Web应用程序是未来的遗留软件和维护这样的系统是有问题的”(HaSSan和Holt2002)o我们期望Ajax增加的交互性和复杂性肯定不会改善这种情况。软件维护从建立理解开始,然后进行必要的修改。众所周知,这个理解步骤的成本非常高,Corbi报告称,维护任务中有多达50%的时间花在理解上。然而,正如Cornelissen等人(2009a)所观察到的那样,专注于专门针对Ajax应用程序的程序理解的论文很少。这些观察结果,加上支持AjaX的Web应用程序的数量迅速增长,促使我们研究支持
5、Web开发人员维护这种新型Web应用程序的方法。在本文中,我们特别研究了Web开发人员在理解Ajax应用程序时遇到的问题,以及如何利用动态分析(BalII999)来更好地支持Web开发人员理解Ajax应用程序。我们之所以选择动态分析,是因为Ajax应用程序在整个应用程序中跟踪控制流的潜在困难。这源于这样一个事实,即Ajax应用程序由一组异构资源组成,例如Web模板、客户端脚本和服务器端脚本,这些资源相互依赖,所有这些资源都对应用程序有贡献。这些工件之间的链接通常在运行时建立。接下来,HTML页面可以动态生成和更新,客户端脚本可以动态生成和执行。最后,所使用的语言本身是高度动态的,如JaVaSC
6、riPt和服务器端脚本语言(如PHP)。Antoniol等人(2004)己经指出,仅靠静态分析对Web应用程序是不够的。我们认为AjaX应用程序中更高程度的动态性使得静态分析对于Ajax应用程序来说也不够。为了便于更好地理解基于ajax的Web应用程序,我们构建了FireDeteClive,这是一个记录客户端(浏览器)和服务器上的执行跟踪的工具,然后以一种组合的方式将它们可视化。本文基于我们之前的工作(MatthijSSenetal2010;MatthijSSen和Zaidman2011)中,我们提出了FireDeteCtive,并使用探索性的前测-后测用户研究实验对其进行评估。在本文中,我们
7、扩展了在两位AjaX开发专家的帮助下,我们添加了一个现场用户研究。这种评估方法使我们能够解决以下研究问题:问题一当前Web开发人员在尝试理解Ajax应用程序时使用哪些策略?问题二我们是否可以使用动态分析,就像FireDeteCtiVe工具所展示的那样,来提高对Ajax应用程序的理解?本文的其余部分组织如下。第二节介绍了FireDeteCtiVe的设计与实现。第3节记录了用户研究的设计,而第4节描述和讨论了该用户研究的结果。第5节和第6节分别描述了我们进行的实验设计和现场用户研究的结果。有效性威胁将在第7节中讨论。第8节讨论了相关工作。最后,第9节提出了我们的结论并确定了未来的机会。2工具设计F
8、ireDetectivel是一个记录在浏览器中执行的JavaScript代码和服务器端代码的执行跟踪的工具。所使用的详细级别是调用级别:该工具记录所有被调用的函数和方法的名称,以及它们被调用的顺序,允许该工具重新构造每个跟踪的调用树表示。从我们自己作为AjaX开发人员的经验来看,我们意识到将这些单独的跟踪彼此关联起来对于通过Ajax应用程序很好地理解控制流非常重要。因此,该工具还记录了特定于Ajax/Web域的抽象信息,例如(AjaX)请求、DOM事件、超时等。这是该工具的一个关键元素:它使我们能够以有意义的方式链接前面提到的执行跟踪。此外,抽象可以作为熟悉的程序理解起点。该工具在一组交互视图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通过 连接 客户端 服务器端 执行 理解 Ajax 应用程序
