[计算机软件及应用]软件体系结构课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《[计算机软件及应用]软件体系结构课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件及应用 计算机软件 应用 软件 体系结构 课件
- 资源描述:
-
1、软软 件件 体体 系系 结结 构构第一部分第一部分天津大学计算机学院天津大学计算机学院饶国政饶国政课课 程程 内内 容容 软件危机软件危机 软件体系结构概念软件体系结构概念 软件体系结构模式软件体系结构模式 体系结构的设计模式体系结构的设计模式 基础结构模式基础结构模式 软件体系结构的其它研究领域软件体系结构的其它研究领域 第一章第一章 软件危机软件危机 软件软件 软件的发展阶段软件的发展阶段 软件危机软件危机 软件生命周期软件生命周期软件软件 软件程序、数据和相关文档的完整集合软件程序、数据和相关文档的完整集合 软件的特点:软件的特点:软件是一个逻辑实体,而非物理实体;软件是一个逻辑实体,而
2、非物理实体;软件是人类抽象思维的产物;软件是人类抽象思维的产物;开发过程没有明显的制作过程;开发过程没有明显的制作过程;生产成本随着软件的复杂程度急剧增加(指数级);生产成本随着软件的复杂程度急剧增加(指数级);容易复制、传播;容易复制、传播;维护工作复杂。维护工作复杂。软件的发展阶段软件的发展阶段 三个发展阶段三个发展阶段 程序设计阶段(程序设计阶段(5060年代中期)年代中期)程序系统阶段(程序系统阶段(60中期中期70年代中期)年代中期)软件工程阶段(软件工程阶段(70年代中期以来)年代中期以来)软件危机软件危机 软件危机的表现软件危机的表现 软件成本估计不准确软件成本估计不准确 随着软
3、件规模增长,软件开发成本往往成指随着软件规模增长,软件开发成本往往成指数级增长。数级增长。开发进度难以控制开发进度难以控制 由于软件是逻辑、智力产品,软件的开发需建立庞大由于软件是逻辑、智力产品,软件的开发需建立庞大的逻辑体系,这是与其他产品的生产不一样的。的逻辑体系,这是与其他产品的生产不一样的。在软件开发过程中,用户需求变化等各种意想不到的情在软件开发过程中,用户需求变化等各种意想不到的情况层出不穷,令软件开发过程很难保证按预定的计划实现,况层出不穷,令软件开发过程很难保证按预定的计划实现,给项目计划和论证工作带来了很大的困难。给项目计划和论证工作带来了很大的困难。盲目增加软件开发人员并不
4、能成比例地提高软件开发能盲目增加软件开发人员并不能成比例地提高软件开发能力。相反,随着人员数量的增加,人员的组织、协调、通力。相反,随着人员数量的增加,人员的组织、协调、通信、培训和管理等方面的问题将更为严重。信、培训和管理等方面的问题将更为严重。软件质量差软件质量差 软件项目即使能按预定日期完成,结果却不尽人意。软件项目即使能按预定日期完成,结果却不尽人意。19651965年至年至19701970年,美国范登堡基地发射火箭多次失败,绝大年,美国范登堡基地发射火箭多次失败,绝大部分故障是由应用程序错误造成的。部分故障是由应用程序错误造成的。在在“软件作坊软件作坊”里,由于缺乏工程化思想的指导,
5、程序里,由于缺乏工程化思想的指导,程序员几乎总是习惯性地以自己的想法去代替用户对软件的需求,员几乎总是习惯性地以自己的想法去代替用户对软件的需求,软件设计带有随意性,很多功能只是程序员的软件设计带有随意性,很多功能只是程序员的“一厢情愿一厢情愿”而已,这是造成软件不能令人满意的重要因素。而已,这是造成软件不能令人满意的重要因素。软件开发缺乏适当的文档资料软件开发缺乏适当的文档资料 文档资料对于软件开发和软件维护是至关重要的。文档资料对于软件开发和软件维护是至关重要的。软件维护困难软件维护困难 由于在软件设计和开发过程中,没有严格遵循软件开发由于在软件设计和开发过程中,没有严格遵循软件开发标准,
6、各种随意性很大,没有完整的真实反映系统状况的记标准,各种随意性很大,没有完整的真实反映系统状况的记录文档,给软件维护造成了巨大的困难。录文档,给软件维护造成了巨大的困难。特别是在软件使用过程中,原来的开发人员可能因各种特别是在软件使用过程中,原来的开发人员可能因各种原因已经离开原来的开发组织,使得软件几乎不可维护。原因已经离开原来的开发组织,使得软件几乎不可维护。有资料表明,工业界为维护软件支付的费用占全部硬件有资料表明,工业界为维护软件支付的费用占全部硬件和软件费用的和软件费用的40%-75%40%-75%。如何克服软件危机如何克服软件危机 人们面临的不光是技术问题,更重要的是管理问人们面临
7、的不光是技术问题,更重要的是管理问题。管理不善必然导致失败题。管理不善必然导致失败 。要提高软件开发效率,提高软件产品质量,必须要提高软件开发效率,提高软件产品质量,必须采用采用工程化工程化的开发方法与工业化的生产技术。的开发方法与工业化的生产技术。软件工程软件工程软件生命周期软件生命周期 软件从孕育、诞生、成长、衰亡的生存过程,称软件从孕育、诞生、成长、衰亡的生存过程,称为软件的生命周期。为软件的生命周期。六个步骤:六个步骤:制定计划:问题分析、可行性研究制定计划:问题分析、可行性研究 需求分析需求分析 软件系统设计:总体设计、详细设计软件系统设计:总体设计、详细设计 软件编码软件编码 软件
8、测试软件测试 软件维护软件维护第二章第二章 软件体系结构软件体系结构 基本概念基本概念 重要性重要性 组件与连接器组件与连接器 风格与模式风格与模式 非功能属性非功能属性第一节第一节 基本概念基本概念 定义还没有达到共识。定义还没有达到共识。以下几个有助于我们的理解以下几个有助于我们的理解 软件体系结构是一组具有一定形式的结构化元素(设软件体系结构是一组具有一定形式的结构化元素(设计元素)组成。计元素)组成。软件体系结构超越了计算过程中的算法设计和数据结软件体系结构超越了计算过程中的算法设计和数据结构。构。四视图观点:概念上的体系结构、模块体系结构、代四视图观点:概念上的体系结构、模块体系结构
9、、代码体系结构和运行体系结构。码体系结构和运行体系结构。四模式观点:概念模式、框架模式、动态模式、进程四模式观点:概念模式、框架模式、动态模式、进程模式模式 所以:所以:软件体系结构对软件系统的构造起着指导性作用。软件体系结构对软件系统的构造起着指导性作用。它回避了软件系统的功能细节,着重于讨论软件系它回避了软件系统的功能细节,着重于讨论软件系统的总体构架。统的总体构架。它关注的是系统结构及其组成组件。它关注的是系统结构及其组成组件。修正后的软件生命周期:修正后的软件生命周期:需求分析需求分析 体系结构设计体系结构设计:选择模式,选择组件,组件之间的关:选择模式,选择组件,组件之间的关系以及它
10、们之间的约束。以此为框架,为详细设计奠系以及它们之间的约束。以此为框架,为详细设计奠定基础。原为定基础。原为“总体设计总体设计”详细设计详细设计 实现实现 维护维护第二节第二节 重要性重要性 良好的体系结构设计是决定软件系统成功的重要良好的体系结构设计是决定软件系统成功的重要因素。因素。早期的教训:早期的教训:IBM OS/360(1963-1966)软件体系结构的指导意义软件体系结构的指导意义 作为软件开发的基本指导方针作为软件开发的基本指导方针 整个软件设计的开端,决定着开发工作的整体结整个软件设计的开端,决定着开发工作的整体结构,具有更大的决策性和约束性。构,具有更大的决策性和约束性。体
11、系结构给予后继开发人员一个可实现的指导和体系结构给予后继开发人员一个可实现的指导和约束。约束。软件体系结构的指导意义软件体系结构的指导意义 对软件质量保证具有重大的影响对软件质量保证具有重大的影响 支配了从开发到维护项目的团队组织结构支配了从开发到维护项目的团队组织结构 对软件的修改、变动提供了保证和约束。对软件的修改、变动提供了保证和约束。提供了软件的可重用性提供了软件的可重用性为什么体系结构没能早日引进来呢?为什么体系结构没能早日引进来呢?早期软件开发被认为是个人创造力的产物,灵活早期软件开发被认为是个人创造力的产物,灵活性很高,从而导致开发者无规可循。性很高,从而导致开发者无规可循。早期
12、软件开发的规模较小,开发通常由个人或者早期软件开发的规模较小,开发通常由个人或者小的团队来完成,团队易于沟通交流,体系结构小的团队来完成,团队易于沟通交流,体系结构的要求不迫切。的要求不迫切。软件产品提交给用户的为编译后的软件,不能看软件产品提交给用户的为编译后的软件,不能看到源代码,其他人难以分析其结构,阻碍了技术到源代码,其他人难以分析其结构,阻碍了技术的传播。的传播。第三节第三节 组件和连接器组件和连接器 现代软件系统通常采用组件(构件)的开发方法现代软件系统通常采用组件(构件)的开发方法 组件:组件:系统中的结构块,是软件功能设计和实现系统中的结构块,是软件功能设计和实现的承载体。的承
13、载体。连接器:连接器:组件之间进行连接的组件。组件之间进行连接的组件。软件体系结构的两大构成:组件、连接器软件体系结构的两大构成:组件、连接器组件组件 组件:组件:系统中的结构块,是软件功能设计和实现系统中的结构块,是软件功能设计和实现的承载体。的承载体。组件的表达形式:组件的表达形式:组件是由组件是由封装的内部数据结构及其操作封装的内部数据结构及其操作,以及,以及对外提对外提供的操作方法集合供的操作方法集合组成。例:组成。例:公安局公安局组件组件接口接口组件的特性(略)组件的特性(略)连接器连接器 连接:连接:组件之间建立和维护行为关联及信息传递组件之间建立和维护行为关联及信息传递的途径。的
14、途径。连接包含两方面:连接包含两方面:物质基础:连接发生和维持的机制;物质基础:连接发生和维持的机制;规约协议:连接能够正确地、无二义、无冲突地进行规约协议:连接能够正确地、无二义、无冲突地进行信息交换的保证。信息交换的保证。例:例:电源转接板电源转接板简单连接:两个组件直接连接简单连接:两个组件直接连接 复杂连接:专门的连接组件(连接器)复杂连接:专门的连接组件(连接器)连接器连接器A A组件组件A A组件组件B B组件组件B B组件组件 连接的特性(略):连接的特性(略):方向性、激发、响应特性方向性、激发、响应特性 连接的匹配(连接器如何工作的呢):连接的匹配(连接器如何工作的呢):修改
15、组件:修改组件:有源代码有源代码 进行包装:进行包装:常用方法常用方法 加入中介:加入中介:比较复杂或要求灵活性的比较复杂或要求灵活性的 握手:握手:经常变动的系统经常变动的系统第四节第四节 风格和模式风格和模式 软件设计人员在长期开发某种类型软件过程中摸软件设计人员在长期开发某种类型软件过程中摸索到该类软件的一些规律性的东西,经过提炼总索到该类软件的一些规律性的东西,经过提炼总结,得到了具有普遍性的构建结,得到了具有普遍性的构建模式模式或称为构建或称为构建风风格格。本课程将讨论学习应用较广泛的体系结构风格或本课程将讨论学习应用较广泛的体系结构风格或模式。模式。使用软件体系结构的风格和模式的意
16、义:使用软件体系结构的风格和模式的意义:便于设计开发者之间互相交流便于设计开发者之间互相交流 促进了设计的复用促进了设计的复用 也促进了代码的复用也促进了代码的复用 使用标准的风格和模式有利于支持互操作使用标准的风格和模式有利于支持互操作所以:所以:有利于交流和理解;有利于交流和理解;有利于提高软件设计实施的效率和质量;有利于提高软件设计实施的效率和质量;风格和模式的完善和系统化,也标志软件体系风格和模式的完善和系统化,也标志软件体系结构的成熟。结构的成熟。我们对风格、模式和框架不加区分。我们对风格、模式和框架不加区分。我们讲解侧重于我们讲解侧重于模式。模式。模式分为三个层次:模式分为三个层次
17、:系统体系结构模式(第三章)系统体系结构模式(第三章)体系结构的设计模式(第四章)体系结构的设计模式(第四章)基础结构模式(第五章)基础结构模式(第五章)系统体系结构模式系统体系结构模式体系结构的设计模式体系结构的设计模式基础结构模式基础结构模式范围最大,层次最高范围最大,层次最高中等规模,独立于特定语言中等规模,独立于特定语言最低层、最基础的模式,最低层、最基础的模式,和特定语言有关和特定语言有关系统体系结构模式系统体系结构模式体系结构的设计模式体系结构的设计模式基础结构模式基础结构模式 卷一、卷二、卷三卷一、卷二、卷三参考书参考书 Robert C.Martin 清华大学出版社第五节第五节
18、 非功能属性非功能属性 功能属性功能属性 非功能属性:非功能属性:易修改性:易修改性:可维护性可维护性 可扩展性可扩展性 结构重组结构重组 可移植性:可移植性:硬件平台、硬件平台、操作系统、操作系统、用户界面、用户界面、编程语言编程语言 互操作性互操作性:软件需要经常与其它系统和周围的硬软件软件入口软件需要经常与其它系统和周围的硬软件软件入口 可靠性可靠性 容错能力容错能力 健壮性健壮性 效率效率 响应时间、吞吐率、存储空间响应时间、吞吐率、存储空间 可重用性可重用性 重用现有的组件和重用以前的项目、商业库、设计重用现有的组件和重用以前的项目、商业库、设计分析、设计说明。分析、设计说明。为重用
19、进行软件开发为重用进行软件开发 可测试性可测试性 软件系统变的越来越大,越来越复杂,软件测试工软件系统变的越来越大,越来越复杂,软件测试工作也变得越来越困难和昂贵。作也变得越来越困难和昂贵。第三章第三章 系统体系结构模式系统体系结构模式 十种模式:十种模式:管道过滤器、管道过滤器、分层、分层、知识库(黑板)、知识库(黑板)、MVCMVC、PACPAC、客户与服务器、客户与服务器、COM/DCOM/COM+COM/DCOM/COM+、代理者、代理者、微核、微核、映像、映像、异构异构每种体系结构的讲解内容每种体系结构的讲解内容 概述概述 结构:静态结构:静态 动态特性动态特性 实现实现 特性特性
20、变体变体 优缺点优缺点GoogleGoogle八周岁了!八周岁了!第第1节节 管道过滤器管道过滤器 概述概述 结构结构 动态特性动态特性 实现实现 特性特性 变体变体 优缺点优缺点1 概述概述 数据流处理系统数据流处理系统 示例:示例:UNIX操作系统的管道过滤器操作系统的管道过滤器 示例:语言编译器示例:语言编译器扫描器扫描器语法分析语法分析编译器编译器语义分析语义分析调用调用输入输入代码生成代码生成2 静态结构静态结构过滤器组件过滤器组件管道过滤器组件管道输入输入输出输出数据源输出数据池过滤器组件过滤器组件 3种激活方式种激活方式(1)后续的组件从过滤器中拉出数据;)后续的组件从过滤器中拉
21、出数据;(2)前面的组件向过滤器推入新数据;)前面的组件向过滤器推入新数据;(3)过滤器处于活跃状态,以循环的方式,不断地从)过滤器处于活跃状态,以循环的方式,不断地从前面的组件中拉出数据,并向后续的组件推入数据。前面的组件中拉出数据,并向后续的组件推入数据。前两种称为前两种称为被动过滤器被动过滤器;后一种称为;后一种称为主动过滤器主动过滤器数据源数据源(1)主动:将数据推入过滤器)主动:将数据推入过滤器 (2)被动:在过滤器需要时被动提供数据)被动:在过滤器需要时被动提供数据数据池数据池(1)主动:从过滤器拉出来数据)主动:从过滤器拉出来数据 (2)被动:在过滤器把结果推入或写入)被动:在过
22、滤器把结果推入或写入管道组件管道组件 管道是过滤器之间的连接。管道是过滤器之间的连接。管道:(管道:(1)对被动过滤器的直接调用。)对被动过滤器的直接调用。(2)两个主动过滤器进行同步)两个主动过滤器进行同步一般结构一般结构过滤器过滤器过滤器过滤器管道过滤器结构管道过滤器结构过滤器过滤器管道管道数据流数据流数据源数据源数据池数据池过滤器过滤器3 动态特性4 实现实现(1 1)把系统任务分成几个独立的)把系统任务分成几个独立的处理阶段处理阶段。(2 2)定义沿着每个管道传输的)定义沿着每个管道传输的数据格式数据格式。(3 3)决定管道的连接。)决定管道的连接。(4 4)设计和实现过滤器。)设计和
23、实现过滤器。(5 5)设计出错处理。)设计出错处理。(6 6)建立处理流水线。)建立处理流水线。应用举例应用举例 搜索引擎搜索引擎 快速全面的原因快速全面的原因 抓取、分词、索引、页面等级评定、查询抓取、分词、索引、页面等级评定、查询5 特特 性性(1 1)每个过滤器都是独立的整体,相互之间的)每个过滤器都是独立的整体,相互之间的状态互不影响。状态互不影响。(2 2)过滤器并不知道它的上游和下游连接的过)过滤器并不知道它的上游和下游连接的过滤器的特性。滤器的特性。(3 3)运行结果的正确性不依赖于各个过滤器运)运行结果的正确性不依赖于各个过滤器运行的次序。行的次序。6 变变 体体(1 1)限制
24、过滤器为单输入、单输出:从拓扑结)限制过滤器为单输入、单输出:从拓扑结构上看,为线性构上看,为线性过滤器组件过滤器组件管道过滤器组件管道输入输入输出输出输出(2 2)如果允许过滤器的输入或输出多于一个:)如果允许过滤器的输入或输出多于一个:造成反馈回路(拓扑结构:有向图)。需要保造成反馈回路(拓扑结构:有向图)。需要保证系统可终止。证系统可终止。(3 3)有名管道(文件)有名管道(文件)过滤器过滤器过滤器过滤器管道过滤器结构管道过滤器结构过滤器过滤器管道管道数据流数据流数据源数据源数据池数据池过滤器过滤器7 优缺点优缺点 1 1、优点、优点 易于重组,增加了系统的灵活性。易于重组,增加了系统的
25、灵活性。易于更新、升级和维护易于更新、升级和维护 易于重用。易于重用。并行处理提高了系统的效率。?并行处理提高了系统的效率。?快速原型系统的设计实现快速原型系统的设计实现 拓扑结构清晰,方便性能分析。拓扑结构清晰,方便性能分析。优缺点 2 2、缺点、缺点 会导致数据的批处理方式。会导致数据的批处理方式。不适合处理交互式应用要求。不适合处理交互式应用要求。增加了系统的开销和复杂性。增加了系统的开销和复杂性。共享状态信息代价高且不灵活。共享状态信息代价高且不灵活。用并行处理来获得高效率是不可行的。?用并行处理来获得高效率是不可行的。?难以进行错误处理。难以进行错误处理。第第2 2节节 分层结构分层
展开阅读全文