本发明涉及智能决策技术领域,尤其涉及一种应用于机器人软件工程师的智能决策系统。
背景技术:
现在的软件开发主要由人类软件工程师开发软件,价格昂贵。有许多技术方案为了减少程序编写工作量,采用编写可以重复使用的代码,或框架。例如微软的Entity Framework等,也有个别软件根据用户的输入产生部分代码,但是这些方法对软件开发的模式没有太大改变,也没有显著的减少软件工程师的工作量。
在软件刚刚问世的年代,大多数软件开发是由一个软件工程师完成的。效率非常高。在现在,随着软件越来越复杂,单个工程师几乎不可能完成一款软件的开发。软件开发需要一个团队,由于团队成员之间能力差异,相互沟通讨论占了巨大而宝贵的开发时间和资源,效率越来越低。
因此,现有技术需要改进。
技术实现要素:
根据本发明实施例的一个方面,提供的一种应用于机器人软件工程师的智能决策系统,包括:应用接口单元、软件控制单元、决策控制单元;
所述应用接口单元用于实现人与机器、机器与机器、机器与软件、机器与网络之间的逻辑连接,并为相互之间的通讯提供接口;
所述软件控制单元与所述应用接口单元和决策控制单元连接,通过智能编辑方式实现软件设计文档编写、软件代码编写、软件测试代码编写、软件智能学习和分析功能;
所述决策控制单元与软件控制单元连接通讯,决策控制单元利用控制矩阵和双层神经网络实现对软件控制单元各个功能的调用流程,代码分析、人机交互、人机讨论、辅助决策等人工智能;
在基于上述应用于机器人软件工程师的智能决策系统的另一个实施例中,所述应用接口单元包括:人机接口模块、机机接口模块、机网接口模块和机软接口模块;
所述人机接口模块用于处理机器人与人之间的通讯,实现人机交互、文件输入输出、语音交互的功能;
所述机机接口模块用于实现多个机器人之间的相互协作、信息交换和实现机器人基因(机器人基因结构相关专利另文申请)交换以实现繁殖功能;
所述机网接口模块用于连接互联网,并与互联网交互数据,实现计算机网络数据下载、网页解析、网络学习、机器人网络课堂(机器人教师讲解软件编程)或通过互联网远程控制机器人;
所述机软接口模块是机器人与现有软件设备接口的单元,机器人可以通过本接口使用商业软件,扩展机器人的能力。
在基于上述应用于机器人软件工程师的智能决策系统的另一个实施例中,所述软件控制单元包括:软件文档模块、代码编写模块、软件测试模块、学习分析模块、知识存储模块、繁殖进化模块;
所述软件文档模块用于设计和生成计算机软件设计的文档,所述文档包括范例文档和生成文档;
所述代码编写模块使用计算机编程语言编辑、编写功能代码,实现机器人的相应功能;
所述软件测试模块的功能包括:针对生成的计算机功能代码编写单元测试代码、测试用例、测试计划。使用测试软件进行测试;
所述学习分析模块制定学习规则,生成学习指令,并将学习信息纳入学习数据库;
所述知识存储模块有关系数据库和神经网络记忆。关系数据库具有增加、删除、查找、改写功能,存储编程相关的构架、层次结构、各类数据库SQL规则、各种应用类的结构、设计模式等等。神经网络记忆人机对话决策、学习策略、代码分析等智能决策相关的知识和技能;
所述繁殖进化模块繁殖进化模块实现机器人的繁殖进化。机器人通过繁殖和进化适应计算机软件工业的发展环境。因为本发明方案的特点是机器人编写软件,所以机器人也能编写机器人自身代码,这项功能使机器人可以具有繁殖进化的能力。
在基于上述应用于机器人软件工程师的智能决策系统的另一个实施例中,所述决策控制单元包括:内部通讯模块、神经网络决策模块;
所述内部通讯模块用于管理系统内部通讯,实现神经网络决策模块与软件控制单元的信息交互、指令传输,将软件控制单元的功能指令发送至神经网络决策模块;
所述神经网络决策模块存储决策规则,设计决策参数,并将智能软件控制单元的功能在机器人上得到实现。
在基于上述应用于机器人软件工程师的智能决策系统的另一个实施例中,所述人机接口模块包括人机交互窗口单元、文件输入输出单元、语音交互单元,通过窗口操作、文本输入输出和语音识别,实现人类了解机器人提出的方案,机器人识别由人工发出的指令信息。
在基于上述应用于机器人软件工程师的智能决策系统的另一个实施例中,所述知识存储模块包括多个知识存储区,包括:计算机语言区、软件构架区、层次结构区、代码资料区、设计模式区、国家标准区、基础数据区、文档模版区、应用文档资料区、软件潮流区。
在基于上述应用于机器人软件工程师的智能决策系统的另一个实施例中,所述代码编写模块根据指令确定的程序构架、数据库类型、数据库表结构、选定的语言、软件环境、选定的界面类型搜索知识存储区,编写代码,根据国家、国际标准给出所需的标准数据,用随机数据模拟真实案例生成的测试数据以供软件测试模块使用,代码根据人机对话结果采用不同的设计模式。
与现有技术相比较,本发明具有以下优点:
本发明技术方案可以完成高达90%的规范的、繁琐的编程工作,而且大大降低编程错误几率,本发明的系统以低廉的价格,更快的开发周期提供高质量的软件和服务,改变传统的软件开发概念,形成全新的软件开发模式。我们可以预言,随着本发明的出现,机器人将成为软件开发团队必不可少的新成员。
未来的软件开发团队将由人类工程师和机器人工程师共同组成,人类工程师将更多的关注商业应用,和软件创新,而复杂繁琐的代码编写工作将由机器人软件工程师完成。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为本发明的应用于机器人软件工程师的智能决策系统的一个实施例的结构示意图。
图中:1应用接口单元、11人机接口模块、12机机接口模块、13机网接口模块、14机软接口模块、2软件控制单元、21软件文档模块、22代码编写模块、23软件测试模块、24学习分析模块、25知识存储模块、26繁殖进化模块、3决策控制单元、31内部通讯模块、32神经网络决策模块。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为本发明的应用于机器人软件工程师的智能决策系统的一个实施例的结构示意图,如图1所示,该实施例的应用于机器人软件工程师的智能决策系统包括:
应用接口单元1、软件控制单元2、决策控制单元3;
所述应用接口单元1用于实现人与机器、机器与机器、机器与软件、机器与网络之间的逻辑连接,并为相互之间的通讯提供接口;
所述软件控制单元2与所述应用接口单元1和决策控制单元3连接,通过软件编辑方式实现软件文档存储、软件代码编写、软件测试程序、软件智能学习功能,并将这些功能应用于决策控制单元3,实现相应的软件功能;
所述决策控制单元3与软件控制单元2连接通讯,用于接收软件控制单元2的代码驱动程序,并实现智能辅助决策。
所述应用接口单元1包括:人机接口模块11、机机接口模块12、机网接口模块13和机软接口模块14;
所述人机接口模块11用于处理机器人与之间的通讯,实现人机交互、文件输入输出、语音交互的功能;
所述人机接口模块11包括人机交互窗口单元、文件输入输出单元、语音交互单元,通过窗口操作、文本输入输出和语音识别,实现机器人识别由人工发出的指令信息。通过三种接口实现人与机器人之间讨论开发的问题,机器人因为充分掌握资料,可提供参考设计资料,由人类审核、修改,提供最终设计,人工发出工作指令,机器人根据人工指令的最终设计编写代码。
机器人除了和人类软件工程师交互能力之外,还具有与普通客户交流的能力,通过问卷调查,找到客户需求,直接给出建议的结构产生软件,教客户试用,再继续问卷调查加以改进。
所述机机接口模块12用于实现多个机器人之间的相互协作、信息交换和实现机器人基因(机器人基因结构相关专利另文申请)交换以实现繁殖功能;
所述机机接口模块通过机器人与机器人之间的接口,使一个机器人接收另一个机器人的知识库,将其补充到自己的知识库,这为机器人提供了社交能力,机器人选择加入机器人编组,共享编程知识。
所述机网接口模块13用于连接互联网,并与互联网交互数据,实现计算机网络数据下载、网页解析、网络学习、机器人网络课堂(机器人教师讲解软件编程)或通过互联网远程控制机器人;
所述机网接口模块13使机器人从互联网获取最新软件编程知识,通过预先给定的网页地址或网络服务地址,机器人在空闲时间搜索互联网,将新观点、代码、文章收录到本地数据库,机器人利用网络获得的数据,进行大数据分析,从而改善自己的能力,并向人类提供参和建议,机器人根据人类指令搜索有关信息、整理供人类参考。
机器人具有强大的编程能力,因此也可成为优秀的网络软件课堂老师。用代码和文档回答学生提出的`问题。机器人网络课堂时机器人的另一项应用。
所述机软接口模块14是机器人与现有软件设备接口的单元,机器人可以通过本接口使用商业软件,扩展机器人的能力。
机器人和现有工具软件的接口,提高了机器人使用现有工具软件的能力,这个接口为机器人提供向现有软件发送数据和发送指令的能力,为机器人扩展自己的技能提供可能。
所述软件控制单元2包括:软件文档模块21、代码编写模块22、软件测试模块23、学习分析模块24、知识存储模块25、繁殖进化模块26;
所述软件文档模块21用于设计和生成计算机软件设计的文档,所述文档包括范例文档和生成文档;
所述软件文档模块21的工作包括编写软件著作权申请文档,机器人给出申请书、软件设计文档和代码文档,由于机器人拥有全部编写的代码,并通过人机交流获取了软件著作权申请人及其公司的有关信息,因此具有生成文档的全部知识,所述代码文档包括数据库设计、数据词典、构架设计、UML类图、界面设计等信息。
所述代码编写模块22使用计算机编程语言编辑、编写功能代码,实现机器人的相应功能;
所述软件测试模块23的功能包括:针对生成的计算机功能代码编写单元测试代码、测试用例、测试计划。使用测试软件进行测试;
软件测试模块23包括测试信息,用于生成测试文档、单元测试、测试用例和测试工具,软件测试模块23还存储学习到的测试软件使用方法,并应用这些工具由机器人根据测试用例测试软件,编写测试报告。
所述学习分析模块24制定学习规则,生成学习指令,并将学习信息纳入学习数据库;
所述学习分析模块24存有学习规则,比如对已经产生的代码要求人工做出评价、软件工程师的评价或用户评价,将评价好的进行分析、分类纳入知识库,学习分析模块24接收人工或机器人推荐的代码、文档纳入知识库。
所述知识存储模块25具有存储和增加、删除、查找、改写功能,用于关系数据库精确存储知识和资料;
所述知识存储模块25存储的知识分为两种模式:关系数据库和数据神经网络,所述关系数据库精确存储知识和资料,所述神经网络记忆模糊信息。所述知识存储模块25包括多个知识存储区,包括:计算机语言区、软件构架区、层次结构区、代码资料区、设计模式区、国家标准区、基础数据区、文档模版区、应用文档资料区、软件潮流区。
所述繁殖进化模块26对机器人功能进行拓展、开发、更新。
所述决策控制单元3包括:内部通讯模块31、神经网络决策模块32;
所述内部通讯模块31用于管理系统内部通讯,实现神经网络决策模块32与软件控制单元2的信息交互、指令传输,将软件控制单元2的功能指令发送至神经网络决策模块32;
所述神经网络决策模块32存储决策规则,设计决策参数,并将软件控制单元2的功能在机器人上得到实现。
所述代码编写模块22根据指令确定的程序构架、数据库类型、数据库表结构、选定的语言、软件环境、选定的界面类型搜索知识存储区,编写代码,根据国家、国际标准给出所需的标准数据,产生随机生成的测试数据以供软件测试模块使用,代码根据人机对话结果采用不同的设计模式。
代码编写模块22设计了“代码类”,“代码类”用于编写面向对象的软件代码,“代码类”的属性是支持代码编写的数据,“代码类”的函数用于产生代码,一般来说,“代码类”的公有函数产生代码类文件和其它文件,私有函数产生目标软件类的变量、属性、函数等,“代码类”运用目标代码命名规则、各种常用目标软件类的组织结构,目标软件类的数据集合来编写目标软件的代码。
根据目标软件的层次结构,需要不同的代码类来编写不同层次的目标软件的代码,设计编程工具支持的“代码类”来编写不同编程工具需要的支持代码。如支持Visual Studio中C#语言中的项目文件的“代码类”、支持Eclipse、Android Studio的Manifest文件的“代码类”。
以上对本发明所提供的一种应用于机器人软件工程师的智能决策系统进行了详细介绍,本文中应用了个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施案例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。