定义扩展特征【用户示例】
摘要本文讨论CAAFmExtDefineExtensions用例。该用例详细说明了在特征目录中定义扩展特征所涉及的各个步骤。其前提条件是理解基本的特征建模器概念1、扩展特征2、特征启动项3以及创建启动项目录4。通过此用例您将学到什么在CAAFmExtDefineExtensions用例中用户将学习定义扩展特征并进一步生成特征目录的步骤。关键学习点包括理解包含扩展特征定义的OSM文件的重要性。学习使用CATfctEditorAssistant工具来生成特征目录。CAAFmExtDefineExtensions用例CAAFmExtDefineExtensions是CAAFeatureModelerExt.edu框架中的一个用例用于展示FeatureModelerExt框架的功能。CAAFmExtDefineExtensions的功能是什么CAAFmExtDefineExtensions的目标是演示如何创建扩展特征。该用例将定义两个新的特征目录每个目录包含一组不同的扩展特征。下图展示了第一个特征目录的内容该用例创建的目录包含扩展特征的定义。目录CAAOsmExt1Catalog包含了两个扩展特征的定义分别是CAAOsmHistoricalNovel历史小说和CAAOsmBiographicalNovel传记小说如图所示图 1: CAAOsmExt1Catalog.CATfct目录CAAOsmHistoricalNovel的特征是一个字符串类型的属性Epoch时代代表小说所基于的历史时期。CAAOsmBiographicalNovel扩展特征继承自CAAOsmHistoricalNovel。它具有两个属性Epoch字符串类型从父特征继承的属性。Domain字符串类型由扩展特征显式添加的属性。代表传记所基于的领域。第二个特征目录CAAOsmExt2Catalog的内容如下所示。图 2: CAAOsmExt2Catalog.CATfct目录CAAOsmChildrensNovel儿童小说是一个扩展特征其扩展属性是整数类型的AgeGroup年龄组。如何启动CAAFmExtDefineExtensions要启动CAAFmExtDefineExtensions首先需要设置运行时环境。具体步骤详见用例《创建启动项目录》4。$ mkrun -c cmd $cdyour_workspace_root $# 确保运行时视图包括连接目录中不存在之前的特征目录文件$rmOS_directory/resources/graphic/CAAOsmExt1Catalog.CATfct我们使用命令mkrun -c cmd启动一个已设置mkrun环境的子控制台cmd是Windows控制台命令解释器Unix上的等效命令是sh。接着切换到工作空间目录并删除我们接下来打算创建、但可能已存在于工作空间运行时视图或连接目录中的所有特征目录CATfct文件。在本例中我们运行rm命令删除CAAOsmExt1Catalog.CATfct。$# 创建空特征目录$ CATfctEditorAssistant -create-new-catalog -catalog-name CAAOsmExt1Catalog.CATfct -with-client-id CAAOsmClientId1 -into-directory$PWD/OS_directory/resources/graphic接下来我们启动CAA安装RTV5中可用的CATfctEditorAssistant可执行文件。我们首先在-into-directory标志指定的地址中创建一个新的空特征目录。font colorredclientID客户端ID是生成新目录过程的关键输入/font。此后只有在验证了输入的客户端ID后客户端才被授权访问特征目录。$# 将空特征目录描述为一个OSM文件。$ CATfctEditorAssistant -describe-as-osm -catalog-name CAAOsmExt1Catalog.CATfct -with-client-id CAAOsmClientId1 -as CAAOsmExt1Catalog.osm -into-directory$PWD在更新流程特征目录添加数据之前将特征目录转换到一个OSM文件中。$# 使用InputData osm文件升级空特征目录。请注意升级后的特征目录将输出到指定地址中$ CATfctEditorAssistant -update-catalog CAAOsmExt1Catalog.CATfct -with-client-id CAAOsmClientId1 -with-osm$PWD-into-directory$PWD继续使用更新后的OSM文件作为输入来升级特征目录。上一步输出的OSM文件已更新了所有扩展特征。升级后的目录CAAOsmExt1Catalog.CATfct则在您通过-into-directory标识指定的目录中生成。只有成功验证了输入的客户端ID目录的升级才会返回SUCCESS。$# 删除空的特征目录和osm文件$rmOS_directory/resources/graphic/CAAOsmExt1Catalog.CATfct $rm$PWD/CAAOsmExt1Catalog.osm $# 将更新后的目录移动到运行时视图中$mv$PWD/CAAOsmExt1Catalog.CATfct OS_directory/resources/graphic/CAAOsmExt1Catalog.CATfct最后我们删除不再相关的空OSM和空特征目录文件。注意CATfctEditorAssistant以下列不同的方式处理目录参数输入时目录参数会被剥离其目录路径然后在运行时视图中查找。在您的工作空间级别就是目录文件必须放在以下地址否则生成OSM文件失败workspace_root/OS_directory/resources/graphic。输出时目录被写入到目录参数指定的位置。在工作空间中存储目录的位置是framework/CNext/resources/graphic。在此地址位于工作空间文件夹内中找到的任何特征目录都会由mkrtv命令自动复制到运行时视图workspace_root/OS_directory/resources/graphic。上述过程将创建扩展特征目录CAAOsmExt1Catalog.CATfct。要创建扩展特征目录CAAOsmExt2Catalog.CATfct请重复相同的过程只需将CAAOsmClientId1、CAAOsmExt1Catalog.osm和CAAOsmExt1Catalog.CATfct分别替换为CAAOsmClientId2、CAAOsmExt2Catalog.osm和CAAOsmExt2Catalog.CATfct。在哪里可以找到CAAFmExtDefineExtensions的OSM文件对应两个扩展特征目录的两个OSM文件都位于CAAFeatureModelerExt.edu框架的InputData目录中InstallRootFolder/CAAFeatureModelerExt.edu/InputData其中InstallRootFolder5是您API安装的根文件夹。分步说明此用例中创建了两个扩展特征目录。CAAFmExtDefineExtensions 包含3个逻辑步骤定义启动项1定义启动项2生成特征目录定义启动项1每个扩展特征目录都有一个关联的OSM文件。OSM文件中定义了扩展特征。与CAAOsmExt1Catalog关联的CAAOsmExt1Catalog.osm文件内容如下所示。它定义了CAAOsmHistoricalNovel和CAAOsmBiographicalNovel扩展特征。document CAAOsmExt1Catalog.CATfct { container RootCont #root { feature CAAOsmHistoricalNovel #startup #extension { #creation::parametermetadata_NovelExtn string Epoch EpochMiddle Ages } feature CAAOsmBiographicalNovel CAAOsmHistoricalNovel #startup #extension { string Domain DomainMusic } } ...您首先可能注意到的是#extension标签它指定该启动项是一个扩展启动项而不是常规启动项。另一点是启动项可以派生自另一个启动项如此例中CAAOsmBiographicalNovel继承自 CAAOsmHistoricalNovel。 此外CAAOsmHistoricalNovel特征关联了一个字符串类型的属性Epoch其默认值设置为Middle Ages。 而CAAOsmBiographicalNovel特征关联了一个字符串类型的属性Domain其默认值设置为Music。 然后请注意CAAOsmHistoricalNovel的元数据声明#creation::parameter。继承自CAAOsmHistoricalNovel的CAAOsmBiographicalNovel继承了相同的元数据metadata metadata_NovelExtn { ContType CAAFmExtApplication1 Container CAAFmExtApplication1 Extends [CAAOsmNovel] IsLocal true } } // OSM 结束 ...因此CAAOsmHistoricalNovel和CAAOsmBiographicalNovel可以成为CAAOsmNovel特征的本地扩展特征在应用容器CAAFmExtApplication1内实例化。注意元数据必须包含这4行ContType/Container/Extends/IsLocal当您创建/升级osm文件时可以省略。定义启动项2与CAAOsmExt2Catalog关联的CAAOsmExt2Catalog.osm文件内容如下所示。它定义了CAAOsmChildrensNovel扩展。document CAAOsmExt1Catalog.CATfct { container RootCont #root { feature CAAOsmChildrensNovel #startup #extension { #creation::parametermetadata_ChildrensNovelExtn int AgeGroup AgeGroup12 } } }CAAOsmChildrensNovel被定义为一个扩展特征其特征是一个整数类型的属性AgeGroup默认值设置为12。由#creation::parameter刻面声明的元数据如下metadata metadata_ChildrensNovelExtn { ContType CAAFmExtApplication2 Container CAAFmExtApplication2 Extends [CAAOsmNovel] IsLocal true } } // OSM 结束 ...生成目录既然我们已经为目录创建了OSM文件下一步就是生成目录。CAA安装RTV中提供的CATfctEditorAssistant工具可以生成新目录。前面关于如何启动该用例的部分更详细地介绍了这一步骤。简而言之该用例详细说明了定义扩展特征并随后生成目录所涉及的步骤。在此过程中用户了解到以下内容的重要性OSM文件可由最终用户编辑包含扩展特征的定义。CATfctEditorAssistant工具用于生成特征目录。历史版本版本1 [2000年2月] 文档创建版本2 [2005年2月] 为新接口更新文档版本3 [2019年6月] 应用创建新目录时不创建OSM文件的规则特征建模器概念 ↩︎理解扩展特征 ↩︎建模启动项 ↩︎在目录中创建启动项 ↩︎ ↩︎构建和启动用例 ↩︎ ↩︎

