CN1359489A - 用于构筑建模工具的装置和方法 - Google Patents

用于构筑建模工具的装置和方法 Download PDF

Info

Publication number
CN1359489A
CN1359489A CN99812224A CN99812224A CN1359489A CN 1359489 A CN1359489 A CN 1359489A CN 99812224 A CN99812224 A CN 99812224A CN 99812224 A CN99812224 A CN 99812224A CN 1359489 A CN1359489 A CN 1359489A
Authority
CN
China
Prior art keywords
characteristic
model
type
meta
return
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
CN99812224A
Other languages
English (en)
Inventor
塔德·A·德弗勒
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.)
UNITED IMAGINATIVE COMPUTER CO
CA Inc
Original Assignee
UNITED IMAGINATIVE COMPUTER CO
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 UNITED IMAGINATIVE COMPUTER CO filed Critical UNITED IMAGINATIVE COMPUTER CO
Publication of CN1359489A publication Critical patent/CN1359489A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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/466Transaction processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Numerical Control (AREA)
  • Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Measuring Fluid Pressure (AREA)
  • Perforating, Stamping-Out Or Severing By Means Other Than Cutting (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种用于构筑建模工具的装置,包括:一元模型,其含有一个语义注册表(图2中的#220)以及一个元数据管理程序(图2中的#240);一个对象/特性接口(图2中的#260);以及一个与上述元模型和对象/特性接口相连的对象/特性厂家注册表。语义注册表包括至少一个预定的语义集(图2中的#230)。

Description

用于构筑建模工具的装置和方法
相关申请的交叉引用
本申请要求1998年10月16日提交的题为“建模工具的系统和方法”的美国专利申请No.60/104,682的申请日的权益。
本申请涉及共同待审的题为“用于模型效果分析的方法”的美国专利申请No.___________(代理人卷号#22074661-25532),在此将其全部引入作为参考。
本申请涉及共同待审的题为“确定两个或多个模型之间的区别的方法”的美国专利申请No._________(代理人卷号#22074661-25531),在此将其全部引入作为参考。
本申请涉及共同待审的题为“可扩展宏语言的方法和系统”的美国专利申请No.___________(代理人卷号#22074661-25533),在此将其全部引入作为参考。
本申请涉及共同待审的题为“用于通过SQL输入对分级数据存储进行访问的方法及装置”的美国专利申请No._______(代理人卷号#22074661-25534),在此将其全部引入作为参考。对文件附录的参考
本申请含有一个附录,它用于对被引入作为本发明参考的实施例的服务和函数进行举例说明。本专利申请所揭示的一部分内容含有与版权保护有关的材料。版权的所有者不反对在任何一个专利说明中被引用,就像在美国专利商标局的专利文件或记录中一样,但是却要求保留所有的版权。
发明领域
本发明涉及一种建模工程。具体地说,它涉及一种用于构筑建模工具的装置和方法。
背景技术
建模工具已经存在很多年。实现这种建模工具的一般方法是编写一个体现出一种特定的建模方法论的特殊建模工具。尽管这种方法已得到广泛采纳,但它却具有多个缺点。例如,即使给定工具内的许多功能都与先前的工具相似(即使不相同),传统的建模工具也需要一个新的工具程序以用来创建各个新的建模工具。
因此,需要有这样一种用于构筑建模工具的方法和装置,它能够使用一个统一的框架以构筑用来支持产生多个完全不同的建模方法论。这种用于构筑建模工具的新装置和方法将减少完成一个新的建模工具所需的努力和时间。
发明概述
本发明的一方面提供了一种包括语义和具有对象及特性的模型的方法和装置。语义被用于改变包含在模型中的对象及特性的处理当中。在改变对象及特性的处理中,任何违反语义的改变处理都不会被接受。另外,开发者也可对语义进行扩充。
本发明的另一个方面提供一种用于构筑建模工具的装置。该装置包括(例如):元模型,它含有一个语义注册表以及一元数据管理程序;一对象/特性接口;以及一对象/特性厂家注册表。对象/特性厂家注册表与元模型和对象/特性接口相连。该装置还含有一个与对象/特性接口相连的对象/特性模型。
本发明的另一个方面提供了一种用于构筑建模工具的方法。该方法包括通过定义一个第一类集以构筑一个对象/特性模型以及通过定义一个第二类集以构筑一个元模型的步骤。该方法还包括将一类型代码与第一和第二类集关联起来、并且向元模型提供一个预定的语义集的步骤。该方法还包括用被调用至多个分立事件环境中的语义集当中的至少一个语义来对多个分立事件进行识别的步骤。该方法还包括提供一对象/特性接口以限制开发者对上述对象/特性模型的访问。
图1显示了传统计算机系统的功能框图。
图2显示了本发明一个实施例的功能框图。
图3显示了本发明所述元模型的一个实施例的数据模型。
图4的流程图显示了本发明的用于启动一个对象语义的方法的典型实施例。
图5的流程图显示了本发明的用于启动一个特性语义的方法的典型实施例。
图6的流程图显示了本发明的用于构筑一个建模工具的方法的典型实施例。
图7的流程图显示了本发明的执行一个示范功能的典型实施例。
图1显示了一个本发明工作于其中的传统计算机系统101。在一个典型实施例中,本发明在(例如)一个由SUN MICROSYSTEMSTM制造的SUNTM工作站上得以实现。备选实施例可在(例如)一个由IBM公司制造的IBMTM个人电脑或一个由APPLETM计算机公司制造的MACINTOSHTM计算机上实现。本领域技术人员应该明白,也可以采用其它的计算机系统架构。一般来说,这种由图1所示的计算机系统包括:一用于联络信息的总线102,一与总线102相连用于处理信息的处理器103(如中央处理器),以及一与总线102相连用于为处理器103存储信息和指令的主存储器104。一只读存储器105被连接在总线102上以用于保存处理器103的静态信息和指令。与总线102相连的显示设备106用于为(例如)开发者显示信息。
一字母数字输入设备107(如键盘)与总线102相连并且用于将信息和命令选择发送给处理器103。调制解调器110与总线102相连并用于提供例如与其它计算机系统或数据库以及海量存储介质108(如:与总线102相连用于保存信息和指令的磁盘或相应的磁盘驱动器)之间的通信。含有数字信息的数据存储介质109被设置成(例如)能够与海量存储介质一起工作,以允许处理器103通过总线102访问数据存储介质109上的数字信息。另外,也可采用保存高分辨率图像的CD-ROM驱动器(未示出)以在显示设备106上进行显示。
本发明的一个实施例是由(例如)一种用C++编程语言编写的软件模块实现的,该软件模块可被在如计算机系统101的计算机系统中以传统的方式得到执行。利用众所周知的技术,应用软件可被保存在数据存储介质109上,随后被调入计算机系统101中并得到执行。一旦被启动,本优选实施例所述软件将以例如以下说明的方式进行操作。通用建模架构(UMA)是一种数据驱动建模引擎,它能够基于元模型外部定义在各种问题域中工作,上述元模型可由开发者提供并扩充以提供一个基于UMA的产品。元模型的外部定义是(例如)对在问题域中寻找的对象类型以及与各对象相关的特性的一系列说明。这些说明可通过调用一套由应用开发公开的功能来提供,并且可通过功能参数来传递进描述信息。典型的问题域可包括:数据建模,如数据库列表、数栏以及索引;过程建模,如活动和箭头;访问建模,如数据控制语言语句和文件;以及单元建模,如接口、应用以及从属关系。
在本发明的一个典型实施例中,基于UMA的产品是一种建模工具。基于UMA的产品可以是一个基于UMA的应用程序,如一个含有UMA的用户接口。基于UMA的产品也可含有一个(例如)由开发者提供的基于元模型的外部定义的对象/特性模型的示例。
如图2所示,在本发明的一个典型实施例中,UMA 200包括:一个元模型210、对象和特性厂家注册表260、对象/特性接口280、事务管理程序285、日志文件295以及对象/特性模型290。元模型210包括一个含有多个语义集230的语义注册表220以及一个含有对象/特性说明250的元数据管理程序240。对象/特性说明250是多套用于描述对象特征或特性的信息。在描述对象的情况下,它包括了对象的名称、一条可由人读取的说明性文本、通用化信息以及与其中可能包含的其它类型的对象有关的信息。通用信息(例如)描述了细化部分/子分类,如同义词信息。
对象/特性说明可由开发者或用户提供以作为外部定义的元模型。元模型210是一个对要解决的问题域的对象和特性、以及对多套语义集230的描述说明,这些语义集在对象和特性被请求改变时要被分别调用以改变对象和特性。
图3显示了本发明所述元模型210的一个典型实施例。如图3所示,该元模型201包括多个类,如:对象、特性和语义,并且建立了对象、特性以及语义之间的关系。类型310被与一个类型代码键、名称属性以及定义属性相关联。类型310可以是(例如)一个目录330或者也可是一个条目320。目录330与类型代码键相关联并且包括多个条目。目录成员340与一个目录键和成员键相关联。条目320与类型代码键相关联并且可以是一个特性或对象。
特性350与类型代码键、缺省值属性以及数据类型属性相关联。特性350也被与特性用途375相关联。对象360与类型代码键、对象实现属性以及超类型属性相关联。超类型属性为对象360提供了进一步的特性说明。对象360可以拥有(例如,含有一个组件)其它对象也可被其它对象拥有。对象所有权370与拥有者键和被拥有者键相关联。特性用途375与特性键和对象键相关联。
特性用途375也将特性350和对象360关联起来。对象语义用途390被与一类型代码键和身份(ID)键相关联。对象语义用途390将对象360和对象语义395关联起来。对象语义395与一ID键关联。特性语义用途380与一ID键、特性键以及对象键关联起来。对象语义用途390将特性语义385与特性用途375关联起来。特性语义385被与语义ID键相关联。
如图2所示,元模型210的元数据管理程序240通过一个基于UMA的应用程序225接收例如管理程序发出的元数据(例如,对象和特性的描述)。元数据由开发者提供用来解决其问题域的对象和特性。元数据管理程序240从对象和特性厂家注册表260中接收有效的创建请求。
如图2所示,元模型210的语义注册表220包括多个语义集230,这些语义集230可以含有(例如)由开发者通过基于UMA的应用程序所提供的预定集以及附加集。语义230是封装进公开有一个接口的语义对象的建模规则,如:一个纯粹虚拟的类,它从语义230的细节中隐含了建模引擎。预定语义集可提供规则以加强建模工具基础的完整性,而且在本发明的一个典型实施例中,预定语义集不能够被开发者改动。由开发者提供的额外语义集可以被开发者改动。语义的一个例子可以是(例如):一个对“单一数据库中的两个列不能具有相同的名称”的规则进行加强的语义。
语义230通过对象/特性接口280获取对对象/特性模型290的访问。语义注册表220可以包括一个对象语义注册表以用于确定是否有一个特定的对象语义集存在以及在当存在该语义集的情况下对各对象语义集进行定位。语义注册表220也可包括一个特性语义注册表以用于确定是否有一个特定的特性语义集存在以及在当存在该语义集的情况下对各特性语义集进行定位。语义注册表220通过(例如)对象/特性接口280找出被请求使用的各个语义集。语义注册表220根据调入的语义来对各个对象和特性做出修改,并将对象/特性接口280提供经修改的对象和特性。语义注册表220还能提供对对象/特性接口280的处理操作的状态。例如,被调入用于一个操作的语义之一可能被违反,这就表示该操作已经失败。
对象和特性厂家注册表260可以包括厂家270,如对象厂家和特性厂家。对象和特性厂家注册表260通过一基于UMA的应用程序225接收(例如)开发者所发出的创建对象和特性的请求。厂家270能够创建对象和特性。对象和特性厂家注册表260能够确定是否有一个特定的厂家存在,并且能够在当存在该厂家的情况下找出各个厂家以创建被请求的各个对象和特性。对象和特性厂家注册表260还可向元数据管理程序240提供一个有效创建请求。其有效性可以包括(例如):创建对象或特性的请求是否成功。对象和特性厂家注册表260能够举例分别说明对象和特性,并能够将这些对象和特性提供给对象/特性接口280。
如图2所示,对象/特性280通过基于UMA的应用程序225接收(例如)开发者所发出的用于修改和删除对象及特性的请求。这些请求调用可使从元模型210的语义注册表220提供给对象/特性接口280的对象和特性发生改变的元模型210中的各个语义。对象/特性280可以从多个分立事件(例如,在表1中所显示的多个事件)中识别一个分立的事件,并且能够确定应该调用一个语义或者一个语义集。上述分立事件指的是其中对象/特性模型290可被修改的情况。在本发明的一个典型实施例中,UMA的作者可以提供多个分立事件。
                        表1
    常量                         描述
PostCreation               正在创建一个对象
PreDestruction             正在破坏一个对象
   PreEdit              将创建和/或修改一个特性
  PostEdit              刚创建和/或修改一个特性
      PreNull                  将破坏一个特性
PreOwnerDestruction        将破坏拥有一个特性的对象
对象/特性接口280可根据调入的各个语义集的结果而提供由语义注册表220处理操作的状态。例如,如果一个操作使得任何一套调入的语义集被违反,则语义注册表220将提供一个指示以说明操作是失败的。但是,如果一个操作并未使得任何一套调入的语义集被违反,则语义注册表220将提供一个指示以说明操作是成功的。对象/特性接口280向事务管理程序285提供对象和特性的变化,并且如果对象/特性接口280确定一个操作已失败,则它将提供一个指示以说明该操不能处理事务管理程序285。对象/特性接口280还向对象/特性模型290提供了对象和特性。对象/特性接口280接口还能从对象/特性模型290中检索对象和特性,以将这些对象和特性提供给一个基于UMA的应用程序225。
图4的流程图显示了对象/特性接口280用于启动一个对象语义的典型方法的流程图。在410中,对象/特性接口280打开与事务管理程序285的事务处理。对于模型的每个变化打开一个事务处理,如果变化被发现是无效的,则它将被取消。在415中,对象/特性接口280与对象本身进行通信。所有的对象都获知它们的类型用以确定此对象的类型。在420中,对象/特性接口280从元模型210中以从上向下的顺序为一个对象获取完整的超类型路径。在425中,第一对象类型(最终超类型)被对象/特性接口280从元模型中获取。
在430中,对象/特性接口280从对象语义注册表220中为对象类型获取语义列表。在435中,对象/特性接口280与语义注册表进行交流以确定列表中是否还有更多的语义。如果是,则对象/特性接口280将在455中获取并在460中启动下一个语义。在465中,对象/特性接口280确定语义是否失败。如果是,则在470中,事务处理将按照对象/特性接口280所发出的请求而被事务管理程序285重新运行(rollback)。但是,如果语义并未失败,则在435中,对象/特性接口280将再次确定列表中是否还有更多的语义。
如果列表中没有更多的语义,则在440中,对象/特性接口280将与元模型进行通信,并确定父路径中是否还有更多的对象类型。如果没有,则在450中,事务处理将被省略。如果在父路径中还有更多的对象类型,在445中,下一个对象类型将被获取并且对象/特性接口280将再次在430中从对象语义注册表中为对象类型获取语义列表。
图5的流程图显示了对象/特性接口280用于启动一个特性语义的典型方法的流程图。在510中,对象/特性接口280打开与事务管理程序285的事务处理。在515中,对象/特性接口280与对象进行通信以确定对象的类型。在520中,对象/特性接口280从元模型210中以(例如)从上向下的顺序为各个对象获取完整的超类型路径。在525中,第一对象类型(最终超类型)被对象/特性接口280从元模型中获取。在527中,对象/特性接口280为对象和特性类型构筑一个对象/特性对。在530中,对象/特性接口280从特性语义注册表530中为对象/特性对类型获取语义列表。
在535中,对象/特性接口280确定列表中是否有更多的语义。如果是,则对象/特性接口280将在555中获取并在560中启动下一个语义。在565中,如果对象/特性接口280确定语义已经失败,则在570中,该事务将被重新处理。但是,如果语义并未失败,对象/特性接口280将返回至535以再次确定列表中是否还有更多的语义。
如果列表中没有更多的语义,则在540中,对象/特性接口280将与元模型进行通信并确定父路径中是否还有更多的对象类型。如果没有,则在550中,事务处理将被省略。如果在父路径中还有更多的对象类型,则在545中,下一个对象类型将被获取并且对象/特性接口280将再次在527中为对象和特性类型构筑一个对象特性对。
在本发明的一个典型实施例中,对象/特性模型290包括预先定义的对象和特性集。该预先定义的对象和特性集可以由例如UMA的开发者来提供以减少开发产品的工作量。对象/特性模型290还从对象/特性接口280检索对象特性。从对象/特性接口接收到的对象和特性是以由开发者提供的元数据的外部定义为根据的。在对象/特性模型290中包含的是例如开发者请求创建和修改的对象和特性。另外,对象/特性模型290通过对象/特性接口280将事务管理程序285的模型改变记录下来。但是,在本发明的一个典型实施例中,对象/特性模型290中作为操作失败结果的对象和特性被从对象/特性模型290中删除。
因此,在本发明的一个典型实施例中,由开发者提供的保留在对象/特性模型290之中的对象和特性是作为操作成功结果的对象和特性。这样,开发者就不需要直接访问并且也不能够直接改变对象/特性模型290。所以,对模型的改变会被建模引擎获知,并且一致性和有效状态也可在所有时间上得到保证。如果开发者已经直接访问基本数据结构,则不正确的修改将会在模型中产生无效的状态。
事务管理程序285将各个对象和特性置于它们被一个错误操作改变之前的状态。例如,事务管理程序285由对象/特性接口280提供说明操作已经失败的标志。任何失败的操作都会被撤销或清除。事务管理程序285可以通过(例如)将对象/特性模型290的改变记录进日志文件295、从日志文件295中获取撤销数据、并根据事务处理中由对象/特性接口280所确定的操作成功和失败状态来执行撤销操作,从而完成上述工作。因此对象/特性模型290就被保持处于有效状态。在本发明的一个典型实施例中,事务管理程序285也可接收一个从基于UMA的应用程序225发出的请求以撤销或重复一个操作。如果一个重复操作被请求执行,则事务管理程序285可以请求从日志文件295中获取重复信息并且按照已知的方式来执行重复操作。
在本发明的一个典型实施例中,UMA 200还可包括一个内部服务单元以及一个外部服务接口。内部服务单元可以含有(例如)公开给开发者用以协助创建和控制一个模型并且用于解决开发者的问题域的服务或功能。在本发明的一个典型实施例中,上述服务可以包括附录1中所描述的那些服务或功能。
外部服务接口是一个允许外部服务与UMA 200进行通信的接口。外部服务接口可以是(例如)一个连接和植入有一个附加应用程序接口的对象,它允许第三方模块扩展工具的建模能力,从而通过扩充建模环境和建模规则以增加功能(如:可自动由用户定义的功能)。因此,开发者也可访问UMA 200的内部服务之外的服务。外部服务可以是(例如)一个以由用户输入的全部姓名为基础的用于增强协作命名标准的模块。另外,当用户接口(如基于UMA的应用程序225)被和语义分离开之后,UMA 200是可测量的。
图6显示了根据所述用于构筑建模工具的方法的一个典型实施例。在610中,通过为开发者所提供的对象/特性定义一个第一类集以作为元数据,完成对一个对象/特性模型290的构筑。在本发明的一个典型实施例中,对象/特性模型290可以包括一套预定义的一个或多个对象和特性。对象为施加给它的特性提供存储机制。在本发明的一个典型实施例中,一个用于对象的接口类可以是(例如)UMEObjectI。特性可以实现为一个基本类,它需要编程人员再进行细分类。在本发明的一个典型实施例中,基本类可以提供不含数据存储的管理服务。在本发明的一个典型实施例中,开发者可以提供一个子类以说明用于创建一个访问程序所需的数据单元和方法。
在620中,元模型210是(例如)通过定义一个第二类集而被构筑成的。该第二类集被设计用来保存对特性、对象和语义的说明。例如,在本发明的一个典型实施例中,有两个语义接口类被指定。第一个语义接口类(例如UMEObjectSemanticI)是用于能够影响一个对象的创建或破坏的任何语义的接口。第二个语义接口类(例如UMEPropertySemanticI)则是用于能够影响一个特性的创建、破坏或修改的任何语义的接口。在本发明的一个典型实施例中,元模型210的代表应用包括一个单元素对象集合,它公开了用于注册元数据和语义的静态方法。
建模规则(例如,语义230)可被结合进元模型210的语义注册表中,以象在640中那样作为一个预定义语义集和/或是附加语义集,该附加语义集例如由开发者在启动时或者在启动之后的任何时间提供。为了将一个建模规则结合进元模型210以用于一个对象,开发者可对适当的调用(例如,用于对象建模规则的UMEObjectSemanticI以及用于特性建模规则的UMEPropertySemanticI)进行再分类。开发者还能够利用一种启动方法来对对象/特性模型290执行所需的操作和检查。一个数值将被返回以说明操作是否成功。例如,一个TRUE(真)返回值说明操作已经成功,而一个FALSE(假)返回值则说明该操作不能被成功地执行或者是模型正处于一种无效状态。访问点(例如,对象/特性模型修改点)也可被包含进元模型210以用于调用语义230。各个模型修改点(例如,CreateObject)都能够在适当的点上调用各个语义。如果从语义的启动中接收到一个说明有一个或多个语义不能成功完成的标志(例如,FALSE),则操作将退出。
在630中,类型代码被与第一和第二类集相关联起来。类型代码是一个独特的标识符,它指定了元数据所表示的类型。元模型中所指定的每个项目(对象和特性)都只有一个唯一的类型代码。在本发明的一个典型实施例中,UMA 200含有一个变量类型TypeCode_t,它被声明用来保存类型代码。在640中,一个预先定义的语义集被提供给元模型210的语义注册表220。
在650中,多个分立的事件(例如,如表1所示)被识别出来。这些分立事件代表了对象/特性模型290可被修改的情况。在本发明的一个典型实施例中,各个分立事件都被分配了一个代表其自身的常量,而且有一个变量类型(例如,Event_t)被声明用于保存事件常量。
在660中,提供对象/特性接口280。对象/特性接口280例如能够防止开发者直接访问对象/特性模型290,并且可以包括限制开发者修改对象/特性模型290所需使用的代码路径数。例如,如果一个开发者想要破坏对象/特性模型290中的一个对象,则必须向对象/特性接口280发出一个请求,例如附录1中所列出的UMEObjectI:DestroyObject。
图7显示了对象/特性接口280执行DestroyObject(对象破坏)请求的一个典型实施例,如图7所示,对对象/特性模型290的访问受到控制着DestroyObject请求的对象/特性接口280的限制。例如,在710中,在接收到一个破坏对象的请求之后,对象/特性接口280将与事务管理程序285进行通信以打开一个事务处理进程(例如,DestroyObject功能)。在715中,对象/特性接口280与对象/特性模型290进行通信以找出被请求破坏的对象。在720中,对象/特性接口280将确定是否己找到这个对象。如果没有,则在725中,事务管理程序285将按照对象/特性接口280的请求重新进行事务处理,并且在730中,事务管理程序将向调用模块(例如,用户界面)返回一个故障代码。但是,在735中,如果该对象被找到,则对象/特性接口280将向事务管理程序285提供对象破坏信息,并且事务管理程序285会将对象破坏情况记录进事务处理日志295。
在740中,对象/特性接口280在各个对象的所有特性上启动PreOwnerDestruction语义。在745中,对象/特性接口280确定是否全部语义都已成功。如果没有,则在725中,事务管理程序285将按照对象/特性接口280的请求重新进行事务处理,并且在730中,事务管理程序将向调用模块返回一个故障代码。
如果所有的PreOwnerDestruction语义都已成功,则在750中,对象/特性接口280将启动PreDestruction语义。在755中,对象/特性接口280确定是否全部PreDestruction语义都已成功。如果是,则对象将在760中被破坏,然后,在765中,对象/特性接口280与事务管理程序285进行通信以结束该事务处理,并且在770和730中,事务管理程序285将向调用模块返回一个成功代码。但是,如果PreDestruction语义失败,则在725中,事务管理程序285将按照对象/特性接口280的请求重新进行事务处理,并且在730中,事务管理程序将向调用模块返回一个故障代码。
为了限制对象的构筑和破坏,例如,对象的构筑者或破坏者将受到保护以防止开发者直接启用或破坏一个对象。为了限制特性的创建、破坏及修改,例如,特性的数据组成将被做成私有的。在本发明的一个典型实施例中,UMA 200包括一个被称为访问程序的类,它含有一个接口类,例如,UMEAccessorI。访问程序接口类是一个对特性友好的类,而且正是通过访问程序才使数据组成获得访问。访问程序装有数据值以及指令(例如,“设定数值”或“删除特性”),并且被植入到特性当中。访问程序执行它们的操作并且返回一个说明操作成功或失败的标志。访问程序是通过要求特性提供一个访问程序而被形成的。这样就允许用特性来构筑一个能够控制特性的数据类型的访问程序。一个特性上的所有操作都是通过访问程序来执行的。因此,语义所需的任何代码都可被放置在所提供的访问程序基本类中。对访问程序进行细分的开发者只需简单地提供一个数据单元和方法就可对其执行读和写。方法是被提供到访问程序基本类上的,这样就允许将其与一个特性捆绑在一起。
如图6所示,在670中,提供一个事务管理程序285。该事务管理程序285管理着事务处理的活动,而且如果活动失败,则可使该活动被撤销或清除。通过在模型操纵的初始阶段启动一个事务处理,并对各个语义的出错状态进行监视,事务管理程序285就可使对象/特性模型290保持在一个有效状态中。在本发明的一个典型实施例中,事务管理程序285在根据活动而实现修改之前记录下了对象/特性模型290的一个确切图像。如果活动已获成功,则各个变化就被允许存在。如果出现错误,则事务管理程序285将恢复旧的图像。事务管理程序285可以随着模型的变化而递增地保存图像。
作为一个例子,在一个用户将要创建一个对象并为其设定名称的单一事务处理中,当对象创建成功时,对象被创建的实事以及对该对象的控制被保存进事务处理日志295。如果用户随后将该对象的名称设定为“Customer”,则特性的创建也被记录下来,并且旧的数值(空数值)被保存进日志。如果用户随后又将名称设定为“Cust”,则旧的数值(“Customer”)也会被保存进日志。如果这一切全部成功,则会存在一个名为“Cust”的对象。但是,如果对象创建失败,则事务管理程序285将开始重新运行:首先,将名称从“Cust”改回“Customer”;其次,将已存在的名称特性一起删除;最后,删除对象。此举可将对象/特性模型290恢复至失败的事务处理运行之前所处的状态。
在本发明的一个典型实施例中,作为一次操作结果的被改动的对象和特性通过对象/特性接口280被提供给对象/特性模型290。如果该操作所涉及到的语义出错,则对象/特性接口280将通知事务管理程序285以撤销该操作。结果,对象/特性模型290被恢复至作为失败操作结果的受改动的对象和特性被从对象/特性接口280提供给对象/特性模型290之前所处的状态。
上述实施例是本发明的说明性举例,不应该认为本发明被限制于这些特殊的实施例之内。熟练人员可以对其进行各种变换和修改,但是这些变换和修改都不会脱离由附加权利要求所定义的本发明的精神或范围。
                       附录1.1.1无约束函数
MetamodelReadInteface
说明
在单个元模型实体中检索读取接口。
特征标记
extern″C″
UMEMetaModelReadI * MetamodelReadInterface(void)
参数
名称      类型  说明
<return>   R    UMA元模型的读取接口。
MetamodelWriteInteface
说明
在单个元模型实体中检索写接口。
特征标记
extern″C″
UMEMetaModelReadI * MetamodelWriteInterface(void)
参数
名称     类型  说明
<return> R  UMA元模型的写接口。
MetamodelUseInteface
说明
在单个元模型实体中检索使用接口。
特征标记
extern″C″
UMEMetaModelReadI*MetamodelUseInterface(void)
参数
名称    类型 说明
<return>R    UMA元模型的使用接口。1.1.2 UMEReferenceCountedI
用于参考计数对象的接口。风个其它的接口扩展该接口。从概念上说,参考计数对象在计数达到零时应当是不占内存的。在实际当中取决于对象的实现,并且其可以简单地返回至储存区。
AddReference
说明
对参考计数递增
特征标记
void UMEReferenceCountedI::AddReference(void)
RemoveReference
说明
对参考计数递减
特征标记
void UMEReferenceCountedI::RemoveReference(void)1.1.3 UMEPublisherI
发布/用户对的发布方
Subscribe
说明
在通知对象列表中增加/删除用户
特征标记
Return_t UMEPublisherI::Subscribe(UMESubscriberI*Subscriber,bool Activate)
参数
名称       类型  说明
<return>   R     用于调用的错误码
Subscriber I     要求通知事件的用户
Activate   I     增加用户为真,删除用户为假1.1.4 UMESubscriberI
发布/用户对的用户方
Notify
说明
发布方通知事件的用户时使用的复查。
特征标记
void UMESubscriberI::Notify(UMEPublisher*Publisher,UMEEventI*Event)
参数
名称       类型     说明
Publisher    I   发出事件通知的一方
Event        I   事件通知1.1.5UMEEventI
扩展:UMEReferenceCountedI
在发布/用户对之间发送的事件。用户在想要保持对事件的访问时,必须在其Notify
方法中将参考计数递增;发布方将在完成通知后消除其参考计数。1.1.6 UMEValueI
为数据类型封装提供基本接口。数据类型封装在数据值需要被传送至元模型时使用(例如valid valid列表)。1.1.7 UMEMetamodelReadI
用于查询元模型的接口。尽管UMA 2.0用静态方法以C++单条程序的形式实现了元模型,这种接口的存在使其它部分在可查询的接口上标准化。
BuildVersion
说明
检索制作编号。特征标记LWTString UMEMetamodelReadI::BuildVersion(void)参数名称      类型  说明<return>  R     DLL的版本串ConstructSignature说明为特定的用户构造特定的特征标记。特征标记Return_t UMEMetamodelReadI::ConstructSignature(UMEObjectI*Object,constSignatureGeneratorId_t & Generator,LWTString & Signature)参数名称       类型  说明<return>   R     用于用于调用的错误代码Object     I     想要特征标记的对象Generator  I     要采用的特定发生器Signatures O     特征标记ConstructSignatures说明为特定的对象构造所有特征标记。返回的阵列将始终具有相同的元素数,并且有已注册的特征标记发生器。如果特征标记发生器不支持给定的对象类型,则其参数项将是空串。特征标记Return_t UMEMetamodelReadI::ConstructSignatures(UMEObjectI * Object,
LWTOrderedvectorT<LWTString>&Signatures)参数名称      类型  说明<return>  R     用于调用的错误代码Object     I    想要特征标记的对象Signatures O    特征标记GetClipFlags说明检索与对象/特性对相关的剪切板标志。特征标记Return_t UMEMetamodelReadI::GetClipFlags(TypeCode_t Object,TypeCode_tProperty,ClipFlags_t & ClipFlags)参数名称      类型  说明<return>  R     如果注册则为真Object    I     对象的类型码Property  I     特性的类型码CilpFlags O     剪切标志GetDatatype说明检索特性数据类型的类型码。特征标记Return_t UMEMetamodelReadI::GetDatatype(TypeCode_tCode,TypeCode_t&DataType)参数名称      类型   说明<return>  R      用于调用的错误码Code      I      特性的类型码Datatype  O      数据类型的类型码GetDefinition说明检索储存在项目的元模型中的定义。特征标记Return_t UMEMetamodelReadI::GetDatatype(TypeCode_t Code,LWTString &Definition)参数名称       类型  说明<return>   R     用于调用的错误码Code       I     项目的类型码Definition O     定义说明检索被注册的用户的列表,以在元模型入口的破坏后接收通知。特征标记Return_t UMEMetamodelReadI::GetEntrySubscribers(TypeCode_t Code,LWTOrderedVectorT<TypeCode_t> & Subscribers)参数名称        类型  说明<return>    R     用于调用的错误码Code        I     入口的类型码Subscribers O     目前注册的用户GetFlags说明检索项目上的元模型标记。NB:这些标志不应当与由UMEObjectI::Fiags()或UMEPropertyI::Flags()返回的项目标志相混淆。特征标记Return_t UMEMetamodelReadI::GetFlags(TypeCode_t Code,MetamodelFlags_t &Flags)参数名称      类型  说明<return>  R     用于调用的错误码Code      I     项目的类型码Flags     O     元模型标志GetInheritableProperties说明检索特定对象类型可以继承的特性的类型码。特征标记
Return_t UMEMetamodelReadI::GetlnheritableProperties(TypeCode_t Code,LWTOrderedVectorT<TypeCode_t>&Properties)参数名称       类型  说明<return>   R     用于调用的错误码Code       I     对象的类型码Properties O     可继承的特性类型码的阵列GetItemSize说明按字节检索项目的大小。特征标记Return_t UMEMetamodelReadI::GetItemSize(TypeCode_t Code,size_t&Size)参数名称      类型  说明<return>  R     用于调用的错误码Code      I     项目的类型码Size      O     由项目制造者定义的项目大小GetObjectTypes说明检索为特定产品定义的对象的类型码。该结果通过各种标志字段过滤。特征标记Return_t UMEMetamodelReadI::GetObiectTypes(MetamodelFlags_t FlagsOn,MetamodeIFIags_t FlagsOff,const ProductId_t & Product,MetamodelFlags_tProductFlagsOn,MetamodelFlags_t ProductFlagsoff,LWTOrderedVectorT<TypeCode_t>& Objects)参数名称            类型      说明<return>        R      用于调用的错误码FlagsOn         I      必须为要包括的对象设置的标志FlagsOff        I      不必为要包括的对象设置的标志Product         I      用于产品的标识符。根据大小作为参考传递。ProductFlagsOn  I      产品专用标志,对要包括的对象必须为OnProductFlagsOff I      产品专用标志,对要包括的对象不必为OnObjects         O      与标准一致的类型码GetOwneeTypes说明检索特定对象可拥有的类型码特征标记Return_t UMEMetamodelReadI::GetOwneeTypes(TypeCode_Code,LWTOrderedVectorT<TypeCode_t>& Ownees)参数名称      类型  说明<return>  R     用于调用的错误码Code      I     对象的类型码Onees     O     类型码拥有者的阵列GetOwnerTypes说明检索可作为特定对象拥有者的对象的类型码特征标记Return_t UMEMetamodelReadI::GetOwnerTypes(TypeCode_t Code,LWTOrderedVectorT<TypeCode_t> & Owners)参数名称      类型  说明<return>  R     用于调用的错误码Code      I     对象的类型码Owners    O     类型码拥有者的阵列说明检索为特定产品定义的特性的类型码。该结果由各种标志字段过滤。特征标记Return_t UMEMetamodelReadI::GePropertyTypes(MetamodelFlags_t FlagsOn,MetamodelFlags_t FlagsOff,ProductId_t & Product,MetamodelFlags_tProductFlagsOn,MetamodelFlags_t ProductFlagsOff,LWTOrderedVectorT<TypeCode_t> & Properties)参数名称            类型       说明<return>        R      用于调用的错误码FlagsOn         I      必须为要包括的特性设置的标志FlagsOff        I      不必为要包括的特性设置的标志Product         I      用于产品的标识符。根据大小作为参考传递。ProductFlagsOn  I      产品专用标志,对要包括的对象必须为OnProductFlagsOff I      产品专用标志,对要包括的对象不必为OnObjects         O      与标准一致的类型码GetPropertvUsages说明检索可以在特定对象上设置的特性类型列表。特征标记Return_t UMEMetamodelReadI::GetPropertyUsages(TypeCode_t Code,LWTOrderedVectorT<TypeCode_t>& Usages)参数名称     类型  说明<return>    R  用于调用的错误码Code     I  对象的类型码Usages   O  特性类型码的阵列GetSubtypes说明检索特定对象的子类型的类型码。特征标记Return_t UMEMetamodelReadI::GetSubtypes(TypeCode_t Code.LWTOrderedVectorTypeCode_t>& SubTypes)参数名称      类型      说明<return>  R      用于调用的错误码Code      I      对象的类型码Subtypes  O      子类型类型码的阵列GetSupertype说明检索特定对象的紧接超类型的类型码。特征标记Return_t UMEMetamodelReadI::GetSupertype(TypeCode_t Code,TypeCode_t &Supertype)参数名称      类型      说明<return>  R      用于调用的错误码Code      I      对象的类型码Supertype O      超类型类型码IsInheritable说明确定是否特定的特性对于特定的对象是可继承的。特征标记boolean UMEMetamodelReadI::IsInheritable(TypeCodc_t Object,Typecode_tProperty)参数名称      类型   说明<return>  R      如果可继承则为真Object    I      对象的类型码Property  I      特性的类型码IsRegistered说明确定类型码是否用元模型注册。特征标记boolean UMEMetamodelReadI::IsRegistered(TypeCode_t Code)参数名称      类型   说明<return>  R      如果注册为真Code      I      对于项目的类型码IsUserDefined说明确定是否特定的类型码由用户或Add-In码注册,即其是UDP还是UDO?特征标记boolean UMEMetamodelReadI::IsUserDefined(TypeCode_t Code)参数名称      类型   说明<return>  R      如果用户定义则为真Code      I      项目的类型码Lookup说明提供类型码和元模型入口名称之间的转换。所提供或读取的名称将通过术语指定来解释。特征标记Variant A:TypeCode_t UMEMetamodelReadI::Lookup(const LWTString & Name,
NomenclatureId_t & Nomenclature)Variant B:LWTString UMEMetamodelReadI::Lookup(TypeCode_t Code,
NomenciatureId_t & Nomenclature)参数名称         类型   说明<return>     R      Variant A:与名称相关的类型码
                Variant B:与类型码相关的名称Name         I      元模型入口的名称Code         I      元模型入口的类型码Nomenclature I      对于术语的标识符。根据大小作为参考传递M2Type说明确定元模型入口的哪种类型与类型码相应。返回值将是跟在UMEMetamodelReadI常数后面的值:常数                    说明kIsUnknown              对元模型是求知的类型码kIsObjecImplementation  代表对象实现类型的类型码kIsObject               代表对象的类型码klsPropertyDatatype     代表特性数据类型的类型码kIsProperty             代表特性的类型码kIsCategory             代表目录的类型码
特征标记
long UMEMetamodelReadI::M2Type(TypeCode_t Code)const
参数
名称      类型   说明
<return>  R      表示类型码的M2类型的常数
Code      I      被检查的类型码
ResolveId
说明
将对象转换为对该对象的指针
特征标记
Variant A:UMEObjectI*UMEMetamodelReadI::ResolveId(Id_t Id)
Variant B:UMEObjectI UMEMetamodelReadI::ResolveId(ObjectId_t Id)
参数
名称      类型  说明
<return>  R     指向具有特定ID的对象的指针,如果未找到则为NULL
Id        I     对象的ID1.1.8   UMEMetamodelWriteI
写接口一般支持两种对各注册方法的变量。一种是用原始的C++类型,诸如
const char*和TypeCode t*。第二种变量使用封装类如const LWTstring &和
const LWTOrderedVectorT<TypeCode_t>&。前一种类型构造得更快,但更危险,
并适宜于由MMGen.exe产生的代码。后一种由于需要构造封装和外壳程序类,
所以较慢,但也更安全,并且其适用于“手写编码”。
                             用于
                   O    O    P     P     C
                   b    b    r     r     a
                   j    j    o     o     t
                   e    e    p     e     e
                   c    c    e     p     g
                   t    t    t     r     o
                   I          y    t     R
                 m       D    y    YkSequenceImportant                √  特性中的值序列是有效
                                  的并且必须保持kpreFetchType                     √  作为PreFetch特性开始kCalculated                       √  特性值由语义算出并且
                                  不应当被设置kPersistenceUnit                  √  该对象是一致的单元kWorkspace                        √  对象是空间kStrict                           √  特性可包含只有在有效
                                  值列表中找到的值DefaultSemanticPackage说明检索在元模型中内建的语义包。该包用于保持那些对建模引擎必须的语义,以及任何用户想要添加的语义。特征标记UMESemanticPackageI & UMESemanticPackageI::DefaultSemanticPackage(void)const参数名称      类型   说明<return>  R      内置在元模型中的语义包DefaultSemanticPackage说明在元模型中注册一个新的目录。任何提供的成员类型码应当已经用元模型注册。在以后可以用UMEMetamodelWriteI::RegisterCategoryMembers增加新的成员。传递的数据被复制进元模型中;源存储器可以在该调用返回后被释放。特征标记Variant A:Return_t UMEMetamodelWriteI::RegisterCategory(TypeCode_t Code,const Char_t*NameBuffer,const Char_t*DescriptionBuffer,TypeCode_t*MembersBuffer,MetamodeIFlags_t Flags)VariantB:Return_t UMEMetamodelWriteI::RegisterCategory(TypeCode_t Code,const LWTString & Name,const LWTString & Description,constLWTOrderedVectorT<TypeCode_t>& Members,MetamodelFlags_t Flags)参数名称              类型    说明<return>          R    用于调用的错误码Code              I    目录的类型码Name              I    目录的内部名NameBuffer        I    用于目录的具有内部名的以零终止的缓冲器。所有元
                   模型入口必须具有名称;这里的零指针将防止注册。Description       I    目录的说明DescriptionBuffer I    具有目录说明的以零终止的缓冲器。如果没有说明,
                   则传递零指针Members           I    成员类型码的列表MembersBuffer     I    成员类型码的列表,其必须用入口设置
                   TypeCodes::Undefined来终止。Flags             I    元模型标志(见上面的说明)RegisterCategoryMembers说明从已有的目录中增加或减少成员。成员类型码应当已经用元模型被注册。传递的数据被复制入元模型中;源存储器可以在该调用返回后被释放。特征标记Variant A:Return_t UMEMetamodelWriteI::RegisterCategoryMembers(TypeCode_tCode,TypeCode_t*MembersBuffer,bool Add)Variant B:Return_t UMEMetamodelwriteI::RegisterCategoryMembers(TypeCode_tCode,const LWTOrderedVectorT<TypeCode t>&Members,bool Add)参数名称      类型   说明<return>  R      用于调用的错误码Code      I      目录的类型码Members        I    成员类型码的列表MembersBuffer  I    成员类型码的列表,其必须用入口设置
                TypeCodes::Undefined来终止。Add            I    对于从列表中加入成员为真,去掉成员为假RegisterNomenclature说明用元模型注册术语。传递的数据被复制入元模型中;源存储器可以在该调用返回后被释放。特征标记Return t UMEMetamodelwriteI::RegisterNomenclature(const NomenclatureId_t&Nomenclature,const LWTString & Name)参数名称          类型     说明<return>      R     用于调用的错误码Nomenclature  I     术语的IDName          I     术语的名称RegisterNomenclatureEntry说明将一个入口注册为一个术语。传递的数据被复制入元模型中;源存储器可以在该调用返回后被释放。特征标记Return_t UMEMetamodelwriteI::RegisterNomenclatureName(constNomenclatureId_t & Nomenclature,TypeCode_t Code,const LWTString & Name)参数名称          类型   说明<return>      R      用于调用的错误码Nomenclature  I      术语的IDCode          I      元模型项目的类型码Name          I      与类型码相关的名称RegisterNomenclatureNames说明允许对术语的名称进行块注册。缓冲器应当包含交替的类型码和以零终止的串。缓冲器必须以TypeCodes::Undefined的值来终止。传递的数据被复制入元模型中;源存储器可以在该调用返回后被释放。特征标记Retum_t UMEMetamodelwriteI::RegisterNomenclatureNames(constNomenclatureId_t & Nomenclature,char*Buffer)参数名称         类型 说明<return>     R  用于调用的错误码Nomenclature I  术语的IDBuffer       I  类型码/零终止串对的缓冲器RegisterObiect说明在元模型中注册一个新的对象。传递的数据被复制入元模型中;源存储器可以在该调用返回后被释放。特征标记VariantA:Return_t UMEMetamodelwriteI::RegisterObject(TypeCode_t Code,constChar_t*NameBuffer,const Char_t*DescriptionBuffer,TypeCode_t Implementation,TypeCode_t SuperType,TypeCode_t*OwnersBuffer.MetamodelFlags_t Flags,TypeCode_t*UDOCode=NULL)VariantB:Return_t UMEMetamodelwriteI::RegisterObject(TypeCode_t Code,constLWTString & Name,const LWTString & Description,TypeCode_t Implementation,TypeCode_t Supertype,const LWTOrderedVectorT<TypeCode_t>& Owners,MetamodelFlags_t Flags,TypeCode_t*UDOCode=NULL)参数名称              类型    说明<return>          R       用于调用的错误码Code              I       对象的类型码Name              I       对象的内部名NameBuffer        I       用于对象的具有内部名的以零终止的缓冲器。所有元
                      模型入口必须具有名称;这里的零指针将防止注册。Description       I       对象的说明DescriptionBuffer I       具有对象说明的以零终止的缓冲器。如果没有说明,
                      则传递零指针Implementation    I       将使用其对象的对象实现的类型码Supertype         I       对象的超类型Owners            I       用于此对象的有效拥有者的列表。所有对象(除了
                   UOEnvironment外)必须具有至少一个有效拥有者类型。OwnersBuffer      I    用于此对象的有效拥有者的列表。所有对象(除了
                   UOEnvironment外)必须具有至少一个有效拥有者类型。
               该缓冲器必须以设置为TypeCodes::Undefined的入口终止。Flags             I   元模型标志(见上面的说明)UDOCode           O   如果代码是TypeCodes::Undefined的,则用分配给UDO的
                  类型码组装。RegisterObiectImplementation说明为对象注册一个新的实现。元模型不负责清除厂家—这使这些对象分配在堆外或静态地分配在数据段中。相反,如果提供了用户,元模型将在对特性数据类型的入口被破坏时,通知该用户;用户可以在那时采取适当的清除措施。所有其它信息被复制到元模型中被当此方法返回时被释放。特征标记Variant A:Return_tUMEMetamodelwriteI::RegisterObjectImplementation(TypeCode_t Code,constChar_t*NameBuffer,const Char_t*DescriptionBuffer,UMEObjectFactoryI*Factory,MetamodelFlags_t Flags,UMESubscriberI*Subscriber=NULL)Variant B:Return_tUMEMetamodelwriteI::RegisterObjectImplementation(TypeCode_t Code,constLWTstring & Name,const LWString&Description,UMEObjectFactoryI*Factory,MetamodelFlags_t Flags,UMESubseriberI*Subscriber=NULL)参数名称              类型  说明<return>          R     用于调用的错误码Code              I     对象实现的类型码Name              I     对象实现的内部名NameBuffer        I     用于对象的具有内部名的以零终止的缓冲器。所有元
                    模型入口必须具有名称;这里的零指针将防止注册。Description       I     对象的说明DescriptionBuffer I     具有对象说明的以零终止的缓冲器。如果没有说
                    明,则传递零指针Factory           I     能够构造对象实现的实例的厂家Flags             I     元模型标志(见上面的说明)Subscriber        I     当此元模型入口被破坏时发出通知的用户RegisterProperty说明在元模型中注册一个新的特性。对于应用软件定义的特性,应当指定类型码。为了注册一个UDP,规定对于代码的TypeCodes::Undefined类型码;所分配的类型码将放在UDPCode中。传递的数据被复制入元模型中;源存储器可以在该调用返回后被释放。特征标记Variant A:Return_t UMEMetamodelWriteI::RegisterProperty(TypeCode_t Code,const Char_t*NameBuffer,const Char_t*DescriptionBuffer,TypeCode_t Datatype,MetamodelFlags_Flags,const char*DefaultBuffer,const char*ValidValuesBuffer,TypeCode_t*UDPCode=NULL)Variant B:Return_tUMEMetamodelWriteI::RegisterObjectImplementation(TypeCode_t Code,constLWTString&Name,const LWTString & Description,TypeCode_t Datatype,MetamodelFlags_t Flags,UMEVaIueI*Default NULL,constLWTOrderedVectorT<UMEValueI*>*ValidValues=NULL,TypeCode_t*UDPCode=NULL)参数名称              类型   说明<return>          R      用于调用的错误码TypeCodes::Undefined以注册一UDP。Code              I      特性的类型码Name              I      特性的内部名NameBuffer        I      用于特性的具有内部名的以零终止的缓冲器。所有元
                     模型入口必须具有名称;这里的零指针将防止注册Description       I      特性的说明DescriptionBuffer I      具有特性说明的以零终止的缓冲器。如果没有说明,
                     则传递零指针Datatype          I      由该特性使用的数据的类型码Flags             I      元模型标志(见上面的说明)Default           I      用于该特性的缺省值DefaultBuffer     I      数据类型的厂家能够解释以确定缺省值的缓冲器ValidValues       I      对该特性的有效值的列表ValidValuesBuffer I      数据类型的厂家能够解释以确定有效值的缓冲器UDOCode           O      如果代码是TypeCodes::Undefined的,则用分配给UDO
                     的类型码组装。RegisterPropertyDatatype说明为具有元模型的特性寄存注册一个新的数据类型。元模型不负责清除厂家—这使这些对象分配在堆外或静态地分配在数据段中。相反,如果提供了用户,元模型将在对特性数据类型的入口被破坏时,通知该用户;用户可以在那时采取适当的清除措施。所有其它信息被复制到元模型中被当此方法返回时被释放。特征标记Variant A:Return_t UMEMetamodelWriteI::RegisterPropertyDatatype(TypeCode_tCode,const Char_t*NameBuffer,const Char_t*Buffer,UMEPropertyFactoryI*Factory,MetamodeIFlags_t Flags,UMESubscriberI_Subscriber=NULL)Variant B:Return_t UMEMetamodelWriteI::RegisterPropertyDatatype(TypeCode_tCode const LWTString&Name,const LWTString & Description,UMEPropertyFactoryI*Factory,MetamoddFlags_t Flags,UMESubscriberI*Subscriber=NULL)参数名称              类型    说明<return>          R       用于调用的错误码Object            I       对象Name              I       数据类型的内部名NameBuffer        I       用于对象的具有内部名的以零终止的缓冲器。所有元
                      模型入口必须具有名称;这里的零指针将防止注册。Description       I       数据类型的说明DescriptionBuffer I       具有数据类型说明的以零终止的缓冲器。如无
                      说明,则传递零指针Factory           I       能够构造数据类型实例的厂家Flags             I       元模型标志(见上面的说明)Subscriber        I       当此元模型入口被破坏时发出通知的用户RegisterPropertyUsage说明注册或取消注册指定对象和特性之间的关联。该信息将复制到元模型中,从而所有的缓冲器能够在该方法返回时被释放。用Add等于真来连续调用此方法将增补信息。特征标记Variant A:Return_t UMEMetamodelwriteI::RegisterPropertyUsage(TypeCode_tObject,TypeCode_t*PropertiesBuffer,bool Add)Variant B:Return_t UMEMetamodelwriteI::RegisterPropertyUsage(TypeCode_tObject,const LWTOrderedVectorT<TypeCode_T>& Properties,bool Add)参数名称         类型     说明<return>           R      用于调用的错误码Object            I      对象Properties        I      与对象类型相关的特性列表PropertiesBuffer  I      与对象类型相关的特性列表
                  缓冲器必须以具有TypeCodes::Undefined值的入口来终止Add               I      增加关联为真,去除关联为假RegisterPropertyUsages说明允许对象/特性关联的块注册。该信息将复制到元模型中,从而所有的缓冲器能够在该方法返回时被释放。该方法只能增加关联。下面这组语法将说明缓冲器的格式:
Buffer       -    EntryList终止符
EntryList    -    入口
EntryList    -    EntryList入口
Entry        -    对象PropertyList终止符
PropertyList -    特性
PropertyList -    PropertyList特性
Terminator   -    TypeCodes::Undefined
Object       -    任何对象的类型码
Property     -    任何对象的类型码特征标记Return_t UMEMetamodelwriteI::RegisterPropertyUsages(TypeCode_t*Buffer)参数名称      类型  说明<return>  R     用于调用的错误码Buffer    I     类型码的缓冲器RegisterSignatureGenerator说明将特征标记注册入模型中。
特征标记
Return_t UMEMetamodelwriteI::RegisterSignatureGenerator(const
SignatureGeneratorId_t& Id,UMESignatureGeneratorI*Generator,const
LWTString & Name)
参数
名称      类型   说明
<return>  R      用于调用的错误码
Id        I      特征标记发生器的ID
Generator I      发生器
Name      I      用于显示目的的发生器名称1.1.9 UMEMetamodelUseI
这是用于除读和写元模型外的元模型操作的接口
CreateAccessor
说明
建立用于特性类型的访问器。这使得在没有特性存在的情况下构造访问器。这种方法采用由特性厂家公开的CreateAccessor方法。
特征标记
UMEAccessorI*UMEMetamodelUseI::CreateAccessor(TypeCode_t Code)
参数
名称      类型    说明
<return>  R       用于调用的错误码
Code      I       需要访问器的类型码
CreateObject
说明
构造新的对象。如果指定没有拥有的对象,则该对象作为环境中的子对象(如果合法的话)。
特征标记Result_t UMEMetamodelReadI::CreateObiect(TypeCode_t Code,UMEObjectI*Owner,UMEObjectI* & Object,UMEConstructionContext*Reserved=NULL)参数名称      类型   说明<return>  R      用于调用的错误码Code      I      需要访问器的类型码Owner     I      拥有对象Object    O      创建的对象,如果未创建则为NULLReserved         保留以备将来使用GetInstances说明检索在UMA中存在的指定对象类型的实例。该列表不过滤为给定的一致性单元;该过滤可以用UMEObjectI::Owner来很快地实现。1注1:UMEObjectI::Owner()被优化以检索一致性单元。参见关于这一问题的UMA制作书的说明。!编程注意由于性能的原因,由该方法中的VariantA返回的指针可以是对由元模型使用的实际数据储存区的指针。用户必须注意const修改符,在任何情况下都不要修改数据。如果用户想改变数据,则必须使用Variant B。特征标记Variant A:Return_t UMEMetamodelUseI::GetInstances(TypeCode_t Code,constLWTOrderedVectorT<UMEObjectI*> * &Instances)Variant B:Return=t UMEMetamodelUseI::GetInstances(TypeCode_t Code,LWTOrderedVectorT<.UMEObjectI*> & Instances)参数名称      类型  说明<return>  R     用于调用的错误码Code      I     对象的类型码Instances O     实例的列表1.1.10 UMESemanticPackageI
语义包是逻辑上相关的语义组。例如,“Oracle”语义。存在建立在元模型中的缺省包,以处理建模引擎功能所要求的语义。根据需要可以构造其它包并将其注册为模型元素。
Identifier
说明
检索包的识别符
特征标记
SemanticPackageId_t UMESemanticPackageI::Identifier(void)const
参数
名称    类型  说明
<return>R     包的id
RegisterObjectSemantic
说明
在包中加入对象语义。
特征标记
Return_t UMESemanticPackageI::RegisterObjectSemantic(TypeCode_t Code,
UMEObjectSemanticI & Semantic,bool Internal)
参数
名称       类型  说明
<return>   R     用于调用的错误码
Code       I     施加语义的对象的类型码
Semantic   I     语义
Internal   I     该语义在内部调用(真)还是通过API调用(假)
RegisterPropertySemantic
说明
在包中加入特性语义。
特征标记
Return_t UMESemanticPackageI::RegisterPropertySemantic(TypeCode_t Object,
TypeCode_t Property,UMEObjectSemanticI & Semantic,bool Internal)
参数
名称        类型   说明
<return>    R   用于调用的错误码
Object      I   施加语义的对象的类型码
Property    I   施加语义的特性的类型码
Semantic    I   语义
Internal    I   该语义在内部调用(真)还是通过API调用(假)1.1.11 UMEObjectFactoryI
用于在建立对象实现的实例中所用的所有厂家类的接口。这些实现再由元模型更名为所要的对象类型。
ClassSize
说明
检索此将由CreateObject()分配的对象。这是由UMEMetamodelReadI::GetItemSize()方法使用的。
特征标记
size_t UMEObjectFactoryI::ClassSize(TypeCode_t Code)
参数
名称   类型  说明
<return>R  对象的大小
Code   I  项目的类型码
CreatObject
建立对象的实例。
特征标记
UMEObjectI*UMEObjectFactoryI::CreateObject(TypeCode_t Code,UMEObjectI*
Owner,UMEFactoryContext*Reserved=NULL)
参数
名称       类型    说明
<return>   R       新创建的对象
Code       I       要创建的对象的类型码
Owner      I       将拥有该项目的对象
Reserved           保存以备将来使用
DestroyObject
说明
由元模型调用来取消为对象分配的存储器。该方法与CreateObject()结合,允许厂家实现客户存储器分配方案,和留下标记。
特征标记
void UMEObjectFactoryI::DestroyObject(UMEObjectI*Object)
参数
名称  类型   说明
Item  I      要破坏的对象1.1.12 UMEpropertyFactoryI
用于在建立特性数据类型实例时所用的所有厂家类的接口。这些实现再由元模型更名为所要的对象类型。
ClassSize
说明
检索将由CreateProperty()分配的特性。这是由
UMEMetamodelReadI::GetltemSize()方法使用的。
特征标记
size_t UMEPropertyFactoryI::ClassSize(TypeCode_t Code)
参数名称      类型    说明<return>  R       类的大小Code      I       特性的类型码CreatProperty说明创建特性的实例。特征标记UMEPropertyI*UMEPropertyFactoryI::CreateProperty(TypeCode_t Code,UMEObjectI*Owner,UMEFactoryContext Reserved=NULL)参数名称      类型      说明<return>  R      新创建的特性Code      I      要创建的特性的类型码Owner     I      将拥有特性的对象Reserved         保留以备将来使用CreatAccessor说明创建适合于特性的访问器。特征标记UMEAccessorI*UMEPropertyFactoryI::CreateAccessor(TypeCode_t Code)参数名称    类型  说明<return>R  访问器Code    I  需要访问器的类型码DestroyAccessor说明由元模型调用以取消存储器对访问器的分配。
特征标记
void UMEPropertyFactoryI::DestroyAccessor(UMEAccessor*Object)
参数
名称  类型  说明
Item  I    要破坏的访问程序
DestroyProperty
说明
由元模型调用以取消对一特性的存储器分配。该方法与CreateProperty()相结合,使厂家实现客户存储器分配方案,和留下标记等。
特征标记
void UMEPropertyFactoryI::DestroyProperty(UMEPropertyI*Object)
参数
名称  类型    说明
Item  I    要破坏的特性1.1.13 UMEObjectI
用于UMA模型内所有对象的接口
FindProperty
说明
找到关于对象的所需特性。
特征标记
UMEPropertyI*UMEObjectI::FindProperty(TypeCode_t Type,Boolean
ConstructIfNull=False,Boolean ConstructIfPreFetch=False)
参数
名称        类型    说明
<return>    R       特性,如果未找到或构造则为NULL
Type        I       所需特性的类型码ConstructNull        I     如果设为真,而未发现特性,则将被构造和返回ConstructIfPreFetch  I     如果设为真,而未发现特性,并且其将在元模型中
                       标为PreFetch特性,则将被构造和返回Flags说明检索在对象上设置的标志。该标志由各位进行OR运算来表示。NB:这些标志不应当与元模型的关于项目类型的标志相混淆。特征标记ItemFlags_t UMEObjectI::Flags(void)const参数名称 类型   说明<return>  R     项目上的位标志GetProperty说明检索对象特定特性的值。特征标记Return_t UMEObjectI::GetProperty(TypeCode_t类型,UMEAccessori &Accessor)参数名称        类型    说明<return>    R       用于调用的错误码Type        I       所需特性的类型码Acessor     I/O     用于检索值的访问器Id说明从对象中检索局部ID。特征标记Id_t UMEObjectI::Id(void)const参数名称        类型  说明<return>    R     对象的局部IDIsEqual
说明
确定是否两个对象相等同。
特征标记
Boolean UMEobjectI::IsEqual(UMEObjectI & Object,
UMEObjectEqualityStrategyI*ObjectStrategy=NULL,
UMEpropertyEqualityStrategyI*PropertyStrategy=NULL)
参数
名称             类型      说明
<return>         R      如果对象测试相等同则为真
Obiect           I      比较的另一方
ObjectStrategy   I      用于对象的包住比较算法的策略对象。如果
                        未提供,则使用默认算法
PropertyStrategy I      用于特性的包住比较算法的策略对象。如果
                        未提供,则使用默认算法
IsPropertyEqual
说明
确定是否两个特性相等。根据缺省,如果它们属于相同的对象类型、具有相同的类型码和具有相同的值,则特性相同。注意在缺省策略中向量特性是不被执行分类的。
特征标记
Return_t UMEObjecI::IsPropertyEqual(UMEObjectI & Object,TypeCode_tType,UMEPropertyEqualityStrategyI*Strategy=NULL)参数名称             类型      说明<return>         R      如果特性测试相等同则为真Object           I      拥有其它特性的对象Type             I      特性的类型码PropertyStrategy I      用于特性的包住比较算法的策略对象。如果
                    未提供,则使用默认算法IsType说明确定是否对象属于特定的类型。特征标记bodlean UMEObjectI::Is类型(TypeCode_t Type)const参数名称        类型   说明<return>    R      如果项目为特定类型则为真Type        I      测试的类型码NullProperty说明从对象中删除特性。特征标记Return_t UMEObjectI::NullProperty(TypeCode_t Type,UMEAccessor &Accessor)参数名称        类型    说明<return>    R       用于调用的错误码Type        I       所需特性的类型码Accessor    I       用于破坏特性的访问器Owner说明找到所需类型的拥有者。该方法可以遍历拥有关系的多个层以找到正确的对象。特征标记UMEObjectI*UMEObject::IsType(TypeCode_t Type=TypeCodes::Undefined)const参数名称        类型      说明<return>    R      拥有指定类型的对象,如果没找到则为NULLType        I      所需拥有者的类型码。如果使用缺省值,则返回
               紧接的拥有者Setproperty说明设定对于对象的指定特性的值特征标记Return_t UMEObjectI::SetProperty(TypeCode_t Type.UMEAccessorI &Accessor)参数名称        类型      说明<return>    R      拥有指定类型的对象,如果没找到则为NULLType        I      所需拥有者的类型码。如果使用缺省值,则返回
               紧接的拥有者Accessor    I      用于设置值的访问器Touch说明允许语义代码作为逻辑地改变的对象的标志,以使对象在事务日志中体现。接触一个对象,即使其特性未变化,也将其标为修改过的。该接触可以通过调用参数设为False的方法来消除。特征标记void UMEObjectI::Touch(Boolean On)参数名称  类型    说明On    I       真=修改过,假=未修改TouchProperty说明允许语义代码作为逻辑地改变的对象的标志,以使对象在事务日志中体现。接触一个特性,即使其特性未变化,也将其标为修改过的。该接触可以通过调用参数设为False的方法来消除。特征标记void UMEobjectI::Touch(Boolean On)参数名称        类型     说明<return>    R     用于调用的错误码Type        I     特性的类型码On          I     真=修改过,假=未修改TxMgr说明检索监视对象的事务管理程序特征标记UMETxMgr*UMEObjectI::TxMgr(void)const参数名称        类型    说明<return>    R       事务管理程序,如果未激活则为NULLType说明检索对象的类型码特征标记TypeCode_t UMEObjectI::Type(void)const参数名称        类型    说明<return>    R       项目的类型码VisitProperty说明找到所要的特性并调用对其的访问程序。特征标记Return_t UMEObjectI::VisitProperty(TypeCode_t Type,UMEVisitorl& Visitor)参数名称       类型    说明<return>   R       用于调用的错误码Type       I       所需特性的类型码Visitor    I       要使用的访问者程序1.1.14 UMEPropertyICreateAccessor说明构造用于特性的访问程序。此举重复了在特性厂家中找到的功能(其通过UMEMetamodelUseI公开),并且为该性能提供。由于这一原因,最好其不是简单地实现为对UMEMetamodelUseI::CreateAccessor的调用。特征标记UMEAccessorI*UMEPropertyI::CreateAccessor(void)参数名称         类型     说明<return>     R     访问程序Flags说明检索在项目上设置的标志。这些标志由位的一起或运算来表示。NB:这些标志不应当与项目类型的元模型标志相混淆。特征标记ItemFlags_t UMEPropertyI::Flags(void)const参数名称        类型     说明<return>     R    关于该特性的位标志IsType说明确定该项目是否特定的类型。特征标记boolean UMEPropertyI::IsType(TypeCode_t Type)const参数名称        类型     说明<return>    R    如果特性是特定类型的,则为真
Type      I    测试的类型码
Type
说明
检索项目的类型码。
特征标记
TypeCode_t UMEPropertyI::类型(void)const
参数
名称         类型    说明
<return>     R      特性的类型码1.1.15 UMEAccessorI
访问程序控制对特性的访问,设置值、得到值、以及破坏特性。它们保证事务管理程序和语义机制被正确地管理。
UMEAccessorI定义了下面的动作常数。当用于SetProperty调用时,动作常数确定访问程序将要做什么。常数            说明kReplace           用访问程序中的值代替特性中的值kAppend            将访问程序中的值增补到特性的值中。对于标量特性,
               这与kReplace相同。KDelete            从特性的值中删除访问器中的值KOverwriteFlags    改变关于该特性的标志以与访问器中的标志匹配KForceRefresh      根据缺省,如果新值与旧值匹配,则访问程序将不会去
               修改特性中的值。如果该动作码被设置,则将强行进行
               修改
ActionCodes
说明
检索当前设置的关于访问程序的动作代码。
特征标记
unsigned long UMEAccessorI:ActionCodes(void)const
参数
名称       类型   说明
<return>   R      当前动作码
Flags
说明
检索在访问程序上设置的动作码。
特征标记
ItemFIags_t UMEAccessorI:Flags(void)const
参数
名称       类型   说明
<return>   R      当前标志
GetPropertyVaIue
说明
检索指定特性的值。如果可以对特性加以参考的话,该方法使用户绕过在UMEObjectI::GetProperty中必需的特性查找。
特征标记
Return_t UMEAccessorI:GetpropertyValue(UMEObjectI*Object,UMEPropertyI*Property)
参数
名称       类型  说明
<return>   R  当前标志
Object     I  对拥有特性的对象的参考
Property   I  对特性的参考
NullPropertyValue
说明
逻辑删除指定的特性。2如果可以对特性加以参考的话,该方法使用户绕过在UMEObjectI::NullProperty中必需的特性查找。
注2:有些特性实际上不根据指令来删除。相反是设置一个空标志。
特征标记
Return_t UMEAccessorI:NullPropertyValue(UMEObjectI*Object,UMEPropertyI*Property)
参数
名称       类型   说明
<return>   R      用于调用的错误码
Object     I      对拥有特性的对象的参考
Property   I      对特性的参考
SetAction Code
说明
指示访问程序在SetProperty调用时采取什么动作。代码可以是上述动作常数在位上的或运算。
特征标记
void UMEAccessorI:SetActionCode(unsigned long Code)
参数
名称     类型  说明
Flags    I     关于特性所要的标志
SetFlags
说明
设置关于特性所要的标志。这用于与kOverwriteFlags动作代码结合使用来设置关于特性的新标志。注意调用该方法将对特性没有影响,除非设置了kOverwriteFlags动作代码。
特征标记
void UMEAccessorI:SetFlags(ItemFlags_t Flags)
参数
名称     类型  说明
Flags    I     关于特性所要的标志
SetPropertyValue
说明
设置指定特性的值。如果可以对特性加以参考的话,该方法使用户绕过在UMEObjectI::SetProperty中必需的特性查找。
特征标记
Return_t UMEAccessorI:SetPropertyValue(UMEObjectI*Object,UMEPropertyI*Property)
参数
名称       类型   说明
<return>   R      用于调用的错误码
Object     I      对拥有特性的对象的参考
Property   I      对特性的参考
SetRaw
控制访问程序在原始代码在操作还是在加工代码中操作。在原始代码的方式下,语义不起动。在加工方式下,语义被起动。
如果访问程序是在工作的,该方法将不做任何事情,即在修改特性之间。
!编程警告
在使用原始访问程序时要非常小心。当这么做时,用户绕过为维护模型完整而设计的机制时。UMA制作书包含一些用户可能想采用的例子。如果有问题的话,就不要去做。
特征标记
bool UMEAccessorI::SetRaw(bool On)
参数
名称       类型   说明
<return>   R      访问程序的旧状态:真=原始,假=加工
On         I      访问程序所要的状态:真=原始,假=加工1.1.16 UMESCaIarACCessorTI
扩展:UMEACCessorI
用于标量访问程序的模板化的接口。SetValue
说明
将值设置到访问程序中。
特征标记
void UMEScaIarAccessorTI<I>::SetValue(const T & Value)
参数
名称    类型  说明
value    I  设置在访问程序中的值
Value
说明
检索访问程序中的值
特征标记
T UMEScalarAccessorTI<I>::Value(void)const
参数
名称      类型  说明
<return>  R  在访问程序中的值1.1.17 UMEVectorAccessorTI
扩展:UMEAccessorI
用于向量访问的模板接口。向量访问程序是任何包含标量组的程序(例如:阵列,列表,散列组)。它们不支持非标量值的集(例如:散列词典)向量访问程序支持提供对它们的值的内部迭代因子。Clear说明从访问程序中消除所有的值。特征标记void UMEVectorAccessorTI<r>::Clear(void)Contains说明确定如果指定的值是否在访问程序中。特征标记bool UMEVectorAccessorTI<I>::Contains(const T & Value)const参数名称       类型  说明<return>   R  在访问程序中的值Count说明确定在访问程序中的项目数特征标记unsigned long UMEVectorAccessorTI<T>::Count(void)const参数名称      类型  说明<return>  R  在访问程序中的项目数目GetNextValue说明前置内部迭代因子并检索下一值。特征标记bool UMEVectorAccessorTI<T>::GetNextValue(T & Value)参数名称        类型  说明<return>    R     如果有另外的值则为真,如果不再有则为假Value      O      值ResetIterator说明重设内部迭代因子。特征标记void UMEVectorAccessorTI<T>::ResetIterator(void)SetValue说明向访问程序加入一个值或多个值。特征标记Variant A:void UMEVeetorAccessorTI<I>::SetValue(const T&Value)Variant B:void UMEVectorAccessorTI<I>::SetValue(const LWTOrderedVectorT<T>&Values)参数名称     类型  说明Value    I     增补给访问程序的单个值Value    I     增补给访问程序的一组值1.1.18 UMEObjectSemanticI
为所有对象语义定义接口。对象语义事件由一系列位标志识别。
UMEObjectSemanticI定义了如下事件的ID:
常数            能否退出  说明kPostCreation       否    在由用户创建后立即起动kPreDestruction     是    在对象被破坏之前立即起动kPreTypeCodeChange  是    在子类型迁移之前立即起动kPostTypeCodeChange 是    在子类型迁移之后立即起动kManageCache        否    在对象创建后由来自恒久存储装置的负载或
                      事务处理管理程序立即起动Fire说明调用语义特征标记Return_t UMEObjectSemanticI::Firc(SemanticEvent_t Event,UMEObjectI &Object,UMEObjectSemanticContext*Reserved=NULL)参数参数名称      类型   说明<return>  R      用于调用的错误码Event     I      被触发的语义事件Object    I      对象被影响Reserved         保留以备将来使用Interests说明检索语义处理的语义事件。这用于增强特性。该方法仅在用元模型注册语义后被调用一次。被语义处理的事件不能在运行时改变。特征标记SemanticEvent_t UMEObjectSemantic::Interests(void)const参数名称      类型 说明<return>  R  用于指示处理的语义事件的标志1.1.19 UMEPropertySemanticI
定义了所有特性语义的接口。
特性语义事件由一系列位标志识别。UMEPropertySemanticI定义了下面的事件的ID:
常数              能否退出 说明
kPreEdit            是     在特性值被改变之前立即起动
kPostEdit           是     在特性值被改变之后立即起动
kPreDestruction     是     在特性被破坏之前立即起动
kPreFetch           否     对于在元模型中被标志为预取类型并且
                           kPreFetch实例标志有效的特性,在读取特性
                           值之前立即起动
kPostClip           否     特性刚被剪切
kPreOwnerDestruction否     破坏作为拥有者的对象
Fire
说明
调用语义。
特征标记Return_t UMEPropertySemanticI::Fire(SemanticEvent_t Event,UMEObjectI &Object,UMEpropertyI & Property,UMEPropertySemanticContext*Reserved=NULL)
参数
名称       类型   说明
<return>   R    用于调用的错误码
Event      I    被触发的语义事件
Object     I    被影响的对象
Property   I    被影响的特性
Reserved        保留以备将来使用
Interests
说明
检索语义所处理的语义事件。这用于性能增强。该方法仅在用元模型注册语义后被调用一次。被语义处理的事件不能在运行时改变。
特征标记
SemanticEvent_t UMEPropertySemantic::Interests(void)const
参数
名称      类型    说明
<return>  R      用于指示处理的语义事件的标志1.1.20 UMETxCommandI
事务命令用于指定一组要在当前事务的结尾发生的动作。
例如,语义机制不允许一个作为语义起动的主题的特性在事件中间被破坏。为了这个目的,要在所有语义具有完成的机会之前从内存中去掉该特性。在该环境中破坏一特性的结果导致在事务管理程序中对破坏指令进行排队。在所有的语义起动后,将破坏该特性。
Do
说明
执行命令。
特征标记
bool UMETxCommandI::DO(void)
参数
名称      类型    说明
<return>  R     如果成功执行命令即为真1.1.21 UMETxMgrI
用于管理事务的接口。
AdoptCommand
说明
将一条指令放入管理程序的队列中,以在事务结束时执行。该命令必须分配到堆上,并且其破坏的责任传递给事务管理程序。特征标记Result_t UMETXMgrI::AdoptComrnand(UMETxCornmandI*Command)参数名称      类型   说明<return>  R      用于调用的错误码commane   I      命令对象排队Begin说明开始一项事务处理。特征标记Variant A:Result_t UMETxMgrI::Begin(UMETxIdI* & Id,boolean Notify=false,UMETxDataI*Data,bool AutoDestruct=false)Variant B:Result_t UMETxMgrI::Begin(UMETxIdI*&Id,UMESubscriberI*Subscriber)参数名称         类型   说明<return>     R  用于调用的错误码Id           O  接收分配给新事务的事务IDNotify       I  指示是否事务管理程序的用户应在此事务关闭前被通知Data         I  编程者定义的与事务一同存储的数据AutoDestruct I  指示该事务在关闭后是否能被撤销Subscriber   I  非零值使得对事务管理程序进行一次登记CurrentTxId说明检索当前事务的ID特征标记const UMETxIdI*UMETxMgrI::CurrenTxId(void)参数名称      类型   说明<return>  R      当前事务的IDEnd说明结束事务并造成其内部事件的提交特征标记Result_t UMETxMgrI::End(UMETxIdI*Id)参数名称       类型   说明<return>   R      用于调用的错误码Id         I      标识要结束的事务Fail说明使一个事务失败并使其内部的事件重新开始。特征标记Result_t UMETxMgrI::Fail(UMETxIdI*Id)参数名称       类型   说明<return>   R      用于调用的错误码Id         I      标识要失败的事务GetTxData说明检索与指定的事务所带的事务数据。特征标记Return_t UMETxMgrI::GetTxData(UMETxIdI*Id,UMETxData*& Data)参数名称      类型  说明<return>  R     用于调用的错误码Id        I     事务IDData      O     接收事务数据GetOutTxList说明检索最外层(用户)事务的列表特征标记Return_t UMETxMgrI::GetOuterTxList(LwTOrderedVectorT<UMETxIdI*>&Transactions)const参数名称         类型   说明<return>     R      用于调用的错误码Transactions O      外层事务的列表GetTxId说明检索被命名的事务的事务ID。特征标记Return_t UMETxMgrI::GetTxId(const LWTString & 名称,UMETxIdI* &Id)const参数名称      类型  说明<return>  R     用于调用的错误码Name      I     事务的名称Id        O     事务的IDGetTxName说明检索事务的名称。特征标记Return_t UMETxMgrI::GetTxName(UMETxIdI*Id,LWTString & Name)const参数名称      类型  说明<return>  R     用于调用的错误码Id        I     事务的IDName      O     事务的名称IsLogging说明确定事务管理程序当前是否可联机。特征标记bool UMETxMgrI::IsLogging(void)const参数名称       类型   说明<return>    R     如果联机则为真IsOk说明确定事务管理程序是否在良好的状态。特征标记bool UMETxMgrI::IsOk(void)const参数名称       类型  说明<return>   R     如果Ok则为真IsTxOpen说明确定是否事务在当前开放。特征标记bool UMETxMgrI::IsTxOpen(void)const参数名称        类型  说明<return>    R     如果事务开放则为真NextTxId说明检索下一事务的ID特征标记bool UMETxIdI*UMETxMgrI::NextTxId(void)参数名称       类型  说明<return>    R    下一事务的IDPause说明使事务管理程序暂停联机特征标记Result_t UMETxMgrI::Pause(void)参数名称        类型  说明<return>    R     用于调用的错误码Previous TxId说明检索前一事务的ID。特征标记UMETxIdI*UMETxMgrI::PreviousTxId(void)参数名称        类型  说明<return>    R    前一事务的IDResume说明使事务管理程序恢复联机。特征标记Result_t UMETxMgrI::Resume(void)参数名称        类型  说明<return>    R    用于调用的错误码SetTxName说明为一项事务指定一个用户可读的名称。特征标记Return_t UMETxMgrI::SetTxName(UMETxIdI*Id,const LWTString &Name)参数名称      类型   说明<return>  R      用于调用的错误码Id        I      事务的IDName     I      设置给该事务的名称Redo
说明
使事务管理程序重新处理特定的事务。
特征标记
Result_t UMETxMgrI::Redo(UMETxIdI*Id)
参数
名称      类型  说明
<return>  R     用于调用的错误码
Id        I     识别要重新处理的事务
Reset
说明
使事务管理程序刷新所有的事务并返回其初始状态。
特征标记
Result_t UMETxMgrI::Reset(void)
参数
名称      类型  说明
<return>  R     用于调用的错误码
Undo
说明
使事务管理程序取消指定的事务。
特征标记
Result_t UMETxMgrI::Undo(UMETxIdI*Id)
参数
名称       类型   说明
<return>   R      用于调用的错误码
Id         I      识别要取消的事务1.1.22 UMEVisitorI
Visit
说明
调用访问者程序去操作指定项目。
特征标记
Variant A:Return_t UMEVisitorI::Visit(UMEObjectI * Object)
Variant B:Return_t UMEVisitorI::Visit(UMEPropertyI * Property)
参数
名称       类型   说明
<return>    R     用于调用的错误码
Object      I     要访问的对象
Property    I     要访问的特性1.1.23 UMEPropertyIteratorI
用于在由对象拥有的特性中迭代。
就象对所有UMA迭代因子那样,其使用“移动然后读取”的隐意一用户必须在读下一个值之前增量。
对此迭代因子支持过滤程序和分类。
Count
说明
返回将被迭代的特性号。注意,如果使用过滤器,迭代因子将必须遍历特性表必须确定实际计数。
特征标记
long UMEUMEPropertyIteratorI::Count(void)const
参数
名称      类型   说明
<return>   R     将被迭代的项目数
Reset
说明
重新初始化迭代因子。
特征标记
void UMEUMEPropertyIteratorI::Reset(bool Recalculate)
参数
名称         类型   说明
Recalculate  I      如果为真,将重新执行分类和过滤(如果有的话)。如
                    果为假,则使旧的过滤和分类保持有效。
SetFilter
说明
设置分类程序用于迭代因子。一旦迭代开始就改变分类程序将使得在迭代因子上执行复位。
特征标记
void UMEUMEpropertyIteratorI::SetFilter(UMEFilterTI<UMEPropertyI*>*Filter)
参数
名称    类型   说明
Filter    I    在迭代时将要使用的过滤器
SetSorter
说明
设置在迭代因子上将要使用的分类程序。一旦迭代开始就改变分类程序将使得在迭代因子上执行复位。
特征标记
void UMEUMEpropertyIteratorI::SetSorter(UMESorterTI<UMEPropertyI*>*Sorter)
参数
名称     类型    说明
Sorter    I      当迭代时要被使用的分类程序
Value
说明
在当前迭代因子位置检索值。如果迭代因子是在外壳程序开始之前,则结果是未定义的。
特征标记
UMEPropertyI * UMEUMEPropertyIteratorI::Value(void)const
参数
名称      类型   说明
<return>    R    迭代因子的当前值Operator++
说明
递增迭代因子。
特征标记
bool UMEUMEPropertyIteratorI::operator++(void)
参数
名称      类型   说明
<return>    R    如果迭代成功则为真,如果不再有入口则为假1.1.24 UMEFilterTI
这是用于由UMA模块中各种迭代因子所使用的模板化的过滤器的接口
Test
说明
测试项目以看看是否其应当纳入迭代中。
特征标记
bool UMEFilterTI<I>::Test(T & Item)
参数
名称       类型  说明
<return>    R    如果该项目应当被纳入则为真,否则为假
Item        I    被测试的项目1.1.25 UMESorterTI
这是用于UMA模块中各迭代因子使用的模板化分类程序的接口。
Sort
说明
将项目缓冲器分类为想要的顺序。
特征标记
bool UMESorterTI<I>::Sort(T*Buffer,long Count)
参数
名称    类型  说明
Buffer   I    要被分类的项目的缓冲器
Count    I    缓冲器中项目的数目1.1.26 UMESignatureGeneratorI
特征标记发生程序在概念上与访问者程序相似,它们将用于操作对象的算法封装。在它们的情况下,它们提取特性标记用于该对象。特征标记是唯一地识别模型中对象的串。多个特征标记的发生程序可以用元模型注册,以提供用于对对象进行匹配的不同算法。
特征标记发生程序必须将其发生的值的等级进行广告。特征标记的等级指示其唯一性的范围。等级是通过下面表中的常数指示的。对于每个等级,提供一个例子指示用于数据库表的特征标记。
常数          说明
kUniversal    该特征标记是在时间和空间中唯一的。一个例子是串表达
              GUID
              CB5BDC8 1-93Cl-11cf-8F20_00805F2CD064kInstallation  该特征标记是在时间上唯一的,但其唯一性限制于模型的
           特定库中。例如一个表示为ModelMart 3.0id的串。
                 12323123kSession       该特征标记在内存是唯一的,但是在当前环节结束后就不
           是唯一的了。例如表示为UMA local id的串。
                    298kPersistenceUnit  该特征标记是在内存的永久性单元中是唯一的,例如将
              类型码、项目名称、模型名称、拥有者名称和表名称连
              接的串。
              43.ProjectI.OracleModel.tdeffler.CustomerkWorkspace        在存储器工作空间上特征标记是唯一的。例如将类型
              码、项目名称和表名称连接的串。
                          43tdefflerCustomer
GetSignature
说明
为对象构造一特征标记。如果对象类型是不受支持的,则将返回空串。
特征标记void UMESignatureGeneratorI::GetSignature(UMEObjectI * Object,LWTString&Signature)const
参数
名称       类型      说明
Object      I      被产生特征标记的对象
Signature   O      特征标记
Id
说明
检索id。特征标记SignatureGeneratorId_t UMESignatureGeneratorI::Id(void)const参数名称       类型   说明<return>    R      idSignatureLevel说明将表示所产生特征标记类型的常数返回。特征标记long UMESignatureGeneratorI::SignatureLevel(void)const参数名称        类型    说明<return>    R     特征标记等级

Claims (16)

1.一种用于构筑建模工具的装置,包括:
元模型,包含有语义注册表以及元数据管理程序;
对象/特性接口;
对象/特性厂家注册表,它与上述元模型和对象/特性接口相连;以及
与上述对象/特性接口相连的对象/特性模型。
2.如权利要求1所述的装置,还包括事务管理程序,与上述对象/特性相连,用于撤销一个将对象/特性模型置于一无效状态下的操作。
3.如权利要求1所述的装置,其中所述元模型的语义注册表包括至少一个预定的语义集。
4.如权利要求1所述的装置,其中所述元模型的语义注册表包括至少一个由开发者提供的语义集。
5.如权利要求1所述的装置,其中所述元模型的语义注册表包括至少一个用于创建一对象实例的对象厂家以及用于创建一特性实例的特性厂家。
6.如权利要求1所述的装置,其中所述对象/特性模型包括由多个对象及多个特性中的至少一个所构成的一个预定集。
7.如权利要求1所述的装置,其中所述对象/特性模型包括基于元模型的一个外部定义而产生的对象和特性的实例。
8.如权利要求2所述的装置,还包括一个与事务管理程序的对象/特性接口相连接的日志文件。
9.如权利要求1所述的装置,其中所述对象/特性接口限制对上述对象/特性模型的访问。
10.一种用于构筑建模工具的方法,包括以下步骤:
通过定义第一类集构筑对象/特性模型;
通过定义第二类集构筑元模型;
将一类型代码与第一和第二类集关联起来;
向上述元模型提供预定的语义集;
对多个分立事件进行识别,
其中在多个分立事件的每一个发生时,调用语义集当中的至少一个语义;以及
提供一对象/特性接口以限制对上述对象/特性模型的访问。
11.如权利要求10所述的方法,还包括以下步骤:
提供一事务管理程序,以用于撤销一个将对象/特性模型置于无效状态下的操作。
12.如权利要求10所述的方法,其中上述对象/特性模型包括由多个对象及多个特性中的至少一个所构成的一个预定义集。
13.如权利要求10所述的方法,其中上述对象/特性模型包括基于由开发者所提供的元模型的外部定义而产生的对象和特性的示例。
14.如权利要求10所述的方法,其中上述元模型包括至少一个由开发者提供的语义集。
15.一种用于构筑建模工具的装置,包括:
第一模型,其包含注册表和数据管理程序;
接口;
与第一模型和接口相连的厂家注册表;以及
与上述接口相连的第二模型;
其中上述注册表中含有语义。
16.一种用于构筑建模工具的方法,包括以下步骤:
通过定义第一类集以构筑第一模型;
通过定义第二类集以构筑第二模型;
将类型代码与上述第一和第二类集关联起来;
向上述第一模型提供预定的语义集;
对多个分立事件进行识别,
其中在多个分立事件的每一个发生时,调用语义集当中的至少一个语义;以及
提供接口以限制对上述第一模型的访问。
CN99812224A 1998-10-16 1999-10-15 用于构筑建模工具的装置和方法 Pending CN1359489A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10468298P 1998-10-16 1998-10-16
US60/104,682 1998-10-16

Publications (1)

Publication Number Publication Date
CN1359489A true CN1359489A (zh) 2002-07-17

Family

ID=22301805

Family Applications (5)

Application Number Title Priority Date Filing Date
CN99812224A Pending CN1359489A (zh) 1998-10-16 1999-10-15 用于构筑建模工具的装置和方法
CN99812225A Expired - Fee Related CN1129068C (zh) 1998-10-16 1999-10-15 模型效果分析方法
CN99812038A Pending CN1361891A (zh) 1998-10-16 1999-10-15 用于可扩展宏语言的方法和系统
CN99812190A Expired - Fee Related CN1129859C (zh) 1998-10-16 1999-10-15 确定两个或多个模型之间的区别的方法
CNB998121916A Expired - Fee Related CN1192321C (zh) 1998-10-16 1999-10-15 通过结构化查询语言输入提供对分层数据存储器的访问的方法和装置

Family Applications After (4)

Application Number Title Priority Date Filing Date
CN99812225A Expired - Fee Related CN1129068C (zh) 1998-10-16 1999-10-15 模型效果分析方法
CN99812038A Pending CN1361891A (zh) 1998-10-16 1999-10-15 用于可扩展宏语言的方法和系统
CN99812190A Expired - Fee Related CN1129859C (zh) 1998-10-16 1999-10-15 确定两个或多个模型之间的区别的方法
CNB998121916A Expired - Fee Related CN1192321C (zh) 1998-10-16 1999-10-15 通过结构化查询语言输入提供对分层数据存储器的访问的方法和装置

Country Status (13)

Country Link
US (3) US6601023B1 (zh)
EP (5) EP1121654A4 (zh)
JP (6) JP2002528783A (zh)
KR (5) KR20010106514A (zh)
CN (5) CN1359489A (zh)
AT (1) ATE333125T1 (zh)
AU (5) AU772191B2 (zh)
BR (5) BR9914552A (zh)
CA (5) CA2346928A1 (zh)
DE (1) DE69932344T2 (zh)
HK (4) HK1040552A1 (zh)
IL (10) IL142571A0 (zh)
WO (5) WO2000023882A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1965293B (zh) * 2004-01-15 2010-06-16 数学工程公司 使用模型事件调度模型组件的执行的系统和方法
US10585648B2 (en) 2016-06-01 2020-03-10 The Mathworks, Inc. Systems and methods for aggregating implicit and explicit event code of executable models

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR9914552A (pt) * 1998-10-16 2001-11-27 Computer Ass Think Inc Análise de impacto de um modelo
US7734457B2 (en) * 1999-10-16 2010-06-08 Computer Associates Think, Inc. Method and system for generating dynamic comparison models
US7194405B2 (en) * 2000-04-12 2007-03-20 Activepoint Ltd. Method for presenting a natural language comparison of items
US6480970B1 (en) * 2000-05-17 2002-11-12 Lsi Logic Corporation Method of verifying data consistency between local and remote mirrored data storage systems
US6853997B2 (en) * 2000-06-29 2005-02-08 Infoglide Corporation System and method for sharing, mapping, transforming data between relational and hierarchical databases
US7089256B2 (en) * 2000-07-11 2006-08-08 Knowledge Dynamics, Inc. Universal data editor
US7421587B2 (en) * 2001-07-26 2008-09-02 Mcafee, Inc. Detecting computer programs within packed computer files
US7069547B2 (en) 2001-10-30 2006-06-27 International Business Machines Corporation Method, system, and program for utilizing impact analysis metadata of program statements in a development environment
US7194475B2 (en) 2001-10-30 2007-03-20 International Business Machines Corporation Method, system, and program for performing an impact analysis of program statements in at least one source code file
US7069263B1 (en) * 2002-02-19 2006-06-27 Oracle International Corporation Automatic trend analysis data capture
CH703081B1 (de) * 2003-03-19 2011-11-15 Roland Pulfer Analyse eines Modells eines komplexen Systems.
CH698890B1 (de) * 2003-03-19 2009-11-30 Roland Pulfer Modellierung eines komplexen Systems.
CH703073B1 (de) * 2003-03-19 2011-11-15 Roland Pulfer Vergleich von Modellen eines komplexen Systems.
CA2429335A1 (en) * 2003-05-22 2004-11-22 Cognos Incorporated System and method of determining impact of reports based on metadata model changes
EP1652074A4 (en) * 2003-07-11 2008-08-13 Computer Ass Think Inc ADJUNCTION TO A TOOL FOR MODELING OBJECTS DEFINED BY A USER
CN1910576B (zh) * 2003-10-22 2010-11-03 英特尔公司 用于结构化数据转换的设备
KR100611098B1 (ko) * 2003-12-12 2006-08-09 한국전자통신연구원 인터페이스 표준 모델을 이용한 위성 시뮬레이션 모델링시스템
US7484212B2 (en) * 2004-02-27 2009-01-27 International Business Machines Corporation Methods and arrangements for automated change plan construction and impact analysis
US7555531B2 (en) * 2004-04-15 2009-06-30 Microsoft Corporation Efficient algorithm and protocol for remote differential compression
US20060074980A1 (en) * 2004-09-29 2006-04-06 Sarkar Pte. Ltd. System for semantically disambiguating text information
GB2419700B (en) * 2004-10-29 2010-03-31 Hewlett Packard Development Co Methods for indexing data, systems, software and apparatus relng thereto
US20060168577A1 (en) * 2005-01-21 2006-07-27 Melo Antonio A V Software development system and method
EP1684170A3 (en) * 2005-01-21 2007-01-24 Outsystems, software em redes, S. A. Software development system and method
US7735062B2 (en) 2005-01-21 2010-06-08 Outsystems—Software Em Rede, S.A. Software development system and method
US20060168555A1 (en) * 2005-01-21 2006-07-27 Represas Ferrao Lucio E Software development system and method
JP4755427B2 (ja) 2005-02-23 2011-08-24 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース・アクセス・システム、データベース・アクセス方法
US20060259781A1 (en) * 2005-04-29 2006-11-16 Sony Corporation/Sony Electronics Inc. Method and apparatus for detecting the falsification of metadata
US20070006130A1 (en) * 2005-06-02 2007-01-04 Arnold Stamler Model oriented method of automatically detecting alterations in the design of a software system
CN100432999C (zh) * 2005-06-06 2008-11-12 上海宝信软件股份有限公司 Oracle下利用表结构体对整记录进行数据存取的方法
US20070250927A1 (en) * 2006-04-21 2007-10-25 Wintutis, Inc. Application protection
US9626161B2 (en) * 2006-12-12 2017-04-18 Ca, Inc. Computer readable medium and methods for filtering a dynamic comparison model
US8156147B1 (en) 2007-02-06 2012-04-10 The Mathworks, Inc. Sharing of instructions across model boundaries
US8334995B2 (en) * 2007-09-19 2012-12-18 Sharp Laboratories Of America, Inc. Method and system for adaptive control of imaging node
US20090094616A1 (en) * 2007-10-04 2009-04-09 Delima Roberto Comparing Middleware Configurations
US20090138846A1 (en) * 2007-11-23 2009-05-28 Microsoft Corporation Extended macro recording
US7962457B2 (en) * 2008-02-12 2011-06-14 Computer Associates Think, Inc. System and method for conflict resolution
US8321407B2 (en) * 2008-02-24 2012-11-27 Panaya Ltd. Methods for calculating a combined impact analysis repository
US8170988B2 (en) * 2008-04-17 2012-05-01 The Boeing Company System and method for synchronizing databases
KR100956921B1 (ko) * 2008-04-28 2010-05-11 권순용 데이터베이스 액세스 방법
US20100088686A1 (en) * 2008-10-06 2010-04-08 Microsoft Corporation Programming language with extensible syntax
CN101587492B (zh) * 2009-05-11 2011-05-11 金蝶软件(中国)有限公司 定位处理对象的方法和系统
KR100921255B1 (ko) * 2009-05-14 2009-10-13 주식회사 신시웨이 Sql 마스킹 장치 및 방법
US20110313736A1 (en) * 2010-06-18 2011-12-22 Bioproduction Group, a California Corporation Method and Algorithm for Modeling and Simulating A Discrete-Event Dynamic System
US8316314B2 (en) * 2010-06-30 2012-11-20 Thermo Electron Scientific Instruments Llc Intelligent multi-functional macros language for analytical measurements
US8706744B2 (en) * 2011-05-31 2014-04-22 Ca, Inc. Determining dependencies during macro expansion
US20130139113A1 (en) * 2011-11-30 2013-05-30 Microsoft Corporation Quick action for performing frequent tasks on a mobile device
US8990187B2 (en) 2012-05-21 2015-03-24 Google Inc. Efficient top-down hierarchical join on a hierarchically clustered data stream
KR102270791B1 (ko) 2014-12-10 2021-06-29 삼성전자주식회사 매크로 명령어를 처리하는 방법 및 장치
WO2016155342A1 (en) * 2015-03-31 2016-10-06 Huawei Technologies Co., Ltd. Analysis engine and method for analyzing pre-generated data reports
KR102195838B1 (ko) 2019-04-10 2020-12-28 주식회사 티맥스 소프트 데이터 베이스 관리 방법
US11769489B2 (en) 2021-01-28 2023-09-26 Samsung Electronics Co., Ltd. Electronic device and method for performing shortcut command in electronic device

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3656178A (en) * 1969-09-15 1972-04-11 Research Corp Data compression and decompression system
US4667290A (en) * 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
US4787035A (en) * 1985-10-17 1988-11-22 Westinghouse Electric Corp. Meta-interpreter
JPS63181033A (ja) * 1987-01-23 1988-07-26 Hitachi Ltd プログラム自動生成方式
US5070534A (en) * 1988-10-17 1991-12-03 International Business Machines Corporation Simplified cad parametric macroinstruction capability including variational geometrics feature
US4931928A (en) * 1988-11-09 1990-06-05 Greenfeld Norton R Apparatus for analyzing source code
GB2227339A (en) * 1989-01-21 1990-07-25 Kashinath Narayan Dandeker Complex expression generator
JPH0363581A (ja) 1989-04-28 1991-03-19 Internatl Business Mach Corp <Ibm> 電子回路の試験方法
US5276880A (en) * 1989-12-15 1994-01-04 Siemens Corporate Research, Inc. Method for parsing and representing multi-versioned computer programs, for simultaneous and synchronous processing of the plural parses
US5257363A (en) * 1990-04-09 1993-10-26 Meta Software Corporation Computer-aided generation of programs modelling complex systems using colored petri nets
US5699310A (en) * 1990-06-29 1997-12-16 Dynasty Technologies, Inc. Method and apparatus for a fully inherited object-oriented computer system for generating source code from user-entered specifications
FR2667711B1 (fr) 1990-10-09 1992-11-27 Thomson Csf Procede de reconnaissance d'objets dans des images et son application au suivi d'objets dans des sequences d'images.
US5295256A (en) * 1990-12-14 1994-03-15 Racal-Datacom, Inc. Automatic storage of persistent objects in a relational schema
US5507030A (en) * 1991-03-07 1996-04-09 Digitial Equipment Corporation Successive translation, execution and interpretation of computer program having code at unknown locations due to execution transfer instructions having computed destination addresses
US5596746A (en) 1991-10-21 1997-01-21 General Electric Company Method for transforming relational data base schemas into object models using ideal table meta models
US5421016A (en) 1991-12-12 1995-05-30 International Business Machines Corporation System and method for dynamically invoking object methods from an application designed for static method invocation
FR2688611A1 (fr) * 1992-03-12 1993-09-17 Bull Sa Utilisation d'un langage dont le typage porte sur le contenu des variables et permettant de manipuler des constructions complexes.
US5664181A (en) * 1992-03-17 1997-09-02 International Business Machines Corporation Computer program product and program storage device for a data transmission dictionary for encoding, storing, and retrieving hierarchical data processing information for a computer system
US5517641A (en) 1992-05-27 1996-05-14 Cdb Software, Inc. Restartable method to reorganize DB2 tablespace records by determining new physical positions for the records prior to moving using a non sorting technic
FR2694105B1 (fr) 1992-07-22 1994-11-25 Bull Sa Utilisation d'un langage à interprète embarqué pour la réalisation d'un outil interactif de définition d'interface utilisateurs.
US5295059A (en) * 1992-09-09 1994-03-15 Allen-Bradley Company, Inc. Programmable controller with ladder diagram macro instructions
US5794229A (en) * 1993-04-16 1998-08-11 Sybase, Inc. Database system with methodology for storing a database table by vertically partitioning all columns of the table
JPH06332710A (ja) * 1993-05-21 1994-12-02 Fujitsu Ltd オブジェクト指向データ処理システム
US5550971A (en) 1993-06-30 1996-08-27 U S West Technologies, Inc. Method and system for generating a user interface adaptable to various database management systems
JPH07244605A (ja) * 1994-03-03 1995-09-19 Fujitsu Ltd データベースシステム及びその更新方法
US5724425A (en) * 1994-06-10 1998-03-03 Sun Microsystems, Inc. Method and apparatus for enhancing software security and distributing software
US5742828A (en) * 1994-08-03 1998-04-21 Microsoft Corporation Compiler and method for evaluation of foreign syntax expressions in source code
US5694539A (en) * 1994-08-10 1997-12-02 Intrinsa Corporation Computer process resource modelling method and apparatus
US5495613A (en) * 1994-08-18 1996-02-27 Unisys Corporation Method and apparatus for extending the capability of a system editor using high-level language transforms
US5692195A (en) 1994-08-31 1997-11-25 International Business Machines Corporation Parent class shadowing
US5768564A (en) * 1994-10-07 1998-06-16 Tandem Computers Incorporated Method and apparatus for translating source code from one high-level computer language to another
US5732192A (en) 1994-11-30 1998-03-24 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Global qualitative flow-path modeling for local state determination in simulation and analysis
US5721915A (en) 1994-12-30 1998-02-24 International Business Machines Corporation Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database
US5768586A (en) * 1995-01-10 1998-06-16 Peoplesoft, Inc. Net change management for object-oriented modeling
US5513314A (en) 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
US5644764A (en) * 1995-01-31 1997-07-01 Unisys Corporation Method for supporting object modeling in a repository
US5548754A (en) 1995-02-07 1996-08-20 International Business Machines Corporation Optimization of SQL queries using early-out join transformations
US5701487A (en) * 1995-03-27 1997-12-23 Sun Microsystems, Inc. Method and apparatus for displaying locations of errors detected inside software macro calls
EP0823092A1 (en) 1995-04-24 1998-02-11 Aspect Development, Inc. Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US5737592A (en) * 1995-06-19 1998-04-07 International Business Machines Corporation Accessing a relational database over the Internet using macro language files
US5717924A (en) * 1995-07-07 1998-02-10 Wall Data Incorporated Method and apparatus for modifying existing relational database schemas to reflect changes made in a corresponding object model
US5790861A (en) * 1995-07-07 1998-08-04 Sun Microsystems, Inc. Method and apparatus for generating executable code from object-oriented C++ source code
US5638381A (en) * 1995-07-21 1997-06-10 Motorola, Inc. Apparatus and method for deriving correspondence between storage elements of a first circuit model and storage elements of a second circuit model
JPH09511859A (ja) 1995-08-23 1997-11-25 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン プロセス・モデルからプロセス管理コンピュータ・プログラムを生成するための方法及びコンピュータ・システム
US5721929A (en) * 1995-10-06 1998-02-24 Electronic Data Systems Corporation Method for extending a fourth generation programming language
US5855014A (en) * 1995-11-03 1998-12-29 Application Partners, Inc. Getfield function for a relational workgroup platform using keyword and workflow databases
US6003037A (en) 1995-11-14 1999-12-14 Progress Software Corporation Smart objects for development of object oriented software
US5721925A (en) * 1995-12-01 1998-02-24 Unisys Corporation Method for generically invoking operation in an object oriented repository
US5802511A (en) * 1996-01-02 1998-09-01 Timeline, Inc. Data retrieval method and apparatus with multiple source capability
US5815415A (en) * 1996-01-19 1998-09-29 Bentley Systems, Incorporated Computer system for portable persistent modeling
US6091895A (en) 1996-03-27 2000-07-18 International Business Machines Corporation Object oriented central maintenance for programs and scripts
US5715453A (en) * 1996-05-31 1998-02-03 International Business Machines Corporation Web server mechanism for processing function calls for dynamic data queries in a web page
US5987123A (en) * 1996-07-03 1999-11-16 Sun Microsystems, Incorporated Secure file system
US5819305A (en) * 1996-08-23 1998-10-06 Motorola, Inc. Method and apparatus for configuring operating modes in a memory
US5974201A (en) 1996-10-01 1999-10-26 Siemens Corporate Research, Inc. Smart image system
US6112024A (en) 1996-10-02 2000-08-29 Sybase, Inc. Development system providing methods for managing different versions of objects with a meta model
US5761494A (en) 1996-10-11 1998-06-02 The Sabre Group, Inc. Structured query language to IMS transaction mapper
US6065002A (en) 1996-10-31 2000-05-16 Systems And Computer Technology Corporation Simplified interface for relational database access using open database connectivity
US5983016A (en) 1996-11-12 1999-11-09 International Business Machines Corporation Execution engine in an object modeling tool
US5857197A (en) 1997-03-20 1999-01-05 Thought Inc. System and method for accessing data stores as objects
US5905982A (en) 1997-04-04 1999-05-18 International Business Machines Corporation Handling null values in SQL queries over object-oriented data
US6182274B1 (en) * 1997-05-01 2001-01-30 International Business Machines Corporation Reusing code in object-oriented program development
US5978789A (en) * 1997-05-07 1999-11-02 Lucent Technologies Inc. Efficient hypothetical query evaluation in a database system
US5878411A (en) 1997-06-27 1999-03-02 International Business Machines Corporation Dependent object class and subclass mapping to relational data store
US5822750A (en) * 1997-06-30 1998-10-13 International Business Machines Corporation Optimization of correlated SQL queries in a relational database management system
US6513152B1 (en) 1997-07-23 2003-01-28 International Business Machines Corporation Object oriented framework mechanism for customization of object oriented frameworks
US6081774A (en) * 1997-08-22 2000-06-27 Novell, Inc. Natural language information retrieval system and method
US6112304A (en) * 1997-08-27 2000-08-29 Zipsoft, Inc. Distributed computing architecture
US6292811B1 (en) 1997-09-19 2001-09-18 Modernsoft, Inc. Populating cells of an electronic financial statement
US5974407A (en) 1997-09-29 1999-10-26 Sacks; Jerome E. Method and apparatus for implementing a hierarchical database management system (HDBMS) using a relational database management system (RDBMS) as the implementing apparatus
US6085120A (en) * 1997-11-17 2000-07-04 International Business Machines Corporation Data system processing and method for creating application extension
US6105043A (en) * 1997-12-16 2000-08-15 International Business Machines Corporation Creating macro language files for executing structured query language (SQL) queries in a relational database via a network
US6247020B1 (en) 1997-12-17 2001-06-12 Borland Software Corporation Development system with application browser user interface
US6374256B1 (en) 1997-12-22 2002-04-16 Sun Microsystems, Inc. Method and apparatus for creating indexes in a relational database corresponding to classes in an object-oriented application
US6243709B1 (en) 1998-06-29 2001-06-05 Sun Microsystems, Inc. Method and apparatus for loading stored procedures in a database corresponding to object-oriented data dependencies
US6114978A (en) 1998-01-14 2000-09-05 Lucent Technologies Inc. Method and apparatus for assignment of shortcut key combinations in a computer software application
US6453356B1 (en) 1998-04-15 2002-09-17 Adc Telecommunications, Inc. Data exchange system and method
US6052720A (en) 1998-05-14 2000-04-18 Sun Microsystems, Inc. Generic schema for storing configuration information on a server computer
US6446109B2 (en) 1998-06-29 2002-09-03 Sun Microsystems, Inc. Application computing environment
US6226792B1 (en) 1998-10-14 2001-05-01 Unisys Corporation Object management system supporting the use of application domain knowledge mapped to technology domain knowledge
US6859919B1 (en) 1998-10-16 2005-02-22 Computer Associates Think, Inc. Object modeling tool with meta model semantic registry (rules) a meta data manager for object(s) properties an object/property interface for instance(s) of objects/properties received via object/property interface of the object factory registry
BR9914552A (pt) * 1998-10-16 2001-11-27 Computer Ass Think Inc Análise de impacto de um modelo
US6502234B1 (en) 1999-01-15 2002-12-31 International Business Machines Corporation Component based wizard for creating wizards
US6678882B1 (en) 1999-06-30 2004-01-13 Qwest Communications International Inc. Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse
KR200258626Y1 (ko) 1999-06-30 2001-12-28 윤청목 쥬스추출기와 겸용 사용되게 한 믹서
US6385767B1 (en) 1999-09-30 2002-05-07 Unisys Corporation Method and system for creating and manipulating extensions to version control systems
EP1247165B1 (en) 1999-10-01 2006-05-03 Infoglide Corporation System and method for transforming a relational database to a hierarchical database
US7734457B2 (en) 1999-10-16 2010-06-08 Computer Associates Think, Inc. Method and system for generating dynamic comparison models
JP2001265361A (ja) 2000-03-14 2001-09-28 Sony Corp 情報提供装置および方法、情報処理装置および方法、並びにプログラム格納媒体
US7353289B2 (en) 2000-11-06 2008-04-01 Telecommunication Systems, Inc. System for an open architecture development platform with centralized synchronization
US6754671B2 (en) 2001-05-02 2004-06-22 Sun Microsystems, Inc. Apparatus for Meta Object Facility repository bootstrap
US20030014439A1 (en) 2001-06-20 2003-01-16 International Business Machines Corporation Defining a markup language representation for state chart data
US7322025B2 (en) 2001-07-17 2008-01-22 Tata Consultancy Services Limited Method and apparatus for versioning and configuration management of object models
US6904588B2 (en) 2001-07-26 2005-06-07 Tat Consultancy Services Limited Pattern-based comparison and merging of model versions
EP1652074A4 (en) 2003-07-11 2008-08-13 Computer Ass Think Inc ADJUNCTION TO A TOOL FOR MODELING OBJECTS DEFINED BY A USER

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1965293B (zh) * 2004-01-15 2010-06-16 数学工程公司 使用模型事件调度模型组件的执行的系统和方法
US10157246B2 (en) 2004-01-15 2018-12-18 The Mathworks, Inc. System and method for scheduling the execution of model components using model events
US10585648B2 (en) 2016-06-01 2020-03-10 The Mathworks, Inc. Systems and methods for aggregating implicit and explicit event code of executable models
US11327725B2 (en) 2016-06-01 2022-05-10 The Mathworks, Inc. Systems and methods for aggregating implicit and explicit event code of executable models

Also Published As

Publication number Publication date
EP1121655A1 (en) 2001-08-08
EP1129391A4 (en) 2003-03-12
KR20010106514A (ko) 2001-11-29
CN1325514A (zh) 2001-12-05
US6601023B1 (en) 2003-07-29
BR9914553A (pt) 2001-06-26
EP1121640A4 (en) 2002-09-11
HK1040441A1 (zh) 2002-06-07
US6385610B1 (en) 2002-05-07
DE69932344D1 (de) 2006-08-24
EP1121640A1 (en) 2001-08-08
EP1121655B1 (en) 2006-07-12
AU1207100A (en) 2000-05-08
BR9914552A (pt) 2001-11-27
EP1121654A4 (en) 2003-09-24
HK1040552A1 (zh) 2002-06-14
CN1192321C (zh) 2005-03-09
AU6518099A (en) 2000-05-08
CA2346925A1 (en) 2000-04-27
KR20010093777A (ko) 2001-10-29
CA2346924A1 (en) 2000-04-27
BR9914551A (pt) 2002-03-05
IL142564A0 (en) 2002-03-10
JP2002528788A (ja) 2002-09-03
IL142571A (en) 2007-02-11
WO2000023919A1 (en) 2000-04-27
ATE333125T1 (de) 2006-08-15
DE69932344T2 (de) 2007-07-05
CN1129859C (zh) 2003-12-03
JP2002528783A (ja) 2002-09-03
IL142572A0 (en) 2002-03-10
EP1121654A1 (en) 2001-08-08
JP2002528794A (ja) 2002-09-03
WO2000023883A1 (en) 2000-04-27
EP1121639A4 (en) 2002-09-11
EP1121640B1 (en) 2016-07-27
HK1042140A1 (zh) 2002-08-02
AU772191B2 (en) 2004-04-08
CA2347467A1 (en) 2000-04-27
KR20010089309A (ko) 2001-09-29
IL142482A (en) 2006-08-20
IL142571A0 (en) 2002-03-10
JP2002528789A (ja) 2002-09-03
CN1361891A (zh) 2002-07-31
AU761228B2 (en) 2003-05-29
US7711685B1 (en) 2010-05-04
AU1315200A (en) 2000-05-08
WO2000023919A9 (en) 2000-11-16
EP1129391A2 (en) 2001-09-05
WO2000023917A9 (en) 2000-11-02
AU775431B2 (en) 2004-07-29
JP2002528793A (ja) 2002-09-03
HK1040440A1 (zh) 2002-06-07
CN1129068C (zh) 2003-11-26
CA2347495A1 (en) 2000-04-27
CA2346928A1 (en) 2000-04-27
KR20010103604A (ko) 2001-11-23
IL142564A (en) 2006-08-01
CN1323424A (zh) 2001-11-21
AU1445200A (en) 2000-05-08
AU1315400A (en) 2000-05-08
WO2000023917A1 (en) 2000-04-27
WO2000023882A1 (en) 2000-04-27
EP1121639A1 (en) 2001-08-08
JP2005285141A (ja) 2005-10-13
EP1121655A4 (en) 2003-02-05
WO2000023863A2 (en) 2000-04-27
WO2000023863A3 (en) 2000-11-23
BR9914427A (pt) 2001-06-26
IL142482A0 (en) 2002-03-10
IL142484A0 (en) 2002-03-10
KR20010103603A (ko) 2001-11-23
IL142484A (en) 2006-10-31
BR9914549A (pt) 2002-01-15
IL142572A (en) 2007-06-03
EP1121639B1 (en) 2016-08-03
CN1323416A (zh) 2001-11-21

Similar Documents

Publication Publication Date Title
CN1359489A (zh) 用于构筑建模工具的装置和方法
CN1182467C (zh) 可扩充的分布企业应用集成系统
CN1073276A (zh) 语言的中性对象
CN1524216A (zh) 软件构件插件程序结构的系统和方法
CN1073540A (zh) 管理类方法名
CN1826593A (zh) 通过网络以事务形式办理文件操作的方法与系统
CN1679026A (zh) Web服务设备和方法
CN1959631A (zh) 一种基于itron的应用软件自主装配技术
CN1689022A (zh) 可扩展标记语言流化转换器
CN1797399A (zh) 用于文本挖掘和搜索的应用程序编程接口
CN1811772A (zh) 企业信息集成平台
CN1604082A (zh) 用于任意数据模型的映射体系结构
CN1828527A (zh) 用于跨不同应用程序框架的数据服务的平台
CN1739107A (zh) 为可由硬件/软件接口系统管理的信息单元提供同步服务的系统和方法
CN1592230A (zh) 受控资源的授权管理
CN1585945A (zh) 用于将xml模式映射到对象关系数据库系统的机制
CN1866253A (zh) 把Web服务映射到本体
CN1869923A (zh) 系统数据接口及相关体系结构
CN1624657A (zh) 安全相关的编程接口
CN1592905A (zh) 自动产生数据库查询的系统和方法
CN1321275A (zh) 与源代码控制系统交互的方法和设备
CN1961294A (zh) 为可由硬件/软件接口系统管理的信息单元提供关系和分层同步服务的系统和方法
CN1609795A (zh) 用于计算机平台的编程接口
CN1629869A (zh) 产生和管理商业过程集成解决方案的系统和方法
CN1609794A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication