1 系统工程 - 1.1 系统工程

0 阅读7分钟

一、主线

系统工程本质在讲一句话:用“整体视角 + 分维度方法”,把一个复杂系统从“想清楚 → 设计好 → 做出来 → 管起来 → 持续优化”跑通。

可以落地执行的核心就3点:

1)先看整体,不要一上来写代码(先搞清楚系统是什么)

2)用“多维度拆解”理解系统(结构、时间、知识)

3)用方法论把事情走完整闭环(分析 → 设计 → 实施 → 反馈)

一句金句总结:

系统工程不是“做系统”,而是“让系统变得可控”。


二、补充的细节

1)系统工程核心概念

系统工程利用计算机作为工具

对系统的结构、元素、信息和反馈等进行分析

以达到最优规划、最优设计、最优管理和最优控制的目的

从整体出发、从系统观念出发,以求整体最优

规划→设计→管理→控制

生活类比: 像做一顿大餐

  • 规划:决定吃什么
  • 设计:写菜单 + 选食材
  • 管理:安排谁切菜谁做饭
  • 控制:火候、时间、味道调整

程序员类比:

  • 规划:需求分析(PRD)
  • 设计:架构设计(微服务?单体?)
  • 管理:项目管理(Jira、Sprint)
  • 控制:监控+回滚+限流

金句:

系统失败,80%不是技术问题,是“前面没想清楚”。


【知识点拆解表格】

系统工程定义

系统工程利用计算机作为工具

对系统的结构、元素、信息和反馈等进行分析

以达到最优规划、最优设计、最优管理和最优控制的目的

从整体出发、从系统观念出发,以求整体最优

拆解举例总结
a1: 系统✅ 电商系统 ❌ 一个函数 ❌ 单接口 ❌ 单人任务逻辑关系:a1(系统)+a2(结构)+a3(元素)+a4(信息)+a5(反馈)+a6(分析)=系统工程 核心是“对系统多维要素进行分析以实现整体优化” 重点排序:a2>a3>a5>a4>a1>a6
a2: 结构✅ 微服务架构 ❌ 无架构 ❌ 全耦合 ❌ 无层次
a3: 元素✅ 模块/服务 ❌ 无拆分 ❌ 巨类 ❌ 无边界
a4: 信息✅ 数据流 ❌ 无数据传递 ❌ 黑盒 ❌ 无日志
a5: 反馈✅ 监控/告警 ❌ 无反馈 ❌ 无回路 ❌ 无优化机制
a6: 分析✅ 建模/评估 ❌ 不分析 ❌ 直接开发 ❌ 无设计

2)霍尔三维结构(重点!)

一句话理解: 从3个维度“立体看系统” 本质:从“是什么+怎么走+用什么知识”三维理解

  • 逻辑维: 系统“长什么样”(结构)
  • 时间维: 系统“怎么一步步来”(流程)
  • 知识维: 系统“需要什么能力”(领域知识)

生活类比:

买房

  • 逻辑维:户型结构(几室几厅)
  • 时间维:看房→贷款→装修→入住
  • 知识维:房产政策、贷款利率

程序员类比:

做一个系统

  • 逻辑维:架构图(服务拆分)
  • 时间维:开发流程(dev→test→prod)
  • 知识维:业务知识(金融/医疗)

金句:

不会三维看问题的人,只是在“平面写代码”。


【知识点拆解表格】

霍尔三维结构

拆解举例总结
a1: 逻辑维✅ 微服务拆分 ❌ 所有逻辑堆一起 ❌ 无模块 ❌ 无依赖关系逻辑关系:a1(结构)+a2(时间)+a3(知识)=完整系统认知 重点排序:a1 > a2 > a3
a2: 时间维✅ 需求→开发→上线 ❌ 跳步骤 ❌ 无阶段 ❌ 无生命周期
a3: 知识维✅ 医疗系统需医学知识 ❌ 只会写代码 ❌ 不懂业务 ❌ 忽略行业规则

3)切克兰德方法(7步法)

一句话: 解决问题的标准流程(像debug复杂bug)

流程记忆:

发现问题 → 定义本质 → 建模 → 对比 → 选择 → 实施 → 反馈

生活例子:

公园管理差

→ 调研

→ 定义“核心问题是维护系统”

→ 设计方案

→ 对比现状

→ 决策

→ 实施

→ 收集反馈

程序员类比:

线上BUG

  • 复现问题
  • 定位根因
  • 建立修复方案
  • 对比方案
  • 选方案
  • 修复上线
  • 观察日志

金句:

