刘皓洁
摘要:软件作为军用装备的重要组成部分,在功能实现上起到关键作用。但由于我国软件研制能力水平不高,已成为制约武器装备发展和发挥效能的瓶颈。本文通过软件研制现状分析,提出以推行军用软件研制能力成熟度模型评价作为突破口,全面提升软件研制能力,确保软件产品质量。
关键词:软件工程 软件研制能力 软件质量
1 概述
随着武器装备的信息化和数字化程度越来越高,使软件在高新武器系统中的核心地位和灵魂作用逐步凸显。首先是由于软件实现的功能越来越多,以致大大超过了硬件;其次是由于软件不但能执行以前由专门硬件执行的许多功能,而且还能执行光靠专门硬件几乎无法执行的功能。软件在装备中承担的角色越来越重要,一旦发生质量问题,造成的影响将是极为严重的,甚至是灾难性的。软件质量已引起了军方各级装备主管部门的高度重视,如何提高软件管理水平,增强软件研制能力,提高质量消除隐患已经到了刻不容缓的地步。研制单位必须加强软件研制能力,保证软件质量,提高软件的可靠性、安全性。
2 国内外软件研制现状
2.1 国外软件研制现状
随着上世纪六十年代国外软件危机的发生,软件研制过程引起了国际软件界的高度关注,自1968年提出软件研制能力以来,为了解决“大多数组织很难在规定的时间和预算内开发出符合质量要求的软件”的问题,人们开始寻求更先进的软件开发方法和技术,但是结果却一直无法令人满意。直到1987年美国软件工程研究所(SEI)以W.S.Humphrey为首的研究组,发表的研究成果“承包商软件工程能力的评估方法”,该成果经过四年的应用实践在1991年发展为软件过程能力成熟度模型(CMM 1.0版)。它把软件过程按完善程度分为五个等级,描述了不同完善程度的软件过程的不同特点。这个方法描述了软件过程不断改进的科学途径,使软件开发组织能自我分析,找出尽快提高软件过程能力的策略,因此得到国际软件产业界和软件工程界广泛的关注和认可。美国许多承担政府重大软件项目的公司,如休斯飞机公司等,都一直在按照CMM模式不断改进软件过程以提高软件过程能力,又如洛克希德·马丁信息系统与全球服务分公司已于2009年通过CMMI5级认证。其他国家如日本、印度等的许多大软件企业也在按照这种模式发展。
2.2 国内软件研制现状
我国软件产业起步较晚,九十年代中期以前,绝大多数软件开发工作处于软件工程化前期的状态,软件过程很不完善,软件过程能力很低。主要体现在:一是人员角色混乱、比例失调,经常存在一人分饰多角现象;二是需求分析不足,直接影响设计和编码质量,国内1条需求对应1000行软件代码,而在美国则是1条需求对应10行软件代码;三是重功能、性能设计,轻安全性、可靠性设计,国内安全性、可靠性设计所占比例只有5%,而国外安全性、可靠性设计占40%。四是软件研制单位的测试和验证工作不充分,而国外非常注重软件测试工作,软件测试经费占所有研发费用的50%以上。近几年来,随着一些大型工程的迅速发展,如何改进软件过程已成为亟待解决的问题。工业和信息化部、国家科委等职能部门也成立了相关领导机构,推动CMMI在中国的实施。目前,不少承担国外软件项目或打算与国外竞争的软件单位,如鼎新、浪潮通软、东大阿尔派、用友、金航数码等公司都已经通过了CMMI认证。
在军用软件领域,2003年总装备部以CMM为蓝本,编制发布了军用软件成熟度模型(GJB5000-2003)标准,并开展军用软件能力成熟度评价试点。2005年,总装备部颁布了军用软件质量管理规定和军用软件定型管理办法。其中,军用软件质量管理规定在第四条中明确提出:“总装备部按照国家军用标准和有关规定对软件研制单位进行软件研制能力评价,并以合格名录形式予以发布。未达到规定的软件研制能力要求的单位,不能承担软件研制任务”。2010年2月,空军装备部、中航工业、中电集团联合下发空军重点型号软件研制管理办法,明确要求推行军用软件能力成熟度模型评价。由此可见,各级装备主管部门非常重视软件研制工作,自2003年总装颁布军用软件研制能力评价工作相关标准,开展评价工作以来,经过十年的努力,国内军工行业已有上百家研制单位通过了军用软件研制能力成熟度模型相应等级的评价。
3 软件研制能力提升方法
为了解决军用装备软件研制所面临的严峻形势,我们将通过以推行军用软件研制能力成熟度模型(GJB5000A)评价为突破口、以实施型号软件工程标准和规范的方式深入贯彻软件工程化思想,通过对研制单位软件研制现状分析、建立健全软件研制组织、梳理现有软件研制流程、建立软件研制规范体系、开展软件工程基础技术培训、选择试点项目全面落实GJB5000A、GJB2786A、GJB438B等软件工程标准的要求,提升软件研制能力。
3.1 推行军用软件研制能力成熟度模型(GJB5000A)评价
军用软件研制能力评价是我军为加强军用软件质量管理而开展的一项开创性工作。我们将以在型号中推行军用软件研制能力成熟度模型评价作为突破口,按照模型的要求,分析软件研制现状、制定具体的提升实施方案、建立健全软件研制组织、设立软件研制及管理工作的主管领导、梳理现有软件研制流程、建立软件研制规范体系、开展软件工程基础技术培训、选择试点项目全面落实软件研制规范体系的要求,全面提升软件研制能力,使软件研制工作达到军用软件研制能力成熟度模型评价的要求。
3.2 实施型号软件工程标准和规范
软件工程标准和规范是实施型号软件研制能力的依据和准绳,也是确保军用装备软件研制质量的技术保障。因此为了便于型号软件研制单位和软件开发人员实施,我们型号总体单位要根据型号的特点,制定一系列的针对性强、操作性好的标准和规范,并配有特定的培训教材,开展大量的培训工作,并选择研制单位和项目进行试点。从软件项目管理、软件研制过程、软件质量保证、软件配置管理、软件设计标准、软件需求标准、软件编码标准等方面,系统地规定了型号软件研制工作,确保我们型号软件开发过程规范化。
4 软件研制能力提升措施
通过在研制单位建立健全相应组织、开展现状差距分析、梳理软件研制流程、建立软件研制体系、搭建软件研制平台、加强人员技术培训、贯彻实施标准要求等工作任务,达到提升软件研制能力水平的目标。具体措施如图1:
4.1 建立健全组织机构
根据软件研制能力的要求,梳理和完善组织机构。确定主管软件研制任务的公司级领导和公司级部门,设立软件总师等相关管理岗位,全面负责型号软件的研制工作。要成立满足GJB5000A二级要求的组织机构,包括管理领导组、工程过程组、配置管理组、质量保证组、测量与分析组等,并明确落实各级组织职责。
4.2 开展现状差距分析
研制单位应组织单位内拥有一定软件研制工作经验的人员,同时借助外部力量,比对国内、外同行业软件实施优秀的企业,开展软件研制能力现状差距分析工作。从组织资源、技术能力、人员技能、研制流程等进行全方面的对比分析。明确自身弱点和长处,形成差距分析报告。
4.3 梳理软件研制流程
研制单位应结合软件研制特点,根据软件研制能力要求和GJB2786A、GJB5000A等软件工程标准的要求,系统梳理软件研制流程,使软件研制流程规范化、显性化,并结合信息化手段将软件研制流程纳入平台管理。主要体现在以下三个方面,首先收集整理本单位内现行软件研制的各项制度、规范,按照项目管理、工程管理、支持管理进行分类;其次通过与执行人员沟通了解分析现行制度、规范的实施问题;最后结合软件研制能力和各项标准要求,明确现行软件研制的各项制度、规范存在的问题和待改进方面。
4.4 建立软件研制体系
结合软件研制流程的梳理结果,组织建立一套系统的、条理清晰的、易操作和管理的软件研制体系。首先,通过流程的梳理了解现行流程的不足和不适用,结合标准要求,确定软件研制体系的层次架构;其次,组织本单位内具有软件工程基础的人员进行编制,编制过程中要定期进行相互交流、统一认识;再次,软件研制体系需要通过有关人员的认可,通过评审、试行的方式了解待改进和完善的地方,进行修订;最后,组织软件研制体系文件的宣贯培训。
4.5 搭建软件研制平台
结合研制单位开展的信息化建设,整合软件研制工具,适当增补,统一部署、规范管理,提高人员及设施配置水平,并按照软件研制管理规范和标准的要求,搭建软件研制平台,确保软件工作可视、可控。
4.6 加强人员技术培训
针对软件研制和管理人员,开展相关规章制度、软件研制体系、软件工程标准(国军标)、软件开发技术、软件测试技术、软件可靠性技术、软件安全性技术、软件质量控制与评价技术、软件重要度分级技术、软件验证技术、软件开发工具、软件管理工具等培训。提出策划技术能力提升的培训计划,并监控培训计划的实施,及培训效果的考核,建立健全培训机制。
4.7 贯彻实施标准要求
选择试点项目,严格按照已经颁布的体系文件进行实施,并对贯标项目实施进展进行监控,确保满足GJB5000A评价的各项要求。定期开展内部审查不断促进软件研制能力的提升,达到军用软件研制能力评价的要求。
5 总结及展望
本文从装备软件的发展出发,深入剖析了装备软件研制的现状,但由于软件本身具有“看不见、摸不着”的特点,并且长期以来军用装备软件研制的管理和开发人员质量意识薄弱,质量管理和控制手段缺乏,致使军用软件质量一直是制约军用装备质量的瓶颈。为改变军用装备软件研制的现状,本文给出了软件研制能力提升的方法和措施,它将改变我们软件研制单位软件开发工作模式,实施精细管理,但它仍需要通过不断探索,不断在实践中总结经验,不断丰富和完善,才能持续改进软件研制能力,进而提高军用装备软件质量。
参考文献:
[1]闫宇华、王黎明等.军用软件研制能力成熟度模型.中国人民解放军总装备部批准.GJB5000A-2008.
[2]卡内基梅隆大学软件工程学院.能力成熟度模型集成CMMI-
DEV V1.2.
[3][2005]装字第4号军用软件质量管理规定.