CN1301362A - 软件生成装置和软件生成方法 - Google Patents

软件生成装置和软件生成方法 Download PDF

Info

Publication number
CN1301362A
CN1301362A CN99806399A CN99806399A CN1301362A CN 1301362 A CN1301362 A CN 1301362A CN 99806399 A CN99806399 A CN 99806399A CN 99806399 A CN99806399 A CN 99806399A CN 1301362 A CN1301362 A CN 1301362A
Authority
CN
China
Prior art keywords
word
mentioned
chassis
data field
picture
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
CN99806399A
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.)
Computer Software Methodology And Technology Research Association
INFORMATION SYSTEM DEVELOPMENT INST
Original Assignee
Computer Software Methodology And Technology Research Association
INFORMATION SYSTEM DEVELOPMENT INST
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 Computer Software Methodology And Technology Research Association, INFORMATION SYSTEM DEVELOPMENT INST filed Critical Computer Software Methodology And Technology Research Association
Publication of CN1301362A publication Critical patent/CN1301362A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Abstract

在所有领域的软件中,为了不必依靠SE的经验、知识、应用能力等人的能力,只靠机器算法就能自动生成软件,根据LYEE理论将定义体标识符、单词标识符、处理路径和用来导出设定值的导出数据预先存储在未定义的WO4拓扑要素、WO4逻辑要素、WO2逻辑要素、WO3拓扑要素、WO3逻辑要素和台车函数中,对每一个单词输入定义体标识符、单词标识符、处理路径和导出数据,把对每一个单词输入的定义体标识符、单词标识符、处理路径和导出数据填入未定义的WO4拓扑要素、WO4逻辑要素、WO2逻辑要素、WO3拓扑要素、WO3逻辑要素和台车函数的规定位置。本发明对软件的生成和维护都很有用。

Description

