软件架构设计
1 软件架构概述
1.1 软件架构的定义
架构是对系统的抽象,由多个架构组成,任何软件都存在架构,元素与其行为的集合构成架构内容,架构具有“基础性”,架构隐含有“决策”。
1.2 软件架构重要性
项目关系人之间交流平台;
早期设计决策;
在较高层面上实现软件复用;
架构对开发的指导与规范意义不容忽略。
1.3 架构的模型
结构模型;框架模型;动态模型;过程模型;功能模型;
逻辑视图,开发视图,进程视图,物理视图,场景。
2 架构需求与软件质量属性
2.1 软件质量属性
功能性;可靠性;易用性;效率;可维护性;可移植性;
1 运行期质量属性
性能;安全性;易用性;可伸缩性;互操作性;可靠性;持续可用性;鲁棒性;2 开发期质量属性
易理解性;可扩展性;可重用性;可测试性;可维护性;
2.2 六个质量属性与实现
质量属性:可用性;可修改性;性能;安全性;可测试性;易用性;
质量属性场景组件:刺激源;刺激;环境;制品;响应;响应度量;
- 1 可用性与其实现战术
可用性描述
可用性战术
错误检测:命令/响应;心跳;异常;
错误恢复
表决;主动冗余;被动冗余;备件;状态再同步;检查点/回滚;
错误预防
从服务中删除;事务;进程监视器; - 2 可修改性与其实现战术
可修改性描述
可修改性战术
局部化修改;(维持语义的一致性;预期期望的变更;泛化该模块;限制可能的选择)
防止连锁反应;(信息隐藏;维持现有的接口;限制通信路径;仲裁者的使用)
推迟绑定时间;(运行时注册;配置文件;多态;构件更换;) - 3 性能与其实现技术
性能描述
性能战术
资源消耗:闭锁时间;
资源需求:减少处理事件流所需的资源;减少所处理事件的数量;控制资源的使用;
资源管理:引入并发;维持数据或计算的多个副本;增加可用资源;
资源仲裁:先进先出;固定优先级调度;动态优先级调度;静态调度; - 4 安全性与其实现技术
安全性描述
安全性战术
抵抗攻击:对用户进行身份验证;对用户进行授权;维护数据的机密性;维护完整性;限制暴露的信息;限制访问;
检测攻击
从攻击中恢复:恢复;识别攻击者; - 5 可测试性与其实现战术
可测试性描述
可测试性战术
输入/输出:记录回放;将接口与现实分离;优化访问线路
内部监控 - 6 易用性与实现战术
易用性描述
易用性战术
运行时战术:任务的模型;用户的模型;系统的模型;
设计时战术
支持用户主动操作
常见的六个质量属性:可用性、可修改性、性能、安全性、可测试性、易用性。