接前一篇文章:软考 系统架构设计师系列知识点之软件可靠性基础知识(7)
所属章节:
第9章. 软件可靠性基础知识
第2节 软件可靠性建模
9.2.1 影响软件可靠性的因素
在讲到软件可靠性评估的时候,不得不提到软件可靠性模型(Software Reliability Model)。软件可靠性模型是指为预计或估算软件的可靠性所建立的可靠性框图和数学模型。建立可靠性模型是为了将复杂系统的可靠性逐级分解为简单系统的可靠性,以便于定量预计、分配、估算和评价复杂系统的可靠性。
为了构建软件的可靠性模型,首先要来分析一下影响软件可靠性的因素。影响软件可靠性的因素是纷杂而众多的,甚至包括技术以外的许多因素。
首先必须考虑影响软件可靠性的主要因素:缺陷的引入、发现和清除。缺陷的引入主要取决于软件产品的特性和软件的开发过程特性。软件产品的特性是指软件本身的性质;开发过程特性包括开发技术、开发工具、开发人员的水平、需求的变化频度等。缺陷的发现依靠用户对软件的操作方式、运行环境等,也就是运行剖面。缺陷的清除依赖于失效的发现和修复活动及可靠性方面的投入。
从技术的角度来看,影响软件可靠性的主要因素如下:
(1)运行剖面(环境)
软件可靠性的定义是相对于运行环境而言的,同样的软件在不同的运行剖面下,其可靠性的表现是不一样的。
(2)软件规模
软件规模也就是软件的大小,一个只有数十行代码的软件和几千、几万行代码的软件是不能相提并论的。
(3)软件内部结构
结构对软件可靠性的影响主要取决于软件结构的复杂程度。一般来说,内部结构越复杂的软件,其所包含的软件缺陷数就可能越多。
(4)软件的开发方法和开发环境
软件工程表明,软件的开发方法对软件的可靠性有显著的影响。例如,与非结构方法相比,结构化方法可以明显减少软件的缺陷数。
(5)软件的可靠性投入
软件在生命周期中可靠性的投入包括开发者在可靠性设计、可靠性管理、可靠性测试和可靠性评价等方面投入的人力、资金、资源和时间等。经验表明,在早期重视软件可靠性并采取措施开发出来的软件,可靠性有明显的提高。
总之,有许许多多的因素影响着软件的可靠性,有些至今也无法确定它们与软件可靠性之间的定量关系,甚至定性关系也不甚清楚。
至此,“9.2.1 影响软件可靠性的因素”的全部内容就讲解完了。更多内容请看下回。