第六章 包图组织模型|系统建模语言SysML实用指南学习

news2025/1/21 15:28:19

仅供个人学习记录

概述

包是容器的一个例子。包中的模型元素称为可封装元素,这些元素可以是包、用例和活动。由于包本身也是可封装元素,因此可以支持包层级。
每个有名称的模型元素也必须是命名空间的一份子,命名空间使得每个元素均能够通过名称被唯一识别。

有效的模型组织包含了模型元素的重用,并能在模型元素间方便访问与导航。

包图

标题
pkg [model element kind] package name [diagram name]
pkg:图类型
model element kind:模型元素类型可以是模型、包或模型库

应用包图定义包

包package是其他模型元素的容器,有一个名称和可选URI,将包作为可访问的web资源唯一识别。
包内的模型元素被称为可封装元素packageable element

SysML 包含了模型库model library的概念,包可以设计为包含可重用元素

包层级的组织

模型层级应当给予一系列组织原则。

  • 系统层级
  • 生命周期过程,每个模型子包均代表过程某个阶段
  • 团队划分,如需求团队、集成产品团队
  • 包含的模型元素类型,如模型库
  • 根据已定义的模型划分准则,形成的具有其他逻辑或内聚分组的模型元素

包容containment:带交叉十字圈㊉的直线表示,交叉十字圈连接包容端(父端)

包图可封装元素的表示

包图可用于展示可封装元素,可封装元素通常用节点标识或相应图标。
比如包Component里面包含一组成品部件,全部用《block》表示

作为命名空间的包

包是可封装元素的容器,也是其中所有元素的命名空间namespace
大多数SysML模型元素均有名称,但少数没有,如注释。
命名空间定义了一组唯一性准则,以区分命名空间内不同的已命名元素。
包中给定元素类型的每个元素都必须有唯一名称

模型元素可以出现在某个图中,但该图的框架不一定指定其父命名空间,容易造成错误。
解决办法是在标识中为模型元素给出一个限定名称qualified name,表示相对路径或者完整路径
限定名称均是以模型元素名称结尾,前面为路径,并以双冒号::划界,如模型元素X包含于包B内,而包B包含于包A,则表示为A::B::X

例子:包Standard Definition

  • Basic Definitions::Waypoint
    • 标识表示一个值类型,类型名称Waypoint,包含于名称为Basic Definitions的包里,而此包又包含于Standard Definition
  • ACME Surveillance Systems::Components::Stepper Motor
      • 标识表示包Standard Definition的外部模型元素,有完整的限定名称,即由ACME Surveillance Systems而来

为减少图的混乱,许多SysML工具都默认隐藏了限定名称

包中模型元素的引进

引进关系用于将属于某个源命名空间的单个或多个元素集合放至目标空间中。被引进元素的名称称为目标命名空间的一部分,被引进元素的限定名称基于元素在目标命名空间中的位置。因此,在已指定目标命名空间的图中显示时,不需要限定名称了

包引进package import:源包所有模型元素均被引进至目标命名空间
元素引进element import:应用于单个元素,无需引入包内全部元素且引进可能带来混淆的情况下可以采用

引进而导致目标命名空间的两个或多个模型元素拥有相同的名称,会引起名称冲突。元素引进有一个别名区域,可用于提供该模型元素的另一个名称。

名称冲突规则:

  1. 如果被引进元素名称与目标空间的子元素冲突,则不会引进该元素,除非应用别名来提供唯一名称
  2. 如果两个或多个引入元素名称冲突,则任何一个都不能引入目标命名空间

命名空间的元素通过直接包容关系或引进关系确定,都为成员member。成员具有可视性visibility,默认为公开。成员的可视性确定了其是否能被引进至另一命名空间。

引进关系用虚线箭头表示,并标注关键词《import》。箭头端指向被引入的源,箭头尾部指向引入的目标命名空间。当元素作为目标空间的私有成员引进时,用关键词《access》替代《import》
pkg import
package私有引进的时候操作的时候选import,Visibility选private就变成《access》了
element引进,有重名可以正常引进,没有显示错误,可以通过属性Alias进行新命名

目前还不知道在哪设置block可视性

Visibility representation
In SysML, properties and operations of the Block are public.
Visibility representation literals, like +, #, ~, -, are not displayed in the Containment tree or in the element symbol on a diagram.

