一种软件开发方法及装置与流程

文档序号:11519298阅读:211来源:国知局
一种软件开发方法及装置与流程

本发明属于软件开发领域,尤其涉及一种软件开发方法及装置。



背景技术:

软件开发,是根据用户要求建造出软件系统或者系统中软件部分的一个产品开发的过程。软件开发过程中,程序员都喜欢使用集成开发ide环境进行编码,以提高编码和调试的效率。一个好的ide环境,可以说是软件开发的利器。

目前,市场上常见的ide环境,有微软的visualstudio和苹果的xcode,还有一些开源的工具,比如eclipse等。这些工具都是非常优秀的ide工具,都得到了程序员的高度赞赏。在这些工具中,写代码自动填充功能,深得程序员的欢心。自动填充功能,可以在程序员打出一两个字母后,填充常用的函数、变量等等;或者,在某个名称之后自动提示常用的变量,比如成员变量、成员函数等等。这是一个非常好用的工具,但是也仅仅限于此,无法帮助程序员做更多的工作。



技术实现要素:

本发明实施例的目的在于提供一种软件开发方法,旨在提升软件开发效率。

本发明实施例是这样实现的,一种软件开发方法,包括:

获取软件开发任务中待开发的功能;

在预建的源码数据库中,获取与所述待开发的功能对应的源代码;

显示获取到的源代码;

其中,所述源码数据库包括预存的功能以及预存的功能对应的源代码。

本发明实施例的另一目的在于提供一种软件开发装置,包括:

功能获取模块,用于获取软件开发任务中待开发的功能;

功能代码获取模块,用于在预建的源码数据库中,获取与所述待开发的功能对应的源代码;

源代码显示模块,用于显示获取到的源代码;

其中,所述源码数据库包括预存的功能以及预存的功能对应的源代码。

在本发明实施例中,在预建的源码数据库中,获取与所述待开发的功能对应的源代码,显示获取到的源代码。避免了出现同一功能重复开发的情况,有益效果在于两方面,一方面节约了软件开发的时间,提升软件开发效率,另一方面,创造了新的ide环境,提高了软件开发的智能程度。

附图说明

图1是本发明实施例提供的软件开发方法的实现流程图;

图2是本发明实施例提供的构建源码数据库的实现流程图;

图3是本发明实施例提供的软件开发方法步骤s202的实现流程图;

图4是本发明实施例提供的软件开发方法步骤s103的实现流程图;

图5是本发明实施例提供的构建源码数据库较佳的实现流程图;

图6是本发明实施例提供的辅助开发的实现流程图;

图7是本发明实施例提供的软件开发装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“倘若”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“倘若确定”或“倘若读取到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

实施例一

图1是本发明实施例提供的软件开发方法的实现流程图,详述如下:

在步骤s101中,获取软件开发任务中待开发的功能;

利用人工智能软件开发助手,获取软件开发任务中待开发的功能。

当启动人工智能软件开发助手时,获取软件开发任务中待开发的功能;

或者,当按下人工智能软件开发助手所在设备上的某个按键时,获取软件开发任务中待开发的功能;

或者,当点击人工智能软件开发助手对应的图标时,获取软件开发任务中待开发的功能。

其中,人工智能软件开发助手为用于软件开发的助手。

在步骤s102中,在预建的源码数据库中,获取与所述待开发的功能对应的源代码;

其中,所述源码数据库包括预存的功能以及预存的功能对应的源代码。

其中,在预建的源码数据库中,利用所述待开发的功能的名称、关键字、操作对象,查找与所述待开发的功能对应的源代码。

在步骤s102之前,软件开发方法还包括:

构建源码数据库。

在步骤s103中,显示获取到的源代码。

当获取到的多段源代码时,显示源代码列表,所述源代码列表中包括获取到的多段源代码;

检测在源代码列表中指定的源代码;

获取指定的源代码;

关联指定的源代码以及待开发的功能。

