CN100533377C - 应用程序的变换设备和变换方法 - Google Patents

应用程序的变换设备和变换方法 Download PDF

Info

Publication number
CN100533377C
CN100533377C CNB200710141181XA CN200710141181A CN100533377C CN 100533377 C CN100533377 C CN 100533377C CN B200710141181X A CNB200710141181X A CN B200710141181XA CN 200710141181 A CN200710141181 A CN 200710141181A CN 100533377 C CN100533377 C CN 100533377C
Authority
CN
China
Prior art keywords
variable
input interface
interface
application program
value
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
Application number
CNB200710141181XA
Other languages
English (en)
Other versions
CN101174209A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101174209A publication Critical patent/CN101174209A/zh
Application granted granted Critical
Publication of CN100533377C publication Critical patent/CN100533377C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Abstract

本发明的目的是使按照个别情形,修改现有应用程序的任务变得简易。应用程序变换设备包括注解检测单元11、变换部分12和设计模型存储单元13。注解检测单元11在应用程序的设计模型中,检测按照个别情形,指定需要保持某一值的变量的注解,和指定用于识别所述个别情形的变量的注解。变换部分12根据这样的注解变换设计模型。设计模型存储单元13保存设计模型。同时,变换部分12包括把初始输入接口变换成新的输入接口的输入接口变换单元14,把初始输出接口变换成新的输出接口的输出接口变换单元15,和把个别信息增加到出自初始输入接口的输入项中,从而创建调用新的输入接口的设计模型的新模型创建单元16。

Description

