《论文_软件分析技术进展(定稿)》

《论文_软件分析技术进展(定稿)》

ID:43998610

大小:287.75 KB

页数:21页

时间:2019-10-17

《论文_软件分析技术进展(定稿)》_第1页
《论文_软件分析技术进展(定稿)》_第2页
《论文_软件分析技术进展(定稿)》_第3页
《论文_软件分析技术进展(定稿)》_第4页
《论文_软件分析技术进展(定稿)》_第5页
资源描述:

《《论文_软件分析技术进展(定稿)》》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、软件分析技术进展*梅宏「王千岸张即王酣1•北京大学信息科学技术学院,高可信软件教冇部重点实验室,北京1008712.国防科技人学计算机学院,并行与分布处理国防科技重点实验室,长沙410073摘要软件分析技术的研究已有较长历史,相关成果也在软件生命周期的不同阶段中得到了广泛应用。软件生命周期中不同活动所需耍的软件分析技术既不完全相同,乂有许多交叠,且不同的分析技术之间互相影响。文章在讨论了软件分析的基本概念Z后,主要从静态分析与动态分析两个方面介绍了一些主要的软件分析技术,以及部分相关分析工具。结合软件的质量问题,文章还探讨了一些分析技术与软件质量屈性的和

2、关性,以便于人们在分析特定的软件质量属性时,选取合适的技术与工具。垠后,文章展望了软件分析技术的发展趋势。关键词软件分析,静态分析,动态分析,软件质量中图法分类号TP3011.引言软件是一种十分特殊的人工制品:它是人类“智力活动”的产物,是对客观事物的虚拟反映,是知识的固化与凝练。尽管软件迄今己有50多年的发展历史,但目前人们对于软件的许多认识还十分有限。例如:对于任何一个给定的软件,我们能否完全了解它的特性?软件分析就是一个以软件特性为关注点的研究领域。“分析”,通俗來说,是以某种方式将复杂对彖分解为更小的部分,以更好地理解该对彖的过程。分析技术很早就

3、被应用于数学、逻辑等方面的研究,近代以来逐步被更多的学科(例如:化学、物理等)所大量釆用。软件作为一个新发展起來的学科,在研究过程中引入分析技术是十分自然的。目前软件生命周期中的许多活动(分析、设计、实现、测试、部署、维护等)都离不开分析技术。然而,软件分析的能力是有限的:对于任何一个有一定规模的软件,希望获得关于它的完备描述通常是不现实的[18

4、。特别是,对于口动分析而言,许多问题是不可判定的。其中最典型的例了是停机不可判定问题:不存在一个这样的算法,对于任意的图灵机以及任意的输入,可以判断该图灵机是否停机[64]。但从软件分析这么多年所取得的进展可以

5、看出,尽管软件分析的能力有限,它仍然是软件领域十分有用的技术:将程序从高级语言向机器语言的翻译过程需要分析,判断一个程序是否符合需求规约需要分析技术,想了解程序是否存在安全漏洞需要分析技术,维护过程更是需要人量的分析技术,等等。水资助项lh国家重点基础硏究发丿衣规划973项II(No.2009CB320703):国家门然科学基金委创新研究群体研究科学基金项11(No:60821003);国家863高技术项目(No.2006AA01Z175)本文将软件分析定义为“对软件进行人工或者自动分析,以验证、确认、或发现软件性质(或者规约、约束)的过程或活动"。下面

6、对上述定义屮儿个术语进行解释。首先是“软件”:软件最初主要是指程序,后來逐步扩大到文档等其它形态软件制品。软件分析也从程序分析发展到了更大的范围,例如:对文档(含需求规约、设计文档、代码注释等)的分析、对运行程序的分析,等等。“自动”也是很重要的概念:软件分析的历史儿乎与软件的历史一样长:自从有了软件就有了软件分析。最初的分析主要是人工进行的,但人工分析往往需要花费大量的时间与粘:力,因此,后來人们越來越多地关注自动分析。其屮,编译技术的发展大大带动了软件的口动分析技术,目前的许多分析技术都可以在编译技术中找到基本雏形。所谓“验证”(Verificati

7、on),是要回答“软件制品是否与软件需求规约一致”的问题,而“确认”(Validation)则要回答“软件的特性是否符合用户需求”的问题。在英文中,人们经常用“Dothethingright"來解释“验证”,而用"Dotherightthing"来解释“确认”。“发现”(Discover)是指在没有事先设定软件某个性质的前提下,通过分析发现软件的某种性质。之所以强调“性质”,是因为分析的结果通常表示为软件是否符合或者具有某种性质(或者规约、约束),而这种性质不是软件本身H明的。在本文讨论的软件分析屮,分析对象仅限于软件制品,不涉及对软件过程、软件人员与软

8、件组织等的分析。II前与软件分析相关的综述性文献中,多数只对软件分析的一个子集进行比较深入的介绍。例如[1]集中在对源代码分析的介绍,[2]主要介绍形式化的分析方法,[53]着重从语义的角度介绍程序分析,[54]集中在模型为屮心的程序分析上。本文在这些工作的基础Z上,尝试对软件分析涉及的主要方法进行尽可能全面的总结、分类。另外,考虑到近年來软件质呈为人们所热切关注,本文在介绍分析技术Z外,特別关注那些与质量相关的分析技术,并结合不同的软件质量属性,探讨不同的质量属性适合运川什么类型的分析技术。最后,文章结合软件形态、软件运行环境等儿个驱动力对软件分析技术

9、的发展趋势进行展望。2.软件分析技术软件分析通常是另外一个更大的软件生命周期活动

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。