面向航天领域的软件产品化体系建设研究与实践

2022-02-26 05:25王保录于喜红薛凯肖振纪祖赑占续军空间物理重点实验室
航天工业管理 2022年1期
关键词:产品化插件型号

王保录、于喜红、薛凯、肖振、纪祖赑、占续军 /空间物理重点实验室

随着信息技术的快速发展,软件在航天装备中所占比重越来越大,航天飞行器作为典型高精尖产品代表,集中体现了系统集成化、智能化的发展方向,航天飞行器软件的规模及复杂度呈指数级增长。传统软件开发方式是面向代码、从无到有的手工作坊式,按软件配置项分配人力资源,各软件研制缺少顶层设计,没有统一的技术框架和标准,研制水平严重依赖个人能力,难以开展成果共享。型号各自为战,软件重用效率不高,而且主要为代码级的白盒重用,质量风险较大,开发、测试及后期维护成本居高不下。再加上软件处于型号研制流程的末端,因此,软件短线问题时有发生。这种软件研制模式难以满足型号质量、进度及成本的要求,难以适应新形势下“高质量、高效率、高效益”的发展要求。因此,必须找到能够支持快速迭代、易开发、易维护的高质量软件产品研制和交付方法,通过强化产品线、弱化型号线,由产品牵引型号软件研制,实现降本增效。

本文以“产品牵引型号”为战略指引,以航天飞行器型号软件研制为应用背景,开展软件产品化体系研究,涵盖管理体系、产品体系、产品化技术与信息基础保障体系3 个方面。以此为基础开展软件产品化体系研究与实践,设计基于重用产品的型号软件研制流程,打破型号边界,由产品化人员统筹各型号需求,牵引型号研制,使型号与产品化融合,实现横向一致、降本增效。

一、管理体系

基于GJB5000A 体系框架,建设了软件产品化制度体系树,为实现产品化与型号融合提供了制度支撑,如图1 所示。制度体系树分为管理制度、技术标准和作业指导书三大类。管理制度为三级架构,院级产品化管理制度为顶层约束文件;所级标准《软件重用指南》为二级文件;软件产品化研制流程相关制度作为三级文件,为基于重用产品开展型号软件研制提供了详细的制度约束。

图1 软件产品化制度体系树

工作体系方面,借鉴互联网组织架构,建立产品总监、产品经理、软件设计三级管理体系,推行产品经理负责制。按产品组织研制队伍,每类产品分配主管产品经理,统筹各型号需求,牵头开展产品化研制,进行跨型号通用设计。根据软件专业特点,制定了产品化工作考核与激励制度,从重用产品的研制数量和质量、软件设计人员在开发中选用可重用产品的数量与比例等多维度考核工作开展情况,激励设计人员主动开展产品化工作、主动采用产品化工作成果。

二、产品体系

产品体系重点包括型谱建设与货架建设。通过开展领域需求分析,将重用软件产品按不同颗粒度划分,具体分为构件(含插件)、框架、基本型软件和通用型软件4 个类别。

(1)构件。具有确定的软件独立功能,可重用的软件单元或模块、组件的统称。可重用构件封装了设计和实现,通过对外接口向高层的应用提供服务,可独立交付。一般是无法独立运行的代码、库文件或功能单一的工具类可执行程序。

(2)插件。实现了标准顶层接口的可重用构件,即标准构件,适用于面向对象软件开发。

(3)框架。一系列技术、功能模块和产品的集合,具有较为复杂的软件功能,具备相对固定的架构形式,是一种特殊构件,能够作为其他构件开发的依赖对象,能够作为构件或插件的宿主程序。

(4)基本型软件。实现了领域内某一类基础应用需求的软件产品,需要进行功能定制才能满足个性化需求,如增删部分构件。基本型产品在具体型号应用中尽量不对代码进行修改或仅少量修改。

(5)通用型软件。无需进行功能定制或需要修改少量配置参数即可实现完全重用的一类软件,可以完全覆盖领域需求。

