第六章 块为结构建模 P1|系统建模语言SysML实用指南学习

news2024/11/22 23:40:03

仅供个人学习记录

概述

块是SysML结构中的模块单元,用于定义一类系统、部件、部件互连,或者是流经系统的项,也用于定义外部实体、概念实体或其他逻辑抽象

块定义图用于定义块以及块之间的相互关系,如层级关系,也用于规定块的实例,包括配置和数据值。内部块图用于根据块的组成如何互连来描述块的结构

属性是块的主要结构特性

端口是块的结构化特性,规定块和其他块交互的访问点

块定义图

块定义图block definition diagram用于根据块的特性以及与其他块的结构关系定义图
完整标题bbd [model element kind] model element name [diagram name],model element kind可以是包、块或者约束块

内部块图

内部块图internal block diagram
完整标题ibd [Blcok] block name [diagram name]

应用块定义图对块建模

是SysML中描述系统结构的基本模块单元,它可以定义一类逻辑或概念实体、物理实体(如某系统)、硬件、软件或数据部件、人、设备、流经系统的实体或自然环境中的某一实体(如空气、海洋)

块是对相似实例instance对象object特点的一组特性的描述。

结构特性定义了块的内部结构和属性。行为特性定义了块如何与环境交互或者修改自身状态

块定义图中的名词遵从与包图相同的约定

块标识表示一个可分隔为多个分区的矩形,名称分区位于标识的顶部,是唯一强制性分区。块特性的其他类型在其他矩形块分区表示,有各特性类型的标签,以小写斜体表示,为复数形式,包括单词间的空格符号

应用属性对块结构与特征建模

属性properties是块的结构化特性。

  • 组成属性:块至其组合元素的分解
  • 引用属性:值引用其他块的组成
  • 值属性:描述块的量化特征

应用组成对块的组合层级建模

组成parts块之间的组合关系

组成标识了其类型在情境中的用法

(不懂这一段话)组成与块实例之间的关键区别在于:组成描述了在其组合块的实例情境下块的一个或者多个实例;实例并不需要有情境

组合块的实例可以包括在组成端块的多个实例。实例的潜在数量是由组成的多重性所规定:下边界可以是0或任意正整数,下边界是0的时候用optional表示多重性;上边界可以是1也可以是多个,用*表示,或是大于下边界的正整数。用lower bound…upper bound格式表示

组成分区以关键词parts表示,包含块中每个组成的入口。
每个入口有以下格式:part name: block name [multiplicity]

组合关联

组合关联composite association联系整体-部分。
整体端的多重性上边界始终为1,因为某个组成的实例仅能存在于一个整体中,但下边界可以是0或1。1表示组成端的块实例必须一直包含于整体端的块实例中,0表示在没有整体端块实例存在情况下组成端块实例也可以存在(组成端的块实例也可以包含在其他块实例中,但仍然要求该块实例在任何时刻只能是某一实例的组成,如发动机的实例在任何时刻都是物理存在的)。

未显示多重性时,默认整体端多重性0…1,组成端多重性为1。

组合关联以两块间的连线来表示,末端可以有不同的形式。整体端以黑色菱形表示,一个黑色菱形链接多个连线的简化符号表示该整体块有多个组合关联。通常情况,整体端不命名,组成端有组成名称,并以开放箭头表示。组成端如无箭头则表示为引用属性。

组成或显示于组成分区或显示于关联端,只能二选一

内部块图中的组成连接

连接器connector用于连接两个组成,并提供组成间的互操作,也可以连接端口,虽然并不能说明互操作的本质

connector name:association name

连接器的末端可以有箭头,表示分类连接器关联了相同的表示物,但该箭头通常不表示。连接器末端包括多重性,默认为1,表示可由链接link连接的实例数量,该链接通过连接器类型描述。在连接器标识交叉情况下,交叉部分以半圆区分两个连接器

嵌套结构与连接器的建模

就是嵌套,没什么其他好说的

绑定连接器

绑定连接器binding connector,约束连接器两端具有相同值。

应用引用属性标识块间关系

引用属性reference properties简称引用reference,使得包含引用属性的块实例可以引用该引用属性分类的块实例。

如果关联为双向,两端均有引用属性,则两方均无箭头。引用关联的一端可以以白色菱形箭头表示。无论白色菱形是否存在,SysML都指定了相同含义。

内部块图中,除了块边框以虚线代替实线表示外,引用属性的表示与组成属性表示相同

应用关联分类组件间连接器

关联association可作为连接器类型用于对组成间的连接建模
这一部分不是很透彻,比较模糊概念

通过关联分类连接器以维护兼容性

通过要求连接器任何一端的组成必须满足关联所施加的约束实现。一个兼容的组成类型或者关联端类型类型相同,或者是该类型的特例

一个规范的过程可要求对所有连接器分类,确保连接器端的兼容性。在此过程中,需提供具有可兼容末端类型的关联库,每个连接器都必须由该库中的某个关联分类

