软件工程之安全工程

当今软件是许多系统的核心组成部分,对于维护和维持生命至关重要。这就是安全关键软件系统,人们已经为安全关键软件系统工程开发了一系列专门的方法和技术。安全性是主要的可依赖性属性之一。如果系统在没有灾难性失效的情况下运行,即没有导致或可能导致人员伤亡的失效,则可以认为该系统是安全的。

安全关键系统中的软件在实现安全性方面发挥着双重作用。1、因为系统一般是由软件控制的,使得软件做出的决定和随后的行动都是安全关键的。2、软件广泛用于检查和监控系统中的其他安全关键构件,如果软件运行失效,其他构件可能会失效并导致事故的发生。

可靠的软件系统可能不安全。1、我们不能百分之百确信软件系统是无故障和能容错的。未发现的故障可能潜伏很长一段时间。2、需求规格说明可能是不完备的,因为它可能没有描述在一些关键时刻的必要的系统行为。很大一部分系统误操作来自于规格说明错误而非设计错误。3、硬件故障可能会导致传感器或执行器发生异常。4、系统的操作者给出的一些输入单独看来可能是正确的,但是在某些情形下可能导致系统故障发生。

安全关键软件分为两大类。1、主要的安全关键软件。2、次要安全关键软件。

安全关键系统的开发通过考虑可能发生的潜在系统事故,利用危险驱动技术:1、危险避免。2、危险检测和排除。3、限制损失。

安全性术语有:事故/意外、损失、危险、危险概率、危险严重性、风险。

系统安全性不仅依赖于好的工程过程,还需要在制定需求时关注一些细节,以及用来保证系统安全性的特殊的软件需求。安全性需求是功能需求,产生功能性安全需求的起始点通常是领域知识、安全标准和法规。安全需求首要的是保护性需求。它们可能明确说明系统应该被关闭,这样安全性才能的到保障。在所有的安全需求中,需要在安全性和功能性之间找到一个可接受的平衡来避免过度保护。在花费合理的前提下构建非常安全的系统才是有意义的。

基于风险的需求规格说明是在关键系统工程中使用的一种通用方法,该方法识别系统面临的风险,并避免或减轻这些已识别的风险。在危险驱动的安全规格说明中有四个活动。1、危险识别。2、危险评估(危险概率和可接受性)。3、危险分析(根本原因分析)。4、危险降低(安全需求)。

开发安全关键系统的流程基于软件可靠性工程。要把中心放在开发一个完整且非常详细的系统规格说明上。可靠性是安全关键系统的先决条件。安全系统必须可靠,但仅仅可靠还不够。安全关键系统开发流程应包含安全评审,即由工程师和系统利益相关者检查已经完成的工作,尤其注意可能影响系统安全的潜在问题。一个可依赖的过程通常包含以下活动需求管理、变更管理和配置控制、系统建模、评审以及审查、测试计划、测试覆盖分析。安全关键系统还需要额外的安全保证、软件验证以及系统分析过程。

安全保证是检查系统是否安全运行的一组活动。安全保证活动的实例包括:1、危险日志和监控。2、安全评审。3、安全认证。为了支持这些安全保证过程,应指定安全工程师,安全工程师和质量经理一起工作,确保使用一个详细的配置管理系统追踪所有安全相关文档,并使之与相关的技术文档同步。

形式化方法和形式化验证在关键软件系统的开发中扮演着重要的角色。形式化规格说明对发现规格说明中的问题十分有效,这些问题通常导致系统失效。形式化分析方法中最为成功的是模型检测。模型检测包括创建一个系统模型,并且使用特殊的软件工具检查模型的正确性。

安全和可依赖性案例搜集所有能表明系统安全和可靠的证据。当外部监管者在系统使用前对系统进行验证时需要用到安全案例。

b0bbe35abe4fbd7e8477541ad012b6a1.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值