提升系统可演进性的架构设计
1. 引言
复杂的软件密集型系统,如 MRI 扫描仪,其需求不断变化。可演进性被定义为产品系列有效响应变化的能力,即能以可预测的最小努力和时间来适应不断变化的需求。可演进性并非系统本身的直接属性,而是取决于系统在开发和使用过程中的上下文,可用 BAPO(业务、架构、流程和组织)来表示。
本文聚焦于架构师如何提升系统的可演进性,不仅对系统和软件架构师有直接帮助,对管理者、设计师、研究人员等也有一定参考价值,有助于他们更好地理解可演进性。
2. 可演进性问题的主要原因
2.1 缺乏共享理解
这是可演进性问题最重要的原因。在处理复杂系统时,不同人员应共享以下方面的理解:
- 现有系统:其工作原理、结构、存在的变体及局限性。
- 当前需求:真正需要的是什么,目前尚未实现的是什么。
- 当前问题:最重要的问题有哪些,受影响的是谁。
- 组织目标:在产品和服务方面,我们希望何时实现什么目标。
需要共享这些理解的人员包括:
- 架构师、设计师和开发人员
- 各级管理人员
- 营销人员、应用专家、研究人员、顾问
- 其他利益相关者,如制造和服务人员
缺乏共享理解通常会导致局部优化的决策,而在系统层面往往会引发问题。这些问题在后期发现时,修复成本会高很多,甚至可能对整个系统或业务造成灾难性影响。
2.2 缺乏投资可演进性的动力
资源有限时,对可演进性的投资需与其他投资竞争,如开发具有改进功能或质量的新产品。可演进性投资往往需要更长时间才能获得回报,而改进后的产品
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



