基于经典的ASP.NET和ASP.NET MVC框架的网页应用程序开发中的代码克隆研究外文翻译资料

 2022-09-23 17:06:29

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


基于经典的ASP.NET和ASP.NET MVC框架的网页应用程序开发中的代码克隆研究

Md. Rakibul Islam, Md. Rafiqullslam, Md. M a idullslam, Ta sneem Halim

RAFM Department, Robi Axiata Limited, Dhaka, Bangladesh.

Computer Science Department, American International University-Bangladesh, Dhaka, Bangladesh.
Computer Science Department, World University of Bangladesh, Dhaka, Bangladesh.
Computer Science Department, Central Womens University Bangladesh, Dhaka, Bangladesh.
imrakib@gmail.com, dmri1978@yahoo.com, mohid35@gmail.com, thbdjob@gmail.com

摘要

频繁的变化要求,严格的交付期限和复杂的应用程序架构使得web用程序开发变慢,因此鼓励代码克隆。Web应用程序框架主要支持给开发人员提供数据库访问的库、会话管理来使其加快开发,因此他们常常是促进了代码重用。在本文中,我们提供了一个对于克隆的系统的研究,通过六中不同规模的Wed应用程序,基于经典的ASP和ASP.NET MVC框架上的开发,来找出框架和代码克隆间是否有任何的关系。我们的研究成果是:

1、研究结果表明.NET技术框架可以避免Web应用程序中的代码克隆。

2、我们在研究中计算和应用的克隆指标可能对于其他相似的研究领是有用 的。

关键字:ASP.NET;代码克隆;开源应用程序;web应用程序框架

1简介

为了加快研发进度,通过修改或者直接复制、粘贴代码来实现代码重用,仍然是软件程序员们的一种常见的习惯,也因此造成了重复的代码片段。这样的重复代码片段被称为代码克隆或者克隆代码。软件中的克隆代码不但增加了维护工作还对程序的准确性有着不好的影响。这也就是为什么,在软件工程研究至少已经持续十年的情况下,代码克隆分析依然是一个有趣的、新兴的话题。一些作者的报告中有7 - 23%的代码重复[19]-[21];在一些软件中极端的甚至有59%的代码重复。

因此,重大的研究已经进行防止这一问题,对软件中的克隆代码进行检测、重构使得对软件的维护更加的容易和快速。在过去的几十年中,几种用于检测代码克隆的技术和工具已经被提出来。在研究代码克隆的过程中已经有许多实证,然而,每一种新的技术的到来都要一些实证研究来验证该技术[23],并且这些实证研究也可以用来比较几种工具的差异[17], [18], [24]。在网络领域中也对克隆进行了一些研究和实证研究[1], [11], [12], [25]。但是我们在任何一个关于克隆的比较研究中都没有找到克隆与网络开发框架之间的关系。

时代变化的飞快,进来大多数公司更加喜欢选择他们自己的网络应用程序上的在线服务。动态的、健壮的、兼容的、迷人的视觉外观和容易访问的网络应用程序对于成功的网上企业不是必要的,但也是与其他全球性公司竞争的一个重要因素。一个网页开发框架就是一个旨在支持动态网站、网络应用程序的、网络服务的软件框架。该框架旨在减轻在网络发展中常见活动执行的开销。根据一项网上调查,在用来研发微软开发和销售的应用程序中,ASP.NET框架是最受欢迎的一种框架。微软发布了一些插入了经典的ASP.NET和其有延伸功能的如ASP.NET MVC和ASP.NET AJAX的扩展框架。上述言论高度的激励着我们进行一项实证研究,在网络开发中使用不同的框架来检验和建立克隆的趋势。虽然,在开发Web应用程序过程中有这么多种不同语言的框架,但我们就在基于ASP.NET技术上选择两种流行的框架,他们是经典ASP和ASP.NET MVC框架。我们已经在这两种框架中总共研究了6种不同大小类型的Web应用程序,通过AIST CCFinderX [27]来检测克隆。接着我们分析了克隆检测的结果,然后通过回答下面问题来找出克隆和这两种框架的关系:

  1. 什么是开源网络应用程序的代码克隆?
  2. 是任何的发展框架都容易克隆吗?
  3. 就克隆数量而言,在不同框架的不同Web应用程序中是否存在着显著的差异?

