软件体系结构
1绪论
- 软件体系结构是 具有一定形式的结构化元素
- 元素包括: 处理元素 、 数据元素 、 连接元素
- 软件架构: 组件 、 连接件 、 约束
2数据流体系结构风格
- 软件体系结构风格-定义 描述特定领域中软件系统家族的组织方式的惯用模式 (idiomatic paradigm),反映了领域中众多系统所共有 的结构和语义特性,并指导如何将各个模块和子系统有效 地组织成一个完整的系统。
- 数据流体系结构风格: 数据到达即被激活, 无数据时不工作
- 还有管道-过滤器和批处理等等
3软件体系结构 —调用/返回风格
- 调用/返回风格: 主程序/子程序风格、面向对象/抽象数据类型、层次结构
- 层次风格特点:
- 1)每层为上一层提供服务,使用下一层的服务,只能见到与自己邻接的 层、适当时候(必不得已的时候),可以允许一定的越层操作
- 大的问题分解为若干个渐进的小问题,逐步解决,隐藏了很多复杂度
- 修改一层,最多影响两层,而通常只能影响上层。接口稳固,则谁都 不影响
- 上层必须知道下层的身份,不能调整层次之间的顺序
- 层层相调,影响性能
- 客户端/服务器风格:两层C/S结构、三层C/S结构、B/S结构
4数据为中心的体系结构风格
数据为中心的体系结构风格
- 注册表(Windows Registry):存放系统的所有硬件和软件配置信息,影响或控制系统/应用 软件的行为
- 最初的各硬件程序的配置信息保存在各自的配置文件.ini中,难以维护,引入注册表的思想,将所有.ini文件集中起来,形成共享仓库,为系统运行 起到了集中的资源配置管理和控制调度的作用。
- 剪贴板 (Clipboard):一个用来进行短时间的数据存储并在 文档/应用之间进行数据传递和交换的软件程序
仓库体系结构风格
- 仓库是存储和维护数据的中心场所
- 仓库的两个组件: 中心数据 结构,表示当前数据的状态、一组对中心数据进行操作的独立构件
- 连接件:仓库与独立构件之间的交互;
- 两种交互机制:
- 数据库方式:输入流中的事务类型 触发需要执行的过程、
- 黑板结构: 中心数据结构的当前状态触发并选择需要执行的过程
- 典型应用场合:数据库、编译器中的符号表语法树等
黑板体系结构风格
- 黑板结构:中心数据结构的当前状态触发并选择需要执行的过程
- 黑板数据结构:
- 全局数据库,用来存储数据、传递信息,包含解域的全部状态
- 解决问题过程中的状态数据,以层次形式 组织起来
- 知识源对黑 板进行修改,逐渐找到问题的解
- 各知识源 之间的通讯和交互只通过黑板进行
5软件体系结构 —虚拟机风格
- 虚拟机风格+解释器风格+规则引擎
6软件体系结构 —事件系统
- 事件系统-隐式调用的主要特点:
- 事件的触发者并不知道哪些构件会被这些事件影响,相互保持独立。
- 不能假定构件的处理顺序
- 各个构件之间彼此之间无连接关系,各自独立存在,通过对事件的发布和注 册实现关联。
- 事件系统-基本构件:1)过程或函数,充当事 件源或事件处理器的角色;2)事件
7软件体系结构建模与文档化
- 软件体系结构由一定形式的结构化元素组成,即是构件的集合。包括处理构件、数据构件和连接构件。处理构件负责加工数据,数据构件代表被加工的信息,连接构件则负责组合连接不同的构件
- 视图–由系统相关者编写和读取的一组连贯的 架构元素的表示
- 视图的类型: 分解视图、使用视图、分层视图、类/泛化视图、进程视图、并发视图、 共享数据(存储库)视图、客户端-服务器视图、部署视图、实施视图、工作分配视图
- 4+1视图: 逻辑视图、进程视图、物理视图、开发视图和场景视图
8可用性
- 质量属性QA属于非功能性需求,并不被功能所决定
- 质量属性之间可能互相抑制
- 必须结合设计、实现、部署3方面才能满足
- 常见的质量属性: ➢可用性(Availability) ➢可修改性(Modifiability) ➢性能(Performance) ➢安全性(Security) ➢可测试性(Testability) ➢易用性(Usability)
- 体系结构评估中,一般采用刺激,环境,和__响应__三方面来对场景进行描述。
9可修改性
- 提升可修改性的策略
- 限制修改范围 :➢模块高内聚、低耦合 ➢考虑到可能会发生的修改➢让模块通用 ➢ 隐藏信息 ➢ 维持接口不变➢ 限制通信路径 ➢ 使用中介 ➢命名服务器(name server) ➢按需创建实例
- 延迟绑定时间 ➢ 配置文件 ➢ 发布-订阅模式➢ 多态
10性能
- 提升性能的策略:资源的需求、资源的管理 、资源的仲裁
11安全性
- 提升安全性的策略: 抵抗攻击、检测攻击、从攻击中恢复
12 软件体系结构评估
ATAM