CN106776744A - 一种基于互联网信息的软件开发方法及系统 - Google Patents
一种基于互联网信息的软件开发方法及系统 Download PDFInfo
- Publication number
- CN106776744A CN106776744A CN201611028411.7A CN201611028411A CN106776744A CN 106776744 A CN106776744 A CN 106776744A CN 201611028411 A CN201611028411 A CN 201611028411A CN 106776744 A CN106776744 A CN 106776744A
- Authority
- CN
- China
- Prior art keywords
- information
- software
- knowledge
- development
- internet
- 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 20
- 238000004458 analytical method Methods 0.000 claims description 10
- 230000002349 favourable effect Effects 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 3
- 241000270322 Lepidosauria Species 0.000 abstract 2
- 230000009193 crawling Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于互联网信息的软件开发方法及系统。本系统包括互联网爬虫工具、知识库服务器和软件开发工具;其中,互联网爬虫工具,用于抓取互联网上与软件开发相关联的信息;知识库服务器,用于从爬取的信息中提取出软件知识并存储,以及根据输入的查询条件从该知识库服务器中查询匹配的软件知识;软件开发工具,用于从开发人员当前开发代码生成查询条件发生给该知识库服务器,以及将该知识库服务器查询的软件知识反馈给该开发人员;其中,该查询条件包括程序语言和输入代码中的关键字。本发明与互联网结合,充分利用互联网上丰富的信息,便于开发人员查找信息,大大提高了代码开发、调试程序的效率。
Description
技术领域
本发明涉及软件领域,特别涉及一种利用互联网信息帮助用户开发、调试软件的开发方法及系统。
背景技术
软件开发工具具有软件代码输入、编辑、版本管理、编译和调试等功能,是软件开发人员每天都要使用的工具,是软件行业的基础性工具,对软件开发的效率和质量有着至关重要的影响。
随着软件行业的进步,软件开发工具本身也有了长足的进步,出现了代码自动完成,语法错误实时提醒等方便的功能。同时,互联网的发展也给软件开发带来了重要的影响,通过网上的论坛、博客等方式,开发人员可以交流软件开发的心得体会,分享代码,大大缩短了开发技术学习时间和错误调试时间。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
软件开发工具没有有效与互联网结合,代码自动完成和错误提示都只是基于语法和开发人员正在开发的项目,不能利用互联网上丰富的信息,开发人员不得不在开发工具和浏览器之间来回切换,查找信息和开发代码被割裂成两个部分,降低了开发、调试程序的效率。
发明内容
为了解决现有技术的问题,本发明提供了一种利用互联网信息帮助用户开发、调试软件的开发方法及系统。所述技术方案如下:
一种基于互联网信息的软件开发方法,其步骤为:
1)互联网爬虫工具抓取互联网上与软件开发相关联的信息;
2)知识库服务器从步骤1)爬取的信息中提取出软件知识并存储;
3)根据开发人员当前开发代码所用的程序语言和输入代码中的关键字,从该知识库服务器中查询匹配的软件知识反馈给该开发人员。
进一步的,所述与软件开发相关联的信息包括例子代码和错误分析相关的信息。
进一步的,提取出所述软件知识的方法为:首先为每一设定开发语言设置一关键字集合;然后将爬取的网页信息中的关键字与各开发语言的关键字集合中查找,确定该网页信息中的软件知识的开发语言;然后对该网页信息进行语法分析,确定其中的例子代码内容。
进一步的,步骤2)中,当步骤1)爬取的网页信息中包含设定的错误标志信息时,将对应网页内容加入到该知识库服务器的出错信息库中。
进一步的,从设定的开发人员论坛中提取软件知识的好评统计信息,然后根据该好评统计信息对该知识库服务器中的软件知识进行排序。
一种基于互联网信息的软件开发系统,其特征在于,包括互联网爬虫工具、知识库服务器和软件开发工具;其中,
互联网爬虫工具,用于抓取互联网上与软件开发相关联的信息;
知识库服务器,用于从爬取的信息中提取出软件知识并存储,以及根据输入的查询条件从该知识库服务器中查询匹配的软件知识;
软件开发工具,用于从开发人员当前开发代码生成查询条件发生给该知识库服务器,以及将该知识库服务器查询的软件知识反馈给该开发人员;其中,该查询条件包括程序语言和输入代码中的关键字。
与现有技术相比,本发明的积极效果为:
本发明与互联网结合,充分利用互联网上丰富的信息,便于开发人员查找信息,大大提高了代码开发、调试程序的效率。
附图说明
图1为本发明的系统结构图。
具体实施方式
下面结合附图对本发明进行进一步描述。
一方面,本发明提供了一种软件开发的方法,所述方法包括:
互联网爬虫工具抓取互联网上与软件开发相关联的信息,包括例子代码和错误分析相关的信息;
知识库服务器分析、归纳爬虫工具抓取的信息,构建软件开发知识库;
开发工具软件分析开发人员正在输入的代码,检索开发知识库,给出自动完成建议和错误提示。
另一方面,提供了一种互联网爬虫工具,获取互联网上海量的信息,所述互联网爬虫工具包括:
信息下载模块,用于从互联网下载指定网址的网页内容;
网页分析模块,用于分析网页内容,区分网页中包含的指向其他网页的链接地址,以及所包含的软件知识内容;
初始网址配置模块,用于配置爬虫程序最初要下载的网页内容;
执行模块,从初始网址配置模块配置的网址开始,调用信息下载模块和网页分析模块,利用网页分析模块找到的链接地址继续下载和分析,直到达到指定的深度。
另一方面,本发明提供了一种知识库服务器,所述知识库服务器包括:
知识存储模块,用于存储软件代码知识;
知识提取模块,用于分析互联网爬虫工具获取的信息,并提取出软件知识,存储于知识存储模块;
知识查询模块,用于从知识存储模块中查询出符合条件的知识;
进一步地,知识存储模块存储的知识,由如下要素构成:
开发语言,本条知识所适用的开发语言,例如C,JAVA等;
关键字,标识本条知识的关键信息,一般是系统函数或系统出错信息,例如malloc,StringBuffer等,从开发语言的API手册可以容易地获得关键字信息;
例子代码,与本条知识相关的例子代码,可以供开发人员参考或直接插入到开发人员正在开发的代码中;
出错信息库,与本条知识相关的出错信息,以及解决办法,供开发人员参考,此信息是直接来自于互联网的文字信息,从网页中直接摘取;出错信息也属于软件知识的一部分。
进一步地,知识提取模块分析网页,提取软件知识,其提取方式为:
从网页中用字符串匹配的方法查找所有关键字(关键字即系统函数或系统出错信息,例如malloc,StringBuffer等,从开发语言的API手册可以容易地获得关键字信息)。
根据关键字确定开发语言,每种开发语言的关键字集合不会完全相同,只要网页中出现多个关键字,在各语言的关键字表中查找,即可确定软件知识中的开发语言(因为不同的语言语法是不同的)。
确定开发语言后,可以对网页内容进行语法分析,确定其中的例子代码内容,分析方法为从一个英文单词开始分析,符合语言语法的最长的部分即为例子代码;语法分析技术可参考百度百科“语法分析”,http://baike.baidu.com/link?url=BzTXxAYs3IUeXmi1e68aobkJ4snOARqSb8BCSgeA0z7ZlF8amBSLAkTqkscKmj7icKhzZx2yjIw9SHrzQ34ftJlEyuNgKH80HZLSE3bkNrUzaJv8W65syrqK577N3y19。
如果网页中除了关键字,还出现“异常”,“错误”等错误标志信息,则将网页内容加入出错信息库;
多数开发人员论坛都有好评统计等信息,提取该信息并作为知识库中知识的排序依据。每个统计信息都有对应的软件知识,提取到的软件知识信息与好评都是对应的。
进一步地,知识查询模块用于查询知识的条件,由如下要素构成:
开发语言,所要查询知识的开发语言,也就是开发人员正在开发代码所用的程序语言;
关键字,所要查询知识涉及的关键字,一般是开发人员正在输入的代码中包含的关键字;
另一方面,提供了一种软件开发工具,所述软件开发工具包括:
常规开发工具功能模块,用于进行平常的软件开发工作,包括输入、编辑、编译、调试等等;
知识库辅助完成模块,用于根据用户正在输入的代码,查询知识库服务器,自动向用户提示后续的代码,以及可能的错误信息。
本发明的系统如图1所示,包括互联网爬虫工具、知识库服务器和软件开发工具;其中,互联网爬虫工具,用于抓取互联网上与软件开发相关联的信息;知识库服务器,用于从爬取的信息中提取出软件知识并存储,以及根据输入的查询条件从该知识库服务器中查询匹配的软件知识;软件开发工具,用于从开发人员当前开发代码生成查询条件发生给该知识库服务器,以及将该知识库服务器查询的软件知识反馈给该开发人员;其中,该查询条件包括程序语言和输入代码中的关键字。
实施例
以爬取stackoverflow.com的信息为例对本发明进行进一步详细描述,该网站是开发人员交流排除软件问题的网站,其典型页面信息如下:
public void throws Connection PreparedStatement是关键字,依据这些关键字,基本可以确定是Java语言。431表示评分,可以作为排序依据。大片的灰色区域是例子代码。
当开发人员开发程序时,所开发的语言是开发工具确定的,如果开发人员正在开发Java语言程序,并输入了Connection,PreparedStatement等关键字,则可以确定用户要开发数据库相关程序,则搜索知识库,并给出排名最高的例子代码。
Claims (10)
1.一种基于互联网信息的软件开发方法,其步骤为:
1)互联网爬虫工具抓取互联网上与软件开发相关联的信息;
2)知识库服务器从步骤1)爬取的信息中提取出软件知识并存储;
3)根据开发人员当前开发代码所用的程序语言和输入代码中的关键字,从该知识库服务器中查询匹配的软件知识反馈给该开发人员。
2.如权利要求1所述的方法,其特征在于,所述与软件开发相关联的信息包括例子代码和错误分析相关的信息。
3.如权利要求1或2所述的方法,其特征在于,提取出所述软件知识的方法为:首先为每一设定开发语言设置一关键字集合;然后将爬取的网页信息中的关键字与各开发语言的关键字集合中查找,确定该网页信息中的软件知识的开发语言;然后对该网页信息进行语法分析,确定其中的例子代码内容。
4.如权利要求1或2所述的方法,其特征在于,步骤2)中,当步骤1)爬取的网页信息中包含设定的错误标志信息时,将对应网页内容加入到该知识库服务器的出错信息库中。
5.如权利要求1所述的方法,其特征在于,从设定的开发人员论坛中提取软件知识的好评统计信息,然后根据该好评统计信息对该知识库服务器中的软件知识进行排序。
6.一种基于互联网信息的软件开发系统,其特征在于,包括互联网爬虫工具、知识库服务器和软件开发工具;其中,
互联网爬虫工具,用于抓取互联网上与软件开发相关联的信息;
知识库服务器,用于从爬取的信息中提取出软件知识并存储,以及根据输入的查询条件从该知识库服务器中查询匹配的软件知识;
软件开发工具,用于从开发人员当前开发代码生成查询条件发生给该知识库服务器,以及将该知识库服务器查询的软件知识反馈给该开发人员;其中,该查询条件包括程序语言和输入代码中的关键字。
7.如权利要求6所述的系统,其特征在于,所述与软件开发相关联的信息包括例子代码和错误分析相关的信息。
8.如权利要求6或7所述的系统,其特征在于,该知识库服务器提取出所述软件知识的方法为:首先为每一设定开发语言设置一关键字集合;然后将爬取的网页信息中的关键字与各开发语言的关键字集合中查找,确定该网页信息中的软件知识的开发语言;然后对该网页信息进行语法分析,确定其中的例子代码内容。
9.如权利要求6或7所述的系统,其特征在于,该知识库服务器从设定的开发人员论坛中提取软件知识的好评统计信息,然后根据该好评统计信息对该知识库服务器中的软件知识进行排序。
10.如权利要求6或7所述的系统,其特征在于,该知识库服务器还包括一出错信息库,用于存储包含设定的错误标志信息的网页内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611028411.7A CN106776744A (zh) | 2016-11-21 | 2016-11-21 | 一种基于互联网信息的软件开发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611028411.7A CN106776744A (zh) | 2016-11-21 | 2016-11-21 | 一种基于互联网信息的软件开发方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106776744A true CN106776744A (zh) | 2017-05-31 |
Family
ID=58970496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611028411.7A Pending CN106776744A (zh) | 2016-11-21 | 2016-11-21 | 一种基于互联网信息的软件开发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776744A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182217A (zh) * | 2017-12-23 | 2018-06-19 | 合肥弹刚信息科技有限公司 | 一种基于移动互联网的app开发系统及发布方法 |
CN109243249A (zh) * | 2018-08-23 | 2019-01-18 | 广州慧通编程教育科技有限公司 | 测评程序的生成方法和生成装置 |
CN110020041A (zh) * | 2017-08-21 | 2019-07-16 | 北京国双科技有限公司 | 一种跟踪爬取过程的方法及装置 |
CN110083749A (zh) * | 2019-04-11 | 2019-08-02 | 艾伯资讯(深圳)有限公司 | 用于软件快速开发的检索、复用、环境搭建的系统及方法 |
CN111367566A (zh) * | 2019-06-27 | 2020-07-03 | 北京关键科技股份有限公司 | 混源代码特征提取与匹配方法 |
CN112749312A (zh) * | 2019-10-31 | 2021-05-04 | 北京国双科技有限公司 | 一种数据查询的方法和相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080021875A1 (en) * | 2006-07-19 | 2008-01-24 | Kenneth Henderson | Method and apparatus for performing a tone-based search |
CN101408883A (zh) * | 2008-11-24 | 2009-04-15 | 电子科技大学 | 一种网络舆情观点收集方法 |
CN102760058A (zh) * | 2012-04-05 | 2012-10-31 | 中国人民解放军国防科学技术大学 | 面向大规模协作开发的海量软件项目共享方法 |
JP2014524069A (ja) * | 2011-06-07 | 2014-09-18 | マイクロソフト コーポレーション | プレゼンテーションアプリケーションのための埋め込みウェブビューアー |
-
2016
- 2016-11-21 CN CN201611028411.7A patent/CN106776744A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080021875A1 (en) * | 2006-07-19 | 2008-01-24 | Kenneth Henderson | Method and apparatus for performing a tone-based search |
CN101408883A (zh) * | 2008-11-24 | 2009-04-15 | 电子科技大学 | 一种网络舆情观点收集方法 |
JP2014524069A (ja) * | 2011-06-07 | 2014-09-18 | マイクロソフト コーポレーション | プレゼンテーションアプリケーションのための埋め込みウェブビューアー |
CN102760058A (zh) * | 2012-04-05 | 2012-10-31 | 中国人民解放军国防科学技术大学 | 面向大规模协作开发的海量软件项目共享方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020041A (zh) * | 2017-08-21 | 2019-07-16 | 北京国双科技有限公司 | 一种跟踪爬取过程的方法及装置 |
CN108182217A (zh) * | 2017-12-23 | 2018-06-19 | 合肥弹刚信息科技有限公司 | 一种基于移动互联网的app开发系统及发布方法 |
CN109243249A (zh) * | 2018-08-23 | 2019-01-18 | 广州慧通编程教育科技有限公司 | 测评程序的生成方法和生成装置 |
CN109243249B (zh) * | 2018-08-23 | 2021-07-06 | 广州慧通编程教育科技有限公司 | 测评程序的生成方法和生成装置 |
CN110083749A (zh) * | 2019-04-11 | 2019-08-02 | 艾伯资讯(深圳)有限公司 | 用于软件快速开发的检索、复用、环境搭建的系统及方法 |
CN111367566A (zh) * | 2019-06-27 | 2020-07-03 | 北京关键科技股份有限公司 | 混源代码特征提取与匹配方法 |
CN112749312A (zh) * | 2019-10-31 | 2021-05-04 | 北京国双科技有限公司 | 一种数据查询的方法和相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776744A (zh) | 一种基于互联网信息的软件开发方法及系统 | |
CN107704453B (zh) | 一种文字语义分析方法、文字语义分析终端及存储介质 | |
US10896212B2 (en) | System and methods for automating trademark and service mark searches | |
CN107832229B (zh) | 一种基于nlp的系统测试用例自动生成方法 | |
Lv et al. | Codehow: Effective code search based on api understanding and extended boolean model (e) | |
CN108459874B (zh) | 融合深度学习和自然语言处理的代码自动化摘要方法 | |
Cordeiro et al. | Context-based recommendation to support problem solving in software development | |
CN113822067A (zh) | 关键信息提取方法、装置、计算机设备及存储介质 | |
CN109522011B (zh) | 一种基于编程现场上下文深度感知的代码行推荐方法 | |
CN110134613B (zh) | 一种基于代码语义及背景信息的软件缺陷数据采集系统 | |
US10210211B2 (en) | Code searching and ranking | |
CN1799050A (zh) | 概念网络 | |
CN110716749B (zh) | 一种基于功能相似度匹配的代码搜索方法 | |
CN1924858A (zh) | 一种获取新词的方法、装置以及一种输入法系统 | |
CN102063488A (zh) | 一种基于语义的代码搜索方法 | |
CN1492367A (zh) | 询问应答系统及询问应答方法 | |
CN101571860A (zh) | 动态网页生成方法和装置、提取结构化数据的方法和装置 | |
US8489643B1 (en) | System and method for automated content aggregation using knowledge base construction | |
CN103927330A (zh) | 一种在搜索引擎中确定形近字的方法和装置 | |
CN107656997A (zh) | 自然语言处理方法、装置、存储介质及终端设备 | |
CN110275949A (zh) | 用于贷款应用的自动应答方法及系统 | |
Wei et al. | Building bing developer assistant | |
CN112966076A (zh) | 智能问答问题的生成方法、装置、计算机设备及存储介质 | |
CN110413882B (zh) | 信息推送方法、装置及设备 | |
CN103020311B (zh) | 一种用户检索词的处理方法及系统 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170531 |