CN103329096A - 面向对象的编程环境中对象的定义 - Google Patents

面向对象的编程环境中对象的定义 Download PDF

Info

Publication number
CN103329096A
CN103329096A CN2011800587015A CN201180058701A CN103329096A CN 103329096 A CN103329096 A CN 103329096A CN 2011800587015 A CN2011800587015 A CN 2011800587015A CN 201180058701 A CN201180058701 A CN 201180058701A CN 103329096 A CN103329096 A CN 103329096A
Authority
CN
China
Prior art keywords
type
auxiliary
objects
statement
aggregate objects
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
CN2011800587015A
Other languages
English (en)
Inventor
马蒂亚斯·格伦德柳斯
马格努斯·肯尼迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Schneider Electric Buildings AB
Original Assignee
Schneider Electric Buildings AB
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 Schneider Electric Buildings AB filed Critical Schneider Electric Buildings AB
Publication of CN103329096A publication Critical patent/CN103329096A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在一个具有层级对象结构的面向对象的编程环境中,通过声明不同类型的对象和与其相关联的属性定义了一个对象类型。声明了一个基类型。声明了该基类型的属性。声明了包括不同类型的个体对象的一个聚合对象集合。该聚合对象集合将在一个由该对象类型创建的主对象中被实例化。声明了一个辅助对象集合,该辅助对象集合包括不同类型的多个个体对象并且与该对象类型相关联。该辅助对象集合的这些个体对象将在该层级对象结构中的对应位置上被实例化。

Description

