近年来,软件产品在航天jungong项目的作用越来越大、关键性越来越高,特别是现场可编程逻辑门阵列(FPGA)纳入航天软件管理范畴后,软件配置项体量也越来越大,这对软件研制过程规范性和软件产品质量都提出了更高的要求。
通过GJB5000A软件体系的建设和运行,可以规范软件研制过程,提高软件研发效率和软件质量。为提高军用软件工程专业能力、规范软件研制过程,基于GJB5000A模型,开展与GJB9001C和软件工程化融合的软件管理要求本地化实践,是软件体系在组织内有效实施、推广和取得能力提升的关键。
为了加强军用软件产品的研制质量,通过引进国外先进的管理经验,等同采用CMMI 制定军用软件能力成熟度模型即GJB5000,用以评价软件研制单位是否具有相应的软件研制能力。2003年原总装备部正式颁布了GJB5000《军用软件能力成熟度模型》,2008年颁布了GJB5000A,已成为中国装备软件建设和发展的重要标准。
GJB5000A描述的军用软件研制能力成熟度模型采用分级表示法,按预先确定的过程域集来定义组织的改进路径并用成熟度等级进行表示;标准将软件研制能力成熟度分为五个等级,其中1级(或ML1)称为初始级,2级(或ML2)称为已管理级,3 级(或ML3)称为已定义级,4 级(或ML4)称为已定量管理级,5 级(或ML5)称为优化级,如图1所示。
军用软件研制能力成熟度模型鼓励关注所属成熟度等级中的过程域[4。
业界很多单位通过GJB5000A 二级体系认证后,在推广过程中存在类似的实施难点,在很大程度上制约了GJB5000A体系的全面推广。突出表现在以下几方面:
(1)项目管理和支持管理成本增加,软件工作产品质量改善有限。因二级过程域以项目管理和支持管理过程域为主,而工程管理过程域只有“需求管理”,随着管理成本的持续增加,生产效率短期内不升反降,软件工作产品质量改善不明显,削弱了项目组和组织对体系推广的积极性和信心。
(2)航天jungong产品以硬件研制为主,惯性思维管理意识转变困难。航天jungong产品研制单位大多以硬件研制管理模式为主导,软件以嵌入式软件为主,软件产品大多作为硬件产品的附属存在,软件产品概念意识普遍不强。硬件产品研制的传统惯性思维,增加了软件产品管理意识转变的困难;二级体系通过后未能在项目层面产生积极效应,实施成果未能得到项目层面的认同和应用,加大了体系推广的难度。
(3)软件体系文件照搬标准同质化,未能与研制实际本地化结合。二级体系文件照搬标准,或者直接借鉴其它单位好的体系文体,与研制实际情况缺少本地化结合,推广时不能被项目层面认可和应用。不少单位存在GJB5000A和GJB9001二套不同的质量管理体系文件,与软件工程化要求和软件产品保证大纲要求还存在差异性,更加大了项目层面体系推广的阻力。
针对软件体系推进过程中的难点,结合光电载荷产品特点和组织现状,从策划多体系融合的本地化体系文件、推进软件专业化能力建设和开展体系推广实施等方面探索实践。
策划多体系融合的本地化体系文件
(1)将软件工程化、GJB9001C 等要求映射到GJB5000A三级标准条款,在组织内建立统一的“以GJB5000A 三级为基础、覆盖软件工程化和GJB9001C要求”的多体系融合的本地化体系文件,如图6所示。制定管理过程和工作产品裁剪指南,可区分重点型号、一般、地面、民用、预研等。
(2)在常规的瀑布、迭代、原型开发、混合模式等软件生存周期模型基础上,针对开发周期覆盖研制全过程(包括初样和正样等研制阶段)的软件,结合实际制定覆盖型号全过程的软件生存周期模型,如图7所示。
(3)按本地化体系文件要求,组织策划软件研制过程管理程序、规范文件和操作层文件等体系文件结构(如图8所示),作为组织内部统一、唯一的多体系融合的软件体系管理要求,在全组织范围内实施、推广。
根据组织的实际情况设计各过程的适用性表单,有效推动GJB5000A 的本地化运行
目前光电载荷产品品种多,软件大多为中小规模、分布广的嵌入式软件,存在型号项目软件研制力量分散、专业力量不足的问题,软件专业化发展受到制约。建议在组织架构层面设置软件专业研制部门,以软件测试为牵引,并提供各类载荷共用模块开发及软件技术研发,由软件专业研制部门负责软件体系日常推进及维护和软件工程化工作(包括PI、RD、ReqM、TS、Val、Ver等工程过程域,CM、QA、MA 等支持过程域等)。
通过组织级软件专业化能力建设,不仅可以提高软件研发效率、节约成本,还有利于提升软件产品的成熟度,不断提高软件产品质量。实施统一的软件专业研制,既可提高软件研制过程的符合性,又能使软件从业人员更好地体现自我价值,有利于软件研制队伍的可持续稳定发展。
5开展软件研制过程管理体系实施按三级体系运行“五覆盖”(覆盖软件应用领域、三级过程域、生存周期模型、研制部门和重点型号软件)的要求,在组织内部以软件专业研制部门为主导,在加强软件项目科学管理、做实软件工程过程活动、做细软件项目支持过程等工作基础上,开展软件研制过程管理体系实施,必将提高软件工程化专业能力和体系过程符合性。
下面笔者根据GJB5000B与GJB5000A的变化,对实施GJB5000B的增量进行估算。这个估算基于以下假设进行:
以GJB5000体系建设工作量估算出来的增量比例与所有实施工作有相同的增量比例。
每个过程域有1人负责。
每个过程域体系完成编写、审查、修改、评审、批准等为5个工作日
GJB5000B内容增量与工作量增量比例相同。
GJB5000A有7个过程域,GJB5000B有12个实践域,如果简单地以过程域的数量来估算实施GJB5000B的增量,基于前面的假设,GJB5000A体系建设工作量为35人天,GJB5000B体系建设工作量为60人天,增量比例为71%。这个增量比例没有考虑具体过程域内容要求的变化,这种估算比较粗糙,下面根据实施GJB5000B二级在内容上的增量,重新考虑工作量的增量:
内容增量为0的,表示GJB5000B与GJB5000A实施该过程域的要求基本相同;内容增量为的,表示新增的过程域。其中领导作用和实施基础是两个GJB5000B新增的实践域,但在实施GJB5000A的共用实践之时也有部分要求,内容增量并不是,认为GJB5000A多实施了两个过程域,调整了GJB5000A的工作量估算值。
按照图中的内容增量比例,重新计算GJB5000体系建设工作量估算值:GJB5000A体系建设工作量为45人天,GJB5000B体系建设工作量为70.4人天,增量比例为56%。
GJB5000A有18个过程域,GJB5000B有21个实践域,如果简单地以过程域的数量来估算实施GJB5000B的增量,基于前面的假设,GJB5000A体系建设工作量为90人天,GJB5000B体系建设工作量为105人天,增量比例为17%。这个增量比例没有考虑具体过程域内容要求的变化,这种估算比较粗糙,下面根据实施GJB5000B三级在内容上的增量,重新考虑工作量的增量:
内容增量为0的,表示GJB5000B与GJB5000A实施该过程域的要求基本相同;内容增量为的,表示新增的过程域。注意,部分二级已经实施的实践域因为在三级有新增的要求,其内容增量与二级时也会有所增加。
按照图中的内容增量比例,重新计算GJB5000体系建设工作量估算值:GJB5000A体系建设工作量为90人天,GJB5000B体系建设工作量为119.7人天,增量比例为33%。
以上估算工作量中使用的内容增量比例为个人观点,可能存在很大出入,给出的实施GJB5000B二级增量56%,三级增量33%的数值仅供参考,实施GJB5000B二级的工作增量应比实施三级的高是肯定的,因为GJB5000B二级除了增加了2个特色实践域(立项论证和运行维护)外,还增加了原来属于三级的需求开发、验证、确认等过程域;而GJB5000B三级除了特色实践域外,只增加了原因分析一个不属于三级的过程域。
2022年3月至2024年2月为标准换版过渡期。过渡期间,按照GJB5000B标准开展有关培训,编制体系文件,试运行并完成内部评估;可按GJB 5000A标准或者GJB5000B标准进行军用软件研制能力评价。2024年3月后,全部贯彻实施GJB5000B标准,并按此进行军用软件研制能力评价。