知识卡片

系统描述的三种维度:功能、结构、行为

结构图卡

内容

架构设计”由干什么推导出是什么和怎么干”这个定义,本身就隐含了描述系统的三个维度。功能维度描述系统”干什么”,可以进一步拆成外部功能与内部功能——外部功能决定系统能带来的价值,评估时可以把系统当黑盒,只关心它对外提供什么(如汽车的载客、运输);内部功能是为了支撑外部功能而存在的内部构成(如汽车靠发动机实现加速、靠方向盘实现转向);两者同等重要,外部功能定义了系统边界、决定了用户对系统的认识与体验,内部功能配备是否合理则直接决定外部功能的实现效果——研发不同阶段该关注哪个层次的功能维度是不一样的,把两者分开看有助于在特定阶段屏蔽不必要的因素、聚焦真正重要的部分。结构维度描述系统”是什么”,从静态角度描述系统包含的各个实体(如电商系统的订单、支付、购物车、物流)以及实体之间的关系;结构与功能紧密相关但角色不同——结构是基础,在一段时间内相对静态,体现系统本身的样貌,而系统存在的目标是创造价值,价值只能靠功能的实现来兑现,所以结构需要通过功能才能体现出价值;反过来,功能是目标,实现功能又必须依赖某种结构(不论物理还是虚拟)来承载。行为维度描述系统”怎么干”,需要一个行为体(用户或定时任务等)介入,触发结构中的各个实体依次参与、完成各自任务后传递给下一个实体,这些链路串联起来构成行为;行为维度的关键作用是把功能和结构关联起来——功能只说明”做什么”,行为进一步说明”如何通过一连串动作、依赖结构参与来实现这个功能”。

结构图

flowchart TB
  F["功能维度:干什么"]
  F --> F1["外部功能<br/>(黑盒视角,定义系统边界与价值)"]
  F --> F2["内部功能<br/>(支撑外部功能的内部构成)"]
  S["结构维度:是什么<br/>(实体+实体间关系,相对静态)"]
  B["行为维度:怎么干<br/>(行为体驱动实体依次动作)"]
  F -->|依赖结构承载| S
  S -->|通过功能体现价值| F
  B -->|串联| F
  B -->|依赖| S

参考来源

- 位置:《架构师启示录:知识模型、落地方法与思维模式》第2章《信息交换》之"2.1 系统描述的3种维度"(源文件:_epub-src/EPUB/xhtml/chapter5.xhtml) - 结论依据:原文说明"这个定义中隐含了描述系统的3个维度:功能维度、结构维度和行为维度……外部功能主要决定了系统所能带来的价值……内部功能通常是为了实现系统的外部功能……系统的结构需要通过功能实现才能体现出价值……行为维度很好地将功能和结构关联起来", 直接支撑本卡关于三种维度及其相互关系的结构图。 - 原始内容:对于一个系统来讲,其外部功能和内部功能同等重要。外部功能定义了系统的边界,是系统与外界交互的窗口。