从需求定义到软件体系结构.

上传人:我** 文档编号:116914985 上传时间:2019-11-17 格式:PPT 页数:81 大小:1.96MB
返回 下载 相关 举报
从需求定义到软件体系结构._第1页
第1页 / 共81页
从需求定义到软件体系结构._第2页
第2页 / 共81页
从需求定义到软件体系结构._第3页
第3页 / 共81页
从需求定义到软件体系结构._第4页
第4页 / 共81页
从需求定义到软件体系结构._第5页
第5页 / 共81页
点击查看更多>>
资源描述

《从需求定义到软件体系结构.》由会员分享,可在线阅读,更多相关《从需求定义到软件体系结构.(81页珍藏版)》请在金锄头文库上搜索。

1、*1 2.2从需求定义到软件体系结构 *2 什么是“工程”? 定义有很多,通常来说: 用最少的代价解决问题 . . 目的是处理实际的难题 . . 以科学知识为手段 . . 建造工具 . . 服务于人类 目标:使普通人能做以前只有 专家圣手才能做的事情 *3 工程的进化 *4 工程化的步伐 手工(Craft)商业(Commerical)工程(Professional Engineering) 行家里手和业余天才熟练的工匠 受过系统教育的专业人 员 直觉与强力既定程序分析与理论 偶然的进步注重实效地优化 以科学为指导地升级换 代 不经意的推广言传身教专业教育课程 奢侈地使用原料注重成本与原料利用原

2、料多次利用 生产是为了使用而不是 出售 为销售而生产市场份额 *5 规范化循环 专门的解决方法 土方法 规范化 模型与理论 新的问题 实践提高 *6 构建一个小狗屋构建一个小狗屋 *7 构造一栋房屋构造一栋房屋 *8 构建一个高层建筑构建一个高层建筑 *9 软件中的影响因素软件中的影响因素 技术混合技术混合 性能性能 吞吐量吞吐量 容量容量 可用性可用性 失败安全失败安全 出错容忍程度出错容忍程度 功能功能 成本成本 兼容性兼容性 恢复能力恢复能力 *10 软件设计的目标和目的 软件需求:解决“做什么” 软件设计:解决“怎么做” 软件结构设计的任务 问题结构(软件需求) 软件结构 映射 *11

3、 2.2.1 什么叫软件的体系结构 n软件体系结构,又常被称为架构。 n“软件体系结构”你早就知道 nClient/Server nThree-tier nP2P nDistributed n *12 n架构不是框框应用架构的基本思想 一个架构是一个可复用的设计构 件,它规定了应用的体系结构, 阐明了整个设计、协作构件之间 的依赖关系、责任分配和控制流 程。 *13 “建筑体系结构” *14 “建筑体系结构” *15 SA的定义 n后人精简Garlan and Shaw的定义为: 体系结构 = 组件 + 连接件 + 约束 Architecture = Components + Connecto

4、rs + Constrains *16 n除了构件,连接件和约束3个最基本的 组成元素,软件体系结构还包括端口( port)和角色(role)两种元素。 n构件的接口由一组端口组成,每个端口 表示了构件和外部环境的交互点。连接 件作为建模软件体系结构的主要实体, 同样也有接口。连接件的接口由一组角 色组成,连接的每个角色定义了该连接 表示的交互的参与者。 *17 SA之重要 n最早指出SA的重要性 的是大师Edsger Dijkstra(1930-2002) “the larger the project, the more essential the structuring!”(1968)

5、*18 程序=? n程序 = 算法 + 数据结构(1960s ) n程序 = 子程序 + 子程序(1970s ) n对象 = 算法 + 数据结构 程序 = 对象 + 对象(1980s) n程序 = 组件 + 连接件(1990s) *19 软件体系结构学习主要内容 软件体系结构的有关概念 软件体系结构的层次性 软件体系结构的设计原理 *20 什么是软件体系结构 软件体系结构定义了软 件局部和总体部件的构成,以 及这些部件之间的相互作用 关系。 *21 技术进步 n每个新的体系结构的诞生,都给技术的 进步带来深远影响 nWWW n三层结构 nCORBA nJ2EE n.NET 软件体系结构 软件体

