网站建设公司果动c虚拟机wordpress建站
网站建设公司果动c,虚拟机wordpress建站,正规手游代理商,聊天网站开发摘要
本文介绍了特征更新机制的主要概念。
基本概念
规格-结果 模型
在 “Spec-Result” 规格-结果范式#xff08;spec是specification 的缩写#xff09;中#xff0c;一个特征完全由其规格定义#xff0c;并且能够在任何时刻计算其结果。
例如#xff0c;一个圆可…摘要本文介绍了特征更新机制的主要概念。基本概念规格-结果 模型在 “Spec-Result” 规格-结果范式spec是specification 的缩写中一个特征完全由其规格定义并且能够在任何时刻计算其结果。例如一个圆可以以圆心和半径值作为其规格而其结果是其轮廓如下图所示图1 规格/结果规格也可以称为输入结果也可以称为输出。特征的规格可以是原始属性布尔值、整数…其他特征其他特征的属性其他特征的结果特征的结果是一个宽泛的概念对于机械特征它是其生成的几何数据。对于知识公式它是其输出参数。对于知识规则它是脚本运行期间执行的操作对于许多结构特征无结果由于特征的结果是定义该特征的应用程序的内在概念它并未被特征建模器形式化或管理。这种分离允许将规格-结果模型视为一个其结果可以异步计算的参数化系统。构建构建是特征根据其规格计算相应结果的过程。此过程只能由拥有该特征的应用程序实现并且不能直接调用。更多信息请阅读文章 “构建一个特征”1特征在其构建过程中使用的规格也可以是其他特征构建过程计算出的结果。例如一个圆可以由一个长度和一个点组成而这个点本身又是一个以坐标作为输入的特征。首先必须构建点然后才能使用一个有效的点作为输入来更新圆。这种递归性由更新引擎管理。更新更新过程的目的是确保在构建过程中使用特征的规格之前这些规格是有效的。因此更新引擎可以被看作是一个构建调度器能够以正确的顺序启动特征网络的构建过程。下图通过一个圆柱体说明了这个顺序。圆柱体一个特征由高度实数值和一个圆组成。而圆一个特征又由半径实数值和一个点一个特征组成。图2 构建顺序当您请求更新圆柱体时首先更新点然后更新圆最后更新圆柱体。与构建过程相反更新不能被定制但可以被应用程序直接调用。更新状态一个被更新引擎称为最新的特征其结果是与其规格是匹配的。相反的状态是过时。更新机制能力与限制更新引擎构建在特征建模器之上因此所有特征即使是那些从头创建的特征都能受益于此引擎。更新引擎在所有通过其特征建模器链接连接的特征之间创建了一个依赖关系图。因此依赖关系图的内省是完全集中化、健壮的并且能够抵抗应用程序软件/模型的修改。更新过程不是上下文相关的只要应用程序的构建过程不变它在命令中或在批处理过程中将以相同的方式工作。更新算法更新引擎可以概括为以下一句话“一个特征是最新的当且仅当其所有输入都是最新的并且其构建过程成功”。这引出了以下三种算法IsUpToDateUpdateImpact PropagationIsUpToDateIsUpToDate 算法用于检索特征的更新状态。最新意味着特征的结果与其规格一致。因此构建一个最新的特征是徒劳的因为其构建过程将产生完全相同的结果。一个特征处于最新状态当且仅当它的规格是最新的它已被成功构建自上次构建以来其规格未被更改最新状态可以通过以下方法检索CATFmFeatureFacade::IsUpToDate框架 FeatureModelerExtDataCommonProtocolServices::IsUpToDate框架 DataCommonProtocolUseUpdateUpdate 算法用于计算特征的结果。如果特征已经是最新的则不执行任何操作。它是将特征的更新状态从过时更改为最新的唯一方法。 Update 算法是步骤1递归更新所有规格步骤2调用构建过程步骤3将特征状态更改为最新显然如果任何一个步骤失败特征将保持过时状态。Update 可以通过以下方法调用CATFmFeatureFacade::Update框架 FeatureModelerExtDataCommonProtocolServices::Update框架 DataCommonProtocolUseImpact Propagation当一个特征的规格被修改时该特征变为过时。递归地所有以该第一个特征作为规格的特征也应该变为过时。影响传播算法是步骤1将特征的更新状态更改为过时步骤2递归地将影响链上特征的更新状态更改为过时这项工作由影响传播机制同步执行并避免了每次检索更新状态时对图的深度遍历。在[图.2]的例子中假设您修改了点的一个坐标。圆立即变为过时并且递归地圆柱体也变为过时。请注意即使规格的修改对特征的结果没有影响整个影响关系图也将变为过时。例如[图.2]您将点的一个坐标替换为相同的值。但是尽管它们各自的结果仍然有效圆和圆柱体还是变为过时。特征建模器不知道应用程序的语义。没有办法显式调用影响传播。当修改对更新引擎可见的属性时它将由特征建模器自动启动。与其它特征建模器机制的集成持久性更新状态是持久化的这意味着您可以保存过时的数据并在另一个会话中更新它们。撤销/重做更新是可撤销的。如果特征结果不由特征建模器属性这些属性也是可撤销的持有则由应用程序负责管理可撤销性。实例化创建实例化后特征不是最新的因为它从未被构建/更新过。数据交换 (CCP/协作)原生的特征建模器 CCP/协作实现会创建如同实例化过时的特征。简而言之本文介绍了特征更新机制的基础知识。历史记录版本1 [2010年6月] 文档创建构件示例 ↩︎