例子:ACME监视网络
引用关联

异步数字用户线路ADSL用于连接Surveillance System监视系统与Command Center指挥网络,表示为ADSL Connection关联,其末端表示了各引用属性,分别命名为adsl dte与adsl dce表示相关块各自的角色
关联分类的连接器

应用关联块定义连接器结构

关联块association block将连接器分类,关联块各端由一类特殊属性表示,称为参与属性participant property,支持关联块末端被关联块所引用,而不必要成为关联块的组成

关联块在块定义图中以一个带有块标识、虚线连接的关联路径标识

实现这种关联块不能直接块图上实现,需要内部块图进行绑定。参与属性以虚线矩形标识,用关键词《participant》与其他属性区分。通过大括号中的字符串end=property name也可以表示关联末端。

书上在红框中还有虚线连接,但是我不知道怎么操作的,是要把之前的粗略版本删了重新构建还是有其他绑定形式,不清楚

块间关联块应用
先实现ADSL Connection关联块的内部细节
adsl dte : Surveillance System表示参与属性adsl dte其类型为 Surveillance System
关联块的内部结构
下图是ADSL Connection和SDSL Connection的应用
拥有两个控制中心的ACME监视网络

SysML允许由关联块分类的连接器通过连接器属性connector property来表示,在块定义图中由块至关联块的组合关联表示。组成端的名称表示了整体端的块所拥有的连接器属性

应用值属性建立块的量化特征模型

值属性value properties用于建立与块相关的量化特征模型,也可以建立矢量量化模型。值属性可以有默认值,也可以定义值的概率分布
值类型 value type类型:

  • 支持标量值定义的基本类型primitive type,包括SysML预定义的基本类型、Integer、String、Boolean、Real。
  • 定义了一组文字名称值的枚举类型enumeration,如颜色和星期
  • 表示数据结构规范的结构类型structure type,数据结构中包括多个数据元素,每个数据元素以一个值属性表示。如SysML提供的Complex、Position值类型

值类型都是表示值,而不是实体。**一个值类型的两个实例如果值相同,则这两个实例必定一致,而块实例并不是这样。

块定义图中,值类型以实边框的盒标识表示,关键词《valueType》

值类型中增加单位和数量

数量种类quantity kind确定了一类物理数量,其值根据定义的单位unit来确定。

开发系统模型的时候,保证系统数据单位的兼容性非常重要。多组织或项目并行开发的时候,仅仅用某个名称甚至某个模型库并不能唯一识别单位和数量种类。SysML单位和数量种类也包括定义URI definitionURI,可将其与某个唯一网址引用相关,进行定义的比较。

单位与数量种类的国际单位系统标准

国际单位系统SI是国际标准化组织ISO发布的关于单位和数量种类的标准
ISO 80000模型库中所有单位和数量种类都有定义URI

属性相关

属性设置为只读,则表示在归属方的生命周期内不能更改。关键词readOnly表示
属性设置为静态,表示在该块描述的所有实例中,其值均相同。静态属性以属性名称字符串下划线表示
属性设置为派生,表示值可以由其他值派生得到。派生属性以属性名称前的符号斜杠/表示

属性值与分布建模

属性可以有默认值default value,该值可以在块分区内作为属性字符串一部分表示
语法:property name:type name=default value
组成的初始值initial value可通过标签为initial Values的分区设置

对于值范围以概率分布probability distribution而非单值描述的值属性成为分布属性distribution property
《distributed property》{p1=value,p2=value…}property name:type name
p1和p2表征了概率分布,如正态分布,这两个值为mean和standard deviation,对均匀分布为min和max
属性值和分布示例

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

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

相关文章

搭建WAMP网站教程(windows+apache+mysql+php)

之前为了学习网络安全,从搭建网站学起,对网站运行有个初步的了解。 今天翻到了之前的笔记,顺手发到csdn上了。 搭建网站步骤 一、Apache 安装Apache,下载Apache之后把Apache解压,此处解压到C:\目录下 2.然后要记得安…

pg14-sql基础(三)-分组统计

分组 SELECT hire_date, COUNT(*) FROM employees GROUP BY hire_date;SELECT extract(year from hire_date), COUNT(*) FROM employees GROUP BY extract(year from hire_date); -- GROUP BY 1;SELECT extract(year from hire_date), department_id, COUNT(*) FROM employees…

MFC 基础篇(一)

目录 一.SDK编程 二.为什么要学MFC? 三.MFC能做什么? 四.MFC开发环境搭建 五.MFC项目创建 六.消息映射机制 一.SDK编程 Application Programming Interface 应用程序编程接口。 Software Development Kit 软件开发工具包,一般会包括A…

自动化测试之争:code vs codeless

