[思维模式-11]:《如何系统思考》-7- 认识篇 - 克服片面、局部思维,转向全面思考 =》 UML

2023-11-04

目录

第1章 全面思考概述(空间)

1.1 什么是全面思考(整体思考)

1.2 全面思考的含义

1.3 程序的局部性原理

第2章 如何做到全面思考

2.1 本位思考 =》 全局思考

2.2 大局观,既是一种格局,也是一种能力

2.3 软件架构师、系统架构师

第3章 全面思考的辅助工具

3.1 实体关系图

3.2 输入输出图

3.3 思考的罗盘

第4章 UML图在全面思考中的应用

后记:


第1章 全面思考概述(空间)

1.1 什么是全面思考(整体思考)

系统思考的本质是整体思考,虽然“我们是一个整体”的道理很好理解,“盲人摸象”的寓言也是妇孺皆知,但在组织中,最常见的问题仍然是“本位主义”局限思考行动,每个人每个部门都只是从自己的本位出发,“归罪于外”,结果造成组织中充满了相互指责,以及平庸甚至是愚蠢的决策。

产生这个问题的原因一方面在于组织系统的动态复杂性,另一方面也与人们缺乏有效进行整体思考的技能不无关系。因此,要做到系统思考,必须能够全面思考,从局限于本位到关照全局、看见整体

系统思考是一个既见树木又见森林思考模式

1.2 全面思考的含义

(1)本位主义 VS 大局观

(2)局部 VS 全局

(3)片面 VS 全面

(4)单维度 VS 多维度

(5)非黑即白 VS 多彩多姿

(6)井底之蛙 VS 海阔天空

(7)固执 VS 灵活

(8)刻板单一 VS 因人而异(见人说人话,见鬼说鬼话)

(9)只见树木 VS 又见森林

备注:

鬼谷子最厉害之处,就是他能够把人与人的交往定义了无数个典型的场景,并针对不同的场景,指明了不同的行之有效、助人成功的策略。这也是全面思考的体现。

1.3 程序的局部性原理

程序的局部性原理是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。它们倾向于引用的数据项邻近于其他最近引用过的数据项,或者邻近于最近自我引用过的数据项。

在现代计算机系统的各个层次,从硬件到操作系统、应用程序等,设计上都利用了局部性原理。比如缓存机制,CPU指令顺序处理等。

局部性通常有两种形式:时间局部性空间局部性

(1)时间局部性(temporal locality)

时间局部性是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。强调数据的重复访问。

利用时间局部性,缓存在现代程序系统中扮演着重要角色,数据缓存,磁盘缓存,文件缓存等,极大提高数据的重复访问性能。而在程序设计中,循环体则是时间局部性常见的一个场景

(2)空间局部性(spatial locality)

空间局部性是指一旦程序访问了某个存储单元,则不久之后。其附近的存储单元也将被访问。强调连续空间数据的访问,一般顺序访问每个元素(步长为1)时具有最好的空间局部性,步长越大,空间局部性越差。

备注:

人天然的思维模式,与计算机程序一样,具备时间和空间的局部性。

第2章 如何做到全面思考

2.1 本位思考 =》 全局思考

 

 无论是由人组成的企业组织,还是有代码组成的软件目标系统。

在分析问题时:

我们不仅仅站在自身的立场和角度思考问题的根源,还需要从系统的角度,思考问题的根源。

在解决问题时:

我们不仅仅站在自身的立场和角度思考解决方案,还需要从系统的角度,思考问题的解决方案。

局部最优,不代表全局最优。有时候,为了达成全局最优,需要牺牲某个局部的利益。

一味地站在自身的立场、维护小团体的利益,带来如下的几个可能的后果:

  • 局部最优,导致全局不是最优,即牺牲全局利益,维护局部利益。
  • 限制个人的成长、井底之蛙,目标短浅。

2.2 大局观,既是一种格局,也是一种能力

 因此,克服本位思考不仅仅是格局,也是一个人的能力,需要经过长期的训练。

2.3 软件架构师、系统架构师

从某个模块和或某组件程序员的角度跳出来,从软件架构师、系统架构师角度思考目标系统

(1)软件组件以及功能划分

(2)软件组件的层次结构

(3)软件组件的消息交互

(4)软件组件的状态机

(5)软件系统的性能需求

第3章 全面思考的辅助工具

3.1 实体关系图

 

实体:

在系统思考中:代表的是利用相关方。

在项目管理中:代表的是干系人

在UML中:代表的是用户或软件实体

 

 元素:软件实体

 

 

 

3.2 输入输出图

 

 

 

