软件体系结构习题课1_784108881
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是分布是数据库
最终目标 将数据离散的分布在不同物理位置, 将数据离散的分布在不同物理位置,使得网络传输数 据量减少 提供查询优化, 提供查询优化,自动避免对一定不存在查询结果的分 片进行查询 对上提供透明的SQL解析和执行工作 对上提供透明的 解析和执行工作 对下自动进行分片信息的管理和维护
24
9
THU SAGroup
软件体系结构的地位
10
THU SAGroup
目 录
1 2 3
软件体系结构的动机
软件体系结构概念模型
样例系统-分布式数据库系统 样例系统 分布式数据库系统
11
THU SAGroup
软件体系结构的含义
什么是软件体系结构? 什么是软件体系结构? 软件体系结构是独立存在的, 软件体系结构是独立存在的,还是决定于软件系统的 存在性? 存在性? 软件体系结构是随着软件系统的存在而存在的, 任何软件系统都存在软件体系结构 软件体系结构和软件体系结构的描述有什么关系? 软件体系结构和软件体系结构的描述有什么关系? 软件体系结构是客观存在的,而软件体系结构描 述是人为创造出来的 软件体系结构与其描述方式无关,即可以通过不 同的方法来描述同一个软件系统的体系结构 可以对不存在的系统的软件体系结构进行描述, 这被称为对软件体系结构的预期,或软件体系结 构设计
13
THU SAGroup
软件体系结构,模型,视图的关系 软件体系结构,模型,
Architecture
体系结构
System
模型
Model 1 View 1 Model 2 View 2 Model 3 View 3
视图
14
THU SAGroup
软件体系结构描述
软件系统静态逻 件系统静态逻 辑结构
16
THU SAGroup
软件体系结构风格和模式
软件体系结构风格和模式的作用 作为软件设计决策的依据 作为质量评估中的理论根据 辅助和改善对软件设计内容的交流 奠定软件自动设计方法的基础 软件体系结构风格和模式的区别 风格仅仅是对一类概要设计定义一组词汇, 风格仅仅是对一类概要设计定义一组词汇,方便进行 设计的描述 模式是解决一类具体问题的通用设计方案
DB Server k
DB Server i DB Server j
DB Server
Client
Client n
Client m
DB Server n
DB Server m
每个DB Server向自己所连接发布最 每个 向自己所连接发布最 新的分片信息
27
Client可访问的分片信息由其可连接 可访问的分片信息由其可连接 的DB Server来动态确定 来动态确定
12
THU SAGroup
软件体系结构的含义
软件体系结构模型和软件体系结构的关系是什么? 软件体系结构模型和软件体系结构的关系是什么? 软件体系结构模型是对软件体系结构某个特殊方 面的抽象。它忽略了与其主题不相关的信息。 大多数情况下的软件体系结构实际上是指软件体 系结构关于某个方面的模型。 软件体系结构中视图的作用是什么? 软件体系结构中视图的作用是什么? 视图(View)是一种形象化的描述方式,一般来 讲使用视图来对软件体系结构模型进行描述 定义视图元素的称为“视点”(Viewpoint)
THU SAGroup
系统需求
功能需求 支持以上所有的数据表划分方法 解析SQL语言 解析 语言 自动进行查询优化处理 非功能需求 系统自动更新离散的分片的信息(易用性) 系统自动更新离散的分片的信息(易用性) 系统可用性要求高, 系统可用性要求高,禁止某个分布节点的损坏使得整个系 统瘫痪(可用性) 统瘫痪(可用性) 查询服务请求可并发执行(性能) 查询服务请求可并发执行(性能) 查询过程执行中界面还可以继续进行其它工作(易用性) 查询过程执行中界面还可以继续进行其它工作(易用性) 系统错误要容易记录和存档(可测试性) 系统错误要容易记录和存档(可测试性) 容易进行系统功能扩充(易修改性) 容易进行系统功能扩充(易修改性) 可以快速更换底层数据库(易修改性) 可以快速更换底层数据库(易修改性)
31
THU SAGroup
基于分层风格的系统部署级模块分解
展示层
系统用户界面
应用逻辑层
DDB Client和Server的核心功能 和 的核心功能 Client:查询优化算法和SQL解析 查询优化算法和 查询优化算法 解析 Server:服务请求处理 服务请求处理
网络协议层
DDB系统中的命令传输协议和相关的网络 系统中的命令传输协议和相关的网络 发送、接受、 发送、接受、监听操作
THU SAGroup
基于管道基于管道-过滤器风格的服务请求处理
DB Server Overall Structure
Networks
Network Listener Command Unit Internal Command Executor Local SQL AccessDB Result
Result
课程编号: 课程编号:74100152
Software Architecture
习题课( 软件体系结构 习题课(1) 软件体系结构的本质、 软件体系结构的本质、含义和实践
邢剑宽
THU SAGroup
THU SAGroup
目 录
1 2 3
软件体系结构的动机
软件体系结构概念模型
样例系统-分布式数据库系统 样例系统 分布式数据库系统
18
THU SAGroup
软件体系结构各种概念之间的关系
19
THU SAGroup
目 录
1 2 3
软件体系结构的动机
软件体系结构概念模型
样例系统-分布式数据库系统 样例系统 分布式数据库系统
20
THU SAGroup
什么是分布式数据库
关系型数据表
字段(Field) 字段( ) Student数据表 数据表 ID 记录 (Record) ) 0102163534 0103688532 0122133981 0112101421 … Name Williams Hoare Allen Garlan Type Undergraduate Graduate Graduate PhDC
性能( 性能(Performance) )
可测试性( 可测试性(Testability) )
非功能 性质量
可用性( 可用性(Availability) )
安全性(Security) 安全性( )
可修改性( 可修改性(Modifiability) )
6
THU SAGroup
软件质量保证
如何保证软件的质量,特别是非功能性质量要求? 如何保证软件的质量,特别是非功能性质量要求? 这种保证应当在软件进行开发之前进行 避免代码修改的巨大工作量和开销 在软件开发初期加深软件项目相关各方对待开发 系统的理解和认识 这种保证应当有充分的依据 “保证”过程的依据信息应当切实反映软件系统 的概况 确保“保证”过程本身的理性和严谨
核心作用 在软件开发过程早期对待开发软件的质量进行预期评 保证软件满足其质量(特别是非功能性质量) 估,保证软件满足其质量(特别是非功能性质量)要 求。 召开评估会议 形式化模型校验 附属作用 展示软件早期设计中的决策 便于开发中各种涉众的交流 为软件的实现、 为软件的实现、测试和维护提供指导和约束 帮助开发机构对开发团队进行组织 ……
SQL Command Executor
Log
Daemon Dictionary
Intermediate Table Pool
28
THU SAGroup
基于管道基于管道-过滤器的服务请求处理
29
THU SAGroup
基于对象设计的日志记录设施
30
THU SAGroup
基于事件驱动的Client 基于事件驱动的Client查询处理 Client查询处理
软件系统运 时 件系统运 结构
软件系统 件系统 ( )结构
软件系统进 结 件系统进 构
每个领域中还存在许多针对特定质量要求的软件体系结构信息
15
THU SAGroup
软件体系结构描述与UML 软件体系结构描述与UML的关系 UML的关系
共性 广义上讲, 广义上讲,UML描述可以被归为软件体系结构描述 描述可以被归为软件体系结构描述 都存在模型、 都存在模型、视图等概念 异性 UML的优势 的优势 统一的图形化符号简单易用 可实现代码和UML模型之间的同步关系 软件体系结构描述的优势 抽象层次更高,脱离面向对象 可针对某一问题建立形式化的模型,实现质量的自动 评估和校验 某些软件体系结构对软件行为的描述更加精确严谨
7
THU SAGroup
软件体系结构评估
质量要求 1 质量要求 2 质量要求 n
软件体系结构评估 软件质量的保证过程
软件体系结构描述 一组对软件初期设计严格的, 一组对软件初期设计严格的, Softw百度文库re Architecture 规范的描述 Description
8
THU SAGroup
软件体系结构的作用
这就是软件体系结构包含的内容和发挥的作用
33
THU SAGroup
问题解答
34
课程编号: 课程编号:74100152
Thank You
THU SAGroup
17
THU SAGroup
软件体系结构的含义
到底什么是软件体系结构? 到底什么是软件体系结构? 不存在统一的定义 如何定义软件体系结构 根据待解决问题的目标决定用哪些信息应当用于 质量评估,这些信息的集合就是软件体系结构 实践证明:绝大部分非功能性质量要求是由软件 系统的高层次元素及其交互关系决定的
基本操作层
基本数据库查询操和数值计算功能、 基本数据库查询操和数值计算功能、日志 功能
32
THU SAGroup
分布式数据库系统总结
综合运用了各种体系结构风 格以满足质量需要 需要运用不同的描述方式( 需要运用不同的描述方式( 由不同视点定义的不同视图 )来从各个角度对系统中关 心的问题建模 静态模型(类图) 静态模型(类图) 动态模型(对象图, 动态模型(对象图,序列 图) 进程模型(进程图) 进程模型(进程图) 物理模型(部署图) 物理模型(部署图) 包含了多种软件元素和关系 类 对象 文件 构件 进程 引用关系 使用关系 消息关系 数据传递关系 ……
4
THU SAGroup
用质量来衡量软件开发的动机
软件质量
Software Quality
功能性质量要求
完成需求中的特定功 能 功能满足需求规范书 中的用例描述
非功能性质量要求
使用 开发 维护 成本 上市时间
5
THU SAGroup
主要的非功能性质量属性
易用性( 易用性(Usability) )
25
THU SAGroup
基于知识库风格的分片信息
Client
Client
Client
Networks
DB Server1
DB Server 2
DB Server 3
Data 1
Data 2
Data 3
26
THU SAGroup
基于知识库风格的分片信息
Client i Client k Client j
21
THU SAGroup
什么是分布式数据库
水平拆分和垂直拆分
数据表 Fragment 1 Fragment 2 Fragment 3 水平划分 分布的物理位置
Fragment 1
Fragment 2
Fragment 3
22
垂直划分
THU SAGroup
什么是分布式数据库
混合划分
23
THU SAGroup
2
THU SAGroup
为什么需要软件体系结构? 为什么需要软件体系结构?
软件体系结构源自什么? 软件体系结构源自什么? 软件危机 软件过程改进 用于软件开发中的协作和信息共享 质量保证
3
THU SAGroup
开发软件的主要动机
开发软件要满足什么? 开发软件要满足什么? 需求 商业动机 ……