面向对象的编程环境中对象的定义
技术领域
本发明总体上涉及一种面向对象的编程环境,并且特别涉及一种用于在具有层级对象结构的面向对象的编程环境中定义对象类型的装置。
背景
在建筑自动化系统的基于计算机的控制中,近来已引进了若干面向对象的工具和概念。此类面向对象的工具和概念可以允许工程师在建筑自动化系统的一个站点的工程化中更加高效。
用户定义的类型、聚合、继承等都是在面向对象的编程世界中得到很好证明的概念。因此,在面向对象的环境中定义聚合对象是常见的。聚合对象由一个或多个部分对象构成。
在一个特定的建筑自动化系统中,关于工程师在工程环境中被允许做什么(及因此工程师不被允许做什么)通常存在约束和限制。例如,在所提供的这些面向对象的工具和概念中,关于不同的对象可被放置在何处,可能是有某些规则的。同时,工程师们可能会期望通过使用所提供的面向对象的工具和概念来创建包括复杂对象的工程解决方案。这可能会对面向对象的工具和概念中的聚合对象的可用性施加了限制。
工程环境直接与底层的面向对象的环境有关。因此,使用聚合对象的原则可能是一种打包工程解决方案并且可能是在装置中实例化许多工程解决方案和/或聚合的方式。类似于一个聚合,工程师们可能期望修改工程环境中的应用程序对象。此类修改还可能会与所提供的工程环境的规则相冲突。
因此,在期望保持所提供的工程环境中的面向对象工具和概念鲁棒和简单与期望使用该工程环境的工程师能够创建复杂的结构及对象之间有一个平衡。
由伽马,E(Gamma,E)等人的1999年的“可重复使用的面向对象软件的设计模式、元素(Design Patterns,Elements of ReusableObject-Oriented Software)”是面向对象编程领域的一本手册。更确切地说,它是一本关于可重复使用的面向对象软件的元素的手册。它包括了常见发生的设计问题的解决方案的一个目录。所提出的设计模式据称允许设计者创建灵活且可重复使用的设计而不需要重新发现解决方案本身。
“符号链接(Symbolic Link),一篇维基百科的文章”涉及术语“符号链接”,据说其是一种特殊类型的文件,该文件包含一个绝对或相对路径形式的到另一个文件或目录的引用并且影响路径名分辨率。一个符号链接只包含一个文本串,该文本串被操作系统解释并遵循为一个到另一文件或目录的路径。它本身是一个文件并且可以不依赖于其目标而存在。如果一个符号链接被删除,它的目标不受影响。如果该目标被移动、重命名、或者删除,任何用于指向它的符号链接继续存在但是现在都指向一个不存在的文件。
由诺贝尔,J(Noble,J)的1998年的“面向对象的设计模式之间的分类关系”(Classifying relations Between Object-Oriented design patterns)涉及面向对象的设计模式之间的分类关系,其中一个设计模式是对被定制来解决特定上下文中的一个普通设计问题的沟通对象和分类的描述。
US5,960,438披露了一个分层类库,该分层类库被提供来允许面向对象的应用程序实例化对象,以按照对象模型来访问和操纵一个关系表的非传统数据值。该数据是凭借扩展的数据对象被操纵的,这些扩展的数据对象中的每一个代表一个关系行的一个单元,并且每一个都从该类库之中继承类型特有的行为。提供了一个类库程序产品,借此实体对象被扩展成保持扩展的数据对象(EXOB的)。对非传统数据类型的每一列而言,一个EXOB由该类库的一个适当的类构成。该类库程序产品可被称为一个EXOB类库。具体地,当一个应用程序访问一个关系表的一个单元并且该单元包含一个非传统数据类型时,一个匹配类型的EXOB类实例在该应用程序中被实例化以代表该数据。该EXOB实例将提供一个公共接口,用于添加、检索、更新、和删除来自或到对应表位置的数据;用于访问对象的特性;以及用于以各种取决于类型的方式操纵数据。
然而,虽然US5,960,438允许访问并且操纵来自关系表中的非传统类型数据值,如使用该工程环境的工程师所期望的那样在一个鲁棒且简单的工程环境与灵活性之间平衡所产生的面向对象的应用程序依然是困难的。
发明概述
鉴于以上内容,本发明的一个目标因此是提供对现有技术的改良,由此解决或者至少缓解上面提到的问题。更具体地说,目标是为用户提供一种装置,用于创建包括复杂对象的工程解决方案同时保持鲁棒而简单的面向对象的工具和概念。这个和进一步的目标可以通过在具有层级对象结构的面向对象的编程环境中定义对象类型的装置来实现。
因此,根据一个第一方面,提供了一种用于在具有层级对象结构的面向对象的编程环境中定义对象类型的方法,该方法包括:为该对象类型声明一个基类型;为该对象类型声明属性;声明一个聚合对象集合,该聚合对象集合包括与该对象类型相关联的不同类型的多个个体对象,其中该聚合对象集合将在由该对象类型创建的一个主对象中被实例化;以及声明一个辅助对象集合,该辅助对象集合包括不同类型的多个个体对象并与该对象类型相关联,其中该辅助对象集合的这些个体对象将在该层级对象结构的对应位置被实例化。
此类方法有利地允许用户使用或不使用工程工具真实地创建并且重复使用面向对象的工具和概念内的解决方案。这将使得能够更加高效地使用面向对象的工具和概念。
根据实施例,该方法进一步包括:实例化该对象类型。由此,该主对象在该层级对象结构的一个第一位置被创建。响应于该实例化,该聚合对象集合可以在该主对象内被创建;该辅助对象集合可以被创建;并且该辅助对象集合的这些个体对象可以被保存在对应位置。
根据实施例,该方法进一步包括:基于该对象类型指定这些辅助对象的属性;并且基于该对象类型确定辅助对象的哪些属性是用户可修改的,以及辅助对象的哪些属性是用户不可修改的。
根据一个第二方面,提供了一种在具有层级对象结构的面向对象的编程环境中用于在其中定义对象类型的工具,该工具包括被配置成实现在此披露的方法的电路。该工具可以包括:用于为该对象类型声明一个基类型的装置;用于为该对象类型声明属性的装置;用于声明包括与该对象类型相关联的不同类型的多个个体对象的一个聚合对象集合的装置,其中该聚合对象集合将在由该对象类型创建的一个主对象中被实例化;以及用于声明包括不同类型的多个个体对象并与该对象类型相关联的一个辅助对象集合的装置,其中该辅助对象集合的这些个体对象将在该层级对象结构的对应位置被实例化。
根据本发明的一个第三方面,提供了一种存储在非暂态计算机可读介质中的计算机程序产品,其包括多个软件指令,当在计算机中运行时,这些软件指令执行在如上述披露一种用于在具有层级对象结构的面向对象的编程环境中定义对象类型的方法。此类计算机程序使得能够高效地实现上述披露的方法。
该第二和第三方面通常可以与该第一方面具有相同的特征和优点。
通常,权利要求中用到的所有术语都将按照其在该技术领域中的普通含义来解释,除非在此明确另行定义。所有引用“一个/一种/该[设备、事件、消息、报警、参数、步骤等]”都将被公开地解释为意指所述设备、事件、消息、报警、参数、步骤等的至少一个实例,除非在此明确另行定义。在此披露的任何方法的步骤不必精确地按照披露的顺序执行,除非明确说明。
附图简要说明
现在,将在此通过示例参考所附示意图说明本发明的实施例,其中
图1是根据实施例的一个工具的示意图;
图2(a)至图2(b)是面向对象的环境中的对象结构的示意图;以及
图3是根据一个实施例的流程图。
优选实施方案的详细描述
当今,许多建筑自动化系统是计算机控制的。技术人员可以使用运行特定建筑自动化系统软件的计算机来监测和监督该建筑自动化系统。该特定建筑自动化系统软件通常由开发商提供。该特定建筑自动化系统软件可以是一个工程工具的一部分,比如一个软件套件。该特定建筑自动化系统软件的一些部分可以由安装了该特定建筑自动化系统软件的建筑自动化系统的工程师来配置。由此,工程师们可以在工程环境下根据他们的特定需求进一步定制所提供软件的功能和操作。
如在US5,960,438中所提到的,计算机应用程序员开发基于计算机的应用程序来满足终端用户的需求。技术的进步使得开发极复杂的应用程序成为可能。满足终端用户需求(即,建筑自动化系统的工程师们)的多个方面之一是复杂真实世界系统的正确表现。此类复杂真实世界系统的一个示例是计算机控制的建筑自动化系统。
通过使用下面披露的主题,用户可能能够创建包括复杂对象的工程解决方案,同时保持鲁棒而简单的面向对象的工具和概念。这是通过在具有层级对象结构的面向对象的编程环境中定义对象类型的方式实现的。根据该对象模型,一个软件系统被建模成协作对象的集合。个体对象被处理为一个特定类的实例。每个类在类的层级中有一个位置。可以理解为一个对象具有一个唯一的标识、具有一个状态并且呈现行为。一个对象的行为与该对象可能执行的操作集合有关。
下面披露的主题可以被提供为一种计算机程序产品。该计算机程序产品包括在计算机上运行时执行所披露的主题的多个软件指令。该计算机程序产品可以存储在非暂态计算机可读介质上。下面披露的主题还可以被提供为一种在面向对象的编程环境中用于在其中定义对象类型的工具。图1披露了一个工具100。同样地,该工具可以具有使某些功能能够被执行的某些装置。工具100在操作系统102的监督下运行。操作系统102可操作地连接到用户接口104。用户接口104被安排成接收来自用户的输入并且向该用户传送输出。操作系统102进一步可操作地连接到通信接口106。通过通信接口106,工具100可以与一个建筑自动化系统(未示出)中的其他实体进行通信。计算机程序指令可以存储在计算机可读介质108中,该计算机可读介质可以是非暂态存储介质。计算机可读介质108可以存储计算机程序指令,这些指令使得处理单元110执行一些特别相关的功能以在一个面向对象的编程环境中定义一个对象。因此,工具100可以包括被配置成实现下面披露的方法的电路。此工具的功能性将在下面进一步披露。
聚合对象:一般而言,一个聚合是两个或更多个对象之间的一种关联,其导致一种整体/部分关系。一个包括其他对象(即整体对象)的对象被称为一个聚合对象。用来构建整体对象的对象被称为部分对象。
聚合对象由一个或多个部分对象构成。一个聚合对象可以是一个简单聚合、一个复合聚合、或者两者的组合。简单和聚合之间的不同在于该整体或者聚合对象是如何链接到其部分对象的。一个聚合与它的部分之间的链接的类型可以支配它的部分对象的生存期(创建和删除)。简单与聚合之间的不同由谁(即什么对象)控制该聚合的部分对象的生存期来支配。
如果该聚合对象专门使用它的部分对象,并且否则就不具有对它们的创建、修改、或者删除的控制,则该聚合与它的部分之间的关系就是一个简单聚合。该部分对象可以独立于该简单聚合对象存在(即它可以被创建、修改、和删除)。这意味着一个部分对象可以(也许同时)参与多于一个简单聚合关系。垃圾收集器可以最终删除未引用的对象,但是只要该简单聚合对象保持对它的部分对象的引用,该部分对象将保持在存储器内。对已存在的部分对象的引用可以通过程序设计转到聚合对象构造或者其他聚合对象的方法。
如果该聚合对象反而控制它的部分对象的生存期(即它创建、修改、和删除它们),这就称为一个复合聚合。复合聚合可以对它们的部分对象的存在具有完全的控制。这还意味着一个复合聚合的部分对象不会开始存在直到该聚合对象被创建。当该聚合对象被创建时,复合聚合部分对象被创建。聚合部分创建通常发生在该聚合对象构造函数中。在例如C#中没有程序员破坏部分对象的直接方式。如前面所提到的,一个垃圾收集器可以最终删除未引用的对象。因此,在它的生存期内该聚合对象可以通过不返回一个对其部分对象的引用来防止违反数据封装。
因此,一个对象是一个聚合,如果它包含并使用其他对象的服务。一个聚合对象由其自身(整体)和它包含的对象(它的部分)组成。一个聚合对象依赖于它的部分对象的行为。复合聚合可以包括许多不同类型的部分对象,每一个提供特定化的行为。这可能需要仔细考虑多态行为以一致处理这些不同的部分类型,参见瑞克米勒(Rick Miller)帕尔普自由出版社(Pulp Free Press)2008年的“艺术家的C#,面向对象编程的艺术和科学(C#For Artists,the Art and Science of Object-OrientedProgramming)”。
对象的声明:现在将参照图1的工具、图2(a)和图2(b)的面向对象的环境、和图3的流程图,描述一种用于定义对象类型的方法。在一个建筑自动化系统中,一个对象类型将一个对象定义为例如一个报警、一个趋势日志、一个日程、一个文件夹或一个模拟值。对象由对象类型创建。
在此披露的对象类型被定义于一个面向对象的编程环境中。在此披露的面向对象的编程环境具有一个层级对象结构。
该方法包括为该对象类型声明一个基类型,步骤S02。图2(a)是在面向对象的环境中的一个对象结构200的示意图。在图2(a)中,该对象类型被表示为“AHU类型1”。因此,所披露的工具具有用于为该对象类型声明一个基类型的装置。该对象类型从该基类型继承属性。该对象类型的继承可以被用于为多个对象类型声明公共属性。它还可以被用于将相似类型的对象组织在同一祖先下。因此,优选有一个对象类型层级。在下面的示例中,一个对象从该对象自身的级别开始具有一种三级层级:
·    对象
○    趋势日志
■    间隔趋势日志
■    值改变趋势日志
■    …
○    报警
■    超范围报警
■    状态改变报警
■    …
○    值
■    模拟值
■    数字值
■    多状态值
■    串值
■    …
○    …
该方法进一步包括为该对象类型声明属性,步骤S04。因此,所披露的工具具有用于为该对象类型声明属性的装置。此类被声明的属性将在之后进一步得到披露。
属性说明:一个属性可以或者是一个参数或者是一个变量。参数通常被用来配置该对象。“报警”类型的对象的参数的一个示例可以特别是“报警限制”参数。变量通常被用来代表该对象的运行时间状态。“报警”类型的对象的变量的一个示例可以特别是“报警状态”变量。一个属性通常具有一个数据类型和许多特性。特性的示例可以是“只读”特性、“保持级别”特性、和“初始值”特性。
此方法进一步包括声明一个聚合对象集合,步骤S06。该聚合对象集合包括与该对象类型相关联的不同类型的多个个体对象。在图2(a)的示例中聚合对象是“图形”、“程序”、“日志”、“报警”、和“图表”。
如下所示,该聚合对象集合将要在由该对象类型创建的一个主对象中被实例化。因此,所披露的工具具有用于声明一个聚合对象集合的装置,该聚合对象集合包括与该对象类型相关联的不同类型的多个个体对象,其中该聚合对象集合将在由该对象类型创建的一个主对象中被实例化。
此方法进一步包括声明一个辅助对象集合,步骤S08。该辅助对象集合包括与该对象类型相关联的不同类型的多个个体对象。在图2(a)的示例中,所声明的对象类型“AHU类型1”的辅助对象是“CVW”、“HVW”、“OAD”、和“RAD”。如下所示,该辅助对象集合的个体对象将在该层级对象结构的对应位置被实例化。因此,所披露的工具具有用于声明一个辅助对象集合的装置,该辅助对象集合包括不同类型的个体对象并且与该对象类型相关联,其中该辅助对象集合的个体对象将在层级对象结构的对应位置被实例化。
该方法因此可以进一步包括在该对象类型中指定这些辅助对象的属性值,步骤S10。在该对象类型中,可以确定这些辅助对象的哪些属性是不可被用户修改的,步骤S12。例如,一个表示为“只读”的属性不能够被做成“非只读”。
引用:引用可以被用来指定对象之间的关系,例如该建筑自动化系统中的哪些值将显示在图形中、程序的输入与输出、哪些值将被趋势日志记录或由报警监测。引用可以在该对象类型与该聚合对象集合之间被声明。因此,在步骤S14中可以声明该对象类型与该聚合对象集合之间的至少一个引用。进一步,可以在该对象类型与该辅助对象集合之间声明引用,步骤S16。引用还可以在聚合对象与辅助对象之间以任意组合被声明。因此,在步骤S18中可以声明该聚合对象集合与该辅助对象集合之间的至少一个引用。
可以独立于该聚合对象集合和/或该辅助对象集合被实例化的位置保持所声明的该至少一个引用。类似地,可以独立于该聚合对象集合和/或该辅助对象集合是否被移动保持所声明的该至少一个引用。
对象类型的实例化:对象类型的实例化导致辅助对象的创建和存储。图2(b)是在面向对象的环境中一个对象结构250的示意图。图2(b)展示了两个创建的对象“AHU1”和“AHU2”,这两个对象包括在“AS”结构的“应用程序”中并且是由图2(a)的对象类型“AHU类型1”创建的。当使用该对象类型创建一个对象时,该对象被创建于一个位置。这些聚合对象在由该对象类型创建的对象中被实例化。这些辅助对象可以在允许创建其特定类型对象的系统中的任何位置被实例化。如果该主对象允许,它可以是在该主对象内。图2(b)的示例中,对象“AHU1”和“AHU2”的辅助对象分别在“IO总线”的“AO-8”、“DO-FC-8”和“UI-16”的位置下被实例化。位置“AO-8”包括与对象“AHU1”相关联的辅助对象“AHU1-CWV”和“AHU1-HWV”以及与对象“AHU2”相关联的辅助对象“AHU2-CWV”和“AHU2-HWV”。类似地,位置“DO-FC-8”包括与对象“AHU1”相关联的辅助对象“AHU1-OAD”以及与对象“AHU2”相关联的辅助对象“AHU2-OAD”。同样,位置“UI-16”包括与对象“AHU1”相关联的辅助对象“AHU1-RAT”以及与对象“AHU2”相关联的辅助对象“AHU2-RAT”。
如图2(b)所示,对象AHU1具有与对象类型“AHU类型1”相同的聚合对象,即“图形”、“程序”、“日志”、“报警”和“图表”。因此,在本说明性示例中存在从“图形”、“程序”、“日志”、“报警”和“图表”到辅助对象的引用,其在该说明性示例中是仅可以在IO总线中的IO模块下创建的IO点。还可以存在从“图形”到“程序”、“日志”、“报警”和/或“图表”的引用。
因此,该方法可以进一步包括实例化该对象类型,步骤S20。由此,该主对象在该层级对象结构的一个第一位置被创建。在一些实施例中,一个层级对象结构中的一个位置可以与一个层级文件系统中的一个文件夹相对应。响应于该实例化该对象类型,该聚合对象集合可以在该主对象内被创建,步骤S20.1。进一步响应于该实例化该对象类型,该辅助对象集合可以被创建,步骤S20.2,并且响应于此,该辅助对象集合的这些个体对象可以保存在对应位置。该层级对象结构中的对应位置与该辅助对象集合的这些个体对象的类型相对应。因此,当辅助对象的一个对象类型被实例化时,这些辅助对象也被创建并且该用户可以被允许通过用户接口104来指定这些辅助对象的位置。然而,一些对象类型只能够在该系统中的某些位置被实例化并且这也适用于辅助对象。该系统中的所述某些位置优选被从创建该主对象的该第一位置分离。
属性的修改:仅可以修改某些属性。用户只可以只修改这些辅助对象的已被指定为可修改的属性。因此,响应于例如通过用户接口104接收到的并且与一个可修改的属性相关的用户输入,该可修改属性可以被修改,步骤S22。然而,如果用户输入提示一个不能被用户修改的属性,此属性不被修改并且用户可能被提供该属性是不可修改的信息。此信息可以被提供为例如通过用户接口104在工程工具上显示的信息消息。
链接:一个链接可以被看做一个引用。链接可以被用于使得能够从这些对象导航到该基类型。因此,该辅助对象集合中的一个或多个对象可以被提供这样一个到声明该辅助对象集合的基类型的链接,步骤S24。在工程环境下,这些链接可以是可标识的和可选择的。因此一个用户可以(可视地)识别一个链接,并且然后选择该链接(例如通过点击该链接)来访问该辅助对象集合的该基类型。
可视指示:可以有不同的方法来区分辅助对象和其他对象。一个可视指示符可以使用户能够在该工程环境下容易地识别辅助对象。例如,在步骤S26中,该辅助对象集合中的对象可以与指示这些对象是辅助对象的一个可视指示相关联。进一步地,该指示可以指示与这些辅助对象相关联的主对象,由此使该用户能够识别与一个特定辅助对象相关联的主对象。
删除:在所披露的面向对象的编程环境中,辅助对象不能被个别地和/或单独地删除。该辅助对象集合也不能被独立地删除。因此,阻止了所创建的该辅助对象集合被删除,步骤S28,除非它的主对象被删除。这样的结果就是,该用户(即,使用建筑自动化系统中所提供的面向对象的编程工具的工程师)不能删除一个辅助对象。然而,当一个与辅助对象相关联的主对象被删除时,所有其辅助对象也将被自动地删除。
因此当接收到与删除该主对象有关的用户输入时,步骤S30,响应此而执行一些动作。该用户输入首先触发主对象的删除,步骤S30.1。
其次,由于该主对象已被删除,相关联的聚合对象集合也被删除,步骤S30.2。第三,也是由于该主对象已被删除,相关联的辅助对象集合被删除,步骤S30.3。因此,该主对象的删除触发了所有相关联的聚合对象和所有相关联的辅助对象自动地被删除。
类似地,从这些辅助对象到该聚合的绑定不能被个别地和/或单独地删除。因而,这些绑定将被保持直至该主对象被删除。这只在当这些绑定被指定为不可修改的时候适用。
将认识到,本领域的普通技术人员可以用多种方式修改上述实施例并且仍然使用上述实施例所示的本发明的优点。因此,本发明不限于所展示的实施例,而应该只由所附权利要求书所定义。