在TesterHome看到的一个话题,当我们选择做自动化时是否需要code 或者codeless。 code方案 用code去做自动化,实现过程就是拿个IDE撸代码。 python pytest/unittest appium/selenium/requests ... Java Junit/testNG appium/selenium/requests .…

volatile-无原子性案例详解

package com.nanjing.gulimall.zhouyimo.controller;import java.util.concurrent.TimeUnit;/*** author zhou* version 1.0* date 2023/11/5 7:56 下午*/ class MyNumber{int number;public synchronized void add(){number;} } public class VolatileNoAtomicDemo {public st…

git进阶

1、git:为分布式版本控制工具 2、 当新创建一个文件后,文件通过指令可以到达暂存区,暂存区是仓库和工作区的缓冲区域 当commit后,会把文件放入本地仓库,每一次commit都会创建一个版本 《小区域》 git status 《查看…

python- 学生信息管理系统

偶然整的学生信息管理系统一个学生信息管理系统,包括录入学生信息、查找学生信息、删除学生信息、修改学生信息、排序学生信息、统计学生总数和显示所有学生信息等功能 开发环境要求本系统的软件开发及运行环境具体如下。 操作系统:Windows 10。 Python…

知乎日报第三周总结

这周主要完成了评论的加载和长评论的展开与收起,同时完善了前面的内容,文章内容cell的滑动刷新改为滑动一个加载一个,这样就更加流畅;还有就是首次点击只先加载当前cell内容,这样就不会卡顿加载过多内容,剩…

MySQL(9):子查询

子查询 指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,…

python学习10

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

Mybatis技术原理详解之:使用Mapper形式和注解驱动的复杂映射开发

Mybatis技术原理详解之:使用Mapper形式和注解驱动的复杂映射开发 Mapper形式的复杂映射开发 一对一查询 一对一查询的模型 ⽤户表和订单表的关系为,⼀个⽤户有多个订单,⼀个订单只从属于⼀个⽤户 ⼀对⼀查询的需求:查询⼀个订…

AFL入门教学

1、AFL简介 AFL(American Fuzzy Lop)是一个面向安全的模糊测试工具,它使用了一个新的编译时插桩技术和遗传算法,可以自动发现触发目标二进程程序的测试用例,从而大大提高测试代码的功能覆盖率。 AFL官网:…

090基于web+springboot的中小企业设备管理系统

欢迎大家关注,一起好好学习,天天向上 文章目录 一项目简介技术介绍 二、功能组成三、效果图四、 文章目录 一项目简介 本中小企业设备管理系统管理员有个人中心,用户管理,员工管理,设备信息管理,配件信息管…

计算机报错找不到msvcp110.dll无法继续执行代码怎么解决?

msvcp110.dll文件丢失是一个相当常见的问题,尤其是在运行某些程序或游戏时。这个问题可能会导致程序无法正常运行,甚至可能导致系统崩溃。那么,面对这样的问题,我们应该如何来解决呢?下面,我将分享我解决问…

LabVIEW开发实时离子温度测量

LabVIEW开发实时离子温度测量 迈向核聚变发电的漫长旅程,旨在提供无限的清洁能源。离子温度是产生聚变点火条件中最重要的参数之一,快速简单地测量离子温度的技术至关重要。特别是对于未来的聚变反应堆来说,需要一种使用等离子体发出的物理现…

Python基础入门例程43-NP43 判断布尔值(条件语句)

最近的博文: Python基础入门例程42-NP42 公式计算器(运算符)-CSDN博客 Python基础入门例程41-NP41 二进制位运算(运算符)-CSDN博客 Python基础入门例程40-NP40 俱乐部的成员(运算符)-CSDN博客…

【Servlet】Servlet的生命周期

目录 一、Servlet的生命周期 二、Servlet的生命周期演示图 三、线程安全问题 四、解决线程安全问题 面试题 一、Servlet的生命周期 1.类加载和实例化 Servlet容器(如Tomcat)负责加载和实例化Servlet。当容器是首次启动或首次请求某个Servlet时,容器就会读取w…

英语小作文模板(10招募+通知;15通知+介绍)

10招募+通知: 题目背景及要求 第一段 第二段 第三段 翻译 15通知+介绍 : 题目背景及要求 第一段 第二段 第三段 15通知+介绍(2) 第一段 第二段 第三段 重金求子通知

Python---练习:使用循环嵌套打印正等腰三角形

案例: 使用循环嵌套打印正等腰三角形 如图: 思考: 首先,给了样式,有几行,也就是明确的次数,所以用while循环,for循环是针对没有明确次数用的。 while循环基本语法: 结…

Python基础入门例程45-NP45 禁止重复注册(条件语句)

最近的博文: Python基础入门例程44-NP44 判断列表是否为空(条件语句)-CSDN博客 Python基础入门例程43-NP43 判断布尔值(条件语句)-CSDN博客 Python基础入门例程42-NP42 公式计算器(运算符)-C…