软件可靠性设计与分析.doc

软件可靠性设计与分析.doc

ID:58066281

大小:359.00 KB

页数:24页

时间:2020-04-10

软件可靠性设计与分析.doc_第1页
软件可靠性设计与分析.doc_第2页
软件可靠性设计与分析.doc_第3页
软件可靠性设计与分析.doc_第4页
软件可靠性设计与分析.doc_第5页
资源描述:

《软件可靠性设计与分析.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、软件可靠性分析与设计软件可靠性分析与设计软件可靠性分析与设计的原因•软件在使用中发生失效(不可靠会导致任务的失败,甚至导致灾难性的后果。因此,应在软件设计过程中,对可能发生的失效进行分析,采取必要的措施避免将引起失效的缺陷引入软件,为失效纠正措施的制定提供依据,同时为避免类似问题的发生提供借鉴。•这些工作将会大大提高使用中软件的可靠性,减少由于软件失效带来的各种损失。Myers设计原则Myers专家提出了在可靠性设计中必须遵循的两个原则:•控制程序的复杂程度–使系统中的各个模块具有最大的独立性–使程序具有合理的层次结构–当模块或单元之间的相互作用无法避免时,务必使其联

2、系尽量简单,以防止在模块和单元之间产生未知的边际效应•是与用户保持紧密联系软件可靠性设计•软件可靠性设计的实质是在常规的软件设计中,应用各种必须的方法和技术,使程序设计在兼顾用户的各种需求时,全面满足软件的可靠性要求。•软件的可靠性设计应和软件的常规设计紧密地结合,贯穿于常规设计过程的始终。•这里所指的设计是广义的设计,它包括了从需求分析开始,直至实现的全过程。软件可靠性设计的四种类型软件避错设计•避错设计是使软件产品在设计过程中,不发生错误或少发生错误的一种设计方法。的设计原则是控制和减少程序的复杂性。•体现了以预防为主的思想,软件可靠性设计的首要方法•各个阶段都要

3、进行避错•从开发方法、工具等多处着手–避免需求错误•深入研究用户的需求(用户申明的和未申明的•用户早期介入,如采用原型技术–选择好的开发方法•结构化方法:包括分析、设计、实现•面向对象的方法:包括分析、设计、实现•基于部件的开发方法(COMPONENTBASED•快速原型法软件避错设计准则•(1模块化与模块独立–假设函数C(X定义了问题X的复杂性,函数E(X定义了求解问题X需要花费的工作量(按时间计,对于问题P1和问题P2,如果C(P1>C(P2,则有E(P1>E(P2。–人类求解问题的实践同时又揭示了另一个有趣的性质:(P1+P2>C(P1+C(P2–由上面三个式子

4、可得:E(P1+P2>E(P1+E(P2•这个结论导致所谓的“分治法”----将一个复杂问题分割成若干个可管理的小问题后更易于求解,模块化正是以此为据。•模块的独立程序可以由两个定性标准度量,这两个标准分别称为内聚和耦合。耦合衡量不同模块彼此间互相依赖的紧密程度。内聚衡量一个模块内部各个元素彼此结合的紧密程度。软件避错设计准则•(2抽象和逐步求精–抽象是抽出事物的本质特性而暂时不考虑它们的细节•举例–抽象Ⅰ该CAD软件系统配有能与绘图员进行可视化通信的图形界面,能用鼠标代替绘图工具画各种直线和曲线;能完成所有几何计算以及所有截面视图和辅助视图的设计。–抽象ⅡCAD软件

5、任务;–用户界面子任务;–创建二维图形子任务;–管理图形文件子任务;–ENDCAD–抽象III………………•软件工程过程的每一步都是对软件解法的抽象层次的一次精化软件避错设计准则•(3信息隐蔽和局部化–信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的。“只有需要才能知道”––如果绝大多数数据和过程对于软件的其他部分而言是隐蔽的,那么在修改期间由于疏忽而引入的错误就很少可能传播到软件的其它部分–局部化是指把一些关系密切的软件元素物理地放得彼此靠近•局部变量启发规则•改进软件结构提高模块独立性•模块规模应该适中•

6、深度、宽度、扇出和扇入都应适当–深度表示软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度。–宽度是软件结构内同一层次上的模块总数的最大值。–扇入是指有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多,这是有好处的。–扇出是一个模块直接调用的模块数目,扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块。其中E函数扇入数为2,扇出数为3。圈复杂度115的控制流图圈复杂度10的控制流图启发规则•模块的作用域应该在控制域之内•力争降低模块接口的复杂程度–QUAD-ROOT(TBL,X=>QUAD-ROOT(A,B,C,ROOT1,ROOT

7、2•设计单入口单出口的模块•模块功能应该可以预测软件避错设计•慎重使用容易引入缺陷的结构和技术–浮点数–指针–动态内存分配–并行–递归–中断–继承–别名–默认输入的处理GJB/Z102-97软件可靠性和安全性设计准则序设计软件查错设计软件查错设计•软件查错设计是指在设计中赋予程序某些特殊的功能,使程序在运行中自动查找存在错误的一种设计方法。•被动式错误检测–在程序的若干部位设置检测点,等待错误征兆的出现•主动式错误检测–对程序状态主动进行检查被动式错误检测•检测原则–相互怀疑原则:在设计任何一个单元、模块时,假设其它单元、模块存在着错误;–立即检测原

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。