Claims (14)

1.一种用于在具有层级对象结构的面向对象的编程环境中定义对象类型的方法,该方法包括:
-为所述对象类型声明一个基类型;
-为所述对象类型声明属性;
-声明一个聚合对象集合,该聚合对象集合包括与所述对象类型相关联的不同类型的多个个体对象,其中所述聚合对象集合将在由所述对象类型创建的一个主对象中被实例化;
-声明一个辅助对象集合,该辅助对象集合包括不同类型的多个个体对象并与所述对象类型相关联;以及
-实例化所述对象类型,由此在所述层级对象结构的一个第一位置创建所述主对象,并且响应于所述实例化
○在所述主对象内创建所述聚合对象集合;
○创建所述辅助对象集合;
○在所述层级对象结构中的对应位置实例化所述辅助对象集合的多个个体对象;以及
○在所述对应位置保存所述辅助对象集合的所述多个个体对象。
2.根据权利要求1所述的方法,进一步包括:
-基于所述对象类型指定所述辅助对象的属性;以及
-基于所述对象类型确定所述辅助对象的哪些所述属性为用户可修改的,以及所述辅助对象的哪些所述属性为用户不可修改的。
3.根据权利要求2所述的方法,进一步包括:
-响应于与一个可修改属性有关的用户输入,修改所述可修改属性。
4.根据权利要求1所述的方法,进一步包括:
-防止创建的所述辅助对象集合被删除,除非所述主对象被删除。
5.根据权利要求1所述的方法,进一步包括:
-接收与删除所述主对象有关的用户输入,并且响应于此
○删除所述主对象;
○删除所述聚合对象集合;以及
○删除所述辅助对象集合。
6.根据权利要求1所述的方法,进一步包括:
-声明所述对象类型与所述聚合对象集合之间的至少一个引用。
7.根据权利要求1所述的方法,进一步包括:
-声明所述对象类型与所述辅助对象集合之间的至少一个引用。
8.根据权利要求1所述的方法,进一步包括:
-声明所述聚合对象集合与所述辅助对象集合之间的至少一个引用。、
9.根据权利要求6至8中任意一项所述的方法,进一步包括:
-独立于所述聚合对象集合和/或所述辅助对象集合被实例化的位置保持声明的所述至少一个引用。
10.根据权利要求6至8中任意一项所述的方法,进一步包括:
-独立于所述聚合对象集合和/或所述辅助对象集合是否被移动保持声明的所述至少一个引用。
11.根据权利要求1所述的方法,进一步包括:
-为所述辅助对象集合中的每个对象提供一个到所述基类型的链接,使得能够从所述每个对象导航到声明所述辅助对象集合的所述基类型。
12.根据权利要求1所述的方法,进一步包括:
-将所述辅助对象集合中的每个对象与一个可视指示相关联,该可视指示指示所述每个对象是一个辅助对象。
13.一种在具有层级对象结构的面向对象的编程环境中用于在其中定义对象类型的工具,该工具包括:
-用于为所述对象类型声明一个基类型的装置;
-用于为所述对象类型声明属性的装置;
-用于声明一个聚合对象集合的装置,该聚合对象集合包括与所述对象类型相关联的不同类型的多个个体对象,其中所述聚合对象集合将在由所述对象类型创建的一个主对象中被实例化;
-用于声明一个辅助对象集合的装置,该辅助对象集合包括不同类型的多个个体对象并与所述对象类型相关联;以及
-用于实例化所述对象类型的装置,由此在所述层级对象结构的一个第一位置创建所述主对象,以及用于响应于所述实例化而进行以下动作的装置
○在所述主对象内创建所述聚合对象集合;
○创建所述辅助对象集合;
○在所述层级对象结构中的对应位置实例化所述辅助对象集合的多个个体对象;以及
○在所述对应位置保存所述辅助对象集合的所述多个个体对象。
14.一种存储在非暂态计算机可读介质上的计算机程序产品,其包括多个软件指令,当在计算机中运行时这些软件指令执行根据权利要求1至12中任意一项所述的方法。
CN2011800587015A 2010-12-15 2011-12-02 面向对象的编程环境中对象的定义 Pending CN103329096A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10195061A EP2466455A1 (en) 2010-12-15 2010-12-15 Definition of objects in object-oriented programming environments
EP10195061.6 2010-12-15
PCT/EP2011/071619 WO2012080002A1 (en) 2010-12-15 2011-12-02 Definition of objects in object-oriented programming environments

