关闭窗口
首页
厅长之窗 李春燕 李江河 赖厚明 吴海平 熊远国 唐国栋
机构设置及职能 厅办公室 综合规划处 科学技术处 无线电管理处 信息化推进处 网络及通信管理处 机关党委(人事处) 纪检组(监察室) 机关后勤服务中心
工作动态 综合动态 电子信息产品制造业动态 软件业动态 无线电管理动态 信息化推进动态
公告公示 公告 无线电管理公告 电子信息产品制造业公告 软件业公告 信息化推进公告
领导讲话 部省领导讲话 厅领导讲话 李春燕 李江河 赖厚明 吴海平 熊远国 唐国栋 年度工作报告 其他
政府文件 赣信人 赣信字 赣信综 赣信科 赣信无 赣信信 赣信监 <赣信发 赣信厅办 赣信党字
工作简报 信息产业厅大事记 厅简报 专项工作简报 专项工作简报 政务双评 保持共产党先进性教育 惩治商业腐败
政策法规 法律 行政法规 部门规章 地方性法规 省政府规章 无线电管理专门法律法规 规范性文件 法律法规 频率台站管理规定 设备管理规定 收费规定 规章制度
统计信息 全国通信行业运行情况 我省电子信息产业经济运行情况 我省软件产业经济运行情况 我省无线电台登记情况
人事教育 人才招聘 人事教育 文件选编 文件选编
纪检监察 工作部署 党纪法规 动态信息 警示教育
规划部署 电子信息产品制造业规划部署 软件业规划部署 无线电管理规划部署 信息化规划部署
产业动态 电子信息产品制造业动态 软件业动态 信息化推进动态 无线电管理业动态
知识园地 电子信息产品制造业知识 软件业知识 信息化知识 无线电知识
频道首页
政务公开指南
行政执法目录
办事项目 综合规划处 科学技术处 信息化推进处 无线电管理处
相关法规文件
办结通知
行政处罚
收费标准
数据库查询
频道首页
厅长信箱
行政投诉中心
信访、纠风热线
纪检举报
便民服务
常见问题 办公室 综合规划处 科学技术处 无线电管理处 信息化推进处 人事处 省无线电监测站 其他问题
民意调查
便民服务
数据库查询
网站群导航 网站全目录 繁體 简体 收藏本页 设为首页 电子信息产品制造业 软件业 无线电管理 信息化推进
 您现在的位置: 江西信息产业厅 >> 政务公开 >> 产业动态 >> 电子信息产品制造业动态 >> 产业发展 >> 文章正文
  静态分析工具日益强大,可在产品开发早期发现缺陷 打印此文【字体:
静态分析工具日益强大,可在产品开发早期发现缺陷
作者:佚名    文章来源:电子工程专辑    点击数:    更新时间:2008-5-5
 
最新发布的产品正在将这些工具的作用向开发流程的早期阶段推进,以便帮助开发者在软件错误蔓延前的更早期将其检测出来。Klocwork公司的Insight和GrammaTech公司的CodeSonar Enterprise都能满足开发人员的需要,即使在许多代码段还缺失的情况下也能发挥作用。

软件开发人员通常采用两种工具来自动检测他们代码中的错误。一种是动态分析工具,可以在代码执行过程中查看代码;另一种是静态分析工具,通过算法检查代码的错误。这两种工具各有优缺点。

动态分析擅长于发现运行时错误,如资源泄漏和动态存储讹误。开发人员可信赖动态分析工具所报告的任何错误都是真实的,因为这些错误是在实际代码执行期间被发现的。

但为了高效地使用动态分析,代码必须被全面执行,因此需要使用测试案例。这样,动态分析工具在寻找错误方面的效率就取决于测试案例的质量。另外,由于动态分析工具是与运行软件一起工作的,因此只能在开发过程的晚期阶段起作用,此时代码已经完全编好并首次被整合。

静态分析工具使用算法技术检查源代码中的错误,并标明问题区域,以便编程人员做更详细的检查。这种算法方式无需使用测试案例,算法本身决定了分析工具发现错误的效率。不过,这种方法存在识别失误的可能性:有可能标记为错误的代码事实上是可以正确执行的。如果它们产生太多的错误时别,用工具供应商术语而言就是低“准确性”,静态工具就会影响用户开展后续工作,并有可能掩盖真正的错误。

这两种工具呈互补的关系,各自都擅长于发现对方很难发现的错误,但动态分析工具似乎在开发人员中更加普及。部分原因是早期的静态分析工具更像是开发人员用来寻找相对简单的编码和格式错误的语法检查器。

然而在过去十几年中,随着研究人员开发出更加高效的算法,静态分析工具变得越来越强大。它们已经能够识别出大量的微小错误(见表1),其中有许多错误只在抢先多任务环境中的任务交织期间表现为执行问题。

表1:可被静态源代码分析工具发现的典型错误。
表1:可被静态源代码分析工具发现的典型错误。

上述新的静态分析工具额外的好处之一是:它们拥有增强的能力,可以发现代码中有可能被恶意用户用来突破安全防护的缺陷。开发人员很容易低估软件安全缺陷,因为他们只是指望代码能正常执行。静态分析工具的算法没有预期性,只是一种规程,因此会不带偏见地识别潜在的问题。

向开发早期推进

直到最近,静态源代码分析工具还只是用于开发过程的晚期,即开发人员能够完整访问所有代码段的综合构建阶段。然而许多新推出的工具,包括Klocwork公司的Insight和GrammaTech公司的CodeSonar Enterprise,都已经通过性能的增强使得开发者在代码编写的过程中使用这种静态分析工具。