应用程序的变换设备和变换方法
技术领域
本发明涉及应用程序的变换设备、方法和程序,尤其涉及用于指定待单独修改的地点,和汇合应用程序的设备、方法和程序。
背景技术
一般来说,执行实体,比如应用程序通常需要应付在创建程序之后实现的个别情形。例如,假定创建一个根据外部输入保存关于个别情形的数据,并且按照识别的情形输出对应信息的程序,通常稍后必须改变或增加用于识别所述情形的阈值,这样的信息将被输出给的电子邮件地址等等。
这种情况下,必须修改现有的应用程序。支持应用程序的修改的常规技术的例子包括一种集中于改变源程序的函数调用说明中的多个自变量之一的技术(例如,参见专利文献1)。在专利文献1中公开的这种技术中,当自变量的位置被指定时,该自变量和该自变量的函数被识别。随后,识别的自变量的条件被确定。接下来,从源程序取回满足该条件的所有变量,并显示关于所述所有变量的选项。当选择一个变量时,位置被识别的自变量被改变成选择的变量。
[专利文献1]未经审查的日本专利申请公开No.2000-20296。
发明内容
如上所述,稍后可能必须改变现有的应用程序。例如,将存在其中根据预先设计的应用模型创建应用程序的情况。
按照惯例,在这种情况下,改变现有的应用程序涉及应用模型的重新设计。
可在考虑到具体情形的情况下设计应用模型,以使稍后进行改变的需要降至最小。但是,了解系统开发和设计应用模型的用户不一定了解业务。于是,该用户有可能不能预先充分设想具体的情形。换句话说,为了创建能够应付个别情形的灵活的应用程序,应用程序开发人员应该具有非常熟练的技能。
另外,虽然专利文献1公开一种支持应用程序的修改的技术,不过该技术并不针对按照个别情形修改应用程序的情况。例如,当根据应用模型创建应用程序时,在创建另一应用模型以便创建个别实例的时候,通常不存在使用初始应用模型作为模板把初始应用模型变换成可被个别使用的新的应用模型的技术。
为了解决上述技术问题,做出本发明。本发明的目的是使按照个别情形改变现有应用程序的任务变得简易。
考虑到上述目的,仅仅通过指定为应付个别情形而必需的元素,和用于识别所述个别情形的元素,本发明能够容易地把初始应用程序变换成能够应付所述个别情形的应用程序。
本发明的第一设备包括被配置为显示构成应用程序的元素的显示单元;被配置为检测显示单元上的指示的检测单元,所述指示指出使第一元素应付个别情形,并且指出所述个别情形由第二元素识别;和被配置为产生部分的所述应用程序的产生单元,所述部分应用程序使第一元素应付所述第二元素识别的个别情形。
本发明的第二设备包括被配置为显示在应用程序中使用的变量的显示单元;被配置为检测显示单元上的指示的检测单元,所述指示指出使第一变量保存对应于个别情形的值,所述个别情形由第二变量识别;和被配置为产生部分的所述应用程序的产生单元,所述部分应用程序使第一变量保存与第二变量识别的个别情形对应的值。
这里,“部分的应用程序”(portion of an application program)的例子包括把数据传给另一应用程序或者从另一应用程序传送数据的接口。这种情况下,第一设备的产生单元产生能够把值传给第一或第二元素,或者从第一或第二元素传送值的接口,作为“部分的应用程序”。同样地,第二设备的产生单元产生能够把值传给第一或第二变量,或者从第一或第二元素传送值的接口,作为“部分的应用程序”。
本发明也可被看作变换应用程序的方法。这种情况下,本发明的方法包括下述步骤:在显示单元上显示在应用程序中使用的变量的显示步骤;检测显示单元上的指示的检测步骤,所述指示指出使第一变量保存对应于个别情形的值,所述个别情形由第二变量识别;从保存管理应用程序的元素的数据的存储单元中读取数据的读取步骤,所述元素用于持有待保存在第一变量中的值;和在存储单元中进行修改和存储,从而应用程序的该元素能够持有与第二变量识别的个别情形对应的值作为待保存在第一变量中的值。
本发明也可被看作使计算机执行预定功能的程序产品。
本发明的第一程序产品使计算机执行下述步骤,包括:在显示单元显示构成应用程序的各个元素的显示步骤;检测显示单元上的指示的检测步骤,所述指示指出使第一元素应付个别情形,所述个别情形由第二元素识别;和产生部分的所述应用程序的产生步骤,所述部分应用程序使第一元素应付由所述第二元素识别的个别情形。
本发明的第二程序使计算机执行下述步骤,包括:在显示单元上显示在应用程序中使用的变量的显示步骤;检测显示单元上的指示的检测步骤,所述指示指出使第一变量保存对应于个别情形的值,所述个别情形由第二变量识别;和产生部分的所述应用程序的产生步骤,所述部分应用程序使第一变量保存与第二变量识别的个别情形对应的值。
这里,“部分的应用程序”的例子包括把数据传给另一应用程序或者从另一应用程序传送数据的接口。这种情况下,在第一程序的产生步骤中,产生能够把值传给第一或第二元素,或者从第一或第二元素传送值的接口,作为“部分的应用程序”。同样地,在第二程序的产生步骤中,产生能够把值传给第一或第二变量,或者从第一或第二元素传送值的接口,作为“部分的应用程序”。
本发明能够使按照个别情形,修改现有应用程序的任务变得简易。
附图说明
图1图解说明本发明的实施例适用于的计算机的硬件结构。
图2图解说明在本发明的实施例中,待变换的应用程序的例证设计模型。
图3图解说明在本发明的实施例中,当指示应用程序的变换时例证设计模型的状态。
图4图解说明在应用程序的变换之后的例证设计模型。
图5图解说明在应用程序的变换之后的例证设计模型。
图6是图解说明根据本发明的实施例的应用程序变换设备的功能结构的方框图。
图7是根据本发明的实施例,图解说明输入接口变换单元的操作的流程图。
图8是根据本发明的实施例,图解说明输出接口变换单元的操作的流程图。
图9是根据本发明的实施例,图解说明新模型创建单元的操作的流程图。
图10根据本发明的实施例,图解说明管理设计模型的例证管理数据。
图11根据本发明的实施例,图解说明管理在输入接口和输出接口的变换之后的设计模型的例证管理数据。
图12根据本发明的实施例,图解说明管理新创建的设计模型的例证管理数据。
11:注解检测单元
12:变换部分
13:设计模型存储单元
14:输入接口变换单元
15:输出接口变换单元
16:新模型创建单元
具体实施方式
下面参考附图详细说明实现本发明的最佳方式(下面称为“实施例”)。
首先,将说明适合于用作本实施例中的变换应用程序的应用程序变换设备的计算机的硬件结构。
图1图解说明这种计算机的例证硬件结构。
如图所示,所述计算机包括充当计算装置的中央处理器(CPU)10a,通过主板(M/B)芯片集10b与CPU 10a连接的主存储器10c,和同样通过M/B芯片集10b与CPU 10a连接的显示机构10d。同时,网络接口10f,磁盘装置(HDD)10g,音频机构10h,键盘/鼠标10i和软盘驱动器1oj通过桥接电路10e与M/B芯片集10b连接。
图1中图解说明的组件通过总线互连。例如,CPU 10a和M/B芯片集10b通过CPU总线互连,而M/B芯片集10b和主存储器10c也通过CPU总线互连。M/B芯片集10b和显示机构10d通过加速图形端口(AGP)互连。如果显示机构10d包括支持PCI Express的视频卡,那么M/B芯片集10b和该视频卡通过PCI Express(PCIe)总线互连。为了与桥接电路10e连接,网络接口10f可以使用例如PCIExpress。至于磁盘装置10g,可以使用串行AT配件(ATA),用于并行传输的ATA,或者外设部件互连(PCI)。至于键盘/鼠标10i和软盘驱动器10j,通用串行总线(USB)可用于与桥接电路10e连接。
下面将利用具体例子说明由本实施例的应用程序变换设备执行的应用程序变换操作。下面,作为应用程序的处理的表现,在应用程序设计过程中创建的模型(下面称为“设计模型”)被用于描述应用程序变换操作。换句话说,通过描述设计模型的变换,说明应用程序的变换。可以认为这是实际设计模型的变换,并且通过根据在变换之后获得的设计模型自动产生应用程序,实现应用程序的变换。另一方面,可以认为该设计模型只是应用程序的处理的示意表现,并且通过自动地把与设计模型的变换类似的变换应用于该应用程序,实现应用程序的变换。
图2图解说明表示为大型连锁市场开发的应用程序的处理的设计模型。在其每个国内分店,该应用程序监视竞争者的战略上重要的产品的价格,如果公司的价格和其竞争者的价格之间的价差超过阈值,那么向位于总部的管理部门发出警报。这里作为例子描述的应用程序是实现被视为面向服务体系结构(SOA)中的单个有意义单元的功能的应用程序。该应用程序具有用于从另一应用程序接收数据的输入接口,和向另一应用程序发送数据的输出接口。从其接收数据或者向其发送数据的应用程序可以是支持这种输入或输出接口的任何应用程序。
具体地说,首先,输入接口101(价差设置)从外部接收“产品名称”、“价格”和“容许的价差”的值。随后,如箭头103、104和105所示,这些值被分别赋给关键字变量(key variable)107(产品名称),变量108(价格),变量109(容许的价差)。即,对于每种产品,设置其价格和“容许的价差”,“容许的价差”充当用于确定是否应发出警报的阈值。
随后,输入接口114(竞争者价格)从外部接收“公司名称”、“产品名称”和“价格”的值。随后,如粗箭头115所示,确定条件表达式116,“(价格-竞争者价格。价格>容许的价差)”是否被满足。这里,条件表达式116表述条件,即变量108(价格)的值与输入接口114(竞争者价格)接收的“价格”的值之间的差异超过变量109(容许的价差)的值。如果确定条件表达式116被满足,那么控制进入把值发送给输出接口113(报警产品)的处理,如粗箭头117所示。即,如箭头111和112所示,关键字变量107(产品名称)和变量108(价格)的值被发送给输出接口113(报警产品)。同时,如箭头118和19所示,输入接口114(竞争者价格)接收的“公司名称”、“产品名称”和“价格”的值也被发送给输出接口113(报警产品)。例如,如果用于向位于总部的管理部门发送电子邮件消息的应用程序连接到输出接口113(报警产品)的下游,则如果某一产品的公司价格与竞争者价格之间的差异超过阈值,那么能够把该产品的名称和竞争者的名称通知总部的管理部门。
稍后,考虑到它自己的销售环境的特性,某一分店可能需要利用该分店自己的容许价差监视战略上重要的产品。
在这种情况下,必须修改应用程序,以致变量109(容许的价差)具有适合于每个分店的值。在本实施例中,并不直接修改应用程序。换句话说,首先,仅仅通过在设计模型中放置一个注解对象(下面简称为“注解”),修改设计模型。随后,通过根据修改的设计模型自动生成应用程序,能够容易地修改应用程序。
图3图解说明当指示修改应用程序时设计模型的状态。
首先,注解121指定将使之应付个别情形的对象(下面称为“可个别定义的对象”)。在本例中,变量109(容许的价差)被规定为可个别定义的对象,因为为变量109(容许的价差)创建了个别实例。
用于识别每种个别情形的关键字(key)(下面称为“识别关键字”)由注解122指定。在本例中,分店名称被增加为一个关键字,因为必须为每个分店识别一个实例。
当在这种状态下指示设计模型的变换时,该设计模型被变换成能够单独使用的新设计模型。
图4图解说明由变换产生的设计模型。
在该设计模型中,提供了关键字变量106(分店名称)
另外,输入接口101(价差设置)被输入接口131(分店价差设置)替换。输入接口131(分店价差设置)从外部接收“分店名称”的值。随后,该值被赋给关键字变量106(分店名称),如箭头102所示。
此外,输出接口113(报警产品)被输出接口133(分店报警产品)替换。随后,如箭头110所示,关键字变量106(分店名称)的值被传送给输出接口133(分店报警产品)。
其余部分与变换前的设计模型的其余部分相同。
同时,还创建一个新的模型。
图5图解说明这里创建的所述新模型。
在该新模型中,首先,输入接口141(价差设置)从外部接收“产品名称”、“价格”和“容许的价差”的值。输入接口141(价差设置)等同于图1中图解说明的变换前的设计模型中的输入接口101(价差设置)。
同时,输入接口144(分店价差输入)从外部接收“分店名称”、“产品名称”和“容许的价差”的值。如箭头145、146和147所示,这些值被分别赋给关键字变量148(分店名称)、关键字变量149(产品名称)和变量150(容许的价差)。随后,如箭头151、152和153所示,关键字变量148(分店名称)、关键字变量149(产品名称)和变量150(容许的价差)的值被传给输出接口143(分店价差设置)。另外,如箭头142所示,输入接口141(价差设置)从外部接收的“价格”值被传给输出接口143(分店价差设置)。即,为每种产品设置价格和“容许的价差”,所述“容许的价差”充当用于确定是否应发出警报的阈值,并依据从新的输入接口144(分店价差输入)传来的“分店名称”、“产品名称”和“容许的价差”个别地对待所述价格和“容许的价差”。
从而,根据在图4和5中图解说明的设计模型,能够创建使之应付个别情形的应用程序。
总之,在本例中,通过进行下面说明的两个处理步骤,设计模型可被用作模板,所述模板能够按照个别情形实现应用程序的使用。所述两个处理步骤如下:
1.输入方
向被指定为可个别定义对象的变量传送值的初始输入接口的名称被改变,以创建一个新的输入接口。随后,向新的输入接口增加一个用于识别每种个别情形的识别关键字。另外,截取初始输入接口输入的信息,增加个别信息,并且创建用于调用所述新的输入接口的个别控制模型(即,新模型)。
2.输出方
初始输出接口的名称被改变,从而创建一个新的输出接口。随后,向新的输出接口增加一个用于识别每种个别情形的识别关键字。
下面,在设计模型中出现的,表示构成应用程序的每个元素的每个符号将被称为“模型元素”。这里,“元素”是应用程序的一个有意义的单元。“元素”的例子包括输入接口、输出接口、变量、赋值表达式、条件表达式和控制表达式。于是,设计模型中的模型元素是表示输入接口的符号,表示输出接口的符号,表示变量的符号(包括表示关键字变量的特殊符号),对应于赋值表达式的箭头,表示条件表达式的符号,和表示控制表达式的粗箭头。
下面将详细说明本实施例的应用程序变换设备。
图6是图解说明执行在图2-5中图示的应用程序变换的应用程序变换设备的功能结构的方框图。
如图所示,该应用程序变换设备包括注解检测单元11、变换部分12和设计模型存储单元13。变换部分12包括输入接口变换单元14,输出接口变换单元15和新模型创建单元16。
注解检测单元11检测注解在显示单元上的位置,所述显示单元是显示机构10d的一部分(参见图1)。
变换部分12根据检测到的注解的位置,变换设计模型。
设计模型存储单元13保存变换前后的设计模型。
在包括于变换部分12中的组件中,输入接口变换单元14变换设计模型中的输入接口,输出接口变换单元15变换设计模型中的输出接口,新模型创建单元16创建待增加的新模型。
下面说明该应用程序变换设备的操作。
在本实施例中,按照如下所述的程序变换设计模型:
1.对输入接口进行下述操作,所述输入接口向被指定为可个别定义的对象的变量传送值。
1-1.如果现有的输入接口是将对其进行操作的对象,那么改变该输入接口(初始输入接口)的名称,从而创建一个不同的输入接口(新的输入接口)。如果新的输入接口是将对其进行操作的对象,那么增加一个表示该输入接口的模型元素。
1-2.使引用初始输入接口的所有模型元素引用在1-1中创建的新输入接口。
1-3.向新的输入接口增加一个充当来源的输入项,值从所述来源被输入被指定为识别关键字的变量。
1-4.增加一个把该输入项的值赋给被指定为识别关键字的变量的模型元素(箭头)。
2.对输出接口进行下述操作。
2-1.如果现有的输出接口是将对其进行操作的对象,那么改变该输出接口(初始输出接口)的名称,从而创建一个不同的输出接口(新的输出接口)。如果新的输出接口是将对其进行操作的对象,那么增加一个表示该输出接口的模型元素。
2-2.使引用初始输出接口的所有模型元素引用在2-1中创建的新输出接口。
2-3.向新的输入接口增加一个充当目的地的输出项,值从被指定为识别关键字的变量输出给所述目的地。
2-4.增加一个被指定为识别关键字的变量的值赋给该输出项的模型元素(箭头)。
3.根据修改的输入接口信息,如下创建用于个别控制的设计模型(新模型)。
3-1.创建用于调用新输入接口的对应于初始输入接口的模型元素,和对应于输出接口的模型元素。
3-2.创建用于把输入接口的输入项的值赋给输出接口的输出项的模型元素(箭头)。
3-3.创建用于把指定的个别信息赋给输出接口的输出项的模型元素(箭头)。
下面参考流程图具体说明上述操作。
当如图3中所示,用户在显示单元上放置注解时,注解检测单元11识别所述注解指定的内容和对象。
首先说明所述注解指定的内容的识别。
在本实施例中,注解可把变量指定为可个别定义的对象或者指定为识别关键字。于是,注解的形状可按照注解所指定的内容而变化。这种情况下,定义注解的形状和注解所指定的内容之间的对应性的对应性信息被预先保存在存储单元中。随后,当放置注解时,注解检测单元11参考该对应性信息,识别该注解指定的内容。注解的不同属性,比如颜色可按照注解所指定的内容而变化。
下面将说明注解所指定的对象的识别。
注解检测单元11识别注解的位置,从而识别对象,即,注解所指定的变量。例如,如果注解的位置和表示变量的模型元素的位置之间的关系满足预定条件,那么注解检测单元11确定该变量是由该注解指定的对象。在图3中,把变量指定为可个别定义对象的注解呈气球形。即,气球的末端所指向的变量是所述对象。另一方面,如果注解的位置与表示变量的模型元素的位置之间的关系不满足预定条件,那么注解检测单元11确定待新增加的变量将是一个对象。这种情况下,如图3中所示,如果待新增加的变量的名称作为文本数据被包含在注解中,那么应用程序变换设备能够自动确定所述名称。
识别了注解所指定的内容和对象后,就开始变换部分12的操作。
变换部分12的操作涉及输入接口变换单元14进行的“输入接口变换”,输出接口变换单元15进行的“输出接口变换”,和新模型创建单元16进行的“新模型创建”,下面分别进行说明。
(输入接口变换)
图7是图解说明当输入接口变换单元14变换输入接口时进行的操作的流程图。在图7中,为了便于图解说明,术语“接口”被简写成“I/F”。同时,在重复操作中当前参考的变量、关键字变量和输入接口被分别简称为“参考变量”、“参考关键字变量”和“参考输入I/F”。
当开始操作时,输入接口变换单元14顺序参考被指定为可个别定义对象的所有变量,并重复步骤S402-S417(步骤S401-S418:Repeat1)。
在Repeat 1中,输入接口变换单元14对当前参考的变量进行下述处理。在图3的例子中,对被指定为可个别定义对象的变量109(容许的价差)进行下述处理。
即,输入接口变换单元14确定当前参考的变量是否是新增变量(步骤S402)。在图3的例子中,由于变量109(容许的价差)已存在于设计模型中,因此输入接口变换单元14确定当前参考的变量不是新增变量。尽管未示出,不过如果给出了指定增加新变量,比如“价差设置日期”的注解,那么输入接口变换单元14确定当前参考的变量是新增加的变量。
首先说明其中输入接口变换单元14在步骤S402中确定变量不是新增变量的情况。在图3的例子中,对变量109(容许的价差)进行下述处理。
这种情况下,输入接口变换单元14顺序参考与当前参考的变量相关的所有输入界面,并重复步骤S404-S10(步骤S403-S411:Repeat2)。
在Repeat 2中,输入接口变换单元14对当前参考的输入接口进行下述处理。在图3的例子中,输入接口变换单元14对与变量109(容许的价差)相关的输入接口101(价差设置)进行下述处理。
首先,输入接口变换单元14确定当前参考的输入接口的名称是否已被改变(步骤S404)。
如果确定输入接口的名称未被改变(步骤S404中“否”),则输入接口(初始输入接口)的名称被改变,从而创建一个不同的输入接口(新的输入接口)(步骤S405)。在图3和4的例子中,输入接口101(价差设置)被输入接口131(分店价差设置)替换。
随后,引用初始输入接口的名称的模型元素被改变成引用新输入接口的名称(步骤S406)。在图3和4的例子中,引用输入接口101(价差设置)的指向关键字变量107(产品名称)、变量108(价格)和变量109(容许的价差)的箭头被改变成引用输入接口131(分店价差设置)。
另一方面,如果确定输入接口的名称已被改变(步骤S404中“是”),那么处理进入步骤S407,而不改变该名称。
随后,输入接口变换单元14顺序参考新增加的关键字变量,并重复步骤S408和S409(步骤S407-S410:Repeat 3)。
在Repeat 3中,输入接口变换单元14对当前参考的关键字变量进行下述处理。在图3的例子中,由于提供了注解“依据分店名称识别”,因此新增加了关键字变量106(分店名称)(参见图4),并对该关键字变量进行下述处理。
首先,与当前参考的关键字变量对应的输入项被增加到当前参考的输入接口中,即,被增加到通过改变接口名称在步骤S405中创建的新输入接口中(步骤S408)。在图4的例子中,在输入接口131(分店价差设置)中新提供了输入项“分店名称”。
随后,增加把输入项拥有的值赋给当前参考的关键字变量的模型元素(步骤S409)。在图4的例子中,提供从输入项“分店名称”到关键字变量106(分店名称)的箭头102。
下面将说明其中输入接口变换单元14在步骤S402中确定变量是新增加的变量的情况。
这种情况下,输入接口变换单元14创建一个新的输入接口(步骤S412)。例如,如果指定要新增加“价差设置日期”,那么输入接口变换单元14创建一个用于输入“价差设置日期”的输入接口。
随后,输入接口变换单元14顺序参考所有的关键字变量,并重复步骤S404(步骤S413-S415:Repeat 4)。
在Repeat 4中,输入接口变换单元4对当前参考的关键字变量进行下述处理。
即,对应于当前参考的关键字变量的输入项被增加到在步骤S412中新创建的输入接口(步骤S414)。例如,在图3中,如果新变量“价差设置日期”,而不是现有变量“可接受的价差”被指定为可个别定义的对象,那么分别与关键字变量106(分店名称)和关键字变量107(产品名称)对应的输入项“分店名称”和“产品名称”被增加到新的输入接口中。
随后,输入接口变换单元14把与当前参考的变量对应的输入项增加到在步骤S412中新创建的输入接口中(步骤S416)。随后,输入接口变换单元14增加一个模型元素,该模型元素用于把输入项拥有的值赋给当前参考的变量(步骤S417)。例如,在图3中,如果新变量“价差设置日期”,而不是现有变量“可接受的价差”被指定为可个别定义的对象,那么输入接口变换单元14把与变量“价差设置日期”对应的输入项“价差设置日期”增加到新的输入接口中。另外,输入接口变换单元14增加从输入项“价差设置日期”到变量“价差设置日期”的箭头。
从而,完成由输入接口变换单元14执行的输入接口变换处理。
(输出接口变换)
图8是图解说明当输出接口变换单元15变换输出接口时进行的操作的流程图。同样地在图8中,为了便于举例说明,术语“接口”被简写成“I/F”。同时,在重复操作中当前参考的变量、关键字变量和输出接口被简单地描述成“参考变量”、“参考关键字变量”和“参考输出I/F”。
当开始操作时,输出接口变换单元15顺序参考所有输出接口,并重复步骤S502-S508(步骤S501-S509:Repeat 1)。
在Repeat 1中,输出接口变换单元15对当前参考的输出接口进行下述处理。在图3的例子中,输出接口变换单元15对输出接口113(报警产品)进行下述处理。
首先,输出接口变换单元15确定当前参考的输出接口的名称是否已被改变(步骤S502)。
如果确定输出接口的名称未被改变(步骤S502中“否”),则输出接口(初始输出接口)的名称被改变,从而创建一个不同的输出接口(新的输出接口)(步骤S503)。在图3和4的例子中,输出接口113(报警产品)被输出接口133(分店报警产品)替换。
随后,引用初始输出接口的名称的模型元素被改变成引用新输出接口的名称(步骤S504)。在图3和4的例子中,引用输出接口113(报警产品)的,出自关键字变量107(产品名称)和变量108(价格)的箭头及出自输入接口114(竞争者价格)中的输入项“公司名称”和“价格”的箭头被改变成引用输出接口133(分店报警产品)。
另一方面,如果确定输出接口的名称已被改变(步骤S502中“是”),那么处理进入步骤S505,而不改变该名称。
随后,输出接口变换单元15顺序参考新增加的关键字变量,并重复步骤S506和S507(步骤S505-S508:Repeat 2)。
在Repeat 2中,输出接口变换单元15对当前参考的关键字变量进行下述处理。在图3的例子中,由于提供了注解“依据分店名称识别”,因此对关键字变量106(分店名称)进行下述处理(参见图4)。
首先,与当前参考的关键字变量对应的输出项被增加到当前参考的输出接口中,即,被增加到通过改变接口名称在步骤S503中创建的新输出接口中(步骤S506)。在图4的例子中,在输出接口133(分店报警产品)中新提供了输出项“分店名称”。
随后,增加把当前参考的关键字变量拥有的值赋给输出项的模型元素(步骤S507)。在图4的例子中,提供从关键字变量106(分店名称)到输出项“分店名称”的箭头110。
随后,输出接口变换单元15顺序参考被指定为可个别定义对象的所有变量,并重复步骤S511-S519(步骤S510-S520:Repeat 3)。
在Repeat 3中,输出接口变换单元15对当前参考的变量进行下述处理。在图3的例子中,对被指定为可个别定义对象的变量109(容许的价差)进行下述处理。
即,输出接口变换单元15确定是否为当前参考的变量指定了输出接口(步骤S511)。上面的说明涉及可被用于把变量指定为可个别定义的对象,或者指定为识别关键字的注解。这里,利用注解能够指定变量的输出接口。
如果确定输出接口未被指定(步骤S511中“否”),那么处理进入步骤S520,并结束。在图3的例子中,对于被指定为可个别定义对象的变量109(容许的价差),没有指定输出接口。于是处理结束。
另一方面,如果指定了输出接口(步骤S511中“是”),那么输出接口变换单元15确定指定的输出接口是否是现有的输出接口(步骤S512)。例如,如果输出接口113(报警产品)被指定为在关于输入接口变换的上述说明中作为例子提及的变量“价差设置日期”的输出接口,那么步骤S512中的确定结果为“是”。另一方面,如果并不存在于设计模型中的输出接口被指定为变量“价差设置日期”的输出接口,那么步骤S512中的确定结果为“否”。当增加多个变量时,指定这样的新输出接口特别有用。例如,如果增加一些变量以及变量“价差设置日期”,那么这些变量所拥有的值的组合能够通过相同的输出接口被传给另一应用程序。
如果确定指定的输出接口是现有的输出接口(步骤S512中“是”),那么对应于当前参考的变量的输出项被增加到该输出接口中(步骤S513)。随后,增加用于把当前参考的变量所拥有的值赋给该输出项的模型元素(步骤S514)。
另一方面,如果确定指定的输出接口不是现有的输出接口(步骤S512中“否”),那么创建一个新的输出接口(步骤S515)。随后,输出接口变换单元15顺序参考所有关键字变量,并重复步骤S517和S518(步骤S516-S519:Repeat 4)。
在Repeat 4中,输出接口变换单元15对当前参考的关键字变量进行下述处理。
首先,把对应于当前参考的关键字变量对应的输出项增加到在步骤S515中创建的输出接口中(步骤S517)。随后,增加把当前参考的关键字变量所拥有的值赋给该输出项的模型元素(步骤S518)。例如,在图3中,如果并不存在于设计模型中的输出接口被指定为被指定成可个别定义对象的变量的输出接口,那么分别对应于关键字变量106(分店名称)和关键字变量107(产品名称)的输出项“分店名称”和“产品名称”被增加到新的输出接口中。
随后,进行和其中指定的输出接口是现有输出接口的情况相同的处理(步骤S513和S514)。
从而,完成由输出接口变换单元15进行的输出界面变换处理。
(新模型创建)
图9是图解说明当新模型创建单元16创建一个新模型(接口变换模型)时执行的操作的流程图。同样地在图9中,为了便于图解说明,术语“接口”被简写成“I/F”。同时,在重复操作中当前参考的变量、关键字变量、输入接口和输出项被分别简写成“参考变量”、“参考关键字变量”、“参考输入I/F”和“参考输出项”。
当开始操作时,新模型创建单元16顺序参考由图7的输入接口变换处理获得的输入接口,并重复步骤S602-S615(步骤S601-S616:Repeat 1)。
在Repeat 1中,新模型创建单元16对当前参考的输入接口进行下述处理。在图4的例子中,新模型创建单元16对由上述输入接口变换创建的输入接口131(分店价差设置)进行下述处理。
首先,新模型创建单元16创建一个初始输入接口,所述初始输入接口等同于当前参考输入接口所源于的输入接口(步骤S602)。在图3和4的例子中,输入接口131(分店价差设置)源于输入接口101(价差设置)。于是,新模型创建单元16创建等同于输入接口101(价差设置)的输入接口141(价差设置),如图5中所示。
另外,新模型创建单元16创建和当前参考的输入接口对应的输出接口(步骤S603)。这里,包括在当前参考的输入接口中的所有输入项作为输出项被包括在步骤S603中创建的输出接口中。在图5的例子中,创建和图4的输入接口131(分店价差设置)对应的输出接口143(分店价差设置)。
随后,新模型创建单元16顺序参考包括在步骤S603中创建的输出接口中的输出项,并重复步骤S605-S614(步骤S604-S615:Repeat 2)。
在Repeat 2中,新模型创建单元16对当前参考的输出项进行下述处理。在图5的例子中,对于包括在输出接口143(分店价差设置)中的输出项“分店名称”、“产品名称”、“价格”和“容许的价差”进行下述处理。
首先,新模型创建单元16确定在创建的初始输入接口中是否存在和当前参考的输出项对应的输入项(步骤S605)。
如果在初始输入接口中不存在这样的输入项(步骤S605中“否”),那么新模型创建单元16创建和当前参考的输出项对应的变量(步骤S606)。随后,增加用于把创建的变量所拥有的值赋给当前参考的输出项的模型元素(步骤S607)。在图5的例子中,在输出项“分店名称”、“产品名称”、“价格”和“容许的价差”中,只有输出项“分店名称”不存在于输入接口141(价差设置)中。于是,创建关键字变量148(分店名称)和指向输出项“分店名称”的箭头151。
另一方面,如果对应于当前参考的输出项的输入项存在于初始输入接口中(步骤S605中“是”),那么新模型创建单元16确定当前参考的输出项是否对应于关键字变量(步骤S608)。
如果确定输出项对应于关键字变量(步骤S608中“是”),那么新模型创建单元16创建该关键字变量(步骤S609)。随后,增加用于把创建的关键字变量所拥有的值赋给当前参考的输出项的模型元素(步骤S610)。在图5的例子中,在排除输出项“分店名称”之后剩余的输出项“产品名称”、“价格”和“容许的价差”中,只有输出项“产品名称”对应于关键字变量。于是,创建关键字变量149(产品名称)和指向输出项“产品名称”的箭头152。
如果确定当前参考的输出项并不对应于关键字变量(步骤S608中“否”),那么新模型创建单元16还确定该输出项是否对应于被指定为可个别定义对象的变量(步骤S611)。
如果确定该输出项不对应于被指定为可个别定义对象的变量(步骤S611中“否”),那么增加一个用于把包括在步骤S602中创建的输入接口中的输入项所拥有的值赋给包括在步骤S603中创建的输出接口中的输出项的模型元素(步骤S612)。在图5的例子中,在排除输出项“分店名称”和“产品名称”后剩余的输出项“价格”和“容许的价差”中,只有输出项“价格”不对应于被指定为可个别定义对象的变量。于是,创建从输入接口141(价差设置)中的输入项“价格”延伸到输出接口143(分店价差设置)中的输出项“价格”的箭头142。
另一方面,如果确定当前参考的输出项对应于被指定为可个别定义对象的变量(步骤S611中“是”),那么新模型创建单元16创建一个对应于该输出项的变量(步骤S613)。随后,增加一个用于把该变量所拥有的值赋给该输出项的模型元素(步骤S614)。在图5的例子中,在排除输出项“分店名称”和“产品名称”后剩余的输出项“价格”和“容许的价差”中,只有输出项“容许的价差”对应于被指定为可个别定义对象的变量。于是,创建变量150(容许的价差)和从变量150(容许的价差)延伸到输出项“容许的价差”的箭头153。
随后,新模型创建单元16创建一个用于接收个别信息的输入接口(个别输入接口)(步骤S617)。在图5的例子中,输入接口144(分店价差输入)被创建。
随后,新模型创建单元16顺序参考包括创建的关键字变量在内的所有变量,并重复步骤S619和S620(步骤S618-S621:Repeat 3)。
在Repeat 3中,新模型创建单元16对当前参考的变量进行下述处理。在图5的例子中,对关键字变量148(分店名称)、关键字变量149(产品名称)和变量150(容许的价差)进行下述处理。
首先,与当前参考的变量对应的输入项被增加到在步骤S617中创建的个别输出接口中(步骤S619)。随后,增加一个用于把该输入项拥有的值赋给当前参考的变量的模型元素(步骤S620)。在图5的例子中,输入项“分支名称”、“产品名称”和“容许的价差”被增加到输入接口144中(分店差价输入)。另外,创建从输入项“分店名称”到关键字变量148(分店名称)的箭头145,从输入项“产品名称”到关键字变量149(产品名称)的箭头146,和从输入项“容许的价差”到变量150(容许的价差)的箭头147。
从而,完成由新模型创建单元16进行的新模型创建处理。
下面将详细说明实现由变换部分12进行的输入接口变换、输出接口变换和新模型创建的数据处理。在本实施例中,设计模型存储单元13(参见图6)保存用于管理设计模型的数据(下面称为“管理数据”),当变换部分12更新所述管理数据时,所述设计模型被变换。
(初始状态下的管理数据)
图10表示在进行图7-9中图解说明的上述应用程序变换之前的状态下的管理数据。
图10(a)是管理接口以及其它模型元素的表格(下面称为“接口管理表”)。在本实施例中,接口管理表包含列“接口名称”、“类型”、“项目1”、“项目2”、......和“项目5”。
“接口名称”列保存接口的名称。
“类型”列保存指示对应接口是输入接口还是输出接口的信息。在图10(a)中,对于输入接口保存“I”,对于输出接口保存“O”。
“项目1”列、“项目2”列、......和“项目5”列分别保存包括在对应接口中的输入项或输出项。尽管为了便于图解说明,对于每个接口只表示了五个项目上,不过项目数并不局限于此。
下面给出具体说明。表示在进行应用程序变换之前的信息的图10(a)反映在图2中图解说明的接口的状态。
在图10(a)中,行No.1管理输入接口101(价差设置),并且表示该输入接口包含输入项“产品名称”、“价格”和“容许的价差”。
行No.2管理输入接口114(竞争者价格),并且表示该输入接口包含输入项“公司名称”、“产品名称”和“价格”。
行No.3管理输出接口113(报警产品),并且表示该输出接口包含输出项“产品名称”、“价格”、“公司名称”和“竞争者价格”。
图10(b)是管理变量连同其它模型元素的表格(下面称为“变量管理表”)。在本实施例中,变量管理表包含列“变量名称”和“关键字”。
“变量名称”列保存变量的名称。
“关键字”列保存指示对应变量是否是关键字变量的信息。在图10(b)中,对于关键字变量保存“O”,而如果对应变量不是关键字变量,那么使该字段保持空白。
下面给出具体说明。表示进行应用程序变换前的信息的图10(b)反映图2中图解说明的变量的状态。
在图10(b)中,行No.1管理关键字变量107(产品名称),并且表示该变量是关键字变量。
行No.2管理变量108(价格),并且表示该变量不是关键字变量。
同样地,行No.3管理变量109(容许的价差),并且表示该变量不是关键字变量。
图10(c)是管理由箭头表示的连接关系连同其它模型元素的表格(下面称为“连接管理表”)。在本实施例中,连接管理表包含列“源类型”、“源名称”、“目的地类型”和“目的地名称”。
“源类型”和“源名称”列保存模型元素的类型和名称,所述模型元素是箭头的发源地。例如,当“接口”被保存在“源类型”列中时,包括在所述源中的输入项以“(输入接口名称)。(输入项名称)”的形式被保存在“源名称”列中。
“目的地类型”和“目的地名称”列保存模型元素的类型和名称,所述模型元素是箭头指向的目的地。例如,当“接口”被保存在“目的地类型”列中时,包括在所述目的地中的输出项以“(输出接口名称)。(输出项名称)”的形式被保存在“目的地名称”列中。
下面给出具体说明。表示进行应用程序变换前的信息的图10(c)反映图2中图解说明的箭头的状态。
在图10(c)中,行No.1管理从输入接口101(价差设置)中的输入项“产品名称”延伸到关键字变量107(产品名称)的箭头103。
行No.2管理从输入接口101(价差设置)中的输入项“价格”延伸到变量108(价格)的箭头104。
行No.3管理从输入项“容许的价差”延伸到变量109(容许的价差)的箭头105。
另外,行No.4管理从关键字变量107“产品名称”延伸到输出接口113(报警产品)中的输出项“产品名称”的箭头111。
行No.5管理从变量108“价格”延伸到输出接口113(报警产品)中的输出项“价格”的箭头112。
此外,行No.6管理从输入接口114(竞争者价格)中的输入项“公司名称”延伸到输出接口113(报警产品)中的输出项“公司名称”的箭头118。
行No.7管理从输入接口114(竞争者价格)中的输入项“价格”延伸到输出接口113(报警产品)中的输出项“竞争者价格”的箭头119。
(对应于输入接口变换和输出接口变换的管理数据更新)
图11表示由分别在图7和8中图解说明的输入接口变换和输出接口变换产生的管理数据。在该输入和输出变换处理之前,图10中所示的管理数据被复制到临时存储器中,并在其中被更新。换句话说,在保持图10的状态的时候,管理数据的副本被变换成图11中所示的管理数据。
下面参考图10和11说明与图7中图解说明的输入接口变换对应的管理数据更新。
首先,在图7的步骤S401中,输入接口变换单元14把变量“容许的价差”识别为可个别定义的对象,并在步骤S402中确定变量“容许的价差”不是新增加的变量。在步骤S403中,按照下面的程序,输入接口变换单元14参考与当前参考的变量相关的输入接口。首先,在保存在临时存储器中的连接管理表中的各行中,输入接口变换单元14识别在“源类型”列中包含“接口”,在“目的地类型”列中包含“变量”,和在“目的地名称”列中包含“容许的价差”的一行。随后,输入接口变换单元14从该行中的“源名称”列中提取输入接口名称。在本例中,输入接口变换单元14识别图10(c)的行No.3,并提取“价差设置”作为输入接口名称。
随后,在步骤S404中,输入接口变换单元14按照下述程序,确定输入接口名称是否被改变。即,输入接口变换单元14确定在保存在临时存储器中的接口管理表中,是否存在在“接口名称”列中包含当前参考的接口的名称,另外在“类型”列中包含“I”的一行。如果存在这样的一行,那么输入接口变换单元14在步骤S404中确定输入接口的名称还未被改变。如果不存在这样的一行,那么输入接口变换单元14在步骤S404中确定输入接口的名称已被改变。在本例中,确定是否存在在“接口名称”列中包含“价差设置”,另外在“类型”列中包含“I”的一行。
如果在步骤S404中确定输入接口的名称未被改变,那么输入接口变换单元14在步骤S405中改变输入接口的名称。即,在保存在临时存储器中的接口管理表中,输入接口变换单元14把新的输入接口名称写入“接口名称”列中。在本例中,“价差设置”被改变成在图11(a)的行No.1中所示的“分店价差设置”。
随后,在步骤S406中,输入接口变换单元14改变引用初始输入接口的所有模型元素,以致它们引用新的输入接口。即,在保存在临时存储器中的连接管理表中,如果初始输入接口的名称被保存在“源名称”列中,那么输入接口变换单元14把该名称变成新的输入接口的名称。在本例中,“价差设置”被改变成在图11(c)的行No.2-4中所示的“分店价差设置”。
随后,在步骤S407中,输入接口变换单元14参考关键字变量“分店名称”。之后,在步骤S408中,输入接口变换单元14按照下述程序,把与当前参考的关键字变量对应的输入项增加到当前参考的输入接口中。首先,输入接口变换单元14把保存在临时存储器中的变量管理表增加一行。在该行中,输入接口变换单元14把“分店名称”和“O”分别保存在“变量”列和“关键字”列中。这产生图11(b)中所示的变量管理表。同时,在保存在临时存储器中的接口管理表中,输入接口变换单元14把“分店名称”保存在管理当前参考的输入接口的行中的列“项目1”-“项目5”任意之一中。在本例中,“分店名称”被保存在“项目1”列中,如图11(a)的行No.1中所示。
随后,在步骤S409中,输入接口变换单元14增加用于把输入项所拥有的值赋给关键字变量的模型元素。即,首先,输入接口变换单元14把保存在临时存储器中的连接管理表增加一行。随后,在增加的一行中,输入接口变换单元14在“源类型”列中保存“接口”,在“源名称”列中保存在步骤S408中增加的输入项的名称,在“目的地类型”列中保存“变量”,在“目的地名称”列中保存当前参考的关键字变量的名称。在本例中,“分店价差设置。分店名称”被保存在“源名称”列中,“分店名称”被保存在“目的地名称”列中,如图11(c)的行No.1中所示。
下面参考图10和11说明对应于图8中图解说明的输出接口变换的管理数据更新。
首先,在图8的步骤S501中,输出接口变换单元15参考输出接口“报警产品”。
随后,在步骤S502中,输出接口变换单元15按照下述程序确定输出接口名称是否已被改变。首先,输出接口变换单元15在保存在临时存储器中的接口管理表中,是否存在在“接口名称”列中包含当前参考的接口的名称,另外在“类型”列中包含“O”的一行。如果存在这样的一行,那么输出接口变换单元15在步骤S502中确定输出接口的名称未被改变。如果不存在这样的一行,那么输出接口变换单元15在步骤S502中确定输出接口的名称已被改变。在本例中,确定是否存在在“接口名称”列中包含“报警产品”,另外在“类型”列中包含“O”的一行。
如果在步骤S502中确定输出接口的名称未被改变,那么输出接口变换单元15在步骤S503中改变输出接口的名称。即,在保存在临时存储器中的接口管理表中,输出接口变换单元15把新的输出接口名称写入“接口名称”列中。在本例中,“报警产品”被改变成图11(a)的行No.3中所示的“分店报警产品”。
随后,在步骤S504中,输出接口变换单元15改变引用初始输出接口的所有模型元素,以致它们引用新的输出接口。即,在保存在临时存储器中的连接管理表中,如果初始输出接口的名称被保存在“目的地名称”列中,那么输出接口变换单元15把该名称变成新的输出接口的名称。在本例中,“报警产品”被改变成图11(c)的行No.6-9中所示的“分店报警产品”。
接下来,在步骤S505,输出接口变换单元15参考关键字变量“分店名称”。随后,在步骤S506中,输出接口变换单元15对当前参考的输出接口增加与当前参考的关键字变量对应的输出项。即,在保存在临时存储器中的接口管理表中,输出接口变换单元15把“分店名称”保存在管理当前参考的输出接口的一行中的列“项目1”-“项目5”任意之一中。在本例中,“分店名称”被保存在“项目1”列中,如图11(a)的行No.3中所示。
随后,在步骤S507中,输出接口变换单元15增加用于把关键字变量所拥有的值赋给输出项的模型元素。即,首先,输出接口变换单元15对保存在临时存储器中的连接管理表增加一行。随后,在增加的一行中,输出接口变换单元15把“变量”保存在“源类型”列中,把当前参考的关键字变量的名称保存在“源名称”列中,把“接口”保存在“目的地类型”列中,并把在步骤S506中增加的输出项的名称保存在“目的地名称”列中。在本例中,“分店名称”被保存在“源名称”列中,“分店报警产品。分店名称”被保存在“目的地名称”列中,如图11(c)的行No.5中所示。
(对应于新模型创建的管理数据产生)
图12表示起因于图9中图解说明的新模型创建的管理数据。
首先,在图9的步骤S601中,新模型创建单元16引用已被改变的输入接口。即,从图11(a)的各行中,新模型创建单元16识别在“类型”列中包含“I”,另外在“接口名称”列中包含与保存在图10(a)的对应行中的名称不同的名称的一行。在本例中,新模型创建单元16识别图11(a)的行No.1中的“分店价差设置”。
随后,在步骤S602中,新模型创建单元16创建一个初始输入接口,所述初始输入接口等同于当前引用的输入接口所源于的输入接口。即,首先,从图10(a)的各行中,新模型创建单元16识别与在步骤S601中识别的图11(a)的一行对应的一行。随后,新模型创建单元16对新模型的接口管理表增加内容与所识别的一行相同的一行。在本例中,识别出图10(a)的行No.1,增加图12(a)的行No.2。
随后,在步骤S603中,新模型创建单元16创建与当前引用的输入接口对应的输出接口。即,在步骤S601中引用的图11(a)的一行中,新模型创建单元16把“类型”列中的“I”改变成“O”,并把该行增加到新模型的接口管理表中。本例中,图11(a)的行No.1被修改,并被增加为图12(a)的行No.3。
之后,在步骤S604中,新模型创建单元16引用包括在步骤S603中创建的输出接口中的输出项。即,新模型创建单元16引用在步骤S603中增加到接口管理表中的那一行中的每个项目。在本例中,新模型创建单元16引用保存在图12(a)的行No.3中的列“项目1”-“项目4”中的输出项“分店名称”、“产品名称”、“价格”和“容许的价差”。
随后,在步骤S605中,新模型创建单元16确定与当前引用的输出项对应的输入项是否存在于初始输入接口中。即,在步骤S603中增加到接口管理表的那一行中的各个项目之中,新模型创建单元16识别并不存在于在步骤S602中增加到接口管理表的那一行中的项目。在本例中,在图12(a)的行No.3中的输出项“分店名称”、“产品名称”、“价格”和“容许的价差”之中,并不存在于图12(a)的行No.2中的输出项“分店名称”被识别出。
随后,在步骤S606中,新模型创建单元16按照下述程序,创建一个与该输出项对应的变量。首先,新模型创建单元16参考图11(c),从而识别出从对应于该输出项的输入项向其赋值的变量。随后,根据关于在图11(b)的表格中管理的该变量的信息,新模型创建单元16对图12(b)的表格增加一行。在本例中,在图11(c)的行No.1中识别出变量“分店名称”,与图11(b)的行No.1相同的一行作为行No.1被增加到图12(b)的表格中。
接下来,在步骤S607中,新模型创建单元16创建一个用于把该变量拥有的值赋给输出项的模型元素。即,首先,新模型创建单元16在新模型的连接管理表中增加一行。随后,在增加的一行中,新模型创建单元16把“变量”保存在“源类型”列中,把在步骤S606中增加的变量的名称保存在“源名称”列中,把“接口”保存在“目的地类型”列中,并把当前参考的输出项的名称保存在“目的地名称”列中。在本例中,“分店名称”被保存在“源名称”列中,“分店价差设置。分店名称”被保存在“目的地名称”列中,如图12(c)的行No.4中所示。
在步骤S608中,新模型创建单元16按照下述程序,确定当前参考的输出项是否对应于关键字变量。首先,在步骤S603中增加到接口管理表中的一行中的项目中,新模型创建单元16识别除在步骤S605中识别的输出项之外的项目。随后,参考图11(c),新模型创建单元16从与这些输出项对应的输入项中,识别被赋值的变量。随后,从图11(b)中所示的识别的变量中,新模型创建单元16识别在“关键字”列中具有“O”的变量。在本例中,从图12(a)的行No.3中的输出项“分店名称”、“产品名称”、“价格”和“容许的价差”中排除在步骤S605中识别的输出项“分店名称”,剩余的输出项“产品名称”、“价格”和“容许的价差”被识别。随后,图11(c)的行No.2-4中的变量“产品名称”、“价格”和“容许的价差”被识别。从图11(b)的行No.2可看出,变量“产品名称”是关键字变量。
在步骤S609中,新模型创建单元16创建该关键字变量。即,根据关于在图11(b)中管理的该变量的信息,新模型创建单元16对图12(b)的表格增加一行。在本例中,和图11(b)的行No.2相同的一行作为行No.2被增加到图12(b)中。
随后,在步骤S610中,新模型创建单元16创建一个把该关键字变量所拥有的值赋给输出项的模型元素。即,首先,新模型创建单元16对新模型的连接管理表增加一行。随后,在增加的一行中,新模型创建单元16把“变量”保存在“源类型”列中,把在步骤S609中增加的变量的名称保存在“源名称”列中,把“接口”保存在“目的地类型”列中,并把当前引用的输出项的名称保存在“目的地名称”列中。在本例中,“产品名称”被保存在“源名称”列中,“分店价差设置。产品名称”被保存在“目的地名称”列中,如图12(c)的行No.5中所示。
在步骤S611中,新模型创建单元16按照下述程序确定当前引用的输出项是否对应于被指定为可个别定义对象的变量。首先,在步骤S603中增加到接口管理表的一行中的各个项目之中,新模型创建单元16识别除在步骤S605和S608中识别的输出项之外的项目。随后,参考图11(c),新模型创建单元16识别从对应于这些输出项的输入项向其赋值的变量。随后,新模型创建单元16确定注解检测单元11(参见图6)是否已向这些变量中的每一个传送指示该变量是可个别定义对象的信息。在本例中,从图12(a)的行No.3中的输出项“分店名称”、“产品名称”、“价格”和“容许的价差”中排除在步骤S605和S608中识别的输出项“分店名称”和“产品名称”,剩余的输出项“价格”和“容许的价差”被识别。随后从图11(c)的行No.3和4中,识别出变量“价格”和“容许的价差”。随后,根据从注解检测单元11传来的信息,可看出变量“价格”不是可个别定义的对象,变量“容许的价差”是可个别定义的对象。
在步骤S612中,新模型创建单元16创建一个把初始输入接口中的输入项所拥有的值赋给对应输出项的模型元素。即,首先,新模型创建单元16对新模型的连接管理表增加一行。随后,在增加的一行中,新模型创建单元16把“接口”保存在“源类型”列中,把当前引用的输入项的名称保存在“源名称”列中,把“接口”保存在“目的地类型”列中,并把当前引用的输出项的名称保存在“目的地名称”列中。在本例中,“价差设置。价格”被保存在“源名称”列中,“分店价差设置。价格”被保存在“目的地名称”列中,如图12(c)的行No.7中所示。
在步骤S613中,新模型创建单元16创建一个被指定成可个别定义对象的变量。即,根据关于在图11(b)的表格中管理的该变量的信息,新模型创建单元16对图12(b)的表格增加一行。在本例中,和图11(b)的行No.4相同的一行作为行No.3被增加到图12(b)的表格中。
随后,在步骤S614中,新模型创建单元16创建一个把该变量所拥有的值赋给对应输出项的模型元素。即,首先,新模型创建单元16对该新模型的连接管理表增加一行。随后,在增加的一行中,新模型创建单元16把“变量”保存在“源类型”列中,把在步骤S613中增加的变量的名称保存在“源名称”列中,把“接口”保存在“目的地类型”列中,把当前引用的输出项的名称保存在“目的地名称”列中。在本例中,“容许的价差”被保存在“源名称”列中,“分店价差设置。容许的价差”被保存在“目的地名称”列中,如图12(c)的行No.6中所示。
随后,新模型创建单元16在步骤S617中创建一个个别输入接口。即,新模型创建单元16对新模型的接口管理表增加新的一行。在本例中,增加的一行是图12(a)的行No.1。在该行中,“分店价差输入”和“I”被分别保存在“接口名称”列和“类型”列中。
随后,在步骤S618中,新模型创建单元16顺序引用所有创建的变量。即,新模型创建单元16引用在图12(b)的表格中管理的变量。在本例中,新模型创建单元16引用变量“分店名称”、“产品名称”和“容许的价差”。
在步骤S619中,新模型创建单元16对所述个别输入界面增加对应于当前引用变量的输入项。即,新模型创建单元16把一个项目保存于在步骤S617增加到接口管理表的行中。在本例中,在图12(a)的行No.1中,新模型创建单元16把“分店名称”、“产品名称”和“容许的价差”分别保存在“项目1”列、“项目2”列和“项目3”列中。
另外,在步骤S620中,新模型创建单元16创建一个把这些输入项中的每一个所拥有的值赋给对应变量的模型元素。即,首先,新模型创建单元16对新模型的连接管理表增加一行。随后,在增加的一行中,新模型创建单元16把“接口”保存在“源类型”列中,把在步骤S619中保存的输入项的名称保存在“源名称”列中,把“变量”保存在“目的地类型”列中,并把当前引用的变量的名称保存在“目的地名称”列中。在本例中,“分店价差输入。分店名称”、“分店价差输入。产品名称”和“分店价差输入。容许的价差”被保存在“源名称”列中。同时,它们的对应“分店名称”、“产品名称”和“容许的价差”被保存在“目的地名称”列中。这产生图12(c)的行No.1-3。
在本实施例中,初始设计模型被变换成能够单独使用的设计模型,在输入方产生用于个别控制的设计模型。但是,用于个别控制的设计模型也可在输出方产生。这种情况下,通过执行下述处理,设计模型可被用作产生可被个别使用的设计模型的模板。即,首先,从被指定为可个别定义对象的变量接收值的初始输出接口的名称被改变,从而创建一个新的输出接口。随后,通过从新的输出接口接收值和增加个别信息,创建用于调用初始输出接口的个别控制模型(新模型)。
在本实施例中,在构成应用程序的几种元素之中,变量被指定成可个别定义的对象或者被指定成识别关键字。但是,本发明并不局限于此。即,可类似地指定应用程序的其它类型的元素。例如,可对每个分店单独设置条件表达式116。
虽然在本实施例中,在设计模型中指定可个别定义的对象和识别关键字,不过本发明并不局限于此。例如,应用程序的源代码被显示,可在源代码中指定可个别定义的对象和识别关键字。
本发明可用硬件、软件、或者硬件和软件的组合来实现。
另外,本发明可被具体化为计算机、数据处理系统或者计算机程序,所述计算机程序可被保存在计算机可读介质上并被分发。所述介质可以是电、磁、光、电磁、红外或半导体系统(或装置或设备)或传播介质。计算机可读介质的例子包括半导体或固态存储装置、磁带、可拆卸的计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。目前可用的光盘的例子包括光盘只读存储器(CD-ROM)、光盘读/写(CD-R/W)和数字通用光盘(DVD)。
如上所述,在本实施例中,借助适当的注解,通过简单地把一个元素指定成可个别定义的对象,另外把另一元素指定成识别关键字,初始应用程序可被变换成能够按照个别情形使用的应用程序。这能够实现下述应用程序的开发。即,首先,系统开发知识丰富的用户创建并不适合于任意具体情形的固定应用程序。随后,熟悉个别情形的用户指定个别信息,例如阈值、输出目的地和待保持的变量的添加时机,随后变换初始的应用程序。从而,在本实施例中,易于按照个别情形修改现有的应用程序。
另外,本发明可提供下述效果。
首先,由于并不直接修改现有应用程序,因此能够保持现有应用程序。
其次,由于使用中间人模式来指定应用程序的修改,因此能够以简单的修改逻辑修改应用程序。
另外,给出注解的用户必须考虑到上述方面。
同时,能够在不使用注解的添加作为触发器的情况下实现本实施例。换句话说,可以使用任何方法,只要能够把一个元素指定成可个别定义的对象或者指定成识别关键字。
按照惯例,能够对单一应用程序的一部分应用诸如面向方面或者mixin class之类的技术。但是,在通过组合多个独立的应用程序创建一个系统的环境,比如SOA中,在不重新设计应用程序的情况下不能修改该应用程序。另一方面,借助本实施例,能够在不重新设计应用程序的情况下修改该应用程序。