软件生成装置和软件生成方法
技术领域
本发明涉及适用于业务用软件和游戏用软件及其它各领域的软件的软件生成装置和软件生成方法。
背景技术
以往软件的作成都经过要件的定义、基本设计、详细设计、编程、编译、程序测试和综合测试。这一连串的工作都靠SE(系统工程师)的经验、知识、应用能力等个人能力进行。
因此,现实上想要自动生成软件的想法本身是欠考虑的,可以说其目的在该领域中是不明确的。
尽管这样,本发明的目的在于提供一种软件生成装置和软件生成方法,不必依靠SE的经验、知识、应用能力等人的能力,只靠机器算法就能自动生成软件。
本发明是使上述想法成为可能的。这是以Lyee的定理为前提才能实现的。Lyee能决定普遍软件,即对于要求现象(客户的软件开发要求)唯一存在的软件。因此我们能提供用它能够提高生产效率的,使产品质量一致的,提高维护性的软件生成装置,以及软件生成方法。
本发明是为了达到上述目的而提出的。
发明的公开
本发明提供一种软件生成装置,具备下述结构:
(a)具有对存在于生产软件所必要的画面、文件或帐单(以下,称画面、文件或帐单为‘定义体’)中的所有的单词作成的、且分别对定义体和单词附加了定义体标识符和单词标识符的、用来进行画面编辑的W04拓扑要素和W04逻辑要素、用来决定处理路径的W02逻辑要素和用来进行文件更新的数据编辑的W03拓扑要素和W03逻辑要素的结构,其中:
(a-1)W04拓扑要素的作用是:在相同单词的W03的数据区不为‘空’的情况下,将该W04的该数据区设定为上述相同单词的W03的数据区的值,
(a-2)W04逻辑要素的作用是:在该单词的W04的数据区不为‘空’的情况下,当相同单词的W02或W03的不成立标志置位时,在使不成立代码置位的同时使不成立标志复位,当该单词的W04的数据区为‘空’时,从该单词以外的单词的W04的数据区导出该单词的设定值,并将该设定值设定在该单词的W04的数据区内,在不能导出上述设定值的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立代码置位,
(a-3)W02逻辑要素的作用是:当该单词的W02的数据区不为‘空’时,设定处理路径标志,在处理路径标志设定不成立的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立标志置位,
(a-4)W03拓扑要素的作用是:在相同单词的W02的数据区不为‘空’的情况下,将该W03的该数据区设定为上述相同单词的W02的数据区的值,
(a-5)W03逻辑要素的作用是:在该单词的W03的数据区为‘空’的情况下,从该单词以外的单词的W03的数据区导出该单词的设定值,并将该设定值设定在该单词的W03的数据区内,在不能导出上述设定值的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立标志置位;
(b)具有在对每一个画面将存在于该画面上的单词的各W04拓扑要素和W04逻辑要素按拓扑要素群、逻辑要素群的顺序整理成可执行的元素序列的同时编入各单词的各W04数据区的W04台车、在对每一个画面将存在于该画面上的单词的各W02逻辑要素整理成可执行的元素序列的同时编入各单词的各W02数据区的W02台车和在将存在于系统内的全部定义体上的单词的各W03拓扑要素和W03逻辑要素按拓扑要素群、逻辑要素群的顺序整理成可执行的元素序列的同时编入各单词的各W03数据区的W03台车的台车群;
(c)当在执行各台车内的各拓扑要素和逻辑要素的同时该台车内的台车再起动标志置位时、使其再执行该台车内的各拓扑要素和逻辑要素的结构;
(d)根据上述W04台车的执行将画面数据发送到计算机的画面上、接收对该发送画面的回答画面数据并执行上述W02台车、根据该W02台车的上述处理路径标志决定下一个处理路径、根据已决定的处理路径执行上述W03台车的结构,
其特征在于,具有:
将上述定义体标识符、上述单词标识符、上述处理路径和用来导出上述设定值的导出数据未定义的W04拓扑要素、W04逻辑要素、W02逻辑要素、W03拓扑要素和上述(b)的台车群及(c)的结构预先存储起来的结构;
对每一个上述单词输入上述定义体标识符、上述单词标识符、上述处理路径和上述导出数据的结构;
把上述对每一个上述单词输入的上述定义体标识符、上述单词标识符、上述处理路径和上述导出数据填入上述已存储的未定义的W04拓扑要素、W04逻辑要素、W02逻辑要素、W03拓扑要素和上述(b)的台车群及(c)的结构的规定位置的结构。
本发明提供一种软件生成方法,具备下述结构:
(a)具有对存在于生产软件所必要的画面、文件或帐单(以下,称画面、文件或帐单为‘定义体’)中的所有的单词作成的、且分别对定义体和单词附加了定义体标识符和单词标识符的、用来进行画面编辑的W04拓扑要素和W04逻辑要素、用来决定处理路径的W02逻辑要素和用来进行文件更新的数据编辑的W03拓扑要素和W03逻辑要素的结构,其中:
(a-1)W04拓扑要素的作用是:在相同单词的W03的数据区不为‘空’的情况下,将该W04的该数据区设定为上述相同单词的W03的数据区的值,
(a-2)W04逻辑要素的作用是:在该单词的W04的数据区不为‘空’的情况下,当相同单词的W02或W03的不成立标志置位时,在使不成立代码置位的同时使不成立标志复位,当该单词的W04的数据区为‘空’时,从该单词以外的单词的W04的数据区导出该单词的设定值,并将该设定值设定在该单词的W04的数据区内,在不能导出上述设定值的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立代码置位,
(a-3)W02逻辑要素的作用是:当该单词的W02的数据区不为‘空’时,设定处理路径标志,在处理路径标志设定不成立的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立标志置位,
(a-4)W03拓扑要素的作用是:在相同单词的W02的数据区不为‘空’的情况下,将该W03的该数据区设定为上述相同单词的W02的数据区的值,
(a-5)W03逻辑要素的作用是:在该单词的W03的数据区为‘空’的情况下,从该单词以外的单词的W03的数据区导出该单词的设定值,并将该设定值设定在该单词的W03的数据区内,在不能导出上述设定值的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立标志置位;
(b)具有在对每一个画面将存在于该画面上的单词的各W04拓扑要素和W04逻辑要素按拓扑要素群、逻辑要素群的顺序整理成可执行的元素序列的同时编入各单词的各W04数据区的W04台车、在对每一个画面将存在于该画面上的单词的各W02逻辑要素整理成可执行的元素序列的同时编入各单词的各W02数据区的W02台车和在将存在于系统内的全部定义体上的单词的各W03拓扑要素和W03逻辑要素按拓扑要素群、逻辑要素群的顺序整理成可执行的元素序列的同时编入各单词的各W03数据区的W03台车的台车群;
(c)当在执行各台车内的各拓扑要素和逻辑要素的同时该台车内的台车再起动标志置位时、使其再执行该台车内的各拓扑要素和逻辑要素的结构;
(d)根据上述W04台车的执行将画面数据发送到计算机的画面上、接收对该发送画面的回答画面数据并执行上述W02台车、根据该W02台车的上述处理路径标志决定下一个处理路径、根据已决定的处理路径执行上述W03台车的结构,
其特征在于:
将上述定义体标识符、上述单词标识符、上述处理路径和用来导出上述设定值的导出数据未定义的W04拓扑要素、W04逻辑要素、W02逻辑要素、W03拓扑要素和上述(b)的台车群及(c)的结构预先存储起来;
对每一个上述单词输入上述定义体标识符、上述单词标识符、上述处理路径和上述导出数据;
把上述对每一个上述单词输入的上述定义体标识符、上述单词标识符、上述处理路径和上述导出数据填入上述已存储的未定义的W04拓扑要素、W04逻辑要素、W02逻辑要素、W03拓扑要素和上述(b)的台车群及(c)的结构的规定位置。
本发明者已经提出了一种新的软件生产方法(一件是国际公开号WO97/16784,另一件是国际申请号PCT/JP97/01492)。它称之为LYEE(软件生产的管理方法)。
LYEE定理是:可以使和软件要件同步的唯一的逻辑函数在计算机空间内成立。若设该逻辑函数为T0,则计算机空间可由T0 n(n≥1)表示。称T0为剧本函数。
这里,剧本函数是
T00({Φp{LE、i、W02}E}e
p{YD、i、W03·LD、i、W03}d
+{Φp{YE、i、W04·LE、i、W04}E}e)
这里,
Φp{LE、i、W02}E=W02台车
Φp{YD、i、W03·LD、i、W03}d=W03台车
Φp{YE、i、W04·LE、i、W04}E=W04台车
E;是由画面和电文等事件信息形成的称为定义体标识符的独立变量。e;是存在于开发系统中的称为E的种类的独立变量。
D;是称为画面、电文、文件等定义体标识符的独立变量(E包含在D中)。
d;是存在于开发系统中的称为D的种类的独立变量。i;是包含在E或D中的称为单词(数据项)的标识符的独立变量。Y;称为拓扑要素,是谋求意义领域间的同步的函数。
L;称为逻辑要素,是当有存储时谋求与存储同步、没有存储时与运算同步的函数。其逻辑结构如图4~图7所示那样,是单义的。
φp{};称为台车函数,是把拓扑要素YD,i,Wn和逻辑要素LD,i,Wn集合的函数。将集合的拓扑要素、逻辑要素和数据区D,i,Wn称为台车。
W02、W03、W04;是意义领域(台车)标识符(意义领域发生顺序固定为W04→W02→W03)。
φ0;称为台车链接函数,是链接台车的函数。台车链接顺序固定为W04→W02→W03。
图4~图7所示的拓扑要素和逻辑要素及台车函数若除掉图5、图7的逻辑要素中的”数据的自己生成”的部分和图6的逻辑要素中的”路径处理”的部分,就只是”D、i”变量。反之,只要设定”数据的自己生成”的部分、”路径处理”的部分和”D、i”,就能够决定拓扑要素、逻辑要素及台车函数规定的、即与拓扑要素、逻辑要素及台车函数有关的程序。此外,台车链接函数是绝对唯一的程序。本发明正是着眼于这一点。即,”数据的自己生成”的部分、”路径处理”的部分和”D、i”事先准备未定义的拓扑要素、逻辑要素及台车函数,同时,预先使用来定义它们的定义表和拓扑要素、逻辑要素及台车函数中的未定义部分之间建立对应关系,例如只通过输入定义表就能自动生成软件。
附图的简单说明
图1是本发明的LYEE的构成图。
图2是本发明的台车链接函数的流程图。
图3是本发明的台车函数的流程图。
图4是本发明的拓扑要素的流程图。
图5是本发明的W03逻辑要素的流程图。
图6是本发明的W02逻辑要素的流程图。
图7是本发明的W04逻辑要素的流程图。
图8是本发明的自动生成装置的构成图。
图9是表示本发明的软件生成顺序的图。
图10是表示本发明的一例定义体的图。
图11是表示本发明的一例处理路径图的图。
图12是表示本发明的一例定义表的图。
图13是表示本发明的变换部的动作的流程图。
实施本发明的最佳形态
下面,为了更详细地叙述本发明,按照附图进行说明。
首先,对于根据LYEE理论的软件构成进行说明。
图1是概略示出根据LYEE理论的软件构成的图。
根据LYEE理论的软件通常是象图1那样的结构,即是利用台车链接函数101对已将各基础逻辑103编入各台车函数102中的各台车104进行链接的结构。
根据上述LYEE理论,台车链接函数101,台车函数102和基础逻辑103连在每一个步骤都被规定其作用。基础逻辑103有W04基础逻辑、W02基础逻辑、W03基础逻辑。把已将W04基础逻辑编入台车函数102中的台车104称作W04台车,把已将W02基础逻辑编入台车函数102中的台车104称作W02台车,把已将W03基础逻辑编入台车函数102中的台车104称作W03台车。如图1所示,将对每一个单词保存数据的数据区编入各台车中。把W04台车的数据区称作W04数据区,把W02台车的数据区称作W02数据区,把W03台车的数据区称作W03数据区。
W04基础逻辑有拓扑要素和逻辑要素。把它们称作W04拓扑要素、W04逻辑要素。W02基础逻辑有逻辑要素。把它称作W02逻辑要素。W03基础逻辑有拓扑要素和逻辑要素。把它们称作W03拓扑要素、W03逻辑要素。
W04拓扑要素和W04逻辑要素是用来进行画面编辑的程序元素。W02逻辑要素是用来决定路径的程序元素。W03拓扑要素和W03逻辑要素是用来进行文件更新的数据编辑的程序元素。
这些基础逻辑103对存在于生产软件所必要的画面105(除画面之外还包含文件或帐单)中的所有单词作成这些基础逻辑103。若用图1的例子来说,假如在画面105上例如存在单词‘密码号’、‘顾客姓名’、‘存款余额’、‘信息’、‘执行’、‘结束’,则对这些单词作成基础逻辑。再有,在基础逻辑中,W04拓扑要素、W04逻辑要素和W02逻辑要素分别是用来进行画面编辑、决定处理路径的元素,因而,是对每一个画面定义的元素,W03拓扑要素和W03逻辑要素是用来进行文件更新的数据编辑的元素,因而是将系统内的所有定义体总括起来作为一个台车来定义的。例如,对于‘密码号’这一单词,即使是同一单词,W04拓扑要素、W04逻辑要素和W02逻辑要素也必须对每一个画面分别单独定义。而且,分别单独定义的单词可以作为W03逻辑要素直接单独定义。
对这些各基础逻辑附加意义领域标识符、定义体标识符和单词标识符。
图2是表示台车链接函数101的结构范例的流程图。
台车链接函数101的结构在任何软件中都相同。因此,可以将作成的台车104编入预先作成的台车链接函数101中。
即,首先决定发送信息(步骤201)。发送信息是应在计算机上显示的画面105的显示数据。
例如,参照图11所示的处理路径图(关于处理路径图详细情况将在后面叙述)进行说明。例如,当在菜单画面GSMENU(GSMENU是菜单画面的定义体标识符)中选择了‘余额查询’时(例如,在菜单画面GSMENU中进行‘菜单号码=n+ENTER’的操作),决定将‘余额查询’的画面GSOI08(GSOI08是余额查询画面的定义体标识符)作为发送信息。
当发送信息包含关闭系统的信息(菜单画面GSMENU‘结束’)时(步骤202),关闭系统(步骤203)。所谓关闭系统例如是返回OS。
其次,判断是否在WT单位内继续(步骤204)。这是有关例外的处理的情况。即,WT单位例如是用一个单位总括登录数据使用的登录画面和登录该数据时数据参照使用的参照画面形成的单位。当不在WT单位内继续时,设置新WT单位的所有台车(步骤207)。
其次,执行该W04台车(步骤208)。即,执行已对台车函数102设置了与所有W04有关的基础逻辑103、即W04拓扑要素和W04逻辑要素的W04台车。由此,决定与应显示的画面有关的数据值。
接着,执行发送功能(步骤209)。即,作为把设置了数据值等的画面在计算机上显示的画面数据进行发送。
然后,执行接收功能(步骤210)。即,接收在计算机的画面上已输入了数据值等的画面数据。
接着,判断接收数据是否正常(步骤211),若异常则从头进行与上述同样的处理。即,判断有没有违反规则的数据。
其次,执行该W02台车(步骤212)。即,执行已对台车函数102设置了与所有W02有关的基础逻辑、即W02逻辑要素的W02台车。由此,决定已输入到计算机画面上的数据等。
其次,决定处理路径(步骤213、214)。处理路径可以利用W02逻辑要素上的处理路径标志(R=1~5)进行判断。
当处理路径标志R=1时,执行该W03台车(不进行向文件的登录的W03台车)(步骤215)。接着,返回开始的处理(步骤201)。处理路径R=1是只执行数据处理的路径处理。
当处理路径标志R=2时,执行该W03台车(不进行向文件的登录的W03台车)(步骤216)。接着,返回开始的处理(步骤201)。处理路径R=2是执行数据处理和向文件登录数据的路径处理。
当处理路径标志R=3~5时,直接返回开始的处理(步骤201)。
这里,处理路径R=3是直接返回W04台车(相同的和不同的)的路径处理。
处理路径R=4是向文件登录数据的处理。
处理路径R=5是直接从文件取出数据的处理。
图3是表示台车函数的结构范例的流程图。有必要对W02、W03、W04的基础逻辑分别作成这种结构的台车函数。
首先,使数据区变“空”(步骤301)。即,例如在W04台车函数中,将对存在于每一个画面上的每一个单词附加的标识符的数据区变“空”。只是不对W02上的台车函数进行“空化”处理。接着,依次(按拓扑要素、逻辑要素的顺序)执行各拓扑要素和逻辑要素(步骤302、303)。
然后,当台车再起动标志置位时(步骤304),在复位标志(步骤305)的同时,再依次(按拓扑要素、逻辑要素的顺序)执行各拓扑要素和逻辑要素(步骤302、303)。
另一方面,当台车再起动标志没有置位时,关闭文件(步骤306),结束处理。这里,所谓‘文件’是存储由W03基础逻辑自己生成的数据值的文件,对每一个单词进行设置。再有,存储在文件中的数据的再现因每一个单词的再现源文件不同,故由每一个单词的逻辑要素自己生成部分的子程序进行。而且,在子程序内执行文件的打开和读出,文件的关闭由台车函数去执行。
台车再起动利用各逻辑要素上的再起动标志进行判断。
图4是表示基础逻辑中的拓扑要素的结构范例的流程图。
若设拓扑要素为Y(D、i、Wn),首先,判别D、i、Wn-1(D是画面标识符、i是单词标识符、Wn-1例如若拓扑要素是W03则表示W02)的数据区是不是空(步骤401)。
若是空则结束拓扑要素Y(D、i、Wn)。
若不是空则将D、i、Wn-1的数据区的数据转移到D、i、Wn的数据区并结束(步骤402)。
图5是表示基础逻辑中的W03逻辑要素的结构范例的流程图。
若设逻辑要素为L(D、i、W03),首先,判别数据区(D、i、W03)是不是空(步骤501)。
当数据区(D、i、W03)已有数据不空时,结束逻辑要素L(D、i、W03)。
当数据区(D、i、W03)没有数据是空时,进行数据的自己生成(步骤502)。所谓数据的自己生成是指:当数据是输入属性时,例如将数据区(D、i、W02)的数据转移到数据区(D、i、W03);当数据是输出属性时,例如根据文件的同一单词的数据来自己生成数据;当数据同样是输出属性时,例如从其它单词的数据通过运算来自己生成数据。
其次,判别数据区(D、i、W03)是不是空(步骤503)。
当数据区(D、i、W03)存在数据时,认为自己生成成立,并结束逻辑要素L(D、i、W03)。
当数据区(D、i、W03)不存在数据时,使D、i、W03的再起动计数器加“1”(步骤504)。
其次,判断再起动计数器的值是否在预定值以下,即判断能否进行再起动(步骤505)。
当能再起动时,使再起动标志置位(D、i、W03)(步骤506)。
当不能再起动时,使不成立标志(D、i、W03)置位(步骤507)。
图6是表示基础逻辑中的W02逻辑要素的结构范例的流程图。若设逻辑要素为L,首先,判别数据区(D、i、W02)是不是空(步骤601)。
当数据区(D、i、W02)没有数据是空时,即没有进行从画面输入数据时,结束逻辑要素L(D、i、W02)。
当数据区(D、i、W02)已有数据不空时,设定处理路径(步骤602)。处理路径的设定是设定上述处理路径标志(R=1~5)。
其次,判别处理路径的设定是否成立(步骤603)。
当处理路径的设定成立时,结束逻辑要素L(D、i、W02)。
当处理路径的设定不成立时,使D、i、W02的再起动计数器加“1”(步骤604)。
其次,判断再起动计数器的值是否在预定值以下,即判断能否进行再起动(步骤605)。
当能再起动时,使再起动标志(D、i、W02)置位(步骤606)。
当不能再起动时,使不成立标志(D、i、W02)置位(步骤607)。
图7是表示基础逻辑中的W04逻辑要素的结构范例的流程图。
若设逻辑要素为L(D、i、W04),首先,判别数据区(D、i、W04)是不是空(步骤701)。
当数据区(D、i、W04)没有数据是空时,进行数据的自己生成(步骤702)。所谓数据的自己生成是指:当数据是输入属性时,例如将数据区(D、i、W02)的数据转移到数据区(D、i、W04);当数据是输出属性时,例如根据文件的同一单词的数据来自己生成数据;当数据同样是输出属性时,例如从其它单词的数据通过运算来自己生成数据。
其次,判别数据区(D、i、W04)是不是空(步骤703)。
当数据区(D、i、W04)存在数据时,认为自己生成成立,并结束逻辑要素L(D、i、W04)。
当数据区(D、i、W04)不存在数据是“空”时,使D、i、W04的再起动计数器加“1”(步骤704)。
其次,判断再起动计数器的值是否在预定值以下,即判断能否进行再起动(步骤705)。
当能再起动时,使再起动标志置位(D、i、W04)(步骤706)。
当不能再起动时,使不成立标志(D、i、W04)置位(步骤707)。
另一方面,在步骤701中,  当数据区(D、i、W04)已有数据不空时,判断该单词的W02不成立标志或该单词的W03不成立标志是否置位(步骤708)。
当单词的W02不成立标志或单词的W03不成立标志置位时,在设置不成立代码的同时使不成立标志复位(步骤709)。
再有,不成立代码的作用例如象图10所示那样,当向‘密码号’的数据区1001输入了错误的号码时,则在‘信息’的数据区显示该事项。若‘密码号’的W04逻辑要素的不成立代码置位,则利用‘信息’的W04逻辑要素的‘数据的自己生成’来显示该事项。
本发明自动生成与图3所示的台车函数、图4~图7所示的拓扑要素和逻辑要素有关的程序。因台车链接函数常常是由同一程序构成,所以,自动生成与台车函数、拓扑要素和逻辑要素有关的程序就意味着自动生成作为目的的软件。而且,因台车函数、拓扑要素和逻辑要素只通过数据区的地址即可实现其逻辑,所以,就意味着能够自动生成业务用软件、游戏用软件及其它所有领域的软件。
图8是表示本发明的软件自动生成装置的构成的方框图。该软件自动生成装置可以利用软件在计算机上实现。
在图8中,801是预先存储程序的第1存储部,上述程序是图4~图7所示的与相位元件、逻辑元件和台车函数有关的程序,是”数据的自己生成”的部分的、”处理路径”部分的和”D、i”的未定义的程序,802是预先存储与台车链接函数有关的程序的第2存储部,803是用来输入”数据的自己生成”的部分、”处理路径”的部分和”D、i”的输入部。
此外,804是将803输入的”数据的自己生成”的部分、”处理路径”的部分和”D、i”填入存储在第1存储部801中的与相位元件、逻辑要素和台车函数有关的程序的规定位置上的填入部,805是把与定义后的拓扑要素、逻辑要素和台车函数有关的程序编入台车链接函数的编入部,806是输出编入程序的软件的输出部。
其次,根据图9说明使用这样构成的装置生成软件的顺序。
首先,特定在作为目的的软件中所使用的画面和帐单(步骤901),对各画面设定标识符(定义体标识符)(步骤902)。图10是已决定的一例画面。对图10的画面设定系统独特的任意标识符,例如,设定称为“GSOI08”的定义体标识符。此外,在图10中,右侧的空栏表示数据栏。
其次,作成处理路径图,决定文件(步骤903)。处理路径图根据已决定的画面和帐单作成。处理路径图可以由人工作成,也可以由机器作成。处理路径图是用线条连接与各画面和各帐单对应的台车(用方框表示)所得到的图。线条意味台车链接函数。若画面和帐单被决定,则台车间的连接必然决定。图11示出一例处理路径图。
在处理路径图中,例如,若决定了某一画面(例如‘菜单画面GSMENU’),则从该画面的处理内容(‘菜单号码=n+ENTER’、‘结束’画面上的控制单词)到下一个必要的处理(例如,从‘菜单画面GSMENU’到‘余额查询画面GSOI08’的显示或‘系统关闭’,从‘余额查询画面GS0I08’到利用‘执行’的控制单词从文件FSHINFIL读出数据‘余额数据’或因密码号出错而返回原来的画面,或者利用‘结束’控制单词返回菜单画面GSMENU)必然决定,所以,根据上述处理内容在台车等之间用线条进行连接。
在图11中,‘GSMENU’下面的‘W04’是附加了画面标识符GSMENU的W04台车,利用该W04台车形成菜单画面GSMENU。
‘GSMENU’下面的‘W02’是附加了画面标识符GSMENU的W02台车,利用该W02台车决定处理路径。
‘GSOI08’下面的‘W04’是附加了画面标识符GSOI08的W04台车,利用该W04台车形成余额查询画面GSOI08的数据显示栏显示的数据。
‘GSOI08’下面的‘W02’是附加了画面标识符GSOI08的W02台车,利用该W02台车决定处理路径。
‘W03’是系统内唯一的一个W03台车,利用该W03台车算出存款余额。算出的存款余额经执行W04台车的拓扑要素、逻辑要素后在余额查询画面GSOI08上显示。
根据作成的处理路径图决定必要的文件。即必要的文件必然由处理路径图决定(例如,在图11中,有‘FSHINFIL’‘FMOTOFIL’。‘FSHINFIL’意味‘顾客帐户文件’的定义体标识符,‘FMOTOFIL’意味‘存款总帐文件’的定义体标识符)。已决定的文件记述在处理路径图上。
再有,所谓‘IO-W04-RK1-SEC’是从‘顾客帐户文件’读出数据的W04台车上的子程序标识符。所谓‘IO-W04-RD1-SEC’是从‘存款总帐文件’读出数据的W04台车上的子程序标识符。所谓‘IO-W02-RK1-SEC’是从‘顾客帐户文件’读出数据的W02台车上的子程序标识符。所谓‘IO-W03-RK1-SEC’是从‘顾客帐户文件’读出数据的W03台车上的子程序标识符。所谓‘IO-W03-RD1-SEC’是从‘存款总帐文件’读出数据的W03台车上的子程序标识符。以上对图1也一样。
其次,从特定的画面、帐单和文件中收集单词(步骤904),对各单词设定标识符(步骤905)。例如,从图10的画面收集‘密码号’、‘顾客姓名’、‘存款余额’、‘信息’、‘执行’、‘结束’单词,例如对‘密码号’、‘顾客姓名’、‘存款余额’、‘信息’、‘执行’、‘结束’设定作为单词标识符的”PASSNO1”、”CLNAME”、”YOKNZAN”、”MSSGCD1”、”PF25KEY”、”PF3KEY”。
图12是表示从输入部803输入的一例定义表的图。该定义表例如在计算机画面上显示,从那儿输入各数据。
在定义表中,有画面标识符(ID)输入栏、画面名称输入栏和单词名称输入栏。此外,与各单词名称对应有单词标识符(ID)、数据是输入属性还是输出属性(I/O)、数据位数、数据属性是数字型还是文字型(属性)、使用文件(如上所述,存储数据的再现因每一个单词的再现源文件不同,故由每一个单词的逻辑要素自己生成部分的子程序进行。因此,对每一个单词定义使用文件)、处理路径(R-NO)、与处理路径决定单词对应的功能键号(F-KEY)、下一画面标识符和单词定义(数据的自己生成)的输入项目。在单词定义(数据的自己生成)的输入项目中,当数据是输入属性时,因根据LYEE原理可以自动决定,故不进行任何定义。当数据是输出属性时,例如设定成根据文件的同一单词的数据来自己生成数据,或者,当数据同样是输出属性时,例如设定成根据其它单词的数据通过运算来自己生成数据。更具体地说,所谓‘根据文件的同一单词的数据来自己生成数据’,‘顾客姓名’和‘存款余额’就是其中的一例。
此外,所谓‘根据其它单词的数据通过运算来自己生成数据’,‘存款余额’(=文件的存款余额+画面的处理金额)就是其中的一例。
在处理路径的输入项目中设定上述处理路径(R=1~5)。
本发明的所谓‘导出数据’与上述单词定义相当。
此外,本发明的所谓‘处理路径’与上述处理路径(R-NO)、功能键号(F-KEY)和下一画面标识符相当。
而且,利用填入部804和编入部805执行软件的自动生成(步骤907)。
根据图13的流程图说明该自动生成的动作。
即,当把画面标识符和单词标识符等、即本发明的”数据的自己生成”的部分、”处理路径”部分和”D、i”输入定义表(步骤1301)执行自动生成时(步骤1302),填入部804从第1存储部801调入”数据的自己生成”的部分、”处理路径”部分和”D、i”的未定义的拓扑要素、逻辑要素和台车函数(步骤1303),在未定义的拓扑要素、逻辑要素和台车函数的规定位置分别填入在定义表中设定的”数据的自己生成”的部分、”处理路径”部分和”D、i”(步骤1304)。
更具体地说明这一点。
未定义的W03逻辑要素的程序如下。
*-----------------------------------------------------

