代码的艺术:用工程思维驱动软件开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.6.3 什么是系统架构

在系统设计中,一个非常重要的内容是“系统架构”。

什么是系统架构?这个问题我也多次在现场交流时问过大家,我发现很多工程师都说不清楚。

关于系统架构,维基百科也给出了一个非常好的定义。

A system architecture is the conceptual model that defines the structure, behavior, and more views of a system.

(系统架构是概念模型,定义了系统的结构、行为和更多的视图。)

关于这个定义,从字面上可以这样理解:

(1)系统架构是一个“概念模型”(Conceptual Model)。

(2)系统架构定义了系统的结构(Structure)、行为(Behavior),以及更多的视图(More Views)。

关于这个定义,这里给出另外一种解读,供大家参考。

(1)静。首先,从静止的角度,描述系统如何组成,以及系统的功能在这些组成部分之间是如何划分的。这就是系统的“结构”。一般要描述的是:系统包含哪些子系统,每个子系统有什么功能。在做这些描述时,应感觉自己是一名导游,带着游客在系统的各子系统间参观。

(2)动。然后,从动态的角度,描述各子系统之间是如何联动的,它们是如何相互配合完成系统预定的任务或流程的。这就是系统的“行为”。在做这个描述时,应感觉自己是一名电影导演,将系统的各种运行情况通过一个个短片展现出来。

(3)细。最后,在以上两种描述的基础上,从不同的角度,更详细地刻画出系统的细节和全貌。这就是“更多的视图”。

经过静、动、细三方面的描述,我们可以在脑海中“清楚地看到”一个系统。

另外,在一个系统中,系统架构在多个层次都有所体现。“总体设计”中包含对系统总体的系统架构描述;“子系统设计”中包含对子系统的系统架构描述。在这两个设计中,使用的设计方法是类似的,只是所在层次不同而已。