java程序的健壮性与正确性

一、健壮性

所谓健壮性,简单地将就是程序对于各种非法地输入能够有很好地处理,并且使
程序能够正常地继续运行下去。

我们知道,一个程序通常有它的spec,我们可以理解为程序有它的目的与任务。有了这目的与任务,程序的输入(或者说方法的输入参数)边有了要求。那么当输入不符合spec要求时,考虑不周的程序往往会奔溃,而作为一名有良心的、优秀的程序员,怎么能容许这种情况发生呢。我们要求程序再这种情况下,也能够正常地处理、运行。这样的性能,我们便将其称为健壮性。

好了,到此,我用“人话”解释了健壮性的含义,尽量使没有基础的小白也能理解。接下来,我继续介绍健壮性的相关性质。

健壮性有时也和容错性,可移植性,正确性有交叉的地方。

比如,一个软件可以从错误的输入推断出正确合理的输入,这属于容错性量度标准,但是也可以认为这个软件是健壮的。一个软件可以正确地运行在不同环境下,则认为软件可移植性高,也可以叫,软件在不同平台下是健壮的。一个软件能够检测自己内部的设计或者编码错误,并得到正确的执行结果,这是软件的正确性标准,但是也可以说,软件有内部的保护机制,是模块级健壮的。

软件健壮性是一个比较模糊的概念,但是却是非常重要的软件外部量度标准。软件设计的健壮与否直接反应了分析设计和编码人员的水平。即所谓的高手写的程序不容易死。

但是,真的有这么简单么,开玩笑,这么简单就好了,列举以下事例

1,我输入了负数

2,我的输入超出了double类型所能涵盖的范围

3,我输入了标点符号

4,我输入了中文

5,我没输入

6,我选择了取消或者点了右上角的关闭

这一切都是有可能发生的事件,而且超出了你程序的处理范围,这种事情本不该发生,但是程序使用时,一切输入都是有可能的,怎么办,你只能在程序中限制输入。

二、正确性

什么是正确性呢?我们知道,程序有其spec,用“人话”说就是程序应该达到什么任务(java中的spec指类的前置条件、后置条件等)。好了,你现在记住程序是有任务的。既然有任务,那么程序往往对输入有要求,在代码中即表现为某个方法的输入参数是有限定的。

输入有限定,当输入是在我们限定的范围内时,我们的程序有义务给出正确的结果。但是,当输入超出了我们的合理范围时,即输入不合理,这时程序在理论上可以做出任何反应,程序不必给出正确的反应。这就是,正确性。然而,在输入不合法时,一名有良心的程序员仍应该使得程序能够合理地应对不合法输入,这就是我上面说的健壮性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值