软件规格挖掘:技术与应用
1. 引言
软件在我们的日常生活中无处不在,从大型操作系统到小型嵌入式系统(如自动售货机),我们频繁地与各种软件进行交互。降低软件相关成本、确保软件的正确性和可靠性是值得追求的目标。然而,由于许多软件项目面临着短时间上市的要求,文档化的软件规格往往缺失、不完整或过时,这给理解现有软件系统带来了困难。程序理解在总软件成本中占比颇高,同时,程序员在编写形式化规格方面的不情愿和困难也阻碍了自动程序验证工具的广泛应用。
软件规格挖掘是解决上述问题的一种有前景的方法,它可以从程序执行轨迹中自动提取软件规格,为程序员理解现有程序提供候选规格,还可以将规格输入到程序验证工具中,并转换为运行时测试,以辅助程序验证和错误检测。
2. 背景
2.1 软件维护与程序理解
与许多其他工程项目不同,软件在其生命周期中经常发生变化,这种对软件进行更改(如修复错误、添加功能等)的过程称为软件维护。在维护过程中,需要理解待更改的软件的当前版本,这一过程称为程序理解。程序理解估计占软件维护工作量的 50%,而软件维护又估计占总软件成本的 90%。考虑到 2007 年第二季度软件组件对美国 GDP 的 2160 亿美元贡献,与程序理解相关的成本可能高达数十亿美元。文档化软件规格的缺失、不完整或过时是导致这一问题的根本原因之一。
2.2 软件可靠性与规格挖掘
软件可靠性是一个备受关注的目标,确保软件始终正确运行并识别错误是与可靠性相关的两项主要活动。不正确的软件可能导致数十亿美元的损失甚至人员伤亡。虽然存在用于程序验证的工具,但程序员在编写形式化规格方面的困难阻碍了这些工具在行业中的广泛应用。软件规格
超级会员免费看
订阅专栏 解锁全文
7498

被折叠的 条评论
为什么被折叠?