书上通过创建P3的pkg然后可以看到如下:

NewC、C、B正常的block
P2:F、Child of P2::E、Model::P1::A

但是我在实际操作中,不知道如何呈现,都是正常显示-。-,可能是SysML语言的更新或者是CSM的更新原因。

可封装元素间的依赖关系表示

依赖dependency的通用类型:

  • 应用use:表示客户端将使用供应端作为其定义的一部分。
  • 精化refine:表示客户端相较于供应端规范增加了细节,如在部件定义中包括了更详细的物理和性能特性。通常用于需求分析
  • 实现realization:客户端实现了供应端中所描述的规则,如一个实施包实现了设计包时。
  • 跟踪trace:存在联系,但并未施加更为明确的精确关系语义约束。通常用于需求分析
  • 分配allocate:某个模型元素被分配至另一个元素。十四章描述

依赖关系用虚线带开放的箭头表示,由客户端指向供应端
dependencies
我反正是一个dependency的类型都打不出来,显示stereotype不存在,不知道是不是已经不注重区分了

总结

  1. 包概念、层级构建
  2. 包是成员元素的命名空间,唯一识别单个成员
  3. 限定名称,表示路径
  4. 引进的机制
  5. 包依赖关系

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

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

相关文章

KDChart2.8编译过程-使用VS+CMake-MSVC2017

文章目录 一、下载KDChart源文件二、只用Visual Studio(有缺陷)1.配置系统环境变量2.使用Visual Studio中的Qt集成功能3. 打开sln解决方案编译生成相关设置(以Release为例) 三、CMakeVisual Studio(完美)1.…

信息泄露--

大唐电信AC简介 大唐电信科技股份有限公司是电信科学技术研究院(大唐电信科技产业集团)控股的的高科技企业,大唐电信已形成集成电路设计、软件与应用、终端设计、移动互联网四大产业板块。 大唐电信AC集中管理平台存在弱口令及敏感信息泄漏漏…

webgoat(A2) Broken Authentication

身份验证绕过 身份验证绕过以多种方式发生,但通常会利用配置或逻辑中的某些缺陷。篡改以达到正确的条件。 隐藏输入 最简单的形式是依赖于网页/DOM 中的隐藏输入。 删除参数 有时,如果攻击者不知道参数的正确值,他们可能会从提交中完全删…

excel利用正则匹配和替换指定内容

上班中, 突然接到电话, 屋里的上司大人发来个excel, 说要替换里面x-x-xxx列的内容为x栋x单元xxx. 大致表格如下, 原表格我就不发了 身为程序猿的我, 肯定第一就想到了 正则! 打开excel-开始-查找和替换, 我擦, 只能完全匹配和替换 比如一次只能替换1-1- -> 为1栋1单元 1-2…

牛客项目(五)-使用kafka实现发送系统通知

kafka入门以及与spring整合 Message.java import java.util.Date;public class Message {private int id;private int fromId;private int toId;private String conversationId;private String content;private int status;private Date createTime;public int getId() {retur…

不使用屏幕在树莓派4B安装Ubuntu22.04桌面版(64位)

因为时间有限只说一下基本路径: 1首先安装Ubuntu22.04server版本 2设置服务器版本的SSH和WiFi 3通过服务器版本安装Ubuntu-desktop升级到Ubuntu22.04桌面版 4在桌面版上安装远程控制软件:xrdp; 5使用Windows自带的远程桌面连接访问Ubuntu 6完成

Linux -----------------------Shell 流程判断

什么是shell Shell是操作系统的用户界面,负责接收和解释用户的命令,并将这些命令转化为操作系统内部能够理解的指令,然后执行相应的操作。Shell还允许用户编写脚本,以自动化和批处理任务,从而提高效率。在Linux系统中&…

【Nginx38】Nginx学习:SSL模块(二)错误状态码、变量及宝塔配置分析

Nginx学习:SSL模块(二)错误状态码、变量及宝塔配置分析 继续我们的 SSL 模块的学习。上回其实我们已经搭建起了一个 HTTPS 服务器了,只用了三个配置,其中一个是 listen 的参数,另外两个是指定密钥文件的地址…

【LeetCode刷题-排序】--912.排序数组

912.排序数组 方法&#xff1a;使用插入排序 class Solution {public int[] sortArray(int[] nums) {int len nums.length;//循环不变量:使nums[i]插入区间[0,i),使之成为有序数组for(int i 1;i<len;i){//先缓存这个元素&#xff0c;然后之前的元素逐个后移&#xff0c;…

LeetCode----52. N 皇后 II

 题目 n 皇后问题 研究的是如何将 n 个皇后放置在 n n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。 示例 1: 输入:n = 4 输出:2 解释:如上图所示,4 皇后问题存在两个不同的解法。 示例 2: 输入:n = …

【CSDN 每日一练 ★★☆】【数学】旋转图像

【CSDN 每日一练 ★★☆】【数学】旋转图像 数学 数组 题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 示例 1&a…

前端埋点方式

前言&#xff1a; 想要了解用户在系统中所做的操作&#xff0c;从而得出用户在本系统中最常用的模块、在系统中停留的时间。对于了解用户的行为、分析用户的需求有很大的帮助&#xff0c;想实现这种需求可以通过前端埋点的方式。 埋点方式&#xff1a; 1.什么是埋点&#xff1f…

【Selenium+python】自动化测试登录界面

前言&#xff1a;已经学习selenium许久了&#xff0c;奈何公司的项目还在码代码中...&#xff0c;感觉自己学的东西快忘的差不多了&#xff0c;所以就找个网站练练手&#xff0c;顺便回顾一下UI自动化的知识&#xff0c;也希望跟我一样的小白有所受益。 一、用例分析&#xff…

线扫相机DALSA--常见问题四:修改相机参数,参数保存无效情况

该问题是操作不当&#xff0c;未按照正常步骤保存参数所致&#xff0c;相机为RAM机制&#xff0c;参数需保存在采集卡的ROM内。 保存参数步骤&#xff1a; ①首先将相机参数保存至User Set1&#xff1b; ②然后回到Board(采集卡)参数设置区&#xff0c;鼠标选中Basic Timing&a…

C++——类和对象(中)完结

赋值运算符重载 运算符重载 C 为了增强代码的可读性引入了运算符重载 &#xff0c; 运算符重载是具有特殊函数名的函数 &#xff0c;也具有其 返回值类型&#xff0c;函数名字以及参数列表&#xff0c;其返回值类型与参数列表与普通的函数类似。 函数名字为&#xff1a;关键…

中富转债,章鼓转债上市价格预测

中富转债-123226 基本信息 转债名称&#xff1a;中富转债&#xff0c;评级&#xff1a;AA-&#xff0c;发行规模&#xff1a;5.2亿元。 正股名称&#xff1a;中富电路&#xff0c;今日收盘价&#xff1a;30.03元&#xff0c;转股价格&#xff1a;36.44元。 当前转股价值 转债面…

桥接模式birdge

简介 桥接模式&#xff1a;将抽象与实现相分离&#xff0c;使他们可以独立变化。 角色 抽象化&#xff08;Abstraction&#xff09;角色&#xff1a; 该类持有一个对实现角色的引用&#xff0c;抽象角色中的方法需要实现角色来实现&#xff0c;抽象角色一般为抽象类&#xf…

NOA标配搭载率不足3%!英伟达中国「自研」智驾方案

汽车行业的特殊性&#xff0c;意味着&#xff0c;对于供应链来说&#xff0c;一家独大几乎不可能。对于芯片赛道来说&#xff0c;同样如此。 以智能驾驶为例&#xff0c;目前的供应链形态&#xff0c;也正处于变革的关键周期。各路玩家也都在尝试与车企合作模式的多元化。 高工…

并发请求控制

Chrome 浏览器最多并发6个请求。一般情况下&#xff0c;我们都会设置并发数为 3。 并发请求控制主要有两种区别&#xff1a;假设并发数为 3 三个请求为一组进行并发&#xff0c;这三个请求全部完成了&#xff0c;再进行下一组。在第一种方式的基础上加上滑动补位&#xff0c;…

Express框架开发接口之前台分类导航

1.初始化 const handleDB require(../handleDB/index) // 获取全部导航 exports.allNav (req, res) > {(async function () {})() } // 更新或者添加导航 exports.upNav (req, res) > {(async function () {})() } // 根据id删除 exports.delNav (req, res) > {(a…