本文剩下的部分安排如下,在第二节中,我们描述相关的研究,第三节中我们简要介绍框架,第四节中我们提供实验设置,第五节中我们研究成果,最后在第六节中进行总结,对这项研究的局限性和未来的计划进行总结。

2相关研究

在开源系统中,一些实证研究已经进行很长时间了。提出了克隆检测方法或技术、用开源系统进行研究工具的比较、在开源系统上研究不同大小类型不同种语言是对克隆实证研究的三个主要领域。

在2009年,Vue等人提出了一种新算法,克隆检测方法KClone,包含了一个新颖的词汇组合和本地的依赖性分析来实现精密[4]。Mayrand等人提出克隆检测方法,使用名为(LRL)的语言来描述每个函数的源代码。Komondoo等人提出了一个基于程序切片的方法[15]。所有的这些公布出来的提出的方法,都来自于为了验证技术而进行研究活动中的实证研究这一部分。Bellon[17][18]等人的实验是到目前为止最大规模的使用了4个C和4个java系统来比较几个最先进的工具。Roy 和 Cordy [2]目前在开源软件中用镍镉来深入的研究功能克隆。他们检查了二十多个开源C、Java和C#系统,包括整个Linux内核,Apache httpd,J2SDK摆动和db40,并且比较在几种不同尺寸中时使用代码克隆的状况。其他几个研究人员已经在 Linux内核中进行克隆实证研究。Casazza和Antoniol他们提出了有趣的发现,但他们专注于克隆演化。AI-Ekram等人也在进行一个很有前途的代码克隆研究,重点通过C 和 C 两个不同域的系统来研究。他们通过分析跨系统的同一域的克隆来检测不同的偶然性的克隆。

最近,克隆在网络域名方面已经开始引起学术界的兴趣 [2]。已经有专门用于为互联网提出建议的克隆检测工具和技术[8]-[11]。虽然[9]中的方法只限于在静态页面检测克隆,但在[8]中,其范围曾经扩大到包含 ASP 页面。通过使用 PHP 服务器网页技术,Rajapakse 和 Jarzabek进行了一项案例研究,来探索服务器网页技术可以被普及到多大范围从而实现免费克隆的web应用程序 [2]。我们的工作也涉及到网络域名,我们试图在网络域名中找出克隆和应用程序发展框架之间的关系。

3框架的简介

一个web应用程序框架是一种框架,类型或基础,专门用于帮助开发人员构建web应用程序。这些框架通常提供常用的大多数网站的核心功能,如用户会话管理,数据的持久性应用程序和系统模板。通过使用适当的框架,开发人员通常可以节省大量的时间来构建一个web站点。这有针对于不同web技术的不同类型的网络框架。我们选择了传统的ASP.NET和ASP.NET MVC作为我们的研究框架,这两种框架持续在行业内很受欢迎。

A.传统ASP.NET或ASP.NET Web表单

经典的ASP.NET框架或ASP.NET Web表单可以让你用一个动态的拖放来建立一个事件驱动模型。一个设计外观和数以百计的控制和组件让你迅速建立复杂的,强大的网站与数据访问的用户界面。经典的ASP.NET允许为Web应用程序用一个静态HTML页面(.htm或HTML文件)来创建动态的目录,服务器通过读取Web请求执行该文件并将其发送给浏览器。相比之下,当有人请求ASP.NET(.aspx文件)时,该网页作为一个程序在网络服务器上运行。当页面正在运行时,它可以执行任何Web应用程序的任务要求,包括计算值,阅读或编写数据库信息,或调用其他程序。而它的输出,该页面动态生成标记(在HTML或其他标记语言元素)并且将此动态输出发送到浏览器。在前文中,我们将称之为传统的ASP.NET框架或ASP.NET框架。

B.ASP.NET MVC

ASP.NET MVC提供了强大的、基于模式的方法来建立动态的Web应用程序,能清晰的分清关系,允许完全的控制标记,是令人愉快的,灵活的开发过程。ASP.NET MVC包括许多功能,使用最新的网络标准用来创建复杂的应用程序,能进行快速的,非常友好的开发。模型视图控制器(MVC)体系结构模式将应用到三个主要组成部分:模型、视图和控制器。ASP.NET MVC框架提供了经典的替代ASP.NET的方法,用于为Web应用程序创建Web窗口样式。这个ASP.NETMVC框架是一个轻量级的,高集成的、可测试的、有完整的ASP.NET现有功能的演示框架,如母版页和基于会员资格的认证。在前文中,我们将ASP.NETMVC框架也叫作MVC框架。