3.3 思考的罗盘

 

第4章 UML图在全面思考中的应用

UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。

截止UML2.0一共有13种图形(UML1.5定义了9种,2.0增加了4种)。

用例图、类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图、包图、组合结构图、交互概览图 

  • 用例图:从用户角度描述系统功能。

  • 类图:描述系统中类的静态结构。

  • 对象图:系统中的多个对象在某一时刻的状态。

  • 状态图:是描述状态到状态控制流,常用于动态特性建模

  • 活动图:描述了业务实现用例的工作流程

  • 顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互

  • 协作图:描述对象之间的协助关系

  • 构件图:一种特殊的UML图来描述系统的静态实现视图

  • 部署图:定义系统中软硬件的物理体系结构

  • 包图:对构成系统的模型元素进行分组整理的图

  • 组合结构图:表示类或者构建内部结构的图

  • 交互概览图:用活动图来表示多个交互之间的控制关系的图

用上述图形,就可以从不同角度、不同层次、全面地、描绘一个软件系统。

UML不仅仅可以描述软件系统的静态特征,也可以描述软件系统的动态特征。

后记:

从上面可以看出,UML图远比系统思考提供的图全面。

UML不仅仅可以描述软件系统,也可以用来描述任何组织。

UML不仅仅可以描述软件系统的工作方式,也可以用来描述任何组织的工作方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[思维模式-11]:《如何系统思考》-7- 认识篇 - 克服片面、局部思维,转向全面思考 =》 UML 的相关文章

  • 将 ObjectAid 安装到 eclipse LUNA 时出现错误

    我有 eclipse LUNA 我正在尝试安装 ObjectAid 来构建 UML 图 当我尝试安装它时 出现以下错误 An error occurred while collecting items to be installed ses
  • XSD 转 UML 命令行工具

    我想知道 是否有人遇到过任何命令行工具 优先免费 用于将 xml 模式 xsd 转换为 UML 图 xsd 用于表示类 因此 UML 类图就适合该目的 我对命令行工具更感兴趣 因为我想让它成为一个自动任务 因此我宁愿不必打开 UI 来执行它
  • 当 BoUML 的状态机生成器在退出 StateMachine 状态之前调用 doActivity 时,它正确吗?

    考虑一个简单的状态机 下面是由以下代码生成的 C 代码片段BoUML https www bouml fr index html从中 to manage the event create void Sample Sample State S
  • 用例图中的包含和扩展有什么区别?

    有什么区别include and extend in a 用例图 http en wikipedia org wiki Use case diagram Extend当一个用例向另一个一流用例添加步骤时使用 例如 假设 提取现金 是自动柜员
  • Visual Studio 从 UML 图生成代码?

    我正在研究使用 Visual Studio 2015 从 UML 图生成代码 根据我所做的工作 我在生成代码之前创建了用例 活动 序列和类图 当我生成代码时 我发现 Visual Studio 在生成代码时仅引用我的类图 所以我的问题是 V
  • UML 的高效替代方案

    我发现 UML 很难快速创建 我想更快地表达我的想法 特别是对于小型开源项目 如果它足够大 我会费心使用 UML 但是这个项目对于这种事情来说太小了 我不想要另一个让我觉得 不 我稍后再做 的工具 有什么建议么 UML 不是一种工具 而是一
  • graphviz:记录带有粗体标题的节点

    我正在尝试使用 graphviz 来做一些类似于 UML 类图的事情 我想知道是否有一种方法可以使 register 样式的节点的第一个字段以粗体显示 以使其与其他字段不同 我的节点如下所示 digraph i node label
  • 使用基于关联数组的 UML 建模类型

    假设有一个 PHP 子系统 它仅使用关联数组来存储某种结构化数据 因此 实际上在语言级别上没有机制来约束这些结构 但您希望在设计中使用 UML 来定义它们 E g 在 PHP 中 联系人可能是这样的关联数组 name gt John Doe
  • 用例图包括

    我有一个关于用例图的问题 如图所示 用户可以输入或更新他的姓名和问题 正如您所看到的 用户在第一次输入信息时需要输入姓名和问题 因此包括在内 但是 如果他希望更新他的信息 图表是否表明他必须修改名称和问题 因为它们包含在内 例如 如果他拼错
  • 用例之间的 UML 关系(扩展/包含)

    我不太理解以下主题 因为它与我读到的内容有点含糊 Inlcude就像对下一部分的引用一样 没有它 用例就不完整 这部分应该从更多地方引用 否则它的使用没有意义 但我见过一个例子 其中 include 仅在某些 IF 语句中为真 例如 添加新
  • 如何在 UML 属性中指定枚举文字作为默认值?

    我目前使用 EMF UML Implementation 进行一些模型转换 在我的模型转换中 我创建了一个具有一些属性的 uml 类 这些属性是我也创建的枚举类型 某些属性应该获得默认值 默认值应该是枚举文字 现在的问题是 如何将枚举文字获
  • 如何绘制java uml类图并在另一个类中创建枚举[重复]

    这个问题在这里已经有答案了 假设我有一个类名 A 在这个类中我定义了枚举 Bpublic enum B AA BB CC 现在我想画一个uml来体现这种关系 应该怎么做呢 在类类图中 表示使用 例如
  • 如何在 UML 中指定“一次一个”?

    我正在制作一个类图Classroom and a Course class 我怎样才能表明Classroom只能有一个Course一次在其中吗 我知道我可以使用多重性来指定教室可以只开设一门课程 但这并不能完全指定在不同时间可以有除该一门课
  • staruml 抽象类?

    有谁知道如何使用 StarUML 创建抽象类 我在文档中找不到任何提及 是否有某种反映抽象类的更一般的概念 从工具箱中选择类并将其添加到画布中 然后转到属性选择 isAbstract 复选框 然后类名显示为斜体
  • 用例可以没有参与者吗?

    我正在研究全自动系统的用例图 外部系统只会触发该系统的一个用例 大多数其他用例都是计划任务并由计时器调用 我有一个由计时器调用的用例 它包含并扩展了其他两个用例 当我编写用例描述时 谁将成为 UC 2 和 UC 3 的参与者 用例可以在没有
  • Eclipse:如何安装 UML2 工具

    我想尝试 UML2 Tools for Eclipse 如图所示本教程 http www vogella de articles UML article html 我目前拥有面向 Java EE 开发人员的 Eclipse 3 6 Heli
  • 在 Papyrus UML 模型中使用 MARTE GQAM 构造型

    我正在尝试使用 MARTE GQAM 构造型来构造模型的某些元素 但在为其某些属性赋值时遇到麻烦 例如 我将两条生命线之间的消息定型为 我想为其 hostDemand 属性分配一个值 该属性应为 NFP Duration 实例 我看不到如何
  • Dia:图表编辑器:盒子对象的限制?

    如标题所示 我尝试为 hte 3d 图形引擎 ogre3d 开发尽可能少的方案 问题是大图方案 Ogre Root 类需要相当多的从它下降的箭头 用关系箭头连接框的模型是它们只能通过边界周围的特定点 称为 关节 或其他东西 进入 退出 但现
  • 绘制 UML 时何时使用属性(属性)而不是关联/聚合/组合

    好吧 我有点困惑 当尝试在 UML 图中显示关系时 我应该向类添加属性 还是绘制与类的关联 例如 假设我有一个 DFA 类 其中包含 10 个状态对象 每个状态对象都有一组不同的通往 DFA 中各种状态的路径 我应该绘制从 DFA 到 St
  • 如何使组合键唯一?

    I am making a database of students in one school Here is what I have so far 如果您不喜欢阅读 请跳至 简而言之 部分 问题是我对这个设计并不满意 我想要的组合gra