6、系结构包括两部分: (1)过程构件(模块)的层次结构 (2)数据构件 *23 软件的架构主要回答的问题 软件的组成部分 软件的层次关系 模块的内部处理逻辑 模块之间的界面 软件体系结构可分为四种不同的体系: 概念结构 包括部件、互连、原则和性能等 代码结构 包括软件的配置管理、系统建造等 模块结构 包括模块界面、模块管理、模块控制和一致性等 执行结构 包括性能分析、调度分析、动态配置和不同的 执行系统之间的接口等 与软件体系结构有关的研究: 体系结构风格(Architecture Styles) 表示软件系统的一种特别的基本结构,以及相 关的构造方法 设计模式(Design Patterns)

7、 构造型模式、结构型模式、行为型模式 框架(Framework) 另一种研究和构造软件体系结构的方法,更多 的是关于应用领域问题的已建立的系统结构。 框架和设计模式 n构件通常是代码重用,而设计模式是设计重用 ,框架则介于两者之间,部分代码重用,部分 设计重用,有时分析也可重用。 n有三种级别的重用: (1)内部重用,即在同一应用中能公共使用的抽 象块; (2)代码重用,即将通用模块组合成库或工具集 ,以便在多个应用和领域都能使用; (3)应用框架的重用,即为专用领域提供通用的 或现成的基础结构,以获得最高级别的重用性 。 n设计模式是对在某种环境中反复出现的 问题以及解决该问题的方案的描述,

8、它 比框架更抽象; n架构可以用代码表示,也能直接执行或 复用,而对模式而言只有实例才能用代 码表示; n设计模式是比架构更小的元素,一个架 构中往往含有一个或多个设计模式,架 构总是针对某一特定应用领域,但同一 模式却可适用于各种应用。 *28 n成功的架构开发需要确定领域专用的“热点” (Hot spot)。应用开发者在框架的基础上进行 开发,只须扩展架构的某些部分,“热点”就是 在应用领域的一种扩展槽,开发者根据自己的 需要填充这些扩展槽 n“食谱” (Cookbook)就是描述如何使用架构方法 的文档。在“食谱”中包含了许多“烹饪”方法, 这些“烹饪”方法相当于一些具体的操作步骤, 描

9、述了为解决某一专门问题如何使用架构的详 细方法。架构的内部设计和实现细节通常不出 现在“食谱”中。 *29 为什么要进行体系结构开发? n领域内的软件结构一致性好; n建立更加开放的系统; n重用代码大大增加; n软件设计人员要专注于对领域的了解,使 需求分析更充分; n存储了经验; n允许采用快速原型技术; n有利于在一个项目内多人协同工作; n大粒度的重用使得平均开发费用降低; *30 n好的开始相当于成功一半 n设计模式是支撑架构的重要组件 n架构设计是骨架,设计模式就是肉 n时刻牢记架构设计的目标 1. 最大化的重用: 2. 尽可能的简单明了: 3. 最灵活的拓展性: *31 好的体系

10、结构 n与大多数好的设计一样 n是一系列相容的原理和技术的产 物,在项目的各个阶段保持一致 n在各种变化面前表现出弹性 n在产品的整个生命周期中充当向 导 n重用成熟的工程知识 *32 2.3 软件体系结构的风格 n软件体系结构风格主要分为两类。 固定术语类:包括全局组织结构,如分层 系统,管道过滤器系统,客户/服务系统 ,黑板系统等,还包括局部化的模式, 如模型视图控制等其他面向对象开 发的模式。全局化的模式是在软件全局 上提供设计方式;而局部化的模式则侧 重于软件系统的一小部分,是针对特定 问题提供解决方案。 *33 参数化模型类:这一类别的风 格包括对特定应用领域的特定系 统组织,它指定

11、了构件及其交互 的配置,如词法分析器,类型分 析器,优化器和代码生产器,还 有一些参考模型,如人机交互框 架,通信参考模型,以及在航空 、移动机器人等领域的大量特定 领域方法。 *34 体系结构风格的最关键四个要素 n提供一个设计的词汇表 n定义一套配置规则 n定义一套解释原则 n定义基于这种风格的系统所进行的分析 *35 2.3.2 常用的软件体系结构风格 n1、 管道和过滤器风格 在管道/过滤器风格的软件体系 结构中,每个构件都有一组输入 和输出,构件读输入的数据流, 经过内部处理,然后产生输出数 据流。 管 道 管 道 管 道 管道 过滤 器 过滤 器 过滤 器 过滤 器 过滤 器 过滤

