龙 捷 黄 莺 刘 飞
(北京航天时代激光导航技术有限责任公司,北京,100094)
以“三化”思想为指导构建激光惯组软件构件库
龙 捷 黄 莺 刘 飞
(北京航天时代激光导航技术有限责任公司,北京,100094)
文摘:分析激光惯组软件研制现状,对照企业软件研制中出现的问题,提出确定以“软件复用技术”和“软件构件化开发方法”作为激光惯组软件“三化”的具体实现形式,建立激光惯组软件构件库,实施后的预期效果显示可提高开发效率50%以上。
软件构件;激光惯组;软件复用;软件构件库;三化。
激光惯组是火箭、导弹等运载体的控制系统关键单机,型号软件是激光惯组不可分割的重要组成部分,具有物理依赖度低、灵活性较强等特点。与硬件相比,软件变更、运行和维护的成本与代价更小,型号新需求、新功能更多的是通过软件设计得以实现,这使得软件研发能力与型号软件质量变得尤为重要,从集团公司到各院所对于软件的重视程度不断提升。在当前“高密度研制、高密度发射、竞争性发展”的新形势和保证流程规范的前提下,如何确保型号软件的研制开发效率,如何保证又好又快地完成型号软件研制任务,是我们迫切需要解决的问题。
我公司自成立以来始终致力于激光惯组技术的研究,目前我们研制生产的激光惯组产品已广泛应用于航天、航空和舰船等领域,在多项国家重点型号任务上均有出色表现。我们以“三化”(通用化、系列化和组合化(模块化))思想作为指导,开展了激光惯组软件构件库的一系列研究工作。
1.1 工程化管理与基础技术工作不协调
按照软件工程化要求开展激光惯组软件研制工作是型号硬性要求,其核心思想是对软件进行项目管理、加强过程控制。但在具体实施过程中,始终难以摆脱文实不符、根据结果补记录等“两层皮”现象。技术基础跟不上管理要求的节奏,管理与技术不能形成相互促进的良性循环,不仅没有收到管理的效益,反而使管理成为包袱,使设计人员疲于应付各类检查。
1.2 管理模式不能适应新形势的需要
过去以型号为牵引划分团队精耕细作的研发模式使得我们更加关注型号纵向发展,这在型号数量较少时尚能运转良好,但随着型号数量激增,横向专业发展滞后的弊病开始显现。我公司现有软件开发与测试人员20多名,担负各类型号惯组研制任务40余个,包括国家级重点型号16个,如果还是按照原来的管理模式,则型号软件研制能力不足、资源不够的问题就会日益凸显。
1.3 重质量与保进度仍存在矛盾
近年来,国家对于装备质量的重视程度上升到了一个新的高度,采取了质量终身问责制等举措,不断强化质量意识,强调“质量就是生命”。作为装备制造体系内的科研企业,在当前高度竞争的态势下,要想谋求自身的发展壮大,在保证质量的前提下,保证交付进度同样重要。在装备行业整体大发展的背景下,承担的型号任务数量还在不断增长,总体要求的研制进度越来越紧,对于过程控制的要求越来越高,如何保证型号软件研制工作又好又快,兼顾品质和发展,成为我们面临的现实而迫切的问题。
上述三个方面的问题究其根源是软件研发能力不足和效率不高,不能与企业当前发展需求相适应。要实现软件研发能力与效率的全面提升,必须以系统性思维去认识问题、看待问题,着力解决好由于组织管理中存在的多重割裂所导致的资源低效运转甚至是无效运转。
通用化、系列化和组合化的标准化形态可表述为:通用化是“点离散”统一形态,包括产品通用化和技术通用化,通过对单一性的接口或功能进行统一,弱化其专有属性,形成普遍适用的基本单元;系列化是“线离散”统一形态,对一组对象中具有规律性的离散值与分立性进行统一,以较少的品种覆盖较大的应用范围;组合化是“面离散”统一形态,对较大规模的实体及其功能的多体、分布式的集成关系进行统一,集成后的主体以接口互换性为基础,具有整体互换性。
军工行业各领域长期的科研生产实践充分表明,“三化”是对产品进行系统性规范控制的有效手段,是提高型号工程质量和效能、缩短研制生产周期、降低研制成本的重要保证,是解决产品多样化需求和批量化研制之间矛盾的必由之路。
对照我公司软件研制中出现的问题:技术与管理脱节、型号与专业失衡、质量与进度冲突,可以发现,“三化”思想与我们的发展需求高度契合。
在长期的科研生产实践中,对于软件“三化”的需求其实一直存在。如何让软件实现快捷、高效开发,并且保证质量,很自然地就会想到要复用、要模块化。软件工程化各类标准和要求对于软件设计明确提出“模块化”要求。仅对单一型号软件考虑“模块化”,其实与“三化”的要求相差甚远,对于特定应用而言,较好的模块划分,可能并不适用于其它应用场合,不利于型号间的通用。深入贯彻“三化”思想,必须达到更高的抽象层次。
我公司以问题为导向,经过充分论证,形成激光惯组软件“三化”工作思路,如图1所示。
将型号软件研制这一综合性任务所包含的技术要素和管理要素进行拆解和集成,同时结合我公司GJB 5000A体系建设工作,进一步细分阶段、规范流程、明确工作产品,促进技术与管理的衔接融合。打通型号间壁垒,对各型号软件的碎片化需求进行归纳,从软件专业维度进行分类和整合,建立层次化需求图谱,统筹型号与专业的均衡发展,实现有限资源的高效运转。对已有型号软件工作产品进行再认识和再发掘,提炼和固化其中的可复用资源,将长期工程实践中形成的经验转化为后续工作的基础和资源,确保型号软件质量与进度的又好又快。
以“三化”思想为指导,经过广泛地调研与论证,我们最终确定以“软件复用技术”和“软件构件化开发方法”作为激光惯组软件“三化”的具体实现形式,以激光惯组软件构件库作为具体实施途径。
3.1 基本概念
D.Mcllroy于1968年在NATO软件工程会议上首次提出“软件复用”概念,阐述了发展以可复用源代码软件构件为基础的软件工业和利用COTS(Commercial Off The Shelf)构建工业化生产软件的观点。复用对象包括软件编码,以及软件生产过程中的其它劳动成果,如项目计划书、可行性报告、需求分析、概要设计、详细设计、测试用例、文档与使用手册等。从1968年至今,软件复用技术经过了4个标志性的发展阶段:①1968年~1978年,Mcllroy首次提出软件复用思想;②1979年~1983年,Lanergan研究人员通过对大量源程序进行分析,发现不同软件之间有60%以上的设计是重复的,同类软件中有60%以上的代码是冗余的,只有通过复用才能实现高效、可靠的软件规模化生产,软件复用逐渐成为业界共识;③1983年~1994年,美国IEEE软件工程汇刊和IEEE软件期刊先后出版了软件复用相关技术的专辑,欧洲专门设立了软件复用示范项目,这一系列举措使得软件复用技术理论体系得到了极大完善,实践方法取得了长足发展;④1994年至今,软件复用受到业界高度重视,越来越多的人员和机构投入到软件复用技术的研究和应用当中,使之成为继面向对象分析以及设计方法之后软件领域新的发展趋势。
基于构件的软件开发方法(component-based software development,简称CBSD)将通常“算法+数据结构”的开发模式转变为基于“构件开发+构架指导”的构件组装模式。与传统软件开发方法相比,CBSD具有的特点是:构件即插即用;接口与实现分离;高度稳定性;高度可扩展性。
3.2 关键技术
3.2.1 构件分类
构件分类技术是制定构件组装方法、使用说明以及出入库流程等管理要求的重要依据,直接决定软件构件的实现形式和相应的构件管理方法。
一般而言,构件可分为以下几类:
·面向用户的构件:用于函数封装、用户接口和人机交互;
·面向底层的构件:用于操作特定的计算机硬件资源以提供相应服务;
·面向数据库的构件:用于内部/外部数据的存储、读取和管理。
采用面向领域的方法来对构件进行分类则应该包括以下三类构件:
·通用基本构件,如基本数据结构、常用接口、程序框架等;
·领域共性构件,如导航算法、滤波算法等;
·应用专用构件,如各型号具体的接口控制和状态转换等。
参考领域工程相关理论,借鉴物理层、链路层、数据层和应用层的逐级抽象模型,制定《激光惯组软件构件分类方法》,作为构件库顶层约束文件之一,指导构件库的设计与开发工作,保证软件构件的合理规划和有效管理。
3.2.2 构件获取
通过对可复用信息与领域的分析,可以得到构件。可复用信息依赖于特定问题和特定问题的解决方法,具有领域特定性,识别、获取和表示可复用信息时可采用面向领域的策略,如图2所示。
构件获取以高可靠性为原则,优先考虑从已用的软件资源中直接获取。
对于已经完成设计定型的软件,其核心算法和主要功能模块经过长期飞行考核,被证明是成熟度高、可靠性高的实现形式,可以直接提取或作简单地适应性修改,形成可复用的构件。通过对型号软件研制工作进行归纳和总结,分析工程中积累下来的优秀实践,将具有潜在复用价值的构件提取出来,也可得到可复用的构件。无法从现用软件资源中直接获取的构件,需重新开发。通过制定《软件构件设计标准》和《软件构件编码标准》,对全新开发的软件构件进行有效的设计统筹和规范化约束,保证软件构件的设计水平和产品质量。
3.3 预期效果
为保证激光惯组软件构件库研究有序开展,针对构件库研究课题制定主要技术指标:①构件库通过自测试与三方测试,应实现“0”缺陷;②构件库可重用性100%;③构件库对于不同型号、不同目标机与宿主机覆盖率100%;④构件库中的标准构件对于各类型号软件顶层标准的符合程度不低于80%;⑤基于激光惯导软件构件库开发的型号软件中标准构件所占比重不低于50%。
以标准构件为基础的软件复用技术可从根本上提升型号软件质量,预计可降低我公司软件产品年均故障率40%以上,降低质量维护成本。采用构件化软件开发方法可大幅提高型号软件开发效率,以完善的软件构件库为支撑,预计可提高开发效率50%以上,降低研发成本。通过软件构件化技术,可有效降低设计人员技术门槛,压缩人力成本,减少人的因素造成的质量风险。通过制定系列软件模块化标准,可使软件产品的规范性和标准化程度得到提高,全面提升软件产品的技术水平和质量形象。
国外大量的研究和实践证明,软件复用技术是改进软件开发过程、提升软件开发效率和软件产品质量的一种有效的、可行的技术途径。我公司积极开展调研和论证,探索出以“三化”思想作为指导,开展激光惯组软件构件库研究的工作思路,全面提升软件研发能力与效率,使之与企业长远发展需求相适应。通过对软件复用技术与软件构件化开发方法的本地化,使其融入激光惯导嵌入式软件的科研生产实践,以期实现型号软件研制模式从“研发”向“生产”的转化,确保高效地产出高水品、高质量的软件产品,满足型号惯组研制的需要,满足我公司长远发展的需要。
[1]邓乐.型号产品“三化”工作探讨[J].科技视界,2014(5).
[2]麦绿波.标准化形式的理论谱系创建[J].中国标准化,2011(9).
[3]江天,李云刚.对海军装备“三化”工作未来发展的思考[J].论证与研究,2015,31(2).
[4]孟翠玲.产品研制中开展“三化”工作的思路研究[C].航空标准化与质量,2011(2).
[5]傅晓晴.产品型号标准化研究[D].天津:天津大学管理与经济学部,2012.
[6]Mcllroy D.Mass-produced Software Components.In:Buxton JMetc.Software Engineering Concept and Techniques.1968 NATO Confer ence of Software Engineering.New York∶Petrocelli/Charter,1969:88-98.
[7]Felix Bachman,Len Bass.Technical Concepts Component-Based Software Engineering Technical Report CMU/SEI-2000-TR-008,2000-05.
龙捷(1983年—),男,高级工程师,主要从事激光惯组系统设计与软件研制工作。