APP下载

基于SCADE的机电管理软件开发方法研究

2022-04-12邢志伟王伟陆志肖宋治惠胡尊帆

电子制作 2022年7期
关键词:管理软件功能模块代码

邢志伟,王伟,陆志肖,宋治惠,胡尊帆

(中国直升机设计研究所 机电软件专业,天津,300300)

0 引言

目前,直升机机电管理软件采用传统软件的开发流程,主要包括:软件需求、概要设计、详细设计、编码、单元测试、集成测试以及系统测试,以编码为开发核心[1]。通常存在以下几个问题:概要设计和详细设计阶段可能会存在歧义,无法模拟仿真,验证工作量大且难以评价[2];人工编码,开发周期较长,易引入人工编写错误,而且软件后续的维护工作量大;需要进行单元测试,耗时长;测试工作复杂,难以保证验证充分性。

而使用SCADE作为开发工具,采用基于模型的软件开发流程如图1所示,是一个“Y”型开发流程。概要设计与详细设计阶段通过直观的图形化建模与仿真,能够在开发初期阶段就发现并解决大量的设计缺陷,并保证与用户需求的一致性[3]。此外SCADE能够实现模型的零时间代码生成,其代码生成器满足DO-178C标准质量认证,能够避免人工错误,无需进行单元测试[4]。省去的编码工作和简化的测试工作能够使得软件的开发周期得到有效缩减,使开发设计人员能够专注于软件功能实现与结构优化,能够在较大程度上实现软件开发的自动化,也有利于软件的升级和维护工作。

图1 基于模型(SCADE)的软件开发流程

本文探讨了基于SCADE的软件开发方法在机电管理软件上的应用,并结合了典型模块-燃油功能模块,从需求分析、建模、仿真和代码生成等方面探索了整个基本流程和技术要点,并对代码进行了度量分析。

1 机电管理软件及SCADE机制简介

1.1 机电管理软件简介

机电管理软件主要实现监控燃油、液压等机电系统的工作状态,接收数据、状态、故障等信息,并进行显示和记录。

对于机电管理软件来说,面对不同的机电系统,实现的功能类似,都是进行数据采集、状态监控、故障识别和数据发送等功能。而对于不同的直升机来说,机电系统实现的功能也类似,如燃油系统:均能够实现燃油数据监控,按照发动机要求的压力和流量进行不间断的供油;进行加、抽油控制来实现飞行重心调整;实现调零、调满等功能。因此对于机电管理软件开发来说,非常适合与采用基于模型设计的开发方法,相似的结构及功能能够使模型具有极高的可重用性,能够大幅度地减少开发周期,提高开发效率。

1.2 SCADE软件的模型建立和代码自动生成

SCADE软件建模的核心是同步设计语言LSUTRE,能够准确刻画动态系统的行为,多用于描述和验证实时系统[5],适合于直升机实时嵌入式软件的开发。主要有数据流图和安全状态机两种建模方式[6]。

数据流图适合于对连续控制逻辑进行建模设计,将具体的系统的模型描述为从输入到输出的数据流和数据交换过程,并通过各类型的预定义操作符或用户自行建立的操作符实现模型的搭建,并以节点作为功能单元,组成复杂的层次机构,实现整个系统模型的图形化搭建[7]。

而安全状态机适合于离散控制逻辑的建模,适合于复杂的逻辑状态监控,通过SCADE软件提供的顺序、优先级、层次、并行等状态结构,利用外部中断或内部事件结果实现状态转移,可以很好地对反应式系统进行建模[8]。

SCADE软件采用标准KCG代码生成器,能够将建立的系统模型直接转化为高质量的代码,满足DO-178C民航A级安全标准[9]。

由于SCADE软件严格的数学理论,能够保证所生成代码运行的结果与模型仿真结果完全一致,因此可以不经过测试直接嵌入到产品中去。

2 机电管理燃油功能模块软件开发

2.1 燃油功能模块需求分析及结构设计

本文选取了机电管理系统的典型模块-燃油功能模块的功能进行需求分析、模型建立、仿真验证和代码生成等工作,基于SCADE开发环境,探索了基于模型设计的开发方法在机电管理软件上的应用。

针对机电管理燃油功能模块,机电管理软件主要实现以下功能需求:

