《软件方法》2023版第1章(09)基本共识上的沟通,SysML

news2024/11/25 18:27:33

DDD领域驱动设计批评文集

做强化自测题获得“软件方法建模师”称号

《软件方法》各章合集


1.3 UML

1.3.2 使用UML的理由

1.3.2.5 基本共识上的沟通

符号标准并不是随便哪个人拍脑袋定下来,然后毫无道理地强迫大家接受。符号背后往往隐含着我们对某个学科的一些基本共识。

如图1-13,最上一行的积分符号“∫”,幼儿园小朋友也能画出这样的形状,但其所代表的知识可能需要上到大学才能理解。如果要懂得为什么是这样一个符号,还需要了解数学史中莱布尼茨、傅立叶等人的贡献。图1-13中间一行的五线谱小豆芽和横线,最下一行的小人圈圈和框框,也是如此。

图片

图1-13 符号背后隐含基本共识

这意味着,学习符号标准并非硬生生把形状记住后照葫芦画瓢就行,还要学习背后的一些建模知识。但是,开发团队成员咬咬牙,花费一些精力跨过这个门槛是值得的,因为一旦有了基本共识,会大大提高沟通的效率和深度。在严谨建模思维的追问之下,有意无意遮掩的脓包也会被强制露出——这也是一些“高手”潜意识里不愿意直面UML的深层原因。

★花絮:面对一个棋局,下一步怎么走?在业余棋手看来到处都是正确答案,在职业棋手眼里,值得讨论的选项只有两三种,因为职业棋手针对一些东西形成了共识,大大减少了思考中的浪费。

★花絮:有的开发人员的“十年工作经验”实际上是“一年工作经验用了十年”,一直在热热闹闹的民工层次徘徊,没有积累和成长。

不过要注意一点:使用UML沟通仅限于软件组织内部,UML模型不是用来和涉众沟通的!这个道理以及和涉众沟通的技能将在第7章详细叙述。

1.3.3 SysML

SysML是系统工程建模的一种表示法标准。它是由INCOSE(国际系统工程协会)和OMG(对象管理组织)以UML为基础,进行系统工程方面的扩展后推出的。其目的和UML类似:统一系统工程的建模语言。

UML是信息系统的建模语言。“信息系统”的意思是该系统只负责处理信息:信息流进来,经过系统的处理,变成信息流出去,但是,信息系统不能处理物质流、能量流。

SysML相当于把“UML”扩展到各种类型的系统,这些系统可以处理各种各样的物质流、能量流。因此,SysML和UML不冲突,也不存在取代的关系。

我用刘慈欣的小说《流浪地球》举个例子。

太阳即将在400年内发生氦闪变成红巨星,人类社会怎么办?

众多科学家经过大量研究,得到一个解决方案:给地球装上发动机,驱动地球飞向比邻星(正好三体舰队也迎面飞来,嘭!)。

******

小说《流浪地球》原文:

地球发动机安装在亚洲和美洲大陆上,因为只有这两个大陆完整坚实的版块结构才能承受发动机对地球巨大的推力。地球发动机共有一万二千台,分布在亚洲和美洲大陆的各个平原上。

……

在六千米处,我们见到了进料口,一车车的大石块倒进那闪着幽幽红光的大洞中,一点声音都没传出来。

……

“重元素聚变是一门很深的学问,现在给你们还讲不明白。你们只需要知道,地球发动机是人类建造的力量最大的机器,比如我们所在在华北794号,全功率运行时能向大地产生一百五十亿吨的推力。”

******

“地球发动机”是一个巨大的系统,横跨多个学科,能源、材料、建筑、物流、人员管理……。

其中用来描述和处理信息的信息系统可能只占其中的一小部分,UML不适合描述“地球发动机”,SysML可以。

通过SysML不断把“地球发动机”分解成各个Block,Block又分为小Block,可能会得到其中一个Block叫“发动机中控系统”,这是一个信息系统。该系统其中一个功能可能是:根据接收到的测量参数值(可能有上万个),计算地球发动机下一步的最佳行动。我用SysML的块定义图画了图1-14,只是简单展示,我也不知道地球发动机应该分成哪些Block。

图片

图1-14 地球发动机的分解

图1-14中的“发动机中控系统”这个信息系统,就适合用UML来建模。