随机推荐

  • 独家专访LAION创始人:高中生与科学家同酬,Discord上一呼百应

    在LAION 大家都是无偿的 我们不像公司雇佣员工 所以我们不会付钱 一旦你开始付钱 就会有这样的讨论 高中生应该拿多少工资 谷歌的高级工程师应该拿多少工资 我已经有足够的钱过上好日子了 现在税后月收入4500欧元 2000欧元用来付房租
  • 华为商城官网下单工具

    华为mate60新机一经发布 就一机难求 研究华为商城手机下单代码 抓包分析 经过几天时间 下单搞定 先打开辅助登录工具 任意选定一款产品 登录商城 并点击立即下单到订单确认页 直到登录工具检测到登录信息 登录成功后 即可关闭辅助登录工具
  • Android:自动点击屏幕

    在开发的过程中会遇到自动测试功能 比如如何自动点击按钮进行测试 当然可以使用按键精灵等工具进行测试 不过如何在程序进程中测试呢 下面就介绍下adb shell的操作 通过shell进行点击等操作 1 模拟滑动 input swipe sta
  • FPGA project : usrt_rs232

    module uart rx parameter UART BPS d9600 CLK FREQ d50 000 000 input wire sys clk input wire sys rst n input wire rx outpu
  • 查看nginx安装位置

    您可以使用以下命令来查找nginx的安装位置 which nginx 该命令将输出nginx二进制文件的路径 默认情况下 nginx二进制文件通常位于 usr sbin nginx 您还可以使用以下命令来查找nginx配置文件的位置 ngi
  • redis五种数据类型对应的底层数据结构

    redis五种数据类型对应的底层数据结构 redis的五种数据类型 redis核心对象redisObject type数据类型 encoding编码类型 ptr指针 redis五种数据类型对应的底层数据结构 String字符串类型 SDS
  • linux命令行正确退出_从命令行正确执行所有操作

    UNIX 命令行是WYTIWYG界面 也就是说 您输入的就是您得到的 UNIX提供了数百个 甚至数千个 命令 您可以使用这些命令来操纵内核和用户空间中的各种可用资源 需要监控CPU使用率吗 尝试top或ps 是否需要删除所有以 bak结尾的
  • 基于个性化推荐技术的大数据课程推荐 个性化课程资料知识推荐系统

    基于个性化推荐技术的大数据课程推荐 个性化课程资料知识推荐系统 源码获取 https www bilibili com video BV1Ne4y1g7dC 基本任务 本次课题是基于个性化推荐技术的大数据课程个性化推荐系统 目的是给学生提供
  • windows中启动 java -jar 后台运行程序

    第一种需要一直开着dos界面 java jar jar文件路径 第二种无需一直开着dos界面 1 新建my service bat文件 内容如下 echo off START my service javaw jar science 0 0
  • 代理IP和Socks5代理:跨界电商与爬虫的智能引擎

    跨界电商 作为全球市场的一部分 对数据的需求越来越大 同时 随着互联网的发展 爬虫技术也在不断演进 成为了跨界电商的关键工具之一 然而 随之而来的是网站的反爬虫机制和网络安全风险 在这种情况下 代理IP和Socks5代理应运而生 为企业提供
  • 后台管理系统 一 登录模块

    目录 模板介绍 项目目录 环境变量 登录业务 完成静态组件 vuex js cookie 第三方库 书写api axios的二次封装 解决代理跨域问题 项目地址 https gitee com childe jia background s
  • ios7 UIAnimation

    视图1 UIView rootview01 UIView alloc init rootview01 tag 101 rootview01 frame CGRectMake 0 20 320 460 rootview01 backgroun
  • Maven + Eclipse + Android 环境搭建

    Android官方开发团队致力于为Ecilpse插件提供可靠的支持 而android maven plugin致力于将Maven Android和Eclipse串联在一起 m2e android是一个 Maven Integration f
  • Java中修饰符的作用

    1 访问控制修饰符 作用 用于控制被修饰变量 方法 类的可见范围 public的访问级别是最高的 其次是protected 默认和private 成员变量和成员方法有四个访问级别 公开 受保护 默认 私有 存在继承关系时 父类不可以priv
  • 业务流程图怎么画?一篇文章看懂

    今天从以下 2 个方面来详细拆解业务流程图 业务流程图的定义 业务流程图的绘制 一 业务流程图的定义 业务流程图是一种描述系统内各单位 人员之间业务关系 作业顺序和管理信息流向的图形图标 根据业务类型的不同 图形呈现上会有差异 分析业务流程
  • 【华为OD机试真题2023B卷 JAVA&JS】树状结构查询

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 树状结构查询 知识点递归哈希表 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 通常使用多行的节点 父节点表示一棵树 比如 西安 陕西 陕西 中国 江西 中国 中国 亚
  • html+js,兼容iphone和安卓的复制到剪切板功能

    剪切板 兼容iphone 兼容安卓 html div div 演示 div div js
  • Tomcat配置登录拦截功能

    Tomcat 设置登录验证 如果项目较小 设置简单的登录验证 可以通过tomcat设置登录功能 做到简单的项目拦截 添加登录验证后 访问项目的tomcat拦截的弹框如下 这里是将我的项目放到了tomcat webapps ROOT下了 这是
  • 安装 ANSYS19.0 最后一步 Add a License File 出现 Did not upload file - Error

    出现错误 Did not upload file Error The hostid in the license file is not a valid hostid for this license server machine 原因 生
  • [思维模式-11]:《如何系统思考》-7- 认识篇 - 克服片面、局部思维,转向全面思考 =》 UML

    目录 第1章 全面思考概述 空间 1 1 什么是全面思考 整体思考 1 2 全面思考的含义 1 3 程序的局部性原理 第2章 如何做到全面思考 2 1 本位思考 全局思考 2 2 大局观 既是一种格局 也是一种能力 2 3 软件架构师 系统