作者:admin 时间:2022-04-09
现在关于软件与硬件从可靠性角度来看得区别主要有三个不同点[
1) 复杂性:软件内部逻辑高度复杂,而硬件内部逻辑较为简单,这就在很大程度上决定了设计错误是导致软件失效的主要原因,而导致硬件失效的可能性则很小。
2) 物理退化:软件不存在物理退化现象.硬件失效则主要由于物理退化所致。这就决定了软件正确性与软件可靠性密切相关,一个正确的软件任何时刻均可靠。然而一个正确的硬件元
器件或系统则可能在某个时刻失效。
3) 性:软件是的,软件拷贝不改变软件本身,而任何两个硬件不可能相同。这就是为什么概率方法在硬件可靠性领域取得巨大成功,而在软件可靠性领域不令人满意的原因。
上述关于软件与硬件的区别说明了软件可靠性的一些特点,对理解软件的可靠性性质有的帮助。但是也存在着一些片面性的缺点。
第一条是软件的复杂性。软件的内部逻辑结构总体上确实要比硬件的逻辑结构要复杂,但这并不是软件比硬件复杂的主要原因。事实上有的软件项目并不比某些“硬件”的内部逻辑复杂,比如民用客机的内部逻辑复杂性。现代的民用客机从设计到零部件的生产再到组装,各个环节分布在世界上的不同,参与的人数之多、产生的文档之多让大多数软件项目望尘莫及。但民用客机的可靠性并未因为内部逻辑的复杂性而使得可靠性降低。据统计,乘坐民航客机的系数要比乘坐汽车的系数还要高。可见仅仅是内部逻辑的复杂性并不是造成软件可靠性难以保障的原因。
第二点关于物理退化。软件本身确实不存在物理退化,但是软件存在逻辑退化。谁也无法保证一个软件下一次运行无故障,就像没有人能保证太阳明天照常升起一样。一个正确的软件任何时刻均可靠,然而一个软件是否正确远比一个软件是否可靠更难以捉摸。在无法得到软件是否正确的信息、的前提下,软件依然会随时间而失效。这有可能是软件的并发机制,也有可能是由于软件中包含未排除的内存泄露错误。
第三点关于软件的性。关于性的论述只是从静态的角度来看问题。软件的可靠性不仅仅取决于软件本身,也与运行环境、输入数据有关。比如对于多线程的软件就会受到系统线程调度的不可预期的因素的影响。
版权所有© 国可工软科技有限公司 沪ICP备2020030271号