王苏明
(福州大学,福建 福州 350000)
最初对软件的定义源自于 《Encyclopedia of Computer Science》:对计算机非硬件部件的描述,尤其是指使得计算机完成特定工作所需要的程序。IEEE《Software Engineering Terminology Standard》中则对软件做出了如下定义:计算机程序、规程,以及与运行计算机系统可能需要的相关文档和数据。软件质量是软件产品满足使用要求的程度。
软件的可靠性是指在规定的条件下,在一段规定时间内完成规定功能而不失效的概率。软件可靠性实际上与软件设计质量紧密相关。对于软件来说,可靠性变成了正确性、信心、精确性和准确性的问题,而不仅是下次失效的时间问题。
有三种不同方法估计软件的可靠性:①基于失效的历史数据。②在输入域随机采样点输入所引起的系统行为方式。③种子缺陷和测试组实际测出的缺陷数。所谓种子缺陷是在调试开始阶段有意插入程序中的,其测试组是知道的。
软件的可维护性是指进行预定的检查和服务,即可服务性;当出现故障时进行恢复,即可恢复性。软件维护是一个修改软件错误和潜在不足的活动,软件维护为运行的程序检查并修改错误。软件维护是一个在软件交付之后对软件系统或部件错误进行修改、提高其性能或其他特性或适应环境变化的过程。
质量保证是一个活动,它向所有有关的人提供证据以确立质量功能正在按需求运行的信心,在这个基础上,IEEE在软件工程术语中对质量保证的定义是:质量保证是有计划和系统性的活动,它对部件或产品满足确定的技术需求提供足够的信心.与硬件系统不同,软件不会磨损,因此在软件交付之后,其可用性不会随时间的推移而改变,软件质量保证就是一个系统性的工作以提高交付时的水平。
本文对于软件质量保证的定义是:软件质量保证(SQA)是建立一套有计划,有系统的的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目采用。
(1)SQA在操作系统软件开发中的作用。操作系统是一组程序的集合,这些程序协议计算机电路的运行从而使计算机有效的工作。操作系统包括控制程序。控制程序控制计算机的工作效率。处理程序控制计算机的处理效率。
本文现在来研究SQA如何进入角色。首先,在产品开发和测试阶段,SQA必须确保一个严格的配置和控制过程的方式,在这个过程中基线应该得到适当的定义,产品的问题、解决方法和性能得到详细的记录。当产品在出现问题时,要有一种快速的方法来确定产品的状态。第二,同样在产品的开发和测试阶段,SQA要确保根据市面需求对产品进行大量的测试和确认。这样大大减少了产品发布后面临承担责任的风险。第三,还是在开发和测试阶段,SQA能够开展或协助开展调查产品是否侵犯了竞争对手的专利或版权。这一点是不容忽视的。第四,产品一旦发布,SQA的工作就转移到了评估客户满意度、建议和投诉上。这些信息对持续的产品改进和将来发布新版本是很有必要的。
SQA在操作系统的开发过程中有如下建议:SQA最高优先级工作是在开发过程中和产品发布后的配置控制;SQA次高优先级工作是确保产品在发布之前性能可靠。在需求阶段SQA要确定产品竞争特征,确保没有版权问题;要基于明确的市场需要建立需求;评价用户输入;考虑平台的多功能性。在系统设计阶段时要召集同行评审以确保操作系统的设计能力。在实现阶段要考虑测试版原型,确保对原型的控制和SCM(软件配置管理)配置控制,确保对现场版本控制。在验证阶段,可确保用户手册是最新版本;确认产品的可靠性以及可靠的性能;确保高优先级的问题得到解决,从而避免用户不满;确保有足够的回归测试;确保发布最终版本的准备工作完成。在运行阶段可确保发布充分的产品包装保护和担保;可跟踪用户建议和投诉的处理;度量客户满意度。
(2)SQA在实时系统软件开发中的作用。实时软件是指对计算机进行实时控制的软件。实时系统是对进行中的物理过程进行控制和提供服务的系统。
在实时状态下,工作软件有严格的性能要求和约束。实时软件必须与其化外部实体进行交互。并在实时状态下完成所有要求的处理工作。这种软件因此受到严格的时间约束。这种软件具有复杂性,并以多种形式存在,如汇编语言、微代码以及高级语言的可编译源代码。
实时软件基于并发处理和定时中断,这二者是为每个关键功能优先级排序的基础。尽管实时处理也包括恢复处理和较高的可靠性要求,但实时处理的关键还是效率。所以,SQA的责任就是确保整个实时系统软件的效率。
对于实时系统,SQA需要跟踪所有系统组件以确保对规模和定时的估算没有超过预算,跟踪由均衡分析和快速原型得出的结果,通过建模或评审跟踪软件变更对相关定时预算的影响,评价高级语言和目标处理器进行并发处理和中断处理的能力。
对实时系统软件SQA的建议有SQA最高优先级工作是软件效率;SQA次优先级工作是软件可靠性。在运行阶段需要跟踪实时性能(实时问题、经常失效的功能、纠正测式等),并记录到数据库中;根据可靠性模型的预测跟踪实时可靠性,并提高下一次预测的精确情
(3)SQA在商用软件开发中的作用。商用环境下所使用的软件一般来说是管理信息系统(MIS)。对于商用软件,SQA的工作是审计信息系统以确保过程的准确性、系统的安全性、文档的精确性和及时性、系统的功能正常。
对商用软件SQA的建议有SQA的最高优先级工作是录的精确性;SQA的次优先级工作是日常运行的可靠性。在需求阶段SQA的要求有评审信息系的规程以确定审计的区域;对日常运行的规程;对系统故障或功能下降时的规程;恢复的规程;在审计前评间所有项目根据需要形成或更新审计检查单;对需求的变更形成基线。在设计阶段的要求是组织对新设计或修改组件的同行评审;确保提交的设计变更得到批准;确保测试过程能够提供足够的测试覆盖率。在实现阶段的要求是按进度要求监督信息系统的运行;进行审计;确倮对现有软件、新软件和修改软件的版本控制。在验证阶段需要确保对当前发布版本的配置管理;参加新发布版本的试验运行;确保发布新的或修改版本的准备工作就绪。在运行阶段要监督必要的日常运行;跟踪关键量参数,并记录到数据库中;记录对下一次发布的改进。