1
1
软件架构设计
2
软件架构基础
3
架构的概念
• 架构师的角色:
– 系统的规模
– 系统的分布
• 架构满足风险管理的需要
– 高层规划的目标:
•部分失效时系统的强健性
•处理请求负载
•并发使用的扩展能力
2
4
• 架构的功能
– 技术职责
•标识对架构重要的用例
•指导架构原型的开发
– 管理职责
•成本管理
– 技术和风险转移的方法
•沟通管理
– 与项目干系人和团队成员的有效合作的沟通技巧
5
•架构功能和设计功能
功能性需求非功能性需求,风险管
理
关注点
组件设计,代码规范系统和子系统规划,架
构原型
提交物
底层的、特定的,关注
更多的细节
高层的、广泛的 ,很少
关注细节
抽象级别
设计架构
6
• 面向对象的分析和设计职责
– 基于组件设计的关键:
•抽象
•封装
•内聚
•耦合
3
7
•系统架构师
–可视化硬件和服务器软件的设计与实现
–有数据库设计、容量规划、服务器集群、负载
平衡及容错策略等方面的经验
–提供支持RAS的部署环境
–通常称为系统架构师或基础平台架构师
8
• 应用架构师
– 可视化应用软件和组件集成的设计和实现
– 有典型的业务应用、集成应用和OO方法方面的经验
– 提供实现端到端功能并支持非功能性需求的应用结构
9
架构的关键点
• 架构的关键点
– 架构过程
– 实现技术
– 风险管理
– 模式使用
– 原型开发
4
10
• 创建满足QoS需求的蓝图
– 典型的架构文档
•愿景文档
•需求规范
•风险识别和转移计划
•应用的域模型
•上下文环境描述
•项目计划
•假设列表
11
• 评估实现技术
– 考虑技术决策点
– 确保团队正确地使用了所选技术
12
• 识别及控制风险
– 非功能性需求
•业务规则
•约束
•系统质量
– 风险评估
– 成本分析
5
13
• 使用适当的模式
– 设计模式
•支持功能性需求
– 架构模式
•支持非功能性需求
14
• 开发原型
– 架构原型描述系统并按照经验确定计划是否得到满足
– 包括:
•域模型
•交互图
15
系统架构设计指南
• 识别关键的风险因素
– 系统的灵活性
– 网络通信和布局
– 事务模型
– 成本管理