MindMap
mindmap
root((软件架构的
演化和维护))
软件架构演化和定义的关系
面向对象软件架构演化过程
软件架构演化方式的分类
软件结构演化原则
软件架构演化评估方法
大型网站系统架构演化实例
软件架构维护
软件架构演化和定义的关系
演化的重要性
- 保障软件系统具备诸多好的特性
- 有效管控软件系统的整体复杂性和变化性,降低软件检修和修改成本
- 保证软件系统演化的一致性和正确性,增加便捷性
演化和定义的关系
- 组件
- 连接件
- 约束
面向对象软件架构演化过程
- 对象演化
- 消息演化
- 复合片段演化
软件架构演化方式的分类
- 静态演化
- 动态演化
软件结构演化原则
- 演化成本控制原则
- 进度可控原则
- 主体维持原则
- 系统总体结构优化原则
软件架构演化评估方法
评估流程:将架构度量应用到演化过程中,通过对演化前后的不同版本的架构分别进行度量,得到度量结果的差值及其变化趋势,并计算架构间质量属性距离,进而对相关质量属性进行评估
大型网站系统架构演化实例
- 单体架构
- 垂直架构
- 使用缓存改善网站性能
- 使用服务集群改善网站并发能力
- 数据库读写分离
- 使用反向代理和 CDN 加速网站响应
- 使用分布式文件系统和分布式数据库系统
- 使用 NoSQL 和搜索引擎
- 业务拆分
- 分布式服务
软件架构维护
架构知识=架构设计+架构设计决策
架构可维护性的 6 个度量指标
- 圈复杂度(CNN)
- 扇入扇出度(FFC)
- 模块间耦合度(CBO)
- 模块的响应(RFC)
- 紧内聚度(TCC)
- 松内聚度(LCC)
Referecne
graph LR
A[] --> B[]
B --> C[]
C --> D[]
D --> E[]
E --> F[]
F --> G[]
B -.-> |O:N| D