*    @%8@

*-----------------------------------------------------

L-W03-@%16@-@%19@-SEC SECTION.

L-W03-@%16@-@%19@-START.

*--<有效判定>--

IF    @%16@-@%19@ OF W03 NOT=@%20@

      GO TO L-W03-@%16@-@%19@-EXIT

END-IF.

*--<自己生成>--

*--<输入属性时置位W02>--

    *          MOVE @%16@-@%19@ OF W02

    *            TO @%16@-@%19@ OF W03.

*--<输出属性时若文件有同一单词,则从这里开始自己生成>--
				
				<dp n="d15"/>
*    MOVE G#####-***** OF W03

*      TO F#####-***** OF F#####-REC.

*    PERFORM IO-W03-RD*-SEC.

*    IF  RD*-INVS=“IV”

*      MOVE @%20@ TO @%16@-@%19@ OF W03

*    ELSE

*    MOVE F#####-@%19@ OF F#####-REC

*                  TO @%16@-@%19@ OF W03

#    END-IF.
*--<输出属性时通过与其它单词的运算来自己生成>--

*    COMPUTE @%16@-@%19@ OF W03

*                  =###-### OF W03

*                  +***-*** OF W03.
*--<成立判定>--

IF     @%16@-@%19@ OF W03=@%20@
*      OR  @%16@-@%19@ OF W03>0

              ADD 1 TO @%16@-@%19@-CNT

              IF  @%16@-@%19@-CNT<RECALL-MAX

                  MOVE“1”TO RECALL-FLG

              ELSE

                  MOVE“1”TO @%16@-@%19@-NON

              END-IF

      END-IF.