听起来SysML描述的系统比UML描述的信息系统大,是不是意味着SysML更复杂?

其实恰好相反。在对UML和SysML都有所掌握之后,您会发现使用SysML比使用UML更容易。

使用SysML建模时,更多的是“描述”,而在使用UML建模时,除了“描述”之外,更重要的是“构思”。

像上面说的“根据接收到的测量参数值(可能有上万个),计算地球发动机下一步的最佳行动”,这个事情人也可以做到,因为计算的方法就是人指定的嘛,只不过人算得慢而且容易出错,所以用信息系统来做。

也就是说,我们需要把人脑总结出来的各种知识转移到信息系统中,并用它来取代人脑来做计算。信息系统的一切,包括规则如何表达,数据如何组织,各个部分的耦合、内聚等等,都需要我们一个一个构思。

非信息系统的建模并没有“取代人脑”的压力。当然,不是说非信息系统就没有难度。

像《流浪地球》原文提到的“重元素聚变”,我用SysML画了一张活动图,如图1-15。可以看到,这个过程处理的是物质和能量,原料和催化剂进来,变成能量出去。

图片

图1-15 重元素聚变过程

打问号的地方,例如聚变过程的各个步骤应该怎么进行,催化剂是哪些,这些难题都需要各个学科的科学家去攻克。不管是SysML还是UML都是搞不定这个的。

科学家们研究出成果之后,可以用SysML来描述和帮助验证,涉及到人脑思考的地方,可以用UML来帮助构造信息系统取代人脑思考。

目前正式的SysML最新版本是1.6。2023年7月,OMG通过了SysML V2的β版本。

从目前的信息看,SysML V2有很大的变革,特别是大刀阔斧地清理术语。UML虽然把各种建模“方言”统一成“普通话”,但仍然做了一些妥协,留有各种冗余的尾巴。衍生自UML的SysML也不可避免存在冗余的问题。如果SysML大胆迈出这一步,把非必要的术语全部清理(和领域驱动设计圈子热衷造词形成鲜明对比),也许能促进UML做出类似变革。

OMG的SysML规范:https://www.omgsysml.org

1.4 应用UML的建模工作流

(待续……)

10月23-27晚8点-软件需求设计方法学全程实例剖析网课(1级)

[3级]类的精细建模高阶+10月30-11月1日晚8点网络公开课

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

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

相关文章

【玩转Redhat Linux 8.0系列 | 从命令行管理文件(一)】

今天继续分享一些Redhat Linux 8.0的知识,记得关注,会一直更新~ 描述Linux文件系统层次结构概念 学习目标 描述Linux如何组织文件,以及文件系统层次结构中各种目录的用途。 文件系统层次结构 Linux系统中的所有文件存储在文件系统中&…

移动硬盘频繁断开连接怎么办?

对于那些喜欢存储大量数据,在多台设备之间有数据传输需求的用户来说,拥有一个移动硬盘是比较便利的事情。但是移动硬盘在使用的过程中也可能会出现诸多问题,比如比较常见的频繁断开连接的故障。那么,移动硬盘频繁断开连接怎么办&a…

基于Lang-Chain(ChatGLM和ChatChat)知识库大语言模型的部署搭建

环境准备 阿里云个人认证后,可免费试用机器学习平台PAI,可提供适合大语言模型环境搭建的高配置服务器。 点击试用阿里云服务器 试用产品选择:选择交互式建模PAI-DSW 适合哪些场景 文章/知识库/帮助文档等的检索基于现有知识库实现问答… …

Go语言入门心法(六): http编程

Go语言入门心法(一): 基础语法 Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 一:go语言面向web编程认知 忙着去耍帅,后期补充完整............

Lumen全局光照你了解多少?在Twinmotion中怎么使用

lumen全局光照怎么开?在Twinmotion中lumen全局光照系统怎么使用呢?那么今天就跟着小编一起来这篇文章了解一下吧。 在 Path Tracer 之后,随着Lumen的发布,Twinmotion 变得越来越好。它是一个实时全局光照和反射系统,可…

基于 Debian 稳定分支发行版的Zephix 7 发布

