一种支持软件工程质量自动监控的新方法及其装置制造方法及图纸

技术编号:10316075 阅读:146 留言:0更新日期:2014-08-13 17:32
本发明专利技术公开了一种支持软件工程质量自动监测的新方法。该方法包括:直接连接待监控的软件工程源代码的SVN,读取版本信息并进行核对;提取其源代码的结构和功能进行必要的分析,并在代码层面进行全面的检查;展示代码质量的变化以及对开发者每次犯错时的预报错;经过质量分析,还会给开发者反馈一个关于如何提高代码质量的说明。这4个步骤在系统中由多个模块并行处理,同时运行,并且不停的运转从而达到无人参与下的系统自动监测。通过本发明专利技术解决了现有技术中存在的不能及时、自动地实现软件质量监控的问题。

【技术实现步骤摘要】
一种支持软件工程质量自动监控的新方法及其装置
本专利技术涉及代码审核领域,涉及一种软件工程质量自动监控的新方法
技术介绍
面向对象的大型软件系统在我们的社会现在无孔不入,他们在我们的日常生活中发挥了至关重要的作用,也越来越多,越来越复杂。因此,它们的质量如何具有重大意义。此夕卜,外包开发和维护需要的衡量质量的手段很详细,并正在演变成为目前的趋势。因为代码在地理上分散开发,整个系统在开发中,通常有一个有限的认识,当改变部分代码时,无效的原始设计的系统会导致设计效率降低,因此负面影响总体系统的质量。随着项目经验的累积,后期维护的成本将越来越被重视。而开发过程中的代码质量直接影响着维护的成本。规范的代码会大大提高程序的可读性,可读性高的代码维护成本必然会大大降低。但是,维护工作不仅仅是读懂原有代码,而是需要在原有代码基础上作出修改。统一的风格有利于长期的维护。另外,好的代码规范会对方法的度量、类的度量以及程序耦合性作出约束。这样不会出现需要修改一个上千行的方法或者去扩展一个没有接口的类的情况。规范的代码对程序的扩展性提高,亦能减少维护人员无谓的工作量。代码规范比比皆是,但是很少有真正做到做好代码规范。相比于国外的项目,国内的软件质量是有很大差距。从代码审查的角度来看,这样可以及时纠正一些错误,而且可以对开发人员的代码规范作出监督。团队的代码审查同时也是一个很好的学习机会,对成员的进步也很有益。但是开发随意,加重的代码审查的工作量及难度,并且使得代码审查工作没有根据,浪费了大量的时间却收效甚微。代码规范不仅使得开发统一,减少审查拿督,而且让代码审查有据可查,大大提高了审查效率和效果,同时代码审查也有助于代码规范的实施。因此,一个能够监控系统的部分的质量开发工作,并提供快速的反馈,以控制和提高质量的系统是必不可少的。像Pfleeger —类的许多软件工程倾向于更多的时间花在与正在系统开发中的每个人沟通,因为做同一件工作的人需要知道他们这一块如何融入整个架构。尽早检测代码中的缺陷以降低软件开发成本非常重要。开源社区已经提出的一些质量评估工具,如Sonar、Squale,是最成熟的项目。Sonar使用各种静态代码分析工具,例如使用CheckStyle,PMD,FindBugs以及Clover来提取软件质量评估指标并使用这些可视化工具来提供质量检测的信息及结果。Squale实现了根据现有的标准质量模式的检测,如IS0/IEC9126,McCall并使用天气作为比喻来反映系统的质量。虽然这些工具可以适用于系统并评估他们的质量,但他们不能提供连续化的质量评价手段。此外,相比于SQUANER可以便利的直接访问源代码SVN库,Solar和Squale需要事先培训一些开发者和质量管理人员使用相应的工具才能充分发挥作用,这无疑是复杂且麻烦的。这里,我们提出SQUANER(软件质量分析系统),一个针对面向对象的软件工程的质量监测系统。SQUANER的贡献与其他的质量评价工具,如Squale和Sonar比较,它的优点是持续评估正在开发的系统,还有它依据特殊技术的独立性,类似Maven:它直接连接到SVN的系统,提取源代码,以设计模式,反模式执行代码嗅探等功能,进行质量评估和故障预测,并每次由开发人员提交。质量分析后,会给开发人员提供反馈,说明如何提高自己的代码。与Sonar相反,SQUANER是不依赖Maven的,甚至可以扩展分析Maven项目。凭借其专注于早期的缺陷检测和质量评估,SQUANER将有助于减少大量系统的预算,并节省开发时间。在分布式的开发方案中,SQUANER提供开发系统中的所有部分开发人员这个技术,从而返回一个基于整体的反馈;这样可以提高对系统整体的认知,并实现有效的质量控制。有了 SQUANER,社会将会从这个进化研究的新工具中受益。其持续的质量评估设计模式和设计的代码嗅探会提供可能进行的有趣的研究,如:分析系统衰变,质量分析工具的有效性,或他们对开发商的行为和软件开发的影响的算法。
技术实现思路
本专利技术实施例提供的一种支持软件工程质量自动监测的新方法,用以解决现有技术存在的现有技术中存在的不能及时、自动地监测软件工程质量的问题。一种支持软件工程质量自动监测的新方法包括:该方法从逻辑上划分为业务管理层和数据处理层。业务层(即前台管理端)和SVN直连,用web网页界面展示功能设置与选项,提供监控模式选择等功能;支撑层(即后台数据端)负责核心的逻辑处理,服务器与SVN并行,读取其数据并按前台设置进行处理。具体的监控方式有嗅探检测与模式匹配检测,而数据处理采用并行计算的处理方式。支撑层只负责支撑业务层各功能模块的运作,由业务层与SVN连接,承担各种正常业务,同时也负责代码分析、修复建议的功能。后台数据库的分析和处理模块以某种分工协作的机制,完成上述功能。SQUANER是一个分层构建的框架。每个开发者上传到SVN仓库后,SQUANER自动检测的新变化并下载新的代码。然后通过执行所描述的各组成部分,对此源代码进行一系列分析。SQUANER会根据由开发者或者质量管理系统预先设置的配置进行分析。配置包括选择检测目标,质量模型,分析所占检测比例和分析频率,以及设计模式和设计缺陷。业务层和SVN直连,用web网页界面展示功能设置与选项,提供监控模式选择等功能;支撑层负责核心的逻辑处理,服务器与SVN并行,读取其数据并按前台设置进行处理。不仅在前端展示结果,还能以电子邮件的形式将关于软件代码质量的评论和建议发给开发者或者质量分析人员。【附图说明】图1为该系统的分析模块功能示意图;图2为该系统的体系结构示意图;图3为产生质量反馈的电子邮件的示例图;图4为系统业务端可视化web界面示意图;【具体实施方式】前文已经论述,一个能够监控系统的部分的质量开发工作,并提供快速的反馈,以控制和提闻质量的系统是必不可少的。针对现有技术存在的现有技术中存在的不能系统化、实时化的实现软件工程质量监测的问题,本专利技术实施构建一个可靠有效的方法支撑代码分析环境,作为支撑层。在此支撑平台之上,创造出一个功能展示与交互界面,作为业务层。支撑层只负责支撑业务层各功能模块的运作,由业务层与SVN连接,承担各种正常业务,同时也负责代码分析、修复建议的功能。后台数据库的分析和处理模块以某种分工协作的机制,完成上述功能。SQUANER是一个分层构建的框架。图1描述了 SQUANER的分析功能模块,图2给出了一个概述SQUANER的体系结构.一旦向SVN提交一个项目,源代码会检查PADL的创造者用于建立一个PADL的系统模型的解析器。PADL的创造者是根据PADL的元模型,并根据C#,C++和Java的解析器建造的。度量值的计算是通过这个模型中的系统与POM组件来实行的。POM提供超过60种不同的度量文学类方法的框架,包括进口和出口耦合;对象之间的耦合(CBO)和加权方法计数(WMC);缺乏凝聚的方法(LC0M5) ;“C” 一类的连通性;新的数字继承和覆盖方法和计算总数的方法;循环的clomatic复杂度公制(CC);分层数低于一类和叶类深度水平。模式检测模块负责设计模式检测。这个组件是基于由gueheneuc和Antoniol实现了检测方法DeMIMA并本文档来自技高网
...