L-W03-@%16@-@%19@-EXIT.

      EXIT.J
在该未定义的W03逻辑要素的程序中,
@%8@是单词名称,
@%16@是画面标识符,
@%19@是单词标识符,
@%20@是与属性对应的‘空’的值,
F#####是成为文件存取键的定义体标识符,
G#####是存在成为文件存取键的源的单词的画面定义体标识符,
RD*是与存取的文件对应的子程序中固有的标识符,
****是成为文件存取键的单词标识符,
###-###和***-***表示用来利用运算进行导出的独立变量的单词标识符。
而且,图12所示的定义表的单词名称栏是@%8@
                        画面标识符栏是@%16@
                        单词标识符拦是@%19@
                        属性栏是@%20@
      单词定义栏与
      *--<自己生成>--
      *--<输入属性时使W02置位>--
*            MOVE @%16@-@%19@ OF W02

*              TO @%16@-@%19@ OF W03.

*--<输出属性时若文件中有同一单词则从这里开始自己生
成>--
				
				<dp n="d17"/>
*    MOVE G#####-***** OF W03

*      TO  F#####-***** OF F#####-REC.

*    PERFORM IO-W03-RD*-SEC.

*    IF RD*-INVS=“IV”

*      MOVE @%20@ TO @%16@-@%19@ OF W03

*    ELSE

*      MOVE F#####-@%19@ OF F#####-REC

*                      TO  @%16@-@%19@ OF W03

*    END-IF.

*--<输出属性时通过与其它单词的运算来自己生成>--

*    COMPUTE @%16@-@%19@ OF W03

*                  =###-### OF W03

*                  +***-*** OF W03.对应。
其中,
*--<输入属性时使W02置位>--

*          MOVE   @%16@-@%19@ OF W02
*              TO   @%16@-@%19@ OF W03.
是将数据区(D、i、Wn)-1的数据转移到数据区(D、i、Wn)的程序部分。
*--<输出属性时若文件中有同一单词则从这里开始自己生成>--
				
				<dp n="d18"/>
      *    MOVE  G#####-***** OF W03
      *      TO  F#####-***** OF F#####-REC.

  *    PERFORM IO-W03-RD*-SEC.
      *    IF RD*-INVS=“IV”

  *      MOVE @%20@ TO @%16@-@%19@ OF W03

  *    ELSE

  *      MOVE F#####-@%19@ OF F#####-REC

  *                TO @%16@-@%19@ OF W03
      *    END-IF.
