一种实现自动化编程的方法及系统的制作方法

文档序号:6340997阅读:343来源:国知局
专利名称:一种实现自动化编程的方法及系统的制作方法
技术领域
本发明涉及软件开发技术领域,更具体地说,涉及一种实现自动化编程的方法及 系统。
背景技术
在软件开发领域中,常常采用的还是比较传统的开发方法,程序源代码编写主要 靠开发人员逐行编写,虽然多数项目都不会完全从头写起,开发人员也会借助现有类似源 代码、类库、框架或组件等方法来尽量减少代码的编写,但被继承共享使用的往往都是一些 底层公共基础代码,这部分代码占项目总代码量比例也比较小;而对占项目总代码量最大 比例的业务层代码往往才是项目的重点,因为业务层代码是项目的核心关键,通常都是复 杂多变,开发人员需要不停的添加新需求代码和维护修改老需求代码,而且对不同的项目 来说,业务层代码也是很难被共享,因此仅靠继承现有源代码,类库,框架或组件的开发方 法很难快速响应各种变化;故通过完善现有开发技术和发展一种新的开发方法来提高开发 效率,减少开发错误,降低开发维护成本就显得尤其的重要;特别是面对复杂的大型商业软 件系统。

发明内容
本发明的目的是解决以上提出的问题,提供一种实现自动化编程的系统,该系统 可快速完成程序编写、调试、维护,并且编写过程正确高效;为此,本发明还提供了一种实现 自动化编程的方法。本发明系统采用如下技术方案一种实现自动化编程的系统,包括数据结构与服务接口编译器,用于编译数据结构与服务接口描述文件,输出数据 结构和服务接口相关的源程序文件;业务逻辑编译器,用于编译业务逻辑描述文件,输出业务逻辑处理相关的源程序 文件;数据结构与服务接口描述文件;业务逻辑描述文件;基础库,是对一些底层基础功能模块的封装,用于对软件系统的支撑;平台相关编译器,用于编译软件系统全部源代码,并链接基础库,输出平台相关软 件系统可执行程序;作为优选,所述的数据结构与服务接口定义语言可以采用现有语言语法格式。作为优选,所述的业务逻辑定义语言可以采用现有语言语法格式。作为优选,所述的基础库封装了软件系统通用的基础功能模块。作为优选,所述的平台相关编译器是指与具体运行操作系统平台相关的编译器, 编译器编译全部软件系统源代码输出具体平台相关的可执行程序;
一种实现自动化编程的方法,步骤如下步骤1、定义数据结构与服务接口描述文件语法;步骤2、定义业务逻辑描述文件语法;步骤3、编写数据结构与服务接口编译器;步骤4、编写业务逻辑编译器;步骤5、编写数据结构与服务接口描述文件;步骤6、编译数据结构与服务接口描述文件;步骤7、编写业务逻辑描述文件;步骤8、编译业务逻辑描述文件;步骤9、平台相关编译链接,使用平台相关编译器编译项目源程序文件产生平台相 关可执行文件;其中,步骤1、步骤2的顺序可以互换,步骤3、步骤4的顺序可以互换。作为优选,所述的定义数据结构与服务接口描述文件语法采用现有语言语法格 式。作为优选,所述的定义业务逻辑描述文件语法采用现有语言语法格式。作为优选,所述的编译数据结构与服务接口描述文件是通过数据结构与服务接口 编译器带上编译选项对数据结构与服务接口描述文件进行编译。作为优选,所述的编译数据结构与服务接口描述文件过程中会首先检查描述文件 中包含的语法格式是否合法,如果合法,则输出软件系统所需的相应开发语言的源代码文 件;否则提示失败原因。作为优选,所述的编译业务逻辑描述文件是通过业务逻辑编译器带上编译选项对 业务逻辑描述文件进行编译。作为优选,所述的编译业务逻辑描述文件过程中会首先检查描述文件中包含的语 法格式是否合法,如果合法,则输出软件系统所需的相应开发语言的源代码文件;否则提示 失败原因。本发明的有益效果如下1、能够有效减少编程培训的成本;2、能够有效减少编写程序的时间成本;3、能够有效减少调试程序的时间成本;4、能够有效减少修改程序的维护成本;5、减少编程错误及调试所需要的时间;6、创建一种结构一致的编程格式,该格式能够清晰的反映各种数据结构,服务接 口和业务逻辑,这种方法更进一步提高了开发效率,减少了开发错误,降低了维护难度;


