基于模型的术语定义

news2024/11/24 17:18:24

文章仅供个人学习使用,请勿传播!
原文来源: 袁亦方· 大易方圆 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提供有力支撑。
    MBSE拼图(局部)
    图5 MBSE拼图(局部)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/871048.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL高阶知识点(一)一条SQL【更新】语句是如何执行的

一条SQL【更新】语句是如何执行的 首先,可以确定的说,【查询】语句的那一套流程,【更新】语句也是同样会走一遍,与查询流程不一样的是, 更新语句涉及到【事务】,就必须保证事务的四大特性:ACID&…

vite打包报错

先把报错信息附上 解决: 在报错的文件里加上ts就可以了

Python python文件打包exe文件

首先安装PyInstaller,在PyCharm终端窗口输入命令: pip install PyInstaller安装完成后,在输入命令: pyinstaller -F /Users/sunshiyu/Desktop/PYTHON/demo1.pydemo1.py是我创建的一个简单的Python文件,代码如下&#x…

数据结构:堆的应用(堆排序和topk问题)

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》 文章目录 堆排序建堆堆的删除思想排序代码实现 top k 问题思路代码实现 总结 堆排序 堆排序即是 先将数据建堆,再利用堆删除的思想来排序。 将待排序数组建堆将堆顶数据与数组尾部数…

【python】爬取豆瓣电影Top250(附源码)

前言 在网络爬虫的开发过程中,经常会遇到需要处理一些反爬机制的情况。其中之一就是网站对于频繁访问的限制,即IP封禁。为了绕过这种限制,我们可以使用代理IP来动态改变请求的来源IP地址。在本篇博客中,将介绍如何使用代理IP的技术…

RHEL 7配置HAProxy实现Web负载均衡

一、测试环境HAProxy: 主机名:RH7-HAProxy IP地址:192.168.10.20 操作系统:Red Hat Enterprise Linux Server release 7.2 (Maipo)最小化安装 防火墙与SELinux:关闭 安装的服务:HAProxy-1.5.14 WEB01: 主…

[管理与领导-12]:IT基层管理者 - 绩效面谈 - 如何面谈,遇到问题员工怎么办?

目录 前言: 第1章 问题现象 第一:面谈没效果 第二:问题没解决 第三:双方都不满 第2章 背后原因 1.1 面谈变成了训话:引导变成训话 1.2 面谈变成了扯皮:立足未来变成纠缠过去 1.3 面谈变成了双方较…

vite4+vue3:从0到1搭建vben后台管理系统(五)-封装属于自己的form组件

日常业务开发中的,避免不了的要接触到表单开发,那么我们有必要了解表单的深入使用方法,及封装出适合自己业务的自定义表单组件,效果如下: 不是用ele和antdvue框架,实现自己的表单组件!!! ValidateForm组件封装 <template><div class="validate-form…

c++学习(多线程)[33]

thread 本质封装操作系统的库 事实证明&#xff0c;两个线程在cpu中交错运行 thread传参为模板参数&#xff0c;应用折叠&#xff0c;都会变成左值&#xff0c;所以count还是0 sleep_until 在C中&#xff0c;没有直接的sleep_until函数&#xff0c;但可以使用std::th…

c++ 有元

友元分为两部分内容 友元函数友元类 友元函数 问题&#xff1a;当我们尝试去重载operator<<&#xff0c;然后发现没办法将operator<<重载成成员函数。因为cout的输出流对象和隐含的this指针在抢占第一个参数的位置。this指针默认是第一个参数也就是左操作 数了。…

dbm与mw转换

功率值10^(dBm值/10)&#xff0c;单位mW。 对于-5dBm&#xff0c;其功率值为0.3162 mW。 dBm 10 * lg(mW&#xff09;

C++ STL vector 模拟实现

✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;C之STL &#x1f525;<3>创作者&#xff1a;我的代码爱吃辣 ☂️<4>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<5>前言&#xff1a;上次我们已经数字会用…

创建多图层叠加效果的背景与人物图像

引言&#xff1a; 在现代应用程序开发中&#xff0c;图形资源的使用是非常常见的&#xff0c;特别是在用户界面设计中。通过使用TImageList和TGlyph组件的组合&#xff0c;我们可以实现令人印象深刻的多图层叠加效果。本文将介绍如何使用这两个组件来创建背景和人物的多图层叠加…

doubletrouble靶机通关详解

信息收集 漏洞发现 扫目录 发现secret路径 里面有个图 qdPM9.1 网上找找exp 反弹shell http://192.168.0.107//uploads/users/632300-backdoor.php?cmdecho "<?php eval(\$_POST[1]);?>" > 1.php 蚁剑连上去传php-reverse-shell.php 提权 优化shell…

企业微信爆出漏洞,公司员工被迫摸鱼

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 昨晚加班好好的&#xff0c;突然接到公司通知&…

不可能,绝对不可能

前言 有 2 个月未更了&#xff0c;读者朋友微信留言&#xff1a;“亮哥&#xff0c;最近是不是颓了&#xff1f;好久未更了” 我随即回复&#xff1a; 没想到这时兄弟发来了&#xff1a; 好吧&#xff0c;给大家汇报下近况&#xff0c;不枉大家一直激励我前行。 项目管理 前段时…

MySQL分表实现上百万上千万记录分布存储的批量查询设计模式

我们知道可以将一个海量记录的 MySQL 大表根据主键、时间字段&#xff0c;条件字段等分成若干个表甚至保存在若干服务器中。唯一的问题就是跨服务器批量查询麻烦&#xff0c;只能通过应用程序来解决。谈谈在Java中的解决思路。其他语言原理类似。这里说的分表不是 MySQL 5.1 的…

STM32入门学习之定时器PWM输出

1.脉冲宽度调制PWM(Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM可以理解为高低电平的占空比&#xff0c;即输出高电平时间与低电平时间的比值。PWM的应用是否广泛&#xff0c;比如在步进电机的控制中&#xff0c;可以通过P…

WebRTC本地视频通话使用ossrs服务搭建

iOS开发-ossrs服务WebRTC本地视频通话服务搭建 之前开发中使用到了ossrs&#xff0c;这里记录一下ossrs支持的WebRTC本地服务搭建。 一、ossrs是什么&#xff1f; ossrs是什么呢&#xff1f; SRS(Simple Realtime Server)是一个简单高效的实时视频服务器&#xff0c;支持RTM…

【佳佳怪文献分享】通过引导学会行走: 动态环境中的感知四足运动

标题&#xff1a;Learning to Walk by Steering: Perceptive Quadrupedal Locomotion in Dynamic Environments 作者&#xff1a;Mingyo Seo , Ryan Gupta , Yifeng Zhu , Alexy Skoutnev , Luis Sentis , and Yuke Zhu 来源&#xff1a;2023 IEEE International Conference …