是根据文件中的同一单词的数据来自己生成数据的程序部分,
    *--<输出属性时,用与其他单词的运算自己生成>--
  *    COMPUTE @%16@-@%19@ OF W03
      *           =###-### OF W03

  *                  +***-*** OF W03.
表示根据其它单词的数据通过运算来自己生成数据的程序部分。
而且,若在定义表中设定画面标识符等,则对每一个单词在未定义的逻辑要素的各栏@%8@、@%16@、@%19@、@%20@、#####、#####、*、****、###-###、***-***中设定该值,并生成下面所示的每一个单词的W03逻辑要素、即已完成的W03逻辑要素的程序。
*

*-----------------------------------------

*密码号

*-----------------------------------------

L-W03-GSOI08-PASSNO1-SEC SECTION.

L-W03-GSOI08-PASSNO1-START.

*--<有效判定>--

    IF GSOI08-PASSNO1 OF W03 NOT=LOW-VALUE

      GO TO L-W03-GSOI08-PASSNO1-EXIT

    END-IF.

*--<自己生成>--

*--<在输入属性时置位W02>--

    MOVE GSOI08-PASSNO1 OF W02

      TO GSOI08-PASSNO1 OF W03

*--<判定成立>--

    IF GSOI08-PASSNO1 OF W03=LOW-VALUE

     OR GSOI08-PASSNO1 OF W03>0

        ADD 1 TO GSOI08-PASSNO1-CNT

        IF GSOI08-PASSNO1-CNT<RECALL-MAX

           MOVE“1”TO RECALL-FLG

        ELSE
				
				<dp n="d20"/>
          MOVE“1”TO GSOI08-PASSNO1-NON

     END-IF

END-IF.
L-W03-GSOI08-PASSNO1-EXIT.

EXIT.
*
*-----------------------------------------
*  顾客姓名
*-----------------------------------------
L-W03-GSOI08-CLNAME-SEC SECTION.
L-W03-GSOI08-CLNAME-START.
*--<有效判定>--

IF GSOI08-CLNAME-XX OF W03 NOT=ALL“9”

   GO TO L-W03-GSOI08-CLNAME-EXIT

END-IF.
*--<自己生成>--
*--<在输出属性时在文件中若有同一单词则从那儿自己生成>--

MOVE GSOI08-PASSNO1 OF W03

  TO FMOTOFIL-PASSNO1 OF FMOTOFIL-REC.

PERFORM IO-W03-RD1-SEC.

IF RD1-INVS=“IV”

  MOVE ALL“9”TO GSOI08-CLNAME-XX OF W03

ELSE

  MOVE FMOTO FIL-CLNAME OF FMOTOFIL-REC

               TO GSOI08-CLNAME OF W03
				
				<dp n="d21"/>
END-IF.
*--<判定成立>--

IF GSOI08-CLNAME-XX OF W03=ALL“9”

  OR GSOI08-CLNAME-XX OF W03>0

     ADD 1 TO GSOI08-CLNAME-CNT

     IF GSOI08-CLNAME-CNT<RECALL-MAX

        MOVE“1”TO RECALL-FLG

     ELSE

        MOVE“1”TO GSOI08-CLNAME-NON

     END-IF

END-IF.
L-W03-GSOI08-CLNAME-EXIT.

EXIT.
*
*----------------------------------------------------
*  存款余额
*----------------------------------------------------
L-W03-GSOI08-YOKNZAN-SEC SECTION.
L-W03-GSOI08-YOKNZAN-START.
*--<有效判定>--

IF GSOI08-YOKNZAN OF W03 NOT=LOW-VALUE

  GO TO L-W03-GSOI08-YOKNZAN-EXIT

END-IF.
*--<自己生成>--
*--<在输出属性时在文件中若有同一单词则从那儿自己生成>--
				
				<dp n="d22"/>
MOVE GSOI08-PASSNO1 OF W03

  TO FMOTOFIL-PASSNO1 OF FMOTOFIL-REC.

PERFORM IO-W03-RD1-SEC.

IF RD1-INVS=“IV”

  MOVE ALL“9”TO GSOI08-CLNAME-XX OF W03

ELSE

  MOVE FMOTOFIL-YOKNZAN OF FMOTOFIL-REC

             TO GSOI08-YOKNZAN OF W03

END-IF.
*--<判定成立>--

IF GSOI08-YOKNZAN OF W03=LOW-VALUE

   OR GSOI08-YOKNZAN OF W03>0

      ADD 1 TO GSOI08-YOKNZAN-CNT

      IF GSOI08-YOKNZAN-CNT<RECALL-MAX

         MOVE“1”TO RECALL-FLG

      ELSE

         MOVE“1”TO GSOI08-YOKNZAN-NON

      END-IF

END-IF.
L-W03-GSOI08-YOKNZAN-EXIT.

EXIT.
*
*--------------------------------------------
*  信息
*--------------------------------------------
L-W03-GSOI08-MSSGCD1-SEC SECTION.
				
				<dp n="d23"/>
L-W03-GSOI08-MSSGCD1-START.
*--<有效判定>--

IF GSOI08-MSSGCD1 OF W03 NOT=LOW-VALUE

       GO TO L-W03-GSOI08-MSSGCD1-EXIT

END-IF.
*--<自己生成>--
*--<无自己生成>
*--<判定成立>--

IF GSOI08-MSSGCD1 OF W03=LOW-VALUE

  OR GSOI08-MSSGCD1 OF W03>0

     ADD 1 TO GSOI08-MSSGCD1-CNT

     IF GSOI08-MSSGCD1-CNT<RECALL-MAX

        MOVE“1”TO RECALL-FLG

     ELSE

        MOVE“1”TO GSOI08-MSSGCD1-NON

     END-IF

END-IF.
L-W03-GSOI08-MSSGCD1-EXIT.

EXIT.
*
*--------------------------------------------
*    结束
*--------------------------------------------
L-W03-GSOI08-PF3KEY-SEC SECTION.
L-W03-GSOI08-PF3KEY-START.
*--<有效判定>--
				
				<dp n="d24"/>
IF     GSOI08-PF3KEY OF W03 NOT=LOW-VALUE

      GO TO L-W03-GSOI08-PF3KEY-EXIT

END-IF、
*--<自己生成>--
*--<无自己生成
*--<判定成立>--

IF GSOI08-PF3KEY OF W03=LOW-VALUE

  OR GSOI08-PF3KEY OF W03>0

     ADD 1 TO GSOI08-PF3KEY-CNT

     IF GSOI08-PF3KEY-CNT<RECALL-MAX

       MOVE“1”TO RECALL-FLG

     ELSE

       MOVE“1”TO GSOI08-PF3KEY-NON

     END-IF

END-IF.
L-W03-GSOI08-PF3KEY-EXIT.

EXIT.
*
*------------------------------------------
*  执行
*------------------------------------------
L-W03-GSOI08-PF25KEY-SEC SECTION.

    L-W03-GSOI08-PF25KEY-START.
*--<有效判定>--

IF GSOI08-PF25KEY OF W03 NOT=LOW-VALUE

   GO TO L-W03-GSOI08-PF25KEY-EXIT
				
				<dp n="d25"/>
END-IF.
*--<自己生成>--
*--<无自己生成
*--<判定成立>--

IF GSOI08-PF25KEY OF W03=LOW-VALUE

  OR GSOI08-PF25KEY OF W03>0

     ADD 1 TO GSOI08-PF25KEY-CNT

     IF GSOI08-PF25KEY-CNT<RECALL-MAX
        MOVE“1”TO RECALL-FLG

     ELSE

        MOVE“1”TO GSOI08-PF25KEY-NON

     END-IF

END-IF.
L-W03-GSOI08-PF25KEY-EXIT.

EXIT.
而且未定义的W03拓扑要素如以下所示。
*
*-------------------------------------------------
*    @%8@
*-------------------------------------------------
Y-W03-@%16@-@%19@-SEC SECTION.
Y-W03-@%16@-@%19@-START.

IF @%16@-@%19@ OF W02 NOT=@%20@

   MOVE @%16@-@%19@ OF W02

     TO @%16@-@%19@ OF W03
				
				<dp n="d26"/>
     END-IF.Y-W03-@%16@-@%19@-EXIT.

     EXIT.
而且,对每一个单词在未定义的拓扑要素的各栏中设定该值,并生成下面所示的每一个单词的W03拓扑要素、即已完成的W03拓扑要素的程序。
      *----------------------------------------------

      *    密码号

      *----------------------------------------------

      Y-W03-GSOI08-PASSNO1-SEC SECTION.

      Y-W03-GSOI08-PASSNO1-START.

     IF GSOI08-PASSNO1 OF W02 NOT=LOW-VALUE

        MOVE GSOI08-PASSNO1 OF W02

          TO GSOI08-PASSNO1 OF W03

     END-IF.

