基于模型的术语定义

news/2024/6/2 23:23:43 标签: MBSE, 中文术语标准化

文章仅供个人学习使用,请勿传播!
原文来源: 袁亦方· 大易方圆 OPM对象过程方法 2023-08-13 07:01 https://mp.weixin.qq.com/s/dUtuNLrMwFF_foCrQQyWmA

INCOSE系统工程手册第5版使用说明部分(内容对应第4版1.5节)提出: 系统工程从业者在项目中首要和最重要的职责之一是建立名称和术语,这些名称及术语支持系统及其元素、功能、操作及相关过程方面清晰而明确的沟通和定义。此外,为了在世界范围内促进系统工程领域的发展,有必要建立关于通用方法和术语的通用定义和理解,从而支持通用过程。随着越来越多的系统工程从业者接受并使用通用术语,系统工程将在沟通、理解以及最终的生产率方面得到改进。

术语定义无疑是重要的,同时也是极具挑战性的工作。对特定术语的定义会耗费人们巨大心力,描述术语体系中各个相关术语之间的语义关系同样会让人大费周章。任何领域的术语体系都是一个有机整体,孤立地定义及理解特定术语会有很大局限性,甚至根本无法发挥术语应有的作用。因此,清晰、准确地描述术语之间的关系同样非常重要。

术语体系实际上是一种专门的语言,它介于自然语言和形式化语言之间。在没有合适的形式化语言支持的情况下,用自然语言定义术语是自然的,也是不得已的。由此,自然语言的缺陷也必然影响对术语的定义,用自然语言定义术语所带来的模糊和歧义在所难免。

好在这种情况将有机会被扭转,这得益于对象过程语言(OPL)的助力。对象过程语言以三个高度抽象的语义——对象、过程和关系——为基础,构建严谨的概念建模语言,用它能对任何领域的任何系统作概念建模,同样也能对术语系统作概念建模。对象、过程和关系被对象过程方法(OPM)创立者Dov Dori教授称为“最小通用本体”,是在哲学层面对语义最基础的抽象。由于具备扎实的哲学基础,对象过程语言才有能力承担起术语定义这个重担。

下面以“功能”为例介绍如何使用对象过程语言定义术语。
“功能”是工程领域中一个基础而重要的术语。关于这个术语的语义,在本公众号此前的文章中曾经作过探讨。在此尝试用OPL语言再次定义这个术语,探索并验证基于模型定义术语的方法和效果,希望这种形式能让术语的语义更清晰,更准确,更有利于公众对定义达成一致的理解,进而有效消除因术语定义模糊和歧义造成的沟通障碍和沟通风险。用对象过程语言(OPL)定义“功能”的概念模型如下图。希望了解OPL更多知识的读者可以阅读“大易方圆 OPM对象过程方法”公众号其他文章。
术语“功能”的概念模型图1 术语“功能”的概念模型

所示模型对应的对象过程文本(OPT)为:

  • 一般功能和系统功能(特殊功能)都是一种功能;
  • 系统功能(特殊功能)是一种一般功能;
  • 一般功能包含过程和客体事物;
  • 过程影响客体事物;
  • 客体事物具备客体事物的特征;
  • 客体事物的特征可处于初始状态和预期状态;
  • 过程将客体事物的特征从初始状态变为预期状态;
  • 过程消耗资源;
  • 参与者负责实施过程;
  • 过程需要系统(SOI);
  • 系统(SOI)具备系统功能(特殊功能)。

