加强软件控制系统设计,提高软件可靠性安全性

每个软件设计都应包含两部分系统设计:事务处理系统和控制事务处理的系统。事务处理系统完成软件的功能和性能需求,控制系统是预防、检测或纠正各种导致软件不能正常运行的风险等的情况。换句话说,控制系统设计就是提高软件可靠性和安全性的设计。

软件的控制系统设计应根据所属预防、检测还是纠正控制类型分为预防性控制系统设计、检测性控制系统设计和纠正性控制系统设计。

1. 预防性控制系统设计

预防性控制系统设计是能够阻止软件问题发生的设计。预防性控制系统设计可以从以下几个方面考虑:

  • 源数据授权

进入软件的源数据要进行授权设计,这是提高软件安全性的有效手段之一。

  • 输入验证

输入验证是对软件的输入数据进行有效性、完整性、逻辑性、范围、自校验、数据合计等难的设计。

其中:

  •  有效性是指数据包含有效的事务代码、字符和字段;

  •  完整性是指输入的所有数据字段中的数据总量符合规定;

  •  逻辑性是指数据中不同部分或字段间有清楚的逻辑关系;

  •  范围是指字段是否超出预定范围;

  •  自校验设计用来确保标识号的准确性;

  •  数据合计是指通过核对数据的总计值来确保数据的完整和正确。

  • 处理控制系统

检测数据丢失或错误处理的程序检查措施包括记录计数、核对总计和总计:

  •  记录计数是计算机处理的记录数量,可以用来与预定计数相比较。记录计数对于证明处理准确性非常重要。

  •  核对总计是产生自一组记录的总数或数量字段,用来对照在以前或后来人工(或计算机)处理中建立的控制进行检查(数据求和)。

  •  总计是数据合计的另一种形式,它产生自一组记录的非数量字段中的数据(总数)。

2. 检测性控制系统

检测性控制系统设计用来在问题发生过程中向用户发出警报以采取适当的行动。检测控制系统设计不会阻止问题的发生,而是在问题发生时指出问题所在。

检测性控制系统的设计主要技术是对软件输出进行检查。检查内容如下:

  •  检查输出数据总计与以前在输入数据总计是否一致

  •  检查输出数据的合理性以及格式是否正确

输出控制的另一种形式是:由专人系统化地审查输出数据,以确定软件输出是否满足需求。

3. 纠正性控制系统设计

纠正性控制系统设计用来帮助发现和纠正引发损失的原因。这些控制措施主要用来收集导致发生特定问题的原因的证据。

纠正性控制系统的设计可以从以下两个方面考虑:

  • 错误检测和重新提交

错误检测和重新提交是指不仅要进行错误的检测,还要对检测到的错误进行处理,并将错误纠正后重新输入到系统中。这种控制技术应包括:

  •  对重新输入的数据进行验证和控制。

  •  使重新输入的数据验证与正常输入数据时的输入验证一样。

  • 审计跟踪

审计跟踪是由文档、日志、分类账和工作表组成,通过它们能够跟踪原始数据到汇总的总数,或从汇总的总数逆向跟踪到原始数据。通过这种方法,能确定输出结果是否正确。

如果我们的软件都进行了以上的控制系统设计,就能够避免大部分风险,即使出现了问题,也能及时发现,并进行处理。这样一来,软件的可靠性和安全性都能够得到提高。

这正是:

实现需求未竟功,设计控制不放松

预防检测和纠正,提高软件可靠性

参考书目:《软件测试的有效方法》

作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。

加强软件控制系统设计,提高软件可靠性安全性》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/475.html