Y-W03-GSOI08-PASSNO1-EXIT.

     EXIT.
      *

      *----------------------------------------------

      *    顾客姓名

      *----------------------------------------------

      Y-W03-GSOI08-CLNAME-SEC SECTION.

      Y-W03-GSOI08-CLNAME-START.

          IF GSOI08-CLNAME-XX OF W02 NOT=ALL“9”
				
				<dp n="d27"/>
      MOVE GSOI08-CLNAME OF W02

        TO GSOI08-CLNAME OF W03

END-IF.
Y-W03-GSOI08-CLNAME-EXIT.

EXIT.
*
*---------------------------------------------
*  存款余额
*---------------------------------------------
Y-W03-GSOI08-YOKNZAN-SEC SECTION.
Y-W03-GSOI08-YOKNZAN-START.

 IF GSOI08-YOKNZAN OF W02 NOT=LOW-VALUE

    MOVE GSOI08-YOKNZAN OF W02

     TO GSOI08-YOKNZAN OF W03

 END-IF.
Y-W03-GSOI08-YOKNZAN-EXIT.

EXIT.
*
*---------------------------------------------
*    信息
*---------------------------------------------
Y-W03-GSOI08-MSSGCD1-SEC SECTION.
Y-W03-GSOI08-MSSGCD1-START.

 IF GSOI08-MSSGCD1 OF W02 NOT=LOW-VALUE

    MOVE GSOI08-MSSGCD1 OF W02

      TO GSOI08-MSSGCD1 OF W03
				
				<dp n="d28"/>
END-IF.
Y-W03-GSOI08-MSSGCD1-EXIT.

EXIT.
*
*-----------------------------------------------
*    结束
*-----------------------------------------------
Y-W03-GSOI08-PF3KEY-SEC SECTION.
Y-W03-GSOI08-PF3KEY-START.

 IF GSOI08-PF3KEY OF W02 NOT=LOW-VALUE

    MOVE GSOI08-PF3KEY OF W02

      TO GSOI08-PF3KEY OF W03

 END-IF.
Y-W03-GSOI08-PF3KEY-EXIT.

EXIT.
*
*------------------------------------------------
*  执行
*------------------------------------------------
Y-W03-GSOI08-PF25KEY-SEC SECTION.
Y-W03-GSOI08-PF25KEY-START.

 IF GSOI08-PF25KEY OF W02 NOT=LOW-VALUE

    MOVE GSOI08-PF25KEY OF W02

      TO GSOI08-PF25KEY OF W03

 END-IF.
Y-W03-GSOI08-PF25KEY-EXIT.
				
				<dp n="d29"/>
EXIT.
未定义的W03逻辑要素群如下。
*--<@%8@

     PERFORM L-W03-@%16@-@%19@-SEC.
未定义的W03拓扑要素群如下。
*

*--<@%8@

     PERFORM Y-W03-@%16@-@%19@-SEC.
此外,未定义的台车函数如下。
ENVIRONMENT  DIVISION.

CONFIGURATION  SECTION.

SOURCE-COMPUTER.   AS400.

OBJECT-COMPUTER.   AS400.

INPUT-OUTPUT       SECTION.

FILE-CONTROL.

*

*--有键--

SELECT@%16@ ASSIGN TO DATABASE-@%16@

             ORGANIZATION IS INDEXED

             ACCESS MODE IS DYNAMIC

             RECORD KEY IS EXTERNALLY-DESCRIBED-KEY
 *                 WITH          DUPLICATES

             FILE STATUS IS @%24@.

*--无键--*
				
				<dp n="d30"/>
*    SELECT@%16@ ASSIGN TO DATABASE-@%16@
*                 ORGANIZATION IS SEQUENTIAL
*                 ACCESS MODE IS SEQUENTIAL
*                 FILE STATUS IS @%24@.
DATA DIVISION.
FILE SECTION.
FD @%16@

LABEL RECORD IS STANDARD.
01 @%16@-R.
   COPY DDS-ALL-FORMATS OF @%16@.
01 @%16@-REC.

COPY                   @%9@.
*********************************************************

工作存储区
*********************************************************
01 PALETTE-WORK.
   03  PS         PIC S9(03)COMP.
01 WK-FILE-STATUS.
   03 @%24@      PIC X(02).
01 FILE-STATUS.
   03 @%7@-OPNS  PIC X(01).
   03 @%7@-REDS  PIC X(01).
   03 @%7@-INVS  PIC X(02).
				
				<dp n="d31"/>
  *--<用于WO3画面清除
  01 WK-@%16@.

 COPY @%16@.
*********************************************************
  连接区
*********************************************************
*--<CTRL>--*
  01 CTRL-AREA.

 COPY CTRLAREA.
*--<W02>--*
  01 W02-AREA.

 02 W02 OCCURS 5.

    COPY W0204.
*              --<画面>--

    03 W02-@%16@ REDEFINES INFO.

       COPY @%16@.

    03  @%16@-NON  REDEFINES    NON-FLG.
       COPY @%16@N.
*--<W03>--*
  01 W03-AREA.

 02 W03.
*      --<I/F信息>--

   03 W03-CNTRL.

      05 RECALL-FLG  PIC X(1).

      05 RECALL-MAX  PIC 9(2).
*      --<语句>--
				
				<dp n="d32"/>
03 W03-ITEMS.

04 W03-@%16@.

   COPY @%16@.

04 W03-FILE.

   COPY @%16@.

04 W03-LIST.

   COPY @%16@.
*    --<不成立标志>--

03 W03-NON.

   COPY @%16@N.

   COPY @%16@N.

   COPY @%16@N.
*    --<再起动次数>--

03 W03-CNT.

   COPY @%16@Z.

   COPY @%16@Z.

   COPY @%16@Z.
*--<W04>--*
  01 W04-AREA.

 02 W04 OCCURS 5.

    COPY W0204.
*    --<画面>--

 03 W04-@%16@ REDEFINES INFO.

    COPY @%16@.

 03 OPTION-IDX-DEF REDEFINES OPTION-IDX.

    COPY @%16@C.
				
				<dp n="d33"/>
*--<WFL>--
  01 WFL-AREA.

 03 FILLER             PIC X(01).
*********************************************************
  PROCEDURE DIVISION USING CTRL-AREA

                       W02-AREA

                       W03-AREA

                       W04-AREA

                       WFL-AREA.
*    ****************************
*    *    MAIN    *
*    ****************************
  MAIN-SEC SECTION.
      MAIN-START.
*--<前处理>--

PERFORM INIT-PROC.
*--<拓扑要素>--

PERFORM Y-PROC.
*--<逻辑要素>--

PERFORM UNTIL RECALL-FLG=SPACE
            MOVE SPACE TO RECALL-FLG

        PERFORM L-PROC

END-PERFORM.
*--<P写入

PERFORM  IO-W03-WT*-SEC.

PERFORM  IO-W03-UP*-SEC.
				
				<dp n="d34"/>
*--<后处理>--

PERFORM FIN-PROC.
  MAIN-END.

EXIT PROGRAM.
*               ******************
*               *     前处理     *
*               ******************
  INIT-PROC SECTION.
      INIT-START.
*--<初始值设定>--

INITIALIZE        PALETTE-WORK.

INITIALIZE        WK-FILE-STATUS.

INITIALIZE        FILE-STATUS.

MOVE   SPACE      TO FLAME-FLG OF CTRL-AREA.

MOVE 05           TO RECALL-MAX.

MOVE HIGH-VALUE   TO RECALL-FLG.
*--<级号设定>--            ·

MOVE STAGE-NO OF CTRL-AREA TO PS.

IF (PS<1) OR (PS>5)

   MOVE“STAGEERR”TO MSG-NO

END-IF.
*--<画面项目“空”的设定>--(LOW-VALUE/ALL“9”)

   MOVE LOW-VALUE TO WK-@%1@.
*--<W03“空”的设定>--(LOW-VALUE/ALL“9”)

   MOVE LOW-VALUE TO WK-ITEMS.

   MOVE WK-@%1@  TO W03-@%1@.
				
				<dp n="d35"/>
*--<初始化>--

INITIALIZE  W03-NON.

INITIALIZE  W03-CNT.
INIT-EXIT.

EXIT.
*             *********************
*             *     拓扑要素      *
*             *********************
Y-PROC SECTION.
    Y-START.
  *--<@%1@

 COPY @%1@.
Y-EXIT.

EXIT.
*             ********************
*             *     逻辑要素     *
*             ********************
L-PROC SECTION.
    L-START.

*--<@%1@

   COPY @%1@.
L-EXIT.
   EXIT.
*             ********************
*             *      后处理      *
*             ********************
				
				<dp n="d36"/>
FIN-PROC SECTION.
    FIN-START.
    *--<文件关闭>
    FIN-EXIT.