在本发明实施例中,显示获取到的源代码,避免了出现同一功能重复开发的情况,有益效果在于以下几个方面,详述如下:

第一方面,在庞大的源码库的支持下,可以满足算法、功能类、简单工程模式的编码要求;

第二方面,提供了强大的代码扫描能力和虚拟运行能力,可以在程序员写下代码的同时,把运行结果提供给程序员检查结果是否正确;

第三方面,提供了强大的测试能力,能够提供完成代码的测试数据供程序员分析;

第四方面,收集程序员写下的代码,并通过交流了解这些代码的功能。这些信息同时会构成人工智能的数据库的一部分。

实施例二

本发明实施例描述了获取软件开发任务中待开发的功能的实现流程,详述如下:

通过语音或者文本的输入方式,接收软件开发任务中待开发的功能。

其中,通过语音或者文本的输入方式,接收用户的软件开发任务,再解析软件开发任务,以获取待开发的功能。

实施例三

图2是本发明实施例提供的构建源码数据库的实现流程图,详述如下:

在步骤s201中,获取源代码;

其中,利用代码抓取程序,从代码库中抓取各个程序中的源代码。

在步骤s202中,根据所述源代码的运行结果或者标注,得到所述源代码对应的功能;

其中,提取源代码对应的标注,得到所述源代码对应的功能。

在步骤s203中,通过建立得到的功能与所述源代码之间的对应关系,构建源码数据库。

实施例四

图3是本发明实施例提供的软件开发方法步骤s202的实现流程图,详述如下:

在步骤s301中,检测获取到的源代码与预存的源代码是否重复;

在步骤s302中,倘若获取到的源代码与预存的源代码不重复,则根据所述源代码的运行结果或者标注,得到所述源代码对应的功能。

实施例五

图4是本发明实施例提供的软件开发方法步骤s103的实现流程图,详述如下:

在步骤s401中,根据所述待开发的功能的关键字,通过预建的源码数据库,确定所述多个功能中各功能与所述待开发的功能的相关程度;

在步骤s402中,将所述相关程度进行排序,将所述多个功能中排序在预设阈值内的功能对应的源代码,作为所述待开发的功能对应的源代码。

在本发明实施例中,能找出与待开发的功能相关程度较大的功能,将相关程度较大的功能对应的源代码优先推荐给用户,能进一步节约软件开发的时间,提升软件开发效率。

实施例六

本发明实施例描述了当软件开发装置为人工智能软件开发助手时,人工智能软件开发助手具备的基本特征,详述如下:

1)这个助手是一种云助手的形式。

2)具备自然语言分析能力,能理解简单的语言交流,可以通过语音或者文本的方式交流。

3)具备一个大数据库支撑。这个数据库是现在所有能搜索到的源代码的集合。这个集合里面有大量的已经被标注的源代码。

4)有自动爬取和分析关键技术论坛的能力,可以源源不断将更多的源代码输入源码数据库。

技术论坛包括但不限于比如编程论坛stackoverflow。

5)能够针对个体程序员做调整适应,做到更理解该用户的想法,给出更专业更有用的建议和帮助。

6)更高级的人工智能具备分析源代码,理解某一段源代码是完成什么工作,甚至通过虚拟运行得到源代码的运行时刻runtime数据。

7)不断学习,能力越来越强。每一个使用了人工智能软件开发助手的程序员,其实就是在不断对这个人工智能软件开发助手做训练。

在千千万万程序员夜以继日的不断训练下,这个人工智能软件开发助手对“编程”这个工作会越来越胜任。

其中,人工智能软件开发助手是这样帮助程序员的:

人工智能软件开发助手在庞大的源码库的支持下,可以满足算法、功能类、简单工程模式的编码要求。

程序员是一个架构师,把一个复杂系统,分解成模块,然后再把模块分解成更具体的类、算法、接口、函数。这些代码实体,都是人工智能软件开发助手可以自主完成的,因为在软件发展过程中,这些代码被实现过无数次,人工智能收集分析过这其中大多数的代码,并挑选了合适的代码实现。

如果某一个实体人工智能还无法实现,程序员需要跟人工智能继续沟通,提供更多信息,或者继续分解成更简单的子模块,直到人工智能可以自主完成;最后是人工智能无法完成的模块,程序员自己来完成。

程序员借助人工智能,完成了系统的所有小模块,然后自己把这些小模块拼装起来,构成真正的系统。

人工智能提供强大的代码扫描能力和虚拟运行能力,可以在程序员写下代码的同时,把运行结果提供给程序员检查结果是否正确。

人工智能提供强大的测试能力,能够提供完成代码的测试数据供程序员分析。

人工智能收集程序员写下的代码,并通过交流了解这些代码的功能。这些信息同时会构成人工智能的数据库的一部分。

在本发明实施例中,通过创造人工智能软件开发助手,提高了软件开发的智能程度。

实施例七

图5是本发明实施例提供的构建源码数据库较佳的实现流程图,详述如下:

获取源代码和标注;

对源代码分析和处理,对标注分析和处理;

提取源代码特征,匹配源代码数据库;

是否匹配;

是则,表示已有功能代码,增加一种实现,否,新功能代码入库;

结束。

其中,功能代码为:该功能对应的源代码。

实施例八

图6是本发明实施例提供的辅助开发的实现流程图,详述如下:

开始;

交流获取明确任务;

任务明确;

是则,从源码数据库中检索出获取的源代码,代码符合程序员目标,

否则,跳转至交流获取明确任务这一步骤;

结束。

实施例九

图7是本发明实施例提供的软件开发装置的结构框图,该装置可以运行于用户设备中。用户设备包括但不限于移动电话、口袋计算机(pocketpersonalcomputer,ppc)、掌上电脑、计算机、笔记本电脑、个人数字助理(personaldigitalassistant,pda)、mp4、mp3。为便于说明,仅示出了与本实施例相关的部分。为了便于说明,仅示出了与本实施例相关的部分。

参照图7,该软件开发装置,包括:

功能获取模块71,用于获取软件开发任务中待开发的功能;

功能代码获取模块72,用于在预建的源码数据库中,获取与所述待开发的功能对应的源代码;

源代码显示模块73,用于显示获取到的源代码;

其中,所述源码数据库包括预存的功能以及预存的功能对应的源代码。

作为本实施例的一种实现方式,在所述软件开发装置中,所述功能代码获取模块具体用于通过语音或者文本的输入方式,接收软件开发任务中待开发的功能。

作为本实施例的一种实现方式,在所述软件开发装置中,所述软件开发装置,还包括:

获取模块,用于获取源代码;

功能模块,用于根据所述源代码的运行结果或者标注,得到所述源代码对应的功能;

构建模块,用于通过建立得到的功能与所述源代码之间的对应关系,构建源码数据库。

作为本实施例的一种实现方式,在所述软件开发装置中,所述功能模块,包括:

检测单元,用于检测获取到的源代码与预存的源代码是否重复;

功能单元,用于倘若获取到的源代码与预存的源代码不重复,则根据所述源代码的运行结果或者标注,得到所述源代码对应的功能。

作为本实施例的一种实现方式,在所述软件开发装置中,所述功能代码获取模块还包括:

相关程度获取单元,用于根据所述待开发的功能的关键字,通过预建的源码数据库,确定所述多个功能中各功能与所述待开发的功能的相关程度;

源代码获取单元,用于将所述相关程度进行排序,将所述多个功能中排序在预设阈值内的功能对应的源代码,作为所述待开发的功能对应的源代码。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本发明实施例装置和装置中的单元可以根据实际需要进行合并、划分和删减。

本发明实施例提供的装置可以应用在前述对应的方法实施例中,详情参见上述实施例的描述,在此不再赘述。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现。所述的程序可以存储于可读取存储介质中,所述的存储介质,如随机存储器、闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件执行本发明各个实施例所述的方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1