基于演化历史的软件包设计异味检测方法研究

来源 :华南理工大学 | 被引量 : 0次 | 上传用户:zs297481492
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件架构是指导软件系统进行开发和实现的决策模型。良好的软件架构是可理解性、可测试性、可扩展性和可重用性的前提。然而,在软件实现过程中无法保证构建的软件没有偏离预期的软件架构。另一方面,随着软件的发展,软件架构可能需要进一步调整和优化。软件架构异味是指不良的架构设计,是常用的设计决策,会对软件的质量产生负面影响。由于软件的架构异味隐藏在实现的代码中,人工难以直接从软件代码中观察到架构异味,因此许多架构异味检测技术被提出。包作为软件架构模块,但针对与包相关的架构异味检测技术尚有研究空间。因此,本文提出对包设计异味的检测方法进行研究,目标是检测对系统维护工作有重大影响的可能的架构异味,为软件包的设计和重构提供有效的见解,为软件开发人员找出影响维护工作的架构级别问题,提供可能需要重构或优化的重点关注点。通过对与包相关的架构异味研究现状分析,发现在包级别架构视图检测隐式跨模块依赖有可改进之处,以及结合易变性有利于检测包的稳定抽象不一致的情况。因此本文根据包的基本设计原则,通过对软件的演化历史和软件实体的结构依赖进行研究,提出了检测隐式跨包依赖和稳定抽象不平衡异味的方法,并分析这些架构异味给软件维护工作带来的影响。本文的主要研究内容和成果如下:(1)针对现有隐式跨模块依赖异味检测方法的不足,提出了一种检测软件实体依赖关系不符合软件系统模块化设计原则和包的共同封闭原则的隐式跨包依赖的方法。该方法从包级别架构视图检测,并改变了现有衡量类演化耦合程度的方法。(2)根据包的稳定抽象特性,提出了一种检测违反稳定抽象原则的包设计异味——稳定抽象不平衡的方法。基于软件演化历史提出一种衡量包的易变性的方法,通过分析易变性、稳定性和抽象性的测量值分布中的异常值,定位违反稳定抽象特性并对维护工作造成影响的包。(3)提出了一种细粒度的软件维护工作的分析方法。从Bug修复、新功能增加和设计结构优化调整三个方面更详细地分析包设计异味对软件维护工作的影响。最后,收集和处理六个Apache开源复杂项目的数据进行实验,分析包设计异味对软件维护工作的影响,验证所提出的检测方法的有效性。实验结果表明,本文的架构异味检测方法发现的隐式跨包依赖和稳定抽象不平衡异味会对软件的维护工作产生重大影响。在本文方法检测的异味实例中,与没有涉及架构异味的类比较,那些涉及架构异味的类消耗了更多的维护工作量,这表明类受到架构异味的影响使其维护工作量增加。并且,涉及隐式跨包依赖的类的对维护工作的负面影响比稳定抽象异味的大。因此得出,本文的检测和分析结果可以作为开发人员对隐式跨包依赖和稳定抽象不平衡异味的理解和认识,提醒了开发人员应该将这两类架构异味作为重要关注点。
其他文献
聚钨酸盐重液因其密度高,粘度低,无毒,无污染,密度可调节,易回收等特点而被广泛应用于各个领域的重介质密度分级中。尤其在选矿工作中,重液不仅可在工业选矿中分离低品位矿石和有害物质,对高品位矿石进行预先富集,提高选矿效率,而且可在实验中进行矿物、矿石分离,从而了解矿物、矿石的组成。虽然聚钨酸盐重液已有实际应用的实例,但是有关聚钨酸盐及其重液的制备未见报道。本文利用水溶液合成法,主要以钨酸和钨酸钠为原料
学位
移动互联网的普及让网民可随时随地上网,发布和阅读各类信息。但互联网在给生活带来便利的同时,也成为了抄袭行为滋生的温床。互联网的数字版权作品有信息量大、易传播、低复制成本等特点,不仅抄袭成本低,而且人工判别的方式工作量极大。因此,用计算机辅助检测抄袭现象十分有必要。本文着重研究短篇新闻的相似度计算方法,旨在开发具有较高速度和较高准确率的相似新闻检测系统,提供实时的相似内容检索服务,辅助内容发布平台对
学位
学术论文是科研成果的重要体现方式之一,是科学研究工作的结晶,具有很高的参考价值。随着科技的进步,新兴技术不断地应用在标准文献的研究上,论文分析正朝着更细粒度的方向发展。但越来越丰富的功能让开发者的压力也越来越大,学术论文分析往往需要不小的门槛,没有专业背景的开发人员与研究者的沟通障碍也会让双方的工作效率都会下降,同时,研究者日渐复杂和个性化的分析需求无法及时满足,也会影响到科研的效率。本文针对特定
学位
图数据描述个体与个体之间的关联关系,在我们的日常生活应用中广泛地出现。图数据潜藏着大量有意义的信息,近年来,图数据的分析和挖掘是人工智能领域的一个热点,而图节点分类是图数据挖掘中最重要的研究方向之一。图节点分类通过对现实中具体任务进行建模,挖掘图的节点特征信息和节点间的连接信息,实现对节点的标签分类。图神经网络在学习非欧里几得数据时具有明显的优势,是实现图节点分类任务有效的神经网络模型。然而,随着
学位
软件开发过程中,测试人员或者用户在发现软件异常后,会形成描述相关缺陷的软件缺陷报告提交到缺陷管理系统中,开发人员需要分析缺陷报告从代码文件库中找到缺陷所在位置并修复。为了以更少的成本完成生产环境中的软件缺陷定位,研究人员提出了多种自动化地解决软件缺陷定位的方法。基于信息检索的软件缺陷定位方法将缺陷定位视作检索任务,为每一份缺陷报告生成一份按照程序模块与缺陷相关性降序排序的列表。然而目前方法在性能上
学位
飞秒激光烧蚀在微纳加工等方面具有广阔的应用前景,飞秒脉冲宽度极短,能够在样品表面实现超精细的烧蚀及加工。脉冲整形技术能够对脉冲的各种性质进行调控,例如产生特定脉冲序列以及使脉冲时域结构发生变化,从而能够满足多种特殊物理过程的研究。本文在采用Sine位相的基础上,还使用了负三次位相及Alpha位相的整形脉冲对多晶Cu进行烧蚀,在组内之前着重研究能量通量对烧蚀形貌影响的基础上,创新性地以焦点位置为角度
学位
激光诱导击穿光谱技术(Laser-induced breakdown spectroscopy,简称LIBS)是一种物质元素分析技术,它能够实现待测元素的定性分析与定量分析,近年来凭借其独特的分析优势逐渐被人们关注。本文从国内外研究进展介绍这项技术的发展进程,并从等离子体的产生及辐射过程介绍这项技术的理论基础。在这个过程中了解到这项技术检测灵敏度相对较低的缺陷,并且这一问题制约LIBS技术的发展。
学位
强激光脉冲与物质的相互作用是科研人员们近些年来的一个热点研究方向。作为一种新的获取X射线光源的方法,高次谐波可以用来产生阿秒脉冲。利用阿秒时间尺度的脉冲来探测电子内部的运动规律,跟踪原子和分子的超快动力学过程,也是理论计算和实验中的重要研究课题。提高高次谐波平台区发射效率的方法及高次谐波发射的物理机制成为人们广泛关注的热点问题。相比于气体靶高次谐波,固体高次谐波因为具有高密度的特性而备受关注。我们
学位
粒子碰撞是研究物质相互作用的重要途径和手段之一,激光是人类调控物质的重要工具。激光技术自从20世纪60年代以来不断革新,啁啾脉冲放大技术的出现,使激光脉冲的峰值强度得到了极大提高,达到并超过了太瓦(1012W/cm~2)量级,脉冲持续时间也压缩到了飞秒(1015s)量级。这样的强激光的电场可以与原子核对电子的库仑作用相比拟,脉冲长度也与碰撞作用时间接近。因此,通过超快激光可以对粒子的碰撞过程产生重
学位
本文分别选用CH4分子和NH3分子与飞秒激光相互作用发生电离后产生的光电子速度成像实验研究分子阈上电离和振动激发效应。实验采取速度成像技术观察CH4分子或NH3分子发生电离产生的光电子,通过改变激光强度分析分子振动激发轨道演化和振动态在分子电离过程的贡献。我们提取了分子电离后有关中间态的光电子动能分布与角分布,目的是要通过分析逸出电子的角分布及动能分布,获取分子在激光场中电离过程的重要物理信息,为
学位