相关新闻

使用扩展特征【用户示例】

使用扩展特征【用户示例】

摘要 本文讨论了CAAFmExtExtensionManagement用例。它主要处理扩展特征的相关操作。这些扩展特征是在《定义扩展特征》1中定义的。 理解本用例的先决条件是理解扩展特征的概念2。 您将通过本用例学习什么 本用例教授用户如何操作扩展特征。主要学习内容如下: 为…

2026/7/6 4:58:34 阅读更多 →
理解扩展特征【技术文档】

理解扩展特征【技术文档】

摘要 本文详细介绍了将一个特征(称为基础特征)通过另一个特征(称为扩展特征)进行扩展的机制。 概念 一张解释概念的图片: 图.1 概念 基础特征可以是任何类型的特征,可以是达索系统的原始特征也可以是用户…

2026/7/5 22:15:46 阅读更多 →
云智慧Cloudwise X1 轮足机器人重磅发布:跨楼层全自动巡检,重塑数据中心运维范式

云智慧Cloudwise X1 轮足机器人重磅发布:跨楼层全自动巡检,重塑数据中心运维范式

随着算力需求激增,数据中心规模快速扩张,传统人工巡检正面临漏检率高、人才流动快、合规追溯难、老旧机房改造成本高等系统性瓶颈。从纸质记录到手持PDA,再到自主巡检机器人,运维方式的智能化演进,已成为行业共识。当轮…

2026/7/3 18:36:32 阅读更多 →

最新新闻

GBase 8a之gcrcman在非原集群上恢复时遇到拓扑结构检查不一致的问题及其解决方案

GBase 8a之gcrcman在非原集群上恢复时遇到拓扑结构检查不一致的问题及其解决方案

问题描述: gcrcman在非原集群上恢复时,会遇到拓扑结构检查与元集群不一致的问题。 问题原因: 原集群和待恢复集群的拓扑结构存在差异,导致无法恢复。 拓扑对比的前提: gcrcman 是按照2个集群的拓扑结构的字符串进行比对…

2026/7/7 0:31:36 阅读更多 →
DocMate实战指南:从零开始构建openEuler项目文档的完整流程

DocMate实战指南:从零开始构建openEuler项目文档的完整流程

DocMate实战指南:从零开始构建openEuler项目文档的完整流程 【免费下载链接】docmate An AI-powered VS Code extension for intelligent document creation in openEuler community. 项目地址: https://gitcode.com/openeuler/docmate 前往项目官网免费下载…

2026/7/7 0:31:36 阅读更多 →
Paperxie 聊毕业论文 AI 写作|学长学姐实测,一步一步写学位论文真的省心

Paperxie 聊毕业论文 AI 写作|学长学姐实测,一步一步写学位论文真的省心

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/科研绘图毕业论文 - PaperXie智能写作PaperXieAi论文智能生成软件,10分钟生成万字毕业论文、期刊论文、文献综述、PPT,Aigc查重、降重报告、文献资料。只需一个标题,从开…

2026/7/7 0:29:34 阅读更多 →
如何轻松为任何游戏注入自定义插件:终极ASI加载器完整指南

如何轻松为任何游戏注入自定义插件:终极ASI加载器完整指南

如何轻松为任何游戏注入自定义插件:终极ASI加载器完整指南 【免费下载链接】Ultimate-ASI-Loader The Ultimate ASI Loader is a proxy DLL that loads custom .asi libraries into any game process. 项目地址: https://gitcode.com/gh_mirrors/ul/Ultimate-ASI-…

2026/7/7 0:29:34 阅读更多 →
Monorepo 工程化实战:Turborepo + pnpm 的全栈项目组织与构建缓存

Monorepo 工程化实战:Turborepo + pnpm 的全栈项目组织与构建缓存

Monorepo 工程化实战:Turborepo pnpm 的全栈项目组织与构建缓存 一、多仓库协作的效率黑洞:当你维护 5 个 npm 包时,改一行代码要跑几个 CI 全栈项目的常见组织方式是:前端一个仓库,后端一个仓库,共享类型…

2026/7/7 0:25:32 阅读更多 →
MediaCrawler:5分钟上手,一站式采集小红书、抖音、B站等主流平台数据

MediaCrawler:5分钟上手,一站式采集小红书、抖音、B站等主流平台数据

MediaCrawler:5分钟上手,一站式采集小红书、抖音、B站等主流平台数据 【免费下载链接】MediaCrawler-new 项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new 你是否在为新媒体数据分析而烦恼?想要批量获取小红书、…

2026/7/7 0:23:31 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