12、 器 *37 2、仓库风格和黑板风格 n仓库(Repositories)风格的体系结构有 两种不同的构件组成: (1)中央数据结构,它说明当前状态; (2)独立构件的集合,它对中央数据结构 进行操作。 *38 n对于系统中数据和状态的控制方法 有两种。 (1)输入事务选择进行某种处理, 并把执行结果作为当前状态存储到 中央数据结构中,这时,仓库是一 个传统的数据库体系结构 (2)另一种方法是,由中央数据结 构的当前状态决定进行某种处理, 这时,仓库是一个黑板( blackboard)体系结构。 *39 存储器 直接存 取 黑板 (共享数据 ) 知识源 知识源 知识源 知识源 知识源 知识源 计

13、算 *40 仓库和黑板 n仓库在计算机应用中几乎无处不在 n信息共享系统在很多领域有相似的 发展趋势,因为有相似的技术和商 业压力的激励 n黑板是一种特别的仓库,主要用于 需要对凌乱的信息进行处理的领域 ,其控制策略必须是机会主义的 *41 3、数据抽象和面向对象风格 n面向对象的风格主要是利用对象的3 个特性,即封装特性、继承和多态 特性,建立构件对象。对象是一种 被称作管理者的构件,因为它负责 保持资源的完整性。对象是通过函 数和过程的调用来交互的。 抽象数据类 型 过程调用 对象对象 对象 对象 对象 *43 4、客户/服务器风格(C/S结构 ) n三部分组成: l 中心服务数据系统 l

14、 客户应用程序 l 网络 客户端通过网络直接连接到数据库服 务器,由二者分担业务处理。 *44 客户机/服务器体系结构 *45 C/S体系结构的处理流程 客户机/服务器体系结构 应用系统的组成: 显示逻辑部分(表示层):实现与用户交互 应用处理部分(功能层):进行具体运算和数据处理 数据管理部分(数据层):对数据库中数据进行查询 、 修改、更新等任务 应用分层 表示层 功能层 数据层 三层明确分割, 逻辑上独立 胖客户机和瘦客户机 客户机 “胖” 客户机 应用 处理 逻辑 显 示 逻 辑 服务器 数据 管理 逻辑 数据库 “瘦” 客户机 表示 显 示 逻 辑 数据 管理 逻辑 数据库 表示 应

15、用处理 应用 处理 逻辑 客户机服务器 三层C/S的基本硬件结构 将三层功能装载到硬件的三种基本方法 表示层表示层表示层 功能层 数据层 数据层 功能层 功能层 数据层 客 户 机 服 务 器 (1)将数据层和 功能层放在 一台服务器上 (2)将数据层和 功能层放在 不同服务器上 服 务 器 (3)将功能层放 在客户机上 *49 体系结构 3.4 三层客户/服务器风格 第三章 软件体系结构风格 表示层 数据层 功能层 三层客户机/服务器体系结构 *50 处理流程 3.4 三层客户/服务器风格 第三章 软件体系结构风格 三层C/S体系结构的处理流程 *51 5、浏览器/服务器风格(B/S结构 )

16、 n具体结构为:浏览器/Web服务器/数据 库服务器。B/S体系结构主要是利用不断 成熟的WWW浏览技术,结合浏览器的多 种脚本语言,用通用浏览器实现原来需 要复杂的专用软件才能实现的功能。 *52 浏览器/服务器体系结构 *53 结合三层C/S的B/S结构(四层 ) 数据库数据库 客户端 数据库 驱动 应用 服务 中间服务器 客户端 (Browser) Web App. Web Server 客户端 远程 连接 客户机 *54 6、分层系统风格 n分层(layered)系统组织成一个层次结构 ,每一层为上层服务,并作为下层客户。 在一些层次系统中,除了一些精心挑选的 输出函数外,内部的层次对相邻的层可见 。 n这种风格支持基于可增加抽象层的设计。 这样,允许将一个复杂问题分解成一个增 量步骤序列的实现。由于每一层最多只影 响两层,同时只要给相邻层提供相同的接 口。 *55 过程调用 构件元素 可用系统 基本功能 核心层

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号