构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。
异质的体系结构(Heterogeneous Architectures)
组合方式聚合方式
组件的体系结构。例如:编译器中的文法分析组件
联合放式
某一个组件或连接件成为两种以上体系机构联系的纽带
可能是聚合方式的展开
例如:视频点播系统
混合方式
把多种体系结构的优点,混合使用。主要体现在连接件的混合使用。
例如:事件驱动的CASE系统。
B/S与C/S混合软件体系结构内外有别模型
查改有别模型
对等网(P2P)特点:
整体稳定,不会因为一点的错误影响全局
资源共享,任务分摊
我为人人,人人为我
每点还要承担一定量的中转负荷
对网络带宽占用极大
内容很难有效控制
质量属性:质量属性场景:
刺激源
刺激
制品
环境
响应
响应量度
系统质量属性:U-STAMP
可用性 availability
可修改性 modifiability
性能 performance
安全性 security
可测试性 testability
易用性 usability
设计体系结构: Tactics:满足特定质量属性的具体设计手段
Availability tactics:
尽可能降低“故障”所造成的影响
故障检测
故障恢复:备份的方法
错误避免:
modifiability tactics:
关注的是:
时间和花费
局部化修改
保持语义的一致性
预期期望的变更
一般化模块
限制可能的选项
阻止连锁反应
隐藏信息
维护已存在的接口
限制通信路径
使用中间人
location of A
每次搬家把新地址告诉父母,朋友联系不到你,也可以通过父母知道你的住址
existence of A
A的资源的行为/A的资源的控制
由资源管理器来调配资源
延迟绑定时间
运行时注册
发布/订阅
配置文件
多态
构件更换
定义协议
performance tactics:
资源申请:干的事少一点
提高计算的效率
降低计算的开支
管理事件的速率
控制采样的频率
控制执行的时间
控制队列的等待人数的多少
资源管理:牛一点
引入并发机制
提高可用的资源
资源仲裁:获取资源快一点
先进/先出
固定优先级调度
动态优先级调度
静态调度(顺序不能改变)
security tactics:
关注点:合法用户可以用,非法用户不能使用
抵抗攻击
认证用户
对用户进行授权
维护数据的私密性
维护完整性
限制曝光
限制访问
检测攻击
存储状态
攻击者的识别
从攻击中恢复
审查跟踪
testability tactics:
关注点:测试成本,是不是容易在测试的时候,发现错误
黑盒
记录/重放
实现与接口分离
特殊化访问线路/接口
白盒
设置断点
usability tactics:
运行时
维护系统的模型
维护用户模型
维护任务的模型
设计时
用户界面与其他部分分开
tactics summary:
从涉众处了解要达到的质量属性要求(如教务系统和银行关于安全的设置的不同)
pattern/style和tatics分别处理高层和具体细节
软件体系结构的评估ATAM (Architecture Trade-off Analysis Method)架构权衡分析法
目的:
风险:可能在将来损害某些质量属性的方案
非风险:可以提高质量、帮助实现目标的决策
关键点/敏感点(sensitivity points):方案中一个小小的变化,就可能对某些质量属性有很大的影响
权衡点(tradeoffs):影响一个以上质量的决策
步骤:
phase 0: 合伙和准备 partnership and prepartion
phase 1:初始化评估 Initial Evaluation
phase 2:比较评估 complete evaluation
phase 3:后续 follow-up
最重要的是画一个效用树:
从两边往中间画
场景:
用例场景:系统的预期用途
成长场景:系统的预期变化
探索场景:系统为预料到的压力
软件体系结构的建模和文档 基于体系结构的开发的过程: