软件工程软件体系结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分布计算网络
软件的结构基础
• 结构控制流 • 部件连接方式 • 结构化连接模式 • 基本数据类型 • 抽象数据类型 • 进程及运行环境 • 分时并发计算 • 资源共享/并行同步 资源共享/ • 实时系统 • 软件结构的四视图观
软件体系结构的四视图
部件 连接器 配置 模块 子系统 层
概念视图
模块限制
软件体系结构的有关概念 • 什么是软件体系结构 • 软件体系结构的发展 • 软件体系结构的研究范畴
软件设计的目标
•设计应该是便于维护和升级的,因而应 设计应该是便于维护和升级的,
该是模块化的
•设计应该是便于移植的 •设计应该具有适应性 •设计过程应该受到理性化的控制 •设计应该表现出概念的完整性
•
普通部件及其支持的相互作用
序 号 1 2 3 4 5 6 7 部件类型 模块(Module) 模块 对象(Object) 对象 过滤器(Filter) 过滤器 部件支持的相互作用类型
过程调用、 过程调用、数据共享 方法调用 数据流 消息传递、远程调用、 消息传递、远程调用、 过程(Process) 过程 通讯协议、 通讯协议、同步 数据文件(Data file) 读写 数据文件 数据库(Database) 模式、查询语言 模式、 数据库 文档(Document) 文档 共享表示假设
与软件体系结构有关的研究: 与软件体系结构有关的研究:
• 体系结构风格(Architecture Styles) 体系结构风格(Architecture
表示软件系统的一种特别的基本结构, 表示软件系统的一种特别的基本结构,以及相 关的构造方法
• 设计模式(Design Patterns) 设计模式(Design
软件设计思想
•强调信息隐蔽的单元概念 •应用基于操作和数据封装构成的单元设计
技术 •应用专门的机制可靠地处理并发控制和分 布系统问题
•提出基于模型的系统结构和设计方法 •明确提出软件体系结构的设计思想
什么是软件体系结构
•
软件体系结构定义了软件局部和 总体计算部件的构成, 总体计算部件的构成,以及这些部件之 间的相互作用关系。 间的相互作用关系。
从整体看,软件体系结构是由结构和 从整体看, 功能各异、相互作用的部件集合, 功能各异、相互作用的部件集合,按照层 次构成的。它包括了系统基础构成单元、 次构成的。它包括了系统基础构成单元、 它们之间的作用关系、 它们之间的作用关系、在构成系统时它们 的合成方法以及对合成约束的描述。 的合成方法以及对合成约束的描述。
指令1 指令 指令2 指令
指令1 处理1 数据 指令 处理1 数据1 控制1 控制1
存储1 存储1 存储2 存储2 ……
控制2 控制2 ……
指令2 指令
处理2 处理2 ……
数据2 数据
指令n 指令
控制n 控制n
指令n 指令
处理n 处理n
数据n 数据
存储n 存储n
MIMD多指令流多数据流计算机 多指令流多数据流计算机
对体系结构风格的理解
结构风格以结构组织为特性定义了一个软件系统 结构风格以结构组织为特性定义了一个软件系统 结构组织为特性 表达了部件以及部件之间的关系。 族,表达了部件以及部件之间的关系。 体系结构风格通过组件应用的限制及其与构建有 关的组成和设计规则来表现组件和组件之间的关 关的组成和设计规则来表现组件和组件之间的关 系。 体系结构风格表示了软件系统的一种特别的基本 体系结构风格表示了软件系统的一种特别的基本 结构,以及相关的构造方法。 结构,以及相关的构造方法。 体系结构风格应该使一些对软件构成带有整体性 体系结构风格应该使一些对软件构成带有整体性 普遍性、一般性的结构和结构关系的方法。 、普遍性、一般性的结构和结构关系的方法。在 设计中,遵循这些风格的构成原则, 设计中,遵循这些风格的构成原则,对软件的开 发和维护十分有益。 发和维护十分有益。
根本革命的水平? 根本革命的水平?
广泛提及的体系结构风格: 广泛提及的体系结构风格:
管道和过滤器 (Pipe and Filters) ) 数据抽象或对象(Data Abstraction and Object Orientted) ) 隐式调用/消息(Event-Based/Implicit Invocation) 隐式调用/ ) 层次( 层次(Layered System) ) 仓库( 仓库(Repositories) ) 解释器( 解释器(Interpreters) ) 过程控制( 过程控制(Process Control) ) 分布式系统( 分布式系统(Distributed System) ) 客户/服务器( 客户/服务器(Client/Server) ) 主程序/子程序( 主程序/子程序(Main/Sub Programs) ) 状态转换( 状态转换(State Transition) ) 专用领域( 专用领域(Domain Specific Styles) )
中间件) 软件总线 (中间件)
o5 S(o5) o6 S(o6)
OMG体系结构和服务参考模型 体系结构和服务参考模型
与特定非标准化应 用系统有关的对象 与特定纵向领 域有关的对象 横向工具对象
应用系统接口
领域接口
CORBA工具接口 工具接口
CORBA对象请求代理(ORB) 对象请求代理( 对象请求代理 ) CORBA服务接口 服务接口
服务的接口 • 对象之间不存在客户机与服务器的界限,接受服 对象之间不存在客户机与服务器的界限, 务者扮演客户机角色, 务者扮演客户机角色,提供服务者就是服务器 • 对象可能分布在网络的多台计算机上,通过中间 对象可能分布在网络的多台计算机上, 件相互通信 o1 o2 o3 o4 S(o1) S(o2) S(o3) S(o4)
软件的总体结构主要回答的问题
•软件的组成部分 •软件的层次关系 •模块的内部处理逻辑 •模块之间的界面
软件体系结构
软件体系结构包括两部分: 软件体系结构包括两部分: (1)过程构件 模块) 过程构件( (1)过程构件(模块)的层次结构 (2)数据构件 (2)数据构件
§4.1
软件体系结构
• 软件体系结构的有关概念 • 软件体系结构的层次性 • 软件体系结构的设计原理
多处理机系统
控制 处理 MAP
…… …… ……
互连网络
控制 处理 MAP 通道
……
通道 存储
……
I/O
I/O
存储
……
具有共享存储结构的多处理机
多处理机系统
控制 处理 存储 MAP 互连网络
…… …… ……
控制 处理 存储 MAP I/O
具有分布存储结构的多处理机
分布计算系统
电信网络
网络
交换机
交换机
层次模型的结构关系
客户 使用 层N 层N-1 抽象的最高层
层1
抽象的最低层
2. 软件设计的问题
•工具 •方法
— 如何描述软件的总体结构 — 用什么方法有问题结构导出 软件结构 — 什么样的软件结构是 “最优的” 最优的”
•评估准则
•公认的、被多次使用的系统结构被称为结 公认的、被多次使用的系统结构 系统结构被称为结
构风格、设计模式、 设计)框架。 构风格、设计模式、(设计)框架。
•如果说一门工程技术的成熟表现在其基本
设计构件的提出和系统化, 设计构件的提出和系统化,那么体系结构 的风格、模式、框架就是软件工程中的基 的风格、模式、框架就是软件工程中的基 本构件。 本构件。
•体系结构概念能否成熟到使软件设计发生
软件的构成
• 软件体系结构需要基础 • 软件体系结构需要层次 • 软件体系结构需要模式
软件的物质基础
软件设计的物质基础是计算 机硬件, 机硬件,当前的计算机硬件决定 了软件设计和实现的出发点, 了软件设计和实现的出发点,计 算机硬件的发展影响着软件体系 结构。 结构。
计算机硬件体系结构分类
指令 控制 指令 处理 数据 存储
指令1 指令 指令2 指令
指令1 处理1 指令 处理1 控制1 控制1
数据
存储1 存储1 存储2 存储2 ……
控制2 控制2 ……
指令2 指令
处理2 处理2 …… 数据
指令n 指令
控制n 控制n
指令n 指令
处理n 处理n
存储n 存储n
MISD多指令流单数据流计算机 多指令流单数据流计算机
计算机硬件体系结构分类
SISD单指令流单数据流计算机 单指令流单数据流计算机
计算机硬件体系结构分类 处理1 处理1 控制 指令 处理2 处理2 …… 处理n 处理n 数据n 数据 数据1 数据 数据2 数据 存储1 存储1 存储2 存储2 …… 存储n 存储n
SIMD单指令流多数据流计算机 单指令流多数据流计算机
计算机硬件体系结构分类
客户机/ 客户机/服务器体系结构
应用系统的组成: 应用系统的组成: •显示逻辑部分 表示层 实现与用户交互 显示逻辑部分(表示层 表示层):实现与用户交互 •应用处理部分 功能层 进行具体运算和数据处理 应用处理部分(功能层 功能层):进行具体运算和数据处理 •数据管理部分 数据层 对数据库中数据进行查询、 数据管理部分(数据层 对数据库中数据进行查询、 数据层):对数据库中数据进行查询 修改、 修改、更新等任务
构造型模式、结构型模式、 构造型模式、结构型模式、行为型模式
• 框架(Framework) 框架(Framework)
另一种研究和构造软件体系结构的方法, 另一种研究和构造软件体系结构的方法,更多 的是关于应用领域问题的已建立的系统结构。 的是关于应用领域问题的已建立的系统结构。
软件体系结构的层次结构 • 软件的构成 • 软件的物质基础 • 软件的结构基础 • 软件的层次结构模型 • 软件体系结构的层次结构模型 • 软件体系结构的体系
软件体系结构可分为四种不同的体系: 软件体系结构可分为四种不同的体系:
• 概念结构
包括部件、互连、 包括部件、互连、原则和性能等
• 代码结构
包括软件的配置管理、系统建造等 包括软件的配置管理、
• 模块结构
包括模块界面、模块管理、 包括模块界面、模块管理、模块控制和一致性等
• 执行结构
包括性能分析、调度分析、 包括性能分析、调度分析、动态配置和不同的 执行系统之间的接口等
应用系统 工作流 应用集成平台 B2B集成平台 集成平台 以有应用系统 中间件基础设施 J2EE/CORBA/COM+传统中间件 传统中间件 操作系统 网络平台 数据库
面向电子商务的应用体系结构图
分布式对象体系结构
• 基本系统组件是对象,提供一组服务,对外给出 基本系统组件是对象,提供一组服务,
部件 连接器 配置 运行限制 模块 新模块Байду номын сангаас割 运行实体 变化成运行实体 源代码
模块视图
新模块分割
运 行 视 图
代码视图
硬 件 和 操 作 系 统 体 系 结 构
软件的层次结构模型
• 计算机网络的体系结构 • 计算机操作系统的体系结构
软件体系结构的层次结构模型
第6层:应用层 第5层:系统结构模式层层 第4层:资源和管理调度层 第3层:基础控制描述层 第2层:软化的硬件层 第1层:计算机硬件层
第四章
软件设计
主要内容: 主要内容: 软件体系结构的概念 软件设计思想 结构化设计方法 面向对象设计方法
讨论要点
(1)什么是软件结构? (1)什么是软件结构? 什么是软件结构 (2)如何建立设计模型? (2)如何建立设计模型? 如何建立设计模型
软件设计的目标和目的 软件需求:解决“做什么” 软件需求:解决“做什么” 软件设计:解决“怎么做” 软件设计:解决“怎么做” 软件设计的任务 问题结构(软件需求) 问题结构(软件需求) 软件结构 从软件需求规格说明书出发, 从软件需求规格说明书出发,形成软 件的具体设计方案。 件的具体设计方案。 映射
表示层 功能层 数据层 三层明确分割, 三层明确分割 逻辑上独立
应用分层
瘦客户机和胖客户机
客户机 “胖” 胖 客户机 显 示 逻 辑 应用 处理 逻辑 表示 数据 管理 逻辑 服务器
数据库
客户机 “瘦” 瘦 客户机 显 示 逻 辑 表示 应用处理 应用 处理 逻辑
服务器 数据 管理 逻辑
数据库
客 户 机 服 务 器 服 务 器
三层C/S的基本硬件结构 的基本硬件结构 三层 表示层 表示层
表示层 功能层
功能层 数据层 功能层 数据层
(1)将数据层和 (1)将数据层和 功能层放在 一台服务器上 (2)将数据层和 (2)将数据层和 功能层放在 不同服务器上 (3)将功能层放 (3)将功能层放 在客户机上
数据层
将三层功能装载到硬件的三种基本方法