为更好满足型号不同层次质量要求,建立构件成熟度3 级模型,成熟度级别由低到高依次为1 级、2 级和3 级,具体定义如下:

(1)1 级。经过开发方测试;

(2)2 级。经过系统试验考核;

(3)3 级。经过第三方测试。

型号软件成熟度定级时可参考重用构件成熟度,避免重复测试。成熟度提升需经产品评审小组评审通过。当构件发生更改后,视更改级别成熟度降级,需补充相应测试或试验验证才能提升成熟度,各等级变化示意见表1。

表1 构件变化后产品成熟度等级变化示意

1.平台化开发技术

软件重用技术是软件产品化的技术基础。本文聚焦软件重用技术,分析领域软件特点,选择平台化开发作为软件重用的基础路线,分别研发了标准化的嵌入式软件分层架构和桌面应用软件“平台+插件”架构,各型号软件研制必须选用对应的基础平台框架,如图2 所示。

图2 嵌入式软件分层架构与桌面应用软件插件式架构图

嵌入式软件分层框架设计分离了各功能接口,使每个功能模块均可作为单独功能使用。用户需求发生变更时,只会涉及部分构件的适应性修改,不会对其他构件的正常工作产生影响,修改完成以后重新链接生成可执行文件即可重新生成软件产品。同时,各模块对其内部结构和实现细节进行了封装,通过提供外部接口来实现与其他构件和系统的通信,调度逻辑模块灵活实现各功能之间的统一调用与编排。与硬件驱动分离,有利于软件系统修改、维护以及在不同硬件运行环境间的移植,从顶层规划上保证软件的修改不影响其核心功能以及一些关键的设计抽象。

桌面应用软件“平台+插件”架构使软件的功能和模块在划分中的相互耦合性更少,功能和模块具有更大的独立性,可以提高软件开发并行性。基于该架构可以完成功能模块在系统中的替换、增加及减少等操作,解决开发中需求不确定性问题,而且方便软件的升级和维护。该架构可以实现插件级黑盒重用,有效提高软件的重用率。

2.插件技术

插件是根据应用软件程序的标准化接口所编写的用于实现特定功能的程序模块,是一种具有标准化接口的构件。利用插件技术可以实现在程序主体不被修改的基础之上,加强和拓展计算机软件的作用。本项目以标准化带动产品化,利用面向对象语言的多态特性,设计一种重用构件接口,已形成所级标准规范。在接口的设计上,仅规定最为基础且通用的6 个函数方法,见表2。功能覆盖了航天型号桌面应用软件业务单元的基本操作。所有插件实现必须实现此接口,使领域平台框架可以对插件进行统一管理,实现插件式的“即插即用”功能扩展。

表2 插件接口函数说明

插件开发方按照标准接口定义实现不同颗粒度的功能单元,并部署到插件库。开发人员根据业务需要利用自动化脚本技术动态组合装载、运行。插件使用XML 作为描述文件,描述文件供平台读取插件信息,包括插件的名称、版本、作者、Email、描述和程序名。

三、信息基础保障体系

1.货架产品管理系统

为方便重用软件货架产品管理,在型号软件配置管理工具的基础上开发了重用产品管理系统,作为重用软件产品资产库。以构件为基本单元进行管理,管理方式比面向型号的配置管理系统更为灵活,管理成本更低。依托构件库管理重用产品技术状态,产品缺陷及技术状态变化可以即时通知使用者,使软件产品化研制全流程实现信息化。

重用货架产品包括可重用构件、可重用软件和可重用软件框架三大类,其管理形态主要包括源代码、库文件和可执行程序。每一类货架产品都以数据包的形式进行管理,数据包全集包括构件说明、源代码、库文件、可执行程序。数据包可根据软件特点进行裁剪,具体如表3 所示。

表3 货架产品数据包

