● 摘要
软件安全性是关于软件所控制的系统始终处于不危及人的生命财产和生态环境的安全状态的一种性质。软件本身并不会直接造成危害,而是由软件的错误导致其控制的设备(如飞机、轮船、航天器等)进入不安全状态,因此安全关键系统多为嵌入式系统。随着安全关键系统中软件的规模越来越大、软件承担的安全关键功能越来越多,软件失效可能引起的后果也越来越严重,因此在开发过程中对软件安全性进行分析,以避免引发安全问题。为此,相关领域制定了一系列相关标准(如DO178B/C等),以指导系统的安全性保障与评估过程。
安全性需求的确定与准确描述是确保软件安全的关键,而现阶段的研究无法提供一种有效、易于使用和严谨的安全性需求描述方法。文本描述方法易用,但是二义性较高,且无法自动分析和验证;形式化需求描述方法虽然可以精确的描述需求并支持自动化验证,但不易理解和描述,普通需求分析人员和开发人员难以熟练掌握和应用。RUCM是一种介于文本描述和形式化描述之间的用例建模方法,可有效地降低用例规约的二义性,且自动生成的分析模型能够有效提高后续设计与分析的质量,但是现有的RUCM无法对安全性等非功能性需求进行建模。
本文旨在提出一种简单、有效、低二义性和支持自动分析的安全性需求描述方法。首先从航空领域的安全性相关标准中提取安全性需求的概念与属性,并结合机载嵌入式实时系统的特点,对安全性需求进行建模。根据领域模型中识别的概念和关系,对RUCM进行扩展,添加相应的模板与限制规则,形成Safety RUCM,使其支持安全性需求的规范化描述。针对所建立的Safety RUCM,提出了自动构建两种安全性分析模型的方法:通过模型转换实现自动构建故障树模型和失效模式与失效影响分析模型,以支持进一步的安全性分析与验证。本文设计并实现了Safety RUCM Editor工具,支持对安全性需求的编辑与到分析模型的自动转换,并选取嵌入式系统典型案例对建模方法和工具进行验证和分析。