CN106575225A - 模块划分辅助装置、方法和程序 - Google Patents

模块划分辅助装置、方法和程序 Download PDF

Info

Publication number
CN106575225A
CN106575225A CN201480081121.1A CN201480081121A CN106575225A CN 106575225 A CN106575225 A CN 106575225A CN 201480081121 A CN201480081121 A CN 201480081121A CN 106575225 A CN106575225 A CN 106575225A
Authority
CN
China
Prior art keywords
module
key word
function
category
source code
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.)
Granted
Application number
CN201480081121.1A
Other languages
English (en)
Other versions
CN106575225B (zh
Inventor
是木玄太
福井大辅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN106575225A publication Critical patent/CN106575225A/zh
Application granted granted Critical
Publication of CN106575225B publication Critical patent/CN106575225B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/721Modular inversion, reciprocal or quotient calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code
    • G06F8/4436Exlining; Procedural abstraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供运用关于模块所使用的功能的信息来自动提取可划分的模块的模块划分辅助装置、模块划分辅助方法和模块划分辅助程序。信息处理装置的关键词取得部向按模块的关键词使用数据收集关于模块正在使用的功能的数据,数据分析部使用数据和存储在不可分度计算项目列表中的、用户指定的不可分度计算项目计算方法来计算不可分度,并将不可分度存储至不可分度数据,而且,模块划分判断部对划分判断对象模块,通过对关于和用户指定的不可分度计算项目相关联的功能的不可分度与存储在不可分度计算项目列表中的阈值进行比较,来判断是否能够进行模块划分。

Description

模块划分辅助装置、方法和程序
技术领域
本发明涉及判断源代码内的模块、例如函数划分是否能够进行的模块划分辅助装置、模块划分辅助方法和模块划分辅助程序。
背景技术
存在文件设计得不恰当、函数配置在不恰当的文件的情况,成为源可读性降低的原因。在专利文献1中,提案有使用函数的评价规则(文件内所含的函数名的类似度等)来判断是否应该将判断对象的函数从文件分离的方法。
现有技术文献
专利文献
专利文献1:日本特开2007/219586
发明内容
发明所要解决的问题
但是,在专利文献1的方法中,由于不进行函数内的分析,所以不能判断是否能够进行函数的划分,不能提高函数级的源可读性。
用于解决问题的方式
为了解决上述问题,本发明的模块可视化判断具有以下的方案。
本发明的一个侧面为使用输入装置、输出装置、运算装置和存储装置对源代码中的模块(例如,函数、变量、宏等一众功能、要素)进行划分的模块划分辅助方法或者用于该方法的装置和程序。
运算装置能够使用存储在存储装置中的或从输入装置输入的关键词分类表和不可分度计算项目列表。关键词分类表包含多组关键词和与关键词对应的类别的数据的组。例如,作为类别,能够使用与关键词相关联的功能。具有相同或者相关联的功能的部分尽量归纳于一个文件可提高源代码的可读性。因此,通过着眼于功能来对关键词进行分类,源代码的整理会变得容易。或者,作为类别,也可以使用关键词自身。在这种情况下,关键词与类别一一对应。虽然能够进行更详细的分析,但是也存在结果的研讨变得繁杂的情况。此外,也可以将类别分级为两级以上。
不可分度计算项目列表包含类别中的第一类别与第二类别之间的不可分度计算项目和关于不可分度计算项目的计算方法的信息的组。不可分度计算项目及其计算方法能够基于经验法则制定各种规则。
运算装置包括源代码取得部、关键词取得部、数据分析部和模块划分判断部。
源代码取得部取得存储在存储装置中的或者从输入装置输入的一组源代码和作为可视化对象的源代码。关键词取得部按一组源代码中的每个模块确定模块中所含的关键词,生成按模块的关键词使用数据。按模块的关键词使用数据是将一组源代码的模块中出现的关键词间的关联性统计汇总的数据。一组源代码的数据越多统计精度越高,不过数据处理量变大。此外,优选一组源代码为与作为可视化对象的源代码关联性大的集合。作为典型的例子,优选将属于作为可视化对象的源代码所属的数据库或计划项目的源代码的集合作为一组源代码来使用。
数据分析部使用对应于存储在不可分度计算项目列表中的计算方法、存储在按模块的关键词使用数据中的数据和关于关键词分类表中所含的关键词的类别的信息,对第一类别和第二类别计算不可分度来生成不可分度数据。
通过以上的源代码取得部和数据分析部的处理,与关键词相关联的类别彼此的不可分度作为不可分度数据被数据库化。
模块划分判断部确定存在于作为可视化对象的源代码中的各模块内的关键词,并确定各模块中的、具有与第一类别和第二类别对应的关键词的组的模块,其中第一类别和第二类别具有低于规定阈值的不可分度。该被确定的模块成为将要研讨划分的候选项。
另外,将不可分度数据数据库化的主体或信息处理装置也可以为与判断模块划分的主体或信息处理装置不同的其它主体或信息处理装置。
在本发明的优选具体例中,在用作类别的情况下,数据分析部计算第一功能与第二功能的关联度或第一功能与第二功能的使用顺序的比例来作为不可分度。
关于阈值,能够每次由操作员从输入装置输入。在这种情况下,能够实时确认阈值和变化的结果。或者,也可以使不可分度计算项目列表的各信息的组预先附带有阈值。
对作为可视化对象的源代码中的模块中所含的关键词的类别并不限定于两个,还存在具有三个以上的情况。在这种情况下,在与一个模块所含的关键词对应的类别彼此的不可分度全部低于上述规定阈值时,也可以将该模块判断为可划分的模块。这样的模块被推测为含有很多没有关联性的部分,优选优先研讨划分。
在本发明的优选具体例中,为了筛选作为可视化对象的源代码中的模块,能够使用定义筛选条件的模块筛选判断列表。模块划分判断部对符合条件的模块进行确定处理,由此能够减少处理量。作为筛选条件,能够凭经验确定各种条件。作为模块筛选条件的具体的例子,能够利用使用功能或关键词数、功能或关键词间的最大行间数、LOC(Lines OfCode:代码行数)、能够以各种指标测定的复杂度、修正次数、从最后修正起经过的时间、参与开发的人数或开发者的开发水平、经验、能力等。
在更具体的例子中,为了筛选模块划分判断对象模块,具备规定筛选条件的模块筛选项目和按每项目记载有模块筛选的阈值的模块筛选判断数据。数据分析部按模块筛选项目计算模块筛选的值,并对模块筛选的值与模块筛选的阈值进行比较。能够在模块筛选的值为模块筛选的阈值以上的情况下进行模块划分判断,在未达阈值的情况下不进行模块划分判断。
另外,模块划分判断中使用的阈值能够为多个,判断条件也能够将各种条件进行组合。例如,即使是按单一的阈值被判断为可划分的模块的模块,也存在其是内部另外存在多个不可分度高的功能的组的模块的情况。在本发明的其它优选例中,模块划分判断部具有提取该不可分度高的功能的组并且判断该不可分度高的功能的组彼此的不可分度的功能。因此认为在功能的组彼此的不可分度未达规定阈值的情况下判断为可划分的模块,除此以外判断为不可划分的模块。
此外,本发明的另一观点在于,包括取得可视化对象的源代码的源代码取得部和取得源代码或关于源代码所属的计划项目的源代码、开发维护数据中记述的关键词的关键词取得部。此外,使用汇集了模块内记述的关键词或关键词所属的功能名称的关键词分类表。此外,使用按模块的关键词使用数据,该按模块的关键词使用数据存储关于关键词取得部参考关键词分类表取得的每个模块的关键词的数据。此外,使用汇集有功能和关键词的不可分度计算项目、不可分度的计算方法和阈值的不可分度计算项目列表。此外,使用数据分析部,该数据分析部使用存储有不可分度计算项目的计算值的不可分度数据、按模块的关键词使用数据、不可分度计算项目列表中记载的不可分度计算方法,进行不可分度的计算,并将计算结果存储在该不可分度数据中。此外,包括对不可分度与从不可分度计算项目列表取得的阈值或用户输入的阈值进行比较,进行模块的划分判断的模块划分判断部。
以上说明的装置结构既可以由单个计算机构成,或者也可以由输入装置、输出装置、处理装置、存储装置的任意的部分通过网络连接的其它计算机构成。发明的思想在于等价,没有变化。
本实施例中,与由软件构成的功能相同的功能还能够使用FPGA(FieldProgrammable Gate Array:现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit:专用集成电路)等硬件实现。这样的方式也包含在本申请发明的范围内。
发明的效果
根据本发明,能够对源代码内所含的模块,运用关于该模块使用的功能的信息计算功能的不可分度,使用该不可分度判断其是否为能够划分的模块,由此辅助模块级的源可读性提高。上述以外的问题、结构和效果通过以下的实施方式的说明而明了。
附图说明
图1是表示实施例的硬件结构的例子的框图。
图2是表示实施例的例子的功能块图。
图3是表示实施例的关键词分类表的例子的图表。
图4是表示实施例的按函数关键词使用数据的例子的图表。
图5是表示实施例的不可分度计算项目列表的例子的图表。
图6是表示实施例的不可分度数据的例子的图表。
图7是表示实施例的函数筛选判断列表的例子的图表。
图8是表示用于辅助实施例的函数划分的程序图生成流程的一个例子的流程图。
图9是表示实施例的划分判断对象函数筛选流程的一个例子的流程图。
图10是表示实施例的函数划分判断流程的一个例子的流程图。
图11是表示可视化图与不可分度变更相应地变化的一个例子的平面图。
图12是表示划分优先度高的函数的一个例子的平面图。
图13是表示可视化图与不可分度变更相应地变化的一个例子的平面图。
具体实施方式
以下,使用附图对关于本发明的函数划分辅助装置、函数划分辅助方法和函数划分辅助程序的一个实施方式进行详细说明。
不过,本发明并不限定于以下所示的实施方式的记载内容地解释。本领域技术人员能够容易地理解能够在不脱离本发明的思想和主旨的范围内变更其具体的结构。
以下说明的发明的结构中,对相同部分或具有同样的功能的部分,在不同的附图间共同使用相同的附图标记,省略重复的说明。
本说明书等中的“第一”、“第二”、“第三”等标记是为了识别构成要素而标注的,并不一定限定数量或顺序。此外,用于构成要素的识别的号码按上下文关系使用,一个上下文关系中使用的号码在其它上下文关系中并不一定也表示相同的结构。此外,并不妨碍以一个号码识别的构成要素兼具以其它号码识别的构成要素的功能。
在附图等中所示的各结构的位置、大小、形状、范围等为了容易理解发明而存在并不表示实际的位置、大小、形状、范围等的情况。因此,本发明并不限定于图面等中公开的位置、大小、形状、范围等。
在本说明书中以单数形表示的构成要素只要没有特别在上下文中说明就包括多个形式。
实施例1
在本实施例1中,记载生成强调了对含有多个函数的可视化对象源代码判断为可划分的函数的程序图的方法的一个例子。虽然认为程序图的种类为多种,但是在本例中,作为程序图,以函数的调用关系图为基础进行记载。
图1是表示本发明的实施例1的信息处理装置100的硬件和系统结构的一个例子的图。作为信息处理装置100的硬件,具有中央处理装置101、键盘和鼠标等输入装置102、二次存储装置103、主存储装置104、显示器等表示装置105和通信装置107。另外,各装置通过总线106被连接,能够在各装置间相互发送和接收数据。此外,除了信息处理装置100以外,还有信息处理装置和网络储存等能够保存数据的各种信息装置A110和信息装置B120,它们之间例如通过国际互联网等通信网络130连接。
图2是表示本发明的实施例1的信息处理装置100、信息装置A110和信息装置B120的功能块的一个例子的图。另外,在本实施例中,按信息处理装置100的功能块全部为通过中央处理装置101执行或操作的软件程序和数据进行说明,不过也可以作为硬件实现一部分或全部。
此外,本来不仅存在这些功能块而且存在进行各功能块的启动和管理等的OS(Operating System:操作系统)和控制程序等,在本实施例中,对这些功能块的配合动作进行适当说明,OS和控制程序进行此处适当说明的配合动作所需的功能块的启动和动作管理是当然的,因此省略对这些OS和控制程序的说明和记载。
那么,如图2所示,本发明的实施例1的信息处理装置100作为功能块具有源代码取得部200、关键词取得部201、数据分析部202、函数划分判断部203、描绘指示部204、程序图生成控制部205、关键词分类表212、按函数的关键词使用数据213、不可分度(不可划分度)计算项目列表214、不可分度数据215和函数筛选判断数据216。
信息装置A110具有关于计划项目A的源代码组206和源代码A207。源代码A207由函数和变量等部分的程序构成。
信息装置B120具有关于计划项目B的源代码组208和源代码B209。源代码B209由函数和变量等部分的程序构成。另外,关于计划项目A的源代码组206、源代码A207、关于计划项目B的源代码组208和源代码B209并不一定要处于上述的场所,也可以存储在信息处理装置100、信息装置A110和信息装置B120或者其它能够访问的信息处理装置中的任一装置中。
图3表示关键词分类表212的一个例子。在关键词分类表212存储函数内记述的关键词3001和该关键词所属的功能名称3002。在本例中,作为关键词记载有SCI0、SCI1、ITU和CMT。此外,将SCI0和SCI1所属的功能名称作为通信记载,将ITU和CMT所属的功能名称作为计时器记载。关键词分类表212能够由软件供应商生成。或者,软件用户也可以自己区分关键词的类别来生成。这些关键词和功能名称在关键词取得部201取得由源代码和关于源代码的开发、维护数据等设定的宏、关键词信息,将该信息在存储于按函数的关键词使用数据213时使用。关于存储在按函数的关键词使用数据213的信息后述。
图4表示按函数的关键词使用数据213的一个例子。在按函数的关键词使用数据213,例如存储包含在关于信息装置A的计划项目A的源代码组中的、关于每个函数4001的关键词3001使用的数据4002。在本例中,关键词取得部201按每个函数记载关键词分类表212中记载的关键词3001的使用次数。关键词的使用次数考虑如下的多个计数方法:按使用关键词的句子单位作为一次计数,或在x行数之间使用y次关键词的情况下作为一次计数。这样的计数处理能够通过对各函数的源代码检索、提取关键词分类表212所示的关键词而自动地进行。另外,存储的数据并不限定于关键词的使用次数,任何数据均能够存储。对存储怎样的数据,既可以预先在系统中决定,还可以考虑基于用户输入等的信息灵活地决定。此外,在本例中按关键词3001单位存储使用次数的数据,不过并不限定于关键词单位,也可以按功能3002单位存储。
图5表示不可分度计算项目列表214的一个例子。在不可分度计算项目列表214存储在功能的不可分度计算中使用的项目5001、该项目的不可分度计算方法5002和该项目的不可分度阈值5003。
在本例中,在不可分度计算中使用的项目5001由用户选择。使用存储在不可分度计算项目列表214(图5)的不可分度计算方法5002和存储在按函数的关键词使用数据213(图4)的数据,计算用户选择的不可分度计算项目5001的不可分度,将该计算不可分度存储至不可分度数据215(图6)。
该计算不可分度在函数划分判断对象函数判断是否能够划分时使用。在本例中,作为不可分度计算项目5001的例子,能够列举“功能的关联度”和“功能的使用顺序的比例”这两项。
“功能的关联度(功能A与功能B的关联度)”通过将使用属于功能A的关键词和属于功能B的关键词的函数的数除以使用属于功能A的关键词或属于功能B的关键词的函数的数来计算。
“功能的使用顺序的比例(在功能A之后使用功能B的比例)”通过将在功能A之后使用功能B的函数的数除以在功能A之后使用功能B或在功能B之后使用功能A的函数的数来计算。
关于作为不可分度计算项目5001的“功能的关联度”和“功能的使用顺序的比例”,分别作为阈值5003记载有0.7和0.5。在本例中,作为不可分度计算项目使用“功能的关联度”。在函数使用功能A、功能B、功能C的情况下,计算分别对功能A与功能B、功能B与功能C、功能A与功能C的不可分度,使用该不可分度全部比该阈值小的功能的函数判断为可划分。另外,在不可分度计算中使用的项目并不限定于逐个的使用,还考虑同时使用多个项目。
将图5那样的不可分度计算项目列表214预先设定生成。计算方法的例子并不限定于图5所示,只要是能够评价功能彼此间的关联性或密切性的方法即可。在图5的例子中,作为计算方法计算两个功能的不可分度,不过也可以计算三个以上的功能的不可分度。例如,如果计算三个功能A、B、C的关联度,则能够按“(使用关于功能A的关键词和关于功能B的关键词和关于功能C的关键词的函数的数)/(使用关于功能A的关键词或关于功能B的关键词或关于功能C的关键词的函数的数)”来计算。功能为四个以上的情况下也相同。此外,虽然阈值也预先设定,但是也可以如之后说明的那样在计算时进行变更或选择。
图6表示基于图4所示的按函数的关键词使用数据213、使用图5所示的不可分度计算方法计算出的不可分度数据215的一个例子。在不可分度数据215存储用户指定了使用的不可分度计算项目5001的计算值。该不可分度的计算方法如图5中说明的那样。在本例中,设想使用的不可分度计算项目为“功能的关联度”的情况,以能够表现功能彼此的关联度的图表形式存储不可分度的值6001。在图5的例子中,展示类别A(通信功能)与类别B(计时器功能)的关联度。在图5的例子中,计算值按类别汇总展示,还能够按每关键词展示。另外,计算值的存储形式或显示方式并不限定于上述形式,可以以任意的形式存储、显示。
在图6仅展示计时器和通信这两个功能,如在之后说明的那样,在是否可划分的判断中,关于按判断对象函数使用的所有功能(还存在具有三个以上的情况)的组合,取得图6的不可分度数据。
图7表示函数筛选判断列表216的一个例子。在函数筛选判断列表216,列举用于筛选函数划分判断对象函数的项目7001。如果划分判断对象函数的数庞大,则要完成所有划分判断会耗费时间,因此通过使用函数筛选判断列表216筛选判断对象的函数,缩短判断时间。通过使用图7的判断条件,能够提取适合作为函数划分的研讨对象的项目。
在本例中,作为项目7001,列举“使用功能/关键词数”、“功能/关键词间最大行间数”、“LOC”、“复杂度”、“修正次数”、“从最后修正起的期间”和“参与开发的人数”,用户能够使用喜欢的项目。函数筛选判断列表216基于经验等预先设定。例如,修正次数多的函数的结构复杂而已经划分为好的情况较多。此外,开发人员多的函数也是结构复杂而已经划分为好的情况较多。对各项目设定阈值7002,如果项目的值为阈值以上,则作为划分判断对象,如果项目的值未达阈值,则从划分判断对象除去。另外,当然能够在函数筛选中使用的项目并不限定于上述内容。
在图8,表示作为在信息处理装置100、为了辅助函数划分而将存储在信息处理装置A110的源代码A207(参照图2)可视化时的一个例子的流程。
处理800:程序图生成控制部205开始程序图生成。在本实施例1,展示对程序中的函数进行函数是否可划分的判断、生成对可划分的函数进行强调显示的程序图的例子。
处理801:用户使用输入装置102,从源代码组206中指定可视化的源代码。在本实施例中,作为可视化源代码指定源代码A207。当用户指定可视化对象源代码时,源代码取得部200通过通信装置107从关于计划项目A的源代码组206中取得作为可视化对象的源代码A207。如果源代码组206巨大,源代码A207的检索耗费时间的情况下,还考虑根据用户指示,预先将要使用的文件例如向信息处理装置100等能够进行高速检索的场所移动或复制。
处理802:关键词取得部201取得关于在处理801中用户指定的可视化对象源代码A207所属的计划项目A的源代码组206中设定的宏等关键词信息,存储在按函数的关键词使用数据213(参照图4)。
在本例中,存储每个函数的关键词使用数。此时,还考虑参考关键词分类表212(参照图3)的关键词的分类,向按函数的关键词使用数据213进行存储。这样,例如能够如作为关键词的SCI0和作为其所属的功能的通信等那样,考虑至关键词的上级概念为止来存储数据。
另外,在本例中,作为关键词取得部201取得的关键词,列举源代码内记述的宏和关键词,不过并不限定于上述内容。进一步,作为取得关键词的对象,并不限定于关于可视化对象源代码A207所属的计划项目A的源代码组206,能够使用关于无关乎可视化对象的源代码B209所属的计划项目B的源代码组208等各种各样的源代码和与之相关的开发、维护数据。
处理803:用户使用输入装置102指定用于筛选划分判断对象函数的项目和为了之后进行是否划分函数的判断而计算的“功能的不可分度”项目。能够在划分判断对象函数的筛选中还考虑使用的项目预先记载于函数筛选判断列表216(参照图7),用户从函数筛选判断列表216指定项目的方式。
此外,还考虑能够在不可分度计算中使用的项目预先记载于函数不可分度计算项目列表214(参照图5),用户从函数不可分度计算项目列表214指定项目。在本例中,在函数筛选判断列表216记载有“使用功能/关键词数”、“功能/关键词间最大行间数”、“LOC”、“复杂度”、“修正次数”、“从最后修正起的期间”和“参与开发的人数”,在本处理中用户将“使用功能/关键词数”指定为筛选项目。
此外,在不可分度计算项目列表214,作为不可分度计算项目5001,记载有“功能的关联度”和“功能的使用顺序的比例”这两个项目,在本处理中用户指定了“功能的关联度”。另外,筛选项目和不可分度计算项目并不限定于逐个使用,还能够同时使用多个项目。
处理804:数据分析部202使用存储在不可分度计算项目列表214(参照图5)中的不可分度计算方法和存储在按函数的关键词使用数据213(参照图4)中的数据,计算用户所选择的不可分度计算项目的不可分度,存储至不可分度数据215(参照图6)。该不可分度在之后是否划分函数的判断中使用。在处理803中,设想用户指定“功能的关联度”作为“不可分度”项目,因此,使用不可分度计算项目列表214记载的“功能的关联度”计算式计算不可分度。
“功能的关联度”是表示多个功能相互具有多大程度的关联性的指标,该值越高,就表示这些功能越容易同时使用。换言之,如果功能的关联度高,则这些功能应该作为一个处理同时使用,作为处理不可分割。根据不可分度计算项目列表214(图5),“功能A与功能B的关联度”能够通过将使用属于功能A的关键词和属于功能B的关键词的函数的数除以使用属于功能A的关键词或属于功能B的关键词的函数的总数进行计算。
处理805:在处理805以下,对作为可视化对象的源代码A207中所含的函数进行划分判断。程序图生成控制部205将在处理801中取得的可视化对象的源代码A207中所含的尚未进行函数划分判断的函数中的一个函数作为函数划分判断对象函数来取得。
处理806:函数划分判断部203判断是否进行在处理805中取得的函数划分判断对象该函数的划分判断。在本判断中,设想在函数筛选判断列表216中记载的项目中使用“使用功能/关键词数”。如果判断为真,则前进至处理807。如果判断为伪,则前进至处理809。另外,本处理在之后详述。
处理807:函数划分判断部203判断该函数是否能够划分。在本判断中,设想在不可分度计算项目列表214(图5)中记载的项目中使用“功能的关联度”。在判断中,对使用源代码A207中所含的函数使用的、所有功能的组合,对“功能的关联度”数据值与不可分度计算项目列表214记载的“功能的关联度”项目的阈值进行比较。例如,如果所有的“功能的关联度”超过阈值,则判断为不可划分(不适合划分)。在图6的例子中,功能“通信”和“计时器”的关联度为0.8,如果应该评价的功能仅为这两个,则超过阈值0.7,因此该函数不可划分(伪)。此外,虽然在图6中未图示,但是具有其它功能(例如“I/O”),功能“I/O”与“计时器”的关联度如果低于阈值则可划分(真)。如果判断为真,则前进至处理808。如果判断为伪,则前进至处理809。另外,本处理内容在之后详述。另外,在上述的例子中令阈值为一个,还能够与功能的组合相应地将阈值分别设定,对按每个功能的组合判断的结果进行逻辑计算。
处理808:描绘指示部204将该函数作为可划分的函数进行强调显示。此外,此时也可以将不可分度低于阈值的功能或关键词一并显示。
处理809:描绘指示部204不将该函数作为可划分函数进行强调显示。
处理810:程序图生成控制部205判断在处理801中取得的源代码A207中是否存在尚未进行函数划分判断的函数。在存在尚未进行函数划分判断的函数的情况下,前进至处理805。在不存在尚未进行函数划分判断的函数的情况下,前进至处理811。
处理811:程序图生成控制部205结束程序图生成。
图9表示作为在图8的处理806中判断是否进行函数的划分判断时的一个例子的流程。在处理803中,作为划分判断对象函数的筛选项目,设想用户指定函数筛选判断列表216(图7)中记载的项目中的“使用功能/关键词数”。在该例子中使用一个项目作为条件,不过也可以使用多个项目。
处理900:数据分析部202对函数使用的功能、关键词的数进行分析。然后,函数划分判断部203对该“使用功能/关键词数”与函数筛选判断列表216记载的“使用功能/关键词数”项目的阈值进行比较,如果前者的值为后者的值以上,则前进至处理807。如果前者的值比后者的值小,则前进至处理809。
图10表示作为图8的处理807中进行函数的划分判断时的一个例子的流程。在处理803,作为“不可分度”项目,设想用户指定不可分度计算项目列表214(图5)中记载的项目中的“功能的关联度”。在该例子中,使用一个项目作为条件,不过也可以使用多个项目。
处理1000:数据分析部202自按函数的关键词使用数据213(图4)取得判断对象函数的关键词数据。然后,使用该数据,关于该函数使用的所有的功能的组合取得不可分度数据215(图6)记载的“功能的关联度”数据值。然后,函数划分判断部203针对函数使用的所有的功能、对该“功能的关联度”数据值与不可分度计算项目列表214(图5)记载的“功能的关联度”项目的阈值进行比较。此时,如果存在所有前者的值低于后者的值的功能,则前进至处理808。如果不存在所有前者的值低于后者的值的功能则前进至处理809。
作为本实施例的效果,解决上述的专利文献1中存在的问题,即由于不对函数内进行分析而不能进行函数的划分、不能提高源可读性的问题。即,通过着眼于函数使用的功能,计算该功能彼此的关联度,将它们用作函数不可分度,自动判断对象函数是否可划分,并通过使用该判断结果,构筑、显示强调了可划分的函数的程序图,能够进行用于提高源可读性的辅助。
使用本实施例的方法生成的程序图中,只要变更不可分度的阈值,作为可划分被强调显示的函数就会改变。
图11表示变更不可分度的阈值时的画面例。例如,图中的四边形表示函数,将四边形彼此连接的箭头表示调用和写入等。根据使用本程序图的目的和意图,多大程度地含有可划分函数的想法会有所不同,因此,例如还考虑代替不可分度计算项目列表214(图5)中记载的不可分度计算项目5001的阈值5003,通过如图11所示那样,调整不可分度阈值滑动条1101而将其值作为阈值使用,根据目的和意图适当修改程序图。
在图11所示的程序图中,灰色的节点1102表示被判断为可划分能的函数。如图11上图所示,在不可分度阈值为0.8的时六个函数作为可划分被强调,但是在操作不可分度阈值滑动条而变更为0.1的情况下,如图11下图那样,仅三个函数作为可划分被强调显示。
在处理1000、图11进行的函数划分判断中,如果在函数内正在使用的功能中与该函数内的其它功能的关联度未达阈值那样的功能(分离对象功能)为一个,则判断为可进行函数划分。此处,如果被判断为可进行函数划分的函数多的情况下等,存在要将可划分函数筛选至划分优先度高的函数的情况。
图12表示划分优先度高的函数的一个例子。图12所示的函数、receiveMessage(接收信息)函数使用A功能、B功能、C功能和D功能,A功能与B功能的不可分度为0.8,A功能与C功能的不可分度为0.2,A功能与D功能的不可分度为0.2,B功能与C功能的不可分度为0.2,B功能与D功能的不可分度为0.2,C功能与D功能的不可分度为0.7。这样,不可分度高的多个功能的组(A功能和B功能、C功能和D功能)的、二极化(多极化)的函数的划分优先度高。接着,对提取这样的功能二极化的函数的例子进行说明。
图13表示变更不可分度的阈值的其它例子。为了对图12那样的情况进行分析,例如优选如图13所示那样,不可分度阈值滑动条为两条以上。通过具有两条不可分度阈值滑动条,能够将用于区分不可分度高的功能的组的第一的阈值和用于将不可分度高的功能的组彼此分开的第二的阈值分别设定。在图13,不可分度阈值滑动条的上级1101a用于选择不可分度高的功能的组。根据上级滑动条1101a的阈值,即使在函数内存在一个具有阈值以上的不可分度的功能的组也提取函数。不可分度阈值滑动条的下级1101b用于将不可分度高的功能的组彼此分开。根据下级滑动条1101b的阈值,由上级滑动条提取的函数中、即使在函数内存在一个具有未达阈值的不可分度的功能的组也提取函数。即,通过上级滑动条可知在函数内存在不可分度高的功能的组。此外,通过下级滑动条可知在函数内存在不可分度低的功能的组。即,可知在该函数内功能二极化(或者多极化)。使用这两个滑动条,首先区分具有不可分度高的功能的组的函数,在此基础上,进一步从其中区分存在可分离的功能的组的函数。
若使用图12的函数进行说明,则可知在图13的上级滑动条1101a的设定中,作为不可分度高的功能存在0.6以上的功能、即A功能与B功能的组和C功能与D功能的组,能够将具有该功能(的组)的函数提取出来。在图13的上级的图中,在即使具有一个不可分度为0.6以上的功能的组的情况下,函数也以白色的四边形表示,除此以外的函数以灰色的四边形表示。但是,由于下级滑动条1101b设定为0,所以即使A功能与B功能的组和C功能与D功能的组之间的关联度(B功能与C功能的关联度)为0.2那样小的值,也不作为分离对象函数。由此,不作为分离对象的函数在图13上级以白色的四边形表示。此外,在图13上级以灰色表示的函数成为不可分度为0.6以上的功能的组一个也没有的函数。
此处,操作下级滑动条1101b,变更为0.25。此处基于下级滑动条的阈值的判断对象被限定为通过上级滑动条的设定而具有0.6以上的不可分度的功能的组的函数(在图13上级以白色的四边形表示)。如此,则提取在图13上级以白色的四边形表示的函数中具有未达0.25的不可分度的功能的组的函数。在图12的函数中,由于B功能与C功能的不可分度0.2未达阈值,所以成为分离对象的函数。在图13下级,在图13上级以白色的四边形表示的函数中的几个函数被变更为灰色的四边形。该从白色变更为灰色的函数是功能二极化(多极化)的函数。
在上述的说明中,将下级滑动条的阈值的判断对象作为所有功能之间的不可分度。但是,也可以筛选为由上级滑动条提取的具有高的不可分度的A功能与B功能的组和C功能与D功能的组之间的不可分度。通过确定判断的功能(关键词),能够进行详细的研讨。此外,在图13的例子中,两个滑动条的阈值还能够从最开始就作为仅对确定的功能彼此间的不可分度有效的阈值。例如,还能够不依赖于基于滑动条的上级1101a的设定的结果,从最开始就将下级滑动条作为对于图12的B功能与C功能的间的不可分度的阈值设定。
在函数的划分判断中,作为功能的不可分度,还能够使用功能的使用顺序的比例。在使用多个功能时,存在以在使用A功能之后使用B功能的方式决定功能的使用顺序的情况。当以图12为例,将不可分度设想为对于“功能的使用顺序的比例”的不可分度进行说明时,使用A功能之后使用B功能、使用C功能之后使用D功能的比例分别为0.8、0.7。此外,使用B功能之后使用C功能的比例为0.2。此处,在如图13下图那样设定不可分度阈值的情况下,A功能与B功能的不可分度和C功能与D功能的不可分度的阈值为0.6以上,因此它们作为函数内的不可分度高的功能的组被区分。进一步,由于B功能与C功能的不可分度未达阈值0.25,所以A功能与B功能的组和C功能与D功能的组成为划分对象。
在本例中,作为程序图以函数的调用关系图为基础来记载,因此如图11和图13所示那样,将判断为可划分的函数自身强调显示,不表现函数内部。但是,还考虑将为判断可划分的函数的内部可视化。此时,例如,考虑如图12中记载的那样,在函数的内部,对不可分的功能的组着色等可视化方法。当然,可视化方法并不限定于包括上述在内的、本例记载的方法。
另外,在本实施例中,在是否强调显示函数中使用不可分度,不过并不限定于此,能够考虑各种使用法。
本发明并不限定于上述的实施例,而包括各种各样的变形例。例如,能够将一个实施例的结构的一部分替换到另一个实施例的结构,此外,还能够在一个实施例的结构中加入另一个实施例的结构。此外,能够对各实施例的结构的一部分进行其它结构的追加、削除、替换。
工业上的可使用性
能够应用于嵌入式装置等使软件动作的装置。
附图标记的说明
100 信息处理装置
101 中央处理装置
102 输入装置
103 二次存储装置
104 主存储装置
105 表示装置
106 总线
107 通信装置
110 信息装置A
120 信息装置B
130 通信网络
200 源代码取得部
201 关键词取得部
202 数据分析部
203 函数划分判断部
204 描绘指示部
205 程序图生成控制部
206 关于计划项目A的源代码组
207 源代码A
208 关于计划项目B的源代码组
209 源代码B
212 关键词分类表
213 按函数的关键词使用数据
214 不可分度计算项目列表
215 不可分度数据
216 函数筛选判断数据。

Claims (15)

1.一种对源代码中的模块进行划分的模块划分辅助装置,具有输入装置、输出装置、运算装置和存储装置,所述模块划分辅助装置的特征在于:
所述运算装置能够使用存储在所述存储装置中的或从所述输入装置输入的关键词分类表和不可分度计算项目列表,
所述关键词分类表包含多组关键词和与所述关键词对应的类别的数据的组,
所述不可分度计算项目列表包含所述类别中的第一类别与第二类别之间的不可分度计算项目和关于所述不可分度计算项目的计算方法的信息的组,
所述运算装置包括源代码取得部、关键词取得部、数据分析部和模块划分判断部,
所述源代码取得部取得存储在所述存储装置中的或从所述输入装置输入的一组源代码和作为可视化对象的源代码,
所述关键词取得部按所述一组源代码中的每个模块确定该模块中所含的所述关键词来生成按模块的关键词使用数据,
所述数据分析部使用存储在所述不可分度计算项目列表中的所述计算方法、存储在所述按模块的关键词使用数据中的数据和关于与所述关键词分类表中所含的关键词对应的类别的信息,对第一类别和第二类别计算不可分度,生成不可分度数据,
所述模块划分判断部确定存在于所述作为可视化对象的源代码中的各模块内的所述关键词,并确定所述各模块中的、具有与第一类别和第二类别对应的关键词的组的模块,其中第一类别和第二类别具有低于规定阈值的所述不可分度。
2.如权利要求1所述的模块划分辅助装置,其特征在于:
所述类别是所述关键词所关联的功能名称,
所述数据分析部计算所述第一类别与第二类别的关联度或所述第一类别与第二类别的使用顺序的比例来作为所述不可分度。
3.如权利要求1所述的模块划分辅助装置,其特征在于:
所述模块划分判断部将从所述输入装置输入的阈值或所述不可分度计算项目列表的各信息的组所附带的阈值用作所述规定阈值。
4.如权利要求1所述的模块划分辅助装置,其特征在于:
所述模块划分判断部,在与所述作为可视化对象的源代码中的各模块中的一个模块所含有的关键词对应的类别彼此的不可分度全部低于所述规定阈值的情况下,将该模块判断为可划分的模块,并将除此以外的模块判断为不可划分的模块。
5.如权利要求1所述的模块划分辅助装置,其特征在于:
为了筛选所述作为可视化对象的源代码中的模块,能够使用定义了筛选条件的模块筛选判断列表,
所述模块划分判断部对符合所述筛选条件的模块进行确定所述模块的处理。
6.一种使用输入装置、输出装置、运算装置和存储装置来对源代码中的模块进行划分的模块划分辅助方法,其特征在于:
所述运算装置能够使用存储在所述存储装置中的或从所述输入装置输入的关键词分类表和不可分度计算项目列表,
所述关键词分类表包含多组关键词和与所述关键词对应的类别的数据的组,
所述不可分度计算项目列表包含所述类别中的第一类别与第二类别之间的不可分度计算项目和关于所述不可分度计算项目的计算方法的信息的组,
所述运算装置包括源代码取得部、关键词取得部、数据分析部和模块划分判断部,
所述源代码取得部取得存储在所述存储装置中的或从所述输入装置输入的一组源代码和作为可视化对象的源代码,
所述关键词取得部按所述一组源代码中的每个模块确定该模块中所含的所述关键词来生成按模块的关键词使用数据,
所述数据分析部使用存储在所述不可分度计算项目列表中的所述计算方法、存储在所述按模块的关键词使用数据中的数据和关于与所述关键词分类表中所含的关键词对应的类别的信息,对第一类别和第二类别计算不可分度,生成不可分度数据,
所述模块划分判断部确定存在于所述作为可视化对象的源代码中的各模块内的所述关键词,并确定所述各模块中的、具有与第一类别和第二类别对应的关键词的组的模块,其中第一类别和第二类别具有低于规定阈值的所述不可分度。
7.如权利要求6所述的模块划分辅助方法,其特征在于:
所述类别是所述关键词所关联的功能名称,
所述数据分析部计算所述第一类别与第二类别的关联度或所述第一类别与第二类别的使用顺序的比例来作为所述不可分度。
8.如权利要求6所述的模块划分辅助方法,其特征在于:
所述模块划分判断部将从所述输入装置输入的阈值或所述不可分度计算项目列表的各信息的组所附带的阈值用作所述规定阈值。
9.如权利要求6所述的模块划分辅助方法,其特征在于:
所述模块划分判断部,在与所述作为可视化对象的源代码中的各模块中的一个模块所含有的关键词对应的类别彼此的不可分度全部低于所述规定阈值的情况下,将该模块判断为可划分的模块,并将除此以外的模块判断为不可划分的模块。
10.如权利要求6所述的模块划分辅助方法,其特征在于:
为了筛选所述作为可视化对象的源代码中的模块,能够使用定义了筛选条件的模块筛选判断列表,
所述模块划分判断部对符合所述筛选条件的模块进行确定所述模块的处理。
11.一种模块划分辅助程序,其使具有输入装置、输出装置、运算装置和存储装置的信息处理装置执行对源代码中的模块进行划分的处理,所述模块划分辅助程序的特征在于:
所述运算装置能够使用存储在所述存储装置中的或从所述输入装置输入的关键词分类表和不可分度计算项目列表,
所述关键词分类表包含多组关键词和与所述关键词对应的类别的数据的组,
所述不可分度计算项目列表包含所述类别中的第一类别与第二类别之间的不可分度计算项目和关于所述不可分度计算项目的计算方法的信息的组,
使所述运算装置起到源代码取得部、关键词取得部、数据分析部和模块划分判断部的作用,
所述源代码取得部取得存储在所述存储装置中的或从所述输入装置输入的一组源代码和作为可视化对象的源代码,
所述关键词取得部按所述一组源代码中的每个模块确定该模块中所含的所述关键词来生成按模块的关键词使用数据,
所述数据分析部使用存储在所述不可分度计算项目列表中的所述计算方法、存储在所述按模块的关键词使用数据中的数据和关于与所述关键词分类表中所含的关键词对应的类别的信息,对第一类别和第二类别计算不可分度,生成不可分度数据,
所述模块划分判断部确定存在于所述作为可视化对象的源代码中的各模块内的所述关键词,并确定所述各模块中的、具有与第一类别和第二类别对应的关键词的组的模块,其中第一类别和第二类别具有低于规定阈值的所述不可分度。
12.如权利要求11所述的模块划分辅助程序,其特征在于:
所述类别是所述关键词所关联的功能名称,
所述数据分析部计算所述第一类别与第二类别的关联度或所述第一类别与第二类别的使用顺序的比例来作为所述不可分度。
13.如权利要求11所述的模块划分辅助程序,其特征在于:
所述模块划分判断部将从所述输入装置输入的阈值或所述不可分度计算项目列表的各信息的组所附带的阈值用作所述规定阈值。
14.如权利要求11所述的模块划分辅助程序,其特征在于:
所述模块划分判断部,在与所述作为可视化对象的源代码中的各模块中的一个模块所含有的关键词对应的类别彼此的不可分度全部低于所述规定阈值的情况下,将该模块判断为可划分的模块,并将除此以外的模块判断为不可划分的模块。
15.如权利要求11所述的模块划分辅助程序,其特征在于:
为了筛选所述作为可视化对象的源代码中的模块,能够使用定义了筛选条件的模块筛选判断列表,
所述模块划分判断部对符合所述筛选条件的模块进行确定所述模块的处理。
CN201480081121.1A 2014-12-11 2014-12-11 模块划分辅助装置、方法和存储介质 Active CN106575225B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/082884 WO2016092677A1 (ja) 2014-12-11 2014-12-11 モジュール分割支援装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
CN106575225A true CN106575225A (zh) 2017-04-19
CN106575225B CN106575225B (zh) 2019-07-02

Family

ID=56106924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480081121.1A Active CN106575225B (zh) 2014-12-11 2014-12-11 模块划分辅助装置、方法和存储介质

Country Status (4)

Country Link
US (1) US10025558B2 (zh)
JP (1) JP6178023B2 (zh)
CN (1) CN106575225B (zh)
WO (1) WO2016092677A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113139867A (zh) * 2021-04-30 2021-07-20 中国银行股份有限公司 微服务模块的划分方法、装置、设备及可读存储介质
CN113227965A (zh) * 2018-12-21 2021-08-06 日本电信电话株式会社 分布式处理辅助装置、分布式处理辅助方法以及程序
CN115113921A (zh) * 2022-08-29 2022-09-27 云账户技术(天津)有限公司 代码重构价值的评估方法、装置、电子设备及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019012674A1 (ja) * 2017-07-13 2019-01-17 株式会社日立製作所 プログラムの統合解析管理装置及びその統合解析管理方法
US10579370B2 (en) * 2018-08-03 2020-03-03 EMC IP Company LLC Method to disintegrate a monolith service to microservices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110013296A (ko) * 2009-07-29 2011-02-09 교세라 가부시키가이샤 정보장치, 정보장치의 조작방법 및 정보장치를 구동하기 위한 프로그램 코드를 포함하는 컴퓨터 판독가능 매체
CN102193859A (zh) * 2010-03-03 2011-09-21 腾讯科技(深圳)有限公司 一种代码分析方法及系统
CN102779170A (zh) * 2012-06-25 2012-11-14 北京奇虎科技有限公司 一种识别网页正文楼层的系统和方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445177A (en) * 1981-05-22 1984-04-24 Data General Corporation Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions
JP3375766B2 (ja) * 1994-12-27 2003-02-10 松下電器産業株式会社 文字認識装置
US5809500A (en) * 1997-02-26 1998-09-15 Century Technology Services, Inc. System for converting programs and databases to correct year 2000 processing errors
JP2001290639A (ja) * 2000-04-07 2001-10-19 Hitachi Ltd ソフトウェア再構成方式
JP2004295425A (ja) * 2003-03-26 2004-10-21 Mitsubishi Electric Corp モジュール構造化支援装置
JP2007219586A (ja) * 2006-02-14 2007-08-30 Matsushita Electric Ind Co Ltd ソースコード解析装置
US7617210B2 (en) * 2007-02-28 2009-11-10 Goldman Sachs & Co. Global inventory warehouse
US9182947B2 (en) * 2013-06-06 2015-11-10 International Business Machines Corporation Program source code navigation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110013296A (ko) * 2009-07-29 2011-02-09 교세라 가부시키가이샤 정보장치, 정보장치의 조작방법 및 정보장치를 구동하기 위한 프로그램 코드를 포함하는 컴퓨터 판독가능 매체
CN102193859A (zh) * 2010-03-03 2011-09-21 腾讯科技(深圳)有限公司 一种代码分析方法及系统
CN102779170A (zh) * 2012-06-25 2012-11-14 北京奇虎科技有限公司 一种识别网页正文楼层的系统和方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113227965A (zh) * 2018-12-21 2021-08-06 日本电信电话株式会社 分布式处理辅助装置、分布式处理辅助方法以及程序
CN113227965B (zh) * 2018-12-21 2024-04-02 日本电信电话株式会社 分布式处理辅助装置、分布式处理辅助方法以及存储介质
CN113139867A (zh) * 2021-04-30 2021-07-20 中国银行股份有限公司 微服务模块的划分方法、装置、设备及可读存储介质
CN113139867B (zh) * 2021-04-30 2024-03-08 中国银行股份有限公司 微服务模块的划分方法、装置、设备及可读存储介质
CN115113921A (zh) * 2022-08-29 2022-09-27 云账户技术(天津)有限公司 代码重构价值的评估方法、装置、电子设备及存储介质
CN115113921B (zh) * 2022-08-29 2022-11-08 云账户技术(天津)有限公司 代码重构价值的评估方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
JP6178023B2 (ja) 2017-08-09
CN106575225B (zh) 2019-07-02
US10025558B2 (en) 2018-07-17
JPWO2016092677A1 (ja) 2017-04-27
WO2016092677A1 (ja) 2016-06-16
US20170242661A1 (en) 2017-08-24

Similar Documents

Publication Publication Date Title
CN106575225A (zh) 模块划分辅助装置、方法和程序
US9619455B2 (en) Table format multi-dimensional data translation method and device
US20150026635A1 (en) Method for generating control-code by a control-code-diagram
CN112149737A (zh) 选择模型训练方法、模型选择方法、装置及电子设备
Fisher-Gewirtzman et al. A learning automated 3D architecture synthesis model: demonstrating a computer governed design of minimal apartment units based on human perceptual and physical needs
Velu et al. Data mining in predicting liver patients using classification model
US20130230219A1 (en) Systems and methods for efficient comparative non-spatial image data analysis
JP2003203090A (ja) 画像空間表示方法
CN116596412A (zh) 人才类型画像的实现方法及系统
Shumaila A comparison of k-means and mean shift algorithms
CN114780408A (zh) 软件用户行为路径分析方法及装置
KR101774834B1 (ko) 빅데이터 시각화 시스템 및 방법
CN102369525A (zh) 搜索可视信息的系统
CN109994171B (zh) 一种用于临床路径对比的流形可视化方法及系统
CN106503920A (zh) 一种配网项目管理现状评估方法及装置
KR100952634B1 (ko) 정보분석 시스템 및 그 정보분석 방법
WO2013080657A1 (ja) 製品情報管理装置、方法、及びプログラム
CN101479726B (zh) 可配置多语种咨询系统及其方法
Mohandas et al. A survey on mining social media data for understanding drug usage
Wu et al. Applied research on visual mining technology in medical data
JPWO2018003115A1 (ja) 分析支援装置、分析支援方法、および分析支援プログラム
Thomas et al. A visual analytics framework for the examination timetabling problem
CN108492849A (zh) 基于模板编辑的分布式医学自然语言文本云处理系统
KR100515347B1 (ko) 단백질 정보 데이터 전처리 장치 및 방법
De Vries et al. What do machines see? Utilizing artificial intelligence to explore cell biology

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
GR01 Patent grant
GR01 Patent grant