Claims (11)

1、一种变换应用程序的设备,所述设备包括:
显示单元,被配置为显示构成应用程序的元素;
检测单元,被配置为检测显示单元上的指示,所述指示指出使第一元素应付个别情形,所述个别情形由第二元素识别;和
产生单元,被配置为产生部分的所述应用程序,所述部分应用程序使第一元素应付由所述第二元素识别的个别情形。
2、按照权利要求1所述的设备,其中显示单元显示构成应用程序的设计模型的模型元素作为元素;和
响应在与第一元素对应的模型元素上进行的用户操作,检测单元检测使第一元素应付所述个别情形的指示。
3、按照权利要求1所述的设备,其中检测单元通过识别与所述指示的内容对应的注解对象在显示单元上的位置,检测显示单元上的指示。
4、一种变换应用程序的设备,所述设备包括:
显示单元,被配置为显示在应用程序中使用的变量;
检测单元,被配置为检测显示单元上的指示,所述指示指出使第一变量保存对应于个别情形的值,所述个别情形由第二变量识别;和
产生单元,被配置为产生部分的所述应用程序,所述部分应用程序使第一变量保存与由第二变量识别的个别情形对应的值。
5、按照权利要求4所述的设备,其中产生单元产生接口,作为所述部分的应用程序,每个接口能够把值传给第一或第二变量,或者从第一或第二变量传送值。
6、按照权利要求4所述的设备,其中产生单元产生新的输入接口,代替从外部接收将被保存在第一变量中的值的初始输入接口,所述新的输入接口从外部接收将被保存在第一变量中的值以及将被保存在第二变量中的值。
7、按照权利要求6所述的设备,其中产生单元产生处理部分,所述处理部分截取初始输入接口从外部接收的、并且将被保存在第一变量中的值,并把由另一输入接口从外部接收的、并且将被保存在第一变量中的值连同将被保存在第二变量中的值一起传送给新的输入接口。
8、按照权利要求4所述的设备,其中产生单元产生新的输出接口,代替把保存在第一变量中的值传给外部的初始输出接口,所述新的输出接口把保存在第一变量中的值连同保存在第二变量中的值一起传给外部。
9、一种变换应用程序的方法,所述方法包括下述步骤:
显示步骤,用于在显示单元上显示在应用程序中使用的变量;
检测步骤,用于检测显示单元上的指示,所述指示指出使第一变量保存对应于个别情形的值,所述个别情形由第二变量识别;
读取步骤,用于从保存管理应用程序的元素的数据的存储单元中读取数据,所述元素用于持有待保存在第一变量中的值;和
存储步骤,用于在存储单元中进行修改和存储,从而应用程序的所述元素能够持有与由第二变量识别的个别情形对应的值作为待保存在第一变量中的值。
10、按照权利要求9所述的方法,其中在读取步骤中,从保存把用于持有待保存在第一变量中的值的输入项与包括所述输入项的输入接口关联起来的数据的存储单元中读取数据;和
在存储步骤中,通过还使用于持有待保存在第二变量中的值的输入项与输入接口相关联而被修改的数据被保存在存储单元中。
11、按照权利要求9所述的方法,其中在读取步骤中,管理第一变量的数据被从保存该数据的存储单元中读取;和
在存储步骤中,已被修改、以便管理第二变量的数据被保存在存储单元中。
CNB200710141181XA 2006-11-01 2007-08-13 应用程序的变换设备和变换方法 Expired - Fee Related CN100533377C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006298055 2006-11-01
JP2006298055A JP4629646B2 (ja) 2006-11-01 2006-11-01 アプリケーションプログラムを生成するための装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
CN101174209A CN101174209A (zh) 2008-05-07
CN100533377C true CN100533377C (zh) 2009-08-26

