CN110647317A - 基于模板的应用框架生成方法 - Google Patents
基于模板的应用框架生成方法 Download PDFInfo
- Publication number
- CN110647317A CN110647317A CN201910922598.2A CN201910922598A CN110647317A CN 110647317 A CN110647317 A CN 110647317A CN 201910922598 A CN201910922598 A CN 201910922598A CN 110647317 A CN110647317 A CN 110647317A
- Authority
- CN
- China
- Prior art keywords
- template
- application framework
- data source
- application
- variable points
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 241001455214 Acinonyx jubatus Species 0.000 claims abstract description 14
- 238000011161 development Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 2
- 238000003339 best practice Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于模板的应用框架生成方法,包含以下步骤:定义应用框架模板并存入应用框架模板库;其中,应用框架模板包含可变点和不可变点,采用Cheetah模板描述语言对可变点进行模板化描述生成模板文件,并通过schema定义数据源;开发人员根据项目情况,从应用框架模板库选择所需要的应用框架模板,并完成所有带可变点的模板文件的数据源配置;将数据源和模板文件的关系建立起来,最终生成应用框架实例。
Description
技术领域
本发明涉及软件框架代码生成技术,特别涉及一种基于模板的通用软件框架生成技术。
背景技术
2010年,由美国海军航空系统司令部(NAVAIR)发起、开放组织(Open Group)联合波音等多家公司提出了未来机载能力环境(FACE)。从技术成熟度角度来看,FACE是一种集技术和管理为一体的综合体系,体现了航电软件系统开放式架构的发展方向。风河公司在2018年3月发布的一份题为“应用开放架构平台和云计算技术构建新一代军事基础设施”的报告中将FACE作为一种目前最佳的实践方法。FACE技术已经在美国海军多个项目中获得实际应用,并在向其它军兵种推广,在发展趋势上已经超越了OMS等较老的开发式体系标准。
随着技术的发展,航空电子系统正向开放式、模块化、综合化的方向发展,综合模块化航空电子(IMA)具有信息综合、资源共享、功能域综合、分布式并行处理、功能组件化及模块化等特征,航电系统的复杂性越来越高。为了保证航电系统软件的可靠性、提高软件在全生命周期中的可维护性和可移植性,降低研发成本,将航空电子应用软件与机载平台软件进行标准化,设计统一的、面向航电领域的应用软件开发和执行环境,研发支持民机适航要求的软件开发的组件化研发工具,实现软件的大粒度重用,实现航电软件的产品线式研发,对提升航空电子系统的功能、性能和综合化程度有重要意义。
发明内容
本发明的发明目的在提供一种基于模板的应用软件框架代码生成方法,为航空电子应用软件开发提供框架支持。
本发明的发明目的通过以下技术方案实现:
一种基于模板的应用框架生成方法,包含以下步骤:
定义应用框架模板并存入应用框架模板库;其中,应用框架模板包含可变点和不可变点,采用Cheetah模板描述语言对可变点进行模板化描述生成模板文件,并通过schema定义数据源的元素和格式;
开发人员根据项目情况,从应用框架模板库选择所需要的应用框架模板,并配置该应用框架模板内各个模板文件的数据源,完成特定数据源配置下的应用软件框架代码生成。
附图说明
图1是基于模板的应用框架生成方法的流程示意图;
图2框架模板中可变点描述示例;
图3是图2所示可变点的数据源schema示例;
图4是图3所示schema对应的数据源示例;
图5为Python脚本代码示例
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。
参见图1所示,本实施例所示的基于模板的应用框架生成方法,主要包含二部分,一是应用框架模板管理过程,二是应用框架生成过程,下面对这二部分内容进行分别描述。
一、应用框架模板管理过程
(一)应用框架模板定义
符合特定规范的应用软件框架,均分为可变部分和不可变部分,其中可变部分称作可变点。应用软件框架包括但不限于:
(1)应用软件的层次结构;
(2)源文件;
(3)依赖组件;
(4)Makefile;
(5)其他必要的配置文件。
其中,源文件、makefile和配置文件等可编辑的文件均可模板化,模板化的过程就是用Cheetah模板语言对应用框架模板中的可变点进行描述,描述方式主要包括:
(1)变量:支持变量定义和变量赋值;
(2)结构块:条件选择控制、循环控制;
(3)逻辑关系:支持AND、NOT、OR操作符。
可变点的变量,由外部数据源输入进行赋值。
航电通用领域可定义通用应用框架,如Arinc 653基础框架。各航电专业领域也可定义相应的领域应用框架,如显控应用框架。应用框架一般由领域专家定义,确定应用框架中的可变点以及对应的数据源schema。应用框架需经过评审后发布。
定义应用框架中的可变点时,采用Cheetah语言描述为模板。Cheetah语言支持变量、结构块、逻辑关系等描述:
(1)使用#set指令设置变量
·#set指令在Cheetah模板的作用域内创建一个临时变量;
·#set指令还可以用来创建中间值。
(2)#if和#for指令控制结构块
·#if指令可控制if-then-else条件选择;
·#for指令控制循环结构,可使用#end for结束循环。
Cheetah模板语言描述的应用框架可变点示例见图2。
定义数据源schema,可采用XMLSpy等编辑器完成。Schema文件定义数据源的内容和结构,包括数据源中元素名称、属性、类型、元素结构关系等,如图3所示。
(二)应用框架模板库
应用框架模板都纳入到应用框架模板库中进行管理。应用框架模板库支持模板版本管理、配置管理、导入、导出等操作。
二、应用框架生成过程
项目开发人员根据项目情况,从模板库选择所需要的应用框架模板,并完成所有带可变点的模板文件的数据源配置。数据源可外部导入或在线编辑,配置格式必须符合对应的数据源schema定义。数据源实例如图4所示。
通过Python脚本程序,将数据源和模板的关系建立起来,参见图5所示,Python脚本里我们使用#import指令将其他python类或者包引用到python脚本中,调用其中的类或者函数方法。例如引用数据源xml文件和cheetah包,就可以调用这两个包中的函数用来解析xml文件和调用cheetah模板。
Python脚本里definition字符串包含模板定义静态部分,它可以对外部变量(动态部分)进行引用。Template构造函数在这里用来将模板定义绑定到名称空间的searchList:查找对象的方式对应于定义中使用的变量。在本项目模板定义中的$Processes在这里映射到Processes变量。这样可以提前运行Template构造函数,并在准备使用特定对象解释模板的时候设置其searchList成员。
使用Cheetah模板引擎来访问构造的模板,当Python脚本运行cheetah compile命令时,会引用当前框架模板里用户导入的数据源和cheetah的tmpl文件,通过Cheetah提供流的方式将数据源写入到对应的应用框架文件中,即根据数据源和模板最终生成应用框架实例。
Claims (1)
1.一种基于模板的应用框架生成方法,包含以下步骤:
定义应用框架模板并存入应用框架模板库;其中,应用框架模板包含可变点和不可变点,采用Cheetah模板描述语言对可变点进行模板化描述生成模板文件,并通过schema定义数据源的元素和格式;
开发人员根据项目情况,从应用框架模板库选择所需要的应用框架模板,并配置该应用框架模板内各个模板文件的数据源,完成特定数据源配置下的应用软件框架代码生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910922598.2A CN110647317A (zh) | 2019-09-27 | 2019-09-27 | 基于模板的应用框架生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910922598.2A CN110647317A (zh) | 2019-09-27 | 2019-09-27 | 基于模板的应用框架生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110647317A true CN110647317A (zh) | 2020-01-03 |
Family
ID=69011526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910922598.2A Pending CN110647317A (zh) | 2019-09-27 | 2019-09-27 | 基于模板的应用框架生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647317A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103713896A (zh) * | 2013-12-17 | 2014-04-09 | 北京京东尚科信息技术有限公司 | 用于访问服务器的软件开发工具包生成方法及装置 |
CN105391789A (zh) * | 2015-11-26 | 2016-03-09 | 南京莱斯信息技术股份有限公司 | 一种基于jsp模板的动态服务实现方法 |
CN109471624A (zh) * | 2018-11-21 | 2019-03-15 | 中国航空无线电电子研究所 | 基于gosaa的共享数据模型控制系统及数据架构生成方法 |
CN109656544A (zh) * | 2018-12-26 | 2019-04-19 | 苏州博纳讯动软件有限公司 | 一种基于执行路径相似度的云服务api适配方法 |
CN109814854A (zh) * | 2019-01-24 | 2019-05-28 | 平安科技(深圳)有限公司 | 项目框架生成方法、装置、计算机设备和存储介质 |
CN109976761A (zh) * | 2019-02-27 | 2019-07-05 | 平安科技(深圳)有限公司 | 软件开发工具包的生成方法、装置及终端设备 |
-
2019
- 2019-09-27 CN CN201910922598.2A patent/CN110647317A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103713896A (zh) * | 2013-12-17 | 2014-04-09 | 北京京东尚科信息技术有限公司 | 用于访问服务器的软件开发工具包生成方法及装置 |
CN105391789A (zh) * | 2015-11-26 | 2016-03-09 | 南京莱斯信息技术股份有限公司 | 一种基于jsp模板的动态服务实现方法 |
CN109471624A (zh) * | 2018-11-21 | 2019-03-15 | 中国航空无线电电子研究所 | 基于gosaa的共享数据模型控制系统及数据架构生成方法 |
CN109656544A (zh) * | 2018-12-26 | 2019-04-19 | 苏州博纳讯动软件有限公司 | 一种基于执行路径相似度的云服务api适配方法 |
CN109814854A (zh) * | 2019-01-24 | 2019-05-28 | 平安科技(深圳)有限公司 | 项目框架生成方法、装置、计算机设备和存储介质 |
CN109976761A (zh) * | 2019-02-27 | 2019-07-05 | 平安科技(深圳)有限公司 | 软件开发工具包的生成方法、装置及终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10606562B2 (en) | Method and system for generating PLC code with a connectivity model | |
US6370682B1 (en) | System and method for developing reusable flexible and platform independent software using components | |
CN105022630B (zh) | 一种组件管理系统及组件管理方法 | |
US20040158820A1 (en) | System for generating an application framework and components | |
CN111399853A (zh) | 机器学习模型与自定义算子的模板化部署方法 | |
US20040064805A1 (en) | Enterprise scoped software factory | |
US20040268293A1 (en) | Automating the life cycle of a distributed Computing application | |
US20040205700A1 (en) | Apparatus and method for real-time caution and warning and system health management | |
Bartusevics et al. | Models for implementation of software configuration management | |
CN112435072A (zh) | 一种模型创建方法、装置、电子设备及存储介质 | |
CN107122182B (zh) | 一种代码构建和发布的方法及系统 | |
US7437739B1 (en) | Synchronizing data between a data store and a project management client tool | |
KR100994070B1 (ko) | 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치 | |
KR20030044959A (ko) | 클라이언트 측 메타데이터와 글루 코드를 이용한 컴포넌트 구현 및 조립방법 | |
CN112631563A (zh) | 基于框架的系统开发方法、装置、计算机设备及存储介质 | |
Hähnle et al. | HATS abstract behavioral specification: The architectural view | |
CN110647317A (zh) | 基于模板的应用框架生成方法 | |
CN115686462A (zh) | 基于React-Native的工程化架构方法及系统 | |
US10958514B2 (en) | Generating application-server provisioning configurations | |
Batory et al. | The ADAGE avionics reference architecture | |
US7437740B1 (en) | Generation of Java language application programming interface for an object-oriented data store | |
Al Mamun et al. | Towards formalizing assumptions on architectural level: A proof-of-concept | |
Samson et al. | Automatic generation of test oracles from component based software architectures | |
Kotlyarov et al. | Technology and tools for developing industrial software test suites based on formal models and implementing scalable testing process on supercomputer | |
Ray et al. | Model-based adaptation of flight-critical systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200103 |
|
RJ01 | Rejection of invention patent application after publication |