EXIT.
*        **************************************
*        *         拓扑要素- section群        *
*        **************************************
*--<@%1@

        COPY @%1@.
*        **************************************
*        *         逻辑要素-section群         *
*        **************************************
*--<@%1@

        COPY @%1@.
*        **************************
*        *      文件    I/O       *
*        **************************
*           ********************
*           *读入子程序
*           ********************
*--<顺序读?@%8@>--
IO-W03-@%7@-SEC SECTION.
IO-W03-@%7@-START.
   IF @%7@-OPEN NOT=“1”

  OPEN INPUT @%16@
				
				<dp n="d37"/>
       MOVE“1”TO @%7@-OPNS

END-IF.

        READ @%16@ AT END

                    MOVE“E”TO F-END

                    GO TO IO-W03-@%7@-EXIT

        END-READ.
IO-W03-@%7@-EXIT.

EXIT.
*--<键读?@%8@>--
IO-W03-@%7@-SEC SECTION.
IO-W03-@%7@-START.

IF @%7@-OPNS NOT=“1”

   OPEN INPUT @%16@

   MOVE “1”TO @%7@-OPNS

END-IF.

IF @%7@-REDS NOT=“1”

   READ @%16@ INVALID

            MOVE “IV”TO @%7@-INVS
            GO TO IO-W03-@%7@-EXIT
   END-READ

   MOVE“1”TO @%7@-REDS
IO-W03-@%7@-EXIT.

EXIT.
*                ********************
*                *    写入子程序
*                ********************
				
				<dp n="d38"/>
*--<写入@%8@>--
IO-W03-@%7@-SEC SECTION.
IO-W03-@%7@-START.

IF @%7@-OPNS NOT=“1”

   OPEN OUTPUT @%16@

   MOVE“1”TO @%7@-OPNS

END-IF.

WRITE @%16@-REC INVALID

   MOVE“IV”TO @%7@-INVS

   GO TO IO-W03-@%7@-EXIT

END-WRITE.
IO-W03-@%7@-EXIT.

EXIT.
*                ********************
*                *    更新子程序
*                ********************
IO-W03-@%7@-SEC SECTION.
    IO-W03-@%7@-START.
    *--<键读?@%8@>--

IF @%7@-OPNS NOT=“1”

   OPEN I-O @%16@

   MOVE“1”TO @%7@-OPNS

END-IF.
*--<键设定

   MOVE WFL-RD?-KEY-#1 TO键设定域

   READ @%16@ INVALID
				
				<dp n="d39"/>
              MOVE“IV”TO @%7@-INVS
              GO TO IO-W03-@%7@-EXIT

    END-READ.

*--<更新数据?@%8@>--
IF @%7@-INVS NOT=“IV”

   REWRITE @%16@-REC INVALID

              MOVE“IV”TO @%7@-INVS

              GO TO IO-W03-@%7@-EXIT

   END-REWRITE

END-IF.

      IO-W03-@%7@-EXIT.

        EXIT.
    *
再有,在上述程序中,
%24与%16+STS对应,
%17与定义表的文件名称对应,
%9与定义表的文件单词标识符对应,
%7与定义表的文件的R-NO对应,
%1与W0n对应。
对于以上未定义的W03逻辑要素群和W03相位元件群和未定义的W03台车函数,同样进行定义并生成程序。
此外,对于W02逻辑要素、W02台车函数、W04逻辑要素、W04拓扑要素和W04台车函数,也同样自动生成程序。
而且,这些拓扑要素、逻辑要素和台车函数的程序在编入部805中被编入台车链接函数中,并由输出部806输出。
如上所述,若按照本发明,无论是台车函数、拓扑要素还是逻辑要素,只使用数据区的地址就能够实现逻辑,所以,能够自动生成业务用软件,游戏用软件及其他各领域的软件,而且用该生成出来的软件,能够提高生产效率,使产品质量一致,提高维护性。
工业上利用的可能性
如上所述,本发明的软件生成装置和软件生成方法,无论是台车函数、拓扑要素还是逻辑要素,只使用数据区的地址就能够实现逻辑,此外,软件生成的自动化也容易实现,所以,对于业务用软件、游戏用软件及其它各领域的软件的软件生成很有用,同时,对软件的维护也很有用。特别适用于对生产效率、产品质量的一致性和容易维护等有要求的软件的生成和维护。

Claims (2)

1、一种软件生成装置,具备下述结构:
(a)具有对存在于生产软件所必要的画面、文件或帐单(以下,称画面、文件或帐单为‘定义体’)中的所有的单词作成的、且分别对定义体和单词附加了定义体标识符和单词标识符的、用来进行画面编辑的W04拓扑要素和W04逻辑要素、用来决定处理路径的W02逻辑要素和用来进行文件更新的数据编辑的W03拓扑要素和W03逻辑要素的结构,其中:
(a-1)W04拓扑要素的作用是:在相同单词的W03的数据区不为‘空’的情况下,将该W04的该数据区设定为上述相同单词的W03的数据区的值,
(a-2)W04逻辑要素的作用是:在该单词的W04的数据区不为‘空’的情况下,当相同单词的W02或W03的不成立标志置位时,在使不成立代码置位的同时使不成立标志复位,当该单词的W04的数据区为‘空’时,从该单词以外的单词的W04的数据区导出该单词的设定值,并将该设定值设定在该单词的W04的数据区内,在不能导出上述设定值的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立代码置位,
(a-3)W02逻辑要素的作用是:当该单词的W02的数据区不为‘空’时,设定处理路径标志,在处理路径标志设定不成立的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立标志置位,
(a-4)W03拓扑要素的作用是:在相同单词的W02的数据区不为‘空’的情况下,将该W03的该数据区设定为上述相同单词的W02的数据区的值,
(a-5)W03逻辑要素的作用是:在该单词的W03的数据区为‘空’的情况下,从该单词以外的单词的W03的数据区导出该单词的设定值,并将该设定值设定在该单词的W03的数据区内,在不能导出上述设定值的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立标志置位;
(b)具有在对每一个画面将存在于该画面上的单词的各W04拓扑要素和W04逻辑要素按拓扑要素群、逻辑要素群的顺序整理成可执行的元素序列的同时编入各单词的各W04数据区的W04台车、在对每一个画面将存在于该画面上的单词的各W02逻辑要素整理成可执行的元素序列的同时编入各单词的各W02数据区的W02台车和在将存在于系统内的全部定义体上的单词的各W03拓扑要素和W03逻辑要素按拓扑要素群、逻辑要素群的顺序整理成可执行的元素序列的同时编入各单词的各W03数据区的W03台车的台车群;
(c)当在执行各台车内的各拓扑要素和逻辑要素的同时该台车内的台车再起动标志置位时、使其再执行该台车内的各拓扑要素和逻辑要素的结构;
(d)根据上述W04台车的执行将画面数据发送到计算机的画面上、接收对该发送画面的回答画面数据并执行上述W02台车、根据该W02台车的上述处理路径标志决定下一个处理路径、根据已决定的处理路径执行上述W03台车的结构,
其特征在于,具有:
将上述定义体标识符、上述单词标识符、上述处理路径和用来导出上述设定值的导出数据未定义的W04拓扑要素、W04逻辑要素、W02逻辑要素、W03拓扑要素和上述(b)的台车群及(c)的结构预先存储起来的结构;
对每一个上述单词输入上述定义体标识符、上述单词标识符、上述处理路径和上述导出数据的结构;
把上述对每一个上述单词输入的上述定义体标识符、上述单词标识符、上述处理路径和上述导出数据填入上述已存储的未定义的W04拓扑要素、W04逻辑要素、W02逻辑要素、W03拓扑要素和上述(b)的台车群及(c)的结构的规定位置的结构。
2、一种软件生成方法,具备下述结构:
(a)具有对存在于生产软件所必要的画面、文件或帐单(以下,称画面、文件或帐单为‘定义体’)中的所有的单词作成的、且分别对定义体和单词附加了定义体标识符和单词标识符的、用来进行画面编辑的W04拓扑要素和W04逻辑要素、用来决定处理路径的W02逻辑要素和用来进行文件更新的数据编辑的W03拓扑要素和W03逻辑要素的结构,其中:
(a-1)W04拓扑要素的作用是:在相同单词的W03的数据区不为‘空’的情况下,将该W04的该数据区设定为上述相同单词的W03的数据区的值,
(a-2)W04逻辑要素的作用是:在该单词的W04的数据区不为‘空’的情况下,当相同单词的W02或W03的不成立标志置位时,在使不成立代码置位的同时使不成立标志复位,当该单词的W04的数据区为‘空’时,从该单词以外的单词的W04的数据区导出该单词的设定值,并将该设定值设定在该单词的W04的数据区内,在不能导出上述设定值的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立代码置位,
(a-3)W02逻辑要素的作用是:当该单词的W02的数据区不为‘空’时,设定处理路径标志,在处理路径标志设定不成立的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立标志置位,
(a-4)W03拓扑要素的作用是:在相同单词的W02的数据区不为‘空’的情况下,将该W03的该数据区设定为上述相同单词的W02的数据区的值,
(a-5)W03逻辑要素的作用是:在该单词的W03的数据区为‘空’的情况下,从该单词以外的单词的W03的数据区导出该单词的设定值,并将该设定值设定在该单词的W03的数据区内,在不能导出上述设定值的情况下,当可能再起动时,将再起动标志置位,当不可能再起动时,将不成立标志置位;
(b)具有在对每一个画面将存在于该画面上的单词的各W04拓扑要素和W04逻辑要素按拓扑要素群、逻辑要素群的顺序整理成可执行的元素序列的同时编入各单词的各W04数据区的W04台车、在对每一个画面将存在于该画面上的单词的各W02逻辑要素整理成可执行的元素序列的同时编入各单词的各W02数据区的W02台车和在将存在于系统内的全部定义体上的单词的各W03拓扑要素和W03逻辑要素按拓扑要素群、逻辑要素群的顺序整理成可执行的元素序列的同时编入各单词的各W03数据区的W03台车的台车群;
(c)当在执行各台车内的各拓扑要素和逻辑要素的同时该台车内的台车再起动标志置位时、使其再执行该台车内的各拓扑要素和逻辑要素的结构;
(d)根据上述W04台车的执行将画面数据发送到计算机的画面上、接收对该发送画面的回答画面数据并执行上述W02台车、根据该W02台车的上述处理路径标志决定下一个处理路径、根据已决定的处理路径执行上述W03台车的结构,
其特征在于:
将上述定义体标识符、上述单词标识符、上述处理路径和用来导出上述设定值的导出数据未定义的W04拓扑要素、W04逻辑要素、W02逻辑要素、W03拓扑要素和上述(b)的台车群及(c)的结构预先存储起来;
对每一个上述单词输入上述定义体标识符、上述单词标识符、上述处理路径和上述导出数据;
把上述对每一个上述单词输入的上述定义体标识符、上述单词标识符、上述处理路径和上述导出数据填入上述已存储的未定义的W04拓扑要素、W04逻辑要素、W02逻辑要素、W03拓扑要素和上述(b)的台车群及(c)的结构的规定位置。
CN99806399A 1998-03-20 1999-03-19 软件生成装置和软件生成方法 Pending CN1301362A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP7183898 1998-03-20
JP71838/1998 1998-03-20

