基于相似度评分、FSM和机器学习的设计模式识别

来源 :中国矿业大学(北京) | 被引量 : 0次 | 上传用户:hanjzh
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
设计模式是人们在实践过程中总结出来的成功设计的范例,它们帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。设计模式的应用使得软件系统的开发效率和软件系统的质量都得到了很大的提升。然而,许多系统的设计文档或者不完整,或者与源代码不完全匹配。对于使用敏捷开发方法构建的软件系统,这个问题更为严重。另一方面,即使系统的设计文档完整可用且与源代码完全匹配,这些文档可能并未详细记录设计模式使用信息。因此,高效、准确地自动识别出系统中包含的设计模式实例,对理解、维护和重构大型软件项目具有重要意义。近年来,国内外的相关文献已经提出很多设计模式自动识别的方法。然而,设计模式的识别是一个比较复杂的问题,这些方法存在以下不足:1)这些文献大多是将模式与整个系统进行匹配,因此识别的准确率和时间性能并不高。其中一些文献尝试在执行搜索算法前减少搜索空间以优化时间性能,但仍然是在整个系统的基础上对搜索空间进行缩小。2)行为型模式的识别是一个颇有挑战性的问题。现有文献有些只针对结构型/创建型模式的识别,并不能检测行为型模式。还有文献试图使用同一个匹配算法搜索结构型/创建型模式和行为型模式,识别的准确率并不高,对于结构特征不够明显或与其他模式具有相似结构的行为型模式更是如此。近年来也有学者首先使用基于结构/对象创建特征的方法得到行为型模式候选实例,然后通过单独匹配行为特征对候选实例进行确认。然而,这些文献大多数都不执行源代码来检测运行期间实际发生的方法调用与行为型模式是否匹配。所以这些文献在分析行为方面是有限且不精确的。3)设计模式识别最重要的过程是将模式的特征与系统的特征进行匹配。近年来,国内外的相关文献已经考虑到各种各样的模式特征,但大多都属于设计模式的结构特征和行为特征。为了增强代码的可读性和可维护性,设计模式往往具有各自的命名特征。目前只有少量文献考虑了设计模式的命名特征。而使用命名特征可以方便准确地对基于其他特征得到的候选实例进行确认。4)在设计模式刚刚提出的时候,有学者尝试通过软件度量来识别设计模式。然而,仅靠几个死板、单一的指标来判定系统是否为模式实例,其准确率显然不高。尤其是对于设计模式变体的识别更是如此。此外,软件度量主要用于衡量系统的静态结构属性。因此只通过软件度量难以对行为型模式进行精准识别。事实上,使用软件度量来识别设计模式往往需要通过人工确认来获取最终的实例。5)使用机器学习识别设计模式最重要的过程是准备训练样本。目前大多数使用机器学习识别设计模式的文献都是手动获取和标记训练样本,这需要耗费很多时间和人力。为满足规模大、复杂性高的软件系统对于设计模式识别方法准确率和时间性能的需求,本文提出一种基于相似度评分、有限状态机(FSM,finite state machine)和机器学习的设计模式识别方法。主要的研究工作及创新点如下:1)针对现有文献大多将模式与整个系统进行匹配,识别准确率和时间性能不高的问题,提出一种基于相似度评分和二级子系统的设计模式识别方法。该方法将待考查系统划分为若干个子系统,并将子系统进一步划分为类个数与待识别模式中的角色个数相等的二级子系统,然后使用相似度评分算法匹配二级子系统和模式来识别系统中的模式实例。实验结果表明,该方法具有较高的识别准确率和时间性能。2)针对现有文献无法检测行为型模式或在识别行为型模式方面准确率较低的问题,本文提出一种基于FSM的行为型模式候选实例确认方法。该方法使用单元测试工具JUnit执行上述基于相似度评分和二级子系统的方法得到的行为型模式候选实例,并将运行期间实际发生的方法调用与行为型模式转换得到的FSM进行匹配,以此来最终确认候选实例是否为模式实例。实验结果表明,该方法可以提升行为型模式识别的准确率。3)针对现有文献大多都未考虑模式的命名特征,而基于软件度量识别模式准确率不高且需要人工确认的问题,提出一种基于软件度量、命名特征和机器学习的行为型模式候选实例初步确认方法。该方法使用6个现有的设计模式识别算法对102个开源项目中的模式实例进行识别以获取正反样本,并将正反样本中类的度量值和命名提供给学习系统(本文使用ANN方法)进行学习。这反过来又提供了一个包含所获知识的模型,该模型可以在对行为型模式候选实例进行初步确认。该方法可以缩小基于FSM的确认的搜索空间。4)针对手动获取和标记设计模式识别训练样本需要耗费很多时间和人力的问题,提出一种自动获取和标记训练样本的算法。该算法集成多个现有的设计模式识别算法,输入包含设计模式实例的开源应用程序,自动判定并标记训练样本。该算法可以为上述基于软件度量、命名特征及机器学习的行为型模式候选实例初步确认方法生成训练样本。本文首先给出了该方法的基本思路,并讨论了源代码信息的提取;然后,提出一种基于有向图/矩阵的设计模式和系统的表示以及一种基于FSM的行为型模式的表示;接着,分别详细讨论了基于相似度评分和二级子系统的设计模式识别算法、基于FSM的行为型模式候选实例确认算法以及基于软件度量、命名特征和机器学习的行为型模式候选实例初步确认方法;最后,在开源项目JHotDraw 5.2、JRefactory 2.6.24和JUnit 3.7上进行了实验,并对结果进行了分析讨论。实验结果表明,该方法可以对设计模式进行识别,且具有较高的识别准确率和时间性能。对于结构特征不够明显或者与其他模式具有相似结构特征的行为型模式,效果尤其明显。
其他文献
我国是一个能源需求大国,在发电供热方面煤炭是主要的能源。从煤炭的开采地域来看,最近几年华东、华北地区的煤炭开始出现萎缩,且开采深度和难度加大。随着西部地区的发展越来越快及对资源的需求越来越大,我国煤炭开采开始向西部转移。从储量上来,西部煤炭资源总量占全国的64.8%,2018年的生产产能为15.13亿万t,占全国的43.34%,因此布局西部煤炭开采是大势所趋。我国西部地区赋存有大量20m以上特厚煤
吉林省是我国东北地区重要的赋煤区,其中古近纪是吉林省最重要的成煤时期,主要分布在吉林省的东半部。珲春盆地位于吉林省珲春市境内,是吉林省煤炭资源最丰富的地区。本文结合煤岩学、矿物学以及地球化学等学科知识对珲春盆地古近纪煤的矿物学和地球化学特征进行了研究,并着重对珲春煤中矿物质的富集机理进行了深入的分析。珲春八连城矿区煤主要为低灰分、高挥发分亚烟煤;板石矿区煤主要为中灰分、高挥发分亚烟煤;富强矿区煤主
针对特厚煤层,采用综放开采技术是实现安全高效开采的主要方法之一。顶煤在到达放煤口时及时垮落和充分破碎是采用综采放顶煤开采的基本前提和重要保证。针对急倾斜特厚煤层,由于顶煤硬度大,工作面短,顶煤受到的夹制作用大,自然破碎效果差。采用水平分段法超前工作面爆破弱化顶煤,再进行综采放顶煤开采回收顶煤,是解决急倾斜特厚煤层顶煤难以垮落的有效方法。本文针对青海江仓一号20#急倾斜特厚煤层,运用理论分析、数值计
为了更好地开发利用能源和矿产资源,迫切需要了解岩体的应力状态,地应力测试越来越受到重视。Kaiser效应测地应力因操作简单、成本低廉获得广泛的研究,但有关钻孔岩芯Kaiser效应机理与应用等问题仍未很好解决。为此,本文针对钻孔岩芯Kaiser效应地应力测试,首先借助Griffith微裂纹模型,分析Kaiser效应方向独立性,进而采用实验室试验探讨循环路径、循环峰值和围压等对Kaiser效应的影响,
本文以林西矿煤矿高浓度胶结充填项目为背景,对煤矿高浓度胶结充填料浆矸石颗粒悬浮性展开了研究。针对煤矿高浓度胶结充填料浆矸石颗粒悬浮性差、容易下沉,料浆管道输送需要添加悬浮剂提高矸石颗粒可浮性这一现象,分别建立了球形矸石颗粒和立方体矸石颗粒力学模型,分析了煤矿高浓度胶结充填料浆矸石颗粒沉降规律,总结了影响矸石颗粒悬浮的关键性因素,提出了提高煤矿高浓度胶结充填料浆矸石颗粒悬浮性的两种方法,并从理论上推
本文以典型新疆高碱煤为原料,通过化学溶剂萃取的方式定量分析了高碱煤中碱性金属元素的赋存形态;同时采用先进的X射线和核磁共振原位分析技术,全面深入揭示煤中碱性金属元素的原始物化特性。此外运用实验室规模的加压固定床高温热解/气化反应装置来模拟工业鲁奇炉运行过程煤转热转化特性,着重分析了原煤热解及煤焦气化过程中腐蚀性碱金属及碱土金属的迁移、释放和界面沉积行为,从而揭示碱性金属元素的高温热演变特性;同时还
自从1991年,碳纳米管(Carbon Nanotube,简称CNT)被日本电镜学家Iijima首次发现以来,因其具有巨大长径比和比表面积的几何结构特点,使其在力学、热学和电学等性能上表现的异常优越,从而迅速成为众多科学领域研究的热点,也很自然的当作理想增强体而被引入到先进复合材料中,从而制备出性能更加优越的碳纳米管增强复合材料(Carbon Nanotube-Reinforced Composi
深部煤体的赋存环境具有“高地应力、高温、高渗透压”的“三高”特征,同时深部开采中煤岩体还具有强扰动和强时效的工程响应。“三高”特征在采掘活动中显著影响煤体渗透率的变化,而开采扰动形成的采动裂隙能够有效提高煤层渗透率。因此掌握多场耦合影响和开采扰动下深部煤体渗透率的演化规律对于防治深部煤与瓦斯突出等灾害、实现煤与瓦斯共采等技术来说至关重要。目前,煤体渗透率研究的先进成果主要集中在煤层气抽采方面,其力
镁合金广泛用于汽车行业中,以实现轻量化节约能耗等。在室温下,有限数量的滑移系在镁合金的变形过程中是活跃的。孪生作为另一种对塑性变形有较大贡献的变形机制得到了广泛的研究。由于密排六方晶体结构(HCP)的对称性较低,镁合金与钢、铝合金等具有立方晶体结构的金属相比具有较低的延展性。本文利用VPSC模型进一步研究了镁合金的变形行为,包括镁合金的轧制板材、挤压的棒材以及掺有稀土元素的镁合金,并且应用PTR和
在矿业生产过程中,提升机负责运送人员、设备、煤炭和各类物料,是连接地上与地下整个生产系统的重要纽带。制动系统作为提升机不可或缺的重要组成部分,是提升机稳定、高效运行的安全保障,在矿业生产系统的地位举足轻重。如果提升机制动系统发生故障,轻则影响生产效率,导致经济损失;重则引起人员伤亡,影响社会和谐稳定。因此,对提升机制动系统进行性能退化评估和故障诊断,保障提升机运行的安全性、稳定性和高效性,无论是从