软件工程课件03.关键系统

上传人:j****9 文档编号:54395925 上传时间:2018-09-12 格式:PPT 页数:46 大小:298.50KB
返回 下载 相关 举报
软件工程课件03.关键系统_第1页
第1页 / 共46页
软件工程课件03.关键系统_第2页
第2页 / 共46页
软件工程课件03.关键系统_第3页
第3页 / 共46页
软件工程课件03.关键系统_第4页
第4页 / 共46页
软件工程课件03.关键系统_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《软件工程课件03.关键系统》由会员分享,可在线阅读,更多相关《软件工程课件03.关键系统(46页珍藏版)》请在金锄头文库上搜索。

1、关键系统,Critical Systems,目标,说明什么是关键系统,即它的故障会对人或经济带来严重的后果。 说明可信度的四个方面,即可获性,可靠性,安全性和保密性。 了解为了达到可信,你需要避免失误、检查和排除差错以及减小系统失效造成的损害。,课题,一个简单的安全关键(safety-critical)系统 系统可信度(dependability) 可获性(availability)和可靠性(reliability) 安全性(safety) 保密性(security),关键系统,安全关键系统(Safety-critical) 系统失效会造成生命丧失、受伤或者是环境破坏; 例如化工厂保护系统 使

2、命关键系统(Mission-critical) 它的失效会导致某些针对目标的活动遇到障碍; 例如太空船导航系统; 业务关键系统(Business-critical) 它的失效会带来巨大的经济损失; 例如一个银行里的客户会计系统。,系统可信度,对关键系统来说,在一般情况下,可信度是最重要的系统性质; 一个系统的可信度反映了用户对系统的信任程度,用户的信任程度表现在对系统操作会按照预期进行以及对在正常使用情况下系统不会失误的两方面上; 可用和可信不是一码事,一个可用的系统不一定是可信的。,可信度的重要意义,用户会拒绝不可信的和不可靠的、不安全的或者是不保密的系统; 系统失效的成本可能会非常高; 不

3、可信的系统可能会造成信息丢失,随后要付一笔高昂的恢复成本。,关键系统的开发方法,关键系统失效的成本是如此之高,以至于不能使用其它类型系统所惯用的追求成本效益( cost-effective )的方法; 开发方法的例子 软件开发的形式化方法; 静态分析法; 外部质量保证。,社会-技术型的关键系统,硬件故障(Hardware failure) 由于设计或制造上的差错或者是部件已经到了它们的自然寿命的原因,使硬件出现失误。 软件失效(Software failure) 由于在规格说明、设计或实现中的差错造成软件失误。 操作失误(Operational failure) 人的操作出现错误。也许是目前系

4、统故障的一个最大的因素。,一个软件控制的胰岛素泵,由糖尿病患者(diabetics)使用,它能够模拟胰腺(pancreas)生产胰岛素(insulin)的功能,而胰岛素是转换血糖的重要激素; 采用一个微传感器来测量出血液中的葡萄糖(glucose) ,并算出转化成葡萄糖所需要的胰岛素剂量。,胰岛素泵的结构组织,胰岛素泵的数据流,胰岛素泵的可信度需求,当需要系统提供胰岛素的时候,系统应当提供得上; 系统的运行必须是可靠的,它必须提供正确的胰岛素剂量来中和现在的血糖水平; 基本的安全要求是千万不能注入过量的胰岛素,因为这会潜在地威胁到生命。,可信度(Dependability),也就是系统的可信程

5、度; 一个可信的系统就是一个被它的用户信任的系统; 可信度的范围是: 可获性(Availability); 可靠性(Reliability); 安全性(Safety); 保密性(Security)。,可信度的范围(Dimensions),其它可信度性质,可修复性(repairability) 反映系统在一次失效事件中可以修复的程度。 可维护性(maintainability) 反映系统对新需求的适应程度。 可存活性(survivability) 反映系统在受到敌对方攻击的同时还能提供服务的程度。 差错容忍度(error tolerance) 反映系统能够避免和容忍用户输入差错的程度。,可维护性

