航天产品软件研制过程与项目管理、质量管理协同技术研究
2019-06-20中国航天科工集团有限公司
/中国航天科工集团有限公司
侯敏、冯大成 /北京计算机技术及应用研究所
随着航天产品软件高度集成化、智能化,软件复杂程度越来越高,但研制周期却越来越短,如何确保软件高质量、大规模快速交付,并快速有效处理发生的软件质量问题,提高用户满意度,是目前迫切需要与相关系统进行协调解决的问题。面对新的发展形势,需将影响软件质量的数字化、网络化、智能化环节进行技术提升,以强化技术、工具、方法、手段的研究和应用,提高软件质量。
一、现状和问题
1.现状分析
众所周知,影响软件质量的主要环节是软件研制过程,当前各软件研制单位正开展软件研制能力成熟度资质认证,以提高软件研制能力,确保软件质量。而为了确保软件研制过程产生的最终软件产品质量能按时交付,一般由项目管理部门负责进度计划和跟踪,质量管理部门负责确保软件产品质量问题监督与跟踪解决。
在软件工程化过程管理方面,软件研制单位一般都采用软件过程管理工具,各软件研制单位需陆续通过软件研制能力成熟度认证,且已达到能力水平的单位每年仍需接受年度监督审查,因此使用软件过程管理系统来支持软件过程持续改进是必然趋势。
在项目管理方面,各研制单位的项目管理部门一般使用项目管理系统开展相关工作。项目管理系统是以计划为驱动的平台,不同的岗位人员在不同专业系统中接收工作计划,完成情况自动反馈到项目管理平台中,并通过基于项目目标的流程管控及建设管理要求,实现量化绩效考核的项目管理,以规范工作流程,监控工作完成效果,提高管理效率和水平。
在质量管理方面,各研制单位质量管理部门一般使用质量管理系统开展相关工作。质量管理信息系统通过综合质量管理、质量问题归零管理、质量评审管理、质量体系建设、质量成本管理等功能,能够实现提高质量决策管理水平及业务工作效率、降低管理成本、最终提高产品质量的目的。
2.存在的问题
软件过程管理、项目管理和质量管理系统分别为软件研制部门、项目管理部门、质量管理部门提供了管理方面的信息化手段,有效地提高了管理水平,但各系统却分别在独立运行,没有实现互联互通,存在的问题主要表现在以下4个方面:
一是无法提供产品研制信息的全面视图。研制任务经总体分解后下达至各分系统,分系统再分别采用项目、质量、软件研制过程管理系统进行管理,导致同属于一个项目的数据却分布于不同的信息系统中,造成相互割裂的局面。
二是软件质量信息无法整合。目前,质量管理系统中存在软件质量信息,软件过程管理系统中也存在软件质量信息,但缺少必要的软件质量信息化手段,致使质量信息不能被整合,无法为软件质量改进提供决策支持。
三是项目总体监控困难。项目管理单位下达研制任务,但了解研制进度还是通过电子表格上报的形式,这种情况导致很难实时了解各项目的实际绩效,不能有效掌控风险。
四是无法保证实际软件研制数据的可信性。项目管理与软件研制的各个环节均有关联,但目前没有信息化手段能够直接获取数据,只能依靠人工上报方式收集信息,导致效率低且数据不准确、不全面。
综上所述,软件研制过程管理与项目管理、质量管理系统之间没有实现互联互通,导致软件数据在不同管理部门之间割裂开来,而软件的开发与管理本是围绕同样的一条软件研制主线而进行的工程与管理活动。因此,实现管理与工程信息化系统互通的需求越来越明显和迫切。
二、产品软件研制过程与项目管理、质量管理的数据流分析
1.软件过程管理工作流程
软件过程管理系统以流程牵引的方式引导任务完成。系统对软件过程管理的主要流程如图1所示。
图1 软件过程管理的主要流程
2.项目管理工作流程
项目管理系统是面向业务流程而非企业组织机构设计的系统,其项目创建流程如图2所示。
图2 项目管理系统工作创建流程
3.质量管理工作流程
质量管理信息系统能够实现提高质量决策管理水平及业务工作效率,降低管理成本,保证最终产品质量的目的。在此信息系统中,与软件研制相关的内容主要包括质量问题归零管理、质量评审管理等。
质量问题归零模块覆盖整个归零流程中的各个环节,包括正常的归零流程、归零督促流程以及例外放行流程,其主要功能如图3所示。
三、协同技术实施过程
1.总体方案
项目管理、质量管理与软件研制过程管理协同技术总体实现方案为:
首先,分析现有软件过程管理、项目管理、质量管理系统功能及其主要工作流程。
其次,梳理软件研制部门、项目管理部门、质量管理部门的业务工作流程和数据,确定各方相互之间的流程交互与数据传递方式,以及软件过程管理系统与项目管理系统、软件过程管理系统与质量管理系统的集成接口。
第三,制定项目及软件数据格式统一标准。真正的协同是在信息系统互联互通的基础上,对流转在不同信息系统中同样的实体信息采用统一的数据格式来传递,因此需要在分析集成接口的基础上,制定项目及软件数据格式统一标准来解决这一问题。
最后,在梳理流程和交互数据并确定了集成接口后,研究各个集成接口的实现技术,并将项目及软件数据格式统一标准融入到协同平台中,以便用技术手段保证用户对标准的遵从,进而减少人为原因造成的质量问题,最终提高产品的质量。
2.软件过程管理与项目管理系统的集成
将已有软件过程管理工具与项目管理系统进行柔性集成,并将实现软件过程管理工具的软件项目管理向上延展至软硬件项目的统一管理,项目管理系统所需数据通过软件过程管理工具报送,以确保数据来源的可信度。
在项目管理系统中创建项目时,要确定项目的工号信息;项目发布后创建年度/全周期计划,并进行计划分解;然后将任务下发给相关责任人,再由相关责任人继续进行任务分解,并定期进行任务状态反馈。
软件过程管理工具的研制遵循企业的项目管理理念,建立了项目层和软件层2个层级的管理模式,以产品的概念对软件项目进行统一管理。项目管理部门的项目计划经理建立产品信息后,由软件项目负责人建立软件项目,再进行项目策划,包括人员安排、任务分解、工作进度、质量保证和配置管理等详细内容,并按照项目策划开展各项工作。
对比分析项目管理与软件过程管理系统的工作流程,两者之间的交互过程如图4所示。
图3 质量问题归零模块的功能
图4 项目管理与软件过程管理数据交互
3.软件过程管理与质量管理系统的集成
质量管理系统关注的与软件研制相关的内容主要是质量问题归零管理、质量评审管理等方面内容,因此两者的集成主要从这2个方面来开展。
针对质量问题归零管理,围绕以下几个主要问题进行研究:
一是明确软件质量问题归零管理与软件研发过程的结合点,包括在项目结束前进行的质量问题归零和项目结束后维护过程中质量问题归零;
二是明确质量问题归零管理签审流程应放在软件过程管理系统还是在质量管理系统中,以避免二者进行重复签审的问题;
三是确保各级质量管理部门项目软件信息的一致性。由于质量管理部门需要统计的项目软件列表目录内容是系统级计划内容,而纳入软件过程管理工具中的软件列表是分系统级,当有些项目软件不在下级计划管理范围内时,建议从系统级相关管理部门统一下发计划,以保证质量管理部门能在软件过程管理工具中获取到相关数据。
针对质量评审管理,围绕以下几个主要问题进行研究:
一是如何保证系统级质量管理部门需要统计的项目软件质量评审相关信息能存在于软件过程管理工具中;
二是明确质量管理系统要关注哪些数据,需要软件过程管理工具报送哪些数据,包括任务书变更、里程碑节点(如任务书、软件需求、第三方测试、验收)评审问题,以及评审问题缺陷率、关闭率等。
图5 协同平台总体框架
4.协同平台的实现
项目管理、质量管理与软件研制协同的总体实现方案是以软件过程管理工具承载的软件研制信息为核心实体,将项目管理系统和质量管理系统进行柔性化集成,以形成产品软件研制与项目管理、质量管理协同平台,协同平台的总体集成框架如图5所示。
各单位的软件过程管理、项目管理、质量管理系统组成网络。项目管理系统将各自独立的服务器通过网络连接起来,并对现有系统和项目管理系统进行网路服务接口扩展,进而解决系统之间的数据传输问题。软件立项信息依据项目管理系统中的项目管理计划,任务完成情况依据系统中软件项目实施完成情况,以实现科研与生产环节的有效衔接,避免科研计划与生产实际执行情况不一致的问题,进而可通过项目管理系统从宏观上全面了解整个项目的总体情况。
后续,以软件过程管理工具为基础,将软件需求、设计、验证等多种软件研制工具纳入到协同平台中,形成软件协同研发与管理的一体化平台,实现软件全过程统一研制与管理,以支持机械、电子、软件多方面协同工作,进而从根本上提升航天产品软件的研制与管理水平。