导读Zephix 是一个基于 Debian 稳定版的实时 Linux 操作系统。它可以完全从可移动媒介上运行,而不触及用户系统磁盘上存储的任何文件。 Zephix 是一个基于 Debian 稳定版的实时 Linux 操作系统。它可以完全从可移动媒介上运行,而不触及用户系统磁盘上存…

在逍遥模拟器上安装LPSosed模块以及其Manager管理器

环境:win7 64位,python3.8.10,逍遥模拟器9.0.6,安卓版本9 参考我的文章: 在雷电模拟器9上安装magisk并安装LSPosed模块以及其Manager管理器(一)-CSDN博客 前置工作:先开启模拟器的…

数据结构之手撕链表(讲解➕源代码)

0.引言 我们在学习过顺序表之后,会发现两点不是很优秀的操作: 1.顺序表的头插和中间的插入: 非常麻烦,需要不断的覆盖数据。 2.动态开辟空间: a.一般动态开辟的空间都是以2倍的形式开辟,当…

图片批处理工具 PhotoMill X直装 for mac

PhotoMill X是一款强大的图像处理软件,它可以帮助用户快速地对照片进行编辑、调整和转换。它支持在单个或批量模式下处理大量的图像文件,并具有直观的用户界面和易于使用的工具。 PhotoMill X具有的功能有: 裁剪、缩放、旋转、调整明暗度、…

32 数据分析(下)pandas介绍

文章目录 工具excelTableauPower Queryjupytermatplotlibnumpypandas数据类型Series基础的SeriesSeries的字典操作增加表的索引名字和表名字索引操作 DataFrameDataFrame 的基础使用DataFrame的列方法------理解DataFrame的行列方法------使用loc 与 iloc 对齐操作SeriesDataFr…

寻找小红书达人技巧有哪些,小红书行业黑话汇总!

媒介在工作的时候,需要对本行业的名词有一定的了解,比如说在媒介进行达人探寻的过程中,对行业名词,也就是俗称的互联网黑话具有一定的敏感性,是大有帮助的。今天就来分享一下,寻找小红书达人技巧有哪些&…

【广州华锐互动】VR模拟电力生产事故,切身感受危险发生

随着科技的不断发展,虚拟现实(VR)技术已经在各个领域中得到了广泛的应用。其中,VR技术在电力安全事故还原中的应用,不仅可以帮助我们更好地理解和预防事故的发生,还可以为事故调查提供更为准确和直观的证据…

mysql自定义函数

函数简介 mysql 5.0开始支持函数,函数是存在数据库中的一段sql集合,调用函数可以减少很多工作量, 减少数据在数据库和应用服务器上的传输,对于提高数据处理的效率。参数类型为in类型,函数必须有返回值, 与…

13年测试老鸟,性能测试内存泄露——案例分析(超细整理)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、环境配置 1&a…

epiiAdmin框架注意事项

1,epiiAdmin文档地址: 简介/安装 EpiiAdmin中文文档 看云 2,项目性想新建模块 composer.json文件——autoload选项——psr-4下增加模块名称,然后执行composer update命令。 "autoload": {"psr-4": {"…

springboot+html实现简单注册登录

前端&#xff1a; register.html <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>register</title><link rel"stylesheet" type"text/css" href"/css/style.css&…

Find My产品|智能头盔与苹果Find My结合,智能防丢,全球定位

智能头盔作为一种新兴的智能穿戴设备&#xff0c;融合了先进的技术和先进的安全特性。当下&#xff0c;全球智能头盔市场规模预计将在未来几年内达到令人吃惊的规模。智能头盔在运动、娱乐、工业等领域具有广泛的应用。 智能头盔作为一种能够提供保护和监测功能的穿戴设备&…

scrollIntoView使用与属性详解

scrollIntoView 使用与属性详解 效果图如下图所示 如果要想让元素滚动到指定位置 window.onload function () {containerItems[6].scrollIntoView({ behavior: "smooth" }); };js 代码 const containerItems document.querySelectorAll(".container div&…

jmeter(二):jmeter组件总结,利用取样器中http发送请求

JMeter 的主要测试组件总结如下 1. 测试计划是使用 JMeter 进行测试的起点&#xff0c;它是其它 JMeter 测试元件的容器 2. 线程组代表一定数量的并发用户&#xff0c;它可以用来模拟并发用户发送请求。实际的 请求内容在Sampler中定义&#xff0c;它被线程组包含。 3. 监听…