Publications (1)

Publication Number Publication Date
CN103329096A true CN103329096A (zh) 2013-09-25

Family

ID=43859710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011800587015A Pending CN103329096A (zh) 2010-12-15 2011-12-02 面向对象的编程环境中对象的定义

Country Status (5)

Country Link
US (1) US20130275941A1 (zh)
EP (1) EP2466455A1 (zh)
CN (1) CN103329096A (zh)
AU (1) AU2011344503A1 (zh)
WO (1) WO2012080002A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107871230A (zh) * 2016-09-23 2018-04-03 西门子公司 创建工程项目的自动化工程系统、方法和计算机程序产品
CN108459552A (zh) * 2018-01-31 2018-08-28 南京拓控信息科技股份有限公司 一种智能化面向对象的可编程的自动化控制方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9031956B2 (en) * 2012-04-18 2015-05-12 Salesforce.Com, Inc. Mechanism for facilitating conversion and correction of data types for dynamic lightweight objects via a user interface in an on-demand services environment
US10223163B2 (en) 2016-07-14 2019-03-05 Microsoft Technology Licensing, Llc Workflow-based object destruction

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978579A (en) * 1997-08-12 1999-11-02 International Business Machines Corporation Architecture for customizable component system
US20030090018A1 (en) * 2001-09-29 2003-05-15 Bulgrin Thomas C. OO control for injection molding machine
US20060235867A1 (en) * 2002-07-20 2006-10-19 Microsoft Corporation Map and data location provider
US20090125546A1 (en) * 2000-04-04 2009-05-14 Jose Iborra Automatic software production system
CN101546290A (zh) * 2009-04-30 2009-09-30 上海交通大学 提高面向对象型软件中类阶层质量预测准确度的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU639802B2 (en) * 1990-08-14 1993-08-05 Oracle International Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
US5999972A (en) * 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US5960438A (en) 1997-05-06 1999-09-28 International Business Machines Corp. Class hierarchy for object aggregation representation of relational database rows with cells having nontraditional datatypes
US8015547B2 (en) * 2006-06-29 2011-09-06 Augusta Systems, Inc. Reconfigurable, hierarchical component-based architecture and framework and methods for rapidly developing sensor device-enabling software applications
CA2889387C (en) * 2011-11-22 2020-03-24 Solano Labs, Inc. System of distributed software quality improvement

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978579A (en) * 1997-08-12 1999-11-02 International Business Machines Corporation Architecture for customizable component system
US20090125546A1 (en) * 2000-04-04 2009-05-14 Jose Iborra Automatic software production system
US20030090018A1 (en) * 2001-09-29 2003-05-15 Bulgrin Thomas C. OO control for injection molding machine
US20060235867A1 (en) * 2002-07-20 2006-10-19 Microsoft Corporation Map and data location provider
CN101546290A (zh) * 2009-04-30 2009-09-30 上海交通大学 提高面向对象型软件中类阶层质量预测准确度的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107871230A (zh) * 2016-09-23 2018-04-03 西门子公司 创建工程项目的自动化工程系统、方法和计算机程序产品
CN108459552A (zh) * 2018-01-31 2018-08-28 南京拓控信息科技股份有限公司 一种智能化面向对象的可编程的自动化控制方法
CN108459552B (zh) * 2018-01-31 2021-07-23 南京拓控信息科技股份有限公司 一种智能化面向对象的可编程的自动化控制方法

