一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

软件性能验证系统及软件性能验证方法与流程

2023-10-27 07:47:01 来源:中国专利 TAG:


1.本发明涉及软件性能验证系统及软件性能验证方法。


背景技术:

2.本技术基于2021年3月10日提出的日本专利申请第2021-038744号主张优先权,在本技术中引用其公开的整体内容。
3.在专利文献1中,记载了预测软件的性能的软件性能预测系统。软件性能预测系统从多个终端受理伴随着软件的开发的初始源代码或变更源代码的输入,将所受理的源代码作为源代码信息登记到数据库中,通过将由变更源代码带来的软件的性能与由包含在已登记的源代码信息中的旧源代码带来的软件的性能进行比较,计算新旧源代码的性能的降低比率,判定性能的降低比率是否超过规定的值,如果性能降低比率超过规定的值则向外部通知判定结果。
4.在专利文献2中,记载有预测系统开发中的性能瓶颈(performance bottleneck)的系统分析装置。系统分析装置检测与开发系统设计信息类似的过去系统设计信息作为类似系统检测结果,检索与开发系统设计信息中包含的开发系统功能部件类似的过去系统功能部件作为类似功能检索结果,使用开发系统要件、过去系统要件、开发系统功能部件、过去系统功能部件及过去的系统的过去系统测量结果,取得开发系统功能部件及过去系统功能部件与性能信息建立了关联的系统部件性能信息,根据类似系统检测结果和系统部件性能信息检测作为性能瓶颈的系统功能部件。
5.现有技术文献
6.专利文献
7.专利文献1:日本特开2012-234448号公报
8.专利文献2:日本特开2020-149681号公报


技术实现要素:

