当前位置:
文档之家› 《软件工程》PPT第11章 体系结构设计
《软件工程》PPT第11章 体系结构设计
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 2
总体设计
功能设计
总体功能结构 子系统及组件物理部署 系统层次结构 公共组件 全局数据结构 子系统(组件) 子系统(组件)内全局 数据结构 通信接口组件 外部接口数据 总体测试数据 总体数据库结构 数据库公共管理组件 公共数据库表结构 系统主界面 用户功能子系统切换界 面 统一登录界面 权限划分与管理 数据安全管理设计 系统性能设计 总体设计说明书 数据模型文件
缺点
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 25
客户机/服务器模型
分布式系统模型(Distributed system model) 显示数据和操作是如何通过一系列组件而进行 分布的。客户机/服务器体系结构的模型是一 个分布式系统模型。 这个模型的主要组成部分是: 一组给其他子系统提供特定服务(如打印服务, 数据管理服务等)的单机服务器; 一组向服务器请求服务的客户机; 一个连接客户机和服务器的网络。
Slide 10
清晰的软件体系结构的三个好处
信息持有者之间的沟通
• 体系结构可以作为不同的项目相关人员之间讨论 的焦点。 系统分析对体系结构的设计决策,对系统能否满 足非功能需求具有很大的影响。 体系结构能在相似需求的系统之间互用,以支持 大规模的软件复用。
系统分析
•
大规模复用
•
陈江平
Software Engineering, 8th edition. Chapter 11
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 18
体系结构的复用
同一个应用领域内的系统通常具有相似的体系 结构,这种体系结构能反映基本的领域概念, 比如信息管理系统的体系结构。 应用产品线( Application product lines )是 围绕一个核心体系结构建立的一些应用,核心 体系结构会有一些变量可以调整来满足专门用 户的需求。 一般应用体系结构,应用产品线将分别在13 章和18章进行讨论。
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 20
体系结构模型
体系结构设计的产品是一个体系结构设计文档。 静态结构模型( Static structural model )显示一个 系统的子系统或组件。 动态过程模型(Dynamic process model) 显示系统 在运行时的过程组成。 接口模型(Interface model) 定义每个子系统从它们 的公共接口能得到的服务。 关系模型(Relationships model)如数据流模型,显 示子系统间的关系。 分布模型(Distribution model)显示子系统在多台计 算机上是如何分布的。
缺点
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 28
客户机/服务器两层架构 客户机 服务器两层架构
对一个拥有12~100个用户,两层架构模型是一个 个用户, 对一个拥有 个用户 很好的解决方案。 很好的解决方案。该模型极少需要在人工的介入下 运作,且常被用作不是太复杂、 运作,且常被用作不是太复杂、时间性不强的信息 处理系统。 处理系统。 该模型有3个组件: 该模型有 个组件: 个组件 (1) 用户系统界面(比如会话、文本输入、对话框 用户系统界面(比如会话、文本输入、 和显示管理); 和显示管理); (2) 程序管理(比如程序开发和程序资源服务); 程序管理(比如程序开发和程序资源服务); (3) 数据库管理(比如数据和文件服务 数据库管理(
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 4
内容
体系结构设计决策 系统组成 模块化分解模型 控制类型 参考体系结构
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 5
软件体系结构
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 26
电影和图片库系统的体系结构
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 27
客户机/服务器模型的特点
优点
• • • • • • 数据的分布式最直接的; 可以更有效地使用网络系统,从而降低了对硬件的要求; 很容易就添加一台新的服务器或更新现有的服务器。 没有共享数据模型,子系统以不同的方式组织它们的数据。 数据交换效率就可能很低; 每个服务器上出现冗余数据管理; 没有中央寄存器的名字和服务,这可能很难找出哪个服务 器和哪些服务可用 。
Software Engineering, 8th edition. Chapter 11
目标
介绍软件体系结构的概念和设计,以及软件体 系结构设计的重要性; 在体系结构设计阶段对系统体系结构必须做出 的决策; 介绍三种互补的软件体系结构类型,涵盖系统 组成、模块分解和控制 讨论如何用参考体系结构来沟通体系结构概念 和评估系统体系结构
初始设计过程的任务是要识别出组成大型系统 的多个子系统,并建立起子系统控制与通信的 框架,这个过程叫做体系结构设计 ( architectural design)。 体系结构设计输出的一个描述就是软件体系结 构( software architecture)。
陈江平
Software Engineering, 8th edition. Chapter 11
信息安全性 安全性
• • •
可用性 可维护性
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 12
体系结构之间的冲突
使用大力度的组件虽然改进了系统的性能,但 却降低了系统的可维护性; 引入冗余性数据虽然提高了系统的可用性,但 却使系统的信息安全性变得更困难; 定位与安全相关的操作意味着增加了子系统之 间的通信,但这样也降低了系统的性能。
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 14
打包机器人控制系统的方块图
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 15
箱式图和线路图
方块图非常抽象 ,因为它没有给出系统组件 之间的本质关系,也没有显示出子系统的全部 特性; 不过,这种模型在与系统项目相关人员沟通中 和在项目规划中是很有效的。
Slide 6
体系结构设计
体系结构设计是设计过程的初始阶段; 表现为设计和需求工程过程之间的桥梁; 通常是与一些系统描述活动同时进行的; 它包括识别出系统的主要组件以及它们之间的 通信。
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 7
陈江平
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 16
体系结构设计决策
体系结构设计是一个充满创意性的过程,所以 过程中的活动差别非常的大,这很大程度上所 要开发的系统的类型。 然而,所有的设计过程都有一些共同的决策阶 段。因而,我们可以从决策角度来看待体系结 构设计。
Software Engineering, 8th edition. Chapter 11
Slide 8
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 9
陈江平
Software Engineering, 8th edition. Chapter 11
数据结构设计
子系统公用数据结构 模块内公用数据结构 子系统测试数据
数据库设计 界面设计
子系统通用数据库表 子系统专用数据库表 功能子系统界面
安全设计 设计完成的交 付产物
陈江平
子系统权限
功能模块单元权限 子系统(模块) 子系统(模块)详细 设计说明书 数据模型文件
Slide 3
子系统(组件) 子系统(组件)设计说明 书 数据模型文件
陈江平
Software Engineering, 8th edition. Chapter 11
Slide 17
体系结构设计决策
是否存在一个一般性的应用体系结构可以拿来当做模 板? 系统将如何分配到多个处理器上? 有哪个或哪几个体系结构类型时候本系统? 有哪些基本方法可以用来构成该系统? 如何将系统中的结构单元分解为模板? 应该使用什么样的策略来控制系统中单元的操作? 如何评估体系结构设计? 如何记录系统体系结构?
子系统(组件) 子系统(组件)
子系统功能结构 子系统模块物理部署 子系统模块层次结构 公共组件功能结构
模块(单元) 模块(单元)设计
模块功能流程, 模块功能流程,主要包 括业务逻辑。 括业务逻辑。 模块内局部数据结构 包括协议包结构等) (包括协议包结构等) 。 模块测试数据 模块专用数据库表 用户功能模块单元界面
Slide 11
软件体系结构的属性
性能
• • • 定位关键性操作,最大限度内减少子系统之间的通信; 使用较大粒度的组件。 采用分层结构,把重要资源放在内层,并在每层中采用更加严 格的信息安全性验证。 把与安全相关的操作集中在一个或少数几个子系统中。 包括冗余性组件和容错型体系结构设计。 使用小粒度,可更换的组件。