这种新一代静态源代码分析工具利用企业级软件开发环境,整合了从事同一项目不同部分的开发团队的成果(见图1)。通过实现代码段分析扫描方面信息的对等交换,这种工具可以收集到精确检测错误所需的范围更广的语境。

图1:新的静态源代码分析工具可以通过收集中心数据库中个别代码段的数据、建立系统性观点来最大化效率。
图1:新的静态源代码分析工具可以通过收集中心数据库中个别代码段的数据、建立系统性观点来最大化效率。

这种更广范围的语境,再加上为遗失的代码自动建模,就可以帮助开发人员快速建立有效可靠的代码检查基础,即使当时项目还没有全部完成。在这个阶段捕捉到的错误比开发过程晚期的错误更容易修正,代价也较低。另外,较早捕捉错误可以防止这些错误在系统中扩散进而影响后期开发的代码行为。

然而,在早期使用这种静态分析有个前提,即充分理解局部查看代码所引起的局限性。“重要的是记住在软件开发的早期阶段,工具是不够精确的,并可能忽略了程序间的影响。”GrammaTech公司工程副总裁Paul Anderson提醒道。

但Anderson补充道,随着被分析代码规模的增长,结果将有所改善。经常较早地使用静态分析工具,还有助于培养开发人员发现他们个人编码风格的缺点,并改变他们的编程方式以便防止重复发生相同类型的错误。

由于这种新一代工具被整个项目开发团队所使用,他们可以记录分析结果的变化规律,从而帮助识别新的问题。例如Klocwork公司的Insight可以保存每次分析过程产生的数据,从而让开发人员在整个开发过程中跟踪标示出的错误,该公司首席技术官Gwyn Fisher表示。

该工具还允许授权的高级开发人员将错误标示为伪错误或不相关错误,Fisher补充道,这样,在随后的分析操作中就不会再报告它们。这将有助于开发人员集中精力处理真正的错误,并使任何新引入的错误更加明显,或者在交互代码部分被一起分析时发生的错误更加突出。

何时采用静态工具?

在开发过程中要多么早和多么频繁地使用静态代码分析工具?这取决于具体的项目情况。“不同团队可以接受不同等级的伪错误。”GrammaTech公司的Anderson表示,“安全性非常关键的项目可能容忍10:1的假:真错误报告率,而其它项目50:50的比率就有问题,因为跟踪伪错误非常浪费时间。”

Klocwork公司的Fisher指出,“有些用户可能从第一天就开始使用分析工具,此时工具的作用表现的相对较弱,他们能够容忍过多的伪错误。其它用户则宁愿等待架构全部开发好再使用工具,即使那时缺陷密度会比较高。”

最后,项目组必须自己决定如何平衡在开发过程早期发现伪错误的成本和在开发过程晚期发现和修正错误的成本之间的关系。但无论如何要选用静态分析工具,因为这些工具已被事实证明在发现代码缺陷和安全弱点方面具有极高的价值。既然这些工具已经交付到开发人员手中,缺陷可以被尽早发现,那么静态源代码分析工具也将有助于降低开发成本。


Richard A. Quinnell 特约技术编辑

文章录入:高琨    责任编辑:高琨 


相关文章:
十年发展结出硕果,圣景微电子向全球第三大IC反向分析服务提供商进军
印度计划拍卖3G牌照 分析称4.72亿起价过高
高盛分析师:Verizon获无线信道牌照风险极大
分析师称WiMax专利费并不便宜 最高达7.7%
应对RoHS指令,分析生化展全情演绎绿色电子生产方案
国内分析仪器市场占有率从13%提高到了50%
分析协同软件是否将替代OA系统
从黑客常用的攻击手段分析WEB防护
分析师称贿赂用户进行搜索有损声名
分析微软Vista市场失败的五大理由
分析:针对个人用户DDoS自杀式攻击
深入分析Windows操作系统死机问题
分析系统漏洞 认识黑客入侵手法
Windows死机重启问题软件分析汇总
同花顺2008 你的股票行情分析专家
分析称微软仍会收购雅虎 总价达530亿美元
分析师称百度股价将涨至400美元
分析:无线网络速率究竟有多快?
在Vista系统下添加静态 ARP 记录
分析人士认为 Vista表现不及格
  • 上一篇文章:

  • 下一篇文章:
  • 政务公开的内容
    服务承诺
    监督检查
    政务详细指南
    行政执法主体
    行政执法依据目录
    政务详细指南
    无线电频率指配
    无线电台(站)设置审批
    船舶、机车、航空器上的制式无线电台(站)强制备案
    无线电台(站)呼号指配
    无线电发射设备进关核准
    建立卫星通信网和设置卫星地球站审批
    无线电发射设备型号初审
    卫星电视广播地面接收设备的定点生产许可的初审
    申请军工电子装备科研生产许可证的推荐
    计算机信息系统集成资质认定的初审
    信息系统工程监理资质认证
    信息系统工程监理工程师资质认定的初审
    作弊录音
    执业资格考试(认定)合…
    2008年上半年软考系统分…
    2008年上半年软考信息系…
    2008年上半年软考信息系…
    2008年上半年软考信息系…
    2008年上半年软考网络工…
    2008年上半年软考数据库…
    2008年上半年软考软件设…
    2008年上半年软考软件评…
    关于我厅 | About Jxdii | 法律声明 | 个人隐私声明 | 网站帮助 | 网站地图 | 电子邮局 | 个性化订阅 | 问卷调查 | 旧版网站回顾

    Copy-right © 2000 - 2009 JXDII GOV.All Rights Reserved

    主办单位:江西省信息产业厅 地址:江西省政府大院北二路102号 邮编:330046 联系电邮:master@jxdii.gov.cn
    赣洪备2-4-3-0856214