9.发明要解决的课题
10.在软件的开发时,需要满足有关应安装到软件中的功能的要件(以下称作“功能要件”)和有关软件应满足的性能的要件(以下称作“性能要件”)。关于是否满足其中的功能要件,在软件开发的各阶段,开发者能够基于源代码进行确认,而关于性能要件则难以在源代码的水平上做出判断。此外,使用所谓的性能解析工具(性能分析器、profiler)进行的软件的性能验证,在开发工程的后期,如果执行代码的生成(编译(compile)、构建(build)等)所需要的源代码及数据没有备齐就不能进行,所以在通过该验证发现了不满足性能要件的情况下,返工工作量较大,给生产效率带来的影响较大。此外,在软件的性能验证时,需要设定考虑了各种执行状况的测试场景,并对于各测试场景准备大量的测试数据,因此准备工作量较大。
11.在专利文献1中,将由变更源代码带来的软件的性能与由已登记的源代码信息中
所包含的旧源代码带来的软件的性能进行比较。但是,为了进行上述比较而需要将变更源代码编译并构建,在为此需要的源代码及数据备齐之前不能验证性能。此外,该文献所记载的技术没有设想如解释型语言那样不需要编译的程序语言。此外,在该文献中,虽然求出了新旧源代码的性能的降低比率,但为了求出该降低比率需要对于变更前后分别准备测试数据。
12.专利文献2通过将开发系统的设计信息与过去系统设计信息进行比较,即在设计信息的水平下进行比较,由此实现系统设计的效率化,但并没有设想具体的代码水平下的性能问题的验证,该文献所记载的技术不是以减轻软件的开发时的性能的验证所花费的负担为目的。
13.本发明是鉴于这样的背景而做出的,目的是提供一种能够效率良好地进行软件的性能的验证的软件性能验证系统及软件性能验证方法。
14.用来解决课题的手段
15.用来达成上述目的的本发明的一个技术方案是一种软件性能验证系统,使用信息处理装置而构成;具备:存储部,存储构成软件的程序的代码;部分代码提取部,提取作为上述代码的一部分的部分代码;特征量向量生成部,生成基于上述部分代码的特征量向量;以及性能验证处理部,生成基于通过将验证对象的上述部分代码输入到性能验证模型而得到的输出的信息,作为该部分代码的验证结果,上述性能验证模型是通过包括学习用的上述部分代码的上述特征量向量以及表示基于该部分代码实现的软件的性能的信息即性能信息在内的学习数据进行了学习的机器学习模型。
16.除此以外,本技术公开的课题及其解决方法根据具体实施方式栏及附图会变得清楚。
17.发明效果
18.根据本发明,能够效率良好地进行软件的性能的验证。
附图说明
19.图1是表示性能验证系统的概略性的结构的系统流程图。
20.图2a是说明部分代码提取处理的例子的图。
21.图2b是说明部分代码提取处理的例子的流程图。
22.图3a是说明部分代码提取处理的其他例的图。
23.图3b是说明部分代码提取处理的其他例的流程图。
24.图4a是说明特征量向量生成处理的例子的图。
25.图4b是说明特征量向量生成处理的例子的流程图。
26.图5a是说明特征量向量生成处理的其他例的图。
27.图5b是说明单词辞典生成处理的流程图。
28.图5c是说明特征量向量化处理的流程图。
29.图6a是说明性能验证模型的学习方法的例子的图。
30.图6b是说明性能验证模型的学习方法的例子的流程图。
31.图7a是说明性能验证模型的学习方法的其他例的图。
32.图7b是说明性能验证模型的学习方法的其他例的流程图。
33.图8a是说明性能验证系统的应用例的图。
34.图8b是说明性能验证系统的应用例中的处理的流程图。
35.图9a是说明性能验证系统的其他应用例的图。
36.图9b是说明性能验证系统的其他应用例中的处理的流程图。
37.图10是在性能验证系统等的结构中使用的信息处理装置的一例。
具体实施方式
38.以下,一边参照附图一边对实施方式进行说明。另外,以下的记载及附图是用来说明本发明的例示,为了说明的明确化而适当进行了省略或简略化。本发明也能够以其他各种形态实施。只要没有特别限定,各构成要素既可以是单个也可以是多个。此外,在以下的说明中,有时对于相同或类似的结构赋予相同的标号而省略重复的说明。此外,在以下的说明中,在标号之前带有的“s”的字符是指处理步骤。
39.图1是表示作为一实施方式而说明的作为信息处理系统的软件性能验证系统(以下简记作“性能验证系统1”)的概略性的结构的系统流程图。性能验证系统1通过将在软件的开发或维护时生成的由规定的编程语言描述的源代码等的程序代码(以下称作“代码”)输入到机器学习模型(以下称作“性能验证模型216”)中来验证软件的性能。作为表示上述性能的指标,例如有吞吐量(throughput)、响应时间(response time)、资源使用量(resource usage)。
40.对于性能验证模型216,例如使用对于既有的代码的描述以表示该代码的性能的信息(以下称作“性能信息”)为标签(正解数据)建立了对应的学习数据(训练数据)进行学习(训练)。
41.验证对象的代码的描述语言并不一定被限定,只要是具有标准的能力的程序员能够解释的语言即可。此外,基于上述代码的执行代码的生成方式并不一定被限定,例如既可以是在生成执行代码时被要求编译(compile)及构建(build)(也有称作链接(link)、制作(make)等的情况)的编译型语言,也可以是依次执行型的解译型语言。
42.此外,上述代码的种类并不一定被限定,例如是网页描述语言、脚本语言、在服务器端运行的应用程序描述语言、操作系统等的系统描述语言、嵌入(embeded)式软件的描述语言、批处理的描述语言的任一种都可以。
43.此外,验证对象的代码既可以是在开发时新制作的代码,也可以是在维护时被更新或追加的代码。此外,上述代码既可以是由软件开发技术人员等的用户在独立型的开发环境中描述的,也可以是在使用多个信息处理装置经由通信网络而连接的存储库(repository)环境进行的共同开发环境中生成的。
44.另外,以下作为一例,以作为验证的对象的代码是编译型语言的源代码的情况为例进行说明。
45.性能验证模型216的种类并不一定被限定,例如设想为进行二分类(binary classification)或多类分类(multi-class classification)的模型。作为用于实现性能验证模型216的机器学习的机制,例如有dnn(deep neural network、深度神经网络)、支持向量机(svm:support vector machine)、决策树(decision tree)、k近邻法(k-means)。性能验证模型216例如由包括特征量和各特征量的权重的信息(参数)的矩阵来表现。
46.在学习数据的生成中使用的既有的代码,例如是在功能、结构与由验证对象的代码实现的信息处理系统(以下,称作“验证对象系统”)类似的既有的其他的信息处理系统(以下,称作“既有类似系统”)中使用的代码(以下称作“既有代码”)。另外,验证对象系统与既有类似系统的功能、结构的类似性例如基于各系统的应用领域、各系统的实现方式、构成各系统的软件的执行环境、利用各系统的用户的种类、在开发中使用的程序语言的通用性等来判断。
47.作为与在学习数据的生成中使用的既有代码建立对应的标签,例如使用:从对于基于既有代码的执行代码在正式环境或测试环境中所取得的执行日志获取的信息、从对于上述执行代码进行的执行测试或模拟的结果获取的信息。此外,例如也可以使用精通于既有类似系统的人员等所设定的性能信息作为标签。
48.如图1所示,性能验证系统1具备性能验证部100及模型学习部200的各功能。其中,性能验证部100对于验证对象的源代码使用性能验证模型216进行性能验证。此外,性能验证部100进行基于既有代码的学习数据的生成和使用所生成的学习数据的性能验证模型216的学习。
49.如该图所示,性能验证部100具有部分代码提取部120、特征量向量生成部130及性能验证处理部140。
50.其中,部分代码提取部120从源代码组(验证对象)111提取与验证对象方法(method)列表112的各方法对应的描述(以下称作“部分代码(验证对象)”),并将提取出的各部分代码(验证对象)作为部分代码组(验证对象)113输出。验证对象方法列表112是作为验证对象的方法名的一览,例如由用户设定其内容。
51.特征量向量生成部130将部分代码组(验证对象)113的各部分代码(验证对象)变换为特征量向量,并将变换后的特征量向量作为特征量向量组(验证对象)114输出。
52.性能验证处理部140将特征量向量组(验证对象)114的各特征量向量输入到性能验证模型216中,生成基于性能验证模型216关于该输入所输出的性能信息的信息作为验证结果115。性能验证处理部140将验证结果115例如经由用户接口向用户提供。
53.如该图所示,模型学习部200具有部分代码提取部220、特征量向量生成部230、学习数据生成部240及学习处理部250。
54.其中,部分代码提取部220从在性能验证模型216的学习中使用的源代码(以下称作“源代码组(学习用)211”)提取代码(以下称作“部分代码(学习用)”),将提取出的部分代码(学习用)作为部分代码组(学习用)213输出。
55.特征量向量生成部230将部分代码组(学习用)213的部分代码(学习用)变换为特征量向量,将变换后的特征量向量作为特征量向量组(学习用)214输出。
56.学习数据生成部240通过对特征量向量组(验证对象)114的各特征量向量赋予性能标签212的对应的标签而生成1个以上的学习数据(特征量向量和标签的组),将所生成的各学习数据作为学习数据组215输出。
57.学习处理部250将学习数据组215的各学习数据的特征量向量输入到性能验证模型216中,使用性能验证模型216关于所输入的特征量向量的的输出和与所输入的特征量向量建立了对应的标签之差,对性能验证模型216的参数进行调节,从而使性能验证模型216进行学习。
58.接着,对图1所示的各功能详细叙述。
59.图2a是图1所示的部分代码提取部120或部分代码提取部220(以下,将它们统称作“部分代码提取部”)从源代码组(验证对象)111或源代码组(学习用)211(以下,将它们统称作“源代码组”)提取部分代码(验证对象)或部分代码(学习用)(以下,将它们统称作“部分代码”)的处理的一例(以下称作“部分代码提取处理s300”)。在本例中,部分代码提取部从源代码组以方法(method)为单位提取部分代码。
60.另外,部分代码提取部120从源代码组(验证对象)111例如提取与验证对象方法列表112的各方法对应的方法的描述作为部分代码(验证对象)。此外,部分代码提取部220例如提取在源代码组(学习用)211中包含的各方法的描述作为部分代码(学习用)。
61.图2b是说明部分代码提取处理s300的流程图。部分代码提取部首先从源代码组取得源代码(s311)。接着,部分代码提取部从所取得的源代码中提取部分代码(s312)。
62.图3a是说明部分代码提取处理s300的其他例(以下称作“部分代码提取处理s400”)的图。在该例中,部分代码提取部从源代码组(例如,如1个应用系统那样构成某1个信息处理系统的源代码组),提取包含某个方法的描述以及与该方法具有调用关系的方法组(以下称作“关联方法组”)的描述在内的代码作为部分代码。
63.如该图所示,部分代码提取部首先从源代码组生成表示各方法的调用关系的图表,基于所生成的图表提取包含某个方法的描述和该方法的关联方法组的描述在内的代码作为部分代码。
64.另外,部分代码提取部120从源代码组(验证对象)111,关于验证对象方法列表112的方法,提取包含该方法的描述和该方法的关联方法组的描述在内的代码作为部分代码(验证对象)。此外,部分代码提取部220例如关于源代码组(学习用)211中包含的方法,提取包含该方法的描述和该方法的关联方法组的描述在内的代码作为部分代码(学习用)。
65.图3b是说明部分代码提取处理s400的流程图。如该图所示,首先,部分代码提取部从源代码组取得源代码(s411)。接着,部分代码提取部基于所取得的源代码生成表示方法间的调用关系的图表(s412)。接着,部分代码提取部对于源代码中包含的方法,提取包含该方法的描述和该方法的关联方法组的描述在内的代码作为部分代码(s413)。
66.图4a是说明图1所示的特征量向量生成部130或特征量向量生成部230(以下,将它们统称作“特征量向量生成部”)将部分代码(验证对象)或部分代码(学习用)(以下,将它们统称作“部分代码”)变换为特征量向量的处理的一例(以下称作“特征量向量生成处理s500”)的图。在该例中,特征量向量生成部基于表示部分代码的特征的指标(metrics)值来生成特征量向量。指标值例如是部分代码中的行数、循环语句的出现次数、循环语句的最大层级数、条件分支语句的出现次数、条件分支语句的最大层级数、使用的变量的数量、调用方法的数量、调用方法的行数、调用方法的循环语句的出现次数、调用方法的循环语句的最大层级数、调用方法的条件分支语句的出现次数、调用方法的条件分支语句的最大层级数、调用方法的变量数。特征量向量生成部生成以这些指标值为要素的向量作为特征量向量。
67.通过这样使用部分代码的指标值生成特征量向量,从而能够生成将部分代码的指标值作为特征而捕捉到的特征量向量,能够进行基于部分代码的指标值的差异的性能验证。
68.图4b是说明特征量向量生成处理s500的流程图。特征量向量生成部首先从部分代
码组取得部分代码(s511)。接着,特征量向量生成部求出所取得的各部分代码的指标值(s512)。接着,特征量向量生成部对于各部分代码,生成以各自的指标值为要素的向量作为特征量向量(s513)。
69.图5a是说明特征量向量生成处理s500的其他例(以下称作“特征量向量生成处理s600”)的图。在该例中,特征量向量生成部基于单词辞典生成特征量向量,该单词辞典由将符号与以通用形式表述的单词建立了对应的信息构成。
70.具体而言,特征量向量生成部将从源代码组(例如,如1个应用系统那样构成某1个信息处理系统的源代码组)提取出的部分代码组中所描述的单词(方法名(函数名)、变量型、变量名、数据类型、存储类指定符等)变换为通用形式的表述,生成将不同的符号与各表述建立了对应的关系表作为单词辞典。在该图的例子中,特征量向量生成部将在部分代码组中描述的存储类指定符“static”变换为“static”,将数据类型“void”变换为“void”,将方法名“loaddata”变换为“mth#a”,生成分别将符号“1”、“2”、“3”、“4”与各表述建立了对应的单词辞典。
71.接着,特征量向量生成部对于向特征量向量变换的变换对象的部分代码,将该部分代码中包含的单词变换为通用形式的表述,从单词辞典取得与变换后的表述对应的符号,生成以所取得的各符号为要素的向量作为特征量向量。在该图中,生成将与变换对象的部分代码中包含的各单词的通用形式的表述“static”、“void”、“mth#a”对应的符号“1”、“2”、“3”的各要素以该部分代码中各自的出现顺序排列而得到的向量,作为特征量向量。
72.通过这样基于在部分代码中描述的单词的组合来生成特征量向量,例如能够生成将部分代码的构造捕捉为特征的特征量向量,能够根据部分代码的构造的差异进行性能验证。
73.图5b是说明在特征量向量生成处理s600中特征量向量生成部根据部分代码组生成单词辞典的处理(以下称作“单词辞典生成处理s610”)的流程图。首先,特征量向量生成部对于部分代码组的部分代码进行前处理(删除注释语句等的不需要的描述等)(s611)。接着,特征量向量生成部将前处理后的部分代码中所描述的单词变换为通用形式的表述(s612)。接着,特征量向量生成部从变换后的部分代码提取以通用形式表述的单词(s613),将符号与提取出的通用形式的各单词建立对应而生成单词辞典(s614)。
74.图5c是说明在特征量向量生成处理s600中特征量向量生成部参照单词辞典将变换对象的部分代码变换为特征量向量的处理(以下称作“特征量向量化处理”)的流程图。首先,特征量向量生成部取得变换对象的部分代码,对所取得的部分代码进行前处理(删除注释语句等的不需要的描述等)(s621)。接着,特征量向量生成部将所取得的部分代码中所描述的单词变换为通用形式的表述(s622)。接着,特征量向量生成部从变换后的部分代码提取以通用形式表述的单词(s623),参照单词辞典将提取出的各单词变换为符号,生成将变换后的各符号以出现顺序排列而得到的向量作为特征量向量(s624)。
75.图6a是说明图1所示的学习处理部250使用学习数据组215的学习数据使性能验证模型216进行学习的处理的一例(以下称作“学习处理s700”)的图。该例是性能验证模型216为二分类模型、性能验证模型216输出表示部分代码的性能的单一的指标的情况。通过使用二分类模型作为性能验证模型216,例如能够验证性能是否满足基准。另外,在本例中,以上述指标是表示在基于部分代码实现的处理的性能中有问题的概率的值的情况为例进行说
明。
76.在该例中,学习处理部250将学习数据(特征量向量和标签的组)中的特征量向量输入到性能验证模型216中,基于性能验证模型216针对该输入输出的值(在本例中是“0.3”)与该学习数据的标签(在本例中是“0.0”)之差,对性能验证模型216的参数进行调整。
77.图6b是说明学习处理s700的流程图。学习处理部250首先从学习数据组215取得学习数据,将所取得的学习数据的特征量向量输入到性能验证模型216中(s711)。接着,学习处理部250求出性能验证模型216的输出与该学习数据的标签之差(s712)。接着,学习处理部250基于所求出的差将性能验证模型216的参数更新(s713)。
78.图7a是说明图1所示的学习处理部250使用学习数据组215使性能验证模型216进行学习的处理的其他例(以下称作“学习处理s800”)的图。该例是性能验证模型216为多类分类模型、性能验证模型216输出表示部分代码的性能的多个指标(分别基于不同的观点的多个指标)的情况。通过使用多类分类模型作为性能验证模型216,例如能够从不同的多个观点(例如,循环数、存储器操作次数等)验证性能是否满足基准。
79.在该例中,学习处理部250将学习数据(特征量向量和标签的组)中的特征量向量输入到性能验证模型216中,基于性能验证模型216针对该输入输出的每个观点的值(在本例中是“循环数量:0.3”,“存储器操作数量:0.3”)与该学习数据的标签(在本例中是“发生循环数量:1”,“发生存储器操作数量:0))之差,对性能验证模型216的参数进行调整。
80.图7b是说明学习处理s800的一例的流程图。学习处理部250首先从学习数据组215取得学习数据,将所取得的学习数据的特征量向量输入到性能验证模型216中(s811)。接着,学习处理部250按每个观点,求出性能验证模型216的输出与该学习数据的标签之差(s812)。接着,学习处理部250基于所求出的差,对性能验证模型216的参数进行更新(s813)。
81.如以上说明,本实施方式的性能验证系统1通过从源代码提取部分代码,将提取出的部分代码变换为特征量向量,并将变换后的特征量向量输入到性能验证模型216中,由此验证源代码的性能(包含部分代码在内的源代码的执行代码的性能)。这样,性能验证系统1基于源代码验证性能,因此即使是在例如生成执行代码之前,也能够验证源代码的性能。因此,例如开发者等的用户能够一边记述源代码,一边随时验证该源代码的执行代码被执行的情况下的性能,与在生成执行代码后进行验证的情况相比,返工的发生变少。此外,能够早期发现潜在于源代码中的成为性能瓶颈的代码。此外,性能验证系统1基于源代码验证性能,因此不需要准备测试场景的设定以及测试数据。此外,性能验证系统1对于如解释型语言(interpreted language)那样不需要编译的程序语言也能够适用。这样,根据本实施方式的性能验证系统1,能够大幅地减轻在软件开发时或维护时的软件的性能的验证中花费的负担,能够效率良好地进行系统的开发及维护。
82.接着,对性能验证系统1的适用例(应用例)进行说明。
83.图8a是表示性能验证系统1的应用例的图。在该例中,进行软件开发或维护的用户利用用户装置2(信息处理装置)来制作源代码,用户装置2对性能验证部100发送用户所制作的源代码的验证请求。性能验证部100接收上述验证请求,关于上述源代码生成验证结果115,将所生成的验证结果115向用户装置2发送。
84.通过将性能验证系统1以这样的方式利用,用户例如能够利用在用户装置2中运行的集成开发环境(ide:integrated development environment),一边记述作为开发或维护的对象的源代码,一边简便且迅速地进行该源代码的性能验证。因此,用户能够一边随时确认源代码的性能一边开展开发作业或维护作业,能够效率良好地制作出满足性能要求的质量较高的软件。
85.图8b是说明在图8a所示的应用例中用户装置2和性能验证部100所进行的处理的流程图。首先,从用户装置2向性能验证部100发送源代码(源代码组(验证对象)111和验证对象方法列表112)附带的验证请求(s911)。性能验证部100基于接收到的源代码,生成验证结果115(s912),将所生成的验证结果115向用户装置2发送(s913)。用户装置2如果接收到验证结果115,则将其内容向用户提示(s914)。
86.图9a是表示性能验证系统1的其他应用例的图。该例是多个用户利用共同开发环境60共同进行软件开发或维护的情况。共同开发环境60与分别由不同的用户所操作的多个用户装置2可通信地连接,在存储库61中管理着作为开发或维护的对象的源代码组62。
87.共同开发环境60与性能验证部100可通信地连接。共同开发环境60如果从用户装置2接收到源代码及该源代码的登记请求,则连同接收到的源代码一起将其验证请求向性能验证部100发送。性能验证部100接收上述验证请求,关于上述源代码生成验证结果115,将所生成的验证结果115向共同开发环境60发送。
88.共同开发环境60在接收到的验证结果115表示的性能满足预先设定的性能要件的情况下,将该已更新的源代码登记到存储库61中。另一方面,共同开发环境60在接收到的验证结果115表示的性能不满足预先设定的性能要件的情况下,不进行该已更新的源代码向存储库61的登记,并向用户装置2发送该源代码不满足性能要件的通知。
89.在将性能验证系统1以这样的方式利用的情况下,在共同开发环境60的存储库61中仅管理满足性能要件的源代码组62,能够恒常地确保软件的品质。
90.图9b是说明在图9a所示的应用例中用户装置2、共同开发环境60及性能验证部100进行的处理的流程图。共同开发环境60监视着从用户装置2接收源代码(源代码组(验证对象)111和验证对象方法列表112)附带的登记请求(s1011:否),如果接收到登记请求(s1011:是),连同接收到的源代码一起将该源代码的验证请求向性能验证部100发送(s1012)。性能验证部100如果接收到源代码及验证请求,则针对接收到的源代码生成验证结果115,将所生成的验证结果115向共同开发环境60发送(s1013)。共同开发环境60如果接收到验证结果115(s1014),则判定验证结果115表示的性能是否满足预先设定的性能要件(s1015)。在验证结果115表示的性能不满足预先设定的性能要件的情况下(s1015:否),共同开发环境60向用户装置2发送在s1011中接收到的源代码不满足性能要件而不能登记到存储库中的通知(登记不许可通知)(s1021),然后,处理回到s1011。另一方面,在验证结果115表示的性能满足预先设定的性能要件的情况下(s1015:是),共同开发环境60将在s1011中接收到的源代码登记到存储库中,并且向用户装置2发送该源代码的登记完成通知(s1016)。然后,处理回到s1011。
91.图10是在实现以上说明的性能验证系统1、用户装置2及共同开发环境60中使用的信息处理装置(计算机)的一例。例示的信息处理装置10具备处理器101、主存储装置102、辅助存储装置103、输入装置104、输出装置105及通信装置106。
92.另外,例示的信息处理装置10也可以其全部或一部分是使用例如如由云系统提供的虚拟服务器那样利用虚拟化技术及进程空间分离技术(process space separation technology)等提供的虚拟的信息处理资源来实现。此外,由信息处理装置10提供的功能的全部或一部分例如也可以通过云系统经由api(application program interface、应用程序接口)等而提供的服务来实现。此外,也可以将1个信息处理装置10做成例如性能验证系统1、用户装置2及共同开发环境60中的两个以上共用的结构。
93.在该图中,处理器101例如使用cpu(central processing unit、中央处理器)、mpu(micro processing unit、微处理器)、gpu(graphics processing unit、图形处理器)、fpga(field programmable gate array、现场可编程门阵列)、asic(application specific integrated circuit、专用集成电路)、ai(artificial intelligence、人工智能)芯片等构成。
94.主存储装置102是存储程序及数据的装置,例如是rom(read only memory、只读存储器)、ram(random access memory、随机存取存储器)、非易失性存储器(nvram(non volatile ram))等。
95.辅助存储装置103例如是ssd(solid state drive、固态硬盘)、硬盘驱动器、光学式存储装置(cd(compact disc)、dvd(digital versatile disc、数字多功能光盘)等)、存储系统、ic卡、sd卡或光学式记录介质等的记录介质的读取/写入装置、云服务器的存储区域等。在辅助存储装置103中,可以经由记录介质的读取装置或通信装置106读入程序及数据。保存(存储)在辅助存储装置103中的程序及数据由主存储装置102随时读入。
96.输入装置104是受理来自外部的输入的接口,例如是键盘、鼠标、触摸面板、读卡器``、笔输入方式的平板电脑、声音输入装置等。
97.输出装置105是将处理经过、处理结果等的各种信息输出的接口。输出装置105例如是将上述的各种信息可视化的显示装置(液晶监视器、lcd(liquid crystal display)、显卡等)、将上述的各种信息声音化的装置(声音输出装置(扬声器等))、将上述的各种信息字符化的装置(打印装置等)。另外,例如也可以做成信息处理装置10经由通信装置106而在与其他装置之间进行信息的输入或输出的结构。
98.输入装置104及输出装置105构成在与用户之间进行信息的受理及信息的提示的用户接口。
99.通信装置106(通信部)是实现与其他装置之间的通信的装置。通信装置106是经由通信网络(控制系统网络50、信息/控制系统网络51、信息系统网络52)实现与其他装置之间的通信的有线方式或无线方式的通信接口,例如是nic(network interface card、网卡)、无线通信模组、usb模组等。
100.在信息处理装置10中,例如也可以导入操作系统、文件系统、dbms(database management system、数据库管理系统)(关系型数据库、nosql等)、kvs(key-value store、键值存储)、其他的各种软件(通过输入装置104和输出装置105实现基于gui(graphical user interface、图形用户界面)等的用户接口的软件、中间件、各种应用等)。
101.性能验证系统1、用户装置2及共同开发环境60具备的功能例如也可以通过处理器101将保存在主存储装置102中的程序读出并执行、或由信息处理装置10的硬件(fpga、asic、ai芯片等)来实现。此外,性能验证系统1、用户装置2及共同开发环境60存储的各种数
据被存储在主存储装置102或辅助存储装置103(存储部)中。
102.此外,性能验证系统1的各种功能的全部或一部分例如可以使用文本数据挖掘等的公知的各种数据挖掘方法、公知的各种处理方法(形态解析、句法解析、意义解析、文理解析、特征量提取、单词分散表现、固有表现提取、文本分类、系列加标签)、公知的各种机器学习方法(深度学习(dnn(deep neural network、深度神经网络)、rnn(recurrent neural network、循环神经网络)等)来实现。
103.以上,对本发明的一实施方式进行了说明,但本发明并不限定于上述的实施方式,当然在不脱离其主旨的范围内能够进行各种变更。例如,上述的实施方式是为了容易理解地说明本发明而详细地进行了说明,并不限定于必定具备所说明的全部结构。此外,关于上述实施方式的结构的一部分,可以进行其他结构的追加、删除、替换。
104.例如,通过将上述的部分代码的提取方法的变形(图2a、图3a)、上述的特征量向量的生成方法的变形(图4a、图5a),模型的学习方法的变形(图6a、图7a)进行多种地组合,由此能够想到各种实施方式。
105.此外,在以上的实施方式中,例示了以“方法(method)”为单位从代码中提取部分代码的情况,但例如也可以是以“函数”或“类”等的其他种类的处理块为单位而从代码中提取部分代码。此外,例如也可以按照用户设定的提取方法从代码中提取部分代码。
106.此外,上述的各结构、功能部、处理部、处理机构等,它们的一部分或者全部例如可以设计于集成电路中等而由硬件来实现。此外,上述的各结构、功能等也可以通过处理器解释并执行实现各个功能的程序,由此由软件来实现。实现各功能的程序、表、文件等的信息可以置于存储器或硬盘、ssd(solid state drive、固态硬盘)等的记录装置、ic卡、sd卡、dvd等的记录介质中。
107.此外,以上说明的各信息处理装置的各种功能部、各种处理部、各种数据库的配置形态仅是一例。各种功能部、各种处理部、各种数据库的配置形态可以根据这些装置具备的硬件或软件的性能、处理效率、通信效率等的观点而变更为最优的配置形态。
108.此外,保存上述的各种数据的数据库的结构(模式(schema)等)可以根据资源的有效利用、处理效率提高、访问效率提高、检索效率提高等的观点而灵活地变更。
109.标号说明
110.1性能验证系统;2用户装置;60共同开发环境;61存储库;62源代码组;100性能验证部;111源代码组(验证对象);112验证对象方法列表;113部分代码组(验证对象);114特征量向量组(验证对象);115验证结果;120部分代码提取部;130特征量向量生成部;140性能验证处理部;200模型学习部;211源代码组(学习用);212性能标签;213部分代码组(学习用);214特征量向量组(学习用);215学习数据组;216性能验证模型;220部分代码提取部;230特征量向量生成部;240学习数据生成部;250学习处理部;s300部分代码提取处理;s400部分代码提取处理;s500特征量向量生成处理;s610单词辞典生成处理;s620特征量向量化处理;s710学习处理;s810学习处理。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表