软件体系结构

2018-08-15  本文已影响0人  SnorlaxSE

软件体系结构 = 组件 + 连接件 + 约束

Software Architecture = Components + Connectors + Constrains

Architectural Styles

Software Architecture Style

Data Flow 数据流风格

​ 我们主要研究近似线性数据流或者是在限度内的循环数据流

​ 如果一个软件系统的数据流的流向无序很可能说明该系统不应采用数据流的体系结构

Batch Sequential 批处理
Pipe-and-Filter 管道-过滤器
 每个组件都有一组输入和输出,组件读取输入的数据流,经过内部处理,产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成。   
 这里的组件被称为过滤器,这种风格的连接件像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入.
Process Control 过程控制

Call/Return 调用/返回

Main program and subroutines 主程序和子程序
Pipes 函数式编程 Procedures 命令式编程
Control Asynchronous异步,data-driven Synchronous同步,blocking
Semantics Functional Hierarchical
Data Streamed Parameter / return value
Variations Buffering, end-of-file behavior Binding time, exception handling, polymorphism
Object-Oriented
Layered hierarchies
两层Client/Server
两层Client/Server .png
三层Client/Server ( Client-Application-Server )
Client-Application-Server.png
与二层C/S结构相比,增加了一个应用服务器。
整个应用逻辑驻留在应用服务器上,只有表示层存在于客户机上(“瘦客户端”)
应用功能分为三层:表示层、功能层(业务逻辑层)、数据层
B/S
- B/S是三层C/S的特例
- 客户端为http浏览器
    - 为增强功能,往往还需要安装flash、jvm及一些专用插件
    - 使用标准http/https协议
    - 要考虑浏览器兼容的问题
- 早期只能“拉”不能“推”,现在已有较多的推送
- 客户之间的通信只能通过服务器中转
- 安全性较难控制(SQL注入攻击等)
- 数据查询等响应速度低于C/S体系结构
- 服务器的负荷大,客户机的资源浪费
    - 用RIA等技术解决,主流浏览器也对硬件逐步利用

Data Centered / Shared Data

DataRepository.png
Repository Architecture
Blackboard

Virtual Machine

Interpreter.png
Rule-based system
Rule-based system.png

Independent Component

C2 Architecture Style

Heterogeneous Architectures

对等网(P2P)

质量属性

设计体系结构

Availability tactics
modifiability tactics
1. 局部化修改
   1. 保持语义的一致性
   2. 预期期望的变更
   3. 一般化模块
   4. 限制可能的选项
2. 阻止连锁反应
   1. 隐藏信息
   2. 维护已存在的接口
   3. 限制通信路径
   4. 使用中间人
   5. location of A
      1. 每次搬家把新地址告诉父母,朋友联系不到你,也可以通过父母知道你的住址
   6. existence of A
   7. A的资源的行为/A的资源的控制
      1. 由资源管理器来调配资源
3. 延迟绑定时间
   1. 运行时注册
   2. 发布/订阅
   3. 配置文件
   4. 多态
   5. 构件更换
   6. 定义协议
modifiability tactics.png
performance tactics
1. 资源申请:干的事少一点
   1. 提高计算的效率
   2. 降低计算的开支
   3. 管理事件的速率
   4. 控制采样的频率
   5. 控制执行的时间
   6. 控制队列的等待人数的多少
2. 资源管理:牛一点
   1. 引入并发机制
   2. 提高可用的资源
3. 资源仲裁:获取资源快一点
   1. 先进/先出
   2. 固定优先级调度
   3. 动态优先级调度
   4. 静态调度(顺序不能改变)
performance tactics.png
security tactics
testability tactics
usability tactics
1. 运行时
   1. 维护系统的模型
   2. 维护用户模型
   3. 维护任务的模型
2. 设计时
   1. 用户界面与其他部分分开
Usability Tactics.png

tactics summary

答卷要点

image.png
上一篇 下一篇

猜你喜欢

热点阅读