论文部分内容阅读
软件产品质量保证是软件工程学科的一部分。软件质量评价和故障分析是软件工程中较为困难的研究领域,系统地处理软件质量问题、客观地评价软件产品质量不论对软件产品用户,还是对软件开发商都是十分重要的,是国家迫切需要的技术。 由于软件本身的复杂性和软件技术发展迅速等原因,到目前为止,软件质量评价无论在理论上还是在技术上都很不成熟。如何系统地、科学地评价软件的质量是几十年来一直困扰着人们的难题。 本文围绕着这个难题开展了系统地研究。首先,提出基于软件的基本特征的质量评价模型和质量评价标准草案。然后,研究和开发支持这个评价模型的度量、测试、缺点分析工具,利用这些工具获得软件产品的基本特征和关于这些特征的数据积累。 论文所研究的主要内容包括: 1)在深入研究软件质量特点和历史上较有影响的软件质量评价模型的优缺点的基础上,提出了一个新的软件质量评价模型,提出了建立在该模型上的软件质量评价标准草案。该模型更加合理地划分和定义了软件质量要素,将要素与先进的软件测量技术关联,使评价结果更加客观,评价过程简便,可以由软件测量自动化工具支持。模型强调度量数据到软件质量要素的计算与映射。基于大量有关软件基本特征的实验数据,研究采用神经网络建立计算模型的理论、方法和技术上的问题,建立了一系列有关算法,使模型具有知识发现和进化能力,将软件的量化指标映射到软件质量要素,以实现具有软件工具支持的软件质量评价。 2)研究了软件复杂性度量理论及方法,在C&K面向对象软件度量方法的基础上,提出了改进的度量方法,实现了一个C++面向对象软件度量工具SMTCPP。该工具利用LL(1)分析法对面向对象软件的源程序进行语法分析,提取程序中有关类、类成员、成员函数等信息,从而计算出类的方法数、方法最大复杂度、继承树深度、孩子数目、耦合度、响应集、相对内聚缺乏度等的度量结果。重点测试了三个正在使用的C++软件。度量实验说明,SMTCPP不仅支持软件质量评价,而且可以指导软件设计与实现。同样重要的是该工具与数据库连接,为积累度量数据提供方便。 3)研究了软件测试理论和技术,将软件植错技术与面向对象技术结合。根据所确定的植入错误的种类,分析了每种错误的特征,从而研究开发了C++软件植错工具ErrSeed。测试结果证明,该工具不仅能根据用户指定的植错率和程序自身的特点植入相应的错误,而且能根据植错和测试的结果,方便地估算软件中的残留错误数。同时,还可以根据植入错误和查出错误的比率,估算测试的充分性,并对测试方法或测试过程作出评价,为软件质量模型提供依据。 4)首次提出了软件缺点度量等概念,研究了软件故障分析理论与技术以及面向对象软件缺点的分类和自动分析方法,设计了相应的基于知识的分析工具。根据知识库中储存的有关软件缺点的知识和推理规则,该工具可以自动报导出一:件可能含有的缺点。实验表明了该方法的有效性。 5)分析了传统软件可靠性理论的问题,指出了Nelson模型的局限性,提H了一个新的基于输入域的可靠性模型。