(1)通过数据发送功能模块,能够模拟飞行员的工作指令,设置发送给燃油系统的控制指令和燃油油量等数据;

(2)通过数据采集功能模块,能够接收燃油油量数据、燃油系统状态信息以及各种传感器的状态信息等内容;

(3)通过状态监控功能模块,能够对接收的燃油系统数据进行识别分析,对于燃油系统发送的异常数据包能够准确识别,并报告数据传输故障存在;

(4)通过数据处理功能,能够对接收的燃油系统各类燃油传感器状态信息进行识别处理,准确识别定位到哪一个传感器的故障问题;

(5)通过故障判断功能,能够对上述识别出来的故障信息进行判断处理,若故障能够持续多个周期,则认定故障存在,否则认定其故障不存在,有效地减少虚警。

燃油功能模块的结构,如图2所示。

图2 燃油系统需求结构图

2.2 燃油功能模块模型建立

根据上述结构的设计,利用SCADE软件建模工具搭建的功能模型如图3-图7所示。

图3 数据发送模型

图7 状态监控功能

2.3 基于需求的模型仿真

图4 数据采集功能模型

图5 数据处理功能模型

图6 故障判断模型

模型搭建完成后,对每个子功能模型进行Check检查,根据错误提示,排除错误,确认每个模型都没有错误存在后,整合以上各功能模型,组成燃油系统功能模块总体模型,将设置调为Simulation,对燃油系统的总体模型进行仿真测试。根据相应燃油功能需求设置对应的输入,依次模拟设置了燃油量的数据信息,多种传感器的故障信息,燃油系统的异常数据等输入,结果均符合预期,能够实现数据的正确接收、故障判断以及状态监控等功能。图8为燃油功能模块整体模型某输入的仿真结果。

图8 燃油功能模块模型仿真结果

2.4 代码自动生成及分析

在系统仿真结果正确的基础上,通过SCADE代码生成器生成标准的C语言代码,为了验证自动生成代码的质量,对自动生成的软件代码利用Testbed代码测试工具进行了软件度量分析。在Testbed工具中采用了因数-特性-度量三级结构模型对代码的每个子程序进行了评价。

按照软件的三个特性:可测试性分类、可维护性分类、清晰性分析的代码质量分类统计图如图9~图11所示。

图9 可测试性质量分类

图11 清晰性质量分类

按整体质量因素评估的代码质量分类统计结果如图12所示。

图12 按质量因数评估的子程序质量分类统计图

从统计结果中可以知道各子程序整体质量特性较好,尤其是在可测试性和可维护性上具有相当好的效果,而在清晰性上较为一般,而清晰性指标主要参考的是代码的注释性等性能,而对于整体功能的实现没有影响。综上所述,自动生成的代码具有很高的质量特性,这一点也是经过DO-178C民航A级安全标准认证的。而且通过检查Testbed工具生成的代码审核清单,可以观察到没有出现人工编写代码中常常出现的人为编写错误、书写不规范等错误,且代码中没有出现递归、死循环等现象。因此可以认为SCADE自动生成的代码具有更高的可靠性,完全能够替代人工编写代码,完全取缔掉人工编写代码的工作量,大幅度缩短软件的开发周期,较为适合应用在直升机机电管理软件的开发上。

3 结束语

(1)本文在机电管理系统典型模块-燃油功能模块上使用SCADE开发环境探究了软件开发流程,通过对于燃油功能模块的需求分析,结构划分及设计,能够实现对燃油系统功能模块的模型化设计,并通过模型仿真验证表明了模型搭建的准确性。

(2)通过SCADE代码生成器能够自动生成标准的C语言代码,并经过Testbed代码工具对软件代码进行了分析测试,验证了自动生成代码的高质量特性。表明了基于SCADE开发环境的模型化软件开发流程能够有效提高开发效率,并能够保证软件代码生成的质量,在之后直升机机电管理软件开发中具有广阔的前景。

图10 可维护性质量分类

猜你喜欢

管理软件功能模块代码
神秘的代码
商业模式是新媒体的核心
基于ASP.NET标准的采购管理系统研究
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
高校二手交易网络平台功能及技术框架分析与设计
近期连续上涨7天以上的股
流程管理BPM
2007年中国管理软件评选-获奖名单
“2008年度中国管理软件行业评选”