什么是架构设计

架构设计的本质

软件架构设计是指对一个软件系统进行架构定义、文档编写、维护和改进并验证实现的一系列活动

从本质上来看,架构设计是一个过程,是将上述一系列围绕软件系统展开的活动进行组合的统称。

根据来源资料,架构设计这一过程主要包含以下四个维度的核心内容:

1. 架构定义:其主要目的是将架构的形式具体地定义出来。

2. 文档编写:这不仅限于画几幅架构图,更关键的是需要通过编写配套的架构设计文档,将设计的理念和思想准确地传达给他人。

3. 维护和改进:架构设计并不是一次性就能做得完美的,它实际上处于不断的演化和变动中,因此需要持续对架构进行维护和优化。

4. 验证实现:为了避免设计沦为无法落地的“PPT架构”,必须通过验证来证明该架构设计是合理的、能够达成既定目标的,并且是一个相对较优的设计方案。

此外,架构设计架构之间存在着明确的**“过程与结果”**的关系。架构设计的产物(结果)是“架构”,而架构设计本身则是产生这一结果所经历的活动过程。

软件架构设计的因果逻辑与演化之道

在架构设计的背景范畴下,主要体现了两种层面的“因果关系”:一种是宏观上的“过程与结果”关系,另一种是微观上的“需求与行动”驱动关系

以下是详细的讨论:

1. 宏观因果:设计活动导致了架构的产生(Process  Result)

这是来源中最核心、最明确指出的因果逻辑。架构设计被定义为“因”(过程),而架构则是“果”(产物)。

• 因(过程): 架构设计不仅仅是一个静态的概念,而是一个动态的过程,是围绕软件系统进行的“一系列活动的组合”。

• 果(结果): 这一系列活动最终必须产出一个成果。来源明确指出,“架构设计的产物其实就是结果……这个结果或者是产物吧,这样指的就是咱们的架构”。

• 关系总结: 来源强调,“架构是结果,架构设计是过程”,这就是它们之间最本质的关系。没有设计过程这一“因”,就不会有架构这一“果”。

2. 微观因果:特定目标驱动了特定活动(Goal  Activity)

在架构设计这一过程内部,每一个核心活动的存在都有其特定的因果逻辑,即“为了解决什么问题(因),所以必须进行什么活动(果)”:

• 为了确立形式  架构定义 做架构设计的直接原因,就是“为了把这个架构形式给我定义出来”。

• 为了思想传达  文档编写 仅仅画图是不够的,为了将“设计理念”和“思想传达出去”,所以我们需要“配套呢去编写一些架构设计相关的文档”。

• 为了应对变化  维护和改进 因为设计“并不是一下就做得那么完美”且处于“不断的演化”和变化当中(因),所以我们需要对架构进行“维护和改进”(果)。

• 为了落地可行  验证实现 为了避免设计变成无法落地的“PPT架构”,为了“证明咱们这样做架构是合理的……是一个相对较优的设计”(因),所以我们需要进行“验证实现”(果)。

打个比方

为了更好地理解这种因果关系,我们可以将其比作**“绘画”**:

• 宏观因果(过程与结果): “绘画”(动词,即架构设计) 是挥洒颜料、构图、修改的一系列过程;而这一过程产生的必然结果是那一幅挂在墙上的 “画作”(名词,即架构)

• 微观因果(目标与行动):

    ◦ 因为想好了要画什么(定义),所以勾勒轮廓;

    ◦ 因为怕别人看不懂画的意境(传达),所以要写上题跋或介绍(文档);

    ◦ 因为发现颜色涂错了或不满意(不完美/变化),所以要进行修补和复笔(维护改进);

    ◦ 因为要确保画框能挂得稳且画纸不会烂(可行性),所以要选择合适的材质并试挂(验证)。