【技术保护点】
一种支持软件工程质量自动监测的新方法,其特征在于,该方法包括:提供了一种在源代码层面实时监控软件工程质量的方法,该系统从逻辑上划分为业务管理层和数据处理层:业务层(即前台管理端)和SVN直连,用web网页界面展示功能设置与选项,提供监控模式选择等功能;支撑层(即后台数据端)负责核心的逻辑处理,服务器与SVN并行,读取其数据并按前台设置进行处理。具体的监控方式有嗅探检测与模式匹配检测,而数据监测处理采用并行计算的处理方式。

【技术特征摘要】
1.一种支持软件工程质量自动监测的新方法,其特征在于,该方法包括: 提供了一种在源代码层面实时监控软件工程质量的方法,该系统从逻辑上划分为业务管理层和数据处理层: 业务层(即前台管理端)和SVN直连,用web网页界面展示功能设置与选项,提供监控模式选择等功能; 支撑层(即后台数据端)负责核心的逻辑处理,服务器与SVN并行,读取其数据并按前台设置进行处理。具体的监控方式有嗅探检测与模式匹配检测,而数据监测处理采用并行计算的处理方式。2.如权利要求1所述的方法,其特征在于,所述业务层的处理方法,具体包括: 业务层节点主要分为采集节点与决策结点; 根据采集到的源代码特征信息确定所述的决策结点做出处理方法。3.如权利要求1所述的方法,其特征在于,进行代码检测和代码分析的方法,包括特征采集、分析决策、指令执行的流程,以及决策选择、个性化配置的方法。4.如权利要求1所述的方法,其特征在于,支撑层对代码质量的监控机制建立在国际标准上,模式检测的组件是基于由gueheneuc和Antoniol实现的检测方法DeMIMA,并且由Kaczor等人实施的PTIDEJ。5.如权利要求1所述的方法,其特征在于,代码...

【专利技术属性】
技术研发人员:李荣王立进徐勤朱燕涛冯桂勇
申请(专利权)人:北京安码科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1