产品架构开篇
“也许产品架构最重要的特征是它的模块化。
Perhaps the most important characteristic of a product’s architecture is its modularity.”
— Karl Ulrich
产品架构是将产品的功能元素分配给其构建块或产品组件
模块化架构具有以下特性:
- 产品组件整体上实现一个或几个功能元素
- 组件之间的相互作用定义明确,通常是产品主要功能的基础
最具模块化的架构是这样的:产品的每个功能元素都由一个构建块来实现,并且在构建块之间有一些定义明确的交互。
建议使用设计结构矩阵(DSM)来衡量系统的模块化程度。 Alan MacCormack及其合作者展示了如何计算系统的传播成本propagation cost,从而衡量了系统的模块化程度。
哈佛商学院的作者使用DSM表明,与紧密耦合组织相比,一个松散耦合的组织开发的产品的模块化设计要比紧密耦合的组织更模块化。
模块化架构的反面是一个整体架构,其中功能元素的实现分布在各个构建块之间,从而导致高度的耦合。 它具有下面的一个或多个特性:
- 产品的功能元素不仅仅使用产品组件来实现
- 功能元素的实现可以分布在多个组件中
- 单个组件实现许多功能元素
- 组件之间的交互作用不明确
在整体架构中,许多功能元素可以组合为几个产品组件,以优化性能。 但是,修改可能需要对产品进行重大的重新设计。产品架构决策对产品种类、组件标准化、产品性能、可制造性和产品开发具有深远的影响。
我们将在产品架构中分为以下四部分进行讲解:
- 定义产品架构
- 互赖和依赖性
- 模块化和整体性权衡
- 产品平台