Publications (1)

Publication Number Publication Date
CN1301362A true CN1301362A (zh) 2001-06-27

Family

ID=13472094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN99806399A Pending CN1301362A (zh) 1998-03-20 1999-03-19 软件生成装置和软件生成方法

Country Status (6)

Country Link
US (1) US6792594B1 (zh)
EP (1) EP1071009A4 (zh)
KR (2) KR20010071116A (zh)
CN (1) CN1301362A (zh)
CA (1) CA2324455A1 (zh)
WO (1) WO1999049387A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107207023A (zh) * 2015-01-20 2017-09-26 三菱电机株式会社 软件生成装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005651A (ja) * 1999-06-21 2001-01-12 Institute Of Computer Based Software Methodology & Technology ソフトウェアの決定方法、ソフトウェアの使用方法、記録媒体、処理装置、ソフトウェアの保守方法、ソフトウェアの移植方法、ソフトウェアの管理方法、処理経路図の作成方法、パレット関数の作成方法、パレットの領域の決定方法、パレット連鎖関数の作成方法、位相要素の作成方法、論理要素の作成方法、作用要素の作成方法、ソフトウェアの実装方法、ソフトウェア開発方法、データ構造の置換方法、データ値の置換方法、従来型プログラムの分析方法、ソフトウェア開発管理方法、ソフトウェアの運用管理方法、並列コンピュータ及び判断補助装置
WO2001035213A1 (fr) * 1999-11-11 2001-05-17 Information System Development Institute Procede et dispositif de reproduction de programme, et support de programme pour enregistrement de reproduction de programme
AU2001258853A1 (en) * 2000-05-30 2001-12-11 Information System Development Institute Processing method using synchronization structure of information processor
WO2002042904A1 (fr) * 2000-11-24 2002-05-30 The Institute Of Computer Based Software Methodology And Technology Procede de specification, de validation, de verification et de test synchrones de logiciel
US6836884B1 (en) * 2001-06-04 2004-12-28 Microsoft Corporation Method and system for editing software programs
KR20050118177A (ko) * 2003-03-10 2005-12-15 카테나 가부시키가이샤 Lyee지향 소프트웨어에 관한 정적(靜的)분석방법
JPWO2005029321A1 (ja) * 2003-09-19 2007-11-15 カテナ株式会社 プログラムの変換方法及び変換ツール
CN1856769A (zh) * 2003-09-22 2006-11-01 珂特那株式会社 软件生成方法
JP2005115498A (ja) * 2003-10-06 2005-04-28 Catena Corp ソフトウェア開発前処理方法、ソフトウェア制御方法、ソフトウェア開発方法並びにソフトウェア開発装置
US20060229888A1 (en) * 2005-03-31 2006-10-12 Renzo Colle Defining transaction processing for a computer application
CN102479079B (zh) * 2010-11-29 2015-04-01 中兴通讯股份有限公司 应用生成方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04142622A (ja) * 1990-10-04 1992-05-15 Oki Electric Ind Co Ltd プログラムジェネレータ
JPH0588863A (ja) * 1991-09-27 1993-04-09 Kyoraku Co Ltd プログラム開発支援システム
EP0859313A4 (en) * 1995-10-30 1999-01-13 Fumio Negoro PROCESS, PROCESSOR AND RECORDING MEDIUM FOR THE PRODUCTION OF SOFTWARE
WO1998019232A1 (fr) * 1996-10-30 1998-05-07 Information System Development Institute Procede de production de logiciel, procede de traitement et support d'enregistrement
US5860004A (en) * 1996-07-03 1999-01-12 Sun Microsystems, Inc. Code generator for applications in distributed object systems
US6055369A (en) * 1997-05-06 2000-04-25 Hitachi Software Engineering Co., Ltd. Apparatus for visual programming with screen flow
US6357039B1 (en) * 1998-03-03 2002-03-12 Twelve Tone Systems, Inc Automatic code generation
US6163878A (en) * 1998-03-31 2000-12-19 Jereme Kohl Method and system for designing, generating and storing applications
US6011918A (en) * 1998-04-22 2000-01-04 International Business Machines Corporation Methods, systems and computer program products for generating client/server applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107207023A (zh) * 2015-01-20 2017-09-26 三菱电机株式会社 软件生成装置

Also Published As

Publication number Publication date
KR20010071116A (ko) 2001-07-28
EP1071009A4 (en) 2002-07-17
WO1999049387A1 (fr) 1999-09-30
CA2324455A1 (en) 1999-09-30
EP1071009A1 (en) 2001-01-24
US6792594B1 (en) 2004-09-14
KR20010041783A (ko) 2001-05-25

Similar Documents

Publication Publication Date Title
CN1293465C (zh) Gui显示装置及光标或gui组件动画显示处理方法
CN100347696C (zh) 企业业务过程管理的方法和系统
CN1142489C (zh) 信息处理方法和服务器
CN1149492C (zh) 遥控方法和服务器
CN1542584A (zh) 程序电子水印处理装置
CN1783075A (zh) 用于显示网络数据的方法、设备、处理器配置
CN1074319A (zh) 电信交换系统的软件结构
CN1568458A (zh) 无需修改现有代码即可增加新软件特征的方法
CN1885295A (zh) 使用逻辑单元建置集成电路
CN1680959A (zh) 进程编辑设备和方法以及进程管理设备和方法
CN1190741C (zh) 用于支持数据事务的设备和方法
CN1707431A (zh) 信号处理装置及其方法
CN1319210A (zh) 可配置的硬件块的配置方法
CN1301362A (zh) 软件生成装置和软件生成方法
CN1740970A (zh) 无缝地比较对象的系统和方法
CN1474979A (zh) 用于专家系统的定制规则系统和方法
CN1276575A (zh) 数据库存取系统
CN1174319C (zh) 数据结构管理装置、数据结构管理系统和方法
CN1722140A (zh) 信息处理设备及信息处理方法
CN1098501C (zh) 用于sql关系数据库的仿真器及方法
CN1758222A (zh) 程序处理装置
CN1601543A (zh) 工作流管理设备及方法
CN1633638A (zh) 在外貌特征模式中带有总功能特性的连接实体
CN1737802A (zh) 信息处理设备与方法、记录介质,以及程序
CN1728093A (zh) 生成比特块传输函数的交叉平台运行时间代码

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication