CN102334095A - 软件开发支持工具 - Google Patents

软件开发支持工具 Download PDF

Info

Publication number
CN102334095A
CN102334095A CN2009801574922A CN200980157492A CN102334095A CN 102334095 A CN102334095 A CN 102334095A CN 2009801574922 A CN2009801574922 A CN 2009801574922A CN 200980157492 A CN200980157492 A CN 200980157492A CN 102334095 A CN102334095 A CN 102334095A
Authority
CN
China
Prior art keywords
source code
software model
information
design idea
software
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
Application number
CN2009801574922A
Other languages
English (en)
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN102334095A publication Critical patent/CN102334095A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code

Abstract

本发明提供一种软件开发支持工具(101),其设有:软件模型读取部(102),读取软件模型;软件模型设计意图提取部(103),提取软件模型中描述的开发者的设计意图;源代码生成部(104),基于生成规则信息输出源代码;源代码读取部(112),读取源代码;源代码设计意图提取部(113),提取源代码中描述的开发者的设计意图;软件模型生成部(114),基于生成规则信息输出软件模型;规则数据库部(105),存储并管理各种规则信息;以及数据库更新管理部(110)和规则改良部(111)。

Description

软件开发支持工具
技术领域
本发明涉及支持从源代码生成软件模型的软件开发方法的工具。
背景技术
作为现有的从源代码生成软件模型的软件开发支持工具,已知一种从实际的源程序自动地生成程序结构图的技术(参照专利文献1)。
专利文献1:JP特开昭63-273131号公报
在上述现有的软件开发支持工具中,仅仅是将源代码中描述的字面在形式上变换为模型,而难以包含开发者的设计意图。对于没有包含作为设计信息的重要要素的开发者的设计意图的模型描述,后续的追加·修改是非常困难的。为了获得包含设计意图形式的模型描述,目前状况下不得不依赖于人工的变换,将巨大的原有软件资源变换为模型描述,无论从规模方面还是从成本方面考虑都是非常没有效率且困难的工作。
发明内容
本发明为了解决上述课题,其目的在于从现有的源代码自动地生成包含开发者设计意图的软件模型,容易实现一种以软件模型为中心的软件设计方法。
为了解决上述课题,本发明的软件开发支持工具具备:软件模型读取部,将由开发者描述的软件模型作为输入,输出源代码的自动生成中所需要的信息作为软件模型信息;软件模型设计意图提取部,将所述软件模型信息和描述了用于对软件模型中所描述的开发者的设计意图进行提取的规则的软件模型设计意图提取规则信息作为输入,提取软件模型中描述的开发者的设计意图并作为软件模型设计意图信息输出;源代码生成部,将所述软件模型信息、所述软件模型设计意图信息、描述了用于从软件模型生成源代码的规则的源代码生成规则信息作为输入,输出源代码;源代码读取部,将源代码作为输入,输出软件模型的自动生成中所需要的信息作为源代码信息;源代码设计意图提取部,将所述源代码信息和描述了用于对源代码中所描述的开发者的设计意图进行提取的规则的源代码设计意图提取规则信息作为输入,提取源代码中描述的开发者的设计意图并作为源代码设计意图信息输出;软件模型生成部,将所述源代码信息、所述源代码设计意图信息、描述了用于从源代码生成软件模型的规则的软件模型生成规则信息作为输入,输出软件模型;规则数据库部,在数据库中存储并管理所述软件模型生成规则信息、所述软件模型设计意图提取规则信息、所述源代码生成规则信息、所述源代码设计意图提取规则信息;数据库更新管理部,管理所述规则数据库部的内容更新;和规则改良部,将所述软件模型信息、所述软件模型生成规则信息、所述软件模型设计意图提取规则信息、所述软件模型设计意图信息、所述源代码信息、所述源代码生成规则信息、所述源代码设计意图提取规则信息、所述源代码设计意图信息作为输入,对所述数据库更新管理部进行指示,修正所述软件模型生成规则信息、所述软件模型设计意图提取规则信息、所述源代码生成规则信息、所述源代码设计意图提取规则信息,使其反映开发者的意图。
根据本发明的软件开发支持工具,能够从原有的源代码自动地生成包含开发者设计意图的软件模型,容易实现以软件模型为中心的软件设计方法。此外,使用新的以软件模型为中心的软件设计方法进行软件开发时,从抽象的软件模型开始设计,并由开发者在生成的初始生成源代码中加入修正,进而生成软件模型,通过反复与所述抽象的软件模型合成,能够容易开发出更为具体的软件模型。
根据本发明的软件开发支持工具,能够容易实现以软件模型为中心的软件设计方法。
附图说明
图1是本发明的实施方式中的软件开发支持工具的结构图。
图2是本发明的实施方式中的软件模型读取部的动作流程图。
图3是本发明的实施方式中的软件模型读取部的描述要素的描述内容分析处理的动作流程图。
图4是本发明的实施方式中的软件模型读取部的描述要素的描述位置判定处理的动作流程图。
图5是本发明的实施方式中的软件模型读取部的描述要素的连接要素扫描处理的动作流程图。
图6是本发明的实施方式中的源代码生成部的动作流程图。
图7是本发明的实施方式中的软件模型设计意图提取部的动作流程图。
图8是本发明的实施方式中的软件模型设计意图提取部的连接图形分析处理的动作流程图。
图9是本发明的实施方式中的软件模型设计意图提取部的与连接目标要素的连接距离算出处理的动作流程图。
图10是本发明的实施方式中的软件模型设计意图提取部的与被连接目标要素的连接距离算出处理的动作流程图。
图11是本发明的实施方式中的软件模型设计意图提取部的连接距离值更新处理的动作流程图。
图12是本发明的实施方式中的软件模型设计意图提取部的被连接距离值更新处理的动作流程图。
图13是本发明的实施方式中的软件模型设计意图提取部的连接意图匹配处理的动作流程图。
图14是本发明的实施方式中的数据库更新管理部的动作流程图。
图15是本发明的实施方式中的源代码设计意图提取部的动作流程图。
图16是本发明的实施方式中的源代码设计意图提取部的关联图形分析处理的动作流程图。
图17是本发明的实施方式中的源代码设计意图提取部的与关联目标块的距离算出处理的动作流程图。
图18是本发明的实施方式中的源代码设计意图提取部的距离值更新处理的动作流程图。
图19是本发明的实施方式中的源代码设计意图提取部的关联方向更新处理的动作流程图。
图20是本发明的实施方式中的源代码设计意图提取部的关联种类设定处理的动作流程图。
图21是本发明的实施方式中的源代码设计意图提取部的描述特性分析·设定处理的动作流程图。
图22是本发明的实施方式中的源代码设计意图提取部的设计意图匹配处理的动作流程图。
图23是本发明的实施方式中的规则改良部的动作流程图。
图24是本发明的实施方式中的规则改良部的从源代码信息的差值提取块的差值的处理的动作流程图。
图25是本发明的实施方式中的规则改良部的在源代码生成规则中追加规则的处理的动作流程图。
图26是本发明的实施方式中的规则改良部的提取关联描述的处理的动作流程图。
图27是本发明的实施方式中的规则改良部的进行块确定并算出要素ID的处理的动作流程图。
图28是本发明的实施方式中的规则改良部的生成代码模板修正处理的动作流程图。
图29是本发明的实施方式中的规则改良部的软件模型设计意图提取规则信息追加处理的动作流程图。
图30是本发明的实施方式中的规则改良部的提取软件模型信息的要素的差值的处理的动作流程图。
图31是本发明的实施方式中的规则改良部的在软件模型生成规则信息中追加规则的处理的动作流程图。
图32是本发明的实施方式中的规则改良部的确定要素ID并算出块ID的处理的动作流程图。
图33是本发明的实施方式中的规则改良部的生成软件模型模板修正处理的动作流程图。
图34是本发明的实施方式中的规则改良部的源代码设计意图提取规则信息追加处理的动作流程图。
图35是本发明的实施方式中的源代码读取部的动作流程图。
图36是本发明的实施方式中的源代码读取部的关联列表内的关联目标ID设定处理的动作流程图。
图37表示本发明的实施方式中的软件模型信息的例子。
图38表示本发明的实施方式中的软件模型设计意图信息的例子。
图39表示本发明的实施方式中的软件模型设计意图提取规则信息的例子。
图40表示本发明的实施方式中的源代码生成规则信息的例子。
图41表示本发明的实施方式中的源代码信息的例子。
图42表示本发明的实施方式中的源代码设计意图信息的例子。
图43表示本发明的实施方式中的源代码设计意图提取规则信息的例子。
图44表示本发明的实施方式中的关联种类信息表格的例子。
图45表示本发明的实施方式中的软件模型生成规则信息的例子。
图46是本发明的实施方式中的软件模型生成部的动作流程图。
图47表示本发明的实施方式中的软件模型的例子。
图48是除了本发明的实施方式中的软件开发支持工具还具备输入输出部的系统的结构图。
具体实施方式
以下,参照附图对本发明的实施方式进行说明。
图1是本发明的实施方式中的软件开发支持工具的结构图。在图1中,101是本发明的实施方式中的软件开发支持工具。在软件开发支持工具101中,软件模型读取部102将开发者131制作的初始软件模型115或生成软件模型116作为输入,将图形的软件模型的描述变换为计算机处理容易的数据,作为初始软件模型信息121或生成软件模型信息122进行输出。软件模型设计意图提取部103将初始软件模型信息121或生成软件模型信息122和保存着用于提取软件模型中包含的开发者设计意图的规则的软件模型设计意图提取规则信息124作为输入,输出软件模型中包含的设计意图的数据即软件模型设计意图信息123。源代码生成部104将初始软件模型信息121、软件模型设计意图信息123、保存用于生成源代码的规则的源代码生成规则信息125作为输入,输出初始软件模型115所对应的初始生成源代码117或生成软件模型116所对应的再生成源代码118。规则数据库部105由保存用于从源代码生成软件模型的规则的数据库即软件模型生成规则数据库106、保存用于从软件模型生成源代码的规则的数据库即源代码生成规则数据库109、保存用于提取软件中包含的开发者设计意图的规则的数据库即软件模型设计意图提取规则数据库107、保存用于提取源代码中包含的开发者设计意图的规则的数据库即源代码设计意图提取规则数据库108组成。
规则改良部111,将初始软件模型信息121、生成软件模型信息122、软件模型设计意图信息123、软件模型设计意图提取规则信息124、源代码生成规则信息125、修改源代码信息129、再生成源代码信息128、软件模型生成规则信息127、源代码设计意图提取规则信息126、源代码设计意图信息130作为输入,通过修正规则数据库部105中的4种数据库106~109的内容,由此将从软件模型向源代码的变换和从源代码向软件模型的变换改良得更加符合开发者意图。数据库更新管理部110根据规则改良部111的指示,对规则数据库部105指示修正数据库。源代码读取部112将开发者119制作或修正的人工修正源代码120作为输入,变换成计算机处理容易的数据,作为再生成源代码信息128或修正源代码信息129输出。源代码设计意图提取部113将修正源代码信息129或再生成源代码信息128和保存用于提取源代码中包含的开发者设计意图的规则的源代码设计意图提取规则信息126作为输入,输出源代码中包含的设计意图的数据即源代码设计意图信息130。软件模型生成部114将修正源代码信息129或再生成源代码信息128、源代码设计意图信息130、保存用于生成软件模型的规则的软件模型生成规则信息127作为输入,输出人工修正源代码120或再生成源代码118所对应的生成软件模型116。
图2表示软件模型读取部102的处理流程。软件模型读取部102将开发者131制作的初始软件模型115或生成软件模型116作为输入,将图形的软件模型的描述变换为计算机处理容易的数据,作为初始软件模型信息121或生成软件模型信息122进行输出。首先,读取由开发者131描述的初始软件模型115或生成软件模型116(201)。接下来使要素ID为0(202)。接着,针对软件模型中描述的所有描述要素开始反复(203)。接着使要素ID的值加一(204)。然后,为了输出软件模型信息,分析描述要素的描述内容(205)。接下来,将步骤205中的分析结果作为初始软件模型信息121或生成软件模型信息122输出(206)。接着,返回步骤204进行反复处理。步骤207表示步骤203的反复处理的结束位置。
图3表示图2的软件模型读取部102的处理流程中的步骤205中被调用的描述要素的描述内容分析子程序的处理流程。首先,读取当前处理对象的描述要素的构造型(Stereotype)(301)。接着,读取当前处理对象的描述要素的名称标签(name label)(302)。接下来,判定当前处理对象的描述要素的描述位置(303)。然后,扫描紧接着当前处理对象的描述要素的其他描述要素(304)。
图4表示从图3的描述要素的描述内容分析子程序到步骤303中调用的描述位置判定子程序的处理流程。首先,判定描述位置判定对象要素的上下方向的描述位置位于何处(401)。在上1/3以上的位置描述的情况下,进一步判定左右方向的描述位置(402)。在左右方向1/3以上左侧描述的情况下,将位置设定为“上左部”(404)。在中央描述的情况下,将位置设定为“上中央部”(405)。在左右方向1/3以上右侧描述的情况下将位置设定为“上右部”(406)。在步骤401的判定中在1/3以下的位置描述的情况下,进一步判定左右方向的描述位置(403)。在左右方向1/3以上左侧描述的情况下将位置设定为“下左部”(407)。在中央描述的情况下将位置设定为(下中央部)(408)。在左右方向1/3以上右侧描述的情况下将位置设定为“下右部”(409)。在步骤401的判定中不是在上下1/3以上的位置描述的情况下判定左右方向的描述位置(410)。在左右方向1/3以上左侧描述的情况下,将位置设定为“中央左部”(411)。在中央描述的情况下将位置设定为“中心部”(412)。在左右方向1/3以上右侧描述的情况下将位置设定为“中央右部”(413)。
图5表示从图3的描述要素的描述内容分析子程序到步骤304中被调用的连接要素扫描子程序的处理流程。首先,使连接目标表中的要素ID为0(501)。接下来,将被连接目标表中的要素ID设为0(503)。接着,将被连接目标表中的连接方向设为“无”(504)。接着,判定在当前处理对象的描述要素中是否存在连接(505)。在没有连接时结束。在有连接的情况下针对所有的连接开始反复(506)。接下来,判定连接线在哪个方向连接(507)。连接线在出去方向连接的情况下,对连接目标要素列表中的要素ID追加连接目标要素ID(508)。接着,在连接目标要素列表中的连接方向中追加连接线连接边的位置(509)。在步骤507的判定中,连接线在进入的方向连接的情况下,在被连接目标要素列表中的要素ID中追加连接源要素ID(510)。接着,在被连接目标要素列表中的连接方向中追加连接线连接边的位置(511)。接下来,返回步骤507进行反复处理。步骤512表示步骤506的反复处理的结束位置。
图6表示源代码生成部104的处理流程。源代码生成部104将初始软件模型信息121或生成软件模型信息122、软件模型设计意图信息123、保存用于生成源代码的规则的源代码生成规则信息125作为输入,输出初始软件模型115所对应的初始生成源代码117、或生成软件模型116所对应的再生成源代码118。首先,读取初始软件模型信息121或生成软件模型信息122(601)。接下来,读取软件模型设计意图信息123(602)。接着,读取源代码生成规则信息125(603)。接着,针对初始软件模型信息121或生成软件模型信息122中包含的所有要素ID开始反复(604)。然后,从软件模型设计意图信息123读取当前的要素ID所对应的代码生成规则ID(605)。接下来,从软件模型设计意图信息123读取当前的要素ID所对应的设计意图ID(606)。接着,从源代码生成规则信息125读取符合代码生成规则ID和设计意图ID的生成代码模板(607)。接下来,从初始软件模型信息121或生成软件模型122读取当前的要素ID所对应的名称标签(608)。然后,将生成代码模板中“[name]”标识(tag)位置以名称标签置换(609)。接下来,从初始软件模型信息121或生成软件模型信息122读取当前的要素ID所对应的连接目标要素列表(610)。接着,针对连接目标要素列表中的所有的连接目标开始反复(611)。接下来,从初始软件模型信息121或生成软件模型信息122读取连接目标要素ID所对应的名称标签(612)。然后,将生成代码模板中的“[reference]”或“[calls]”的标识位置以名称标签置换(613)。接下来,返回至步骤612进行反复处理。步骤614表示步骤611的反复处理的结束位置。接着,判定在生成代码模板中是否存在“[body]”标识(615)。若存在“[body]”标识则将生成代码模板中的“[body]”标识位置以“主体部”注释置换(616)。然后,返回至步骤604进行反复处理。步骤617表示步骤604的反复处理的结束位置。
图7表示软件模型设计意图提取部103的处理流程。软件模型设计意图提取部103将初始软件模型信息121或生成软件模型信息122、保存用于提取软件模型中包含的开发者设计意图的规则的软件模型设计意图提取规则信息124作为输入,输出软件模型中包含的设计意图的数据即软件模型设计意图信息123。首先,读取初始软件模型信息121或生成软件模型信息122(701)。接下来,读取软件模型设计意图提取规则信息124(702)。然后,针对初始软件模型信息121或生成软件模型信息122中包含的所有要素ID开始反复(703)。接下来,针对当前处理中的要素ID进行连接图形分析(704)。然后,将是否存在与设计意图一致的软件模型描述的判定标记即匹配标记(match flag)设为0(705)。接着,针对所有的软件模型设计意图提取规则信息124开始反复(706)。然后,进行软件模型的描述是否与设计意图一致的设计意图匹配(707)。接着,返回至步骤707进行反复处理。步骤708表示步骤706的反复处理的结束位置。
接下来,判定匹配标记是否大于0(709)。在不大于0的情况下将相应的要素ID输出至软件模型设计意图信息123(718)。接下来,将代码生成规则ID的规定值输出至软件模型设计意图信息123(719)。接下来,将设计意图ID的规定值输出至软件模型设计意图信息123(720)。在步骤709的判定中匹配标记大于0的情况下,判定匹配标记是否为1(710)。在匹配标记不是1时将相应要素ID输出至软件模型设计意图信息123(715)。接下来,将匹配的软件模型设计意图提取规则信息124中优先级最高的规则的代码生成ID输出至软件模型设计意图信息123(716)。然后,将匹配的软件模型设计意图提取规则信息124中优先级最高的规则的设计意图ID输出至软件模型设计意图信息123(717)。在步骤710的判定中匹配标记为1的情况下将相应要素ID输出至软件模型设计意图信息123(711)。接下来,将匹配的软件模型设计意图提取规则信息124的代码生成ID输出至软件模型设计意图信息123(712)。接下来,将匹配的软件模型设计意图提取规则信息124的设计意图ID输出至软件模型设计意图信息123(713)。接下来,将匹配的软件模型设计意图提取规则信息124的优先级加一(714)。然后,返回至步骤704进行反复处理。步骤721表示步骤703的反复处理的结束位置。
图8表示从图7的软件模型设计意图提取部103的处理流程到步骤704中被调用的连接图形分析子程序的处理流程。首先,将连接数、被连接数、平均连接距离、最大连接距离、最小连接距离、平均被连接距离、最大被连接距离、最小被连接距离、合计连接距离、合计被连接距离分别设为0(801)。接着,清空连接方向列表(802)。然后,读取相应要素ID的连接目标要素列表(803)。接着,针对所有的连接目标开始反复(804)。然后,使连接数加1(805)。接着,计算与连接目标要素之间的连接距离(806)。接下来,更新连接距离值(807)。然后在连接方向列表中追加相应连接目标的连接方向(808)。接着,返回至步骤804进行反复处理。步骤809表示步骤804的反复处理的结束位置。然后,针对所有的被连接目标开始反复处理(810)。接下来,使被连接数加1(811)。然后计算与被连接目标要素之间的连接距离(812)。接下来,更新被连接目标距离的值(813)。然后,在连接方向列表中追加相应被连接目标的连接方向(814)。接着,返回至步骤811进行反复处理。步骤815表示步骤810的反复处理的结束位置。
图9表示从图8的连接图形分析子程序在步骤806被调用的与连接目标要素之间的连接距离计算子程序的处理流程。首先,获取连接目标要素的坐标(901)。接下来,获取当前的处理对象要素的坐标(902)。然后,对X1设定处理对象要素的横轴坐标,对Y1设定处理对象要素的纵轴坐标(903)。接下来,对X2设定连接目标要素的横轴坐标,对Y2设定连接目标要素的纵轴坐标(904)。接下来,将|X2-X1|+|Y2-Y1|设为距离(905)。
图10表示从图8的连接图形分析子程序在步骤812被调用的与被连接目标要素之间的连接距离计算子程序的处理流程。首先,首先,获取被连接目标要素的坐标(1001)。接下来,获取当前的处理对象要素的坐标(1002)。然后,对X1设定处理对象要素的横轴坐标,对Y1设定处理对象要素的纵轴坐标(1003)。接下来,对X2设定被连接目标要素的横轴坐标,对Y2设定被连接目标要素的纵轴坐标(1004)。接下来,将|X2-X1|+|Y2-Y1|设为距离(1005)。
图11表示从图8的连接图形分析子程序在步骤807被调用的连接距离值更新子程序的流程。首先,在合计连接距离上加上与相应连接目标之间的距离(1101)。接下来,对平均连接距离设定合计连接距离除以连接数之后的值(1102)。接着,判定与相应连接目标之间的距离是否小于最小连接距离(1103)。在与相应连接目标之间的距离不小于最小连接距离的情况下进入步骤1105。在与相应连接目标之间的距离小于最小连接距离的情况下,将与相应连接目标之间的距离设定为最小连接距离(1104)。然后,判定与相应连接目标之间的距离是否大于最大连接距离(1105)。在与相应连接目标的距离不大于最大连接距离的情况下结束。在与相应连接目标的距离大于最大连接距离的情况下,将与相应连接目标之间的距离设定为最大连接距离(1106)。
图12表示从图8的连接图形分析子程序在步骤813被调用的被连接距离值更新子程序的流程。首先,在合计被连接距离上加上与相应被连接目标之间的距离(1201)。接下来,对平均被连接距离设定合计被连接距离除以被连接数之后的值(1202)。接着,判定与相应被连接目标之间的距离是否小于最小被连接距离(1203)。在与相应被连接目标之间的距离不小于最小被连接距离的情况下进入步骤1205。在与相应被连接目标之间的距离小于最小被连接距离的情况下,将与相应被连接目标之间的距离设定为最小被连接距离(1204)。然后,判定与相应被连接目标之间的距离是否大于最大被连接距离(1205)。在与相应被连接目标的距离不大于最大被连接距离的情况下结束。在与相应被连接目标的距离大于最大被连接距离的情况下,将与相应被连接目标之间的距离设定为最大被连接距离(1206)。
图13表示从图7的软件模型设计意图提取部103的处理流程在步骤707被调用的设计意图匹配子程序的处理。首先,分别读取类型一致权重值、描述位置一致权重值、连接图形一致权重值(1301)。接下来,读取一致阈值(1302)。然后,对一致似然值设定0(1303)。接着,判定类型是否一致(1304)。在类型不一致的情况下进入步骤1306。在类型一致的情况下,在一致似然值上加上类型一致权重值(1305)。然后,判定描述位置是否一致(1306)。在描述位置不一致的情况下进入步骤1308。在描述位置一致的情况下,在一致似然值上加上描述位置一致权重值(1307)。接下来,判定连接图形是否一致(1308)。在连接图形不一致的情况下进入步骤1310。在连接图形一致的情况下,在一致似然值上加上连接图形一致权重值(1309)。然后,判定一致似然值是否在一致阈值以上(1310)。在一致似然值小于一致阈值的情况下结束。在一致似然值大于或等于一致阈值时使匹配标记的值加1(1311)。
图14表示数据库更新管理部110的处理流程。数据库更新管理部110根据规则改良部111的指示,对规则数据库部105指示修正数据库。首先,接收数据库修正指示(1401)。然后,判定是否是源代码设计意图提取规则的修正指示(1402)。在不是源代码设计意图提取规则的修正指示的情况下进入步骤1403。在是源代码设计意图提取规则的修正指示时,修正源代码设计意图提取规则数据库108(1408)。然后,判定是否是软件模型设计意图提取规则的修正指示(1403)。在不是软件模型设计意图提取规则的修正指示的情况下,进入步骤1404。在是软件模型设计意图提取规则的修正指示的情况下,修正软件模型设计意图提取规则数据库107(1407)。然后,判定是否是源代码生成规则的修正指示(1404)。在不是源代码生成规则的修正指示的情况下,修正软件模型生成规则数据库106(1405)。在是源代码生成规则的修正指示的情况下修正源代码生成规则数据库109(1406)。
图15表示源代码设计意图提取部113的处理流程。源代码设计意图提取部113,将修正源代码信息129或再生成源代码信息128、保存用于提取源代码中包含的开发者设计意图的规则的源代码设计意图提取规则信息126作为输入,输出源代码中包含的设计意图数据即源代码设计意图信息130。首先,读取修正源代码信息129或再生成源代码信息128(1501)。接着,读取源代码设计意图提取规则信息126(1502)。然后,针对所读取的源代码信息中包含的所有块ID开始反复处理(1503)。接下来,对表示块之间的联系的关联的图形进行分析(1504)。接着,对块的描述特性进行分析·设定(1505)。然后,将是否与设计意图一致的匹配标记设为0(1506)。接下来,针对所有源代码设计意图提取规则信息126开始反复处理(1507)。接着,进行处理对象的块是否与设计意图一致的设计意图匹配(1508)。接下来,返回至步骤1508进行反复处理。步骤1509表示步骤1507的反复处理的结束位置。
接下来,判定匹配标记是否大于0(1510)。在匹配标记不大于0的情况下,将相应块ID输出至源代码设计意图信息130(1519)。然后,将软件模型生成规则ID的规定值输出至源代码设计意图信息130(1520)。接着,将设计意图ID的规定值输出至源代码设计意图信息130(1521)。然后返回至步骤1504进行反复处理。步骤1522表示步骤1503的反复处理的结束位置。在步骤1510的判定中匹配标记大于0的情况下,判定匹配标记是否为1(1511)。在匹配标记不是1的情况下,将相应块ID输出至源代码设计意图信息130(1516)。接下来,将在匹配的源代码设计意图提取规则信息126中优先级最高的规则的代码生成ID输出至源代码设计意图信息130(1517)。然后,将在匹配的源代码设计意图提取规则信息126之中优先级最高的设计意图ID输出至源代码设计意图信息130(1518)。然后,返回至步骤1504进行反复处理。步骤1522表示步骤1503的反复处理的结束位置。在步骤1511的判定中匹配标记是1的情况下,将相应块ID输出至源代码设计意图信息130(1512)。接下来,将匹配的源代码设计意图提取规则信息126的软件模型生成ID输出至源代码设计意图信息130(1513)。接着,将匹配的源代码设计意图提取规则信息126的设计意图ID输出至源代码设计意图信息130(1514)。接下来,使匹配的源代码设计意图提取规则信息126的优先级加1(1515)。接下来,返回至步骤1504进行反复处理。步骤1522表示步骤1503的反复处理的结束位置。
图16表示从图15的源代码设计意图提取部113的处理流程在步骤1504被调用的关联图形分析子程序的处理流程。首先,将关联数、合计关联距离、平均关联距离、最大关联距离、最小关联距离、方向值设为零。此外,清空关联种类、关联方向(1601)。接下来,读取相应块ID的关联列表(1602)。然后,针对相应块ID的关联列表中包含的所有关联目标开始反复处理(1603)。接着,使关联数加1(1604)。然后,计算与关联目标块之间的距离(1605)。接着,更新距离值(1606)。接下来,更新关联方向(1607)。然后设定关联种类(1608)。接着,返回至步骤1604进行反复处理。步骤1609表示步骤1603的反复处理的结束位置。
图17表示从图16的关联图形分析子程序在步骤1605被调用的与关联目标块之间的距离计算子程序的处理流程。首先,读取关联目标块ID所对应的记录(1701)。接着,将所对应的块ID的记录的开始行设定为L1(1702)。接下来,将当前处理中的块ID的记录的结束行设定为L2(1703)。接着,作为距离计算|L1-L2|(1704)。
图18表示从图16的关联图形分析子程序在步骤1606被调用的距离值更新子程序的处理流程。首先,在合计关联距离上加上与相应关联目标之间的距离(1801)。接下来,对平均连接距离设定合计连接距离除以连接数之后的值(1802)。然后,判定与相应连接目标之间的距离是否小于最小关联距离(1803)。在与相应关联目标之间的距离不小于最小关联距离的情况下进入步骤1805。在与相应关联目标之间的距离小于最小关联距离的情况下,将与相应关联目标之间的距离设定为最小关联距离(1804)。接下来,判定与相应关联目标之间的距离是否大于最大关联距离(1805)。在与相应关联目标之间距离不大于最大关联距离的情况下结束。在与相应关联目标之间的距离大于最大关联距离的情况下,将与相应关联目标之间的距离设定为最大关联距离(1806)。
图19表示从图16的关联图形分析子程序在步骤1607被调用的关联方向更新子程序的处理流程。首先,读取关联目标块ID所对应的记录(1901)。接下来,将所对应的块ID的开始行设定为D(1902)。然后,将当前处理中的块ID的开始行设定为S(1903)。然后,判定D-S是否大于0(1904)。在D-S大于0的情况下使方向值加1(1905)。在步骤1904的判定中D-S不大于0的情况下使方向值减1(1908)。接着,判定方向值是否大于0(1906)。在方向值大于0的情况下在关联方向设定后方优先(1907)。在步骤1906的判定中方向值不大于0的情况下在关联方向设定前方优先(1909)。
图20表示从图16的关联图形分析子程序在步骤1608中被调用的关联种类设定子程序的处理流程。首先,从处理中的关联项目中读取关联种类(2001)。接下来,从关联种类表中获取相应的关联种类的关联种类ID(2002)。接着,在关联种类列表中追加关联种类ID(2003)。
图21表示从图15的源代码设计意图提取部113的处理流程在步骤1505被调用的描述特性分析·设定子程序的处理流程。首先将当前处理中的块的开始行设定为S(2101)。接下来,将当前处理中的块的结束行设定为E(2102)。然后,将关联数÷(E-S)的值设定为描述特性(2103)。
图22表示从图15的源代码设计意图提取部113的处理流程在步骤1508被调用的设计意图匹配子程序的处理流程。首先,分别读取类型一致权重值、描述特性一致权重值、关联图形一致权重值(2201)。接下来,读取一致阈值(2202)。然后,对一致似然值设定为0(2203)。接着,判定类型是否一致(2204)。在类型不一致的情况下进入步骤2206。在类型一致的情况下在一致似然上加上类型一致权重值(2205)。接下来,判定描述特性是否一致(2206)。在描述特性不一致的情况下进入步骤2208。在描述特性一致的情况下,在一致似然值上加上描述特性一致权重值(2207)。接着,判定关联图形是否一致(2208)。在关联图形不一致的情况下进入步骤2210。在关联图形一致的情况下,在一致似然值上加上关联图形一致权重值(2209)。接下来,判定一致似然值是否在一致阈值以上(2210)。在一致似然值小于一致阈值的情况下结束。在一致似然值大于或等于一致阈值的情况下,使匹配标记的值加1(2211)。
图23表示规则改良部111的处理流程。规则改良部111将初始软件模型信息121、生成软件模型信息122、软件模型设计意图信息123、软件模型设计意图提取规则信息124、源代码生成规则信息125、修正源代码信息129、再生成源代码信息128、软件模型生成规则信息127、源代码设计意图提取规则信息126、源代码设计意图信息130作为输入,对数据库变更管理部110进行数据库变更指示。首先,清空块差值列表、要素差值列表、关联描述列表。此外,将追加规则ID、对象块ID、对象要素ID设为0。此外,将要素ID算出标记、块ID算出标记设定为NG(2301)。然后,读取修正源代码信息129(2302)。接下来,读取再生成源代码信息128(2303)。接着,读取人工修正源代码120(2304)。然后,读取再生成源代码118(2305)。接着,从各源代码信息的差值提取块的差值(2306)。接下来,判定所提取的块是否存在差值(2307)。存在块的差值的情况下在源代码生成规则信息125中追加规则(2308)。在步骤2307的判定中没有块的差值的情况下,通过文本处理提取各源代码的差值(2309)。接下来,针对所有源代码的差值开始反复处理(2310)。接下来,判定是否是块内部的差值(2311)。不是块内部的差值的情况下返回至步骤2310继续反复处理。步骤2317表示步骤2310的反复处理的结束位置。在是块内部的差值的情况下提取关联描述(2312)。接下来,确定差值所属的块,并算出描述相应块的要素ID(2313)。然后,判定要素ID算出标记是否为OK(2314)。在要素ID算出标记不是OK的情况下,返回至步骤2310继续进行反复处理。步骤2317表示步骤2310的反复处理的结束位置。在要素ID算出标记是OK的情况下,修正生成代码模板(2315)。接下来,追加软件模型设计意图提取规则信息(2316)。然后,返回至步骤2310继续进行反复处理。步骤2317表示步骤2310的反复处理的结束位置。
接下来,读取初始软件模型信息121(2318)。然后,读取生成软件模型信息122(2319)。接着,提取软件模型信息中包含的要素的差值(2320)。然后,基于提取出的差值判定是否存在追加的要素(2321)。存在追加的要素的情况下,在软件模型生成规则信息127中追加规则然后进入步骤2323(2322)。在步骤2321的判定中没有追加的要素的情况下,提取连接目标的差值(2323)。接下来,针对所有的连接目标差值开始反复处理(2324)。接下来,判定是否存在连接目标的差值(2325)。没有连接目标的差值的情况下,返回至步骤2324继续进行反复处理。步骤2330表示步骤2324的反复处理的结束位置。存在连接目标的差值的情况下,确定要素ID并计算块ID(2326)。然后,判定块ID算出标记是否为OK(2327)。在块ID算出标记不为OK的情况下,返回至步骤2324继续进行反复处理。步骤2330表示步骤2324的反复处理的结束位置。在步骤2327的判定中块ID算出标记为OK的情况下,修正生成软件模型模板(2328)。接下来,追加源代码设计意图提取规则信息(2329)。然后,返回至步骤2324继续进行反复处理。步骤2330表示步骤2324的反复处理的结束位置。
图24表示从图23的规则改良部111的处理流程在步骤230中被调用的从源代码信息的差值提取块的差值的子程序的流程。首先,针对修正源代码信息129中包含的所有块名开始反复处理(2401)。接着,取得修正源代码信息的块名(2402)。然后,针对再生成源代码信息128中包含的所有块名开始反复处理(2403)。接下来,取得再生成源代码信息128的块名(2404)。接着,判定各块名是否一致(2405)。在块名不一致的情况下,在块差值列表中追加相应块的源代码信息(2406)。接下来,返回至步骤2403继续进行反复处理。步骤2407表示步骤2403的反复处理的结束位置。在步骤2405的判定中块名一致的情况下,不执行步骤2406返回至步骤2403继续进行反复处理。步骤2407表示步骤2304的反复处理的结束位置。然后,返回至步骤2401继续进行反复处理。步骤2408表示步骤2401的反复处理的结束位置。
图25表示从图23的规则改良部111的处理流程在步骤2308中被调用的在源代码生成规则信息中追加规则的子程序的处理流程。首先,在追加规则ID中设定源代码生成规则信息的最大代码生成规则ID(2501)。接下来,针对块差值列表的所有要素开始反复处理(2502)。然后,使追加规则ID加1(2503)。接下来,制作新的代码生成规则记录(2504)。接着,在新记录的代码生成规则ID中设定追加规则ID(2505)。然后,使新记录的设计意图ID为1(2506)。接着,从人工修正源代码120取得当前处理中的差值块ID所对应的源代码(2507)。然后,提取关联描述(2508)。接下来,将提取出的关联描述变换为与关联的种类相应的标识(2509)。接着,将关联以外的描述以[body]标识置换(2510)。然后,追加块标志(block signature)从而设定为生成代码模板(2511)。接着,将已设定的新记录通知给数据库更新管理部110,追加至源代码生成规则信息中(2512)。然后,返回至步骤2502继续进行反复处理。步骤2513表示步骤2502的反复处理的结束位置。
图26表示从图23的规则改良部111的处理流程在步骤231中被调用的提取关联描述的子程序的处理流程。首先,针对提取对象源代码的各行开始反复处理(2601)。接着,读取提取对象行(2602)。接下来,判定所读取的对象行是否是关联描述(2603)。在所读取的对象行不是关联描述的情况下,返回至步骤2601继续进行反复处理。步骤2605表示步骤2601的反复处理的结束位置。在步骤2603的判定中所读取的对象行是关联描述的情况下,对关联描述列表追加关联列表述部分(2604)。然后,返回至步骤2601继续进行反复处理。步骤2605是表示步骤2601的反复处理的结束位置。此外,在图25中的步骤2508中,提取图26的关联描述的子程序也被调用。
图27表示从图23的规则改良部111的处理流程在步骤231被调用的进行块确定然后计算要素ID的子程序的处理流程。首先,清空对象块名(2701)。然后,将当前处理中的差值行的行序号设定为L(2702)。接着,针对修正源代码信息129的所有块ID开始反复处理(2703)。接下来,将当前处理中的块ID的开始行设定为S(2704)。然后,将当前处理中的块ID的结束行设定为E(2705)。接下来,判定是否S<L<E(2706)。在步骤2706的判定中不是S<L<E的情况下,返回至步骤2703继续进行反复处理。步骤2714表示步骤2703的反复处理的结束位置。在步骤2706的判定中是S<L<E的情况下,将当前处理中的块ID所对应的块名设定为对象块名(2707)。接下来,针对生成软件模型信息122的所有要素ID开始反复处理(2708)。然后,取得当前的要素ID所对应的名称标签(2709)。接下来,判定对象块名与名称标签是否一致(2710)。在名称标签不一致的情况下返回至步骤2708继续进行反复处理。步骤2711表示步骤2708的反复处理的结束位置。在步骤2710的判定中名称标签一致的情况下,将当前的要素ID设定为对象要素ID(2712)。接下来,对要素ID算出标记设定OK,然后结束。
图28表示从图23的规则改良部111的处理流程在步骤2315中被调用的生成代码模板修正子程序的处理流程。首先,读取软件模型设计意图信息123(2801)。接下来,取得对象要素ID所对应的代码生成规则ID和设计意图ID(2802)。接着,读取源代码生成规则信息125(2803)。然后,取得代码生成规则ID和设计意图ID所对应的生成代码模板(2804)。接下来,取得修正源代码信息129的对象块ID所对应的记录(2805)。接着,获取修正源代码信息129的对象块ID所对应的开始行和结束行(2806)。然后,从修正源代码获取从开始行至结束行的源代码(2807)。接下来,提取关联描述(2808)。接着,将提取出的关联描述变换为与关联的种类相应的标识(2809)。然后,以[body]标识置换关联以外的描述(2810)。接下来,追加块标志并置换所对应的生成代码模板(2811)。此外,在图28中的步骤2808中,提取图26的关联描述的子程序也被调用。
图29表示从图23的规则改良部111的处理流程在步骤2316中被调用的软件模型设计意图提取规则信息追加子程序的处理流程。首先,制作新的软件模型设计意图提取规则信息记录(2901)。接下来,读取修正软件模型信息(2902)。接着,将修正软件模型信息的对应要素ID所对应的类型设定为新记录的类型(2903)。然后,对新记录的描述位置、连接图形设定规定值(2904)。接下来,对一致阈值、优先级设定规定值(2905)。接着,对所有的一致权重设定规定值(2906)。然后,对代码生成规则ID设定在生成代码模板修正过程中得到的代码生成规则ID(2907)。接下来,对设计意图ID设定生成代码模板修正过程中得到的设计意图ID(2908)。
图30表示从图23的规则改良部111的处理流程在步骤2320中被调用的提取软件模型信息的要素的差值的子程序的处理流程。首先,针对初始软件模型信息121中的所有名称标签开始反复处理(3001)。接下来,获取初始软件模型信息121的名称标签(3002)。接着,针对生成软件模型信息122中的所有名称标签开始反复处理(3003)。然后,取得生成软件模型信息122的名称标签(3004)。接下来,判定名称标签是否一致(3005)。在名称标签不一致的情况下,在要素差值表中追加相应要素的软件模型信息(3006)。接下来,返回至步骤3003继续进行反复处理。步骤3007表示步骤3003的反复处理的结束位置。在步骤3005的判定中,在名称标签一致的情况下不执行步骤3006,返回至步骤3003继续进行反复处理。步骤3007表示步骤3003的反复处理的结束位置。步骤3008表示步骤3001的反复处理的结束位置。
图31表示从图23的规则改良部111的处理流程在步骤2322中被调用的、在软件模型生成规则信息中追加规则的子程序的处理流程。首先,将软件模型生成规则信息127的最大软件模型生成规则ID设定为追加规则ID(3101)。接下来,针对要素差值列表的所有要素开始反复处理(3102)。接着,使追加规则ID加1(3103)。然后,制作新的软件模型生成规则记录(3104)。接着,对新记录的软件模型生成规则ID设定追加规则ID(3105)。接下来,使新记录的设计意图ID为1(3106)。接着,从软件模型取得当前处理中的差值要素ID所对应的模型要素(3107)。然后,将模型要素的名称标签置换为[name]标识(3108)。接下来,将连接目标要素的名称标签置换为规定值的[callee]标识(3109)。接着,将已设定的新记录通知给数据库更新管理部110,并追加至软件模型生成规则信息(3110)。步骤3111表示步骤3102的反复处理的结束位置。
图32表示从图23的规则改良部111的处理流程在步骤2326被调用的确定要素ID并计算块ID的子程序的处理流程。首先,取得包含连接目标的差值的要素ID(3201)。接下来,将当前处理中的要素ID所对应的名称标签设定为对象名称标签(3202)。接着,针对修正源代码信息129的所有块ID开始反复处理(3203)。然后,取得当前的块ID所对应的块名(3204)。接下来,判定对象名称标签与块名是否一致(3205)。在对象名称标签与块名不一致的情况下,返回至步骤3203继续进行反复处理。步骤3206表示步骤3203的反复处理的结束位置。在步骤3205的判定中,在对象名称标签与块名一致的情况下,将当前的块ID设定为对象块ID(3207)。接下来,将块ID算出标记设定为OK(3208)。
图33表示从图23的规则改良部111的处理流程在步骤2328被调用的生成软件模型模板修正子程序的流程。首先,读取源代码设计意图信息130(3301)。接下来,取得对象块ID所对应的软件模型生成规则ID和设计意图ID(3302)。接着,读取软件模型生成规则信息127(3303)。然后,取得软件模型生成规则ID和设计意图ID所对应的生成软件模型模板(3304)。接下来,取得生成软件模型信息122的对象要素ID所对应的记录(3305)。然后,从生成软件模型获取生成软件模型信息122的对象要素ID所对应的模型要素(3306)。接下来,将各要素的标签置换为标识(3307)。接着,置换生成软件模型模板(3308)。
图34表示从图23的规则改良部111的处理流程在步骤232被调用的源代码设计意图提取规则信息追加子程序的处理流程。首先,制作新的源代码设计意图提取规则信息记录(3401)。接下来,读取再生成源代码信息128(3402)。然后,将再生成源代码信息128的对象块ID所对应的类型设定为新记录的类型(3403)。接下来,对新记录的描述特性、关联图形设定规定值(3404)。接着,对一致阈值、优先级设定规定值(3405)。然后,对所有的一致权重设定规定值(3406)。接下来,对软件模型生成规则ID设定在生成源代码模板修正过程中得到的软件模型生成规则ID(3407)。接下来,对设计意图ID设定生成源代码模板修正过程中得到的设计意图ID(3408)。
图35表示源代码读取部112的处理流程。源代码读取部112将开发者119制作或修正之后的人工修正源代码120作为输入,变换为计算机处理容易的数据并作为再生成源代码信息128或修正源代码信息129输出。首先,将块内标记设为OFF(3501)。接下来,针对所有源代码行开始反复处理(3502)。接着,判定块内标记是否为ON(3504)。在块内标记不是ON的情况下,判定是否是块开始要素(3505)。在不是块开始要素的情况下,返回至步骤3502继续进行反复处理。步骤3515表示步骤3502的反复处理的结束位置。在步骤3505的判定中是块开始要素的情况下,将块内标记设为ON(3506)。接着,使块ID加1(3507)。然后,制作一块的空的源代码信息记录(3508)。接着,对所制作的源代码信息记录设定块ID(3509)。接下来,读取块名(3510)。然后,对块名记录设定块名(3511)。然后,读取类型(3512)。接下来,对类型名记录设定类型名(3513)。将当前的行数设定为开始行(3514)。接着,返回至步骤3502继续进行反复处理。步骤3515表示步骤3502的反复处理的结束位置。在步骤3504的判定中块内标记为ON的情况下,判定是否是关联描述(3517)。在不是关联描述的情况下判定是否是块结束要素(3512)。在不是块结束要素的情况下返回至步骤3502继续进行反复处理。步骤3515表示步骤3502的反复处理的结束位置。在步骤3523的判定中是块结束要素的情况下,将当前的行数设定为结束行(3524)。接下来,将快内标记设为OFF(3525)。接着,返回至步骤3502继续进行反复处理。步骤3515表示步骤3502的反复处理的结束位置。在步骤3517的判定中是关联描述的情况下,对当前的处理对象记录的关联列表追加新关联项目(3518)。接下来,读取关联种类(3519)。然后,在当前的处理对象新关联项目中设定关联种类(3520)。接着,读取关联的名称标签(3521)。接下来,对当前的处理对象新关联项目的关联目标ID临时设定关联名称标签(3522),然后转移至步骤3523。最后,接着步骤3515执行关联列表内的关联目标ID设定处理(3516)。
图36表示从图35的源代码读取部112的处理流程在步骤3516中被调用的关联列表内的关联目标ID设定处理子程序的处理流程。首先针对所有块ID开始反复处理(3601)。接下来,读取对象块的关联列表(3602)。接着,针对关联列表中的所有关联项目开始反复处理(3603)。然后,读取对象关联项目的关联目标ID(3604)。接下来,判定关联目标ID是否是名称标签(3605)。在关联目标ID不是名称标签的情况下,返回至步骤3603继续进行反复处理。步骤3611表示步骤3603的反复处理的结束位置。在步骤3605的判定中关联目标ID是名称标签的情况下,针对所有的块ID开始反复处理(3606)。接着,读取对象块的块ID(3607)。接下来,判定对象块的块名与名称标签是否一致(3608)。在对象块的块名与名称标签不一致的情况下,返回至步骤3606继续进行反复处理。步骤3609表示步骤3606的反复处理的结束位置。在步骤3608的判定处理中对象块的块名与名称标签一致的情况下,以相应块ID置换对象关联项目的关联目标ID(3610)。接下来,返回至步骤3603继续进行反复处理。步骤3611表示步骤3603的反复处理的结束位置。此外,步骤3612表示步骤3601的反复处理的结束位置。
图37表示作为初始软件模型信息121或生成软件模型信息122使用的软件模型信息。软件模型信息121、122由软件模型中包含的要素的连续号码即要素ID3701、对要素附于的名称即名称标签3702、要素的描述类型即类型3703、表示描述要素的位置的描述位置3704、表示各要素与其他要素的连接的连接目标要素列表3707、表示各要素的来自其他要素的连接的被连接目标要素列表3708组成。连接目标要素列表3707由表示连接目标的要素的要素ID3705、表示连接的方向的连接方向3706组成。被连接目标要素3708由表示从其他要素连接的连接源的要素的要素ID3717、和表示连接方向本身的连接方向3718组成。此外,不存在连接目标或被连接目标的情况下,在各栏中保存0。作为一例,表示要素ID为“n”、名称标签为“dd_lib”、类型为“函数”、描述位置为“下右部”、连接目标要素列表的要素ID为“0”、连接目标要素列表的连接方向为“无”、被连接目标要素列表的要素ID为“2”、被连接目标要素列表的连接方向为“上”的情况。
图38表示软件模型设计意图信息123。软件模型设计意图信息123由识别软件模型中描述的要素的要素ID3801、识别代码生成规则的代码生成规则ID3802、识别设计意图的数据的设计意图ID3803组成。作为一例,表示要素ID为“n”、代码生成规则ID为“6”、设计意图ID为“1”的情况。
图39表示软件模型设计意图提取规则信息124。软件模型设计意图提取规则信息124,由表示软件模型中描述的要素的类型的类型3901、表示软件模型中描述的要素的描述位置的描述位置3903、使软件模型中描述的要素的连接图形定量化的连接图形3906、用于判定是否与软件模型设计意图提取规则一致的阈值即一致阈值3915、表示同样的规则有多个一致时的优先级的优先级3916、识别代码生成规则的代码生成规则ID3917、识别设计意图的设计意图ID3918组成。连接图形3906由表示相应要素与其他要素连接的数目的连接数3905、表示相应要素被从其他要素连接的数目的被连接数3907、表示各连接的距离的连接距离3912、表示要素间的连接方向的连接方向3913组成。连接距离3912,相应于连接的方向3908具有IN3919和OUT3920的2场,分别由平均连接距离(AVE)3909、最小连接距离(MIN)3910、最大连接距离(MAX)3911组成。此外,类型3901、描述位置3903、连接图形3906分别具有用于进行一致判定时的条件的加权的一致权重3902、3904、3914。作为一例,表示类型为“函数”、类型的一致权重值为“7”、描述位置为“左中央部”、描述位置的一致权重值为“1”、连接图形的连接数为“2”、被连接数为“4”、连接距离之中的入方向(IN)的平均距离为“1.3”、最小值为“1”、最大值为“2”、出方向“OUT”的平均距离为“2.5”、最小值为“2”、最大值为“3”、连接方向为“下”、连接图形的一致权重值为“2”、一致阈值为“29”、优先级为“2”、代码生成规则ID为“5”、设计意图ID为“8”的情况。
图40表示源代码生成规则信息125。源代码生成规则信息125是保存用于将软件模型中描述的要素变换为源代码的信息的表。源代码生成规则信息125由识别代码生成的规则的代码生成规则ID4001、识别在相同的代码生成规则中因开发者的设计意图的不同而产生的生成代码的区别的设计意图ID4002、保存作为源代码输出的代码的模板的生成代码模板4003组成。作为一例,表示代码生成ID为“1”、设计意图ID为“1”、生成代码模板为“class[name]{[reference][body]}”4006的情况。
图41表示作为再生成源代码信息128或修正源代码信息129使用的源代码信息。源代码信息128、129由表示对源代码中的块进行识别的序号的块ID4101、表示例如函数名这种的对块附于的名称的名称标签4102、表示块的种类的类型4103、表示源代码中的块的描述位置的描述位置4106、列举出各块与其他块的关联的关联列表4109组成。描述位置4106由表示块的开始行的开始行4104、表示块的结束行的结束行4105组成。关联列表4109由表示关联目标块的种类的关联种类4107、识别关联目标块的块ID即关联目标块ID4108组成。此外,在没有关联的块的情况下,关联列表中的关联种类4107设定为“无”,关联目标块ID4108设定为“0”。作为一例,表示块ID为“n”、名称标签为[dd_drv]、类型为“函数”、描述位置的开始行为“9788”、描述位置的结束行为“9901”、关联列表的关联种类为“无”、关联列表的关联目标块ID为“0”的情况。
图42表示源代码设计意图信息130。源代码设计意图信息130由用于识别源代码中描述的块的块ID4201、对应源代码的块识别软件模型的生成规则的软件模型生成规则ID4202、识别设计意图的数据的设计意图ID4203组成。作为一例,表示块ID为“n”、软件模型生成规则ID为“6”、设计意图ID为“1”的情况。
图43表示源代码设计意图提取规则信息126。源代码设计意图提取规则信息126,由识别源代码中描述的块的种类的类型4301、表示源代码中描述的块的描述的特征的描述特性4303、表示块与其他块之间的关联的图形的关联图形4305、用于判定是否与源代码设计意图提取规则一致的阈值即一致阈值4314、表示同样的规则有多个一致时的优先级的优先级4315、识别软件模型生成规则的软件模型生成规则ID4316、识别设计意图的设计意图ID4317组成。关联图形4305由表示相应块与其他块关联的数目的关联数4306、表示各关联的距离的距离4307、表示块间的关联在源代码上前后方向的哪个更强地关联的关联方向4311、利用图44所示的关联种类信息表将各关联的种类变换为数值并形成列表的关联种类4312组成。关联图形4305的距离4307,由距离的平均值(AVE)4308、距离的最小值(MIN)4309、距离的最大值(MAX)4310组成。此外,类型4301、描述特性4303、关联图形4305分别具有用于进行一致判定时的条件的加权的一致权重4302、4304、4313。作为一例,表示类型为“类(class)”、类型的一致权重值为“7”、描述特性为“0.6”、描述特性的一致权重值为“1”、关联图形的连接数为“4”、关联图形的距离的平均值为“1.3”、关联图形的距离的最小值为“1”、关联图形的距离的最大值为“2”、关联图形的关联方向为“前方优先”、关联图形的关联种类为“17、17、17、17”、关联图形的一致权重值为“2”、一致阈值为“29”、优先级为“2”、软件模型生成规则ID为“5”、设计意图ID为“8”的情况。
图44表示用于源代码设计意图提取规则信息126的关联种类信息表。关联种类信息表,由识别关联种类的关联种类ID4401、表示关联种类本身的关联种类4402组成。作为一例,表示关联种类ID为“n”、关联种类为“包含”的情况。
图45表示软件模型生成规则信息127。软件模型生成规则信息127,是存放用于将源代码中描述的块变换为软件模型的信息的表,由识别软件模型生成规则的软件模型生成规则ID4501、识别即便在相同的软件模型生成规则中因开发者的设计意图不同从而出现的生成软件模型差异的设计意图ID4502、保存作为软件模型输出的软件模型的模板的生成软件模型模板4503组成。作为一例,表示软件模型生成规则ID为“1”、设计意图ID为“1”、生成软件模型模板为图中所示的图形(4506)的情况。
图46表示软件模型生成部114的处理流程。软件模型生成部114将修正源代码信息129或再生成源代码信息128、源代码设计意图信息130、保存用于生成软件模型的规则的软件模型生成规则信息127作为输入,输出人工修正源代码120或再生成源代码118所对应的生成软件模型116。
首先,读取源代码信息128、129(4601)。接下来,读取源代码设计意图信息130(4602)。接着,读取软件模型输出规则信息127(4603)。然后,针对所有的块ID开始反复处理(4604)。接下来,从源代码设计意图信息130读取当前的块ID所对应的软件模型生成规则ID(4605)。接着,从源代码设计意图信息130读取当前的块ID所对应的设计意图ID(4606)。然后,从软件模型生成规则信息127读取符合规则ID/设计意图ID的生成软件模型模板(4607)。接下来,从源代码信息128、129读取当前的块ID所对应的块名(4608)。接着,描绘以块名置换生成软件模板中的“[name]”标识位置之后的块(4609)。然后,从源代码信息128、129读取当前的块ID所对应的关联列表(4610)。接下来,针对关联列表中的连接目标开始反复处理(4611)。接着,从源代码信息128、129读取关联目标块ID所对应的块名(4612)。然后,判定相当于相应块名的模型是否已被描绘(4613)。在相当于相应块名的模型已被描绘的情况下,从描绘中的模型中检索相当于相应块名的块(4614)。接下来,按照生成软件模型模板中的模型图形选择连接目标块的空连接口(4615)。接着,将关联线从当前的块连接至已描绘的连接目标块的空连接口(4616)。接下来,返回至步骤4611继续进行反复处理。步骤4617表示步骤4611的反复处理的结束位置。在步骤4613的判定中相当于相应块名的模型尚未描绘的情况下,描绘以名称标签置换了生成软件模型模板中的“[Ref]”或“[callee]”标识位置的块(4619)。然后,追加与生成软件模型模板中的模型图形相应的连接线(4620)。接下来,返回至步骤4611继续进行反复处理。步骤4617表示步骤4611的反复处理的结束位置。此外,步骤4618表示步骤4604的反复处理的结束位置。
图47表示软件模型的例子。4701是软件模型的整体架构。4702是软件模型中描绘的一要素。作为一例,在此构造型类型为“module”,名称标签为“GUI_io”,经由连接端口4703以连接线4704连接于作为其他要素的“proc_ctrl”。此外,要素GUI_io是左上部的描述位置。
此外,本实施方式中例示的软件模型是以UML为基准的软件模型,但也可以利用采用其他的图形表现的软件模型。此外,所生成的源代码是C语言或C++语言,但即便置换为其他编程语言也能够同样实施。
图48表示除了上述本发明的实施方式中的软件开发支持工具101之外还具备输入输出部的系统结构图。在此表示的结构是,开发者131通过输入部4801直接对计算机系统输入软件模型,将自动生成的源代码显示在显示装置(显示部)4802。此外,开发者119也能够通过输入部4804直接对计算机系统输入源代码,而在显示装置(显示部)4803显示自动生成的软件模型。此外,代替显示装置4802也可以使用采用了打印机的纸输出、基于声音合成的朗读输出等。此外,代替输入部4801、4804可以使用文件扫描仪、图像数据输入等。
本发明能够从原有的源代码自动生成软件模型,从而即便是大规模的源代码也能够容易获得包含软件开发者设计意图的软件模型,通过进行以软件模型为中心的软件开发,从而作为有助于软件生产性的软件开发支持工具能够广泛应用于一般的软件设计。
符号说明:
101软件开发支持工具
102软件模型读取部
103软件模型设计意图提取部
104源代码生成部
105规则数据库部
106软件模型生成规则数据库
107软件模型设计意图提取规则数据库
108源代码设计意图提取规则数据库
109源代码生成规则数据库
110数据库更新管理部
111规则改良部
112源代码读取部
113源代码设计意图提取部
114软件模型生成部
115初始软件模型
116生成软件模型
117初始生成源代码
118再生成源代码
119开发者
120人工修正源代码
121初始软件模型信息
122生成软件模型信息
123软件模型设计意图信息
124软件模型设计意图提取规则信息
125源代码生成规则信息
126源代码设计意图提取规则信息
127软件模型生成规则信息
128再生成源代码信息
129修正源代码信息
130源代码设计意图信息
131开发者
3701要素ID
3702名称标签
3703类型
3704描述位置
3705要素ID
3706连接方向
3707连接目标要素列表
3708被连接目标要素列表
3801要素ID
3802代码生成规则ID
3803设计意图ID
3901类型
3902类型一致权重
3903描述位置
3904描述位置一致权重
3905连接数
3906连接图形
3907被连接数
3908方向
3909AVE
3910MIN
3911MAX
3912连接距离
3913连接方向
3914连接图形一致权重
3915一致阈值
3916优先级
3917代码生成规则ID
3918设计意图ID
3919IN
3920OUT
4001代码生成规则ID
4002设计意图ID
4003生成代码模板
4101块ID
4102名称标签
4103类型
4104开始行
4105结束行
4106描述位置
4107关联种类
4108关联目标块ID
4109关联列表
4201块ID
4202软件模型生成规则ID
4203设计意图ID
4301类型
4302类型一致权重
4303描述特性
4304描述特性一致权重
4305关联图形
4306关联数
4307距离
4308AVE
4309MIN
4310MAX
4311关联方向
4312关联种类
4313关联图形一致权重
4314一致阈值
4315优先级
4316软件模型生成规则ID
4317设计意图ID
4401关联种类ID
4402关联种类
4501软件模型生成规则ID
4502设计意图ID
4503生成软件模型模板
4701软件模型的整体构架
4702软件模型中描述的一要素
4703连接端口
4704连接线
4801输入部
4802显示部
4803显示部
4804输入部