关于上述定义,有几点尤其值得关注:
1)OPL语言是图文等价双模式的。OPT可以由建模软件依据图形式模型自动生成。图文对照阅读有助于最大多数的人理解并达成共识。这既包括领域专家,也包括用户、项目决策者等重要的非专业利益相关方。
2)用自然语言描述功能时总是用动宾短语,其中的动词表示过程,宾语表示过程所影响的客体事物。用模型定义功能时能绝对避免语法错误。
3)过程对客体事物的影响效果,具体体现为改变客体事物的特定特征。
4)一般功能是系统(SOI,System of interest)的依据,特殊功能是系统的特征。同样使用“功能”这个词,所要表达(也是所能表达)的两个意思是不同的。
5)在用模型定义“功能”这个术语时,涉及的某些模型元素可能也是术语,如图1中的参与者、资源、系统等。这意味着在模型中所有涉及的术语能相互解释,共同构成一个完整的术语体系。在这样的术语体系模型中,术语之间的语义关系被清晰而准确地表达出来。
6)图1所示模型不仅解释了“功能”及相关术语的含义,还可以作为系统建模的模板。只要将图1中的模型元素换成实际关注的事物,这个模型就能完全按照原来的形式被实例化为一个系统模型,例如图2所示。这能让术语概念模型成为系统概念模型的种子,有效地支持系统概念建模。对术语的定义和对术语的使用有机结合起来,所带来的益处是显而易见的——提高建模效率,促进模型内容的一致性,提高复杂系统模型的可读性和可维护性。

术语模型实例化
图2 术语模型实例化

所示模型对应的对象过程文本(OPT)为:

  • 运输货物和公路货运都是一种运输;
  • 公路货运是一种运输货物;
  • 运输货物包含移动和货物;
  • 移动影响货物;
  • 货物具备货物的地点等特征;
  • 货物的地点可处于起点和终点;
  • 移动将货物的地点从起点变为终点;
  • 移动消耗汽油;
  • 司机负责实施移动;
  • 移动需要汽车;
  • 汽车具备公路货运特征(功能)。
  • 另一个例子是对“系统”的定义,其概念模型如下图所示。术语“系统”的概念模型
    所示模型对应的对象过程文本(OPT)为:
  • 系统是一种事物。
  • 1个系统包括2个以上系统元素和1个以上关系。
  • 1个关系与2个以上系统元素相关。
  • 系统元素可以包括系统元素。

基于模型定义术语并不排斥用自然语言定义术语。形式化的概念模型虽然严谨,但其定义往往不够细腻,需要用自然语言作必要的注释。例如针对图2所示的概念模型,可以针对“系统”这个模型元素增加注释如“系统是由相互关联的元素组成的整体”。这就像程序员编写代码时要对代码加注释一样,缺乏必要的注释会使代码的可读性变差。图文等价的双模式模型与自然语言注释相结合,能进一步提高可读性。

此前在定义术语体系时,常用的方式是对每个术语作条目化解释,当条目中涉及其他术语时,则用术语编号或超级链接的形式表示相互引用关系。如对象过程方法(OPM)标准ISO/PAS 19450就采用这种形式表示术语之间的引用关系,如图4。这种形式虽然描述了术语语义之间具备相关性,但对关系的语义则缺乏明确描述,即只表明它们相关,却未能说明到底是什么关系。图1和图3所示模型则完全弥补了这个不足,模型中所有模型元素之间的关联关系本身的语义都是清晰而明确的。从使用自然语言定义术语,到基于模型定义术语,这种差异和进步是革命性的。

此前在定义术语体系时,常用的方式是对每个术语作条目化解释,当条目中涉及其他术语时,则用术语编号或超级链接的形式表示相互引用关系。如对象过程方法(OPM)标准ISO/PAS 19450就采用这种形式表示术语之间的引用关系,如图4。这种形式虽然描述了术语语义之间具备相关性,但对关系的语义则缺乏明确描述,即只表明它们相关,却未能说明到底是什么关系。图1和图3所示模型则完全弥补了这个不足,模型中所有模型元素之间的关联关系本身的语义都是清晰而明确的。从使用自然语言定义术语,到基于模型定义术语,这种差异和进步是革命性的。

ISO/PAS 19450标准术语定义形式
图4 ISO/PAS 19450标准术语定义形式

在基于文档开展复杂系统研发时,就同一个项目和系统要编制大量文档,它们共同构成一个完整的文档体系。对术语的统一定义是理解这些文档的必要基础。不过,常常令人遗憾的是,不同文档之间对术语的定义难以统一。文档的很多编写人员常常背对背并行工作,尤其是跨部门甚至跨企业组建项目团队时,这种情况更加普遍,由此造成术语定义混乱几乎是必然的。为了确保术语体系的一致性,应该专门编写术语定义类文件,并公开发布。其它文件只能通过引用将相关术语的定义纳入文件内容,而不能擅自定义公共术语。除非涉及的术语仅限于所编写的一份文件使用,实际上这种情况非常少见。

