© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
第卷第期青海大学学报自然科学版
年
月
提高软件可靠性的措施
董
惠
丽
山西经济管理学院太原《力肠
摘要从软件可靠性的正确性和健壮性这两个角度出发充分论述了如何提高软
件
的
可
靠
性
关键词可靠性正确性健
壮
性
理论和实践都已证明软件的结构越简单可靠性越高反之软件的结构越复杂
其
可
靠
性就越低尤其是近年来通用软件的设计由于通用软件要满足某类用户的共同需求软件
的
具体操作对象的随机性导致通用软件在结构上一般都比较复杂并且随着功能的增强软件
的结构愈来愈复杂因此迫切需要设计者尽可能地提高软件的可靠性
软件的可靠性包括正确性和健壮性两个方面其中软件的正确性是指软件系统本身
没有
错误在预期的环境下软件能够正确地实现预期的功能要达到这一目的要求程序在语法
上语义上和逻辑上都没有错误而健壮性是指在硬件发生故障或用户输人数据不
合理等
意外
条件下系统仍能进行适当的工作本文将从软件可靠性的正确性和健壮性这两个角度出发
论述如何才能提高软件的可靠性
采
用
面向对象的系统
开发方法
面
向对象的开发方法是软件工程中一门新的系统开发方法学与传统的系统设计方法相
比较更便于修改和
扩充面向对象的开发方法是一种建立在对现实世界中的对象分析基础
上
的开发方法它的整个开发过程都是围绕着对象展开的面向对象的开发方法中的对象是
客观世界对象的直接映象每个对象都是属性与操作的封装体对象之间只能通过发送消息相
互传递信息因而当需求发生变化时一般也只涉及个别对象或对象类的修改不会影响整个
系统的结构当新的需求需要增加新的对象或对象类时也可以方便地将这些对象添加到系
统中去从而实现系统增量式的连续演变由于对象是构成系统的最基本的软件单元每个对
象都作为一个独立的单元被测试易于保证其可靠性从而提高整个软件的可靠性另外
面向
对象的开发方法对软件的可扩充性可再用性可修改性和兼容性得到了很好的保证
选用合适的开发工具
开发软件时应选用可视化真正面向对象采用驱动方式的结构化程序设计语言作为开
发工具好的开发工具的选用首先可以大大节省开发时的人力物力其次有助于设计
出人机
界面友好的软件最重要的是便于软件的扩充修改和测试从而延长软件的使用周期友
好
的人机界面提供给用户详尽具体的操作提示使用户能在系统的提示下减少或避免输人
不
收稿日期
卯
一
的
一
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
青海大学学
报
第卷
合理数据的机率从而正确使用软件提高软件的健壮性如目前专业与非专业人员最常
用的
开发工具之一滋语言该语言不仅具有高效率简单易学及功能强大的特点而且是
可视化真正面向对象采用驱动方式的结构化程序设计语言在功能上可
与语言程序员使
用的专业工具相媲美且编程人员可以不具备语言的
任何知识
采用结构化的程序设计方法
“模块化方法”和“逐步求精法”
是结构化程序设计的两种重要手法这两种方法都是采
用
“处顶向下”
的设计原则分别采用分解和抽象的方法来分析解决复杂问题结构化的程序设
计方法把一个大而复杂的问题分解成若干个功能比较单纯的小问题或是分步进行逐步求
精
直到最后可编程结构化程序中的三种基本结构顺序结构选择结构和循环结构都只有一个
入口和一个出口这种单入口和单出口的特点对于程序的每一部分只要考虑在其入口的条
件下在出口都可以获得正确的结果这部分程序的正确就得到了保证又由于结构化程
序具
有线状性结构的特点每一部分是正确的就可保证整个程序的正
确性
结构化的程序与非结构化的程序比较有以下优点
结构化程序简单清
晰
结构化程序的正确性容易验证可靠性高
结构化程序易于读理解和维护
易于实现程序的模块化
设计
程序设计风格
化
程序的设计风格与程序的易读性易理解性和易修改性等有关其中
易读性可以减少程序出错能帮助设计者迅速查出错误所在
易理解性可提供给设计者可读性好的程序和齐全的文档帮助设计者对软件的测试排
错和修改如果软件易于理解那么将提高开发和维护的效率出现错误的可能性也会大大
降
低
易修改性通过在程序单位的首部对该程序内的引用对应一一预以说明提高程序的
可
读性以便在必要的时候帮助设计者修改程序
进一步讲良好的程序风格需要设计者在程序的关键地方加上必要的说明和注解充分发
挥分隔符的作用以利明显隔开不同语句成分要采用标准的缩格书写格式明确突出程序
的
层次结构关系使用见明知义且能直接反映主要功能或特征的标识符避免在程序的不同层次
使用同名的变量名还要避免过程和函数的副作用因此如果设计者养成良好的程序
设计风
格它将有助于产生正确有效易读和易维护的程
序
经
过严
格的测试
在程序设计中不可避免的会出现各类错误其中有些错误如语法错误和语义错误
当
计算
机运行程序时编译程序会自动指出错误的性质和错误地点用户容易发现并改正但有些逻
辑错误就较难于发现有时需经过长期运行才会被发现为了保证软件的正确性我们
必须利
用各种有效的测试手段在系统正式使用之前尽可
能地找出软件中存在的错误并将其改
正
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
第
期
董惠丽提高软件可靠性的措
施
例如我们可在测试阶段设计和选择正确的数据集合错误的数据集合和边缘的数据集合
测
试程序运行是否能达到预期的目的其中程序对正确的数据输入应有正确的输出结果对错
误的数据输人应有错误的输出结果对边缘数据应能正确地预以处理并给出相应信息以供检
验
另据美国一家公司的统计表明在查出的软件错误中属于分析设计阶段的错误约占
科属于程序编写的错误仅
占因此软件的测试不应仅限于程序测试这个狭小的范围
而应考虑到开发的各个阶段的全面测试
设置必要的错误处理和
错
误
陷井
我们不能期望一个大型系统在任何情况下都是正确的硬件可能出现各种类型的故障用
户也可能有意无意地输人一些不合理的数据使系统遭到意想不到的
破坏所以一个健
壮性
好的软件应当具有抵御各种错误的能力在遇到意外情况时如硬件出现故障
或用户输人一些
意外数据时系统能按预期的方式作适当的
处理
通过在程序中设置错误陷井一是可预计在程序的执行过程中可能会发生的错误类型特
别是当发生错误时该如何处理二是通过使用错误陷井作为调试工具
可
以
截获错误并转移到
一
个特别的例程帮助诊断问题的所在三是当用户输人引起错误的数据时错误陷井能截获
可
能的程序错误通过错误处理程序纠正错误并继续执行同时应提示用户输入新的数据
若
错误陷井不能纠正引起的错误的问题也应提供有序的程序终止并且在终
止前显示解释性
的
提示信息
选择典型的单位试运行
在应用领域工作的不可靠软件轻者影响系统的正常工作运转重者友生事故甚至造成
重大的损失因此一个软件在大范围推广使用之前必需选择一典型的单位试运行以便发
现软件中隐藏的逻辑上的错误尽可能地提高软件的正确性
综上所述如果设计者在设计软件时采取了以上七条措施一定会大大提高其软件的
可
靠
性
参
考
文献
郑人杰实用软件工程北京清华大学出版社
卯
一
训,五西滋肠程序设计轻松人门北京机械上业出版社
望场
郑中梁高级语言程序设计南京南京大学出版社
王
珊冯念真计算机应用系统的设计与开发北京高等教育出
版社卯
钾
哪
几
四
仪巧
加红,叨〕油
。
,
川
责
任编辑王宝通