武延华 薛小平 王小平
(同济大学电子与信息工程学院,201804,上海∥第一作者,硕士研究生)
近年来,软件越来越多被应用在安全苛求(Safety-Critical)、任务苛求(Mission-Critical)等领域,如航空航天、轨道交通、核工业等。但苛求系统需求增长在一定程度上超出了构建和维护这类系统的能力发展,因软件失效造成关键任务失败和生命财产损失的案例屡有报道[1-3],软件可靠性受到了广泛关注。软件可靠性定义为系统在给定时间和条件下完成其规定任务的能力,当系统正常工作时(即可靠时)是安全的,即可靠性蕴含安全性。为描述方便,本文中提及可靠性时,同时也包含了安全性。
软件开发活动极其复杂,在整个生命周期中把握软件可靠性本质更为困难。受包括项目预算、开发周期、团队管理水平、程序员能力经验、商业软件模块、软件运行环境等在内的多种因素影响,容易在不经意的情况下引入错误。
目前,保障软件可靠性的方法很多,如N版本编程、恢复块以及形式化方法等在软件开发不同阶段较为有效地保证了可靠性。本文试图从瀑布式开发模型的角度,讨论苛求系统中的软件可靠性方法、技术和模型,包括需求形式化建模、多版本软件容错、函数式程序设计及可靠度评估模型。
需求形式化建模虽然可有效提高软件规格的质量,但非形式化描述与形式化模型间的语义一致性及对其验证的可行性、可信性等仍是难题。因语义扭曲导致的规格错误可能会带来系统失效风险;……