机载大规模复杂系统软件开发技术研究
2019-03-12李红军牟明崔西宁
李红军 牟明 崔西宁
关键词: 软件开发; 模型开发; 软件复用; 仿真验证; 机载软件; 航空电子系统
中图分类号: TN99?34 文献标识码: A 文章编号: 1004?373X(2019)05?0111?04
Research on software development technology for large?scale complex airborne system
LI Hongjun1, MU Ming2, CUI Xining2
(1. Military Representative Office of PLA Stationed in AVIC 631 Research Institute, Xian 710065, China;
2. AVIC Xian Aeronautic Computing Technique Research Institute, Xian 710065, China)
Abstract: The problem that the traditional airborne software development method can′t satisfy the large?scale complex airborne software development due to the upward tendency of airborne software scale and complexity of integrated modular avionics system. The software development method taking demand management, module development, simulation verification, product reuse, tool support and process management as the cores is proposed to solve the credibility, certainty, robustness and continuity of the integrated large?scale airborne software. The development practice of the large?scale airborne software such as domestic airborne embedded operation system can improve the development quality of software. The method has high reference value for the similar software development.
Keywords: software development; model?based development; software reuse; simulation verification; airborne software; avionics system
近半个世纪以来,在作战需求牵引下和先进科学技术的支撑下,航空电子系统结构经历了从分立式、联合式、综合化到高度综合化的发展过程,机载软件随着航空电子系统的更新换代,功能不断扩展、规模不断增加。基于传统的软件开发研制方法,软件的开发与维护工作量大幅增加,软件开发成本激增,几近极限。本文从分析机载软件研制中面临的问题出发,就开发技术、仿真验证和项目管理等提出解决措施和建议。
1 机载软件的发展趋势
本文中的机载软件特指高度综合或复杂系统中的大规模机载软件。“高度综合”指用于完成或提供多重功能的系统;“复杂”指系统的安全性不可能仅通过试验来证明,系统的逻辑如果没有分析手段的帮助很难得到理解[1];“大规模”指代码行数在百万行以上的机载软件。
美国F?35飞机是最为典型的第四代战机,机载软件在该型飞机综合化航空电子系统中承担了CNI(通信、导航、识别)、FLC(飞行控制)、显示处理与控制、信号与信息处理、火控解算、外挂物管理等22个领域87个专业方向[2]的任务。软件规模超过1 000万LOC,大约80%航空电子系统功能已由软件实现。而第三代F?16战机,软件规模为12.8万LOC,由软件实现的航空电子系统功能约为40%。由于软件的大量使用,使机载软件的失效可能导致人身伤亡、环境危害,因此对软件的安全性要求越来越严。
总体上,机载软件呈现出应用范围广、软件的规模大、综合化程度高、安全性要求严等趋势,国内机载软件的发展和此类似,与发展趋势伴随的是软件开发难度增大、潜在缺陷增多、质量难以控制,这就要求通过分析存在的问题,研究更为有效的软件设计方法以提高软件质量。
2 机载软件研制中存在的问题
2.1 由机载软件规模增大凸显的问题
在面临开发1 000万行LOC级别的软件时,国内(B级以上软件)220行/月的开发效率[3]和手工编码6‰软件千行代码缺陷率,将使软件开发工作量巨大,产品存在6万个软件缺陷(这意味着严重的质量隐患), 开发效率、软件质量存在突出问题。
2.2 由综合化产生的问题
综合化使需求的数量激增、需求之间的关系呈强耦合,需求识别不充分、成熟度不高成为一种客观现象。需求数量激增,也带来需求传递的脆弱性问题[4]。大规模复杂系统软件一般都是由多家单位联合研制,系统综合验证问题成为导致F?35飞机研制进度一再拖延的主要原因[2]。如何对大规模复杂系统软件进行综合验证,可采用系统化的方法保证机载软件的安全性能得到解决。
2.3 问题的本质
机载软件的问题表现为:开发太慢、故障太多、成本太大、不够安全,如何以可接受的价格构造具有得到保证的功能和质量的系统是机载软件开发面临的主要技术和科学挑战[2]。问题的本质是:可信、健壮、复杂系统的设计问题;系统的确定性、连续性和系统的复杂性之间的矛盾问题[5]。
解决这些问题必须从软件编码、需求工程、缺陷控制、故障检测、质量管理等技术入手,进行改进和提高。
3 大规模软件开发技术研究
本文在总结、梳理相关国内外技术资料的基础上,系统地研究了机载软件开发技术。经过机载大规模软件研制实践,针对机载综合化大规模机载软件提出“需求管理、模型开发、仿真验证、产品复用、工具支撑、过程管理”为核心的软件开发方法,总体框架如图1所示。
3.1 全生命周期需求管理
在瀑布模型的基础上,采用迭代的方法,将需求变更引入软件开发的各阶段,实现融合增量、迭代和进化式思想的综合开发;引入基于模型的需求分析,解决需求识别的不充分和传递的脆弱性问题;实现以需求为中心的全生存周期需求管理模型,如图2所示。
3.2 基于模型的開发
美国自动机协会(SAE)发布的《安全关键嵌入式系统确认的挑战》中: “对于大规模复杂软件,基于模型的开发是提高系统工程和嵌入式软件系统工程的关键”。模型开发是目前公认的解决开发效率、开发质量、开发成本问题的最佳工程实践[6]。本文提出可行的基于模型的开发过程如图3所示。
3.3 软件仿真验证
针对复杂系统的综合验证问题,波音、洛克希德马丁、SEI攻关后提出,建立于软件仿真技术之上的“系统架构虚拟综合项目”,期望采用基于软件仿真技术的“先综合后构建”的开发方法,使得在开发初期和整个生命周期中都能够基于软件仿真进行功能和非功能需求的分析,尽早发现系统中的错误,以降低花费、开发周期和风险。基于仿真技术的系统/软件开发过程如图4所示。
3.4 工具链支撑
针对各开发阶段都应安排相应的开发工具,以辅助开发活动。但目前,在工具之间往往存在数据不能兼容的情况。对软件研发过程中所涉及的需求分析、建模、仿真及测试验证等工具开展集成,通过数据转换工具,打通工具数据接口,建立有效的工具链,对于软件开发工作意义重大。
3.5 软件复用
实践证明,软件复用对于提高软件研发质量和效率作用明显。面对机载软件规模、复杂度的挑战,可采用软件复用,以支撑产品快速、高效的开发要求。软件复用包括开发可复用构件、对可复用构件的集成和组装,关键因素如图5所示。
3.6 过程管理
软件产品质量受制于过程质量是业界的共识,提高软件过程质量(能力),是保证软件质量的根本措施。CMMI作为一种典型实践,对于推动组织软件能力提升,作用明显。GJB5000A?2008《军用软件能力成熟度模型》是相应的国家军用标准。
2013年颁布的GJB 8000《军用软件研制能力等级》对软件规模、安全等级对应的承制单位能力要求进行了规定,要求对有效代码行在10万以上的A级软件,软件研制单位必须达到五级能力。因此,实施GJB5000A过程管理是机载大规模复杂软件研发的必由之路。
3.7 安全性分析
目前,型号软件安全性设计主要依据的军用标准包括GJB/Z 102?97《软件可靠性和安全性设计准则》、GJB/Z 102A?2012《军用软件安全性设计指南》、GJB/Z 142?2004 《军用软件安全性分析指南》等。这些标准是基于软件本体的安全性分析方法,即从软件自身出发,以工程化为基础,结合软件生命周期过程的各阶段,考虑安全性设计的实现。
而软件安全性(Software Safety)是指软件对既定系统安全性的贡献,衡量的是在特定环境下和规定时间内不会因软件功能失效或需求缺陷等引起系统危险的能力。这种基于本体的分析方法对大规模软件安全性分析存在不足,因为软件安全性离不开系统,只有在特定系统上下文环境中才能讨论其安全性[4]。
民机中普遍使用的基于系统的安全性分析方法[7]被认为是解决目前复杂系统软件安全性分析的最好方法。本文提出一种基于模型的开发过程,引入民机适航中软件安全性分析的方法,如图6所示。
4 结 语
综合模块化航空电子系统架构的出现,使机载软件的规模和复杂度呈现指数增长,传统的机载软件研制方法已不能适应技术发展的需要。本文首先分析了目前软件研制存在的问题,借鉴国内外先进研究成果,系统地研究了机载软件开发技术,针对机载综合化大规模机载软件提出“需求管理、模型开发、仿真验证、产品复用、工具支撑、过程管理”为核心的软件开发方法,经过国产机载嵌入式操作系统等机载大规模软件研制实践,可有效提高软件安全性,降低软件缺陷率,全面提高软件研制质量。该方法对于同等类型大规模软件的研制具有很强的参考价值。
参考文献
[1] 刘畅.航空机载软件质量评价技术研究[R].北京:中国航空综合技术研究所,2012.
LIU Chang. Research of airborne software quality evaluation method [R]. Beijing: China Aero?Polytechnology Establishment, 2012.
[2] 國科环宇.美军F?35项目软件研制与测试问题研究[R].北京:国科环宇,2014.
UCAS. Research of F?35 plane software development and test problems [R]. Beijing: UCAS, 2014.
[3] 空军装备部研究院.空军航空武器装备软件计价办法研究[R].北京:空军装备部研究院,2013.
Aeronatical Armaments Research Institute. Air force aeronatical armaments software price evaluation method research [R]. Beijing: Aeronatical Armaments Research Institute, 2013.
[4] 李红军.先进飞机综合模块化航空电子系统研制质量监督研究[R].西安:中国人民解放军驻六三一所军事代表室,2014.
LI Hongjun. Quality supervision research on integrated modular avionic systems development [R]. Xian: Military Representative Office of PLA Stationed in AVIC 631 Research Institute, 2014.
[5] 周耀荣.安全关键嵌入式系统设计面临的全面挑战[R].西安:中航工业计算所,2014.
ZHOU Yaorong. Challenge of safety critical embedded system design [R]. Xian: AVIC Xian Aeronautic Computing Technique Research Institute, 2014.
[6] 牟明,邢亮.模型开发在型号软件研制中的应用研究[J].航空计算技术,2015,45(3):76?79.
MU Ming, XING Liang. Research on application of model?based method in airborne software development [J]. Journal of aeronautical computing technique, 2015, 45(3): 76?79.
[7] 田莉蓉,牟明.适航产品本地化开发过程研究[J].航空计算技术,2015,45(3):87?91.
TIAN Lirong, MU Ming. Application of airworthiness standard in airborne product development procedure [J]. Journal of aeronautical computing technique, 2015, 45(3): 87?91.