Family

ID=39331368

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200710141181XA Expired - Fee Related CN100533377C (zh) 2006-11-01 2007-08-13 应用程序的变换设备和变换方法

Country Status (3)

Country Link
US (1) US8140305B2 (zh)
JP (1) JP4629646B2 (zh)
CN (1) CN100533377C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9116708B2 (en) 2010-03-05 2015-08-25 Nec Corporation Program creation support apparatus, program, and information system
US20120078809A1 (en) * 2010-09-27 2012-03-29 Sap Ag Integrating sub-processes in business process modeling notation processes
CN105739970B (zh) * 2016-01-20 2019-09-20 北京京东尚科信息技术有限公司 数据映射为自定义类对象的方法和装置
JP7315819B2 (ja) * 2019-03-26 2023-07-27 株式会社ぐるなび 決済支援システム、決済支援方法、及び決済支援プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020296A (ja) * 1998-07-07 2000-01-21 Matsushita Electric Ind Co Ltd プログラム変更支援装置
US6598225B1 (en) * 1999-03-29 2003-07-22 International Business Machines Corporation System, method, and program for utilizing a software state machine carrying out the process flow of a software program

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537529A (en) * 1993-04-22 1996-07-16 Apple Computer, Inc. Apparatus and method for creating versions of computer models and creating communications incorporating created versions therefrom
US6513046B1 (en) * 1999-12-15 2003-01-28 Tangis Corporation Storing and recalling information to augment human memories
US8044793B2 (en) * 2001-03-01 2011-10-25 Fisher-Rosemount Systems, Inc. Integrated device alerts in a process control system
US6340977B1 (en) * 1999-05-07 2002-01-22 Philip Lui System and method for dynamic assistance in software applications using behavior and host application models
US6560633B1 (en) * 1999-06-10 2003-05-06 Bow Street Software, Inc. Method for creating network services by transforming an XML runtime model in response to an iterative input process
US7243054B2 (en) * 1999-07-14 2007-07-10 Wireless Valley Communications, Inc. Method and system for displaying network performance, cost, maintenance, and infrastructure wiring diagram
US6976246B1 (en) * 2000-05-26 2005-12-13 Microsoft Corporation Finite state model-based testing user interface
US7818286B2 (en) * 2001-01-22 2010-10-19 Sas Institute Inc. Computer-implemented dimension engine
AU2002317119A1 (en) * 2001-07-06 2003-01-21 Angoss Software Corporation A method and system for the visual presentation of data mining models
US7461382B2 (en) * 2002-09-30 2008-12-02 Sap Ag Event handling with action instances for event-driven software application
US20040111702A1 (en) * 2002-12-10 2004-06-10 Chan Kin Ming Method and apparatus for visual programming
US7324931B1 (en) * 2003-11-17 2008-01-29 The Mathworks, Inc. Conversion of model components into references
US7412367B1 (en) * 2003-11-17 2008-08-12 The Mathworks, Inc. Transparent subsystem links
US20050203718A1 (en) * 2004-03-12 2005-09-15 Carek Rick A. Knowledge management system with integrated product document management for computer-aided design modeling
JP4100630B2 (ja) * 2004-05-14 2008-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション Uml設計方法
US7913222B2 (en) * 2004-09-20 2011-03-22 The Mathworks, Inc. Automatic generation of code for component interfaces in models
US7861218B2 (en) * 2004-10-28 2010-12-28 International Business Machines Corporation Computer method and system for enforcing derived union constraints
US7464010B2 (en) * 2004-12-21 2008-12-09 Electronics And Telecommunications Research Institute User interface design and evaluation system and hand interaction based user interface design and evaluation system
US7958454B2 (en) * 2005-04-19 2011-06-07 The Mathworks, Inc. Graphical state machine based programming for a graphical user interface
US8447580B2 (en) * 2005-05-31 2013-05-21 The Mathworks, Inc. Modeling of a multiprocessor system
US7950004B2 (en) * 2005-10-21 2011-05-24 Siemens Corporation Devices systems and methods for testing software
US8554825B2 (en) * 2005-12-22 2013-10-08 Telcordia Technologies, Inc. Method for systematic modeling and evaluation of application flows
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20070288885A1 (en) * 2006-05-17 2007-12-13 The Mathworks, Inc. Action languages for unified modeling language model

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020296A (ja) * 1998-07-07 2000-01-21 Matsushita Electric Ind Co Ltd プログラム変更支援装置
US6598225B1 (en) * 1999-03-29 2003-07-22 International Business Machines Corporation System, method, and program for utilizing a software state machine carrying out the process flow of a software program

