CN100555217C - 源代码生成支援装置及源代码生成支援方法 - Google Patents
源代码生成支援装置及源代码生成支援方法 Download PDFInfo
- Publication number
- CN100555217C CN100555217C CNB2004800428606A CN200480042860A CN100555217C CN 100555217 C CN100555217 C CN 100555217C CN B2004800428606 A CNB2004800428606 A CN B2004800428606A CN 200480042860 A CN200480042860 A CN 200480042860A CN 100555217 C CN100555217 C CN 100555217C
- Authority
- CN
- China
- Prior art keywords
- tree structure
- source code
- structure data
- generates
- mentioned
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- 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
- G06F8/36—Software reuse
Abstract
树形结构变换处理部(130a)基于生成顺序图数据而生成树形结构数据,匹配处理部(130b)从对象树形结构数据(140b)中检索与所生成的树形结构数据相符合的树形结构数据,程序抽出处理部(130c)从相符合的树形结构数据的程序代码确定信息中取得对应的原有的程序代码,将所取得的程序代码的实例名替换为与生成顺序图数据对应的实例名。
Description
技术领域
本发明涉及一种对基于面向对象的源代码的生成进行支援的源代码生成支援装置及源代码生成支援方法,尤其是涉及一种能够对原有的源代码进行再利用而提高程序开发效率的源代码生成支援装置及源代码生成支援方法。
背景技术
最近,为了提高程序开发效率,正在基于面向对象而生成程序代码。在该面向对象中,集成数据和处理作为一个对象,以向该对象发送激活处理的消息的方式,编写程序代码。
另一方面,正在尝试根据用户所希望的程序代码的规格书等,自动生成与规格书对应的程序代码,但因为生成程序代码的处理逻辑不完备,所以只能生成用户所希望的程序代码的雏形而已(例如,参照专利文献1)。即,为了生成完备的程序代码,用户必须利用简易的脚本语言等,重新添写程序代码。
为了解决这个问题,正在考虑这样的技术:将程序代码和该程序代码的结构图建立关联而预先生成,当用户编辑结构图时,对该结构图进行的编辑就会被反映在对应的程序代码上,从而能够生成新的程序代码(例如,参照专利文献2)。另外,在专利文献3中,公开了自动管理有关程序代码的规格书的匹配性的技术。
专利文献1(JP特开平11-219287号公报)
专利文献2(JP专利3299259号公报)
专利文献3(JP特开平11-3216号公报)
然而,在相关的现有的技术中,需要预先记入跟想要新生成的程序代码同等的程序代码,用户的负担很大。
另外,在生成与预先生成的程序代码的结构图不对应的新的程序代码的情况下,就不能编辑结构图而生成新的程序代码,用户自己需要生成新的程序代码,生成程序代码的效率不高。
本发明是为了解决上述现有技术的问题,其目的在于提供一种能够解除用户的负担、能够高效率地生成程序代码的源代码生成支援装置及源代码生成支援方法。
发明内容
为了解决上述问题而达到目的,本发明是一种源代码生成支援程序,对基于面向对象的源代码的生成进行支援,其特征在于,使计算机执行以下步骤:树形结构生成步骤,基于表示要新生成的源代码的规格的顺序图,生成树形结构数据;检索步骤,从至少存储有原有的源代码、和与该原有的源代码对应的树形结构数据的存储装置中,检索与在上述树形结构生成步骤中生成的树形结构数据相符合的树形结构数据;取得步骤,从上述存储装置中取得与上述相符合的树形结构数据对应的源代码。
另外,本发明是一种源代码生成支援方法,对基于面向对象的源代码的生成进行支援,其特征在于,包括:树形结构生成工序,基于表示要新生成的源代码的规格的顺序图,生成树形结构数据;检索工序,从至少存储有原有的源代码、和与该原有的源代码对应的树形结构数据的存储装置中,检索与在上述树形结构生成工序中生成的树形结构数据相符合的树形结构数据;取得工序,从上述存储装置中取得与上述相符合的树形结构数据对应的源代码。
本发明提供一种源代码生成支援装置,对基于面向对象的源代码的生成进行支援,其特征在于,具有:树形结构生成单元,其基于用于表示要新生成的源代码的规格的顺序图,生成树形结构数据;检索单元,其在至少存储有原有的源代码和与该原有的源代码对应的树形结构数据的存储装置中,检索与上述树形结构生成单元所生成的树形结构数据相符合的树形结构数据;取得单元,其从上述存储装置中取得与上述相符合的树形结构数据对应的源代码。上述树形结构数据是指,抽出包括于上述顺序图中的实例和方法的连接关系,并根据方法的顺序信息和实例的连接信息,由上述树形结构生成单元生成的数据。
本发明提供一种源代码生成支援方法,对基于面向对象的源代码的生成进行支援,其特征在于,包括:树形结构生成工序,基于用于表示要新生成的源代码的规格的顺序图,生成树形结构数据;检索工序,在至少存储有原有的源代码和与该原有的源代码对应的树形结构数据的存储装置中,检索与在上述树形结构生成工序中生成的树形结构数据相符合的树形结构数据;取得工序,从上述存储装置中取得与上述相符合的树形结构数据对应的源代码。上述树形结构数据是指,抽出包括于上述顺序图中的实例和方法的连接关系,并根据方法的顺序信息和实例的连接信息,在上述树形结构生成工序中生成的数据。
根据该发明,基于表示要新生成的源代码的规格的顺序图而生成树形结构数据,从至少存储有原有的源代码和与该原有的源代码对应的树形结构数据的存储装置中检索与生成的树形结构数据相符合的树形结构数据,从存储装置中取得与相符合的树形结构数据对应的源代码,所以不需要完全从零开始生成源代码,而只要生成顺序图,就能够自动生成所希望的源代码,从而能够消除用户的负担,提高程序开发效率。
附图说明
图1是表示本实施方式中的源代码生成装置进行的程序再利用的概念的图,图2是表示源代码生成支援装置的结构的功能方框图,图3是表示顺序图的列表结构的一个例子的图,图4是表示树形结构数据的数据结构的一个例子的图,图5是表示以在图3所示的顺序图数据为基础而生成的树形结构数据的图,图6是表示对应表的一个例子的图,图7是说明对各树形结构数据的单元的识别号码的分配的图,图8是表示生成顺序图和生成顺序图的树形结构数据的图,图9是对程序代码的实例名的变换进行说明的图,图10是表示准备处理的处理步骤的流程图,图11是表示树形结构变换处理的处理步骤的流程图,图12是表示程序生成处理的处理步骤的流程图,图13是表示匹配处理的处理步骤的流程图,图14是表示单元选择处理的处理步骤的流程图,图15是表示执行本实施方式涉及的源代码生成支援程序的计算机系统的图,图16是表示图15所示的主体部501的结构的功能方框图。
具体实施方式
以下,基于附图详细地说明本发明的源代码生成支援程序及源代码生成支援方法的实施方式。另外,本发明并不限制于该实施方式。另外,在本实施方式中,虽然对于物理上独立地构成各个功能的源代码生成支援装置进行说明,但作为源代码生成支援程序,也可以通过以用软件实现各个功能来实施。
实施方式
首先,针对本实施方式涉及的源代码生成支援装置进行的程序再利用的概念进行说明。图1是表示本实施方式涉及的源代码生成装置进行的程序再利用的概念的图。另外,在本实施方式中,利用面向对象而生成程序代码。
本实施方式所示的源代码生成支援装置预先取得原有的程序代码和表示该程序代码的规格的顺序图,根据所取得的顺序图生成树形结构数据,将树形结构数据和程序代码建立关联而预先存储。
在这里,所谓树形结构数据,就是将包含于顺序图中的实例和方法的连接关系抽出、而根据方法的顺序信息和实例的连接信息生成的数据。另外,实例就是在执行程序的情况下以类的形式而生成的,方法表示在各个实例之间进行的过程。
然后,在再利用原有的程序代码而生成新的程序代码的情况下,取得要新生成的程序代码的顺序图,根据所取得的顺序图生成树形结构数据,从预先生成的树形结构数据中检索与所生成的树形结构数据相符合的树形结构数据。
然后,将跟相符合的树形结构数据对应的程序代码抽出,将包含于所抽出的程序代码中的实例名替换为新的实例名,从而能够生成新的程序代码。
接着,针对源代码生成支援装置的结构进行说明。图2是表示源代码生成支援装置100的结构的功能方框图。
如该图所示,该源代码生成支援装置100具备输入接收部110、输出部120、控制部130和存储部140。
输入接收部110从未图示的键盘等的输入装置取得顺序图的数据、程序代码等,将所取得的顺序图的数据和程序代码提交给控制部130。另外,输入接收部110将顺序图的数据变换成规定的数据结构(以下,标记为顺序图数据),提交给控制部130。
图3是表示顺序图数据的列表结构的一个例子的图。如该图所示,顺序图数据包括实例表210和方法箭头表220。另外,200表示以顺序图数据表示的顺序图。
实例表210包括“左上坐标”、“宽度”、“高度”、“实例信息”、”生命线长度”和“生命线坐标”。
在这里,“左上坐标”示出表示实例的方框200a的左上角的坐标,“宽度”示出表示实例的方框200a的宽度,“高度”示出表示实例的方框200a的高度。
另外,“实例信息”示出存储在表示实例的方框200a中的实例名和包含有该实例名的类名,”生命线长度”表示生命线200b的长度,“生命线坐标”表示生命线200b的顶点的坐标。
例如,存在于左端的实例的方框以及表示生命线的实例表的“左上坐标”是“(x1,y1)”,“宽度”是“w1”,“高度”是“h1”,“实例信息”是“a:Order”,”生命线长度”是“L1”,“生命线坐标”是“Lx1,Ly1”。另外,省略其它的实例表的说明。
接着,针对方法箭头表220进行说明。如该图所示,方法箭头表220包括“起始点坐标”、“方法名”、“长度”、“线型”、“连接起点类”和“连接目标类”。
在这里,“起始点坐标”表示箭头200c的左端的坐标,“方法名”表示以箭头表示的方法的名字,“长度”表示箭头200c的长度,“线型”表示箭头200c的线的种类,“连接起点类”表示箭头200c的连接起点的类名,“连接目标类”表示箭头200c的连接目标的类名。
例如,存在于左端的箭头的方法箭头表的“起始点坐标”是“(a1,b1)”,“方法名”是“recieveOrder”,“长度”是“I1”,“线型”是“Solid”,“连接起点类”是“无”,“连接目标类”是“a:Order”。另外,省略其它的方法箭头表的说明。
输出部120从控制部130接收程序代码,并输出所接收的程序代码。
控制部130是生成树形结构数据、再利用原有的程序代码而生成新的程序代码的处理部,具有树形结构变换处理部130a、匹配处理部130b、和程序抽出处理部130c。
树形结构变换处理部130a从输入接收部110接收顺序图数据和程序代码,并将接收到的顺序图数据变换成树形结构数据。然后,树形结构变换处理部130a将程序代码和顺序图数据分别作为程序代码数据140a以及对象树形结构数据140b而存储在存储部140中。
另外,树形结构变换处理部130a在将程序代码和树形结构数据存储在存储部140中的情况下,对树形结构数据添加用于确定对应的程序代码存储在何处的确定信息(以下,标记为程序代码确定信息)。
图4是表示树形结构数据的数据结构的一个例子的图。该图所示的树形结构数据具有程序代码确定信息区域、方法名区域、连接目标类名区域和指针区域。以下,将方法名区域、连接目标类名区域和指针区域合在一起标记为单元(另外,在树形结构数据的前头的单元中包含有程序代码确定信息区域)。
在这里,程序代码确定信息区域是存储程序代码确定信息的区域,方法名区域是存储方法名的区域,连接目标类名区域是存储连接目标的类名的区域,指针区域存储成为下一个连接目标的单元的地址。另外,在下一个连接目标存在多个的情况下,在指针区域存储多个地址。
另外,当根据图3所示的顺序图数据生成树形结构数据时,可如图5的300所示;当图示树形结构数据300时,可如310所示。
另外,树形结构数据300包括单元300a~300d。在单元300a的程序代码确定信息区域存储“程序代码确定信息”,在方法名区域存储“RecieveOrder”,在连接目标类名区域存储“Order”,在指针区域存储“单元300b所处的地址”。
在单元300b的方法名区域存储“createOrder”,在连接目标类名区域存储“Receipt”,在指针区域存储“单元300c以及300d所处的地址”。
在单元300c的方法名区域存储“getCustomer”,在连接目标类名区域存储“Customer”。另外,因为不存在后续的单元,所以在单元300c的指针区域不存储数据。
在单元300d的方法名区域存储“getProduct”,在连接目标类名区域存储“Product”。因为不存在后续的单元,,所以与单元300c同样地在单元300d的指针区域不存储数据。
另外,树形结构变换处理部130a基于包含于顺序图数据的实例中的实例名和类名,作成表示各个类名和实例名的对应关系的对应表,将所作成的对应表140c存储在存储部140中。
图6是表示对应表的一个例子的图。如该图所示,对应表140c由类名和实例名构成。
具体地说,表示为,与类名“Order”对应的实例名是“a”,与类名“Receipt”对应的实例名是“b”,与类名“Product”对应的实例名是“c”,与类名“Customer”对应的实例名是“d”。该对应表将被后述的程序抽出处理部130c所利用。
然而,树形结构变换处理部130a再利用原有的程序代码,在接收到表示要新生成的程序代码的规格的顺序图数据(以下,标记为生成顺序图数据)的情况下,将接收到的生成顺序图数据变换成树形结构数据,并将所变换的树形结构数据提交给匹配处理部130b,然后将生成顺序图数据提交给程序抽出处理部130c。
匹配处理部130b在从树形结构变换处理部130a接收到树形结构数据的情况下,从存储部140的对象树形结构数据140b中检索与接收到的树形结构数据相符合的树形结构数据140b。
具体地说,如图7所示,对从树形结构变换处理部130a接收到的树形结构数据以及从对象树形结构数据140b取得的树形结构数据中所包含的单元的连接关系进行分析,从而对各树形结构数据的各单元分配识别号码。
识别号码的分配步骤如下:将识别号码“1”分配给树形结构数据的前头的单元,将识别号码“2”分配给分配了识别号码“1”的下一个单元。
另外,在多个单元连接在同一层的情况下,按照连接起点的单元的指针中所包含的地址被存储的顺序分配识别号码。
例如,对于图5所示的树形结构数据300,按照单元300a、单元300b、单元300c和单元300d的顺序分配识别号码1、2、3、4。
然后,对于识别号码相同的单元,按顺序判断方法名以及连接目标类名是否相同,当所有的单元的方法名以及连接目标类名相同时,判断为树形结构数据相符合。然后,将相符合的树形结构数据提交给程序抽出处理部130c。
例如,因为与图8所示的生成顺序图350对应的树形结构数据360和图5的树形结构数据300相符合,所以匹配处理部130b将树形结构数据300提交给程序抽出处理部130c。
程序抽出处理部130c从匹配处理部130b取得树形结构数据,基于包含于该取得的树形结构数据中的程序代码指定信息,从程序代码数据140a中检索与树形结构数据对应的程序代码。
然后,程序抽出处理部130c基于检索出的程序代码和对应表140c,将包含于程序代码中的实例名替换为新的实例名,并将该替换的程序代码提交给输出部120。
例如,程序抽出处理部130c接收到树形结构数据300时,能够从包含于树形结构数据300中的程序代码确定信息中抽出与树形结构数据300对应的程序代码400b(如图9所示)。
然后,当程序抽出处理部130c基于对应表140c而检索与程序代码400b的实例“b”对应的类时,判明与实例“b”对应的类是“Receipt”。
因此,因为在图8所示的生成顺序图数据的类“Receipt”的实例是“y”,所以程序抽出处理部130c将程序代码400a的实例从“b”变换为“y”,从而生成新的程序代码400b。
即,不需要从零开始生成程序代码,只要生成要新生成的程序代码的规格的顺序图,就能够生成与顺序图对应的程序代码。
另外,虽然在本实施方式中省略详细说明,但在对从树形结构变换处理部130a接受的树形结构数据分配的识别号码的数、和对从对象树形结构数据140b取得的树形结构数据分配的识别号码的数不一致时,判断为树形结构数据不相符。
接着,针对树形结构变换处理部130a预先在存储部140中存储树形结构数据和与树形结构数据对应的程序代码的准备处理进行说明。图10是表示准备处理的处理步骤的流程图。
如图10所示,输入接收部110读入程序代码以及顺序图(步骤S101),将程序代码以及顺序图数据提交给树形结构变换处理部130a(步骤S102)。
然后,树形结构变换处理部130a进行树形结构变换处理(步骤S103),作成对应表(步骤S104),将对应表存储到存储部140中(步骤S105)。
然后,树形结构变换处理部130a将程序代码存储在存储部140中(步骤S106),对树形结构数据追加程序代码确定信息(步骤S107),将树形结构数据存储在存储部140中(步骤S108)。
接着,针对图10的步骤S103所示的树形结构变换处理进行说明。图11是表示树形结构变换处理的处理步骤的流程图。如该图所示,树形结构变换处理部130a检索顺序图的最左边且最上边的方法箭头(步骤S201),生成单元(步骤S202),将方法名以及连接目标的类名存储在单元中(步骤S203),并存储箭头的连接起点类名(步骤S204)。(虽然在上述的说明中从略,但树形结构变换处理部130a也存储所检索到的箭头的连接起点类名)
然后,检索下方向最近的下一个箭头(步骤S205),判断箭头是否存在(步骤S206),在箭头不存在时(在步骤S206为否),结束树形结构变换处理。
另一方面,箭头存在时(在步骤S206为是),生成单元(步骤S207),将方法名以及连接目标的类名存储在单元(步骤S208),判断与前一个箭头相关的连接起点类名和与当前的箭头相关的连接起点类名是否相同(步骤S209)。
当与前一个箭头相关的连接起点类名和与当前的箭头相关的连接起点类名不相同时(在步骤S209为否),将当前的单元的地址存储在前一个生成的单元的指针中(步骤S210),将所存储的箭头的连接起点类名更新为当前的箭头的连接起点类名(步骤S211),转移到步骤S205。
另一方面,当与前一个箭头相关的连接起点类名和与当前的箭头相关的连接起点类名相同时(在步骤S209中为是),将当前的单元的地址追加在调出起点的单元的指针中(步骤S212),转移到步骤S211。
接着,针对基于要新生成的程序代码的顺序图而生成程序代码的程序生成处理进行说明。图12是表示程序生成处理的处理步骤的流程图。如该图所示,输入接收部110读入顺序图(步骤S301),将顺序图数据提交给树形结构变换处理部130a(步骤S302),树形结构变换处理部130a进行树形结构变换处理(步骤S303),将树形结构数据提交给匹配处理部130b(步骤S304)。
然后,匹配处理部130b进行匹配处理(步骤S305),判定相符合的树形结构数据是否存在(步骤S306),当相符合的树形结构数据不存在时(在步骤S306中为否),结束处理。
另一方面,当相符合的树形结构数据存在时(在步骤S306中为是),匹配处理部130b将相符合的树形结构数据提交给程序抽出处理部130c(步骤S307),程序抽出处理部130c检索与相符合的树形结构数据对应的程序代码(步骤S308),根据对应表来替换程序代码的实例名(步骤S309),将程序代码提交给输出部120(步骤S310),输出部120输出程序代码(步骤S311)。
在这里,图12的步骤S303所示的树形结构变换处理与图11所示的树形结构变换处理相同,所以省略说明。
接着,针对图12的步骤S305所示的匹配处理进行说明。图13是表示匹配处理的处理步骤的流程图。如该图所示,匹配处理部130b从对象树形结构数据140b中取得树形结构数据(步骤S401),将识别号码分配给树形结构数据(步骤S402),进行单元选择处理(步骤S403),判定各个方法名以及连接目标类名是否相同(步骤S404)。
当各个方法名以及连接目标类名相同时(在步骤S404中为是),判定是否选择了包含于树形结构数据中的所有的单元(步骤S405),如果没选择包含于树形结构数据中的所有的单元(在步骤S405中为否),转移到步骤S403,当选择了包含于树形结构数据中的所有的单元时(在步骤S405中为是),判断为一致的树形结构数据存在(步骤S406)。
另一方面,当各个方法名以及连接目标类名不相同时(在步骤S404中为否),判定是否对于所有的树形结构数据进行了匹配(步骤S407),当没有对所有的树形结构数据进行匹配时(在步骤S407中为否),从对象树形结构数据取得下一个树形结构数据(步骤S408),转移到步骤S402。
另一方面,当对所有的树形结构数据进行了匹配时(在步骤S407中为是),判断为一致的树形结构数据不存在(步骤S409)。
接着,针对图13的步骤S403所示的单元选择处理进行说明。图14是表示单元选择处理的处理步骤的流程图。如该图所示,匹配处理部130b判定是否第一次选择从树形结构变换处理部130a接收的树形结构数据以及从对象树形结构数据140b取得的树形结构数据中所包含的单元(步骤S501),当是第一次选择单元时(在步骤S501中为是),分别选择与识别号码“1”对应的单元(步骤S502)。
另一方面,当不是第一次选择单元时(在步骤S501中为否),判定是否从对象树形结构数据140b新取得到树形结构数据(步骤8503),当从对象树形结构数据新取得到树形结构数据时(在步骤S503中为是),将以前从对象树形结构数据140b取得到的旧树形结构数据变换为新取得到的树形结构数据(步骤S504),转移到步骤S502。
另一方面,当没有从对象树形结构数据新取得到树形结构数据时(在步骤S503中为否),分别选择与上次选择的识别号码的下一个识别号码对应的单元(步骤S505)。
如上所述,本实施方式涉及的源代码生成支援程序,因为树形结构变换处理部130a根据生成顺序图数据而生成树形结构数据,匹配处理部130b从对象树形结构数据140b中检索与生成的树形结构数据相符合的树形结构数据,程序抽出处理部130c从相符合的树形结构数据的程序代码确定信息中取得所对应的原有的程序代码,将取得的程序代码的实例名替换为与生成顺序图数据对应的实例名,从而不需要完全从零开始生成程序代码,而只要生成顺序图,就能够生成程序代码,进而能够提高程序代码的生产性。
另外,因为只要生成顺序图,就能够自动生成与顺序图对应的程序代码,所以即使用户没有关于脚本语言的语法的知识,也能够容易的生成程序代码。
另外,虽然在本实施方式中针对源代码生成支援装置100进行了说明,但也可以通过软件来实现具有该源代码生成支援装置100的结构,从而能够得到具有同样功能的源代码生成支援程序。因此,针对执行该源代码生成支援程序的计算机系统进行说明。
图15是表示执行本实施方式涉及的源代码生成支援程序的计算机系统的图。如该图所示,该计算机系统500具有主体部501、根据来自主体部501的指示而在显示画面502a上显示信息的显示器502、用于对该计算机系统500输入各种的信息的键盘503、用于对在显示器502的显示画面502a上的任意位置进行指定的鼠标504、用于连接到LAN506或者广域网(WAN)的LAN接口、和用于连接到公用线507的调制解调器505。在这里,LAN506将其他计算机系统(PC)511、服务器512、打印机513等和计算机系统500连接在一起。
另外,图16是表示图15所示的主体部501的结构的功能方框图。如该图所示,该主体部501具有CPU521、RAM522、ROM523、硬盘驱动器(HDD)524、CD-ROM驱动器525、FD驱动器526、I/O接口527和LAN接口528。
并且,在该计算机系统500中被执行的源代码生成支援程序存储在软盘(FD)508、CD-ROM509、DVD盘、光磁盘、IC卡等的便携式存储介质中,被从这些存储介质中读出而安装在计算机系统500上。然后,所安装的视频发送程序存储在HDD524中,可利用RAM522、ROM523等,由CPU521执行。
如上所说明的那样,根据本发明,基于表示要新生成的源代码的规格的顺序图而生成树形结构数据,从至少存储有原有的源代码和与该原有的源代码对应的树形结构数据的存储装置中检索与所生成的树形结构数据相符合的树形结构数据,从存储装置中取得与相符合的树形结构数据对应的源代码,所以不需要完全从零开始生成源代码,而只要生成顺序图,就能够自动生成所希望的源代码,从而能够消除用户的负担,提高程序开发效率。
工业上的可利用性
如上所述,本发明的源代码生成支援程序以及源代码生成支援方法适合需要利用原有的程序代码来高效率的生成源代码的基于面向对象的程序开发系统等中。
Claims (8)
1.一种源代码生成支援装置,对基于面向对象的源代码的生成进行支援,其特征在于,具有:
树形结构生成单元,其基于用于表示要新生成的源代码的规格的顺序图,生成树形结构数据,
检索单元,其在至少存储有原有的源代码和与该原有的源代码对应的树形结构数据的存储装置中,检索与上述树形结构生成单元所生成的树形结构数据相符合的树形结构数据,
取得单元,其从上述存储装置中取得与上述相符合的树形结构数据对应的源代码;
上述树形结构数据是指,抽出包括于上述顺序图中的实例和方法的连接关系,并根据方法的顺序信息和实例的连接信息,由上述树形结构生成单元生成的数据。
2.根据权利要求1所述的源代码生成支援装置,其特征在于,还具有变换处理单元,该变换处理单元将上述取得单元所取得的源代码中所包含的实例变换为与上述顺序图对应的实例。
3.根据权利要求1或2所述的源代码生成支援装置,其特征在于,上述树形结构生成单元还具有树形结构生成处理单元,该树形结构生成处理单元基于上述顺序图中所包含的实例和方法的连接关系,生成包含有方法的顺序信息的树形结构数据。
4.根据权利要求3所述的源代码生成支援装置,其特征在于,上述检索单元从上述存储装置中检索包含有与上述树形结构生成单元所生成的树形结构数据中所包含的方法的顺序信息相同的方法的顺序信息的树形结构数据。
5.一种源代码生成支援方法,对基于面向对象的源代码的生成进行支援,其特征在于,包括:
树形结构生成工序,基于用于表示要新生成的源代码的规格的顺序图,生成树形结构数据,
检索工序,在至少存储有原有的源代码和与该原有的源代码对应的树形结构数据的存储装置中,检索与在上述树形结构生成工序中生成的树形结构数据相符合的树形结构数据,
取得工序,从上述存储装置中取得与上述相符合的树形结构数据对应的源代码;
上述树形结构数据是指,抽出包括于上述顺序图中的实例和方法的连接关系,并根据方法的顺序信息和实例的连接信息,在上述树形结构生成工序中生成的数据。
6.根据权利要求5所述的源代码生成支援方法,其特征在于,还包括变换处理工序,该变换处理工序将在上述取得工序中取得的源代码中所包含的实例变换为与上述顺序图对应的实例。
7.根据权利要求5或6所述的源代码生成支援方法,其特征在于,上述树形结构生成工序还包括树形结构生成处理工序,该树形结构生成处理工序基于上述顺序图中所包含的实例和方法的连接关系,生成包含有方法的顺序信息的树形结构数据。
8.根据权利要求7所述的源代码生成支援方法,其特征在于,上述检索工序从上述存储装置中检索包含有与在上述树形结构生成工序中生成的树形结构数据中所包含的方法的顺序信息相同的方法的顺序信息的树形结构数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2004/006168 WO2005106650A1 (ja) | 2004-04-28 | 2004-04-28 | ソースコード作成支援プログラムおよびソースコード作成支援方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1977242A CN1977242A (zh) | 2007-06-06 |
CN100555217C true CN100555217C (zh) | 2009-10-28 |
Family
ID=35241842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800428606A Expired - Fee Related CN100555217C (zh) | 2004-04-28 | 2004-04-28 | 源代码生成支援装置及源代码生成支援方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7930679B2 (zh) |
EP (1) | EP1746498A4 (zh) |
JP (1) | JP4616829B2 (zh) |
CN (1) | CN100555217C (zh) |
AU (1) | AU2004319192B2 (zh) |
CA (1) | CA2562012C (zh) |
WO (1) | WO2005106650A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI273487B (en) * | 2004-06-08 | 2007-02-11 | Via Tech Inc | Computer system, related method, manufacture developing method and related system for generating program codes for describing relations of numerous function titles and numerous control signal codes of a device |
US20060190343A1 (en) * | 2005-02-24 | 2006-08-24 | Word Of Mouth Marketing, Inc. | Method of marketing memberships in a consumer group |
US7917890B2 (en) * | 2006-08-31 | 2011-03-29 | Jon Barcellona | Enterprise-scale application development framework utilizing code generation |
JP4974228B2 (ja) * | 2007-03-20 | 2012-07-11 | 株式会社日立ソリューションズ | アスペクト設定方法および装置並びにコンピュータプログラム |
JP4613214B2 (ja) | 2008-02-26 | 2011-01-12 | 日立オートモティブシステムズ株式会社 | ソフトウェア自動構成装置 |
US8341607B2 (en) * | 2008-03-13 | 2012-12-25 | International Business Machines Corporation | Condensing pattern matcher generation for intermediate language patterns |
US8863097B2 (en) * | 2010-12-29 | 2014-10-14 | Sap Ag | Providing code list extensibility |
US20130067432A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Application development toolkit |
US9117177B1 (en) * | 2013-05-30 | 2015-08-25 | Amazon Technologies, Inc. | Generating module stubs |
KR20190082542A (ko) * | 2018-01-02 | 2019-07-10 | 삼성전자주식회사 | 테이블로부터 소스 코드의 생성 및 그것의 사용을 위한 방법, 시스템 및 장치 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02105222A (ja) * | 1988-10-13 | 1990-04-17 | Matsushita Electric Ind Co Ltd | ソフトウェア自動生成装置とソフトウェア自動生成方法 |
JPH03195193A (ja) * | 1989-12-22 | 1991-08-26 | Nippon Telegr & Teleph Corp <Ntt> | 通信サービスソフトウェア自動生成システム |
JP3299259B2 (ja) | 1990-05-15 | 2002-07-08 | 富士通株式会社 | プログラムの構造図編集処理方式 |
US5699310A (en) * | 1990-06-29 | 1997-12-16 | Dynasty Technologies, Inc. | Method and apparatus for a fully inherited object-oriented computer system for generating source code from user-entered specifications |
JP3115578B2 (ja) * | 1990-07-17 | 2000-12-11 | 三洋電機株式会社 | プログラム開発装置 |
US5561801A (en) | 1991-12-13 | 1996-10-01 | Thinking Machines Corporation | System and method for multilevel promotion |
GB2278213A (en) * | 1993-05-18 | 1994-11-23 | Ibm | Test program generator. |
JPH0736684A (ja) * | 1993-07-20 | 1995-02-07 | Hitachi Ltd | ドメイン指向部品管理方法 |
JPH07123452A (ja) * | 1993-10-25 | 1995-05-12 | Matsushita Electric Ind Co Ltd | 通信サービス自動生成システム |
CA2643234C (en) * | 1993-10-29 | 2012-05-15 | Microsoft Corporation | Method and system for generating a computer program |
US5675801A (en) * | 1994-09-30 | 1997-10-07 | International Business Machines Corporation | Object oriented system and method for generating target language code |
US5630131A (en) * | 1994-11-14 | 1997-05-13 | Object Technology Licensing Corp. | Method and apparatus for importing and exporting archive files for a graphical user interface |
US5671416A (en) * | 1995-02-24 | 1997-09-23 | Elson; David | Apparatus and a method for searching and modifying source code of a computer program |
JP3625084B2 (ja) * | 1995-04-14 | 2005-03-02 | 株式会社山武 | ソフトウエア部品の再利用システム |
AU1331897A (en) * | 1995-12-15 | 1997-07-14 | Object Dynamics Corp. | Method and system for constructing software components and systems as assemblies of independent parts |
JPH09297690A (ja) * | 1996-04-30 | 1997-11-18 | Nippon Telegr & Teleph Corp <Ntt> | 複数意思決定主体環境でのタスク依頼とタスク引き受け行動決定方法 |
JPH113216A (ja) | 1997-06-11 | 1999-01-06 | Fujitsu Ltd | シナリオに基づくオブジェクト指向分析設計支援方法および支援装置 |
JPH11219287A (ja) | 1998-02-02 | 1999-08-10 | Mitsubishi Electric Corp | ソフトウェア開発支援装置 |
US6742175B1 (en) * | 1998-10-13 | 2004-05-25 | Codagen Technologies Corp. | Component-based source code generator |
US6591272B1 (en) * | 1999-02-25 | 2003-07-08 | Tricoron Networks, Inc. | Method and apparatus to make and transmit objects from a database on a server computer to a client computer |
JP3715132B2 (ja) * | 1999-05-21 | 2005-11-09 | 三菱電機株式会社 | データ中継装置及びデータ中継方法 |
JP2001188673A (ja) * | 1999-12-28 | 2001-07-10 | Mitsubishi Electric Corp | ソフトウェア再利用支援装置 |
AU2001217357B2 (en) * | 2000-12-08 | 2008-05-15 | Fujitsu Limited | Sequence analysis method and sequence analysis apparatus |
JP4024733B2 (ja) | 2003-08-29 | 2007-12-19 | ジョンソン コントロールズ オートモーティブ システムズ株式会社 | 乗り物用座席 |
-
2004
- 2004-04-28 WO PCT/JP2004/006168 patent/WO2005106650A1/ja not_active Application Discontinuation
- 2004-04-28 EP EP04730050A patent/EP1746498A4/en not_active Ceased
- 2004-04-28 AU AU2004319192A patent/AU2004319192B2/en not_active Ceased
- 2004-04-28 CN CNB2004800428606A patent/CN100555217C/zh not_active Expired - Fee Related
- 2004-04-28 CA CA2562012A patent/CA2562012C/en not_active Expired - Fee Related
- 2004-04-28 JP JP2006512697A patent/JP4616829B2/ja not_active Expired - Fee Related
-
2006
- 2006-09-19 US US11/523,227 patent/US7930679B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2005106650A1 (ja) | 2005-11-10 |
AU2004319192B2 (en) | 2008-07-31 |
CA2562012A1 (en) | 2005-10-11 |
US7930679B2 (en) | 2011-04-19 |
CA2562012C (en) | 2013-01-22 |
EP1746498A1 (en) | 2007-01-24 |
CN1977242A (zh) | 2007-06-06 |
EP1746498A4 (en) | 2011-08-10 |
JP4616829B2 (ja) | 2011-01-19 |
JPWO2005106650A1 (ja) | 2008-03-21 |
US20070016889A1 (en) | 2007-01-18 |
AU2004319192A1 (en) | 2005-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101571758B (zh) | 一种输入法系统和方法 | |
CN100555217C (zh) | 源代码生成支援装置及源代码生成支援方法 | |
CN110135590B (zh) | 信息处理方法、装置、介质及电子设备 | |
CN101510167A (zh) | 一种插件运行的方法、装置及系统 | |
CN101183379A (zh) | 用于检索数据的方法和系统 | |
CN1174319C (zh) | 数据结构管理装置、数据结构管理系统和方法 | |
CN101533400B (zh) | 相关文档呈现系统和相关文档呈现方法 | |
JP2020091513A (ja) | 情報処理装置、情報処理方法 | |
CN112214465A (zh) | 日志存储系统及方法 | |
CN102934106A (zh) | 数据库、管理服务器和管理程序 | |
CN101894312B (zh) | 信息交换、共享系统及其方法 | |
CN106202440A (zh) | 数据处理方法、装置及设备 | |
WO2021244233A1 (zh) | 一种处理订单数据的方法和装置 | |
CN1768519A (zh) | 用于识别与相同标签匹配的多个节点的计算机网络 | |
CN113468446A (zh) | 一种支持识别第三方二维码数据的方法、系统及设备 | |
CN113434585A (zh) | 资源保存方法及设备 | |
CN109544240B (zh) | 一种电视策略冲突处理方法、系统及存储介质 | |
CN113296912A (zh) | 任务处理方法及装置、系统、存储介质、电子设备 | |
CN113573299B (zh) | 订阅数据的提供/获取方法、提供/获取装置和交互系统 | |
CN111311329B (zh) | 标签数据获取方法、装置、设备及可读存储介质 | |
CN112883155B (zh) | 一种事件处理方法、装置、设备及存储介质 | |
JP2011209945A (ja) | プログラム、携帯端末機、情報処理方法、サーバコンピュータ及び中継システム | |
CN1762135A (zh) | 虚拟网络 | |
CN115437753A (zh) | 事务请求处理方法、装置、系统、设备及存储介质 | |
Parra Salazar | Robust and efficient software platform for de novo genomic diversity analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091028 Termination date: 20210428 |
|
CF01 | Termination of patent right due to non-payment of annual fee |