太原理工大学软件工程-第十三章_第1页
太原理工大学软件工程-第十三章_第2页
太原理工大学软件工程-第十三章_第3页
太原理工大学软件工程-第十三章_第4页
太原理工大学软件工程-第十三章_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020年6月9日,随着第1页、第13章软件体系结构、本章内容结构、本章学习目标教学内容本章的总结思考与练习讨论、本章引言、对象技术的出现和广泛应用,软件重用带来明显利益,同时对软件重用性的要求也越来越高。 软件体系结构研究在现有成熟软件系统中总结出良好的设计模型,为软件开发工程化提供更抽象的层次复用粒度。 本章主要介绍了软件体系结构的简要介绍以及一些经典和现代体系结构风格和模型。 通过这几种体系结构风格的介绍,为大家进行高级软件项目的学习和研究提供了一些认识。 了解2020年6月9日、第2页、2020年6月9日、第3页、学习目标、软件体系结构定义, 特点理解和传统软件体系结构风格的特点和应用理解现代软件体系结构风格的特点和应用理解掌握软件分析设计中软件体系结构风格的选择标准,第13章软件体系结构、 软件架构的研究从现有的成熟软件系统中总结出良好的设计模型,为软件开发工程化提供更抽象的层次多重粒度。 软件体系结构来源于软件工程,借鉴计算机体系结构和网络体系结构的宝贵思想和方法,近年来软件体系结构研究完全独立于软件工程研究,在计算机科学中本章主要给出了软件体系结构的简要介绍和一些典型的体系结构样式和模型,通过介绍这些体系结构样式,为高级软件工程学习和研究提供了基础认识。 2020年6月9日,第5页,教学内容,13.1软件体系结构概述13.2经典软件体系结构样式13.3现代软件体系结构样式13.4章总结和练习,13.1软件体系结构概述,一, 主要研究内容软件体系结构关注软件系统在软件系统总体结构层面的构建和配置,主要关注软件系统是如何构建的,由哪些子系统和组件构成,这些子系统和组件之间的关系软件架构是设计抽象化的进一步发展,满足了更好地理解软件系统、更大、更复杂的软件系统开发的需要。 13.1软件体系结构概述,二是从20世纪80年代初到90年代中期,从没有体系结构到过程软件开发方法成熟的阶段是对象开发方法的兴起和成熟阶段。 由于对象是基于数据和数据的操作封装,因此在面向对象的开发方法中,数据流设计和控制流设计从1990年代开始进入基于组件的软件开发阶段,该阶段以过程为中心。 强调软件开发采用组件化技术和体系结构技术,要求开发的软件具有较强的适应性、互操作性、可扩展性和重用性,三是当前研究和应用现状的软件体系结构描述、结构和表达软件体系结构分析、设计、 验证软件体系结构的发现、发展、基于重复使用体系结构的软件开发方法评估特定领域的体系结构框架软件体系结构支持工具软件产品线的体系结构和软件体系结构的方法等在软件体系结构的结构设计中,如何有效地使用现有的组织结构模型至关重要。 13.1软件体系结构概述,2020年6月9日,第9页,13.2经典软件体系结构样式,13.2.1流水线过滤器(流程处理)体系结构13.2.2分层体系结构13.2.3客户端/服务器服务器体系结构(B/S )和流程处理系统的软件体系结构具有一系列输入和输出,每个组件都读取输入数据流,并在组件内部进行处理(过滤)以生成输出数据流。 此体系结构也称为“管道过滤器”体系结构。但是,作为过滤器的处理部件必须是独立的实体,并不能与其他过滤器共享数据。 流处理系统的典型示例是传统编译器,其中一个级的输出为另一个级的输入。 典型编译器系统的处理流程参考图15.1、13.2.1管道滤波器(流处理)架构和13.2.1管道滤波器(流处理)架构,而典型编译器系统的典型编译器系统包括词法分析、语法分析、语义分析、中间代码词法分析器读取源程序,按照该语言词法规则分析处理源程序,将分析后的词法要素作为语法分析器的输入输出到语法分析器。 语法分析器根据该语言的语法规则识别源程序语法的正确性,如果有错误,则迅速与用户进行交互,对语法正确的源程序生成中间代码,优化目标代码,生成目标代码等操作顺序。 典型的编译器系统体系结构图见图15.2。 系统服务节点包含数据库。 请注意,六个处理器组件之间的连接是单向的。 13.2.1管道-过滤器(流处理)体系结构、13.2.1管道-过滤器(流处理)体系结构、2、流处理体系结构专色流处理系统的软件体系结构最突出的是各处理组件之间的单向连接13.2.1管道-滤波器(流处理)体系结构、三、流处理系统的优点是支持软件重用,其中系统的总体行为是每个处理组件的简单组合:只要输入和输出数据设计得恰当, 处理组件对不同系统可重复使用的系统的维护和性能的增强相对简单:只要添加新的处理组件,系统就可以轻松扩展。 支持旧的不合理组件也可以用改进的组件轻松替换的并行运行:每个处理器组件作为单独的任务完成,并且可以与其他任务并行运行,系统可以在大型并行计算机上运行,从而解决复杂的工程技术和科研课题13.2.1管道-过滤器(过程处理)体系结构、四、过程处理体系结构的缺陷主要以批处理方式执行,通常过程为批处理结构,因为不适于交互式应用程序的组件之间的数据传输没有共同标准, 如果每个组件都需要分析和合成数据,并且需要以大量不同的方式输入和输出数据以降低系统性能,则存储和管理数据也是一个非常困难的问题。 五、过程处理体系的应用常见于以数据和图像处理、计算机模拟、数值解题等功能和算法为核心的问题解决中,13.2.1管道过滤器(过程处理)体系结构,2020年6月9日,第17页,13.2.2层体系结构分层设计是软件设计中非常常见的设计方法,分层是软件分析和设计的基本和普遍适应性思想方法。 分层体系结构通常将软件系统组织成分层结构,每个分层向上层提供服务,成为下层客户。 这种风格基于增加抽象层的设计,可以将复杂的问题分解成阶段性的序列。 每个阶层最多只影响两个阶层。 同时,如果相邻层提供相同的接口,则每个层可以以不同的方式实现,并且还可以提供对软件重用的有力支持。 分层结构如图13.3所示。 2020年6月9日,第18页,13.2.2层架构,多层架构具有以下特点:系统功能分布在多层次的不同层次,系统维护和扩展比较容易,系统功能变更影响最多的邻接上层。 从下层到上层,可分阶段控制,针对不同层次的应用需求,提供不同层次的服务。 能够扩展多层次的系统,为同时使用大量系统的用户提供服务。 支持灵活的实现和再利用。可以更换和使用相同级别的不同实现,除非所提供的服务接口发生更改。 2020年6月9日,第19页,13.2.2层体系结构,使用此类体系结构也有一些限制。 各层间可能存在多个不同的通信协议。 这样,实现系统需要多位精通这些协议的专家。 新技术不容易应用。 由于多个层次之间的连接相关,因此选择了一个软件平台和开发工具后,不容易进行变更。 另外,进程处理和客户机/服务器架构、进程处理系统是以程序算法和数据结构为中心,由被称为过滤器的部件和被称为管道的连接部件构成的架构。 每次处理时,首先接收数据,进行处理(过滤),最后生成输出数据。 客户端/服务器体系结构旨在实现共享,例如资源不足。 为了简化复杂系统的开发和维护,我们将大型中央系统分解为一些相对容易管理的节点和组件,并在设计上提供客户端/服务器体系结构。 客户端/服务器(Client/Server,C/S )体系结构是20世纪90年代成熟的技术,定义了客户端和服务器之间的连接关系,实现了数据和应用程序分散到多个处理器的任务。 在客户端/服务器体系结构中,应用程序分为两个部分。 客户端(前台)负责完成与用户交互的任务,例如查看数据的输入/输出结果。服务器处理较低级别的功能,例如运行数据库,服务器通常包含一系列服务器对象,可以同时为多个客户端提供服务服务器管理多个客户端应用程序的数据,但客户端程序只需发送、请求和分析从服务器接收的数据。 这是一种称为“胖客户机”或“瘦服务器”的体系结构。 体系结构图如图13.4所示。 13.2.3客户端/服务器体系结构、13.2.3客户端/服务器体系结构和C/S体系结构的优点主要在于客户端和服务器分离,客户端应用程序和服务器组件运行在不同的计算机上C/S架构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。 13.2.3客户端/服务器体系结构和C/S体系结构缺陷:客户端和服务器通信依赖于网络,可能成为整个系统操作的瓶颈(如果客户端和服务器端在同一计算机上,则不存在此问题)。 由于一台服务器支持多个客户机,因此无法随意更改服务器定义和接口。 否则,需要很多工作来确保许多客户机随着服务器更新而改变。 对客户的要求越来越复杂。 C/S体系结构对客户端硬件和软件的配置要求很高,特别是随着软件升级和硬件的改进,客户端越来越庞大,而C/S体系结构的软件开发也是客户端专业人员13.2.3客户端/服务器体系结构和C/S体系结构应用示例:许多基于LAN的软件系统和共享设备基于C/S体系结构,如LAN服务器共享的软件和公共打印机。 例如SQL数据库管理系统软件本身也是基于C/S架构的,并且通过参考下面的13.2.3客户端/服务器架构的处理流程是对于复杂问题分解有效的方法。 分层是软件分析和设计的基本和普遍适应性思想方法。 三层C/S体系结构可视为有两个客户端/服务器,并基于两层客户端/服务器体系结构进行抽象。 第一层通常是数据库管理节点,充当数据库服务器。第二层或中间层处理与业务逻辑或应用程序相关的计算。业务逻辑是在具体应用中实现的过程逻辑和规则,不一定与业务有关。 中间级别是第一级客户机和第三级服务器。 三级是用户界面级,负责与用户的交易。 多层C/S体系结构是三层C/S体系结构的普及,由一组客户端/服务器对组成。 因此,可以认为n层系统包括一对n-1客户端/服务器。 13.2.3客户端/服务器体系结构、13.2.3 C/S体系结构1、第三C/S体系结构图与第二C/S体系结构相比,第三c/s体系结构增加了一个应用服务器层,并且增加了整个应用逻辑如图13.5所示,第3层C/S架构可将应用功能分为显示层、功能层、数据层三部分。 13.2.3层和多层C/S体系结构三层C/S体系结构、15.3.1层C/S体系结构和二、三层C/S体系结构的各层功能展示:显示层是应用用户界面部分,承担用户与应用交互功能的功能层是应用程序数据层的主要组件是数据库管理系统,它是应用程序逻辑处理的核心,是连接客户端和数据库服务器的中介和桥接器,管理数据库中数据的读取和写入,并且通常是基于SQL的DBMS。 13.2.3层和多层C/S体系结构三层C/S体系结构、13.2.3层C/S体系结构、三层C/S体系结构的特点:允许合理划分三层结构的功能,在逻辑上保持各层的相对独立性。 这样系统整体逻辑结构明确,系统维护和扩展容易。 灵活选择各级所需的硬件和软件平台,这些平台的各组件具有良好的开放性,便于各组件的合理升级。 允许同时进行各个层次的应用程序开发,缩短了整体的软件开发周期。 允许利用功能层有效地隔离显示层和数据库层,非法用户绕过功能层,难以利用数据库工具和黑客手段非法访问数据库层,从而从逻辑层的设置中增强了数据库的安全性。 注意,第3层C/S架构的各层之间需要较高的通信效率,否则会影响系统整体性能。 13.2.3三层和多层C/S体系结构三层C/S体系结构,定义: B/S软件体系结构,即浏览器/服务器(Browser/Server )体系结构,是随着互联网技术的兴起而对C/S体系结构进行了改进的结构实现:在B/S体系结构中,用户界面在WWW浏览器中完全实现,有些事务逻辑在前端实现,但主要事务逻辑在服务器端实现。 体系结构: B/S软件体系结构是一种新的软件体系结构,通过浏览器实现了强大的功能,需要复杂的专用软件。 B/S软件架构图如图15.5所示。 此外,13.2.4浏览器/服务器体系结构(B/S )、13.2.4浏览器/服务器体系结构(B/S )的优点:首先B/S软件体系结构简化了客户端,然后B/S体系结构模型再次显示,该模型特别适合发布在线信息s体系结构通过互联网技术统一访问不同类型的数据库,为异构设备、异构网络和异构应用服务之间的统一服务提供了最现实的开放基础,13.2.4浏览器/服务器体系结构(B/S ),缺陷:而企业有结构虽然是任务确定的有序实体,但互联网指的是无序集合,B/S必须长期适应使用C/S模型的有序需求方式,并适应。 另一方面,在企业中积累了基于互联网以外的技术的各种应用程序,如何恰当地连接这些应用程序是B/S模型极其重要的课题。 在使用B/S体系结构模型时必须谨慎行动,例如动态页面支持

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论