6、(Maintainability),它是一个涉及到系统修复的容易程度系统属性, 一般是在发现一个故障之后或者是在改变系统增加新特性的时候; 它对关键系统很重要,因为维护问题的时候常常会把失误带入到一个系统中; 可维护性与可信度的其它方面有区别,它是静态的而不是动态的系统属性。,可存活性(Survivability),指在面对有意或无意的攻击下,一个系统具有的向用户持续交付它的服务的能力; 它是一个越来越重要的属性,因为保密性危及到分布系统的安全性; 可存活性含有可恢复的概念,即指不管一个系统的组件是否失效,它都有继续运行的能力。,可信度与系统性能,不可信的系统可能会被它的用户拒绝; 不可信的系

7、统可能会损失有价值的信息; 有时可以用可信度来补偿性能上的缺憾; 系统失效成本可能非常高,可信度是首要的; 然而,调整系统使其更加可信是很难的。,可信度成本,当增加可信度要求的水平的时候,成本一般会指数式地增长。 有两个原因: 为了达到所需要的更高可信度,采用更加昂贵的开发技术和硬件; 为了使客户相信系统已经达到了所要求的可信度水准,增加测试和系统验证。,增加可信度的成本,可信度经济学,由于实现可信度的成本很高,也许接受不可信的系统并负担失效费用会更合算一些; 然而,这取决于社会和政治因素。一个不可信产品的声誉可能会失去未来的业务; 与系统类型有关,对业务系统而言,在特定情况下,一般的可信程度

8、可能就足够了。,可获性和可靠性,可靠性 针对给定的某个环境和某种目的,系统在一段指定时间内运行不失效的可能性。 可获性 一个系统在某个时间点上,能够运行并交付所需服务的可能性。 这两个属性都可进行定量表示,可获性和可靠性,有时候可能把系统可获性包含在可靠性之下; 显然,如果一个系统不可获,它就不能交付指定的系统服务 然而,可能有一些系统可靠性低但又是可获的,只要系统失效可以很快修复又不损害数据,低可靠性也就不成问题; 可获性要考虑修复时间,可靠性术语,系统失效(system failure) 系统在某些时间点不能提供用户所期望的服务。 系统差错(system error) 系统的行为出乎系统用

9、户的预料之外,系统处在一种错误的状态上。 系统失误(system fault) 它是一个软件系统的某种特性,它可以引起一个系统差错。例如在使用未初始化的变量时,得到的数值是不正确的。 人为过失或错误(Human error or mistake) 由于人的行为把引发的失误带入一个系统中,失误和失效,失效常常是系统差错的结果,这些差错来源于系统失误; 然而,失误不一定会导致系统差错; 失误系统状态可能是暂时的,它在一个差错引起之前就被“纠正”了 差错也不一定会引起系统失效 通过内置的差错检查和恢复机制可以纠正差错; 通过内置的保护工具可以避免失效。例如,这些工具在系统出现差错时保护系统资源。,对

10、可靠性的理解(Perceptions),可靠性的形式定义常常不能代表用户对系统可靠性的理解; 对系统的将要使用的环境的假设可能不正确; 一个系统在一个办公环境的用法与它在一个大学环境的用法有可能完全不一样 系统失效的结果会影响对可靠性的理解 一辆小轿车挡风玻璃上的雨刷不好用,可能与一个干燥的气候毫不相干; 用户更看重那些具有严重后果的失效(例如一辆小车的引擎失效),而不是那些仅造成不便的失效。,可靠性的实现(achievement),避免失误(Fault avoidance) 通过采用开发技术可以把出错的机会降到最低,或者是在系统失误引发之前诱捕到错误。 失误检测和排除(detection a

11、nd removal) 在系统服役之前,采用检查和验证技术来提高检测和排除差错的机会。 失误容忍度(Fault tolerance) 采用运行时间技术来确保系统失误不会导致系统差错,并且(或者是)确保系统差错不会引起系统失效。,可靠性建模(modelling),你可以给一个系统建立一个输入-输出映射模型,其中的一部分输入是将会引起差错的输出; 系统可靠性就是在一组输入中的某些特殊部分出现的概率,这些特殊输入将会造成有差错的输出; 不同人用不同的方式使用系统,因此这个概率不是一个静态的系统属性,它与系统环境有关。,输入/输出映射,对可靠性的感觉,可靠性改善,在一个系统中排除了百分之X的失误并不等

