一旦架构师选择了重要的架构特征,他们会把变更引导进入架构,以保护这些重要特征。为此,我们借用演化计算中的一个概念: 适应度函数 。该函数是一种目标函数,用于计算潜在的解决方案与既定目标的差距。在演化计算中,适应度函数决定一个算法是否在持续提升。换句话说,随着每个算法变体的产生,基于设计者对算法“适应度”的定义,适应度函数决定每个变体的“适应程度”。
对于演进式架构,随着架构的演进,我们有着类似的需求。我们需要评估机制,来评估变化对架构重要特征的影响,并防止这些特征随着时间的推移而退化。适应度函数的隐喻涵盖多种机制,包括度量、测试和其他检验工具。我们采用这些机制来确保架构不会以不良方式变更。当架构师确定了需要保护的架构特征时,他们会定义一个或多个适应度函数来提供保护。
以往,架构往往要划出一部分作为管理活动,最近架构师才接受了通过架构实现变更的思想。架构适应度函数允许在组织需求和业务功能的上下文中制定决策,并为明晰且可测试的决策奠定了基础。演进式架构并不是毫无约束或不负责任的软件开发方式。相反,它可以在高速变迁的业务、严谨的系统需求和架构特征间找到平衡。适应度函数驱动架构设计决策,并引导架构变更适应业务和技术环境的变化。
第 2 章将详细介绍使用 适应度函数 指导架构演进。