架构是系统运行时的高层抽象。
架构是系统设计的一部分。它突出了某些细节,并通过抽象省略掉另外一些细节。所以,架构是设计的一个子集。关注实现系统组件的开发者可能不会特别关心所有组件如何装配在一起,而是关注少数组件的设计和开发,包括他们必须遵守的架构约束和可以应用的规则。开发者和架构师面对的是系统设计的不同方面。
1、架构原则与特性
原则或特性 能够......
功能多样性 ...提供“足够好”的机制,利用简洁的表达来处理各种问题
概念完整性 ...提供单一的、最优的、无冗余的方式来表示一组类似问题的解决方案
修改独立性 ...保持他的元素的独立性,这样就能够让需要的修改最少,从而适应变化
自动传播 ...通过在模块间传播数据或行为,保持一致性和正确性
可构建性 ...指导软件进行一致、正确的构建
增长适应性 ...考虑到可能的增长
熵增抵抗性 ...通过适应、限制和隔离变化的影响来保持有序
2、架构结构
结构 结构能够
模块 ...将设计或实现决定隐藏在一个稳定的接口之后
依赖关系 ...按照一个模块使用另一个模块的功能的方式来组织模块
进程 ...封装并隔离一个模块的运行时状态
数据访问 ...隔离数据。设置数据访问权限
3、架构设计的方法
Roy Thomas Fielding 在他的博士论文里介绍了两个架构设计的方法。
- 根据已存在的一组架构风格做为基础进行修改调整。以得到满足目标架构约束的一种架构风格(也可以是具体的架构)
- 分析目标架构的各种约束条件,根据约束条件选择模式,通过模式组合形成一种满足所有(或者大部分)约束条件的目标架构。(具体模式和约束条件的对应关系,以及论证可以参见论文)
另外还有 RUP 的 4+1 的视图方法。或者《软件架构设计》上说的五视图方法。
时间: 2024-10-11 22:51:33