软件工程之可依赖性

在软件工程中面临的最大挑战是确保我们可以信任系统。信任一个系统,就是说我们必须有信心当需要的时候系统会是可用的并且按照期望的方式运行。系统必须保证信息安全,从而使我们的计算机数据不会受到威胁,并且系统必须在发生失效或受到网络攻击时迅速恢复。

可依赖性和信息安全包括可靠性、可用性、安全性、信息安全、韧性。构造信息安全并且可依赖的系统不仅仅是一个技术问题,冗余和多样性两个基本机制可用于创建可靠的以及信息安全的系统。

越开越多的系统都是安全关键系统,其中系统失效会危及到人。安全性是一个比可靠性更广泛的概念,需要提出系统安全需求。

随着计算机系统已经深入到我们的业务和个人生活当中,系统与软件的失效所带来的问题也在增加。因为软件密集型系统对于政府、公司和个人都如此重要,所以广泛使用的软件必须是可依赖的。我们应该感到软件系统是足够可靠的。

系统的可依赖性通常比它们的具体功能更重要。1、系统失效影响到很多人。2、用户经常拒绝不可靠、不安全或信息安全有问题的系统。3、系统失效的代价是巨大的。4、可依赖性差的系统可能导致信息丢失。

设计一个可依赖的系统时需要考虑:1、硬件失效。2、软件失效。3、操作失效。对于开发可靠的、软件密集型系统的设计者来说尤其重要的是,要有整体的社会技术系统观,不能只注意系统的某个局部。

计算机系统的可依赖性是衡量其可信赖度的性能指标。可信赖度表现为用户对系统的信任程度,系统是否按照他们预期的那样操作以及系统是否会在正常使用中失效。可依赖性包含5个维度:1、可用性。2、可靠性。3、安全性。4、信息安全性。5、韧性。

以下属性与5个可依赖性属性密切相关,影响系统的可依赖性。1、可维修性。2、可维护性。3、容错。

软件工程不是一个孤立的活动,而是一个更一般的系统工程过程中的固有组成部分。软件系统不是独立的系统,更多的是包含人、社会或组织目的的更广泛的社会技术系统的基本成分。

社会技术系统实在太过于复杂,以至于我们无法从整体上直接理解他们,以下7个层次组成了社会技术系统的实践。1、设备层。2、操作系统层。3、通信和数据管理层。4、应用系统层。5、业务过程层。6、组织层。6、社会层。

规章和守约适用于整个社会技术系统。保护系统必须有一个安全条例,证明软件将正常运行。

实现和提高可依赖性的策略依赖于冗余和多样性。多样性和冗余可用于可依赖性软件开发过程的设计。

可依赖软件过程是用来开发可依赖软件的软件过程。如果要最小化系统中的·故障,过程必须被明确定义并且是可重现的。可依赖过程的属性:1、可审计性。2、多样性。3、可文档化。4、鲁棒性。5、标准化。

在一个可依赖的过程中包含从需求定义到系统实现的所有阶段的验证和确认活动:1、需求评审。2、需求管理。3、形式化规格说明。4、系统建模。5、设计和程序审查。6、静态分析。7、测试规划和管理。

使用形式化方法来进行软件开发,是基于数学的软件开发方法,其中需定义软件的形式化模型。接着可以形式化地分析这些模型来找到错误和不一致的地方,从而证明程序与模型一致。形式化方法可以产生“无错误”的系统。软件工程的形式化方法对于发现或避免以下两类软件表示的错误是有效的:1、规格说明和设计中的错误和遗漏。2、规格说明和程序间的不一致。然而,出于对这种方法的成本效益的担心,形式化方法在工业中的使用有限。

d0641c384fdb7b2f74007e06b3c65e59.jpeg

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值