4.实验装置

在这个实验中,我们应用CCFinderX在开源的WAS中找到克隆代码。我们选择CCFinderX是因为和其他的克隆检测工具相比,CCFinderX有更好的性能、可扩展性、可召回性,但是精度较低。此外,CCFinderX不依赖源代码分析的正确性尤其是一些含有语法错误的简介给出的重要特征。此外,CCFinderX不依赖于语言的语法,因为它是AST检测工具的一个例况。这使得CCFinderX不受语言进化的影响。我们有设置TKS(最低数量的不同类型的令牌)为15,用于检测从小到大的可以增加的非法克隆片段,因为一些小的意外相似的片段可能被认定为克隆片段。我们使用了基于十进制的指标,文件度量和克隆集合度量来分析研究结果。本节主要讲述我们已经研究的整体的系统,并且我们用十进制来分析结果。

  1. 主题系统

在本研究中我们利用大小各有不同的ASP.NET MVC的框架总共分析了六种Web开发应用程序。在表1中我们提供了一种Web应用程序的统计概述。所有系统的大小从10K到100K。在我们进行实验时,我们不包括ASP.NET应用程序中的设计师的页面,因为这些事对克隆代码的作用是有限的。所以我们从我们的整个主题网站应用程序中排除了所有的测试页,因为这些都不是真正的应用程序代码。

  1. 度量

本章节我们介绍了几种感兴趣的用于分析结果的度量。我们试图进行一个全面的研究,研究基于行的度量,文件度量和克隆集度量。每个度量都是自己定义他们的特征。

B. 1)基于行的度量:行的度量顾名思义,就是测量代码总行数和比例,包括代码克隆片段。我们用代码位置线作为行的度量,SLOC的代码不包括没有任何有效的行迹象,钟-线包括至少一个数一个代码克隆和标记线包括代码片段CVRL比代码片段标记代码克隆。

B. 2) 文件度量:文件度量主要集中在文件系统,而不是线上。在这一类的度量指标中,我们考虑分析CLN技术文件中代码克隆的数量,用RSA计算在不同文件中被克隆代码覆盖的迹象的百分比。如果一个RSA的百分比在文件中的值是接近100%,那么很大一个可能性就是这个文件是复制粘贴。RSI计算在源代码文件内的有克隆代码覆盖的迹象的百分比。如果RSI的百分比值在文件中是接近100%,那么很大的可能性就是文件中包含一些列的类似的函数和方法。

B.3) Clone Set度量:一个克隆机是一组代码段的集合,每一段代码片段都是克隆代码。我们正在研究的克隆机内容包括POP-依赖于克隆代码中的代码片段的总数,还有NIF-依赖于含有一段或更多的克隆的代码片段的源代码中的代码片段。另一种我们考虑到的度量解释命名为RAD-在明确的目录层次中显示源代码中的代码片段的幅度。实际上,CCFinderX是广为人知的善于测量许多标准的克隆检测软件。然而,我们的研究程度只受限于那些足够描述代码克隆标准的度量,并且通过这样我们能得到目标的统计可靠的概观。

5研究结果

我们在用ASP.NET MVC框架开发Web应用程序时,我们研究结果显示了总体克隆水平的一部分,然后我们去完成各个指标的检测。尽管为了每一种度量标准我们已经提到了我们计算出的Table-II到Table-V中的研究数据,但是对于Line Based度量,File度量和Clone Set度量,我们只对最重要的度量作出了讨论。我们的讨论只为所有的度量考虑平均价值,而不是分别考虑最大和最小价值。

A.总体克隆统计

我们主要研究通过测量来统计克隆数量,通过RSA和RSI进行的行的度量和文件的数目来建立起克隆集合。我们可以在表2中观察到在WAS开发中,ASP.NET框架比MVC框架有更多的行,包括至少一个克隆迹象。使用ASP.NET开发框架来进行Web应用程序的开发中,总共有23.2%的行中有一个克隆代码片段的迹象。另一方面,在MVC框架开发中,只有7%行有一个代码片段的迹象。在ASP.NET里应用训练营中,最高的CVRL是0.382491,而在MVC

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[148063],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。