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

news2025/7/18 12:49:18

目录

第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不仅仅可以描述软件系统的工作方式,也可以用来描述任何组织的工作方式。

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

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

相关文章

【SpringMVC】下篇,拦截器(一步到位学会它)

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【Spring】 🥭本文内…

Java项目:springboot私人牙医管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 私人牙医管理系统。该项目分为前后台,共三种角色:管理员、医生、客户; 前台主要功能包括:首页、…

【记录】Tiff图像的前处理,median blur filter 及 linear stretch

文章目录读取Tiffmedian blur filter 中值滤波器替换百分位值值域变成[0,255]从Google Earth Engine上下载的sentinel-1遥感影像(float32)。对于SAR影像在使用前可以做如下前处理:去除SAR噪点替换百分位2%以下及百分位98%以上的点linear stretch 将sentinel-1的值域…

【web3】使用web3.js发布并执行智能合约

前言 昨天我们学习了使用 web3.js 库查询链上区块和交易的用法,今天我们来介绍一下使用 web3.js 与智能合约的交互。在学习本节前,你应该对智能合约有一定的了解。 智能合约的生命周期包括 创建、发布、执行 以及 销毁。 创建:在 Remix 中…

华为云CDN,助力电商平台无惧流量洪峰

对于电子商务平台来说,接连不断的促销活动支撑着电子商务的基本运作,并且频率越来越高。618、双11、双12等越来越多的购物节创造了消费高峰,这就要求企业的网络基础设施能够承受住用户流量的洪峰。 目前,电子商务在网站运营上常常…

JavaWeb学习之MVC、jstl、El表达式06

目录 1.MVC:开发模式 2 mvc三层架构 2.EL表达式 1.使用 2.获取值 1.${域名称.键名} 2 ${键名} 3.隐式对象 3.jstl学习 1.概念 2.作用 3.使用步骤 4,常用的]STL标签 1.MVC:开发模式 1.jsp演变历史 1,早期只有servlet,只能使用response输出标签数据,非常…

艾美捷 24孔细胞划痕试验试剂盒检测原理说明

受伤的组织会引发一系列复杂而结构化的事件,以修复受损的组织区域这些事件可能包括血管生成因子增加血管化增殖和细胞外基质沉积,以及炎症免疫细胞的浸润破坏坏死组织的过程。伤口愈合过程开始于细胞向伤口,开始突出,迁移&#xf…

Html+JavaScript+Css 二手车价格评估系统设计开发

目录 一、系统设计技术及平台介绍 二、系统总体设计图 三、软件模块实现 3.1 登陆注册模块 3.2 主界面 3.3 车辆评估界面 3.4 评估记录界面 3.5 评估结果界面 3.6 个人信息界面 四、数据库实体设计 五、重置成本法简介 六、相关代码 6.1 登陆界面代码 6.2 主界面…

【TypeScript】TS安装与使用

目录 初识TypeScript TypeScript给JS添加类型支持的原因 TypeScript相比JS的优势 TS工具包的安装 TS文件的编译和运行 简化TS的运行步骤 初识TypeScript TypeScript(简称:TS)是JavaScript的超集(JS有的TS都有)。…

Python编程 制作一个超级浪漫的新年倒计时(附源代码)

作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.新年介绍 二.代码介绍 1.应用的技术 (1)Pyga…

Java项目:springboot电影推荐网站

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 springboot电影推荐网站。本系统采用企业级开发标准,使用SpringBoot架构,数据访问层采用Spring Data Jpa,业…

工具(二):Nginx 扩展 OpenResty

OpenResty 介绍OpenResty 原理Nginx 模块Nginx的 lua插载点案例 配置模板nginx.conf通过Lua找到静态文件 — 商品页通过Lua 获取 redis 只返回 — 库存test 其他Demo MysqlOps.luaRedisExtOps.luaredisOps.lua 辅助工具类说明 自动生成静态页FTP 工具 Nginx_有5大优点&#x…

职场经验:游戏测试的主要工作及主要流程

01 游戏测试主要内容 1、功能测试 功能测试是游戏测试中最常见的模式,主要测试方法为黑盒测试 功能测试主要用来验证功能是否符合需求设计 功能测试主要考虑正确性,而不考虑游戏底层结构及代码错误 功能测试通常从界面着手开始测试,尽量…

【架构师(第五十一篇)】 服务端开发之技术方案设计

接口设计 把 server 端当做一个黑盒,它将如何与前端通讯? 功能范围 B 端,用户注册,作品管理,模板管理编辑器,单个作品的内容获取,修改,预览和发布 功能拆分 用户信息相关作品管…

线上牛奶配送

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 基于Java的线上牛奶配送系统的设计与实现 风网站前台:网站介绍、联系我们、公告信息、套餐类型、牛奶套餐、…

Linux-4 文件管理

Linux-4 文件管理 文件管理概述 谈到Linux文件管理,首先我们需要了解的是,我们要对文件做些什么事?其实无非就是对一个文件进行创建,复制,移动,查看,编辑,压缩,查找&am…

自己个人拥有一个可以支付功能的网站?当然可以了!保姆级演示!

文章目录前提条件演示应用申请开通和配置应用创建应用配置代码开发后端实例前端代码实例源码前提条件 这是必要条件!!! 这是必要条件!!! 这是必要条件!!! 开通当面付&am…

人脸检测和对齐算法MTCNN

1. 概述 人脸识别在实际的生活中有着广泛的应用,得益于深度学习的发展,使得人脸识别的准确率得到大幅度提升。然而,为了做好人脸识别,第一步需要做的是对人脸检测,主要是通过对图片分析,定位出图片中的人脸…

Java项目:springboot网上点餐系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 功能介绍 SpringBoot在线订餐系统项目。主要功能说明: 分为两个角色,餐厅老板、普通用户 餐厅老板可以登录,注册&…

质量不错的蓝牙耳机有哪些?2023年值得选购的四款蓝牙耳机

现如今,蓝牙耳机越多人使用,不同于有线耳机,蓝牙耳机更为方便,没有线束的困扰,走到哪也不用带上手机一起,特别便利。然而,随着蓝牙耳机市场的旷大,各种类型各种样式的耳机五花八门&a…