图1是本发明一个实施例的系统结构示意图;图2是本发明一个实施例的步骤流程示意具体实施例方式下面结合附图对本发明的实施例进行进一步详细说明。如附图1所示,本发明提供了一种实现自动化编程的系统,其引入编译器技术实 现自动化编程,本系统包括数据结构与服务接口编译器,用于编译数据结构与服务接口描述文件,输出数据 结构和服务接口相关的源程序文件;业务逻辑编译器,用于编译业务逻辑描述文件,输出业务逻辑处理相关的源程序 文件;数据结构与服务接口定义语言,用于定义数据结构与服务接口描述文件;业务逻辑定义语言,用于定义业务逻辑描述文件;基础库,是对一些底层基础功能模块的封装,用于对软件系统的支撑;平台相关编译器,用于编译软件系统全部源代码,并链接基础库,输出平台相关软 件系统可执行程序。所述的数据结构与服务接口编译器是一种自定义编译器,具有编译器词法分析及 语法分析功能,在编译数据结构与服务接口描述文件时会自动检查描述文件是否符合相关 的词法与语法定义规则,如果描述文件有错误则会输出具体错误提示;数据结构与服务接 口编译器为了增强其扩展性同时根据实际需求定义了相关的编译参数,比如输入描述文件 的语法格式;输出源代码类型(c/c++/java/c#);代码风格等。所述的业务逻辑编译器是一种自定义编译器,具有编译器词法分析及语法分析 功能,在编译业务逻辑描述文件时会自动检查描述文件是否符合相关的词法与语法定义 规则,如果描述文件有错误则会输出具体错误提示;业务逻辑编译器为了增强其扩展性同 时根据实际需求定义了相关的编译参数,比如输入描述文件的语法格式;输出源代码类型 (C/C++/Java/C#);代码风格;业务特殊处理等。所述的数据结构与服务接口定义语言可以采用现有语言语法格式,如C、C++等, 也可以采用自定义语法格式,如XML风格自定义等。所述的业务逻辑定义语言可以采用现有语言语法格式,如VBkript、JavaScript、 Lua、Python等,也可以采用自定义语法格式。所述的基础库封装了软件系统通用的基础功能模块,比如时间处理函数,字符串 处理函数,通信处理函数等。所述的平台相关编译器是指与具体运行操作系统平台相关的编译器,编译器编译 全部软件系统源代码输出具体平台相关的可执行程序。本发明还提供一种实现自动化编程的方法,如图2所示,其实现流程步骤如下步骤1、定义数据结构与服务接口描述文件语法;步骤2、定义业务逻辑描述文件语法;步骤3、编写数据结构与服务接口编译器;步骤4、编写业务逻辑编译器;步骤5、编写数据结构与服务接口描述文件;步骤6、编写业务逻辑描述文件;步骤7、编译数据结构与服务接口描述文件;
步骤8、编译业务逻辑描述文件;步骤9、平台相关编译链接,使用平台相关编译器编译项目源程序文件产生平台相 关可执行文件;其中,步骤1、步骤2的顺序可以互换;步骤3、步骤4的顺序可以互换。所述的定义数据结构与服务接口描述文件语法是根据具体的实际需求选择一种 可以描述数据结构与服务接口的语言,具体的语法格式可以采用现有语言语法格式,如C、 C++等,也可以采用自定义语法格式,如XML风格自定义等。数据结构与服务接口的语言采用自定义语法格式时,具体的语法格式不限,任何 为了用于实现自动化编程的自定义语法格式均应包含在本发明的保护范围内。所述的定义业务逻辑描述文件语法是根据具体的实际需求选择一种可以描述业 务逻辑的语言,具体的语法格式可以采用现有语言语法格式,如VBkript、JavaScript, Lua、Python等,也可以采用自定义语法格式。业务逻辑的语言采用自定义语法格式时,具体的语法格式不限,任何为了用于实 现自动化编程的自定义语法格式均应包含在本发明的保护范围内。所述的编写数据结构与服务接口编译器是根据数据结构与服务接口描述文件语 法,选取合适的编译器开发技术,针对相应的软件系统需求,开发出具体实用的编译器。所述的编写业务逻辑编译器是根据业务逻辑描述文件语法,选取合适的编译器开 发技术,针对相应的软件系统需求,开发出具体实用的编译器。所述的编写数据结构与服务接口描述文件是根据数据结构与服务接口描述文件 语法,针对相应的软件系统需求,编写出具体实用的数据结构与服务接口描述文件。所述的编写业务逻辑描述文件是业务逻辑描述文件语法,针对相应的软件系统需 求,编写出具体实用的业务逻辑描述文件。所述的编译数据结构与服务接口描述文件是通过数据结构与服务接口编译器带 上编译选项对数据结构与服务接口描述文件进行编译。所述的编译数据结构与服务接口描述文件过程中会首先检查描述文件中包含的 语法格式是否合法,如果合法,则输出软件系统所需的相应开发语言的源代码文件;否则提 示失败原因,重新编写数据结构与服务接口描述文件,直到语法合格。所述的编译业务逻辑描述文件是通过业务逻辑编译器带上编译选项对业务逻辑 描述文件进行编译。所述的编译业务逻辑描述文件过程中会首先检查描述文件中包含的语法格式是 否合法,如果合法,则输出软件系统所需的相应开发语言的源代码文件;否则提示失败原 因,重新编写业务逻辑描述文件,直到语法合格。本发明的目的在于提供一种实现自动化编程的系统和方法,该系统和方法能够有 效减少编程培训的成本,编写程序的时间成本,调试程序的时间成本,以及修改程序的维护 成本。通过一种友好的的编程结构及风格,减少编程错误及调试所需要的时间。本发明的另外一个目的是创建一种结构一致的编程格式,该格式能够清晰的反映 各种数据结构,服务接口和业务逻辑,这种方法更进一步提高了开发效率,减少了开发错 误,降低了维护难度。本发明所述的自动化编程是将软件系统的系统框架,数据结构,服务接口和业务逻辑进行分离,使各部分能够独立进行处理,然后通过编译器技术将各部分有效粘合起来, 最终生产可执行应用程序。为了解决上述目的,本发明系统采用如下的技术方案,其中包括(1)数据结构与服务接口描述文件此文件描述各软件模块间交互的数据结构及各软件模块能提供的服务接口。(2)业务逻辑处理描述文件此文件描述各业务功能模块的业务处理逻辑。(3)数据结构与服务接口和业务逻辑编译器编译器通过读取解析数据结构与服务接口描述文件和业务逻辑处理描述文件,自 动产生所需程序源代码,实现自动化编程。通过在编程过程中引入了编译器技术,将需要开发人员手工完成的大部分编程任 务让自定义编译器自动生成,真正把开发人员从繁琐的重复劳动中解放出来,集中于处理 数据和业务逻辑;这个过程提高了开发效率,较少了开发错误,降低了开发维护成本,使项 目能迅速响应客户的需求增加及变更,而且这样自动产生的代码风格统一,质量高,错误率 低,维护简单。实施例如附图2所示,运用自动化编程方法进行系统开发,所需步骤的包括步骤1、定义数据结构与服务接口描述文件语法;步骤2、定义业务逻辑描述文件语法;步骤3、编写数据结构与服务接口编译器;步骤4、编写业务逻辑编译器;步骤5、编写数据结构与服务接口描述文件;步骤6、编译数据结构与服务接口描述文件,如果失败,刚重新编写数据结构与服 务接口描述文件;如果成功,则生成源代码;步骤7、编写业务逻辑描述文件;步骤8、编译业务逻辑描述文件,如果失败,刚重新编写业务逻辑描述文件;如果 成功,则生成源代码;步骤9、平台相关编译链接,使用平台相关编译器编译项目源程序文件,并链接基 础库,产生平台相关可执行文件;本实施例以C++语言和Visual C++2005开发环境作为例子进行说明,但本发明不 仅限于只支持C++语言和Visual C++2005开发环境,实际可以选择开发者所需的任何开发 语言和开发环境。数据结构与服务接口和业务逻辑编译器决定了描述文件语法的格式,以及最终能 支持的具体语言源代码文件输出,比如C、C++、JAVA、C#等,并且输出源代码的编程风格,代 码质量,源代码文件组织结构等都直接与编译器相关。数据结构与服务接口和业务逻辑编译器是一种编译器,现在编译器的开发技术已 经非常成熟,编译器的前端包括词法分析、语法分析、中间代码生成等过程;后端则与目标 机器有关,包括目标机器代码生成和相关优化等。编译器的实现主要有三种方式
(1)用某种程序语言直接写出编译程序;(2)通过LexJacc等工具进行自动构造;(3)通过对现有的编译器进行改造。编译器的功能是读入描述文件分析输出指定程序语言的源代码,不用产生具体目 标机器代码,因此只需要实现编译器的前端部分功能即可。这里仅以Lex与^cc结合实现编译进行简单示例说明。Lex是一种词法分析器, 用于完成编译器前端的词法分析工作Jacc是一种语法分析器,用于完成编译器前端的语 法分析工作。Lex与^cc结合生成脚本编译器具体步骤如下
(1)编写一个.Iex的模式相关的动作文件;
(2)在.Iex文件上运行Lex生成扫描器代码;
(3)编写一个.y的语法文件;
(4)在.y语法文件上运行^cc生成一个解析器代码;
(5)将扫描器代码、解析器代码与其他源代码链接为编译器。
描述文件编写包括数据结构与服务接口描述文件和业务逻辑处理描述文件两部

分1、数据结构与服务接口描述文件定义软件系统的数据结构,以及软件系统能够提 供的服务接口,数据结构与服务接口描述文件的语法可以采用现有常用语言语法格式,如 C/C++语言语法,这样简单易懂,更通用,只用对开发人员进行简单培训即可;也可以采用 自定义语法格式,比如XML风格自定义,具体的语法格式不限,任何为了用于实现自动化编 程的自定义语法格式均应包含在此发明所附权利要求的保护范围。本实施例中,运用XML风格自定义语法格式定义数据结构与服务接口描述文件, 具体如下XML风格自定义数据结构与服务接口定义语法规格主要包含保留关键字,命名规 则,注释规则,数据结构定义,服务接口定义,保留关键字char, uchar, string, short, ushort, int, uint, longlong, ulonglong, float, double, struct, name, field, interface, in, out命名规则所有结构名称、结构成员名称及服务接口名称命名只能由字母、下划线、数字组 成,且名称必须由字母开头。注释规则所有以#开始的行均认为是注释行数据结构定义语法〈struct name =” 结构名称”〉〈field name =”成员名称” type =”成员类型[:*|N]〃 />......</struct>说明(1) 一个数据结构可以包含若干个结构成员;
(2)成员类型[:*|N],既可以是基本数据类型,也可以是已经定义过的数据结 构类型;巨前支持的基本数据类型有cha r,ucha r, string, short, ushort, int, uint, longlong,ulonglong,float, double ;其中[:*|N]是可选部分,*标识数据结构成员是一 个不定长数组,N(N^ 1)标识数据成员是一个定长数组,数组维数为N,默认可选部分不用 设置表示N=I;
部分定义过
0133]
0134]
0135]
0136]
0137]
0138]
0139]
0140]
0141]
0142]
0143]
服务接口定义 语法
〈interface name="服务接口名称〃 > <in name =“数据结构名称〃 />
〈out name =“数据结构名称"/>
</interface) 说明
(1)一个服务接口可以包含若干个输入(in)参数与若干个输出(out)参数
(2)输入(in)、输出(out)参数引用的数据结构必须是前面已经在数据结构定义
0144]
0145]
0146]
0147]
0148]
0149]
0150]
0151]
0152]
0153]
0154]
0155]
0156]
0157]
0158]
0159]
0160] 0161] 0162] 0163]
示例
下面是获取网元设备基本属性数据结构与服务接口定义
##网元属性请求##
<struct name =〃 NEInfo“ >
〈fieldname=" NEID“ type = “ int" /> 〈fieldname=" NEIP“ type = “ string" /> 〈fieldname=" NEType“ type = “ int" /> </struct) ##网元属性应答## 〈struct name = “ NEAttribute,,>
<field name =“ <field name =“ <field name =" </struct) ##获取网元属性##
NEUserLabel" type =" string" /> NELocation" type =" string" /> NEVersion" type =" string" />
〈interface name = " GetNEAttribute" > <in name =" NEInfo" /> <out name = " NEAttribute" /> </interface)
2、业务逻辑处理描述文件可以视需要描述业务逻辑的复杂程度选择现有脚本语 言语法,如VBkript,JavaScript, Lua, Python等,这些脚本语言相对成熟、普及,简单易 用;也可以采用自定义语法格式,具体的语法格式不限,任何为了用于实现自动化编程的自定义语法格式均应包含在此发明所附权利要求的保护范围。描述文件编译是通过相应编译器带上合适的编译选项对描述文件进行编译,编译 过程中会首先检查描述文件中包含的语法格式是否合法,如果正确则输出软件系统所需的 相应开发语言的源代码文件,否则提示失败原因。平台相关编译链接是根据软件系统运行平台的需求,选择合适的平台相关编译器 如Visual C++、GNU等将脚本编译器输出的源代码文件与开发人员自编写源代码文件及相 关支持基础库进行编译链接,最终输出软件系统的平台相关可以执行程序。以上所述的仅是本发明的优选实施方式,应当指出,对于本技术领域中的普通技 术人员来说,在不脱离本发明核心技术特征的前提下,还可以做出若干改进和润饰,这些改 进和润饰也应视为本发明的保护范围。
权利要求
1.一种实现自动化编程的系统,其特征在于,系统包括数据结构与服务接口编译器,用于编译数据结构与服务接口描述文件,输出数据结构 和服务接口相关的源程序文件;业务逻辑编译器,用于编译业务逻辑描述文件,输出业务逻辑处理相关的源程序文件;数据结构与服务接口描述文件,使用数据结构与服务接口定义语言进行定义;业务逻 辑描述文件,使用业务逻辑定义语言进行定义;基础库,是对一些底层基础功能模块的封装,用于对软件系统的支撑; 平台相关编译器,用于编译软件系统全部源代码,并链接基础库,输出平台相关软件系 统可执行程序。
2.根据权利要求1所述的实现自动化编程的系统,其特征在于,所述的数据结构与服 务接口定义语言可以采用现有语言语法格式。
3.根据权利要求1所述的实现自动化编程的系统,其特征在于,所述的业务逻辑定义 语言可以采用现有语言语法格式。
4.根据权利要求1所述的实现自动化编程的系统,其特征在于,所述的基础库封装了 软件系统通用的基础功能模块。
5.根据权利要求1所述的实现自动化编程的系统,其特征在于,所述的平台相关编译 器是指与具体运行操作系统平台相关的编译器,编译器编译全部软件系统源代码输出具体 平台相关的可执行程序。
6.一种实现自动化编程的方法,其特征在于,步骤如下 步骤1、定义数据结构与服务接口描述文件语法;步骤2、定义业务逻辑描述文件语法; 步骤3、编写数据结构与服务接口编译器; 步骤4、编写业务逻辑编译器; 步骤5、编写数据结构与服务接口描述文件; 步骤6、编译数据结构与服务接口描述文件; 步骤7、编写业务逻辑描述文件; 步骤8、编译业务逻辑描述文件;步骤9、平台相关编译链接,使用平台相关编译器编译项目源程序文件产生平台相关可 执行文件;其中,步骤1、步骤2的顺序可以互换,步骤3、步骤4的顺序可以互换。
7.根据权利要求6所述的实现自动化编程的方法,其特征在于,所述的定义数据结构 与服务接口描述文件语法采用现有语言语法格式。
8.根据权利要求6所述的实现自动化编程的方法,其特征在于,所述的定义业务逻辑 描述文件语法采用现有语言语法格式。
9.根据权利要求6所述的实现自动化编程的方法,其特征在于,所述的编译数据结构 与服务接口描述文件是通过数据结构与服务接口编译器带上编译选项对数据结构与服务 接口描述文件进行编译。
10.根据权利要求9所述的实现自动化编程的方法,其特征在于,所述的编译数据结构与服务接口描述文件过程中会首先检查描述文件中包含的语法格式是否合法,如果合法, 则输出软件系统所需的相应开发语言的源代码文件;否则提示失败原因。
11.根据权利要求6所述的实现自动化编程的方法,其特征在于,所述的编译业务逻辑 描述文件是通过业务逻辑编译器带上编译选项对业务逻辑描述文件进行编译。
12.根据权利要求11所述的实现自动化编程的方法,其特征在于,所述的编译业务逻 辑描述文件过程中会首先检查描述文件中包含的语法格式是否合法,如果合法,则输出软 件系统所需的相应开发语言的源代码文件;否则提示失败原因。
全文摘要
本发明涉及一种实现自动化编程的方法及系统,系统包括数据结构与服务接口编译器、业务逻辑编译器、数据结构与服务接口描述文件、业务逻辑描述文件、基础库、平台相关编译器;步骤如下1、定义数据结构与服务接口描述文件语法;2、定义业务逻辑描述文件语法;3、编写数据结构与服务接口编译器;4、编写业务逻辑编译器;5、编写数据结构与服务接口描述文件;6、编译数据结构与服务接口描述文件;7、编写业务逻辑描述文件;8、编译业务逻辑描述文件;9、平台相关编译链接,使用平台相关编译器编译项目源程序文件产生平台相关可执行文件。优点减少编程培训成本、编程错误、调试所需要的时间;减少编写、调试、修改程序的时间成本。
文档编号G06F9/45GK102063324SQ20101061853
公开日2011年5月18日 申请日期2010年12月31日 优先权日2010年12月31日
发明者孙丽萍, 孙凡, 杨才良, 毛明华 申请人:杭州依赛通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1