CN1828531A - 构件化软件系统中构件接口和运行逻辑的构建方法 - Google Patents
构件化软件系统中构件接口和运行逻辑的构建方法 Download PDFInfo
- Publication number
- CN1828531A CN1828531A CN 200610024054 CN200610024054A CN1828531A CN 1828531 A CN1828531 A CN 1828531A CN 200610024054 CN200610024054 CN 200610024054 CN 200610024054 A CN200610024054 A CN 200610024054A CN 1828531 A CN1828531 A CN 1828531A
- Authority
- CN
- China
- Prior art keywords
- node
- attribute
- construction method
- component
- name
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种构件化软件系统中构件接口和运行逻辑的构建方法,其中开发时构建过程包括建立包含流程节点元素的根节点、在流程节点元素中建立包含数个顶点元素的顶点列表节点和数个边元素的边列表节点、在各个顶点元素中建立相应的顶点特性信息、在各个边元素中建立相应的边特性信息;运行时构建过程包括建立包含过程节点、附加信息节点元素和数个参数节点元素的根节点、在过程节点中建立数个逻辑节点元素、在每个逻辑节点元素中建立相应的逻辑特性信息。采用该种构件化软件系统中构件接口和运行逻辑的构建方法,能够直观有效的表现系统各部分的关系和内部运作流程,开发效率和运行性能高,开发维护成本低系统移植性和扩展性强,适用范围较广泛。
Description
技术领域
本发明涉及计算机软件领域,特别涉及构件化软件系统领域,具体是指一种构件化软件系统中构件接口和运行逻辑的构建方法。
背景技术
随着现代社会科学技术的发展,计算机系统已经成为各行各业所不可缺少的工具,而在其中起着核心作用的,则是计算机软件系统。随着软件系统在各行各业的日益渗透,商业系统的日益庞大,其自身的问题也是越来越严重。现在的一个企业应用,常常会涉及企业的每一个部分,会由几十人编写几十万到几百万行代码来完成。另一方面,现代企业是在一个不断变化的动态环境中生存和发展的,因此,企业应用就需要不断地维护——即部分地改写一些现有软件。由几十万上百万的代码式变化因子,组成的不断变化的系统,其复杂度是人类历史上没有见过的。软件的安全性和质量可靠性,常常成为现代无所不在、无所不能的信息化系统的一个严重问题。
而现有技术中,虽然已经出现了一些构件化的软件和相应的建模工具,但是无法形成一个完整而易于扩展的强大体系,尤其是在常规的程序编码过程中,程序员通常所面对的就是一堆抽象难懂的代码,虽然这些代码是高级语言,但是对于程序中纷繁复杂的逻辑关系和动态行为机制,却无法直观的表现,从而使得错误和缺陷经常发生,软件整体的开发效率无法得到根本的改善,同时现有的完全基于代码的软件开发中存在着开发、实施、维护成本过高,管理不便的问题。在这种情况下,便给现代计算机软件程序设计技术的发展带来了一定的阻碍。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种能够直观有效的表现系统各部分的关系和内部运作流程、提高开发效率和运行性能、降低开发维护成本、系统可移植性和可扩展性较强、适用范围较为广泛的构件化软件系统中构件接口和运行逻辑的构建方法。
为了实现上述的目的,本发明的构件化软件系统中构件接口和运行逻辑的构建方法如下:
该构件化软件系统中构件接口和运行逻辑的构建方法,其主要特点是,所述的方法包括开发时构建过程和运行时构建过程,所述的开发时构建过程包括以下步骤:
(1)建立包含流程节点元素的根节点;
(2)在流程节点元素中建立包含数个顶点元素的顶点列表节点和数个边元素的边列表节点;
(3)在各个顶点元素中建立相应的顶点特性信息;
(4)在各个边元素中建立相应的边特性信息;
所述的运行时构建过程包括以下步骤:
(1)建立包含过程节点、附加信息节点元素和数个参数节点元素的根节点;
(2)在过程节点中建立数个逻辑节点元素;
(3)在每个逻辑节点元素中建立相应的逻辑特性信息。
该构件化软件系统中构件接口和运行逻辑的构建方法的在顶点元素中建立相应的顶点特性信息包括以下步骤:
(1)在顶点元素中建立名称节点和包含数个特性元素的特性列表节点;
(2)在各个特性元素中建立特性值节点和包含数个列表列节点元素的列表行节点元素。
该构件化软件系统中构件接口和运行逻辑的构建方法的顶点元素中包含有标识属性、类型名称属性和显示属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的显示属性包括横纵坐标值属性、高度属性和宽度属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的特性元素中包含有名称属性和类型属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的列表行节点元素包含有序列属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的列表列节点元素包含有序列属性和名称属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的在边元素中建立相应的边特性信息包括以下步骤:
(1)在边元素中建立起始点节点、终止点节点和包含数个特性元素的特性列表节点;
(2)在各个特性元素中建立特性值节点和包含数个列表列节点元素的列表行节点元素。
该构件化软件系统中构件接口和运行逻辑的构建方法的边元素中包含有标识属性、显示名称属性和颜色属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的特性元素中包含有名称属性和类型属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的列表行节点元素包含有序列属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的列表列节点元素包含有序列属性和名称属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的流程节点元素包含有名称属性和类型属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的在逻辑节点元素中建立相应的逻辑特性信息为:
在逻辑节点元素中建立操作节点元素、操作参数节点元素、包含数个后继项节点的后继列表节点元素、包含数个异常项节点的异常列表节点和返回值节点。
该构件化软件系统中构件接口和运行逻辑的构建方法的操作节点元素包含有类型属性和值属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的操作参数节点元素包含有类型属性和值属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的后继列表节点元素包含有默认后继项属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的参数节点元素包含有标识属性、名称属性、输入路径属性、输入/输出类型属性,类型属性、值属性和说明属性。
该构件化软件系统中构件接口和运行逻辑的构建方法的附加信息节点元素包含有显示名称属性、模块名称属性、作者属性、版本属性、创建时间属性、部门属性、说明属性和返回值属性。
采用了该发明的构件化软件系统中构件接口和运行逻辑的构建方法,由于使用了扩展标记语言或者其它标准元语机制,并结合了可视化的开发工具对构件接口和构件本身的内部运行逻辑按照一定的标准格式进行分层构建,并具体分为业务逻辑构建和展现逻辑构建两个部分,同时针对于开发时和运行时两个不同阶段的不同需求特点分别进行构建,从而使其不仅能够直观有效的表现系统各部分的关系和内部运作流程,而且提高了开发效率和运行性能,降低了开发维护的成本;同时增强了系统可移植性和可扩展性;不仅如此,该方法还能够快速回应业务需求的变化和技术变化,能够支撑建立高度模块化而且又高度整合的软件系统,适用范围较为广泛,为计算机软件技术的进一步发展打下了坚实的基础。
附图说明
图1为本发明的构件化软件系统中在开发时进行构件接口和运行逻辑的构建结构示意图。
图2为本发明的构件化软件系统中在运行时进行构件接口和运行逻辑的构建结构示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
请参阅图1所示,该构件化软件系统中构件接口和运行逻辑的构建方法,其主要特点是,所述的方法包括开发时构建过程和运行时构建过程,所述的开发时构建过程包括以下步骤:
(1)建立包含流程节点元素的根节点,该流程节点元素包含有名称属性和类型属性;
(2)在流程节点元素中建立包含数个顶点元素的顶点列表节点和数个边元素的边列表节点,该顶点元素中包含有标识属性、类型名称属性和显示属性,该显示属性包括横纵坐标值属性、高度属性和宽度属性;该边元素中包含有标识属性、显示名称属性和颜色属性;
(3)在各个顶点元素中建立相应的顶点特性信息,包括以下步骤:
(a)在顶点元素中建立名称节点和包含数个特性元素的特性列表节点,该特性元素中包含有名称属性和类型属性;
(b)在各个特性元素中建立特性值节点和包含数个列表列节点元素的列表行节点元素,该列表行节点元素包含有序列属性,该列表列节点元素包含有序列属性和名称属性;
(4)在各个边元素中建立相应的边特性信息,包括以下步骤:
(1)在边元素中建立起始点节点、终止点节点和包含特性元素列表的特性节点,该特性元素中包含有名称属性和类型属性;
(2)在特性元素列表中的各个特性元素中建立特性值节点和包含数个列表列节点元素的列表行节点元素,该列表行节点元素包含有序列属性,该列表列节点元素包含有序列属性和名称属性;
在实际应用当中,在开发阶段,构件的接口和运行逻辑被抽象为带参数的流程图,各种层次的逻辑具有相同的结构。
其构建中的各个节点名称如下:
●autoGraphics节点为文件的根节点;
●graphic节点为流程节点,包含name和type属性,标识流程的名称和类型;
●states节点为流程图的顶点节点,它的子结点为图的顶点列表;
●connects节点为流程图的边节点,它的子结点为图的边列表;
●state节点表示流程图的一个顶点,包含id、typename、x、y、height、width等属性,分别表示顶点的标识、名称和显示属性;
●connect节点表示流程图的一条边,包含id、type、color等属性,分别表示边的标识、显示名称和颜色等属性。
对于流程图的顶点,不同层次的逻辑表达中,它们同样具有相同的结构,相互之间的区别,通过具体的特性来表现。
其构建中的各个节点名称如下:
●Name节点表示顶点的名称;
●propertyList节点为顶点的特性节点,它的子结点为顶点的特性列表;
●property节点表示顶点的一个特性,包含name和type属性,分别表示特性的名称和类型;
●value节点表示顶点特性的值;
●row节点表示列表类特性的一行,包含num属性,表示行的序列;
●column节点表示列表类特性的一列,包含num和name属性,分别表示列的序列和列的名称。
与流程图的顶点相似,在不同层次的逻辑表达中,边的表示也同样具有相同的结构,相互之间的区别,也通过具体的特性来表现。
其构建中的各个节点名称如下:
●from表示边的开始顶点;
●to表示边的终止顶点;
●propertyList节点为边的特性节点,它的子结点为边的特性列表;
●property节点表示边的一个特性,包含name和type属性,分别表示特性的名称和类型;
●value节点表示边特性的值;
●row节点表示列表类特性的一行,包含num属性,表示行的序列;
●column节点表示列表类特性的一列,包含num和name属性,分别表示列的序列和列的名称。
以下是使用上述结构的逻辑表达示例:<?xml version="1.0"encoding="GB2312"standalone="no"?><autoGraphics>
<graphic name="bizFile"type="bzg"router="0">
<states>
<state color="16777215"id="1"typeName="Start"height="48"width="48"x="38"y="56">
<name>流程开始</name>
<propertyList>
<property name="id"type="0">
<value/>
</property>
<property name="display_text"type="0">
<value>开始</value>
</property>
<property name="return_value"type="0">
<value/>
</property>
<property name="author"type="0">
<value>Administrator</value>
</property>
<property name="department"type="0">
<value></value>
</property>
<property name="date"type="0">
<value>Sat Jan 14 17:20:05 CST 2006</value>
</property>
<property name="productVersion"type="0">
<value>5.0</value>
</property>
<property name="automationVersion"type="0">
<value/>
</property>
<property name="deseription"type="0">
<value/>
</property>
<property name="graphicRef"type="0">
<value/>
</property>
<property name="ModelName"type="0">
<value>Product</value>
<property>
<property name="type"type="1">
<value>pi</value>
</property>
<property name="parameter"type="5">
<row num="0">
<column num="0"name="passing"type="1">in</column>
<column num="1"name="type"type="1">EOSEntity</column>
<column num="2"name="value"type="0">CUSTOMER</column>
<column num="3"name="name"type="0"/>
<column num="4"name="inPath"type="0">/</column>
<column num="5"name="description"type="0"/>
</row>
<row num="1">
<column num="0"name="passing"type="1">out</column>
<column num="1"name="type"type="1">EOSEntityList</column>
<column num="2"name="value"type="0">list[@type="CUSTOMER"]</column>
<column num="3"name="name"type="0"/>
<column num="4"name="inPath"type="0">/</column>
<column num="5"name="description"type="0"/>
</row>
<row num="2">
<column num="0"name="passing" type="1">in</column>
<column num="1"name="type"type="1">EOSEntity</column>
<column num="2"name="value"type="0">PageCond</column>
<column num="3"name="name"type="0"/>
<column num="4"name="inPath"type="0">/</column>
<column num="5"name="description"type="0"/>
</row>
<row num="3">
<column num="0"name="passing"type="1">out</columa>
<column num="1"name="type"type="1">EOSEntity</column>
<column num="2"name="value"type="0">PageCond</column>
<column num="3"name="name"type="0"/>
<column num="4"name="inPath"type="0">/</column>
<column num="5"name="description"type="0"/>
</row>
</property>
</propertyList>
<description/></state><state color="16777215"id="2"typeName="End"height="48"width="48"x="300"y="56">
<name>流程结束</name>
<propertyList>
<property name="display_text"type="0">
<value>结束</value>
</property>
<property name="action"type="2">
<row num="0">
<column num="0"name="action">end</column>
<column num="1"name="type"/>
</row>
</property>
<property name="description"type="0">
<value/>
</property>
</propertyList>
<description/></state><state color="16777215"id="3"typeName="BL"height="48"width="48"x="176"y="56">
<name>businessLogic</name>
<propertyList>
<property name="display_text"type="0">
<value>查询(BL_queryEntityAllWithPageExt)</value>
</property>
<property name="action"type="2">
<row num="0">
<column num="0"name="action">
com.primeton.eos.DataQueryExt.BL_queryEntityAllWithPageExt
</column>
<column num="1"name="type">constant</column>
</row>
</property>
<property name="description"type="0">
<value/>
</property>
<property name="parameter"type="5">
<row num="0">
<column num="0"name="passing"type="1">in_out</column>
<column num="1"name="type"type="1">EOSEntityList</column>
<column num="2"name="value"type="0">list[@type="CUSTOMER"]</column>
<column num="3"name="paraType"type="0">{Node}</column>
<column num="4"name="name"type="0"/>
<column num="5"name="description"type="0">输出结果list</column>
</row>
<row num="1">
<column num="0"name="passing"type="1">in_out</column>
<column num="1"name="type"type="1">EOSEntity</column>
<column num="2"name="value"type="0">CUSTOMER</column>
<column num="3"name="paraType"type="0">{Node}</column>
<column num="4"name="name"type="0"/>
<column num="5"name="description"type="0">结果的EOSEntity</column>
</row>
<row num="2">
<column num="0"name="passing"type="1">in_out</column>
<column num="1"name="type"type="1">EOSEntity</column>
<column num="2"name="value"type="0">PageCond</column>
<column num="3"name="paraType"type="0">{Node}</column>
<column num="4"name="name"type="0"/>
<column num="5"name="description"type="0">PageCond</column>
</row>
</property>
</propertyList>
<description/>
</state></states><connectors>
<connector color="0"description=""id="-2"type="connection">
<from>Shape.Start.1</from>
<to>Shape.businessLogic.3</to>
<propertyList>
<property name="isSimpleExpression"type="0">
<value>true</value>
</property>
<property name="display_text"type="0">
<value/>
</property>
<property name="type"type="0">
<value/>
</property>
<property name="valueType"type="0">
<value/>
</property>
<property name="default"type="0">
<value>true</value>
</property>
<property name="refPath"type="3">
<row num="0">
<column num="0"name="leftValue"/>
<column num="1"name="compType"/>
<column num="2"name="rightValue"/>
</row>
</property>
<property name="expression"type="0">
<value/>
</property>
</propertyList>
<bendpoints/>
</connector>
<connector color="0"description=""id="-2"type="connection">
<from>Shape.businessLogic.3</from>
<to>Shape.End.2</to>
<propertyList>
<property name="isSimpleExpression"type="0">
<value>true</value>
</property>
<property name="display_text"type="0">
<value/>
</property>
<property name="type"type="0">
<value>retCode</value>
</property>
<property name="valueType"type="0">
<value>constant</value>
</property>
<property name="default"type="0">
<value>true</value>
</property>
<property name="refPath"type="3">
<row num="0">
<column num="0"name="leftValue"/>
<column num="1"name="compType">EQ</column>
<column num="2"name="rightValue"/>
</row>
</property>
<property name="expression"type="0">
<value/>
</property>
</propertyList>
<bendpoints/>
</connector>
</connectors>
<groups/></graphic></autoGraphics>
再请参阅图2所示,所述的运行时构建过程包括以下步骤:
(1)建立包含过程节点、附加信息节点元素和数个参数节点元素的根节点,该附加信息节点元素包含有显示名称属性、模块名称属性、作者属性、版本属性、创建时间属性、部门属性、说明属性和返回值属性,该参数节点元素包含有标识属性、名称属性、输入路径属性、输入/输出类型属性,类型属性、值属性和说明属性;
(2)在过程节点中建立数个逻辑节点元素;
(3)在每个逻辑节点元素中建立相应的逻辑特性信息,具体为:
在逻辑节点元素中建立操作节点元素、操作参数节点元素、包含数个后继项节点的后继列表节点元素、包含数个异常项节点的异常列表节点和返回值节点,该操作节点元素包含有类型属性和值属性,该操作参数节点元素包含有类型属性和值属性,该后继列表节点元素包含有默认后继项属性。
在实际应用当中,在运行期,构件被部署在特定的上下文环境中,可以称为构件运行平台。构件运行平台管理构件的生命周期,包括构件的创建、维持和销毁,并负责为构件运行提供所需的上下文数据填充。在构件运行平台上,多个构件之间进行通讯协作,共同完成特定的业务操作。
同开发期的结构不同,在运行期,构件的接口和内部逻辑描述不再包含和表现相关的数据,如流程图中顶点和边的位置、形状、颜色等属性,而且,要根据构件运行平台的要求,重新组织构件的接口说明、逻辑过程及相关参数等。从开发期的结构到运行期结构的转换过程,类似于高级程序设计语言中“编译”的概念。更加直观的讲,开发期的结构适应可视化构件开发的要求,运行期的结构适应构件运行平台的要求,在两者之间关注的重点发生了变化。
同传统的J2EE应用平台类似,构件运行平台在应用的纵深维度上对应用进行分层,运行于不同层次的构件具有不同的接口特征和内部逻辑描述规范
在运行期,构件的接口和内部运行逻辑通过图2所示的结构进行表示。
其构建中的各个节点名称如下:
●eosAutomation节点表示文件的根结点,包含id、produceVersion、type等属性,分别表示标识、产品版本和类型;
●info节点包含文本信息,包括作者、描述、创建时间和文件版本等信息;
●parameter节点表示所描述的逻辑的参数,包含id、name、inpath、passing、type、value和description等属性,分别表示参数的标识、名称、输入路径、输入/输出类型,类型、值和说明,parameter节点可能有并列的多个;
●process节点是逻辑过程的根结点,根据逻辑类型的不同,它包含不同的某种特定类型的子结点或者是hciState,或者是piState,或者是wfState。
在J2EE应用的纵向维度中,参考传统的体系架构,构件内部逻辑的表达可分为展现逻辑、业务逻辑和流程逻辑,分别对应原有的展现层、业务层和工作流体系。其中展现逻辑、业务逻辑具有相同的顶点结构。
其构建中的各个节点名称如下:
●piState/hciState节点表示相应逻辑中的一个顶点,包含id、isStart、isEnd、name、type等属性,分别表示顶点的标识、是否为开始节点、是否为结束节点、名称、类型等;
●action节点表示该顶点要执行的操作,包含type和value属性,分别表示操作的类型和值,在不同的逻辑中,action的类型不同;
●parameter节点表示该顶点执行操作时所需的参数,包含type和value属性,分别表示参数的类型和值;
●next节点包含顶点的后继列表,用于指出流程的流向,它包含default属性,表示该顶点的默认后继;
●case节点包含该顶点的一个后继;
●exception顶点表示对该顶点的异常处理,用于指出异常情况下的流程流向。
对应于上面描述的结构,本文示例中开发阶段的流程经过转换的结果如下:<?xml version="1.0"encoding="GB2312"standalone="no"?><eosAutomation id="bizCUSTOMERQuery"productVersion="5.0"type="pi">
<info displayName=""ModelName=""author="Administrator"automationVersion=""date=""
department=""description=""return_value="">
</info>
<parameter id="0"name=""inPath="/"description=""passing="in"type="EOSEntity"value="CUSTOMER"/>
<parameter id="1"name=""inPath="/"description=""passing="out"type="EOSEntityList"
value="list[@type=";CUSTOMER"]"/>
<parameter id="2"name=""inPath="/"description=""passing=""type="EOSEntity"value="PageCond"/>
<parameter id="3"name=""inPath="/"description=""passing="out"type="EOSEntity"value="PageCond"/>
<process>
<piState description=""id="2"isFinal="true"isStart="false"name="流程结束"type="End">
<action type=""value="end"/>
</piState>
<piState description=""id="3"isFinal="false"isStart="true"
name="businessLogic"type="businessLogic">
<action type="constant"
value="com.primeton.eos.bizlets.database.DataQueryExt.BL_queryEntityAllWithPageExt"/>
<parameter id="0"name=""passing="in_out"type="EOSEntityList"
value="list[@type=";CUSTOMER"]"paraType="{Node}"/>
<parameter id="1"name=""passing="in_out"type="EOSEntity"value="CUSTOMER"paraType="{Nodee}"/>
<parameter id="2"name=""passing="in_out"type="EOSEntity"value="PageCond"paraType="{Node}"/>
<next defaultTarget="2"/>
</piState>
</process>
</eosAutomation>
在上述实施例中,使用的是结构的扩展标记语言描述,当然也可以根据需要采用其它的标准元语机制,无论采用何种描述机制,本发明的构建方法始终能够很好的支持开发过程的可视化。在集成开发环境中,构件的内部逻辑和接口定义能够更加直观的得以表现,从而大大提高开发、调试、部署、管理的效率。
在现代计算机软件开发领域,面向构件技术整合了传统的构件技术、模型驱动技术和面向服务技术,是解决现有软件系统结构弊端的一种有效手段。所谓构件,是指某种自成一体、并有一个(或一组)清晰接口的软件。同时,构件应具有清晰的运行时和上线内涵。也就是说,该构件具备可供运行时访问的接口;并且,在软件开发生命周期的某个时间点,该构件可独立交付和安装。另外,还必须要求一个构件能方便地跟其他构件合并或组合,从而提供各种有用的功能,而且在通常情况下,单个构件只有跟其它的构件协同工作才能达到其功效。
基于面向构件的体系架构,面向构件的开发是一种先进的软件开发手段,在开发周期的不同阶段和不同方面——包括需求分析、结构、设计、建立、测试、上线、支撑性技术架构、项目管理等,都以构件为基础。该定义把面向构件开发的外延,从运用面向构件的思路建立软件,扩展到了整个软件开发周期——它的所有阶段和所有方面都以构件为中心。如果希望构件可随时用于组装,这些构件必须作为项目的零件来建造,此时面向构件显得特别有优势。因此,用构件法来构思信息系统,是目前控制大型分布式系统开发复杂度的最佳方法。
通过实施本发明的构建方法,能够有效的执行构件化的软件开发,同时具有以下优势:
(1)大大降低了开发、上线、个性化成本,容易向大型的高性能和可扩展系统演变,从而来降低软件开发方面的“制造成本”。换句话说,本发明的构建方法所关注的不仅是分析——设计——开发这个生命周期,而是软件产品的整个寿命;
(2)能够快速回应“业务需求”的变化和“技术变化”。本发明的构建方法能以“订单生产”的方式,来应对某个垂直领域或某个特定客户的具体需求,从而能够交付出“高度个性化”和“可配置”的产品和流程;
(3)能够支撑建立既“高度模块化”又“高度整合”的软件。本发明的构建方法能够使软件构件不仅具有精确定义的边界,同时又归属于一个明确的结构;
(4)本发明的构建方法是一种事实上的软件构件“标准”,能够对构件规格和互动,起到技术和功能的双方面指导作用。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (19)
1、一种构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的方法包括开发时构建过程和运行时构建过程,所述的开发时构建过程包括以下步骤:
(1)建立包含流程节点元素的根节点;
(2)在流程节点元素中建立包含数个顶点元素的顶点列表节点和数个边元素的边列表节点;
(3)在各个顶点元素中建立相应的顶点特性信息;
(4)在各个边元素中建立相应的边特性信息;
所述的运行时构建过程包括以下步骤:
(1)建立包含过程节点、附加信息节点元素和数个参数节点元素的根节点;
(2)在过程节点中建立数个逻辑节点元素;
(3)在每个逻辑节点元素中建立相应的逻辑特性信息。
2、根据权利要求1所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的在顶点元素中建立相应的顶点特性信息包括以下步骤:
(1)在顶点元素中建立名称节点和包含数个特性元素的特性列表节点;
(2)在各个特性元素中建立特性值节点和包含数个列表列节点元素的列表行节点元素。
3、根据权利要求2所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的顶点元素中包含有标识属性、类型名称属性和显示属性。
4、根据权利要求3所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的显示属性包括横纵坐标值属性、高度属性和宽度属性。
5、根据权利要求2所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的特性元素中包含有名称属性和类型属性。
6、根据权利要求2所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的列表行节点元素包含有序列属性。
7、根据权利要求2所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的列表列节点元素包含有序列属性和名称属性。
8、根据权利要求1所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的在边元素中建立相应的边特性信息包括以下步骤:
(1)在边元素中建立起始点节点、终止点节点和包含数个特性元素的特性列表节点;
(2)在各个特性元素中建立特性值节点和包含数个列表列节点元素的列表行节点元素。
9、根据权利要求8所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的边元素中包含有标识属性、显示名称属性和颜色属性。
10、根据权利要求8所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的特性元素中包含有名称属性和类型属性。
11、根据权利要求8所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的列表行节点元素包含有序列属性。
12、根据权利要求8所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的列表列节点元素包含有序列属性和名称属性。
13、根据权利要求1至12中任一项所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的流程节点元素包含有名称属性和类型属性。
14、根据权利要求1所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的在逻辑节点元素中建立相应的逻辑特性信息为:
在逻辑节点元素中建立操作节点元素、操作参数节点元素、包含数个后继项节点的后继列表节点元素、包含数个异常项节点的异常列表节点和返回值节点。
15、根据权利要求14所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的操作节点元素包含有类型属性和值属性。
16、根据权利要求14所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的操作参数节点元素包含有类型属性和值属性。
17、根据权利要求14所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的后继列表节点元素包含有默认后继项属性。
18、根据权利要求1、14、15、16或者17所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的参数节点元素包含有标识属性、名称属性、输入路径属性、输入/输出类型属性,类型属性、值属性和说明属性。
19、根据权利要求1、14、15、16或者17所述的构件化软件系统中构件接口和运行逻辑的构建方法,其特征在于,所述的附加信息节点元素包含有显示名称属性、模块名称属性、作者属性、版本属性、创建时间属性、部门属性、说明属性和返回值属性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610024054 CN1828531A (zh) | 2006-02-22 | 2006-02-22 | 构件化软件系统中构件接口和运行逻辑的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610024054 CN1828531A (zh) | 2006-02-22 | 2006-02-22 | 构件化软件系统中构件接口和运行逻辑的构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1828531A true CN1828531A (zh) | 2006-09-06 |
Family
ID=36946944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610024054 Pending CN1828531A (zh) | 2006-02-22 | 2006-02-22 | 构件化软件系统中构件接口和运行逻辑的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1828531A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882078A (zh) * | 2010-05-28 | 2010-11-10 | 浙江大学 | 基于内存数据架构的模块间实时同步方法 |
CN106227736A (zh) * | 2016-07-11 | 2016-12-14 | 乐视控股(北京)有限公司 | 一种基于链表结构的逻辑流程实现方法及装置 |
-
2006
- 2006-02-22 CN CN 200610024054 patent/CN1828531A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882078A (zh) * | 2010-05-28 | 2010-11-10 | 浙江大学 | 基于内存数据架构的模块间实时同步方法 |
CN101882078B (zh) * | 2010-05-28 | 2013-01-16 | 浙江大学 | 基于内存数据架构的模块间实时同步方法 |
CN106227736A (zh) * | 2016-07-11 | 2016-12-14 | 乐视控股(北京)有限公司 | 一种基于链表结构的逻辑流程实现方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1097795C (zh) | 结构式文件处理方法和装置 | |
CN1290889A (zh) | 程序对象的串行化和解串行的版本适应 | |
CN1645336A (zh) | 基于模板的异构日志信息自动提取与分析方法 | |
CN1870523A (zh) | 网络设备配置系统和方法 | |
CN1875345A (zh) | 在编译过程中表示和检查程序组件的一致性的可扩展类型系统 | |
CN1708017A (zh) | 协议仿真器 | |
CN1749958A (zh) | 使用形状的公用图表 | |
CN1318163A (zh) | 可选择性定义对应用程序功能部件访问的系统和方法 | |
CN1744036A (zh) | 报告软件中支持定制图形表示的系统和方法 | |
CN101030138A (zh) | 应用构架 | |
CN1734423A (zh) | 与可用接口相符的设备驱动程序的安装装置和方法 | |
CN1934570A (zh) | 文本挖掘装置和其方法以及程序 | |
CN1763712A (zh) | 动态确定对网络主页gui环境中选定项执行的动作的方法 | |
CN1955956A (zh) | 基于bpel的图形与xml文档相互转换的方法 | |
CN1776621A (zh) | 程序变换方法 | |
CN1889039A (zh) | 基于xml实现通用浏览器工具条的方法 | |
CN1218244C (zh) | 调节规则生成方法和调节规则生成设备以及调节方法 | |
CN1799048A (zh) | 通用数据库模式 | |
CN1046360C (zh) | 说明用户接口的方法及运行多用户接口型计算机的编程系统 | |
CN1296825C (zh) | 模拟器及模拟方法 | |
CN1828531A (zh) | 构件化软件系统中构件接口和运行逻辑的构建方法 | |
CN1912830A (zh) | 定义面向对象模型的操作接口的方法 | |
CN1818903A (zh) | 扩展Java Server Faces的方法和系统 | |
CN1908951A (zh) | 具有验证功能的电子文档 | |
CN1348559A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |