第三章 模块定义图:模块
第三章 模块定义图
- 1. 模块
- 1.1 结构特性
- 1.1.1 约束属性
- 1.1.2 端口
- 1.2 行为特性
- 1.2.1 操作
- 1.2.2 接收
在BDD中出现的元素叫做定义元素。定义元素形成了其它内容的基础,定义元素之间存在三种结构关系:关联、泛化和依赖 。
BDD的外框代表的模型元素:
- 包 package
- 模型 model
- 模型库 modelLibrary
- 视图 view
- 模块 block
- 约束模块 constraintBlock
命名空间只是一种模型元素,这种模型元素可以在其中包含其它模型元素。也就是,命名空间可以包含其它模型层次中元素。A namespace is simply a model element that’s allowed to contain other model elements; that is, it can have other elements nested under it within the model hierarchy.
1. 模块
模块,为系统中或系统外部环境中任意一种感兴趣的实体类型创建模型。 定义和实例的区别:某些模型元素(模块、值类型、约束模块)表示对类型的定义;某些模型元素(组成部分属性、值属性、约束属性)代表类型的实例。元素的定义只有一个名称(如Fight Computer),元素的实例有名称和类型(如primaryComputer:Fight Computer,前面的primaryComputer表示实例名称,后面的Fight Computer表示实例类型;memoryCapacity:Mb),
模块的特性:结构特性(属性)和行为特性。
1.1 结构特性
模块结构特性包括:
- 组成部分属性 Part properties
- 引用属性 Reference properties
- 值属性 Value properties
- 约束属性 Constraint properties
- 端口 Ports
前四种属性会列举显示在模块相应的分隔框中,如上图中的值属性,会列举显示在值属性分隔框中。显示格式类似,< property name> : < type> [<multiplicity>]。如下图所示的组成部分属性和值属性:
1.1.1 约束属性
约束属性一般代表一种属性关系(一个等式或者不等式),会使用一些列的值属性。使用格式< constraint name> : < type> [<multiplicity>],实例如下:
如上图sm : Sufficient Memory,Sufficient Memory表示类型type,这里的type必须是已经在系统某处创建的约束模块的名称。约束模块是一种特殊的模块,创建它是为了封装可重用的约束表达式,如下图所示。
如果约束不需要重用,只有一个模块使用的时候,可以直接在模块的约束分隔框中制定约束表达式,如下图。
1.1.2 端口
端口代表结构边缘不同交互点的一种属性,通过端口外部实体可以和端口所在结构进行交互。A port is a kind of property that represents a distinct interaction point at the boundary of a structure through which external entities can interact with that structure—either to provide or request a service or to exchange matter, energy, or data.
当为模块添加端口的时候,就是把结构针对它的环境建模为一个黑盒。用端口封装模块,当我们重新设计模块的内部实现的时候,不会影响其它部分的设计。端口可以代表物理对象(HDMI接口、水龙头、仪表),也可以表示软件对象边界交互点(TCP/IP插槽、消息队列),还可以表示商业组织间的交互点(支付订单、邮箱)。
标准端口和流端口
标准端口是模块在交互点上提供或者请求的服务(行为)的模型。标准端口可以拥有一种或多种类型;类型是建模者赋予的接口(如Power Generation、Status Reporting),提供接口使用圆形标识(Power Generation),请求接口使用槽状标识(Status Reporting)。
接口
流端口包括非原子端口和原子端口两类。非原子流端口的类型必须是在系统模型某处创建的流类别名称,流类别也是一种模型元素——会定义一系列流属性。
每个流属性都有自身的方向,包括in、out、inout三类,显示格式:< direction> <name>: < type>如下图表示(in temp:℃)
原子流端口,类型必须是在系统模型某处定义的值类型、模块或者信号名称。
1.2 行为特性
SysML包含两类行为特性:操作operations和接收receptions, 操作是由调用事件触发,接收是由信号事件触发。
1.2.1 操作
SysML可以把任何行为表示为操作。在BDD中把操作表示为模块操作分隔框中的字符串,格式(< operation name> (<parameter list>): < return type>),参数列表格式(< direction> <parameter name>: < type>[<multiplicity>]=<default value>)。
1.2.2 接收
接收是由信号事件触发,接收与操作的关键区别:
- 接收总是代表一种异步行为。客户端发送信号——触发接收操作接收它——然后立刻继续客户端自身的执行。
- 信号本身也是一种模型元素。可以用信号代表任意类型的事件、能量和数据。
- 接收没有返回值,接收的参数只能是输入,不可能是输出。
如上图所示,当在模块接收分隔框中显示接收的时候,会显示如下格式字符串:
«signal» <reception name> ( <parameter list> )
关键字 «signal»必须总是作为接收名称的前缀。
参数列表显示格式:
< direction> <parameter name>: < type>[<multiplicity>]=<default value>
— end —
第三章 模块定义图:模块相关推荐
- 【SysML精粹】模块定义图
2 模块定义图 常见的一种SysML图就是模块定义图.可以在BDD中显示不同类型的模型元素和关系,以说明系统结构的信息.还可以采用创建扩展系统结构的设计技术,那种实践会在利益相关者的需求发生变更时,降 ...
- 第三章、Ansible常用模块—新手快速入门
第三章.Ansible常用模块--新手快速入门 文章目录 一. 查看系统上安装的所有模块 二.ansible常用模块 1.常用模块之–USER 2.常用模块之–shell 3.常用模块之–copy 4 ...
- 初入SysML之模块定义图
如果把系统工程看做一座山,那么基于SysML或UML的各种图就是从不同角度去看这座山所形成的"画"."横看成岭侧成峰,远近高低各不同",每幅"画&qu ...
- 第三章-宝箱抽奖模块与代码设计(三)
第三章-宝箱抽奖模块与代码设计(三) 简要 信息 作者 卡卡 博客 http://blog.csdn.net/kakashi8841 邮箱 john.cha@qq.com 本文所属专栏 http:// ...
- 软件工程 第三章:类图
第三章:类图 概念 类图的概念:类图是描述类.接口以及它们之间关系的图,它显示了系统中各个类的静态结构,是一种静态模型. 分类可以有效地使复杂问题简化.建立类模型的过程,是把现实世界中与问题有关的各种 ...
- 浙大第四版概率论第三章思维导图
浙大第四版概率论第三章思维导图
- 实变函数第三章思维导图知识点总结
实变函数第四章思维导图知识点总结 实变函数第二章思维导图知识点总结 实变函数第一章思维导图知识点总结
- 第三章:学生管理模块
显示学生资料--准备 1.显示学生资料 2.删除学生资料 3.学生主键生成策略 4.添加学生资料 5.修改学生资料 1.显示学生资料 添加测试数据 1 @Test 2 public void test ...
- 操作系统——第三章思维导图
最近时间比较少,就直接放图了,不便之处谅解一下哈
最新文章
- 必看2021年80后夫妻同时过信息系统项目管理师
- 频谱分析:基于python画出时域频域波形
- linux chrome 管理员,Linux下google chrome浏览器flash无法启用的解决
- 使用t-sql语句修改表中的某些数据及数据类型。_数据库基本理论详细介绍
- (转)向SDE库中写入栅格和矢量数据
- 不使用随机数的洗牌算法
- vue项目生成二维码功能使用QRCode(接入微信和支付宝支付接口)
- excel取末尾数字_excel提取数字的方法步骤详解
- Android视频播放项目总结之 使用第三方Vitamio库,开发万能播放器(一)
- map获取key的方式
- 善用 Google 的 手气不错 I'm feeling lucky 搜索
- JAVAScript:mobile端,基于transform-origin和tranform(scale),实现表格缩放
- 哪吒GT:200万以内最好的纯电跑车,售价17.88万元起
- 服务器进系统后键盘鼠标一卡一卡的,windows10系统鼠标卡顿的处理方法
- 2022年安全员-B证理论题库及模拟考试
- NAT地址转换(超详细解说版)
- vue-cli 创建项目不成功 原因为项目文件夹无node_modules文件 进行npm install不成功解决办法
- 视频压缩编码算法与原理
- 桌面计算机右键管理员权限,电脑界面图标右下角管理员权限图标怎么去掉?
- php100以内质数求和,100以内的质数_PHP质数计算三种方法 php求100以内的质数
热门文章
- 默然回首繁忙而充实的2016
- 【洛谷习题】Likecloud-吃、吃、吃
- 北大教授呼吁:国家紧急授权调用阿里、京东、顺丰等电商物流企业从事救灾工作!...
- wangEditor富文本编辑器使用、编辑器内容转json格式
- k近邻算法python解读_Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文)...
- LIGHT OJ1070 Algebraic Problem
- [HDU1290]献给杭电五十周年校庆的礼物
- iOS Run Loop
- R 使用emoji画图
- 不到 20 人的 IT 公司该去吗?