不会定义问题的人,永远在解决错的问题。


【知识点拆解表格】

切克兰德方法

拆解举例总结
a1: 认识问题✅ 用户投诉 ❌ 不调研 ❌ 主观判断 ❌ 忽略数据逻辑关系:a1→a2→a3→a4→a5→a6→a7=完整问题解决流程 重点排序:a2 > a1 > a3 本质:先定义问题,再解决问题
a2: 根定义✅ “系统维护差” ❌ “感觉不好” ❌ 模糊 ❌ 多问题混一起
a3: 概念模型✅ 流程图 ❌ 无模型 ❌ 直接写代码 ❌ 无抽象
a4: 比较分析✅ 对比现状 ❌ 不验证 ❌ 不测试 ❌ 无数据
a5: 选择✅ 选最优方案 ❌ 随便选 ❌ 不评估 ❌ 情绪决策
a6: 实施✅ 落地执行 ❌ 只停留在方案 ❌ 不推进 ❌ 无计划
a7: 反馈✅ 用户反馈 ❌ 不复盘 ❌ 不优化 ❌ 无监控

4)并行工程

一句话: 不要排队干活,要一起干(但要有人统筹)

生活类比:

装修房子

  • ❌ 串行:刷完墙才买家具
  • ✅ 并行:装修+选家具同时进行

程序员类比:

  • 前端、后端、测试同时推进
  • DevOps同时搭环境

金句:

并行不是混乱,是“有组织的同时进行”。


【知识点拆解表格】

拆解举例总结
a1: 并行执行✅ 前后端同时开发 ❌ 一个做完再做另一个 ❌ 阻塞 ❌ 等待逻辑关系:a1(并行)+a2(协调)+a3(工具)=并行工程 重点排序:a2 > a1 > a3 本质:效率来自并行,但稳定来自协调
a2: 协调机制✅ 项目经理 ❌ 无负责人 ❌ 冲突 ❌ 资源争抢
a3: 工具支持✅ Jira/CI ❌ 无工具 ❌ 手工管理 ❌ 信息不同步

5)综合集成方法

一句话: 不是拼积木,是做“一个有机整体”

生活类比:

人 ≠ 头+手+脚

而是“协同运作的整体”

程序员类比:

  • 微服务不是服务堆砌
  • 是“协同系统”

金句:

功能堆叠 ≠ 系统能力


6)SR方法(物理+事理+人理)

一句话: 系统必须同时考虑:技术 + 规则 + 人性

程序员类比:

  • 物理:代码/架构
  • 事理:流程/制度
  • 人理:用户体验/习惯

金句:

不懂用户的人,写不出好系统。


三、跟自己的关系

最后一句总结金句: 写代码是解决问题,系统工程是“决定你在解决什么问题”。

① 已经会的部分:
  • 并行开发(前后端协作)
  • 系统拆分(模块化设计)
  • 基本生命周期(开发流程)
② 需要重复去通透的部分:
  • 霍尔三维(容易只看“逻辑维”)
  • 根定义(容易直接写代码,不抽象问题)
  • 综合集成(容易“功能堆砌”)
  • SR方法(忽视“人理”——用户行为)

本质问题:

你现在更像“工程实现者”,而不是“系统设计者”


四、印象深刻的话

1)“系统工程是从整体出发,求整体最优”

→ 反应:我以前总是在优化某个模块,而不是系统

2)“规划→设计→管理→控制”

→ 联想:这就是一个完整的软件生命周期

3)“系统不是各部分简单相加”

→ 案例:微服务拆太碎,结果更复杂

4)“先定义问题,再解决问题”

→ 疑问:我写代码前,有没有真正定义问题?

5)“并行不是混乱,而是协调”

→ 联想:团队乱,本质是没有协调机制

6)“要懂物理、明事理、通人理”

→ 反应:我现在只会“写代码”(物理),缺后两者


五、选择题(巩固)

1)系统工程的核心目标是:

A. 完成功能

B. 提高代码质量

C. 整体最优

D. 提高开发速度

答案:C


2)霍尔三维中“逻辑维”指:

A. 时间顺序

B. 系统结构

C. 业务知识

D. 生命周期

答案:B


3)以下属于并行工程的是:

A. 前端完成后再做后端

B. 后端完成后再测试

C. 前后端同时开发

D. 先设计再全部开发

答案:C


4)切克兰德方法中最关键的是:

A. 实施

B. 反馈

C. 根定义

D. 选择

答案:C


5)SR方法中“人理”指:

A. 技术实现

B. 管理制度

C. 用户行为

D. 数据结构

答案:C