货架产品管理系统包含构件维护人、配置管理员、项目成员、产品经理和产品总监5 类角色,共同参与完成对货架产品的入库、出库、更改、重用等流程管理。

2.软件工业化生产

软件的产品化不仅仅意味着软件产品的可重用,而是软件的生产过程也要进化到工业化产品生产水平。通过将软件生产提升到工业化生产水平,将大幅提高软件生产效率,提高软件产品质量,形成规模化经济效益。

软件研制过程包含需求分析、设计、编码、测试、配置管理、部署、项目管理等诸多活动,大部分的工作仍然是手工作业为主,有些环节有信息化管理手段。要实现工业化生产,其核心就是要解决如何让研发的各个过程能够无缝衔接,提高自动化水平。通过技术创新,将开发人员从简单重复性的工作中解放出来,处理更高级、更关键的问题。

本文基于开源Jenkins 持续集成系统实现了软件流水线平台,将一系列分析、验证、确认和测试工具进行集成。通过自动化的方式对代码或插件开展静态分析、 单 元 测试、配置项测试,从而提高软件测试效率和精度。软件流水线将一系列开发和组装工具进行集成,代码或插件通过形式化的需求描述,进行模型翻译或成熟插件复用,能够自动生成工程代码并组装成应用软件,从而避免手工开发、集成和部署引入的缺陷。此外,因软件流水线能够充分节省资源,缩短研制周期,软件流水线的快速反馈特性可以让用户频繁确认,从根本上避免“需求误解链条”造成的“需求理解二义性”。

四、产品化与型号融合实践

设计基于重用产品的型号软件研制流程,促进型号与产品化融合,实现横向一致,如图3 所示。产品化人员全面介入型号软件研制,同类软件由产品经理统筹各型号需求,参与工作产品(文档、代码)审查。在型号软件入库流程上增加产品经理会签环节,由产品经理对工作产品的产品化要素把关,保证产品重用比例及重用质量,具体包括:

图3 基于重用软件产品的软件研制流程

(1)型号软件研制人员和产品经理共同会签任务书,有效合并同类需求,消灭不必要的个性需求;

(2)在软件需求分析阶段,产品经理参与需求分析,标识可重用构件和待开发的重用构件,避免错误重用或未重用现有资产。对重用产品的测试需求进行初步分析;

(3)在测试阶段,产品化经理参与测试计划评审,识别免测项,避免重复测试。

基于重用产品的型号软件研制流程的关键环节包括:

(1)重用申请

型号软件设计发起构件重用申请流程,与重用构件维护人达成一致,建立构件与型号配套软件的引用关系。

(2)变更通知

重用构件变更通过邮件提醒构件的关注人和重用申请人,做到更改影响及时传递。

(3)重用反馈

型号人员就重用构件的使用情况向构件维护人员进行反馈,反馈内容包含使用方式(完全重用/修改重用)、修改程度(修改代码行百分比)、发现问题数及问题详细描述和改进建议。

以型号中普遍配套的中心控制软件为例,基于测发控领域平台框架进行插件组装,平均重用插件超过15 项。中心控制软件产品经理会签各型号任务书,组织产品队伍基于型号需求开展插件配置和组装,向型号人员交付软件。

本文以航天装备软件为应用背景,开展软件产品化体系建设,从管理体系、产品体系、产品化技术与信息基础保障体系3 个方面分别进行研究与实践,实现了一套完整的面向航天装备软件的产品化体系。该体系打通了产品软件与型号软件之间的边界,使型号线与产品线融合,实现了横向一致、降本增效。

猜你喜欢
产品化插件型号
固体火箭发动机点火装置型号与产品化一体化工作模式初探
用好插件浏览器标签页管理更轻松
俄罗斯MC-21-300客机获得型号合格证
型号政工师建设的探索与实践
请个浏览器插件全能管家
太阳能电动车的设计与试制
基于jQUerY的自定义插件开发
即时分享相机
基于工程化方法的高职专业建设机制研究
笔记本型号解码之联想篇