针对敏捷开发过程的源代码分析策略及技术实现-lvting

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

针对敏捷开发过程的源代码分析策略及技术实现摘要:本文介绍了敏捷开发的概念,源代码分析的概念,源代码分析工具的发展历程以及敏捷开发过程中源代码分析策略及技术实现。关键字:敏捷开发源代码分析源代码分析工具Abstract:thispaperintroducedconceptsofsourcecoding,analysistools’developmentofsourcecoding,analysisstrategyandtechnicalimplementationofagiledevelopment.引言在过去的十年中,软件企业寻找、试用各种方法来改进敏捷开发环境。本文意在推荐源代码分析技术,介绍其如何改进敏捷开发的过程,如何提升敏捷开发团队的工作能力。一、敏捷开发概述敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。与传统的瀑布式开发方法相比,敏捷开发在软件开发过程中持续跟踪需求,在外部条件发生变化时,能及时对软件的需求和功能进行调成;以确保最终开发的软件在确保技术要求的同时,真正满足最终用户的需求。敏捷开发与建立基于一系列的原则,本文重点讨论其中最重要的一条:无缺陷代码是保证敏捷开发顺利进行的必要条件。敏捷开发非常强调阶段内的缺陷控制,以保证能迅速识别并纠正所有潜在的软件错误,使开发团队能顺利的进入每一个迭代周期,最终确保产品功能完整、运行正常。二、源代码分析概述源代码分析是一种不需要测试用例、完全自动化并且能适应敏捷开发过程各个重要阶段的缺陷检测解决方案。它帮助开发人员减少代码中的缺陷数量,大大降低了开发成本。源代码分析的基础是新一代的静态分析,其特点是:能提供更有价值的的分析结果,从而定位和描述软件代码中存在的缺陷(包括内存及资源管理缺陷、程序数据管理、缓冲区溢出、存在安全漏洞的代码、并发异常、未经验证的用户输入等等)。与传统的动态分析不同,源代码分析在软件的构建期完成,有针对的分析有问题的程序或模块的源代码,结果可覆盖所有的执行路径。三、源代码分析工具的发展历程3.1第一代源代码分析工具第一代源代码分析工具主要是指代码开发人员的桌面工具,使用对象主要是开发人员。它与编译、链接过程紧密连结,在开发人员准备处理编译器报出的错误时,提供更多的警告。第一代源代码分析工具集中针对编程风格、常见语法错误等简单的缺陷。在缺少整个系统的全面信息时,由于编程语言语句模糊,分析工具时常产生误报。一般情况下,开发人员只能接触很小一部分的代码,无法得到代码的完成信息。分析工具不得不对开发人员沙盒之外的信息作出评估或进行处理,但多数情况下估计并不正确。3.2第二代源代码分析工具第二代源代码分析工具主要是集中式分析工具。第二代源代码分析方法对第一代源代码分析工具的主要功能进行了扩展,包括跨过程的流控制,数据流分析,消除错误路径的新算法,估计变量赋值及模拟可能的运行态特性等复杂的分析方法。这种分析方法主要依赖于对整个代码流的集中视图,分析结果准确,在误报率方面有极大的改善。采用这种分析方法的工具必须集中分析,给出这个代码未经过滤的视图。于是,分析工作从开发人员的个人分析,调整到了后续过程中进行集中分析,通常是作为测试或源代码审查前,工作的一部分。很容易发现,这时的源代码分析在软件的实现过程中以相对较晚,发现缺陷和错误的成本都会增加,同时还需要进行复杂的缺陷管理。由于第二代源代码分析技术的重点是放在分析技术的有效性,而不是以过程改进为目标,因此用在开发后期。但集成构建阶段的分析取消了开发人员的分析工作,隔离了开发人员与分析工具、分析结果的关系。3.3第三代源代码分析工具第三代源代码分析工具分布式系统分析工具。第三代源代码分析技术保留了第一代和第二代分析技术的优点。允许开发人员控制分析过程,可以让开发人员在他们所熟悉的开发环境上进行本地分析,可以达到集成、验证阶段分析效果的开发人员桌面源代码分析工具。分布式应用保留集中式分析的准确性。可以获得与在集成、验证阶段时做同样分析时的一致性和分析精准度,无需像第二代分析方法一样,开展后期检查。四、源代码分析在敏捷开发中的技术实现实例:KlocworkInsight新一代的源代码分析工具让开发人员可以控制分析的过程,在无需后续审查的情况下即可达到集中式分析的效果。以下就已源代码分析工具中的领先产品Klocworkinsight为例,介绍一下源代码分析在敏捷开发中的技术实现。4.1联机桌面分析Klocworkinsight能与用户开发环境集成进行联机桌面分析,也可以在系统构建级集成。开发人员通过联机桌面可以方便、快捷的进行本地源代码分析,收集全局信息用于提高分析准确度。联机桌面分析功能还为开发人员提供协同清除缺陷功能,确保同一个缺陷不会被重复处理,同时提供代码流中越陷的同步更新,开发团队中的所有成员均可共享更新。通过联机桌面分析了解系统的全局信息,降低了误报率,提高了敏捷团队的工作效率,同时降低了开发成本。KlocworkInsight联机桌面效果图4.2软件度量和报告KlocworkInsight提供100多种度量方式,包括:McCabe复杂度、Halstead程序度量、代码行数、继承数、循环数等各种基本度量。这些代码度量可以直接从软件代码计算中得到。在缺陷还未扩散到代码流之前,KlocworkInsight的度量功能可在桌面自动汇总已发现和已修复的缺陷信息。敏捷团队通过这些信息可以在代码提交前进行缺陷控制,并行成自底向上的缺陷清除效果图。KlocworkInsight自动生成全面的报告,便于敏捷团队实时监控集成构建情况,跟踪各个开发桌面的缺陷修率。KlocworkInsight软件度量和报告示意图4.3重构重构是指在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性,达到简化设计和操作的目的;属于敏捷技术的一种。KlocworkInsight支持重构,提供源代码图形化的表示法,显示构成系统的组件、块、子块以及它们之间的关联和依赖关系。开发人员可以通过“假设”分析和重构代码,构造出可维护性更好、可重用性更高、复杂度更低的系统。KlocworkInsight源代码图形化的表示法示意图4.4总结源代码分析工具有助于编写出更高质量的代码。这类工具提供一种自动化的方法,在开发人员的桌面环境就可以发现大量的软件缺陷和安全漏洞,大大提高了敏捷开发的效率,降低了修复代码的成本。同时开发人员可以将更多的精力投入到代码的编写中,而测试团队则可集中精力进行软件功能测试,而非将大量时间花费在查找琐碎的代码缺陷并进行反复的测试。

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功