知识卡片

静态结构与动态结构是两种独立视角

普通读书笔记卡 · 2046

内容

系统结构可以从两个独立维度描述:静态结构是设计时的元素组织形式(有哪些模块/类/表,它们如何依赖),动态结构是运行时的元素交互(谁给谁发消息、谁调用谁、数据如何被创建和销毁)。两者紧密相关但并不相同——同一个客户端元素在静态结构里只出现一次,但在动态结构模型里会因为多个并发用户而多次出现。混淆这两者会导致设计讨论鸡同鸭讲:一方在说”有什么”,另一方在说”怎么跑起来”。

参考来源

- 位置:第2章《软件架构概念》2.1.1节「系统元素和关系」(源文件:_epub-src/OEBPS/text00011.html附近) - 结论依据:原文明确定义静态结构(设计时元素及排列)与动态结构(运行时元素及交互)为两种不同结构类型,并用客户端/服务器例子说明同一元素在两种结构模型中的出现次数不同,直接支持卡片结论。 - 原始内容:"系统的静态结构定义了它的内部设计时元素及其排列方式……系统的动态结构定义了它的运行时元素及其之间的交互……这两种类型的结构并不相同。例如简单的客户端/服务器系统……这会作为静态结构元素出现一次,但是它会在动态结构模型中多次出现(对每个活动用户都会出现一次)。"