Claims (30)

1.一种软件开发支持工具,其具备:
软件模型读取部,将由开发者描述的软件模型作为输入,输出源代码的自动生成中所需要的信息作为软件模型信息;
软件模型设计意图提取部,将所述软件模型信息和描述了用于对软件模型中所描述的开发者的设计意图进行提取的规则的软件模型设计意图提取规则信息作为输入,提取软件模型中描述的开发者的设计意图并作为软件模型设计意图信息输出;和
源代码生成部,将所述软件模型信息、所述软件模型设计意图信息、描述了用于从软件模型生成源代码的规则的源代码生成规则信息作为输入,输出源代码。
2.一种软件开发支持工具,其具备:
源代码读取部,将由开发者描述的源代码作为输入,输出软件模型的自动生成中所需要的信息作为源代码信息;
源代码设计意图提取部,将所述源代码信息和描述了用于对源代码中所描述的开发者的设计意图进行提取的规则的源代码设计意图提取规则信息作为输入,提取源代码中描述的开发者的设计意图并作为源代码设计意图信息输出;和
软件模型生成部,将所述源代码信息、所述源代码设计意图信息、描述了用于从源代码生成软件模型的规则的软件模型生成规则信息作为输入,输出软件模型。
3.根据权利要求1所述的软件开发支持工具,其中,
所述软件开发支持工具还具备:
源代码读取部,将源代码作为输入,输出软件模型的自动生成中所需要的信息作为源代码信息;
源代码设计意图提取部,将所述源代码信息和描述了用于对源代码中所描述的开发者的设计意图进行提取的规则的源代码设计意图提取规则信息作为输入,提取源代码中描述的开发者的设计意图并作为源代码设计意图信息输出;和
软件模型生成部,将所述源代码信息、所述源代码设计意图信息、描述了用于从源代码生成软件模型的规则的软件模型生成规则信息作为输入,输出软件模型。
4.根据权利要求3所述的软件开发支持工具,其中,
所述软件开发支持工具还具备:
规则数据库部,在数据库中存储并管理所述软件模型生成规则信息、所述软件模型设计意图提取规则信息、所述源代码生成规则信息、所述源代码设计意图提取规则信息;
数据库更新管理部,管理所述规则数据库部的内容更新;和
规则改良部,将所述软件模型信息、所述软件模型生成规则信息、所述软件模型设计意图提取规则信息、所述软件模型设计意图信息、所述源代码信息、所述源代码生成规则信息、所述源代码设计意图提取规则信息、所述源代码设计意图信息作为输入,对所述数据库更新管理部进行指示,修正所述软件模型生成规则信息、所述软件模型设计意图提取规则信息、所述源代码生成规则信息、所述源代码设计意图提取规则信息,使其反映开发者的意图。
5.根据权利要求1所述的软件开发支持工具,其中,
作为所述软件模型信息为了表现软件模型的特征,其具备要素ID、名称标签、类型、描述位置、连接目标要素列表、被连接目标要素列表。
6.根据权利要求1所述的软件开发支持工具,其中,
作为所述软件模型设计意图信息为了使软件模型中描述的要素与开发者的设计意图关联起来,其具备要素ID、代码生成规则ID、设计意图ID。
7.根据权利要求1所述的软件开发支持工具,其中,
作为所述软件模型设计意图提取规则信息为了使开发者的设计意图带有特征,其具备类型、描述位置、连接图形、一致阈值、优先级、代码生成规则ID、设计意图ID。
8.根据权利要求1所述的软件开发支持工具,其中,
作为所述源代码生成规则信息为了保存用于生成反映了开发者设计意图的源代码的信息,其具备代码生成规则ID、设计意图ID、生成代码模板。
9.根据权利要求7所述的软件开发支持工具,其中,
所述软件模型设计意图提取部,利用表现为所述软件模型信息的软件模型中描述的要素的类型、所述要素的描述位置、所述要素间的连接图形,来判定是否与所述软件模型设计意图提取规则信息一致。
10.根据权利要求7所述的软件开发支持工具,其中,
所述软件模型设计意图提取规则信息的所述类型、所述描述位置、所述连接图形中具有一致权重值,
所述软件模型设计意图提取部,在用于检索与开发者的设计意图一致的软件模型设计意图信息的一致判定时,通过进行对所述类型、所述描述位置、所述连接图形的一致判定附于权重后的判定,由此提取容易反映设计者的开发意图的设计意图。
11.根据权利要求2所述的软件开发支持工具,其中,
作为所述源代码信息为了表现源代码的特征,其具备块ID、名称标签、类型、描述位置、关联列表。
12.根据权利要求2所述的软件开发支持工具,其中,
作为所述源代码设计意图信息为了使源代码中描述的块与开发者的设计意图关联起来,其具备块ID、软件模型生成规则ID、设计意图ID。
13.根据权利要求2所述的软件开发支持工具,其中,
作为所述源代码设计意图提取规则信息为了使开发者的描述意图带有特征,其具备类型、描述特性、关联图形、一致阈值、优先级、软件模型生成规则ID、设计意图ID。
14.根据权利要求2所述的软件开发支持工具,其中,
作为所述软件模型生成规则信息为了生成反映出开发者的描述意图的软件模型,其具备软件模型生成规则ID、设计意图ID、生成软件模型模板。
15.根据权利要求13所述的软件开发支持工具,其中,
所述源代码设计意图提取部利用表现为所述源代码信息的源代码中描述的块的类型、所述块的描述特性、所述块间的关联图形,来判定是否与所述源代码设计意图提取规则信息一致。
16.根据权利要求15所述的软件开发支持工具,其中,
所述源代码设计意图提取部基于所述块的开始行、所述块的结束行、所述块的关联数,求得用于判定是否与所述源代码设计意图提取规则信息一致的所述描述特性。
17.根据权利要求13所述的软件开发支持工具,其中,
所述源代码设计意图提取规则信息的所述类型、所述描述特性、所述关联图形中具有一致权重值,
所述源代码设计意图提取部,在用于检索与开发者的设计意图一致的源代码设计意图信息的一致判定时,通过进行对所述类型、所述描述特性、所述关联图形的一致判定附于权重后的判定,由此提取容易反映设计者的开发意图的设计意图。
18.根据权利要求3所述的软件开发支持工具,其中,
代替所述软件模型将开发者最初开发的软件模型作为初始软件模型进行输入,将由所述软件开发支持工具输出的所述源代码作为初始生成源代码,将由开发者亲手修正所述初始生成源代码之后的人工修正源代码作为所述软件开发支持工具的所述源代码输入,代替所述软件模型而输出生成软件模型。
19.根据权利要求18所述的软件开发支持工具,其中,
将所述初始软件模型和所述生成软件模型作为输入输出再生成源代码,由此输出比所述初始生成源代码更能反映开发者的设计意图的源代码。
20.根据权利要求19所述的软件开发支持工具,其中,
将所述再生成源代码作为输入自动生成再次生成软件模型,由此更多地反映开发者的设计意图。
21.根据权利要求18所述的软件开发支持工具,其中,
将所述初始软件模型作为所述软件模型读取部的输入,代替所述软件模型信息由所述软件模型读取部输出初始软件模型信息,由此来区别开发者所开发的初始的软件模型和自动生成的软件模型。
22.根据权利要求19所述的软件开发支持工具,其中,
将所述生成软件模型作为所述软件模型读取部的输入,代替所述软件模型信息由所述软件模型读取部输出生成软件模型信息,由此基于自动生成的软件模型进一步输出所述再生成源代码。
23.根据权利要求18所述的软件开发支持工具,其中,
将所述人工修正源代码作为所述源代码读取部的输入,代替所述源代码信息由所述源代码读取部输出修正源代码信息,由此来区别开发者所开发的已修正的源代码和自动生成的源代码。
24.根据权利要求19所述的软件开发支持工具,其中,
将所述再生成源代码作为所述源代码读取部的输入,代替所述源代码信息由所述源代码读取部输出再生成源代码信息,由此基于所述再生成源代码进一步输出所述生成软件模型。
25.根据权利要求4所述的软件开发支持工具,其中,
所述规则改良部基于修正源代码信息与再生成源代码信息的差值,在所述源代码生成规则信息中追加新的源代码生成规则。
26.根据权利要求4所述的软件开发支持工具,其中,
所述规则改良部基于修正源代码与再生成源代码的差值、修正源代码信息、再生成源代码信息来发现所述源代码生成规则信息的修正位置,并修正所述源代码生成规则信息中包含的生成源代码模板。
27.根据权利要求4所述的软件开发支持工具,其中,
所述规则改良部基于初始软件模型信息与生成软件模型信息的差值,在所述软件模型生成规则信息中追加新的软件模型生成规则。
28.根据权利要求4所述的软件开发支持工具,其中,
所述规则改良部基于初始软件模型与生成软件模型中描述的要素间的连接目标的差值、初始软件模型信息、生成软件模型信息来发现所述软件模型生成规则信息的修正位置,并修正所述软件模型生成规则信息中包含的生成软件模型模板。
29.一种软件开发支持系统,其具备:
权利要求1所述的软件开发支持工具;
输入部,用于将来自开发者的软件模型输入至所述软件开发支持工具;和
显示部,用于显示由所述源代码生成部所生成的源代码。
30.一种软件开发支持工具,其具备:
权利要求2所述的软件开发支持工具;
输入部,用于将来自开发者的源代码输入至所述软件开发支持工具;和
显示部,用于显示由所述软件模型生成部所生成的软件模型。
CN2009801574922A 2009-02-26 2009-10-05 软件开发支持工具 Pending CN102334095A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009044687A JP2010198494A (ja) 2009-02-26 2009-02-26 ソフトウェア開発支援ツール
JP2009-044687 2009-02-26
PCT/JP2009/005161 WO2010097854A2 (ja) 2009-02-26 2009-10-05 ソフトウェア開発支援ツール

Publications (1)

Publication Number Publication Date
CN102334095A true CN102334095A (zh) 2012-01-25

Family

ID=42666009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801574922A Pending CN102334095A (zh) 2009-02-26 2009-10-05 软件开发支持工具

Country Status (4)

Country Link
US (1) US20110271246A1 (zh)
JP (1) JP2010198494A (zh)
CN (1) CN102334095A (zh)
WO (1) WO2010097854A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562419A (zh) * 2016-06-30 2018-01-09 歌乐株式会社 软件开发支援方法及系统
CN109074245A (zh) * 2016-03-24 2018-12-21 微软技术许可有限责任公司 将视觉示图转换成代码
CN109976803A (zh) * 2017-12-27 2019-07-05 航天信息股份有限公司 一种文件的生成方法及装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722435B (zh) * 2012-05-25 2015-04-08 浙江工商大学 一种从uml软件模型到排队网络模型的转换方法
US9361209B2 (en) * 2012-05-25 2016-06-07 International Business Machines Corporation Capturing domain validations and domain element initializations
US9223569B1 (en) * 2014-06-17 2015-12-29 International Business Machines Corporation Automatic software catalog content creation based on bio-inspired computing prediction
US9600244B1 (en) * 2015-12-09 2017-03-21 International Business Machines Corporation Cognitive editor
CN106933563B (zh) * 2015-12-31 2020-06-02 远光软件股份有限公司 一种页面流编辑器
US11720330B2 (en) 2016-10-17 2023-08-08 Engineer.ai Corp. Application development involving instant protoyping
CN109375904A (zh) * 2018-09-26 2019-02-22 思朋网络科技(武汉)有限公司 一种基于模型的计算机软件开发方法
US10824538B2 (en) * 2019-01-22 2020-11-03 Oracle International Corporation Scalable incremental analysis using caller and callee summaries
US11301223B2 (en) 2019-08-19 2022-04-12 International Business Machines Corporation Artificial intelligence enabled function logic infusion
CN110704298A (zh) * 2019-08-23 2020-01-17 北京奇艺世纪科技有限公司 一种代码验证的方法、装置、终端设备及存储介质
US11288055B2 (en) * 2020-02-18 2022-03-29 International Business Machines Corporation Model-based differencing to selectively generate and deploy images in a target computing environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944358A (ja) * 1995-08-02 1997-02-14 Toshiba Corp プログラム生成方法及びプログラム生成装置並びにオブジェクト生成方法及びオブジェクト生成装置
JP2007265418A (ja) * 2001-05-28 2007-10-11 Zenya Kono 自動詳細化システム
WO2007116490A1 (ja) * 2006-03-31 2007-10-18 Fujitsu Limited ソースコード生成プログラム、ソースコード生成方法およびソースコード生成装置
JP2008225898A (ja) * 2007-03-13 2008-09-25 Toshiba Corp 変換装置、変換プログラム及び変換方法
US20080228812A1 (en) * 2007-03-15 2008-09-18 Honeywell International Inc. Method and System for Metamodeling Using Dynamic Ontology Objects

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109074245A (zh) * 2016-03-24 2018-12-21 微软技术许可有限责任公司 将视觉示图转换成代码
CN107562419A (zh) * 2016-06-30 2018-01-09 歌乐株式会社 软件开发支援方法及系统
CN107562419B (zh) * 2016-06-30 2020-09-18 歌乐株式会社 软件开发支援方法及系统
CN109976803A (zh) * 2017-12-27 2019-07-05 航天信息股份有限公司 一种文件的生成方法及装置
CN109976803B (zh) * 2017-12-27 2022-09-20 航天信息股份有限公司 一种文件的生成方法及装置