12、于说系统的可靠性就改善了百分之X 。IBM的一项研究表明排除60%的产品缺陷可使系统可靠性改善3%; 程序缺陷可能很少在执行的那部分代码中出现,因此它们也许永远不会被用户看到。排除这些缺陷对已经感受到可靠性不会有效果; 所以,就算知道一个程序有失误,用户看它还是可靠的。,安全性,安全性是一种系统性质,它反映了系统无论是在正常或非正常的情况下都可以运行,既不会有人员受伤或死亡的危险,也不会损害到系统环境; 随着越来越多的用软件控制的设备联成一体,对软件安全性的考虑也就越来越重要; 安全性是最高级的要求,也就是说除了指定的所需系统服务之外,不符合要求的都要排除在外。,安全性的重要程度,一级安全关键

13、系统(safety-critical systems) 例如嵌入式软件系统,它的失效可以引起相关的硬件失败,并可能直接威胁到人。 二级安全关键系统 它的失效导致其它系统的失误并由此威胁到人。 在这里主要讨论一级安全关键系统,安全性和可靠性,安全性和可靠性既相互联系又有区别 总体看,可靠性和可获性是必要的,但不是系统安全的充分条件; 可靠性与一个给定的规格说明和交付服务的符合程度有关; 安全性涉及到的问题是无论是否符合规格说明都要确保系统不会招致损害。,不安全的可靠系统,规格说明差错(Specification errors) 如果一个系统的规格说明是不正确的,那么,尽管系统按照规范运行,它还会

14、产生某个意外; 硬件失效造成的伪输入(spurious inputs) 它在规格说明中难以预料 对上下文敏感的命令,也就是说命令是正确的,但它下达的时间是错误的 常常由操作员的过失引起,安全性术语,意外或事故(accident or mishap) 一个出乎预料的事件或事件的结果,它会造成人员受伤或死亡、对财产或对环境的伤害; 危险(hazard) 一种可以招致意外的潜在条件。例如在一台机器前检测障碍物传感器发生故障就是一种危险; 损害(damage) 是对一次事故造成的损失量度。它的范围大到有一次事故导致的许多人的死亡,小至轻伤或财产损害。 危险严重程度(hazard severity) 是

15、对一个危险可能产生的最坏损害情况的一种评估。危险严重程度的范围可以从造成许多人员死亡的灾难到只有一点轻伤的后果。 危险几率(hazard probability) 一种危险发生的可能性。几率值可以随意选取,范围从可能(probable)到不可能(implausible)。 风险(risk) 是对系统产生一次意外的可能性量度。风险评估要考虑到危险几率,危险严重程度,以及一个危险导致一个意外的可能性,安全性实现,危险规避(Hazard avoidance) 对系统进行设计使某类危险根本不会发生。 危险检测及排除(detection and removal) 设计系统使得在意外产生之前就能检测到危险

16、并把它们排除掉。 损害限制(Damage limitation) 让系统具有保护的能力使某个意外引起的损害降到最低,常见意外,复杂系统的意外很少是由一个原因引起的,同样地,这些系统就要设计得有弹性,不仅在某个简单的失效点上 设计系统使得一个简单的失效点不会引起一个意外,这是系统安全性设计的一个基本原则 几乎所有的意外都是故障组合造成的结果; 预测所有问题的组合情况简直是不可能,尤其是在由软件控制的系统中做不到,因此要达到十分安全也是不可能的。,保密性,一个系统的保密性是一种系统性质,它反映了系统自我保护的能力,无论对有意还是无意的外部攻击都是如此; 保密性日益重要,因为系统通过网络连接在一起以

17、至于通过因特网就可以从外部访问到系统; 对可获性,可靠性和安全性而言,保密性是一个重要的和必不可少的前提条件。,极为重要的保密性,如果一个系统是一个网络系统而且是不保密的,那么就谈不上它的可靠性和安全性; 这些道理对操作系统是如此,对开发系统也是一样。而且,闯入者可以改变操作系统或者它的数据; 在此情况下,可靠性和安全性保证不再有效。,保密性术语,暴露(exposure) 一个计算系统的可能损失或损坏。可能是数据受损害,也可能是在一次严重的破坏之后需要进行恢复所损失的时间和人力。 弱点(vulnerability) 一个计算机系统的弱点,它可能被利用来造成损失或伤害。 攻击(attack) 针对一个系统的弱点发出一次行动。通常来自于系统外部,并且是一种蓄意破坏。 威胁(threats) 是可能产生潜在的损失和伤害的情况。可以把一个系统易受攻击的弱点看作如此。 控制(control) 削弱一个系统弱点的一种防护措施。加密(encryption)就是一个控制的例子,它使访问控制差的系统的弱点得到巩固。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号