Also Published As

Publication number Publication date
AU2011344503A1 (en) 2013-06-13
US20130275941A1 (en) 2013-10-17
EP2466455A1 (en) 2012-06-20
WO2012080002A1 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
US7657404B2 (en) Engineering method and system for industrial automation systems
US7089256B2 (en) Universal data editor
US7974896B2 (en) Methods, systems, and computer program products for financial analysis and data gathering
CA2971784A1 (en) Healthcare workflow system
Berardinelli et al. Model-driven systems engineering: Principles and application in the CPPS domain
WO2008060511A1 (en) Software development system and method for intelligent document output based on user-defined rules
US7581226B2 (en) Software application software architecture and method for the construction of software applications especially for measuring systems
WO2007090811A2 (en) Method, program and apparatus for supporting inter-disciplinary workflow with dynamic artifacts
US20160103660A1 (en) Metadata based eventing
EP2808784A1 (en) A system and a method for creating a graphical user interface within a manufacturing execution system (MES)
JP5614843B2 (ja) ソフトウェア設計・運用統合管理システム
CN101990659A (zh) 关联元数据模型表示和资产逻辑模型表示的系统及方法
CN103329096A (zh) 面向对象的编程环境中对象的定义
Bin et al. A research on open CNC system based on architecture/component software reuse technology
Johannesson et al. Application and Process Integration–Concepts, Issues, and Research Directions
US7831316B2 (en) Device and method for programming and/or executing programs for industrial automation systems
CN104977906B (zh) 用制造执行系统控制制造工厂
US8066194B2 (en) System and method for managing information
US10303144B2 (en) Object creation in process control systems
EP2608020A1 (en) Customizing a GUI of a MES screen
Füricht et al. A component-based application framework for manufacturing execution systems in C# and .NET
Rigger et al. Facilitating Configuration Model Formalization based on Systems Engineering.
Koschmider et al. A Petri net-based view on the business process life-cycle
Ferreira et al. Virtual enterprise process monitoring: an approach towards predictive industrial maintenance
KR101062258B1 (ko) 실시간 이벤트 패턴 처리기를 이용한 전사적 자원 관리 업무 프로그램 개발 방법

Legal Events

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

Application publication date: 20130925