首页 理论教育 软件可靠性设计思考及应对策略

软件可靠性设计思考及应对策略

时间:2023-07-18 理论教育 版权反馈
【摘要】:要确保兵棋系统的稳定运行,首先要考虑的是软件的可靠性。软件可靠性的设计重点应该从以下几个方面考虑。搞清系统需求是保证软件可靠性的关键步骤。一个大型、复杂的软件尽管经过精心设计、编码和测试,但在投入运行后,特别是早期运行阶段仍可能残留或多或少的错误。虽然采用了以上诸多避错、容错等提高软件可靠性的措施,提高了系统的健壮性,但这仍然不可能完全避免软件在某些情况下出现错误。

软件可靠性设计思考及应对策略

要确保兵棋系统的稳定运行,首先要考虑的是软件可靠性。软件可靠性的设计重点应该从以下几个方面考虑。

一是系统的避错。在系统设计和研发过程中,尽可能少地包含潜在的软件错误是软件避错之目的。搞清系统需求是保证软件可靠性的关键步骤。除了扎实搞好军事需求分析之外,还要进一步明确并细化与其他系统的接口关系,使系统需求完整、清晰、无歧义。选择合适的生命周期模型。通常可以采用原型+瀑布方法,先以原型为模板确认用户需求,再在原型系统基础上进一步完善,形成正式系统。选择合适的软件开发方法,根据共用软件中每个构件的特点,选择合适的软件开发方法,有助于减少软件错误、发现和纠正错误,面向对象开发方法和结构化开发方法是可供选择的例子。简化结构,“简单即意味着可靠”,如何使一个复杂的软件系统变成由一系列功能相对简单的模块组成则是软件开发者的功夫。在总体设计中已对构件功能进行了分解,在此基础上,在软件具体设计过程中,还需要进一步简化软件结构,这不仅有助于提高软件的可靠性,而且也便于软件故障的隔离和维护。在数据收发与处理业务中,与外系统交换的许多数据包是重要的关键数据包,不能丢失,为此,应该采取相应措施,如选择合适的通信协议、建立收发者间的应答关系等。

二是软件的防错。一个大型、复杂的软件尽管经过精心设计、编码和测试,但在投入运行后,特别是早期运行阶段仍可能残留或多或少的错误。另外,系统的非法输入若不经正确的处理,也有可能造成系统的故障。因此软件不仅要避错、纠错,还需防错。为此,应该采取相应的措施,例如:对外接口如有相应的数据格式或标准,则严格按照接口格式对有关数据实施检查,使输出数据尽量符合要求;对人机界面输入的有关操作实施严格的检查,以防止错误的输入引起系统异常;所有可能引起系统异常行为(如溢出等)的软件模块,均需设置异常处理程序进行处理。

三是软件的查错和纠错。软件的查错和纠错,是开发高质量的可靠性软件的关键措施,它应贯穿于软件生命周期的各有关阶段,特别是在软件生命周期的早期阶段,及时发现并纠正中间软件产品的错误尤为重要。单纯以软件测试阶段为例,测试应该包括代码走查,即通过工具或人工阅读代码而进行的一种软件查错方式;白盒测试,即按软件内部结构而进行的测试;黑盒测试,即按软件的需求(包括功能、性能、接口等)而进行的测试。(www.xing528.com)

四是软件的容错。容错技术的基本思想是将软件内潜在的差错对可靠性的影响缩小控制到最低程度,在过程上可分为错误分析、破坏程度断定、错误恢复、错误处理四个阶段。当出现失效情况时,软件应该提供自动或手动恢复功能,或者控制失效引起的影响。可以将主要的功能模块实现为单独的子系统进行安装运行,个别前端程序的出错不会影响其他前端程序的正常使用,只是整个系统的功能被削弱。对于前端程序与后台服务之间的接口程序,则将针对各业务逻辑的接口分开实现,不同接口的逻辑实现故障互不影响。对于后台的集中式服务,在结构设计时就留下采集数据的接口,并开发监测服务状态的应用程序。

五是故障恢复。虽然采用了以上诸多避错、容错等提高软件可靠性的措施,提高了系统的健壮性,但这仍然不可能完全避免软件在某些情况下出现错误。因此还需要设计一系列错误恢复机制。通常具体包括程序日志和事务提交。无论是后台服务程序,还是前端应用程序,都要对运行过程中的关键操作和异常情况记录程序日志。在错误处理时,这些日志有助于软件维护人员迅速定位、解决问题,恢复软件功能。访问数据库的服务程序在设计实现时就引入事务和回滚的机制,保证在处理过程出错时,错误的数据不会被提交到后台的数据库中。

最后,还需要考虑软件的冗余设计。为保证系统能够适应多种环境,需要采取环境适应冗余设计方法。通过分析不同环境的差异,尽量采用多环境兼容的方式进行设计,对于不能采用兼容方式解决的问题,采用冗余设计方法,对环境进行判断和特殊处理,确保系统适应用户要求的各个环境。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