浅析装备研制工作中的软件品质控制
2011-02-14张军威
张军威
(解放军驻黄河机器制造厂军事代表室,陕西 西安710043)
如何对军用产品的嵌入式实时控制软件进行有效的品质控制,是一个重要研究课题。为解决软件危机而产生和发展起来的软件工程,不仅对软件开发、设计和生产有直接影响,而且对提高软件品质有显著成效。软件工程,是指按照工程的规律,来组织软件的生产与开发。软件工程化,要求以软件品质控制为核心,紧紧抓住软件生产方法、需求分析、软件设计、软件生产工具、测试、验证与确认、评审和管理等主要环节。
1 软件需求分析
软件需求分析的目的,是使软件设计人员和用户之间进行全面深入的沟通。沟通内容包括将要开发的软件所涉及的概念、定义、目标、指标、功能、执行过程和特点等。需求分析后产生的软件规格说明书,是软件设计、调试和测试的基础,也是软件评审、鉴定和验收的依据。软件需求分析的过程,也是软件设计方案的酝酿过程。通过分析得出用户需求的正确性、合理性和完整性的结论;得出软件付诸实现的可行性、可靠性和安全性的结论。
2 软件设计
软件设计方法,主要有面向数据流的设计、面向对象的设计和面向数据的设计等。目前,大多数嵌入式实时控制软件,使用的是面向数据流的设计方法。该方法的目标,是以一种全局的软件观点和体系结构设计的角度,派生出程序结构。面向数据流的设计,又称为结构化设计。其强调模块化、层次化和自顶向下的设计思想。根本目的是对复杂问题的解决采用一个简化过程,以获得满意的答案。软件可靠性设计,主要将软件的检错、避错、容错和异常处理技术,灌输到软件设计中去。设计时应处处关心以下方面:控制逻辑的完整性;软件与硬件、软件与软件界面之间的协调性;人机交互的有效性;信息交换的正确性;设备控制的安全性;时序控制的合理性;数学运算中变量定义域的合法性。
3 软件测试
从软件生存周期看,软件测试是保证软件品质的最后一道关口。但软件测试并不仅仅局限于这个阶段,而应贯穿于软件开发的全过程。用于实时控制系统一类的复杂软件,自认为没有错误的想法,是不切合实际的。因此,测试的主要目的,是要对软件的品质或可接受性作出判断,发现问题。
测试的设计,难在利用测试用例找出软件的全部问题。设计的测试用例文档格式中,含有测试管理信息——测试用例标识和执行史。测试用例标识,是按一定规律统一为每个测试用例赋予的代号,便于需求追踪。执行史中有测试日期、测试结果、版本号和主管的测试者签字,这些都是有保存价值的资料。测试用例需要精心设计、编写、评审、使用、管理和保存。
软件测试要求在测试过程中采集软件可靠性数据,并利用软件可靠性模型进行可靠性评估,分析其是否达到了预期的可靠性要求,并据此作出该软件能否放行的决断。若不满足要求,需继续进行测试,直到满足要求为止。
4 软件管理
软件管理主要包括软件项目管理、软件配置管理、软件可靠性管理和软件品质管理等方面。
软件项目管理的内容,包括软件开发过程管理、软件可靠性度量、风险管理、确定项目任务、建立可操作的工程计划等。软件项目管理,是软件管理工作的第一层,需要强调的是,它不是一个阶段,也不仅仅是个步骤,而是贯穿于整个软件开发工程中的一个层次,其管理得好坏,直接影响产品的品质。软件配置管理是软件人员和管理人员确定、组织和开展软件修改的手段,目的是在软件修改过程中设法少犯差错,来最大限度地提高软件产品的生产率。软件配置管理涉及软件配置项和基线的确定。软件配置项。可理解为在软件生产的某个阶段应具备的软件文档和保存软件的介质等软件基线。软件配置项经软件验证、确认、评审和认定后,形成了软件基线,也就成了该阶段的一个基准。下一个阶段只能在这个基准上进行开发活动。
软件配置管理要求软件修改必须遵循软件更改规范;未经批准的更改,任何人无权修改;更改后必须测试、验证和确认;软件验收必须对相应的软件进行评审。具备评审的条件,包括相对该基线的软件配置项齐全,有测试结果和测试分析报告及软件优化报告。文档管理要求文档编写规范、文实相符、文文相符,描述具有一致性、确切性和简明性,签署完整、职责明确。
5 当前存在的主要问题
(1)部分系统的软件开发,由硬件人员承担,硬件、软件、模型设计均由一个组完成,仍是典型的“自编、自导、自演”的“小作坊”工作方式。
(2)不习惯于工程化、规范化、结构化和模块化的软件生产方法。
(3)缺少配套的软件测试工具。试图利用实时控制系统进行软件的调试、测试、验证、确认和试验工作,这样的软件测试必然是不完整的,也是有局限性的。
(4)实时控制系统软件可靠性工程的研究是自发的,未纳入实时控制系统研制计划,影响了这项工作的深入开展。
(5)对实时控制系统软件工程化还存在若干模糊认识,认为软件就是编程,没有测试工具照样可以开发出软件,在软件可靠性上花更多的成本不值得等等。
(6)实时控制系统软件可靠性指标不好定,原因是软件可靠性的评估涉及模型、方法、工具和条件等问题。
6 某型号装备研制过程的具体做法
针对软件产品研制生产的特点及GJB439—88《军用软件质量保证规范》、GJB2786—96《武器系统软件开发》等军用软件开发标准的要求,我们在某型号装备立项研制工作之初,就制定了《软件配置库管理规程》,通过完善法规,达到正确引导和管理软件开发、生产的目的。
按照规定,首先建立了软件配置库。由软件开发库、软件受控库和软件产品库共同构成。通过对软件配置库的集中管理.达到控制软件研制生产品质的目的。
计算机软件配置项,是指软件产品在生存周期的各个阶段所产生的各种形式的信息和各种版本的文档、程序及其数据。在对软件配置库的管理工作中,主要是对计算机软件配置项所规定的内容进行管理。根据各型号的实际情况,一般将下列内容纳入配置管理的范围:
(1)相应型号软件开发计划中规定的所有系统和阶段设计文档,如软件开发计划、软件需求规格说明、接口需求规格说明、软件设计文档、软件测试计划、软件测试报告、软件开发程序员手册、软件开发环境说明等。
(2)软件开发过程中各阶段所产生的计算机软件部件、计算机软件单元及其源程序代码、目标代码和数据定义文档。
(3)软件开发过程中各阶段进行软件测试的测试用例和测试结果等。
(4)开发完成的产品软件的加载和固化操作说明。
软件必须经过评审或测试,确认正确之后才能入库,入受控库的程序必须经过代码走查和单元测试,其所嵌入的系统必须已经通过验收试验;入产品库的程序必须经过综合测试,其嵌入的系统必须为可交付的产品,并填写相应的“软件入库申请单”。在进行软件配置项的入库操作时,软件设计师按本规程的要求填写相应的入库申请单,经主任设计师审核、研制单位领导批准后,与配置管理人员一起完成软件配置项入库操作。受控的软件产品,若需要出库,应办理出库手续。在对产品库的软件进行固化生产时,应填写“交付产品软件生产申请单”。
在软件配置库中管理的软件,实行“双密码”控制。
产品库中的软件必须凭配置库专职软件配置管理员和品质管理部门软件配置管理人员掌握的密码组合,才能完成软件配置项的出库;受控库的软件,必须凭专职软件配置管理员和项目软件设计师掌握的密码组合,才能完成软件配置项的出库;配置管理人员根据批准后的“软件出库申请单”办理软件出库。
未经软件编制单位领导、型号研制总师和主管军代表的共同批准,配置库管理人员不得向任何人出示、摘录、拷贝配置库中的软件。在需要进行软件配置项的出库操作时,软件/固件生产人员依据生产指令,按要求填写相应的产品软件生产申请单,经审核和部门领导批准后,与配置管理人员一起到软件配置库完成出库操作。
在软件产品交付时,还应有检验单位和军代表等相关人员到软件配置库现场监控,确认后签署相应的交付产品软件生产申请单。软件配置系统管理员提供配置库的另一部分密码,并完成具体的入/出库操作。同时,软件配置系统管理员还应完成所有电子申请单(报告单)的管理、系统维护和定期的配置状态审核及定期备份工作。申请单(报告单)以电子表格和书面表格两种形式存在。电子表格由软件配置系统管理员入库管理,软件更改报告单的书面表格应由档案部门负责管理。
通过严格的入库、出库管理及相关的更改控制措施,确保了在本装备研制过程中没有出现软件品质问题,有效地确保了型号研制品质和进度。
7 结束语
综上所述,通过描述对某型号装备研制过程中软件质量控制的具体做法,可清晰的看见,软件需求分析、软件设计、软件测试和软件管理对军用产品的嵌入式实时控制的重要性,为装备研制质量的大幅提升和控制打下了坚实的基础。
[1]朱少民.全程软件测试[M].北京:电子工业出版社,2007.
[2]陈雄峰,等.软件工程化之有效实现[J].闽江学院学报,2005,25(2):97-100.
[3]董晓霞.软件测试工程化的研究与实践[J].计算机工程与设计,2006,(27):56-57.