CN1196995C - 应用软件开发系统及其方法、以及应用软件生成方法 - Google Patents

应用软件开发系统及其方法、以及应用软件生成方法 Download PDF

Info

Publication number
CN1196995C
CN1196995C CNB011375345A CN01137534A CN1196995C CN 1196995 C CN1196995 C CN 1196995C CN B011375345 A CNB011375345 A CN B011375345A CN 01137534 A CN01137534 A CN 01137534A CN 1196995 C CN1196995 C CN 1196995C
Authority
CN
China
Prior art keywords
information
logic module
mentioned
component
design
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
CNB011375345A
Other languages
English (en)
Other versions
CN1357822A (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
Original Assignee
Toshiba 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 filed Critical Toshiba Corp
Publication of CN1357822A publication Critical patent/CN1357822A/zh
Application granted granted Critical
Publication of CN1196995C publication Critical patent/CN1196995C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Landscapes

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

Abstract

提供一种应用软件开发系统,该应用软件开发系统可开发出能够灵活地对应平台等系统环境变化的、维护性优良的应用软件。设计工具1支持根据逻辑组件信息4,通过组合多个逻辑组件进行的应用软件的设计,输出由该设计获得的逻辑设计信息5。源代码生成处理部2和编译器3根据由设计工具1输出的逻辑设计信息5和软件组件的物理安装信息(物理组件信息6和组件库8)生成可在特定平台上运行的应用软件(可运行文件9)。

Description

应用软件开发系统及其方法、以及应用软件生成方法
技术领域
本发明涉及一种通过组合多个软件组件进行应用软件开发的应用软件开发方法以及应用软件生成方法。
背景技术
过去,已知有组合多个软件组件进行应用软件开发的应用软件开发方法。在这样的现有应用软件开发方法中,如图19所示那样,通过在物理层组合面向特定平台41安装的软件组件即物理组件42(参照标记43),进行应用软件40的开发。
然而,在上述现有的应用软件开发方法中,由于软件组件的组合在物理层被描述,所以,需要依赖于安装有软件组件的平台(OS和中间件、语言、通信等系统环境)的描述,存在难以将开发的应用软件40移到其它平台的问题。
另外,在上述现有应用软件开发方法中,由于在开发的应用软件40混合存在应用软件本来的处理(例如业务处理)的描述和平台固有的处理的描述,所以,存在应用软件40的维护性差的问题。
发明内容
本发明就是鉴于这样的情况而作出的,其目的在于提供一种可容易地开发能够灵活对应平台等系统环境变化的、维护性优良的应用软件的应用软件开发系统及其方法、应用软件开发程序、以及应用软件生成方法。
图20为用于示意地说明本发明的应用软件开发方法的图。如图20所示,在本发明中,分别对应于多个软件组件,设置通过抽出不依赖于平台41的部分而构成的逻辑组件52,通过组合这些各逻辑组件52(参照标记53),进行应用软件的设计。然后,根据由这样的设计获得的逻辑设计信息和软件组件的物理安装信息(包含物理组件42与逻辑组件52之间的对应关系的物理组件信息和存放物理组件42的安装信息的组件库),生成可在特定平台41上运行的应用软件40。
在这样的基本原理下,本发明提供一种应用软件开发系统作为其第1解决手段,该应用软件开发系统通过组合多个软件组件开发应用软件;其特征在于,包括:逻辑设计单元,支持基于逻辑组件信息、通过组合多个逻辑组件而进行的应用软件设计,并输出通过该设计而获得的逻辑设计信息,其中所述逻辑组件信息包含逻辑组件的定义信息,所述逻辑组件是分别与多个软件相对应地设置并从该软件组件中抽出不依赖于系统环境的部分后而成的逻辑组件;物理安装单元,根据由上述逻辑设计单元输出的逻辑设计信息和软件组件的物理安装信息而生成可在系统环境上运行的应用软件,其中上述逻辑组件的定义信息包含:含有各个上述逻辑组件的ID、属性信息、输入输出信息的逻辑组件基本信息;和含有各个上述逻辑组件间的连接信息的逻辑组件关联信息,上述逻辑设计信息包含:上述逻辑组件的属性信息和上述逻辑组件间的连接信息,上述物理安装单元由源生成处理单元以及生成可运行文件的编译器构成。
而且,在上述第1解决手段中,上述逻辑设计信息最好由XML语言描述。
另外,在上述第1解决手段中,最好上述逻辑设计单元和上述物理安装单元分别设在通过网络相互连接的客户计算机上和服务器计算机上,在上述客户计算机和上述服务器计算机之间进行上述逻辑设计信息的交换。
另外,本发明提供一种应用软件开发方法作为其第2解决手段,该应用软件开发方法通过组合多个软件组件开发应用软件;其特征在于:包括支持基于逻辑组件信息、通过组合多个逻辑组件而进行的应用软件设计,其中所述逻辑组件信息包含逻辑组件的定义信息,所述逻辑组件是分别与多个软件相对应地设置并从该软件组件中抽出不依赖于系统环境的部分后而成的逻辑组件;根据通过上述设计而获得的逻辑设计信息和软件组件的物理安装信息而生成可在系统环境上运行的应用软件,其中上述逻辑组件的定义信息包含:含有各个上述逻辑组件的ID、属性信息、输入输出信息的逻辑组件基本信息;和含有各个上述逻辑组件间的连接信息的逻辑组件关联信息,上述逻辑设计信息包含:上述逻辑组件的属性信息和上述逻辑组件间的连接信息。
另外,本发明提供一种应用软件生成方法作为其第3解决手段,该应用软件生成方法通过组合多个软件组件来生成应用软件;其特征在于:包括显示与多个逻辑组件相关的信息,以供用户根据该相关信息选择逻辑组件的步骤,其中所述多个逻辑组件分别与多个软件相对应地设置;基于包含逻辑组件的定义信息的逻辑组件信息、通过组合用户所选择的逻辑组件而进行应用软件设计,并生成逻辑设计信息的步骤;以及根据上述逻辑设计信息和软件组件的物理安装信息而生成可在系统环境上运行的应用软件的步骤,其中上述逻辑组件的定义信息包含:含有各个上述逻辑组件的ID、属性信息、输入输出信息的逻辑组件基本信息;和含有各个上述逻辑组件间的连接信息的逻辑组件关联信息,上述逻辑设计信息包含:上述逻辑组件的属性信息和上述逻辑组件间的连接信息。
按照本发明,将通过组合软件组件进行的应用软件的开发分成:(1)逻辑层和(2)物理层来进行,在该逻辑层通过抽出软件组件中的不依赖于平台等系统环境的部分而形成逻辑组件并将其进行组合,设计应用软件,在该物理层根据由该设计获得的逻辑设计信息,组合作为依赖于系统环境的软件组件即物理组件,生成应用软件;所以,对于逻辑层各部,可与最终系统环境无关地通用,通过相对于最终的系统环境分别准备物理层各部,可开发与系统环境对应的应用软件。为此,可容易地开发能够灵活地对应于系统环境变化的、维护性优良的应用软件。
另外,按照本发明,由XML语言这样的通用性高的语言描述连接逻辑层处理与物理层处理的逻辑设计信息,从而可使物理层和逻辑层双方具有自由度。为此,可使各层的替换变得容易,而且可延长应用软件的业务处理的逻辑表现的寿命。
另外,按照本发明,将逻辑层(逻辑设计单元)和物理层(物理安装单元)分别设到客户计算机上和服务器计算机上,在客户计算机与服务器计算机之间交换逻辑设计信息,从而可减小客户计算机与服务器计算机之间的通信量。因此,即使在互联网环境下,也可从客户计算机侧开发服务器计算机侧的应用软件,可应用于提供在互联网环境下的开放式的应用软件开发环境那样的服务中。
附图说明
图1为示出本发明的应用软件开发系统的一实施形式的图。
图2为详细示出图1中的应用软件开发系统的设计工具(逻辑设计部)的图。
图3为示出在图1的应用软件开发系统中对用户显示的工具画面的一例的图。
图4为用于说明图1和图2所示设计工具的的逻辑组件工具信息设定部(规格信息生成部)的动作的流程图。
图5为用于说明图1和图2所示设计工具的设计工具主体(设计部主体)的动作的流程图。
图6为用于说明图1所示的源代码生成处理部的动作的流程图。
图7为示出在图1所示应用软件开发系统中所用的逻辑组件信息的一例的图。
图8为示出图1所示的由应用软件开发系统输出的逻辑设计信息的一例的图。
图9为示出图1所示的在应用软件开发系统中使用的物理组件信息(与各软件组件的代码生成方法相关的信息)的一例的图。
图10为示出图1所示的在应用软件开发系统中使用的物理组件信息(与整体的代码生成方法相关的信息)的一例的图。
图11为示出由图1所示应用软件开发系统生成的源代码一例的图。
图12为示出本发明的应用软件开发系统的另一实施形式的系统构成图。
图13为用于说明图12所示源代码生成处理部的动作的流程图。
图14为用于说明图12所示组件对象生成处理部的动作的流程图。
图15为示出在图12所示应用软件开发系统中使用的物理组件信息(与各软件组件的代码生成方法相关的信息)的一例的图。
图16为示出在图12所示应用软件开发系统中使用的物理组件信息(与整体的代码生成方法相关的信息)的一例的图。
图17为示出由图12所示应用软件开发系统生成的源代码一例的图。
图18为示出本发明的应用软件开发系统适用的分散开发环境的一例的图。
图19为用于示意地说明现有应用软件开发方法的图。
图20为用于示意地说明本发明应用软件开发方法的图。
具体实施方式
下面参照附图说明本发明的实施形式。图1-图11为用于说明本发明的应用软件开发系统的一实施形式的图。在本实施形式中,以在单一的计算机上实现应用软件开发系统的场合为例进行说明。
如图1所示,本实施形式的应用软件开发系统通过组合多个软件组件开发应用软件,具有设计工具(逻辑设计部)1、源代码生成处理部2、及编译器(可运行文件生成部)3。源代码生成处理部2和编译器3构成物理安装部。
其中,设计工具1根据逻辑组件信息4,支持通过组合多个逻辑组件而进行的应用软件的设计,输出通过该设计获得的逻辑设计信息5。在这里,输入到设计工具1的逻辑组件信息4包含逻辑组件定义信息,例如由XML语言描述成字符串数据(参照图7(a)(b))。逻辑组件为用于应用软件设计的组件,分别与多个软件组件对应地设置,通过从软件组件中抽出不依赖于平台(系统环境)的部分而构成。另外,由设计工具1输出的逻辑设计信息5包含各逻辑组件的属性信息和各逻辑组件间的连接信息,例如由XML语言描述为字符串数据(参照图8)。
另一方面,源代码生成处理部2和编译器3根据由设计工具1输出的逻辑设计信息5和软件组件的物理安装信息(物理组件信息6和组件库8)生成可在特定平台上运行的应用软件(可运行文件9)。
具体地说,源代码生成处理部2根据由设计工具1输出的逻辑设计信息5和物理组件信息6生成源代码7。而且,输入到源代码生成处理部2的物理组件信息6包含面向特定平台安装的物理组件与逻辑组件间的对应关系,例如由XML语言描述为字符串数据(参照图9和图10(a)(b)(c))。逻辑组件与物理组件的对应关系不限于1对1,也可为1对多个。例如,对于逻辑组件“A”有成为物理组件“a”的场合,对于逻辑组件“A”也有成为物理组件“a+b”的场合,对相同的“A”也可定义多个物理组件。更为具体地说,如对逻辑组件“带检查的更新”有物理组件成为“UpdateWithCheck”的场合,对于逻辑组件“带检查的更新”也有物理组件成为“Check”+“Update”的场合,对于相同逻辑组件“带检查的更新”可定义多个物理组件。另外,由源代码生成处理部2输出的源代码7例如由Java等程序语言描述为字符串数据(参照图11)。
另外,编译器3根据由源代码生成处理部2生成的源代码7和存放各物理组件的安装信息(界面和类型定义)的组件库8生成可在特定的平台上运行的可运行文件9。存放于组件库8中的物理组件使用EJB、JavaBeans和Java类等。
以上由设计工具1、逻辑组件信息4、及逻辑设计信息5构成逻辑层,由源代码生成处理部2、编译器3、物理组件信息6、源代码7、组件库8、及可运行文件9构成物理层。
图2为详细示出图1中的设计工具1的图。
如图2所示,设计工具1具有根据逻辑组件信息4生成逻辑组件工具信息12的逻辑组件工具信息设定部(规格信息生成部)11、及根据由逻辑组件工具信息设定部11生成的逻辑组件工具信息12,支持通过组合各逻辑组件而进行的应用软件的设计的设计工具主体(设计部主体)13。逻辑组件信息4包含逻辑组件基本信息4a(各逻辑组件的ID和属性信息、输入输出信息等)和逻辑组件相关信息4b(各逻辑组件间的连接信息)作为逻辑组件的定义信息。另外,逻辑组件工具信息12用于表示各逻辑组件的规格信息,包含各逻辑组件的输入输出规格(逻辑组件输入输出规格12a)、各逻辑组件间的连接规格(逻辑组件连接规格12b)、及各逻辑组件的属性规格(逻辑组件属性规格12c)。从设计工具主体13输出的逻辑设计信息5包含各逻辑组件的属性信息(组件属性信息5a)和各逻辑组件间的连接信息(组件连接信息5b)。
另外,设计工具1具有与设计工具主体13连接的画面输入输出界面部14。在这里,画面输入输出界面部14提供在工具画面上将成为设计基础的多个逻辑组件表示为图标的图示用户界面(GUI),通过由关系线连接图标的图形构造,可成为表现构成作为开发对象的应用软件的软件组件的组合。画面输入输出界面部14可作为在Web浏览器等应用软件上动作的界面程序加以实现。
图3为示出工具画面一例的图。如图3所示,工具画面20具有工具盘区域21和作业区域22。其中,在工具盘区域21根据逻辑组件信息4一览显示与成为设计基础的逻辑组件对应的多个图标23。另外,在作业区域22显示根据配置于工具盘区域21的图标23而粘贴的多个图标24。配置于作业区域22的图标24与构成作为开发对象的应用软件的多个软件组件对应。
在这样的工具画面20中,用户可通过鼠标等输入装置对图标进行各种操作(图标的粘贴、移动、及添加关系等),与针对这些图标的操作连动地组合逻辑组件,进行应用程序的设计。
具体地说,例如,在配置于工具盘区域21的多个图标23中的任意图标(图标A、B、C)上单击鼠标的左键后,在作业区域22的任意位置再次单击鼠标左键,可将图标24(图标A、B、C)粘贴到作业区域22(参照标记26)。这样在作业区域22粘贴图标24后,在图标24上单击鼠标的右键,弹出菜单(图中未示),通过适当选择该菜单中的项目,可设定逻辑组件的属性(逻辑组件的名称(“parent”、“childl”等)等。
另外,在配置于作业区域22的图标中,与要设定关系的原部件对应的图标(在图3中为图标A)的输出端子上按下鼠标的左键,在按住左键的状态下将鼠标移动(拖动)到与要设定关系的目标部件对应的图标(在图3中为图标B、C),从而可定义图标间的关系线25(参照图27)。
在工具画面20上的对图标的操作(图标的配置、移动、及添加关系等)由鼠标等的基本操作实现。鼠标等的基本操作在逻辑组件间得到统一。
下面说明这样构成的本实施形式的作用。
首先,根据图4和图5说明图1和图2所示应用软件开发系统的逻辑层(设计工具1)的处理。
图4为用于说明图1和图2所示设计工具1的逻辑组件工具信息设定部11的动作的流程图。
如图4所示,设计工具1的逻辑组件工具信息设定部11首先读取逻辑组件信息4中的逻辑组件基本信息4a(步骤101),根据该逻辑组件基本信息4a,对每个各逻辑组件生成逻辑组件输入输出规格12a和逻辑组件属性规格12c(步骤102和步骤103)。然后,读取逻辑组件信息4中的逻辑组件相关信息4b(步骤104),根据该逻辑组件相关信息4b对每次逻辑组件的组合生成逻辑组件连接规格12b(步骤105)。
图7(a)(b)为示出逻辑组件信息4的一例的图。其中,图7(a)示出包含逻辑组件基本信息4a的一部分(各逻辑组件的ID)与逻辑组件相关信息4b(各逻辑组件间的连接信息)的整体信息。另外,图7(b)示出包含逻辑组件基本信息4a的一部分(各逻辑组件的属性信息和输入输出信息)的个别信息。
在图7(a)的标记(A)的部分描述了各逻辑组件的ID(<componenttype=″A″/>等)。另外,在标记(B)的部分描述了成为逻辑组件连接规格12b的基础的各逻辑组件间的连接信息(<connectionfrom=″A″to=″B″/>等)。“<connection from=″A″to=″B″/>”的部分表示可从软件组件A连接到软件组件B。
另外,在图7(b)的标记(c)的部分描述了逻辑组件属性规格12c的基础的各逻辑组件的属性信息(<property name=″name″type=″string″/>等)。“<property name=″name″type=″string″/><propertyname=″option″type=″string″1>”的部分表示具有″name″和″option″这样2个字符串属。另外,标记(D)的部分描述了逻辑组件输入输出规格12a的基础的各逻辑组件的输入输出信息(<terminalid=″out″type″out″min=1 max=3>…</terminal>等)。其中,“<terminalid=″out″type″out″min=1 max=3><connectwithtype=″B″/><connectwith type=″C″/></terminal>”的部分表示具有″out″这样的输出端子,可连接1根到3根,连接目标为软件组件B或C。
图5为用于说明图1和图2所示设计工具1的设计工具主体13的动作的流程图。
如图5所示,设计工具1的画面输入输出界面部14在设计工具主体13的控制下示出图3所示工具画面20,接受用户的图标的操作,支持通过各逻辑组件的组合进行的应用软件的设计(步骤201和步骤202)。
具体地说,对于画面输入输出界面部14,用户在配置于工具画面20的工具盘区域21的多个图标23中的任意图标(图标A、B、C)上单击鼠标的左键后,在作业区域22的任意位置再次单击鼠标的左键,从而将图标24(图标A、B、C)粘贴到作业区域22(步骤201)。
另外,在配置于作业区域22中的与要设定关系的原部件对应的图标(在图3中为图标A)的输出端子上按下鼠标的左键,在按下左键的状态下将鼠标移动(拖动)到与要设定关系的目标部件对应的图标(在图3中为图标B、C),从而定义图标间的关系线25(步骤202)。
之后,设计工具主体13根据逻辑组件工具信息12的逻辑组件输入输出规格12a检查各逻辑组件的连接点的确实性(步骤203),在不确实的场合,返回到步骤202继续处理,在确实的场合,前进到步骤205(步骤204)。
另外,设计工具主体13根据逻辑组件工具信息12的逻辑组件连接规格12b检查各逻辑组件间的连接关系的确实性(步骤205),在不确实的场合,返回到步骤202继续处理,在确实的场合,前进到步骤207(步骤206)。
之后,用户在粘贴到作业区域22的图标24上单击鼠标的右键,弹出菜单(图中未示出),适当选择该菜单中的项目,设定逻辑组件的属性等(步骤207),然后,根据逻辑组件工具信息12的逻辑组件属性规格12c检查各逻辑组件的确实性(步骤208),当不确实时,返回到步骤207继续处理,确实时,前进到步骤210(步骤209)。
最后,判断所有逻辑组件的处理是否结束(步骤210),在处理结束时,输出逻辑设计信息5(步骤211)。
图8为示出逻辑设计信息5的一例的图,逻辑设计信息5包含组件属性信息5a(参照标记(E))和组件连接信息5b(参照标记(F))。在这里,图8所示逻辑设计信息5对应于图3所示那样的逻辑组件的组合(在图标A(名称为″parent″,选择项为″1″)下将图标B(名称为″child1″,选择项为″11″)和图标C(名称为″child2″,选择项为″12″)连接成树状的组合)。
下面,根据图6说明图1所示应用软件开发系统的物理层(源代码生成处理部2和编译器3)的处理。
图6为用于说明图1所示源代码生成处理部2的动作的流程图。
如图6所示,源代码生成处理部2根据从设计工具1输出的逻辑设计信息5(组件属性信息5a和组件连接信息5b)和物理组件信息6生成源代码7。
图9和图10(a)(b)(c)为示出物理组件信息6的一例的图。其中,图9示出物理组件信息6中的与各软件组件的代码生成方法相关的信息,包含面向特定的平台安装的物理组件与逻辑组件间的对应关系,各物理组件的属性相关信息和连接相关信息。另外,图10(a)(b)(c)示出与整体代码生成方法相关的信息。
在图9的标记(G)的部分描述了各软件组件的初始化代码生成方法(<newcode=″ClassX%name%=ClassX.newinstance()″/>等)。另外,在标记(H)的部分描述各软件组件的属性设定代码生成方法(<propertyname=″option″code=″%name%.addItem(″OPTION″,″%value%″,″string″)″/>等)。另外,在标记(I)的部分描述各软件组件的组件连接设定代码生成方法(<code=″%from%.addItem(″CHILD″,%to%);/>等)。标记(G)(H)的部分和标记(I)的部分分别是成为源代码7的属性设定代码7b和组件连接设定代码7c的基础的部分,通过“%xxx%的项目与逻辑设计信息5的值的置换,从而生成源代码7的相当部分。
另外,在图10(a)的标记(J)的部分描述了成为源代码7的初始设定代码7a的基础的初始设定代码生成方法(initfile=″fwlinit.java″/>),在标记(K)的部分描述了成为源代码7的结束处理设定代码7d的基础的结束处理设定代码生成方法(<termfile=″fwlterm.java″/>)。而且,“initfile=″fwlinit.java″/>”的部分为用于输入图10(b)所示模板文件(fwlinit.java)的描述,“<termfile=″fwlterm.java″/>”的部分为用于输入图10(c)所示模板文件(fwlterm.java)的描述。
根据这样的物理组件信息6,源代码生成处理部2如图6所示那样首先输出源代码7的初始设定代码7a(步骤301)。
然后,读取逻辑设计信息5中的组件属性信息5a(步骤302),根据该组件属性信息5a和物理组件信息6对每个软件组件生成源代码7的属性设定代码7b(步骤303)。
之后,判断所有软件组件的处理是否结束(步骤304),在未结束处理的场合,返回到步骤302继续进行处理,在结束处理的场合,前进到步骤305。
然后,读取逻辑设计信息5中的组件连接信息5b(步骤305),根据该组件属性信息5a和物理组件信息6对各软件组件生成源代码7的组件连接设定代码7c(步骤306)。
然后,判断是否所有软件组件的处理结束(步骤307),在处理未结束的场合,返回步骤305继续进行处理,在结束了处理的场合,根据物理组件信息6输出源代码7的结束处理设定代码7d(步骤308),结束整体的处理。图11为示出这样生成的源代码7的一例。
这样由源代码生成处理部2生成源代码7后,如图1所示,通过将源代码7加载到编译器3,根据存放于组件库8的各物理组件的安装信息生成可在特定平台上运行的可运行文件9。
这样按照本实施形式,通过组合软件组件进行的应用软件的开发分成:(1)逻辑层和(2)物理层进行,在该逻辑层通过抽出软件组件中的不依赖于平台等系统环境的部分而形成逻辑组件,并将其进行组合,设计应用软件,在该物理层组合依赖于系统环境的软件组件即物理组件而生成应用软件;所以,对于逻辑层各部,可与最终系统环境无关地通用,通过相应于最终的系统环境分别准备物理层各部,可开发与系统环境对应的应用软件。为此,可容易地开发出能够灵活地对应于系统环境变化的、维护性优良的应用软件。
具体地说,(1)可根据由逻辑层(设计工具1)的处理获得的逻辑设计信息5,通过替换物理层的组件和处理(源代码生成处理部2、物理组件信息6、组件库8、及编译器3等)生成与多个系统环境对应的应用软件。另外,(2)在逻辑层的处理中获得的逻辑设计信息5由于受系统环境的影响小,所以,即使在运行的系统环境因技术进步等而改变较大的场合,通过对各应用软件预备与新系统环境相符的物理层的组件和处理,可容易地生成能够在新系统环境上运行的应用软件。另外,(3)由于逻辑层的处理可不受物理层束缚地限定于输出特定的逻辑设计信息5,所以,可容易地预备在多个系统环境上工作的开发工具。
另外,按照本实施形式,由XML语言这样的通用性高的语言描述用于连接逻辑层处理与物理层处理的逻辑设计信息5,所以,可使物理层和逻辑层双方具有自由度,可使各层的替换变得容易,而且可延长应用软件的业务处理的逻辑表现的寿命。
而且,在上述实施形式中,由源代码生成处理部2生成包含属性设定代码和组件连接设定代码的源代码7,同时,由编译器3根据该源代码7生成设定了软件组件的属性和软件组件间的连接关系的可运行文件9,但也可如图12-图17所示其它实施形式那样,在运行时设定软件组件的属性和软件组件间的连接关系。
下面,根据图12-图17说明本发明的应用软件开发系统的其它实施形式。图12-图17所示实施形式除了在可运行文件运行时设定软件组件的属性和软件组件间的连接信息这一点外,其它与图1-图11所示实施形式大体相同。在图12-图17所示实施形式中,与图1-图11所示实施形式相同的部分采用相同标记,省略详细说明。
如图12所示,由源代码生成处理部2′生成包含翻译型组件对象生成代码的源代码7,当运行根据该源代码7由编译器3生成的可运行文件9时,由运行处理部15和组件对象生成处理部16设定软件组件属性和软件组件间的连接信息。
图13为用于说明图12所示源代码生成处理部2′的动作的流程图。
如图13所示,源代码生成处理部2′根据物理组件信息6生成源代码7。
图15和图16(a)(b)(c)(d)为示出物理组件信息6的一例的图。其中,图15示出物理组件信息6中的与各软件组件的组件对象生成方法相关的信息。另外,图16(a)(b)(c)(d)为与整体代码生成方法相关的信息。
在图16(a)的标记(L)的部分描述了成为源代码7的初始设定代码7a(参照图13)的基础的初始设定代码生成方法(<initfile=″fwlinit.java″/>),在标记(M)的部分描述了成为源代码7的翻译型组件对象生成代码7e(参照图13)的基础的组件对象生成方法(<main file=″fwlmain.java″/>),标记(N)的部分描述了成为源代码7的结束处理设定代码7d(参照图13)的基础的结束处理设定代码生成方法(<term file=″fwlterm.java″/>)。其中,<initfile=″fwlinit.java″/>的部分为用于输入图16(b)所示模板文件(fwlinit.java)的描述,<mainfile=″fwlmain.java″/>的部分为用于输入图16(c)所示模板文件(fwmain.java)的描述,<term file=″fwlterm.java″/>的部分为用于输入图16(d)所示模板文件(fwterm.java)的描述。
根据这样的物理组件信息6,源代码生成处理部2′如图13所示那样,先输出源代码7的初始设定代码7a(步骤401)。
接着,输出源代码7的翻译型组件对象生成代码7e(步骤402)。
然后,根据物理组件信息6输出源代码7的结束处理设定代码7d(步骤403),结束整体处理。图17为示出这样生成的源代码7的一例。
这样由源代码生成处理部2′生成源代码7后,如图12所示那样,将源代码7加载到编译器3,从而根据存放于组件库8的各物理组件的安装信息生成可在特定平台上运行的可运行文件9。
这样生成的可运行文件9可由运行处理部15运行,运行处理部15在其处理过程中启动组件对象生成处理部16,从而生成软件组件的软件对象,并设定该软件组件的属性和软件组件间连接信息。
图14为用于说明图12所示组件对象生成处理部16的动作的流程图。
如图14所示,组件对象生成处理部16根据由设计工具1输出的逻辑设计信息5(组件属性信息5a和组件连接信息5b)和物理组件信息6,进行组件对象的生成、属性和组件间的连接信息的设定等。
具体地说,先从逻辑设计信息5中读取组件属性信息5a(步骤501),根据该组件属性信息5a和物理组件信息6对软件组件生成组件对象,设定属性(步骤502)。
之后,判断是否所有软件组件的处理结束(步骤503),在处理未结束的场合,返回到步骤501继续进行处理,在处理结束的场合,前进到步骤504。
接着,从逻辑设计信息5中读取组件连接信息5b(步骤504),根据该组件属性信息5a和物理组件信息6对各软件组件设定相互参照信息,连接组件间(步骤505)。
之后,判断是否所有软件组件的处理结束(步骤506),在处理未结束的场合,返回到步骤504继续进行处理,在处理结束的场合,结束整体处理。
在上述图1-图11所示实施形式和图12-图17所示实施形式中,以在单一的计算机上实现应用软件开发系统的场合为例进行了说明,但不限于此,也可在图18所示那样的分散开发环境下实现应用软件开发系统。具体地说,也可如图18所示那样,在通过互联网等网络32相互连接的多个客户计算机31和服务器计算机33中,将逻辑层(设计工具1和逻辑组件信息4)设置在客户计算机31上,将物理层(源代码生成处理部2、编译器3、物理组件信息6、源代码7、组件库8、及可运行文件9)设置在服务器计算机33。在该场合,在客户计算机31与服务器计算机33之间,可交换不涉及物理组件的安装信息的、由XML语言等形成的逻辑设计信息5,所以,可减小通信量。因此,即使在互联网环境下,也可从客户计算机31侧开发服务器计算机33侧的应用软件,可应用于提供在互联网环境下的开放式的应用软件开发环境那样的服务中。
另外,在上述图1-图11所示实施形式和图12-图17所示实施形式中,由编译器3集成由源代码生成处理部2生成的源代码7和组件库8,但不限于此,也可通过组件选择手法或组件插入手法等集成源代码7和组件库8。
另外,在上述图1-图11所示实施形式和图12-图17所示实施形式中,由XML语言描述逻辑组件信息4和物理组件信息6,但不限于此,可由表形式等任意的形式描述。
另外,在上述图1-图11所示实施形式和图12-图17所示实施形式中,应用软件开发系统的设计工具1、源代码生成处理部2、及编译器3可作为程序加以实现。这样的程序构成的应用软件开发程序,如果为例如图18所示那样的分散开发环境,则可记录到软盘34和CD-ROM35等计算机可读取的记录媒体中,在客户计算机31和服务器计算机33中,可按图4-图6所示顺序开发应用软件。
作为本发明的记录媒体,不限于软盘和CD-ROM,只要为如磁盘、内存储器、硬盘、光盘(CD-R、DVD(Digital Versatile Disk)等)、磁光盘(MO(MagnetoOptical)等)、半导体存储器等那样可记录程序而且可由计算机读取的记录媒体,则其记录形式可为任何形式。另外,作为记录媒体,还包含在网络上传送时的载波和信息传递媒体。
另外,也可根据从记录媒体安装到计算机的程序的指示,由在计算机上工作的OS(操作系统)或数据库管理软件、网络软件等MW(中间件)等进行用于实现本发明的各处理的一部分。
另外,本发明的记录媒体不限于与计算机独立的媒体,也包括下载由局域网和互联网等传输的程序并存储或暂时存储的记录媒体。
另外,记录媒体不限于1个,从多个媒体实施本发明的处理的场合也包含于本发明的记录媒体中,媒体的构成可为任一构成。
如以上那样按照本发明,可容易地开发能够灵活地与系统环境变化相对应的、维护性良好的应用软件。

Claims (10)

1、一种应用软件开发系统,通过组合多个软件组件来开发应用软件,其特征在于,包括:
逻辑设计单元,支持基于逻辑组件信息、通过组合多个逻辑组件而进行的应用软件设计,并输出通过该设计而获得的逻辑设计信息,其中所述逻辑组件信息包含逻辑组件的定义信息,所述逻辑组件是分别与多个软件相对应地设置并从该软件组件中抽出不依赖于系统环境的部分后而成的逻辑组件;
物理安装单元,根据由上述逻辑设计单元输出的逻辑设计信息和软件组件的物理安装信息而生成可在系统环境上运行的应用软件,
其中上述逻辑组件的定义信息包含:含有各个上述逻辑组件的ID、属性信息、输入输出信息的逻辑组件基本信息;和含有各个上述逻辑组件间的连接信息的逻辑组件关联信息,
上述逻辑设计信息包含:上述逻辑组件的属性信息和上述逻辑组件间的连接信息,
上述物理安装单元由源生成处理单元以及生成可运行文件的编译器构成。
2、根据权利要求1所述的应用软件开发系统,其特征在于,上述逻辑设计单元具有:
规格信息生成单元,根据上述逻辑组件信息生成上述各逻辑组件的规格信息;和
设计单元主体,支持基于由上述规格信息生成单元生成的上述各逻辑组件的规格信息、通过组合上述各逻辑组件而进行的应用软件设计,其中上述逻辑组件的规格信息包含上述逻辑组件的输入输出规格、上述逻辑组件间的连接规格、及上述逻辑组件的属性规格。
3、根据权利要求2所述的应用软件开发系统,其特征在于:上述各逻辑组件的规格信息包含上述各逻辑组件的输入输出规格、上述各逻辑组件间的连接规格、及上述各逻辑组件的属性规格。
4、根据权利要求1所述的应用软件开发系统,其特征在于:上述物理安装单元具有源代码生成处理单元和可运行文件生成单元,而该源代码生成处理单元根据由上述逻辑设计单元输出的逻辑设计信息、和包含面向系统环境安装的物理组件与逻辑组件间的对应关系的物理组件信息,生成源代码,该可运行文件生成单元根据由上述源代码生成处理单元生成的源代码、和存放上述各物理组件安装信息的组件库,生成可在系统环境上运行的可运行文件。
5、根据权利要求1所述的应用软件开发系统,其特征在于:上述物理安装单元具有源代码生成处理单元、可运行文件生成单元、及组件对象生成处理单元,而该源代码生成处理单元根据包含面向系统环境安装的物理组件与逻辑组件间的对应关系的物理组件信息,生成源代码,该可运行文件生成单元根据由上述源代码生成处理单元生成的源代码和存放上述各物理组件安装信息的组件库,生成可在系统环境上运行的可运行文件,该组件对象生成处理单元在运行由可运行文件生成单元生成的可运行文件时,根据由上述逻辑设计单元输出的逻辑设计信息和上述物理组件信息,生成组件对象,并设定组件的属性和组件间的连接关系。
6、根据权利要求1-5中任何一项所述的应用软件开发系统,其特征在于:上述逻辑设计信息包含上述各逻辑组件的属性信息和上述各逻辑组件间的连接信息。
7、根据权利要求1所述的应用软件开发系统,其特征在于:上述逻辑设计信息由XML语言描述。
8、根据权利要求1所述的应用软件开发系统,其特征在于:上述逻辑设计单元和上述物理安装单元分别设置在通过网络相互连接的客户计算机上和服务器计算机上,在上述客户计算机与上述服务器计算机之间交换上述逻辑设计信息。
9、一种应用软件开发方法,通过组合多个软件组件来开发应用软件,其特征在于,包括:
支持基于逻辑组件信息、通过组合多个逻辑组件而进行的应用软件设计,其中所述逻辑组件信息包含逻辑组件的定义信息,所述逻辑组件是分别与多个软件相对应地设置并从该软件组件中抽出不依赖于系统环境的部分后而成的逻辑组件;
根据通过上述设计而获得的逻辑设计信息和软件组件的物理安装信息而生成可在系统环境上运行的应用软件,
其中上述逻辑组件的定义信息包含:含有各个上述逻辑组件的ID、属性信息、输入输出信息的逻辑组件基本信息;和含有各个上述逻辑组件间的连接信息的逻辑组件关联信息,
上述逻辑设计信息包含:上述逻辑组件的属性信息和上述逻辑组件间的连接信息。
10、一种应用软件生成方法,通过组合多个软件组件来生成应用软件,其特征在于,包括:
显示与多个逻辑组件相关的信息,以供用户根据该相关信息选择逻辑组件的步骤,其中所述多个逻辑组件分别与多个软件相对应地设置;
基于包含逻辑组件的定义信息的逻辑组件信息、通过组合用户所选择的逻辑组件而进行应用软件设计,并生成逻辑设计信息的步骤;
以及
根据上述逻辑设计信息和软件组件的物理安装信息而生成可在系统环境上运行的应用软件的步骤,
其中上述逻辑组件的定义信息包含:含有各个上述逻辑组件的ID、属性信息、输入输出信息的逻辑组件基本信息;和含有各个上述逻辑组件间的连接信息的逻辑组件关联信息,
上述逻辑设计信息包含:上述逻辑组件的属性信息和上述逻辑组件间的连接信息。
CNB011375345A 2000-10-27 2001-10-26 应用软件开发系统及其方法、以及应用软件生成方法 Expired - Fee Related CN1196995C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000328819 2000-10-27
JP328819/2000 2000-10-27

Publications (2)

Publication Number Publication Date
CN1357822A CN1357822A (zh) 2002-07-10
CN1196995C true CN1196995C (zh) 2005-04-13

Family

ID=18805613

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011375345A Expired - Fee Related CN1196995C (zh) 2000-10-27 2001-10-26 应用软件开发系统及其方法、以及应用软件生成方法

Country Status (2)

Country Link
US (1) US7127702B2 (zh)
CN (1) CN1196995C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736915A (zh) * 2011-04-12 2012-10-17 株式会社日立制作所 自动程序生成装置、方法以及计算机程序

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030135842A1 (en) * 2002-01-16 2003-07-17 Jan-Erik Frey Software development tool for embedded computer systems
US20040098703A1 (en) * 2002-11-15 2004-05-20 Kondur Sankar Narayana Integration of multiple software tools under a single site
US7634763B2 (en) * 2003-07-15 2009-12-15 Microsoft Corporation Extensible multi-language compilation
US7784024B2 (en) * 2003-08-20 2010-08-24 Japan Tobacco Inc. Program creating system, program creating program, and program creating module
US7562346B2 (en) * 2003-09-02 2009-07-14 Microsoft Corporation Software componentization for building a software product
CA2446082A1 (en) * 2003-10-22 2005-04-22 Ibm Canada Limited - Ibm Canada Limitee Single file serialization for physical and logical meta-model information
US9058177B2 (en) * 2004-02-12 2015-06-16 Raju Venkata Chiluvuri Real software components for achieving real component-based design
JP2005242479A (ja) * 2004-02-24 2005-09-08 Toshiba Corp データ変換装置及びデータ変換用プログラム
US7426713B2 (en) * 2004-03-31 2008-09-16 International Business Machines Corporation Controlling a GUI display for a plug-in
JP2006076951A (ja) * 2004-09-10 2006-03-23 Yashima Sangyo Kk 木材寄生線虫用くん蒸剤および木材くん蒸方法
JP4924976B2 (ja) * 2005-03-23 2012-04-25 新日鉄ソリューションズ株式会社 ソフトウェア開発支援システム
US7631011B2 (en) * 2005-07-29 2009-12-08 Microsoft Corporation Code generation patterns
TW200731134A (en) * 2006-02-14 2007-08-16 Mitac Int Corp Software system structure and application program processing method
US20070192367A1 (en) * 2006-02-16 2007-08-16 Microsoft Corporation Generic expression framework for computer implementable expressions
JP2007241610A (ja) * 2006-03-08 2007-09-20 Toshiba Corp ソフトウェア部品管理装置、ソフトウェア部品管理方法、およびソフトウェア部品
US8095923B2 (en) * 2006-06-29 2012-01-10 Augusta Systems, Inc. System and method for deploying and managing intelligent nodes in a distributed network
US20080005721A1 (en) * 2006-06-29 2008-01-03 Augusta Systems, Inc. Method and System for Rapidly Developing Sensor-Enabled Software Applications
US7735060B2 (en) * 2006-06-29 2010-06-08 Augusta Systems, Inc. Method and system for rapidly developing and deploying sensor-enabled software applications
US8015547B2 (en) * 2006-06-29 2011-09-06 Augusta Systems, Inc. Reconfigurable, hierarchical component-based architecture and framework and methods for rapidly developing sensor device-enabling software applications
US7676790B1 (en) * 2006-08-04 2010-03-09 Lam Research Corporation Plasma processing system component analysis software and methods and systems for creating the same
KR100881419B1 (ko) * 2006-11-02 2009-02-05 한국전자통신연구원 Sca 기반 시스템의 애플리케이션 컴포넌트 통신 장치 및방법
KR100911324B1 (ko) * 2007-06-22 2009-08-07 삼성전자주식회사 가변성 요소 관리 방법 및 그 장치
US20100146478A1 (en) * 2008-12-10 2010-06-10 Microsoft Corporation Multi-layered storage and management of software components
GB2481191A (en) * 2010-02-25 2011-12-21 Sita Information Networking Computing Ireland Ltd Graphical development tool for software application development
US8490054B2 (en) 2011-09-23 2013-07-16 The United States Of America As Represented By The Secretary Of The Army Software and related software tracking during software modification
US8910115B2 (en) * 2012-04-02 2014-12-09 Kony Solutions, Inc. Systems and methods for application development
US8813028B2 (en) * 2012-07-19 2014-08-19 Arshad Farooqi Mobile application creation system
US20140047368A1 (en) * 2012-08-13 2014-02-13 Magnet Systems Inc. Application development tool
CN103777929A (zh) * 2012-10-18 2014-05-07 中国移动通信集团公司 用于程序开发的模拟开发系统的实现方法及模拟开发系统
CN103425778B (zh) * 2013-08-16 2017-03-08 国家电网公司 一种数据库应用系统的智能化开发平台
CN104424098B (zh) * 2013-08-28 2019-01-29 腾讯科技(深圳)有限公司 一种应用测试方法及装置
US9851949B2 (en) * 2014-10-07 2017-12-26 Kevin D. Howard System and method for automatic software application creation
CN105242976A (zh) * 2015-09-17 2016-01-13 上海寰信网络信息技术有限公司 一种程序中逻辑单元之间数据传输的方法与系统
CN110244977A (zh) * 2019-05-21 2019-09-17 深圳壹账通智能科技有限公司 定制化软件生成方法、系统、电子设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884078A (en) * 1997-01-31 1999-03-16 Sun Microsystems, Inc. System, method and article of manufacture for creating an object oriented component having multiple bidirectional ports for use in association with a java application or applet
JPH11175329A (ja) * 1997-12-08 1999-07-02 Hitachi Ltd アプリケーション連携方法及び装置
US6301708B1 (en) * 1998-11-12 2001-10-09 Hewlett-Packard Company Software installation process using abstract data and program files
US6718533B1 (en) * 1999-02-26 2004-04-06 Real-Time Innovations, Inc. Method for building a real-time control system with mode and logical rate
JP3444227B2 (ja) * 1999-04-09 2003-09-08 日本電気株式会社 ソフトウェアの不正使用防止方法
US6467080B1 (en) * 1999-06-24 2002-10-15 International Business Machines Corporation Shared, dynamically customizable user documentation
US6199195B1 (en) * 1999-07-08 2001-03-06 Science Application International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6601233B1 (en) * 1999-07-30 2003-07-29 Accenture Llp Business components framework
US6701513B1 (en) * 2000-01-14 2004-03-02 Measurement Computing Corporation Program-development environment for use in generating application programs
US6681391B1 (en) * 2000-06-21 2004-01-20 Microsoft Corporation Method and system for installing software on a computer system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736915A (zh) * 2011-04-12 2012-10-17 株式会社日立制作所 自动程序生成装置、方法以及计算机程序
CN102736915B (zh) * 2011-04-12 2016-12-14 株式会社日立制作所 自动程序生成装置、方法以及计算机程序

Also Published As

Publication number Publication date
CN1357822A (zh) 2002-07-10
US20020053070A1 (en) 2002-05-02
US7127702B2 (en) 2006-10-24

Similar Documents

Publication Publication Date Title
CN1196995C (zh) 应用软件开发系统及其方法、以及应用软件生成方法
CN1313920C (zh) 一种基于统一构件封装件结构的构件组装方法
CN1291313C (zh) 操作系统的自动安装和配置的系统和方法
CN1313923C (zh) 软件分发方法与系统
JP2006526209A (ja) コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム
JP2009238229A (ja) コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム
CN1728094A (zh) 智能ui记录和重放结构
CN1577322A (zh) 管理数据处理系统中的应用文件的方法和装置
CN1808439A (zh) 网页加入可搜索的深标签及浏览器插件和脚本结合的方法
CN1573693A (zh) 用于创建、管理和使用代码段的系统和方法
CN1783090A (zh) 用于对象模型与xml间转换的可共享双向方法和系统
CN1682183A (zh) 在客户机-服务器通信中处理增量数据的方法和计算机系统
CN1577265A (zh) 用于可扩充编译器和工具基础结构的描述语言
CN1848774A (zh) 一种远程调用通信组件的系统及方法
CN102566984B (zh) 一种配置参数的方法及装置
US20030122867A1 (en) Method and apparatus for assembling enterprise javabeans components
JP2002202886A (ja) アプリケーション開発システム、その方法およびアプリケーション開発プログラムおよびアプリケーション生成方法
CN1280727C (zh) 一种人机命令测试方法
CN1662011A (zh) 使用元数据定义映射来构建组件应用程序的系统和方法
Volgyesi et al. Component-based development of networked embedded applications
CN101034348A (zh) 软件组件管理装置和方法
CN1744037A (zh) 避免网格计算应用依赖底层开发工具箱的方法
CN1975669A (zh) Xml语言描述的业务逻辑映射到应用语言的方法
CN1313925C (zh) 构件自描述封装方法及运行的方法
CN109710218B (zh) 一种对象自动转换方法及终端

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050413

Termination date: 20091126