在基于模型开展复杂系统研发时,如果按照本文提出的方式使用模型定义术语,则应该建立专门的术语定义模型库。对模型库中的术语借鉴面向对象方法中关于命名空间及可见性方面的规则管理,即将术语的可见性分为三种并分别管理:

  • 公开的(+Public)术语:对整个组织或项目团队可见,对所有模型有效。
  • 保护的(#Protected)术语:对特定模型及引用该模型的模型有效。
  • 私有的(-Private)术语:只对特定模型有效。
    基于模型的术语定义作为基于模型的系统工程(MBSE)中一块重要拼图,术语模型几乎可以在其他所有模型中发挥作用,确保对系统整体形成一致的理解,为MBSE提供有力支撑。
    <a class=MBSE拼图(局部)" />
    图5 MBSE拼图(局部)

http://www.niftyadmin.cn/n/4936070.html

相关文章

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制参数 之前搭建ossrs服务&#xff0c;可以查看&#xff1a;https://blog.csdn.net/gloryFlow/article/details/132257196 之前实现iOS端调用ossrs音视频通话&#xff0c;可以查看&#xff1a;https://blog.csdn.net/gloryFlo…

typeScript 之 String

工具&#xff1a; PlayGround 源码&#xff1a; GitHub TypeScript String 在TypeScript中&#xff0c; string作为基础的字符串类型&#xff0c; 使用单引号(‘’)或双引号(“”)来包含字符串&#xff0c;使用反引号()来格式化文本或内嵌表达式&#xff0c; 存储的是UTF-16字…

2023国赛数学建模思路 - 复盘:人力资源安排的最优化模型

文章目录 0 赛题思路1 描述2 问题概括3 建模过程3.1 边界说明3.2 符号约定3.3 分析3.4 模型建立3.5 模型求解 4 模型评价与推广5 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 描述 …

【JVM】JVM 调优的参数都有哪些?

文章目录 1. 设置堆空间大小2. 虚拟机栈的设置3. 年轻代中Eden区和两个Survivor区的大小比例4. 年轻代晋升老年代阈值5. 设置垃圾回收收集器 1. 设置堆空间大小 设置堆的初始大小和最大大小&#xff0c;为了防止垃圾收集器在初始大小、最大大小之间收缩堆而产生额外的时间&…

2023-08-13力扣每日一题

链接&#xff1a; 88. 合并两个有序数组 题意&#xff1a; 如题 解&#xff1a; 从后往前&#xff08;从大到小&#xff09;插入排序&#xff0c;这样就不会影响原先的有序性 实际代码&#xff1a; #include<bits/stdc.h> using namespace std; void merge(vector…

Unity框架学习--2

接上文 IOC 容器是一个很方便的模块管理工具。 除了可以用来注册和获取模块&#xff0c;IOC 容器一般还会有一个隐藏的功能&#xff0c;即&#xff1a; 注册接口模块 抽象-实现 这种形式注册和获取对象的方式是符合依赖倒置原则的。 依赖倒置原则&#xff08;Dependence I…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的固定帧率(C++)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的固定帧率&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的固定帧率功能的技术背景CameraExplorer如何查看相机固定帧率功能在BGAPI SDK里通过函数设置相机固定帧率 Baumer工业相机通过BGAPI SDK设置相机固定帧…

大语言模型控制生成的过程Trick:自定义LogitsProcessor实践

前言 在大模型的生成过程中&#xff0c;部分原生的大语言模型未经过特殊的对齐训练&#xff0c;往往会“胡说八道”的生成一些敏感词语等用户不想生成的词语&#xff0c;最简单粗暴的方式就是在大模型生成的文本之后&#xff0c;添加敏感词库等规则手段进行敏感词过滤&#xf…