CN104813287B - 程序及设计书的生成装置以及程序 - Google Patents

程序及设计书的生成装置以及程序 Download PDF

Info

Publication number
CN104813287B
CN104813287B CN201380061104.7A CN201380061104A CN104813287B CN 104813287 B CN104813287 B CN 104813287B CN 201380061104 A CN201380061104 A CN 201380061104A CN 104813287 B CN104813287 B CN 104813287B
Authority
CN
China
Prior art keywords
program
information
generation
design
design sheets
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.)
Active
Application number
CN201380061104.7A
Other languages
English (en)
Other versions
CN104813287A (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Publication of CN104813287A publication Critical patent/CN104813287A/zh
Application granted granted Critical
Publication of CN104813287B publication Critical patent/CN104813287B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种程序及设计书的生成装置,其用于分别生成构成应用程序的多个程序和所述各程序的设计书。程序及设计书的生成装置根据应用生成控制文件从作为每个应用模式的模板文件定义信息的元模型信息生成程序种类对应的每个应用模式对应的程序一览,并根据程序一览进行程序生成以及设计书生成。因此,能够可变地控制程序生成处理,也能够生成各种应用模式对应的程序。

Description

程序及设计书的生成装置以及程序
技术领域
本发明的实施方式涉及一种用于生成程序及其设计书的程序及设计书的生成装置以及程序及设计书的生成程序。
背景技术
从减轻开发工作的负担或降低开发成本的角度,提出了一种用于生成程序及其设计书的技术。
背景技术文献
专利文献
专利文献1:日本发明专利公开第2005-228235号公报
专利文献2:日本发明专利公开第2004-318260号公报
发明内容
本发明的目的是提供一种使程序生成处理可变,且生成应用模式的其他程序以及设计书的程序及设计书的生成装置以及程序。
本实施方式的程序及设计书的生成装置,其用于分别生成构成应用程序的多个程序和所述各程序的设计书,其特征在于,具有:第一存储部,其对于应用程序的每个模式存储程序模板文件以及设计书模板文件;第二存储部,其存储包含有第一信息和第二信息的、按所述模式区分预先对生成各程序所使用的程序模板文件群进行定义的模板文件定义信息,其中,所述第一信息对用于生成构成应用程序的程序的所述程序模板文件进行定义,所述第二信息与所述第一信息成对,对根据所述程序模板文件生成的程序的生成目标进行定义;第三存储部,其存储每个所述模式的应用生成控制信息;第四存储部,其存储用户输入的应用程序的设计信息;生成处理解析执行部,其根据所述设计信息、所述模板文件定义信息、所述应用生成控制信息,确定与所述模板文件定义信息所包含的特定的模式关联的程序模板文件群,而生成程序生成信息,所述程序生成信息是由所确定的程序模板文件群的各程序模板文件生成的各程序的生成信息,包含与每个所生成的程序相应的所述第一信息以及所述第二信息;程序生成部,其根据所述程序生成信息,使用由所述第一信息指定的程序模板文件生成程序,并将生成的程序存储到由所述第二信息指定的生成目标;设计书生成部,其使用与所述程序生成信息的所述模式相应的所述设计书模板、所述设计信息、所述程序生成信息,生成对于生成各个所述程序生成信息的所述第二信息的每个程序进行记述的设计书。
附图说明
图1是表示第一实施方式的程序及设计书的生成装置的结构以及系统结构的图。
图2是表示第一实施方式的应用模式A的模板定义信息(元模型信息A)的一个例子的图。
图3是表示第一实施方式的模型信息的一个例子的图。
图4是表示图3中连续模型信息的一个例子的示意图。
图5是表示第一实施方式的应用生成控制文件的一个例子的图。
图6是表示第一实施方式的程序一览的一个例子的图。
图7是表示输入第一实施方式的表设计信息说明的界面例的图并且是表示工具信息输入界面的一个例子的图。
图8是表示输入第一实施方式的表设计信息说明的界面例的图并且是表示应用信息输入界面的一个例子的示意图。
图9是表示输入第一实施方式的表设计信息说明的界面例的图并且是表示应用模式信息输入界面的一个例子的示意图。
图10是表示输入第一实施方式的表设计信息说明的界面例的图并且是表示表信息输入界面的一个例子的示意图。
图11是表示第一实施方式的应用模式B的模板定义信息(元模型信息B)的一个例子的图。
图12是表示第一实施方式的模型信息的一个例子的图。
图13是表示第一实施方式的应用生成控制文件的一个例子的图。
图14是表示第一实施方式的程序一览的一个例子的图。
图15是表示输入第一实施方式的表设计信息说明的界面例的图也是表示应用信息输入界面的一个例子的示意图。
图16是是表示输入第一实施方式的表设计信息说明的界面例的图也是表示界面信息输入界面的一个例子的示意图。
图17是表示第一实施方式的应用模式C的模板定义信息(元模型信息C)的一个例子的图。
图18是表示第一实施方式的应用生成控制文件的一个例子的图。
图19是表示第一实施方式的程序一览的一个例子的图。
图20是表示第一实施方式的模式定义文件的一个例子的图。
图21是表示第一实施方式的模式定义文件1的构成例的图。
图22是表示第一实施方式的模式定义文件2的构成例的图。
图23是表示第一实施方式的模式定义文件3的构成例的图。
图24是表示第一实施方式的模式定义文件4的构成例的图。
图25是第一实施方式的程序及设计书的生成装置的序列图。
图26是第一实施方式的程序及设计书的生成装置的序列图。
图27是表示第一实施方式的程序及设计书的生成装置的处理流程的流程图。
图28是表示图27中连续的程序及设计书的生成装置的处理流程的流程图。
图29是表示第一实施方式的根目录信息的一个例子的图。
图30是表示第一实施方式的模板文件设定信息的一个例子的图。
图31是表示第一实施方式的模板文件信息的一个例子的图。
图32是表示第一实施方式的相对路径信息的一个例子的图。
图33是表示第一实施方式的复制对象文件信息的一个例子的图。
图34是表示第一实施方式的复制原文件信息的一个例子的图。
图35是表示第一实施方式的复制原文件信息的一个例子的图。
符号说明
100 程序及设计书的生成装置
101 元模型存储部
102 模板存储部
103 库存储部
104 模型信息存储部
105 设计书存储部
106 程序存储部
107 整体控制部
108 设计信息输入部
109 验证部
110 模型信息输出部
111 设计书生成部
112 程序生成部
113 生成处理解析执行部
114 模块设定部
200 用户终端
300 数据库
400 互联网
具体实施方式
下面参照附图对实施方式进行说明。
本实施方式的程序及设计书生成装置根据用户输入的设计信息生成适用于程序模板并构成应用程序的各程序,并且生成适用于设计书模板的该程序的设计书。
尤其是,通过追加或变更作为设计雏形的模板增加灵活性,并且对于每个与程序种类对应的应用模式,对程序生成处理进行可变控制,由此能够生成对应于各种应用模式的程序,并且能够实现提高生产效率以及降低开发成本的应用开发。
(第一实施方式)
图1~图35是表示第一实施方式的程序及设计书的生成装置以及系统构成的图。在以下说明中,以Java(注册商标)程序为例进行说明,但并不限于此,本发明同样能够适用于其他任意程序。
本实施方式的程序及设计书的生成装置(以下称为生成装置)100,通过互联网400连接用户终端200以及数据库300。
生成装置100包括:元模型存储部101、模板存储部102、库存储部103、模型信息存储部104、设计书存储部105以及程序存储部106的各存储部、整体控制部107、设计信息输入部108、验证部109、模型信息输出部110、设计书生成部111、程序生成部112、生成处理解析执行部113以及模块设定部114的各部分。
本实施方式的程序生成以及设计书生成,是利用用户输入的设计信息以及预先准备的模板从设计信息和程序模板1022生成程序106a,并从设计信息和设计书模板1023生成设计书105a。
另外,本实施方式的生成装置100可变地控制对应于程序种类的各应用模式的程序生成处理,并生成应用模式的其他的程序106a以及设计书105a。
应用模式是表示生成的程序的种类(例如:表、界面等应用程序的种类)的模式,在各应用模式中,程序模板1022以及设计书模板1023分别存储在模板存储部102中。
本实施方式的应用模式表示利用生成装置100生成可多个种类的程序规格,但除此之外,也含有例如用于变更应用动作的必要或者任意参数的概念。
本实施方式的程序生成使用元模型信息1011,并将从用户输入的设计信息输出的模型信息1041作用于元模型信息1011,且将应该生成的程序一览生成于各应用模式,该元模型信息1011包含有定义在各应用模式生成的程序106a的设计雏形(程序模板1022)的信息以及定义由该设计雏形作成的程序106a的生成目标的信息。
利用以应用模式区分生成的程序一览,将模型信息1041作用于在程序一览确定的各程序模板1022生成程序106a,并分别根据在该程序一览中与各程序模板关联的程序生成目标(含有表示程序生成目标的相对路径和生成的程序文件名的相对路径信息),将生成的各程序106a写入(存储)程序。
另外,本实施方式的设计书生成使用生成的程序106a的应用模式,即对应于设计信息的应用模式所对应的设计书模板1023,生成分别含有该程序一览中与各程序模式1022关联的作为程序生成目标的相对路径信息的设计书105a,并将其存储于设计书存储部105。
如上所述,元模型信息1011是包含有定义程序106a设计雏形的信息以及定义由该设计雏形作成的程序106a的生成目标信息的模板文件定义信息,并与一个或多个的应用模式关联。
即,元模型信息1011是对于每个生成应用模式程序预先规定生成中使用的必要程序模板群的信息,作为元数据信息1011存储分别对应于应用模式的各模板文件定义信息。
此时,元模型信息1011可包含后述的多个应用模式各自的模板文件定义信息,例如,根据元模型信息1041,仅识别元模型信息内与对应的应用模式相关的程序模板群,并且也能够进行将该应用模式作为对象的程序生成以及设计书生成。
元模型存储部101对于多个应用模式的每个,存储多个元模型信息1011;根据生成的程序的种类仅存储对应于确定应用模式的元模型信息;存储将多个应用模式的每个中的各个模板文件定义信息集中为1个的元模型信息。
例如,应用模式A(AppPattern1)能够作为表设计用应用模式定义。这种情况下,图2所示的表用的元模型信息1011A被存储于元模型信息101,同时对应于应用模式A的多个程序模板1022A以及设计书模板1023A存储于模板存储部102。
图2是表示对应于应用模式A的元模型信息1011A的一个例子的图。如图2所示,元模型信息1011A预先定义(记述)用于生成表用应用程序的多个程序模板,即,在应用模式A的程序生成中使用的程序模板A群。
(0026)
在“input”中记述向程序生成部112输入的程序模板文件的信息。具体地,是形成为设计雏形的程序模板文件名。在“output”中记述使程序生成部112输出的程序生成目标,并含有根目录信息和相对路径信息。“input”以及“output”是对于程序生成部112的控制命令,“input”和“output”相对于程序生成使用的模板形成为一对。
另外,例如,应用模式B(AppPattern2)能够定义为界面设计用的应用模式。这种情况下,使界面用元模型信息1011B存储于元模型信息101,并且将对应于应用模式B的多个程序模板1022B以及设计书模板1023B存储于模板存储部102。
另外,例如,应用模式C(AppPattern3)能够定义为表设计以及界面设计用的应用模式。这种情况下,表以及界面用元模型信息1011C被存储于元模型信息101,并且将对应于应用模式C的多个程序模板1022C以及设计书模板1023C存储于模板存储部102。
程序模板1022C以及设计书模板1023C能够将应用模式A、B分别组合利用。例如,作为对应于元模型信息1011C的多个程序模板1022以及设计书模板1023能够将该应用模式A、B的各个程序模板1022A、1022B以及设计书模板1023A、1023B组合并直接利用。
另外,上述应用模式是一个例子,也能够定义对应于其他程序的种类的应用模式,并适用于定义的应用模式对应的元模型信息1011、多个程序模板1022以及设计书模板1023。
另外,例如,也能够定义1个的应用模式按照程序规格进一步细化的应用模式。具体地,即使是相同的表设计或者/以及界面设计的应用模式,也能够面对个人计算机的每个不同的规格(java、.net)分别定义应用模式,也能够进行使用对应于各应用模式的元模型信息1011、多个程序模板1022以及设计书模板1023进行程序生成以及设计书生成。作为其他例子,能够对相同的表设计或者/以及界面设计的应用模式中,将面对个人计算机以及面对移动终端的每个分别定义应用模式。
接着,详细说明元模型信息1011的构成。元模型信息1011是规定每个应用模式使用的具体模板文件以及生成的程序的生成目标(包含文件名)的定义信息。能够采用图29~图35所示的各种信息作成。
图29所示的根目录信息101A是表示每个生成的程序的种类(应用模式)以哪一个目录作为基点生成的信息。例如,由每个表生成的Java语言产生的程序源文件,可以规定为(system_id)/WEB-INF/src/(class_name_prefix)/(table_id)。(system_id)与表示模型信息1041内的应用程序的程序ID,(class_name_prefix)与应用程序的包名,(table_id)与表ID,是分别对应的变量(第1根目录)。例如,采用模型信息1041A的程序ID(假定为userlist)、包名(假定为foo.bar)、表ID(假定为emp),使生成该程序源文件的基点目录为userlist/WEB-INF/src/foo/bar/emp。
另外,对于每个界面生成的Java语言产生的程序源文件可规定为(system_id)/WEB-INF/src/(class_name_prefix)。(system_id)与表示模型信息1041内的应用程序的程序ID,(class_name_prefix)与应用程序的包名,是分别对应的变量(第2根目录)。另外,在图29所示的例子中,根目录信息可以包含有表示在每种复制对象文件中的复制目标的第3根目录。
图31所示的模板文件信息101C表示生成程序106a时使用的具体的表示模板文件的信息。例如,
“lib/template/srcTemplate/controlTemplate/control_action.vm”是用于生成称为“Action”程序而采用的模板文件。即,使用模板文件“control_action.vm”生成称为“Action”的程序。用于生成“Action”的程序的模板文件“control_action.vm”可与模板确定键“control_action”关联,也能够将各模板文件分别与模板确定键关联。
图30是模板文件设定信息101B的一个例子。模板文件设定信息101B是以模板确定键定义是采用具体的哪一模板文件生成程序的信息。
如图30所示,例如,模板文件设定信息101B具有作为指定对于每个表生成的java文件的模板文件的信息的属性名“java_table”,并将模板确定键“control_action”、“control_service”、“control_dao”、“control_ds”分别与属性名「java_table」关联。
属性名是将使用的程序模板相对于包含于各应用模式或者模型信息1041分组的信息。例如,属性名“java_table”如上所述,规定对于每个表生成的java文件的模板文件群的组,属性名“java_application”规定对于每个界面生成的java文件的模板文件群的组。
这些属性名“java_table”、“java_application”与应用模式虽不直接关联,但是能够预先定义,例如属性名“java_table”与应用模式A对应,属性名“java_application”与应用模式B对应。
另外,也可规定直接记述应用模式名的属性名。例如,能够规定称为“java_application.pattern.AppPattern1”的属性名,并利用模板确定键将其与模板文件关联。这种情况下,即使作成相同的表的属性,在上述程序规格不同的情况或按照选择使用的模板不同的情况下,属性名“java_table”被共同使用,而且可以规定使用每个应用模式不同的“java_application.pattern.AppPattern_n”(n为应用模式)或者以每个选择的属性名规定的模板文件。
因此,例如,当生成应用模式A的程序时,能够确定以“java_table”或者“java_application.pattern.AppPattern1”等的属性名使用的模板文件,也能够将对于每个应用模式使用的模板文件群作成元模型信息1011。
因此,在图30所示的模板文件设定信息101B中,将模板文件分别写入每个应用模式,并将关联1个或多个模板确定键的属性名和应用模式关联,因此能够抽出每个应用模式使用的模板文件,也能够作成各应用模式对应的模板定义信息(元模型信息)。
图30所示的模板文件设定信息101B,对于其他的说明,例如每个表生成的程序106a具有Action、Service、DAO、DS等典型的程序,将这些以“java_table”属性名定义。
图32是表示相对路径信息101D的一个例子的图。相对路径信息101D是将每种生成的程序种类的根目录表示为作为基点的程序生成目标的信息。例如,“Action”程序的生成目标是requestHandler/(table_id_caps)Action.java。(table_id_caps)是指“表ID的首字母为大写字母的字符串」的变量。例如,适用于模型信息1041内的emp、dept这2个格表ID,各表ID的每个“Action”程序为requestHandler/EmpAction.java和requestHandler/DeptAction.java。同样地,界面设计用程序的生成目标含有(screen_id_caps)(界面ID的首字母为大写字母的字符串)。
另外,生成的程序106a根据上述根目录信息101A和程序生成目标的相对路径信息101D生成在程序生成目标指定的目录。
接下来,从图33~图35分别表示以下文件信息的例,即,表示存储于库存储部103的复制对象文件的每个种类的复制原文件名的复制对象文件信息101E、表示每个复制原文件名的复制原文件的存储位置的复制原文件信息101F、表示每个复制原文件名的复制对象文件名的复制对象文件信息101G。
库存储部103中预先写入调用库103a。调用库103a是对生成的程序在编译时和执行时参照的现有库。用于将应用的结构规定为规定的构造型的框架库或者日志等通用的处理的组件库。概括地讲,就是降低生成的程序的源代码的冗余性。
复制对象文件信息101E是表示复制文件的信息。例如,利用称为jar的键,将对应于该键的应复制文件的种类确定为commons-beanutils、commons-digester、jakarta-orostruts、procomposer、log4j、commons-collections 6种。各文件的复制源和复制目标由复制原文件信息101F以及复制目标文件信息101G定义。例如,称为procomposer的应该复制文件的种类的复制源是由复制原文件定义信息101F定义的lib/reference/procomposer_rt.jar。另外,该文件的复制目标是由复制目标文件定义信息101G定义的procomposer_rt.jar,与图29的例子相同,以复制目标为基点的根目录能够以根目录定义信息101A中称为jar的属性名规定,该基点含有与表示模型信息1041内的应用程序的程序ID相对应的变量(system_id),即(system_id)/WEB-INF/lib。
通过以上,能够为每个生成的程序的应用模式制作使用的模板、用于作成程序的目录以及基点、应该复制的文件、确定复制目标的元模型信息1011。
整体控制部107为了执行程序生成以及设计书生成而控制各部108~114。整体控制部107使用元模型信息1011、模型信息1041以及应用生成控制文件1021指示生成处理解析执行部113生成用户所期望的对应于应用的模式的程序一览,而且指示程序模板适用于程序生成部112并按照程序一览的各程序的生成。进一步,使设计书模板适用于设计书生成部111,并根据由生成处理解析执行部113生成的程序一览指示设计书的生成。
而且,整体控制部107指示设计信息输入部108验证用户输入的设计信息并指示将设计信息作为模型信息输出,并指示将用于验证设计信息的验证模型以及生产设计书按规定形式输出的设计书生成模型设定于模型设定部114。
图3以及图4是模型信息1041的一个例子。图3以及图4的例子表示表用应用模式A的模型信息1041A。模型信息存储部104存储从模型信息输出部110输出的模型信息1041。
模型信息1041是以不依赖于生成的各程序的具体的规格的抽象形式表现设计信息的数据。模型信息1041的形式,例如,能够使用XML(Extensible Markup Language)形式,也可以使用其他形式。该模型信息1041作为中间形态利用于程序生成和设计书生成。
设计书存储部105存储由设计书生成部111生成的设计书105a。设计书105a是由设计书生成部111生成的设计书,是程序106a的设计书。设计书(设计书模板)包括:例如,(a)界面一览表、(b)界面项目定义表、(c)一览表、(d)表项目定义表、(e)表示类(或者程序)的静态信息一览表或者图表、(f)表示类的相互作用的一览表或者图表等种类。
程序存储部106存储由程序生成部112生成的各程序106a。程序106a是由程序生成部112生成的程序。生成的程序106a仅在适当的测试动作环境下保存,用户即使不进行一切追加的安装也可动作。
设计信息输入部108将用于从用户终端200输入设计信息的用户图提供给使用终端200,并具备:将从用户终端200输入的设计信息暂时存储的功能;将设计信息以及验证指示向验证部109输出的功能;当从验证部109接收的验证结果没有错误(验证成功)时,将设计信息送出至模型信息输出部110的功能。
设计信息例如包括,表设计信息、界面设计信息、表设计+界面设计的设计信息。表设计信息例如输入的项目为,程序的生成目标目录、日志文件用目录、程序ID、程序名称、包名、数据库连接信息、应用程序的模式确定信息、选择的键值、表ID、表名、列ID、列名称、列的型、列的列数·定位数、FK属性、NotNull属性、界面显示属性。
如图7~图10所示,用于输入表设计信息的用户界面例如具有,工具信息输入界面G10、应用信息输入界面G20、应用模式信息输入界面G30、表信息输入界面G40,用于使这些界面显示在用户终端200中的界面数据可在未图中的存储部预先准备。但是,根据各界面的设计信息的输入(用户接口的提供)不是必要,也可省略。设计信息输入部108由于优选从用户终端200输入设计信息,例如,也可从用户终端200接收记述设计信息的Excel(注册商标)等文件。界面设计信息也相同。
首先,设计信息输入部108顺序地向用户终端200提供用于输入设计信息的各界面数据。用户终端200根据用户的操作依次通过工具信息输入界面G10、应用信息输入界面G20、应用模式信息输入界面G30以及表信息输入界面G40将设计信息输入到设计信息输入部108。
如图7所示,工具信息输入界面G10具有用于输入工具信息的输入字段以及按钮。这里,所谓“工具信息”是指用于使程序及设计书的生成装置100动作的基本信息。其包含程序生成目标目录、日志文件用目录的各输入字段。代替向输入字段直接输入,也可以指定(选择)目录。
用户终端200能够根据用户按下“下一个界面”的按钮操作而转移至下一个应用信息输入界面G20。
如图8所示,应用信息输入界面G20具有用于输入应用信息的多个输入字段。这里,所谓“应用信息”是指通过程序及设计书的生成装置100生成的应用的基本信息。
应用信息输入界面G20具有输入程序ID、程序名称、用于将程序包名输入的各输入字段以及用于输入数据库连接信息的输入字段。数据库连接信息可以包括数据库装置300的URL和用于连接的用户名以及密码。用户终端200能够根据用户对“下一个界面”按钮的按下操作,转移到下一个应用模式信息输入界面G30。
如图9所示,应用模式信息输入界面G30具有用于输入应用模式信息的下拉列表以及输入字段。
下拉列表中输入了应用的模式确定信息(应用模式)。用户终端200能够根据用户的选择操作,从预先确定的应用模式中任意选择一个,并输入直接应用模式。
还可追加应用模式。可包含输入选择的键和该键值的输入字段,在该例中,作为选择,因对表的确定列中保存的数值在每次更新进行逐次加法运算而采用防止同一数据的更新矛盾的排他控制方式,将在选择键表示确定列的列ID的键指定为,在选择值中指定为确定列的实际列ID。该选择键和值可以指定为任意个数。用户终端200能够根据用户对“下一个界面”的按下操作转移至下一个表信息输入界面G40。
如图10所示,表信息输入界面G40包括表ID、表名称、列ID、列名称、列类型、列的位数·定位数、PK属性(如果是PK则选择“○”,如果不是PK则选择“-”)、Not Null属性(如果是NotNull则选择“○”,如果容许Null则选择“-”)、界面显示属性(如果阅览该列时界面显示则选择“○”,如果界面不显示则选择“-”)的各输入字段。
用户终端200能够根据用户对“下一个表”按钮的按下操作,为了追加应用生成中使用的表而向新的表信息输入界面G40转移,或者,可向信息输入完成的下一个表信息输入界面G40转移。
验证部109完成通过设计信息输入部108接收设计信息并验证对设计信息的输入不足或矛盾(各输入项目所设定的必要/任意的有无或输入信息的错误)的功能,和将验证结果发送至设计信息输入部108的功能。此时,验证部109根据后述模式定义文件并使用模块设定部113设定的验证模块进行验证。
当验证部109的验证结果是OK时,模块信息输出部110通过设计信息输入部108接收设计信息,并将该设计信息转换为不依赖于各程序的具体规格的抽象形式的模块信息1041并输出,将模块信息1041写入模块信息存储部104。模块信息1041,例如,能够存储对应于表设计信息的模块信息1041A或对应于界面设计信息的模块信息1041B。
如图3和图4所示,模块信息1041A内包括对应于设计信息的各输入项目的各种信息。图3以及图4的例子中,以相同名称表示与图7~图10中所示的用户接口的各输入字段的对应关系。
设计书生成部111根据模块信息存储部104内的模块信息1041、由生成处理解析执行部113生成的程序一览以及模板存储部102内的设计书模板1023完成,生成包含程序文件名一览表示的一览表的设计书105a的功能,和将该设计书105a写入到设计书存储部105的功能。
设计书生成部111能够完成利用后述设计书生成模块以用户期望的输出形式(Excel(注册商标)、Word形式、PDF形式、PowerPoint形式等)将使用设计书模板1023生成的设计书105a输出的功能。
程序生成部112使用模块信息存储部104内的模块信息1041、由生成处理解析执行部113生成的程序一览、模板存储部102内的程序模板文件,并且根据与表ID(界面ID)和相对路径信息生成各程序的文件名,并完成通过使将该文件名为程序模板文件的文件名而生成各程序106a的功能、将该各程序106a写入程序存储部106的程序生成目标的功能、将复制对象文件复制到库存储部103a的功能。
生成处理解析执行部113根据应用生成控制文件1021解析元模型信息1011,生成包含有成对地形成以元模型信息1011定义的模板文件和使用该程序模板所生成的程序的生成目标的多个程序生成信息的程序一览。生成处理解析执行部113将程序一览暂时地存储在规定的存储区域,而且向程序生成部112或设计书生成部111输出。
应用生成控制文件1021A是用于使模型信息1041作用于元模型信息1011并生成在元模型信息1011定义的各模板文件的每一个生成的程序一览的控制信息。应用生成控制文件1021A被存储到每个应用模板的模板存储部102。
例如,如图5所示,第2行指定作为读取对象的元模型信息1011的文件名,第5行指定记载为复制对象文件的调用库的一览的文件。第6~8行指定仅进行一次生成处理的模板。另外,第10~14行指定仅进行表ID的数量的生成处理的模板。这里,第10行是用于提取模型信息1041内的“表设计”相关信息的处理,例如,能够使与图3以及图4所示的模型信息1041A内的table数据相对应,并使模型信息1041内的每个表ID起到元模型信息1011(例如,将表ID编入元模型信息1011内的变量“table_id”)的作用而进行处理。
在本实施方式中,以应用模式外区分,还生成每个表ID或界面ID的应用程序,因此,这些表ID或界面ID能够捕捉作为识别应用程序的应用ID。即,设计信息被输入每个表ID或者界面ID,生成不同于应用模式的表ID数量或界面ID数量的多个应用程序。
第16~18行指定仅复制一次的调用库。在第5行,以指定记载作为复制对象文件的调用库的一览的文件的方式使生成处理解析执行部113动作,在图2所示的元模型信息1011中包含作为预先复制对象文件的调用库的一览时,能够省略第5行处理。例如,在利用其他元模型信息分别定义,定义作为复制对象文件的调用库的信息和模板文件定义信息时,能够在第2行以及第5行分别单独读取各元模型信息。
在图5的例子中,最前面为##的行是注释。另外,$specs表示形成成为输入对象的模型信息1041,$generator表示生成处理解析执行部113本身。#foreach~#end表示循环处理。
图6是表示生成处理解析执行部113生成的程序一览PGL_A的一个例子的图。生成处理解析执行部113从元模型信息1011A、模型信息1041A和应用生成控制文件1021A生成程序一览PGL_A。
如图6所示,程序一览PGL_A的基本构成与元模型信息1011A相同,“input”和“output”相对于使用一个模板的程序生成分别成对地形成的程序生成信息以一览形式记述。“input”记述的程序模板文件名与元模型信息1011A相同,但在编入时,使模型信息1041A内的包名与构成“output”记述的程序文件名的相对路径信息的变量“classNamePrefixPath”相对应,使模型信息1041A内的表ID与变量“table_id”相对应。变量“table_id_headLarge”是指“表ID的首字母为大写字母的字符串”。图6(图2)的例子中,省略了将根目录信息作为“src”的详细记述,实际上上述内容为图29所示的各根目录。
图11是表示界面设计用的元模型信息1011B的一个例子的图,图12是表示模型信息1041B的一个例子的图。而且,图13是表示应用生成控制文件1021B的一个例子的图,图14是表示从元模型信息1011B、模型信息1041B以及应用生成控制文件1021B生成的程序一览PGL_B的图。
图15是表示用于输入界面设计用设计信息的应用信息输入界面G21的一个例子的图,其不含有图8所示表设计用应用信息输入界面G20中用于输入数据库连接信息的输入字段。另外,图16是表示界面信息输入界面G50的一个例子的图。设计信息输入部108根据来自用户的界面设计信息输入要求,提供图7、图15、图9以及图16的各界面,并进行与表设计用设计信息的输入控制相同的控制。
图16的例子中的界面输入界面G50包括,界面ID、界面名、界面分类、界面项目名、界面项目ID、可能输入位数、标签、对象类型、说明的各输入字段。如图12所示,模型信息1041B内包含有对应于设计信息的各输入项目的各种信息。在图12的例子中,将与图7、图15、图9以及图16所示的用户接口的各输入字段的对应关系用相同的名称表示。
界面设计用应用生成文件1021B在第10~14行与图5所示的应用生成控制文件1021A不同,第10~14行记述指定进行界面ID的数量的生成处理的模板的控制信息。另外,第10行是用于提取模型信息1041内的“界面设计”相关信息的处理,例如,对应有图12所示的模型信息1041B内的entry标签,在模型信息1041B内的每个界面ID起到元模型信息1011B(例如,将界面ID编入到元模型信息1011B内的变量“界面ID”)的作用,而进行处理。
图14是表示生成处理解析执行部113生成的程序一览PGL_B的一个例子的图。生成处理解析执行部113从元模型信息1011B、模型信息1041B和应用生成控制文件1021B生成程序一览PGL_B。
如图14所示,程序一览PGL_B的基本构成与元模型信息1011B相同,使“input”和“output”相对于使用一个模板的程序生成分别形成成对地程序生成信息以一览形式记述。“input”记述的程序模板文件名与元模型信息1011B相同,但在编入时,使模型信息1041B内的包名与构成“output”记述的程序文件名的相对路径信息的变量“classNamePrefixPath”相对应,使模型信息1041B内的界面ID与变量“界面ID”相对应。图14(图11)的例子中,省略了将根目录信息作为“src”的详细记述。
另外,图17是表示表设计以及界面设计用元模型信息1011C的一个例子的图,图18是表示应用生成控制文件1021C的一个例子的图。另外,图19是表示从元模型信息1011C、模型信息1041C和应用生成控制文件1021C生成程序一览PGL_C的图。
图17~图19的例子是已经单独说明的表设计和界面设计的组合,元模型信息1011C是指包含有图7~图10的各用户接口输入的表设计信息和从图7、图15、图19以及图16的各用户接口输入的界面设计信息的模板文件定义信息。也就是说,元模型信息1011C分别包含对应于应用模式A的模板文件定义信息和对应于应用模式B的模板文件定义信息。同样,模型信息1041C、应用生成控制文件1021C以及程序一览PGL_C也分别包含各图中说明的每个应用模式A、B的各信息。
从图17~图19的例子可知,当存在多个应用模式时,能够将分别对应这些应用模式的元模型信息1011集中为一个元模型信息1011C使用。即,在本实施方式中,利用应用生成控制文件1021,能够以应用模式区分从元模型信息1011提取程序生成所必要的模板。因此,能够使多个应用模式的每一个将多个元模型信息存储到元模型存储部,并可将多个元模型信息集中为1个元模型信息存储到元模型存储部101。
在这样的本实施方式中,将应用生成控制文件存储到每个应用模式的模板存储部102,使生成处理解析执行部113通过读取每个应用模式中存储的应用生成控制文件,则能够进行仅将确定应用模式(确定程序的种类)作为对象的程序生成或进行将多个确定应用模式作为对象的程序生成。即,生成处理解析执行部113根据应用生成控制文件从作为应用模式的每个模板文件定义信息的元模型信息1011生成对应于程序种类的每个应用模式的程序一览,并根据程序一览进行程序生成,因此能够可变地控制程序生成处理,也能够进行对应于各种应用模式(包括组合)的程序生成。因此,能够实现提高生产率以及降低开发成本的应用开发。
模块设定部114根据模式定义文件1025完成将验证模块设定为验证部109,并将设计书生成模块设定于设计书生成部111的功能。模式定义文件1025不是确定使用的模板信息,而是验证部109以及设计书生成部111定义使用的模块的信息。
图20是表示模式定义文件1025的图。本实施方式的模式定义文件1025能够记载为「键=值」的格式。对于不需要的项目,因不在行记载该项目,则能够控制模块设定部114的模块设定处理。
在图20中,第1行(PATTERN_ID)表示应用模式的标识符。第2行(PATTERN_NAME)表示应用模式的名称。第3行(JAR_FILE)表示包含验证部109或设计书生成部111利用的模块的模块文件名。例如,有Java语言编写的模块被记述为jar文件名。
第4行(VALIDATION_CLASS)表示验证部109利用的模块名,例如当由Java语言编写模块时,其记述为类名。第5行(DOCUMENT_CLASS)表示设计书生成部111利用的模块名,例如当由Java语言编写模块时,其记述为类名。
如上所述,本实施方式的模式定义文件1025是定义验证部109以及设计书生成部111使用的模块的信息,并不需要与应用模式直接关联。即,用户根据生成的程序的应用模式能够改写图20所示的模式定义文件1025内的信息,例如,将1个模式定义文件1025存储到模板存储部102,模块设定部114始终能够读出该1个的模式定义文件1025。规则模块1024也同样,能够将以模式定义文件指定的各模块与应用模式不对应。
因此,图1的例子中,为了便于说明,图示每个应用模式的规则模块1024以及模式定义文件1025相互关联,但与使用的模板所对应的应用模式并不相关,并表示在某应用模式使用的规则模块1024和模式定义文件1025作为相同应用模式集中为一个的形式。
模式定义文件1025内的应用模式的标识符适用于与每个程序的种类关联的应用模式,模块设定部114识别用于程序生成以及设计书生成的确定模板的应用模式,并从每个应用模式的多个模式定义文件1025中读出确定该模式定义文件1025的内容。
图21~至图24是表示模式控制文件1025和验证模块以及设计书生成模块的具体例子的图。验证模块以及设计书生成模块能够由1个jar文件构成,包括有作为jar文件内的类的验证模块以及设计书生成模块。jar文件作为规则模块1024被存储到模板存储部102。
如图21所示,pattern_a.jar文件,例如,包含以与设计信息相应的验证方式区分包含多个验证模块。图21的例子中包含有作为类的仅进行必要验证的验证模块(CRUDValidator1)和进行必要验证和格式验证的验证模块(CRUDValidator2)。
所谓必要验证是对设计信息的预先设定的必要项目是否有输入的验证,例如,够参照预先设定的各项目分配的必要输入属性,对通过设计信息输入部108接收的设计信息的各项目进行是否输入必要项目的验证。所谓格式验证,例如,是验证输入项目的格式是否按照预先设定的格式。上述的相对于设计信息的各项目的必要/任意、格式或值等属性能够适当地设定,也能够将其存储到预先规定的存储区域。
另外,在pattern_a.jar文件,例如,能够为使用设计书模板1023的设计书生成部111并且设计书105a的每个输出形式准备多个设计书生成模块。在图21的例子中,包含有作为类的,Excel(注册商标)、Word形式、PDF形式、以PowerPoint形式的各种文件形式输出(存储)设计书105a的SPECGeneratorByXLS、SPECGeneratorByDOC、SPECGeneratorByPPT的各模块。
另外,图21所示的模式定义文件1指定pattern_a.jar,并包含有作为pattern_a.jar内的指定类的VALIDATION_CLASS=CRUDValidator1、DOCUMET_CLASS=SPECGeneratorByXLS。即,使用作为验证模块的CRUDValidator1,指定使用作为设计书生成模块的SPECGeneratorByXLS。模块设定部114参照模式定义文件1在验证部109以及设计书生成部111设定指定的验证模块以及设计书生成模块。
图22所示的模式定义文件2指定pattern_a.jar和pattern_b.jar的2个的规则模块,作为pattern_a.jar内指定类的VALIDATION_CLASS=CRUDValidator2包含有作为pattern_b.jar内指定类的DOCUMET_CLASS=SPECGeneratorByPDF。即,指定使用作为验证模块的CRUDValidator2,并指定使用作为设计书生成模块的没有pattern_a.jar内的类而是pattern_b.jar内的SPECGeneratorByPDF。在图22的例子中,并不是向pattern_a.jar追加SPECGeneratorByPDF,而是预指定包含先SPECGeneratorByPDF的pattern_b.jar且指定该SPECGeneratorByPDF,因此,不需要为了包含SPECGeneratorByPDF而重新制作pattern_a.jar,并且不需要重构建以与SPECGeneratorByXLS等其他的类之间的关系追加的SPECGeneratorByPDF的类继承。对于验证模块也是同样的,能够指定并使用不在pattern_a.jar中而在pattern_b.jar中的验证模块。
图23所示的模式定义文件3指定pattern_a.jar,但未指定作为pattern_a.jar内指定类的VALIDATION_CLASS=CRUDValidator1、DOCUMET_CLASS。即,作为验证模块使用CRUDValidator1,但指定不使用设计书生成模块。这种情况下,模块设定部114参照模式定义文件3设定验证部109指定的验证模块,但对设计书生成部111不设定设计书生成模块。
在图23的例子中,例如,在未利用模块设定部114设定设计书生成模块时,即,在模式定义文件内没有指定设计书生成模块时,设计书生成部111能够控制不生成设计书105a。换言之,根据是否指定模式定义文件内的设计书生成模块,能够控制设计书生成的有无,可控制生成装置100仅进行程序生成而不进行设计书生成。
图24所示的模式定义文件4,与图23所示的模式定义文件3相反,未指定作为pattern_a.jar内指定类的VALIDATION_CLASS。即,不使用验证模块,而指定使用作为设计书生成模块的SPECGeneratorByXLS。这种情况下,模块设定部114参照模式定义文件4并不在验证部109设定验证模块,而对设计书生成部111设定设计书生成模块。
在图24的例子中,例如,在未利用模块设定部114设定验证模块时,即,在模式定义文件内没有指定验证模块时,验证部109能够控制不进行设计信息验证。换言之,根据是否指定模式定义文件内的验证模块,能够控制是否执行验证,可控制生成装置100根据需要不进行设计信息的验证。
从图21~图24的例子中,在1个规则模块中含有验证模块以及设计书生成模块,但并不局限于此,例如,也可在个别的规则模块中,将每个验证模块以及设计书生成模块从规则模块(jar文件)分开,而在pattern_a1.jar中仅包含验证模块,在pattern_a2.jar中仅包含设计书生成模块。这种情况下,模式定义文件1025指定该个别的各规则模块,也可指定上述2个的规则模块,并分别指定验证模块或/以及设计书生成模块。
用户终端200为通常的计算机终端,例如,其具有:根据用户的操作启动生成装置100的整体控制部107的功能,根据从设计信息输入部108接收的各界面数据显示各界面G10~G40、G50的功能、根据用户的操作向各界面G10~G40、G50输入设计信息并指示生成执行的功能。
数据库装置300是由生成装置100生成的程序106a在执行时连接的数据库服务器,例如,可根据设计信息或模型信息1041内的数据库连接信息连接。具体地,例如,包含图3以及图4所示的模型信息1041A内的职员表以及部署表在生成时参照的职员数据库以及部署数据库的数据库服务器。
接着,参照图25~图28说明程序及设计书的生成装置100的处理动作。图25以及图26是本实施方式的程序及设计书的生成装置100的系统图。
如图25所示,用户终端200根据用户操作指示整体控制部107启动程序及设计书的生成装置100。整体控制部107启动设计信息输入部108以及模块设定部114。
模块设定部114在读入模式定义文件1025,并通过模式定义文件1025指定验证模块时,将指定的验证模块设定于验证部109(例如,指示在验证处理中执行指定的验证模块)。另外,在通过模式定义文件1025指定设计书生成模块时,将指定的设计书生成模块设定于设计书生成部111(例如,指示在设计书生成中使用指定的设计书生成模块并生成设计书105a)。
设计书输入部108向用户终端200提供界面G10~G40、G50,并通过各界面进行设计信息的输入·显示控制。用户终端200根据用户的输入操作完成设计信息输入并指示对整体控制部107生成程序。
整体控制部107根据从用户终端200接收的程序生成指示,向设计信息输入部108传递程序生成的指示。设计信息输入部108接收程序生成的指示,执行验证模块并向验证部109输出用于进行输入信息(输入的设定信息)验证的指示。
作为验证的一个例子,例如,验证是否是不正确的输入,能够再未输入必要输入的信息的情况下报错。验证部109执行验证模块并对设计信息进行验证处理,并将验证结果输出到设计信息输入部108。验证结果可包含有无错误、以及在有错误时该错误的内容。
当从验证部109的返回值中含有错误时,设计信息输入部108向整体控制部107输出错误信息。整体控制部107将该错误信息向用户终端200发送。
当从验证部109的返回值中不包含错误时,设计信息输入部108向整体控制部107输出没有错误的信息。整体控制部107向模型信息输出部110发出模型信息输出的指示。模型信息输出部110将模型信息1041输出并将其写入到模型信息存储部104。
接下来,如图26所示,完成模型信息1041的输出时,整体控制部107向生成处理解析执行部113发出程序一览PGL的生成指示。生成处理解析执行部113从各存储部读出模型信息1041、元模型信息1011以及应用生成控制文件并生成程序一览PGL。此时,生成处理解析执行部113根据模型信息1041内的模式确定信息(应用模式)读出该应用生成控制文件。另外,当针对每个应用模式存储元模型信息1011时,读出与模式确定信息对应的元模型信息1011。
整体控制部107利用生成处理解析执行部113b生成程序一览PGL时,向程序生成部112发出程序生成指示,并向设计书生成部111发出设计书生成指示。此时,如上所述,当未利用模块设定部114设定验证模块时,控制不向设计书生成部111发出设计书生成指示,也不进行设计书生成。
程序一览PGL生成后的程序生成和设计书生成哪一个在先都可以。另外,程序生成和设计书生成也可以相同时间或时间并行执行。
首先,说明设计书生成。设计书生成部111使用保存于模板存储部102的设计书模板,并生成设计书105a。此时,设计书生成部111根据模型信息1041内的模式定义信息(应用模式)从针对每个应用模式存储的设计书模板中读出该设计书模板,适用应用程序一览PGL以及模型信息1041并生成设计书105a。设计书生成部111在设定设计书生成模块时,使用设计书生成模块并将由适用于设计书模板生成的设计书105a以使用设计书生成模块规定的输出形式输出(存储)。
设计书生成部111将根据模型信息1041、程序一览PGL以及设计书模板1023生成的设计书105a向设计书存储部105写入。
接着,说明程序生成。整体控制部107,例如,完成设计书生成后,对程序生成部112发出程序生成的指示。
程序生成部112分别读出模型信息存储部104内的模型信息1041、程序一览PGL以及模板存储部102内的程序模板。此时,程序生成部112从模板存储部102读出在程序一览PGL内指定的程序模板。
程序生成部112使用读入的各信息生成程序106a,并根据程序一览PGL中指定的程序生成目标,将生成的程序106a写入到程序存储部106。另外,程序生成部112将为复制对象文件的调用库103a复制到规定处。
在程序一览PGL中,在多个表(表ID)或多个界面(界面ID)的每一个中包含有程序生成信息时,在生成对象的全部程序生成完成前反复执行并分别生成各表、各界面的程序并存储。
图27以及图28是用于说明使用模式定义文件的验证部109以及设计书生成部111的控制的流程图。
启动整体控制部107时,根据来自整体控制部107的指示,模块设定部114读入存储于模板存储部102的模式定义文件1025(S101)。
模块设定部114判定是否存在验证模块的指定(是否包含设定验证模块的键、或者是否由设定验证模块的键指定类)(S102),当指定时,在设定验证部109设定指定的验证模块(S103)。当不指定时,不在验证部109设定验证模块(向设计书输入部108输出验证模块无指定)。
接着,模块设定部114判定是否存在设计书生成模块的指定(是否包含设定设计文件模块的键、或者是否在设定设计书模块的键指定类)(S104),当指定时,设定设计书生成部111指定的设计书生成模块(S105)。当不指定时,不在设计书生成部111设定验证模块(向设计书生成部111输出验证模块无指定)。
设计信息输入后,在对验证部109指示验证处理前,设计信息输入部108确认有无验证模块设定(S106)、当设定验证模块时,指示对验证部109使用设定的验证模块的验证处理(S107)。当未设定验证模块时,不对验证部109进行验证处理的指示本身,控制不执行验证处理。
另外,当在步骤S106的验证处理中没有验证错误时(S108),或者不进行验证处理时,进行到步骤S109,向模块信息输出部110发出输出模块信息1041的指示。然后,经过由生产处理解析执行部113生成处理程序一览PGL(S110)后的设计书生成中,设计书生成部111在执行适用于设计书模板的设计书生成前,确认设计书生成模块有无设定(S112),当设定设计书生成模块时,使用设定的设计书生成模块进行设计书生成(S113)。当未设定设计书生成模块时,控制不进行设计书生成。在图28的例子中,在设计书生成前进行程序生成(S111),但如上所述,程序一览PGL生成之后,程序生成和设计书生成也可以前后调换。
表设计或者/以及界面设计的设计信息中,将应用模式(模式确定信息)设为输入信息,模型信息1041包含应用模式,但应用模式自身也可以不设计信息的必要项目。即,在本实施方式中,使用每个应用模式的应用生成控制文件1021,例如,即使模型信息1041不含有应用模式,在设定对任意的设计信息使用确定的应用生成控制文件1021时,能够自动地生成设计信息对应的应用模式的程序。
根据本实施方式,生成处理解析执行部113按照每个应用模式的应用生成控制文件1021从作为模板文件定义信息的元模型信息1011生成程序种类对应的每个应用模式的程序一览,并根据程序一览进行程序生成,因此能够可变地控制每个应用模式的程序生成处理,能够生成各种应用模式(包括组合)对应的程序。因此,能够实现提高生产率以及降低开发成本目的的应用开发。
进一步,模块设定部114按照模式定义文件1025,设定验证模块以及设计书生成模块,因此能够可变地控制验证形式或设计书105a的输出形式。例如,在每个应用模式的设计信息不同时,能够代替由验证部109执行的验证模块(验证形式),可变地控制以适合于设计信息的验证形式的验证。另外,通过替换设计书生成模块,能够任意地设定设计书105a的输出形式而提高便利性。
另外,由于能够跨越不同的规则模块1024指定验证模块以及设计书生成模块并使用它们,从而不需要向某个规则模块追加类。因此,不需要利用类编辑(追加、删除、变更等)进行规则模块内的类继承的重建,从而能够容易地进行多种的验证模块以及设计书生成模块的应用。
另外,根据是否对设计书生成模块指定,能够控制不进行设计书生成,例如,能够可变地控制程序生成和设计书生成,以仅进行程序生成。另外,根据是否对验证模块指定,能够控制不进行验证,也能够在该情况下可变地控制是否执行验证处理。
本实施方式的生成装置100能够在没有输入详细的物理说明时生成程序以及设计书,从而能够提高应用开发的生产率,另外,用户仅通过输入很少的设计信息,就能够自动生成多个应用模式的能够即时执行的应用程序和该应用程序的设计书,因此能够缩短程序和设计书的制作时间以及提高应用开发的生产率。
以上,在上述实施方式中,程序及设计书的生成装置100可以是1个装置单体的系统,也可以是多个装置网络连接的系统。
另外,用户终端装置200包含,手机或PDA(个人数字助手)等移动通信终端装置、个人计算机等的具备通信功能以及计算功能的信息处理终端装置等。另外,网络N也可以是无线通信网、有线通信网或专用网络。
另外,程序及设计书的生成装置100、用户终端200除了上述硬件结构以外,也可具备:掌管装置全体(各部)控制的CPU,存储器(主存储装置),鼠标、键盘、触控面板、扫描器等操作输入单元,打印机、扬声器等输出单元,辅助存储装置(硬盘等)。
另外,本发明的程序及设计书的生成装置100的各功能可以为程序及设计书的生成程序。例如,保存在计算机的未图示的辅助存储装置中,CPU等控制部将保存在辅助存储装置中的程序及设计书的生成程序读出到主存储装置,并执行读取到主存储装置中的该程序,从而能够通过计算机使本发明的各部的功能动作。即,安装有本发明的程序及设计书的生成程序的计算机可作为生成本发明的程序及设计书的计算机装置动作。
另外,上述程序在计算机可读的记录介质记录的状态下,能够向计算机提供。作为计算机可读记录介质,举例为,CD-ROM等的光盘、DVD-ROM等相位变化型光盘、MO(MagnetOptical,磁光)或MD(Mini Disk,迷你盘)等光磁盘、软盘(注册商标)或移动硬盘等磁盘、闪存(注册商标)、智能媒体、SD存储卡、存储棒等的存储卡。另外,也包括由本发明的目的特别设计构成的集成电路(IC芯片等)等的硬件装置作为记录介质。
上述是对本发明的实施方式的说明,该实施方式仅作为一个例子,但并不限定本发明的范围。新的实施方式,可以其他各种方式实施,在不脱离本发明的主题范围内,能够进行各种的省略、置换、变更。这些实施方式或其变形,包含于本发明的范围或主题内,并且包含于与权利要求的范围内所记载的发明相同的范围内。

Claims (10)

1.一种程序及设计书的生成装置,其用于分别生成构成应用程序的多个程序和所述多个程序的各程序的设计书,其特征在于,具有:
第一存储部,其对于应用程序的每个模式存储程序模板文件以及设计书模板文件;
第二存储部,其存储包含有第一信息和第二信息的、按所述模式区分预先对生成构成应用程序的各程序所使用的程序模板文件群进行定义的模板文件定义信息,其中,所述第一信息对用于生成构成应用程序的程序的所述程序模板文件进行定义,所述第二信息与所述第一信息成对,对根据所述程序模板文件生成的程序的生成目标进行定义;
第三存储部,其存储每个所述模式的应用生成控制信息;
第四存储部,其存储用户输入的应用程序的设计信息;
生成处理解析执行部,其根据所述设计信息、所述模板文件定义信息、所述应用生成控制信息,确定与所述模板文件定义信息所包含的特定的模式关联的程序模板文件群,而生成程序生成信息,所述程序生成信息是由所确定的程序模板文件群的各程序模板文件生成的各程序的生成信息,包含与每个所生成的程序相应的所述第一信息以及所述第二信息;
程序生成部,其根据所述程序生成信息,使用由所述第一信息指定的程序模板文件生成程序,并将生成的程序存储到由所述第二信息指定的生成目标;
设计书生成部,其使用与所述程序生成信息的所述模式相应的所述设计书模板、所述设计信息、所述程序生成信息,生成对于生成各个所述程序生成信息的所述第二信息的每个程序进行记述的设计书。
2.根据权利要求1所述的程序及设计书的生成装置,其特征在于,所述设计信息与所述第二信息相对应,包含作为所述应用程序识别信息的应用ID,
所述生成处理解析执行部按所述应用ID区分生成所述程序生成信息,
所述程序生成部,根据所述程序生成信息,按所述应用ID区分使用由所述第一信息指定的程序模板文件来生成程序,并将生成的程序存储于所述第二信息指定的生成目标,
所述设计书生成部按所述应用ID区分生成对于各个所述程序生成信息的所述第二信息的每个程序进行记述的设计书。
3.根据权利要求1所述的程序及设计书的生成装置,其特征在于,
所述模板文件定义信息构成为:对于多个所述模式的每个模式,包含多个在生成各程序中所使用的程序模板文件群,
所述生成处理解析执行部,根据应用生成控制信息,确定与所述模板文件定义信息中包含的特定的模式相关联的程序模板文件群,生成所述程序生成信息。
4.根据权利要求1所述的程序及设计书的生成装置,其特征在于,还具有:
验证部,其执行对所述设计信息适合于规定的验证规则进行验证的验证处理;
第五存储部,其对于每个所述验证规则存储以类名对由所述验证部执行的多个验证模块进行定义的程序文件;
第六存储部,其存储用于指定所述验证模块的模式定义文件;
模块设定部,其参照所述模式定义文件对所述验证部设定从所述程序文件中指定的验证模块。
5.根据权利要求4所述的程序及设计书的生成装置,其特征在于,
所述模块设定部当在所述模式定义文件中没有指定所述验证模块时,不对所述验证部进行所述验证模块的设定,并且
所述验证部在所述验证模块被设定时进行所述验证处理,在所述验证模块没有被设定时,不进行所述验证处理。
6.根据权利要求4所述的程序及设计书的生成装置,其特征在于,
所述模式定义文件包含对以类名定义所述验证模块的各程序文件进行指定的信息,
所述模块设定部参照所述模式定义文件,对于每个所述程序文件识别所述验证模块,并对所述验证部进行所述验证模块的设定。
7.根据权利要求1所述的程序及设计书的生成装置,其特征在于,还具有:
第七存储部,其存储由类名对多个设计书生成模块进行定义的程序文件,其中,该多个设计书生成模块用于以规定的输出形式输出由所述设计书生成部生成的设计书,与由所述设计书生成部执行的各输出形式相对应;
第八存储部,其存储用于指定所述设计书生成模块的模式定义文件;
模块设定部,其参照所述模式定义文件对所述设计书生成部设定从所述程序文件中指定的设计书生成模块。
8.根据权利要求7所述的程序及设计书的生成装置,其特征在于,
所述模块设定部在所述模式定义文件没有指定所述设计书生成模块时,不对所述设计书生成部进行所述设计书生成模块的设定,
所述设计书生成部在所述设计书生成模块被设定时,进行设计书生成,在所述设计书生成模块没有被设定时,不进行设计书生成。
9.根据权利要求7所述的程序及设计书的生成装置,其特征在于,
所述模式定义文件包含对由类名定义所述设计书生成模块的各程序文件进行指定的信息,
所述模块设定部参照所述模式定义文件,对于每个所述程序文件识别所述设计书生成模块,并对所述设计书生成部进行所述设计书生成模块的设定。
10.一种记录介质,其存储有可被读入到计算机中的程序,
该程序为程序与设计书的生成程序,其用于根据包含第一信息和第二信息的、按模式区分预先对生成各程序所使用的程序模板文件群进行定义的模板文件定义信息、每个所述模式的应用生成控制信息、以及用户输入的应用程序的设计信息,分别生成构成应用程序的多个程序和所述各程序的设计书,
其中,
所述第一信息是定义用于生成构成应用程序的每个模式的程序模板文件以及设计书模板文件、应用程序的程序而使用的所述程序模板文件,
所述第二信息与所述第一信息成对,是定义根据所述程序模板文件生成的程序的生成目标,
该程序实现如下步骤:
生成程序生成信息的步骤,其根据所述设计信息、所述模板文件定义信息、所述应用生成控制信息,确定与所述模板文件定义信息所包含的特定的模式关联的程序模板文件群,而生成程序生成信息,并生成包含与每个生成的程序对应的所述第一信息以及所述第二信息的程序生成信息;
存储步骤,其根据所述程序生成信息,使用由所述第一信息指定的程序模板文件生成程序,并将生成的程序存储到所述第二信息指定的生成目标;以及
设计书生成步骤,其使用所述程序生成信息的所述模式相应的所述设计书模板、所述设计信息、所述程序生成信息,对于生成各个所述程序生成信息的所述第二信息的每个程序进行记述的设计书。
CN201380061104.7A 2012-09-26 2013-07-24 程序及设计书的生成装置以及程序 Active CN104813287B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012213060A JP5450752B1 (ja) 2012-09-26 2012-09-26 プログラムと設計書の生成装置及びプログラム
JP2012-213060 2012-09-26
PCT/JP2013/004497 WO2014049925A1 (ja) 2012-09-26 2013-07-24 プログラム・設計書の生成装置およびプログラム

Publications (2)

Publication Number Publication Date
CN104813287A CN104813287A (zh) 2015-07-29
CN104813287B true CN104813287B (zh) 2017-11-03

Family

ID=50387379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380061104.7A Active CN104813287B (zh) 2012-09-26 2013-07-24 程序及设计书的生成装置以及程序

Country Status (4)

Country Link
JP (1) JP5450752B1 (zh)
CN (1) CN104813287B (zh)
IN (1) IN2015DN02714A (zh)
WO (1) WO2014049925A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106803285B (zh) * 2016-11-30 2021-04-20 上海仙剑文化传媒股份有限公司 一种ar图书自定义定向生成方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008165497A (ja) * 2006-12-28 2008-07-17 Casio Comput Co Ltd 情報処理装置及びプログラム
JP2008181208A (ja) * 2007-01-23 2008-08-07 Nec Corp ジェネレータサービス提供システム、設計情報の再利用・蓄積方法及びジェネレータサービス用プログラム
CN101599014A (zh) * 2008-06-05 2009-12-09 株式会社东芝 程序·设计文件的生成装置
JP2011141618A (ja) * 2010-01-05 2011-07-21 Toshiba Corp 画面遷移設計支援プログラムおよび画面遷移設計支援装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675801A (en) * 1994-09-30 1997-10-07 International Business Machines Corporation Object oriented system and method for generating target language code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008165497A (ja) * 2006-12-28 2008-07-17 Casio Comput Co Ltd 情報処理装置及びプログラム
JP2008181208A (ja) * 2007-01-23 2008-08-07 Nec Corp ジェネレータサービス提供システム、設計情報の再利用・蓄積方法及びジェネレータサービス用プログラム
CN101599014A (zh) * 2008-06-05 2009-12-09 株式会社东芝 程序·设计文件的生成装置
JP2009294940A (ja) * 2008-06-05 2009-12-17 Toshiba Corp プログラム・設計書の生成装置及びプログラム・設計書の生成プログラム
JP2011141618A (ja) * 2010-01-05 2011-07-21 Toshiba Corp 画面遷移設計支援プログラムおよび画面遷移設計支援装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"software factory it began to move";Nishimura Takashi;《Nikkei SYSTEMS》;Nikkei BP;20060825(第161期);第61-68页 *

Also Published As

Publication number Publication date
JP2014067288A (ja) 2014-04-17
JP5450752B1 (ja) 2014-03-26
IN2015DN02714A (zh) 2015-09-04
CN104813287A (zh) 2015-07-29
WO2014049925A1 (ja) 2014-04-03

Similar Documents

Publication Publication Date Title
CN109657215A (zh) 基于模板的文档生成方法、设备、存储介质及装置
US20170236130A1 (en) Emulating Manual System of Filing Using Electronic Document and Electronic File
CN110275861A (zh) 数据存储方法及装置、存储介质、电子装置
CN104461531B (zh) 一种报表系统自定义函数的实现方法
CN106776515A (zh) 数据处理的方法及装置
CN101071378A (zh) 源代码生成方法、设备和程序
CN102708203A (zh) 一种基于xml元数据的数据库动态管理方法
CN101488086A (zh) 一种基于领域模型的软件生成方法及装置
CN105637478A (zh) 原生移动应用代码的计算机辅助开发
CN109740122A (zh) 思维导图用例文件的转换方法及装置
WO2016060552A1 (en) System generator module for electronic document and electronic file
CN111309313A (zh) 一种快速生成html以及存储表单数据的方法
CN109240661A (zh) 一种代码生成方法及装置
CN112463149B (zh) 一种面向软件定义卫星的可复用代码库构建方法与装置
CN101499063A (zh) 基于跟踪的数据库模式演进方法及系统
CN109684609A (zh) 一种基于ASP.NET MVC的Excel模板生成及数据转换和导入方法
JPH05197734A (ja) データ処理システム
CN110211581A (zh) 一种实验室自动语音识别记录标识系统及方法
CN115390821B (zh) 一种面向自然语言无代码编程的软件应用构建方法
JP2008165432A (ja) クエリ制御プログラム、クエリ制御装置およびクエリ制御方法
CN104813287B (zh) 程序及设计书的生成装置以及程序
CN109933769A (zh) 一种基于Excel的报表数据快速解析方法
CN107392560A (zh) 一种基于互联网的Excel表格数据发布采集方法及系统
US7949509B2 (en) Method and tool for generating simulation case for IC device
CN109298857A (zh) Dsl语句模型的建立方法、介质、装置和计算设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant