论文《A Cloud Service Implementation for Evaluating Design》部分笔记

近年来,设计模式封装了解决设计问题的宝贵知识,更重要的是提高设计质量,因此设计模式对软件质量的影响已引起软件工程领域的越来越多的关注。我们先前的研究提出了一种利用评估方法来评估设计模式的质量。随着评估软件项目版本的增加,分析时间随着源代码大小的增加而增加。计算性能不适用于实际数据分析。但是,可以通过提供基于Internet的可伸缩基础结构,平台和服务的云计算来提高计算性能和大数据处理。在此研究中,我们通过开发基于强大计算能力的利用率评估云服务来处理大量数据,从而描绘了实现软件质量评估云的过程。实验结果表明,云服务架构确实可以提高计算性能。

关键字:设计模式,软件质量,软件演进,Hadoop,MapReduce

 

1. INTRODUCTION

设计模式是对Gamma等人提出的许多程序设计者经验的积累。 [1]为程序员在软件设计中出现相同问题时提供解释和指导。 最近,事实证明,设计模式部署是封装面向对象设计知识的适用体系结构,它们捕获了构建软件系统时出现的重复出现问题的成功解决方案[2-4]。 通常,程序员部署设计模式不仅是因为它可以封装有价值的知识来解决设计问题,而且更重要的是提供灵活的体系结构。

在我们先前的研究中[5],从不同角度分析了一种设计模式,以了解它如何帮助软件开发。 根据分析,将设计模式归类为促进设计活动的活动促进者; 质量改进程序,用于处理非功能性需求并提高软件质量; 解决设计问题的问题解决者; 以及解决设计冲突的冲突解决程序。 例如,观察者设计模式可以扮演质量改进者的角色,以减少主题对象与观察者对象之间的联结;活动促进者的角色可以促进设计分解,问题解决者的角色可以防止 数据不一致。

大多数质量改进程序模式都解决了可维护性问题-如果设计采用该设计模式,则将来添加,删除或更新某些组件会更加容易。 换句话说,所应用的设计模式被用来满足提高质量的原始目的。 为了评估利用的有效性,我们提出了一种分析方法,以评估软件演化中部署的质量改进器模式的利用[6]。 部署的设计模式的利用被定义为部署的设计模式的设计更改的连续版本之间的一致性程度。 它用于检查设计模式的部署是否满足整个系统演进中的原始设计目的。 较高的程度意味着频繁使用模式应用程序,这意味着对演化的更大贡献。

但是,利用评估方法需要大量的计算资源来分析软件项目版本中收集的开源软件(OSS)源代码,检测设计模式并评估开发中检测到的设计模式。 以jMemorize的评估结果为例,如表1所示,评估大约需要3个小时。 对于程序员来说,花费数小时来分析软件项目,评估性能不切实际的问题是不切实际的。 如果我们可以减少评估时间,那么程序员可以更早地检查设计模式部署的好处,并增加改进系统设计的意愿。

为了解决耗时的问题,必须应用可伸缩的分布式计算环境。 Hadoop具有可靠的分布式计算特性,是开源系统,由Google使用。 HDFS [7]是一种分布式文件系统,可为数据应用程序提供高吞吐量访问和低延迟。 Map Reduce [8,9],一种用于在HDFS上分布式处理大量数据集的软件框架。 Hadoop被用作解决方案,不仅提供了计算能力的灵活性,而且还提供了一种解决需要高吞吐量I / O的高性能计算的方法。

最近,开源软件的出现改变了对软件质量进行重新搜索的方式。 开源软件源代码和相关数据可以存储在公共版本控制系统中,该系统为研究人员提供了一种评估软件质量的透明方法。 截至2013年第一季度,SourceForge已提供340万开发人员,用于超过324,000个项目来创建功能强大的软件。其受欢迎的目录将这些开源项目与4,600万消费者连接,每天下载量超过4,000,000 [10]。

如果可以按需实现每个OSS项目的质量分析,则大量的开源软件可以为世界范围的软件开发人员提供宝贵的设计经验。 在本文中,我们应用Hadoop技术来实施云服务,以评估软件演化中的设计模式。 该系统在概念上合并了软件即服务(SaaS)以实施软件质量云服务。 我们的研究贡献包括:

开发设计模式的评估云服务。 云服务可以提高性能,是以前的模式利用率分析器的十倍以上

(PUA)系统[6]用于我们的实验中的大型软件系统;

在著名的开源软件上进行实验,以验证OSS质量评估体系结构;

为程序员提供一种分析方法,以监视软件开发中设计模式的使用情况。

本文的其余部分结构如下:第2节讨论背景和相关工作。 第三部分介绍了我们分析软件开发中设计模式利用的方法。 在第4节中,我们演示了系统设计方法。 实验结果和讨论在第5节中进行了报道。最后,结论在第6节中给出

2. BACKGROUND AND RELATED WORK

 

在本节中,我们将从描述设计模式评估的相关工作开始。 接下来,我们介绍Hadoop基础架构的基本背景。

2.1 Design Pattern Evaluation

Gamma等。 [1]提出了旨在解决软件设计问题的二十三种设计模式。 他们主张设计模式可以通过命名和定义抽象来降低系统复杂性。

Vokac [11]试图找到软件中特定设计模式的存在与缺陷数量之间的关系。 他调查了参与部署的设计模式的类是否比不参与任何部署的设计模式的类更容易出错。 结果表明,与非参与者相比,Observer和Singleton与更大的代码结构相关并且更容易出错。 与非参与者相比,“工厂方法”模式更紧凑,耦合性更小,更不容易出错。

Prechelt等。 [12]测试使用某些特定的设计模式是否对不同背景的参与者有用。 他们执行基于纸张的编程练习,并测量给定维护任务的时间和正确性。 结果表明,Decorator模式比其他模式更容易更改。 相似的相关研究[13,14]讨论了设计模式的使用及其对软件维护的重要性。

Aversano等。 [15]报告了横切关注点的散布程度与设计模式类别中的缺陷数量之间的相关性。 他们观察到,随着缺陷数量的增加,图案会引起横切关注。 尽管使用设计模式会带来很高的可维护性,但是开发人员应注意引起的影响,例如缺陷增加。

Tsantalis等。 [16]在图形表示之间使用相似性评分算法来自动检测修改的设计模式。 董等。 [17]提出了一种DP-Miner工具包,用于基于矩阵和权重的使用来恢复设计模式的实例。 DP-Miner从源代码而不是图形表示中构建矩阵,以提高模式检测的准确性。 它可以执行静态行为分析,但不支持模式偏差和动态分析。

近来,有论文调查了已部署设计模式的有效使用。 程等。 [18]通过以制图研究的形式进行系统的文献综述,研究了设计模式的广泛使用已受到实证研究的影响。 上面提到的那些研究要么在单一版本上评估软件,要么进行小组问卷调查。 尚缺乏研究通过自动方法评估部署的设计模式相对于软件演进的质量。 在我们的研究中,我们开发了一种自动评估工具,可以评估软件演化时已使用模式的使用年龄。 这是对软件演进中已部署设计模式的质量评估的开创性研究。

2.2 Hadoop Infrastructure

 

六,结论

本文提出了一种基于Hadoop框架的利用率评估云服务。 该服务强大的计算能力可以处理开源项目上的大量设计模式应用程序。 此外,该服务还提供了对设计模式质量的有价值且实用的评估,可帮助开发人员监视软件开发中设计模式的利用情况。

 

我们的工作描绘了实现软件质量评估云的过程。 研究包括基于软件演进的设计模式评估和云服务实现。 借助大量的开源软件和软件质量评估云服务,程序员可以按需利用宝贵的设计经验。 所提出的方法从概念上结合了SaaS来实现软件质量的云服务。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值