Also Published As

Publication number Publication date
US20110271246A1 (en) 2011-11-03
WO2010097854A2 (ja) 2010-09-02
JP2010198494A (ja) 2010-09-09

Similar Documents

Publication Publication Date Title
CN102334095A (zh) 软件开发支持工具
CN106874244B (zh) 一种基于工作序列的文档自动生成模型的构建方法
US20070006128A1 (en) Method for evaluating dynamic expressions
US20220121425A1 (en) Providing Image and Text Data for Automatic Target Selection in Robotic Process Automation
CN114168716B (zh) 基于深度学习的工程造价自动抽取和分析方法及装置
US11054960B1 (en) Fuzzy target selection for robotic process automation
CN110795938B (zh) 文本序列分词方法、装置及存储介质
CN112506759B (zh) 伺服系统控制软件的自动化测试方法、装置及存储介质
EP2042984A1 (en) Software product line analyzer
WO2018003153A1 (ja) 認識装置及び認識方法
CN109977205A (zh) 一种计算机自主学习源代码的方法
CN114580424B (zh) 一种用于法律文书的命名实体识别的标注方法和装置
EP0746814A1 (en) Method and process of inter-machine communication and generalized method for program preparation therefor
CN112860919A (zh) 基于生成模型的数据标注方法、装置、设备及存储介质
CN111290785A (zh) 评估深度学习框架系统兼容性的方法、装置、电子设备以及存储介质
WO2024055864A1 (zh) 结合rpa和ai实现ia的分类模型的训练方法及装置
CN111651500A (zh) 用户身份识别方法、电子设备及存储介质
CN115510188A (zh) 文本关键词关联方法、装置、设备及存储介质
US11669682B2 (en) Bespoke transformation and quality assessment for term definition
CN115203364A (zh) 软件故障反馈处理方法、装置、设备及可读存储介质
CN115373982A (zh) 基于人工智能的测试报告分析方法、装置、设备及介质
CN114138243A (zh) 基于开发平台的功能调用方法、装置、设备及存储介质
CN107230059A (zh) 联机交易的执行方法及装置
CN114880590A (zh) 多语言网站货币自动转换系统及其方法
CN114219438A (zh) 基于rpa及ai的公文文件分发方法、装置、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120125