Also Published As

Publication number Publication date
US20080103752A1 (en) 2008-05-01
US8140305B2 (en) 2012-03-20
JP4629646B2 (ja) 2011-02-09
JP2008117067A (ja) 2008-05-22
CN101174209A (zh) 2008-05-07

Similar Documents

Publication Publication Date Title
US8918377B2 (en) Multiple source data management using a conflict rule
CN100498695C (zh) 工作流进度表创作工具
US8171450B2 (en) System and apparatus for graphically building business rule conditions
KR20060110293A (ko) 제품 데이터 교환
US7644357B2 (en) Data conversion system
CN100514302C (zh) 多源、多目的地数据传输
CN100533377C (zh) 应用程序的变换设备和变换方法
CN104574044A (zh) 办公自动化中发起任务的方法与办公自动化系统
US20020054171A1 (en) Method and apparatus for exploring a multi-element design through user directed selective rendering
US9535670B2 (en) Extensible context based user interface simplification
JP2008234215A (ja) ワークフロー管理システム
US20110106712A1 (en) Cost-Aware Service Aggregation
CN107679222A (zh) 图片处理方法、移动终端及计算机可读存储介质
CN100403766C (zh) 用于执行文档处理操作的选择性下载的系统和方法
WO1999049387A1 (fr) Dispositif et procede servant a produire un logiciel
CN112204527A (zh) 用于处理多工程系统环境中的工程数据的方法和系统
WO2019146233A1 (ja) 業務プロセス設計支援方法及び業務プロセス設計支援装置
JP2023110808A (ja) スマートタグ基盤の業務処理装置及び業務処理方法
JP2000172770A (ja) システム間連携装置および方法
CN103970790A (zh) 报表组合方法及设备
JP2007058703A (ja) プロジェクト管理システム
CN101442503B (zh) 处理组件更新消息的方法和设备
US20060095469A1 (en) System and method for facilitating peer review of a deliverable
CN112328680B (zh) 一种电子元器件数据的处理方法、数据接口及管理系统
EP0358860B1 (en) Apparatus and method for processing data corresponding to labels

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: 20090826

CF01 Termination of patent right due to non-payment of annual fee