软件架构与架构建模技术课件.ppt
《软件架构与架构建模技术课件.ppt》由会员分享,可在线阅读,更多相关《软件架构与架构建模技术课件.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件架构与架构建模技术2023/4/111第1页,此课件共51页哦7.1从设计模式到软件架构w随着软件系统越来越复杂和庞大,对数据结构及算法的选择在许多情况下成为较次要的部分,代码级别的软件复用已经远远不能满足大型软件开发的需求。而对整个系统的设计和描述变得越来越重要。由此便产生了软件架构(SoftwareArchitecture)这一概念,软件架构是软件设计抽象的进一步发展,它使得软件开发人员视野更加开阔,满足了更好地理解软件系统,更方便地开发更大、更复杂的软件系统的需要。2023/4/112第2页,此课件共51页哦7.1.1软件架构的定义软件架构的定义w虽然软件架构已经在软件工程领域中有着
2、广泛的应用,但迄今为止还没有一个被大家所公认的定义。许多专家学者从不同角度和不同侧面对软件架构进行了刻画。2023/4/113第3页,此课件共51页哦7.1.1软件架构的定义软件架构的定义w我们将使用软件架构的下列定义:w软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。2023/4/114第4页,此课件共51页哦7.1.2软件架构的发展史软件架构的发展史w20世纪70年代以前,此
3、阶段系统规模较小,很少明确考虑系统结构,一般不存在系统建模工作。w70年代中后期,由于结构化开发方法的出现与广泛应用,软件开发中出现了概要设计与详细设计,而且主要任务是数据流设计与控制流设计。因此,此时软件结构已作为一个明确的概念出现在系统的开发中。2023/4/115第5页,此课件共51页哦7.1.2软件架构的发展史软件架构的发展史w20世纪80年代初到90年代中期,是面向对象开发方法兴起与成熟阶段。w90年代以后则是基于构件的软件开发阶段,该阶段以过程为中心,强调软件开发采用构件化技术和体系结构技术,要求开发出的软件具备很强的自适应性、互操作性、可扩展性和可重用性。此阶段中,软件架构已经作
4、为一个明确的文档和中间产品存在于软件开发过程中,同时,软件架构作为一门学科逐渐得到人们的重视,并成为软件工程领域的研究热点。2023/4/116第6页,此课件共51页哦7.1.2软件架构的发展史软件架构的发展史w经历了4个阶段:(1)“无体系结构”设计阶段:以汇编语言进行小规模应用程序开发为特征;(2)萌芽阶段:出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征;(3)初级阶段:出现了从不同侧面描述系统的结构模型,以UML为典型代表;(4)高级阶段:以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结构模型与传统的软件结构的界限,该阶段以Kruchten提出的“4+1
5、”模型为标志。2023/4/117第7页,此课件共51页哦7.2经典软件架构模式w人们在软件开发实践中总结出了许多软件架构模式,这些模式在提出后得到了不断的修正和完善,逐渐成为人们选择软件架构时首先考虑的模式,因此称为经典软件架构模式。2023/4/118第8页,此课件共51页哦7.2.1管道和过滤器模式w1、管道和过滤器模式的基本结构、管道和过滤器模式的基本结构2023/4/119第9页,此课件共51页哦7.2.1管道和过滤器模式w2、管道和过滤器模式的优点、管道和过滤器模式的优点w管道和过滤器模式的软件架构具有许多很好的特点:管道和过滤器模式的软件架构具有许多很好的特点:w(1)使得软构件
6、具有良好的隐蔽性和高内聚、低耦合的特点;)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;w(2)允许设计者将整个系统的输入)允许设计者将整个系统的输入/输出行为看成是多个过滤输出行为看成是多个过滤器的行为的简单合成;器的行为的简单合成;w(3)支持软件重用。只要提供适合在两个过滤器之间传送的数据,)支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;任何两个过滤器都可被连接起来;w(4)系统维护和增强系统性能简单。新的过滤器可以添加到现)系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;有系统中来;旧的可以被改进的过
7、滤器替换掉;w(5)允许对一些属性如吞吐量、死锁等的分析;)允许对一些属性如吞吐量、死锁等的分析;w(6)支持并行执行。每个过滤器是作为一个单独的任务完成,因此)支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。可与其它任务并行执行。2023/4/1110第10页,此课件共51页哦7.2.1管道和过滤器模式w3、管道和过滤器模式的不足、管道和过滤器模式的不足w采用管道和过滤器模式的系统也存在着若干不利因素。采用管道和过滤器模式的系统也存在着若干不利因素。w(1)通常导致进程成为批处理的结构。这是因为虽然过滤器可增量)通常导致进程成为批处理的结构。这是因为虽然过滤器可增
8、量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。一个完整的从输入到输出的转换。w(2)不适合处理交互的应用。当需要增量地显示改变时,这个问题)不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。这样的系统几乎无法显示系统数据流细微的变换过程。尤为严重。这样的系统几乎无法显示系统数据流细微的变换过程。w(3)因为在数据传输上没有通用的标准,每个过滤器都增加了解)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写析和合成数据
9、的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。过滤器的复杂性。2023/4/1111第11页,此课件共51页哦7.2.1管道和过滤器模式w4、模式实例、模式实例w一个特征显著的实例是传统的编译器。传统的编译器一直被认为是一一个特征显著的实例是传统的编译器。传统的编译器一直被认为是一种管道系统,在该系统中,一般包含四个阶段即:词法分析、语法分种管道系统,在该系统中,一般包含四个阶段即:词法分析、语法分析、语义分析和代码生成,每一个阶段的输出是另一个阶段的输入。析、语义分析和代码生成,每一个阶段的输出是另一个阶段的输入。2023/4/1112第12页,此课件共51页哦7.2.2面向
10、对象模式面向对象模式w1、面向对象模式的基本结构、面向对象模式的基本结构2023/4/1113第13页,此课件共51页哦7.2.2面向对象模式面向对象模式w2、面向对象模式的优点、面向对象模式的优点w面向对象系统具有如下面向对象系统具有如下4个基本特征:信息隐藏、数据抽象、动态汇集和继承个基本特征:信息隐藏、数据抽象、动态汇集和继承性,其优点大致归纳为以下几方面:性,其优点大致归纳为以下几方面:w(1)高度模块化,系统中的每个对象都是功能和数据独立的单元,对象之间)高度模块化,系统中的每个对象都是功能和数据独立的单元,对象之间的联系是明确的和可预知的。的联系是明确的和可预知的。w(2)功能封装
11、、信息隐藏,用户不必知道对象的内部状态,只需了解其功能)功能封装、信息隐藏,用户不必知道对象的内部状态,只需了解其功能描述就可以使用。因为对象对其它对象隐藏它的表示,所以可以改变一个对象描述就可以使用。因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象。的表示,而不影响其它的对象。w(3)可重用性好,面向对象的继承性提供了一种代码共享的手段,可以避免重复)可重用性好,面向对象的继承性提供了一种代码共享的手段,可以避免重复的代码设计。的代码设计。w(4)灵活性)灵活性,对象可以根据自身的特点进行功能实现,提高了系统的灵活性。,对象可以根据自身的特点进行功能实现,提高了
12、系统的灵活性。w(5)系统易维护,面向对象的封装性决定了类和对象内聚性,从而将可能出)系统易维护,面向对象的封装性决定了类和对象内聚性,从而将可能出现的错误限制在对象内部,不会向外传播,易于检错和修改,对某个对象中错现的错误限制在对象内部,不会向外传播,易于检错和修改,对某个对象中错误的修改也不会导致其它对象代码失效。误的修改也不会导致其它对象代码失效。w(6)可扩充性好,面向对象系统可以通过继承机制不断扩充功能,这种增量式的)可扩充性好,面向对象系统可以通过继承机制不断扩充功能,这种增量式的功能扩充方式不会影响原有系统的运行。功能扩充方式不会影响原有系统的运行。2023/4/1114第14页
13、,此课件共51页哦7.2.2面向对象模式面向对象模式w3、面向对象模式的不足、面向对象模式的不足w(1)为了使一个对象和另一个对象通过过程调用等)为了使一个对象和另一个对象通过过程调用等进行交互,必须知道被调用对象的标识(对象名或进行交互,必须知道被调用对象的标识(对象名或其他标识符)。这就增加了对象之间的依赖关系,其他标识符)。这就增加了对象之间的依赖关系,只要一个对象的标识改变了,就必须修改所有其他只要一个对象的标识改变了,就必须修改所有其他明确调用它的对象。明确调用它的对象。w(2)如果修改一个对象,也必须修改所有显式调用它的)如果修改一个对象,也必须修改所有显式调用它的其它对象,并消除
14、由此带来的一些副作用。例如,如果其它对象,并消除由此带来的一些副作用。例如,如果A使用了对象使用了对象B,C也使用了对象也使用了对象B,那么,那么,C对对B的使的使用所造成的对用所造成的对A的影响可能是料想不到的。的影响可能是料想不到的。2023/4/1115第15页,此课件共51页哦7.2.2面向对象模式面向对象模式w4、模式实例、模式实例w以一个最简单的交互式矢量绘图系统为例。以一个最简单的交互式矢量绘图系统为例。2023/4/1116第16页,此课件共51页哦7.2.3分层模式分层模式w1、分层模式的基本结构、分层模式的基本结构2023/4/1117第17页,此课件共51页哦7.2.3分
15、层模式分层模式w2、分层模式的优点、分层模式的优点w(1)支持基于抽象程度递增的系统设计,使设计者可以)支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解。把一个复杂系统按递增的步骤进行分解。w(2)支持功能增强,有较好的扩展性。因为每一层)支持功能增强,有较好的扩展性。因为每一层至多和相邻的上下层交互,因此功能的改变最多影至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;如果该层次功能的变化仅仅局限响相邻的上下层;如果该层次功能的变化仅仅局限于某些功能函数的具体实现,而没有对接口进行修于某些功能函数的具体实现,而没有对接口进行修改,那么对其相邻层次几乎没
16、有影响。改,那么对其相邻层次几乎没有影响。w(3)支持软件重用。只要提供的服务接口定义不变,)支持软件重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法。义一组标准的接口,而允许各种不同的实现方法。2023/4/1118第18页,此课件共51页哦7.2.3分层模式分层模式w3、分层模式的不足、分层模式的不足w(1)并不是每个系统都可以很容易地划分)并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能
17、的考虑,系构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综统设计师不得不把一些低级或高级的功能综合起来;合起来;w(2)很难找到一个合适的、正确的层次抽)很难找到一个合适的、正确的层次抽象方法。象方法。2023/4/1119第19页,此课件共51页哦7.2.3分层模式分层模式w4、模式实例、模式实例w层次系统最广泛的应用是分层通信协议。在这一应用领域中,每一层提供一个抽象的功能,作为层次系统最广泛的应用是分层通信协议。在这一应用领域中,每一层提供一个抽象的功能,作为上层通信的基础。较低的层次定义低层的交互,最低层通常只定义硬件物理连接。上层通信的基础。较低的层次定义
18、低层的交互,最低层通常只定义硬件物理连接。w以以ISO/OSI参考模型为例。该模型采用了参考模型为例。该模型采用了7层体系结构,从高到低分别是:应用层、表层体系结构,从高到低分别是:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。示层、会话层、传输层、网络层、数据链路层和物理层。2023/4/1120第20页,此课件共51页哦7.2.4知识库模式知识库模式w1、知识库模式基本结构、知识库模式基本结构2023/4/1121第21页,此课件共51页哦7.2.4知识库模式知识库模式w2、知识库模式的优缺点、知识库模式的优缺点w知识库模式常应用于专家系统中,是专家系知识库模式常应用于专家系
19、统中,是专家系统中不可替代的软件架构模式,但在其他领统中不可替代的软件架构模式,但在其他领域应用的案例较少见。域应用的案例较少见。2023/4/1122第22页,此课件共51页哦7.2.4知识库模式知识库模式w4、模式实例、模式实例w知识库模式的软件体系架构常见于专家系统中。知识库模式的软件体系架构常见于专家系统中。w专家系统是一类具有专门知识和经验的计算机智能程序系统,通过对人类专家的问题求解能专家系统是一类具有专门知识和经验的计算机智能程序系统,通过对人类专家的问题求解能力的建模,采用人工智能中的知识表示和知识推理技术来模拟通常由专家才能解决的复杂力的建模,采用人工智能中的知识表示和知识推
20、理技术来模拟通常由专家才能解决的复杂问题,达到具有与专家同等解决问题能力的水平。问题,达到具有与专家同等解决问题能力的水平。2023/4/1123第23页,此课件共51页哦7.3客户客户/服务器模式服务器模式w当一台连入网络的计算机向其他计算机提供各种网络服务(如数据、文件的共享等)时,它就被叫做服务器。而那些用于访问服务器资料的计算机则被叫做客户机。客户机和服务器都是独立的计算机。采用客户/服务器(Client/Server,C/S)结构的系统,有一台或多台服务器以及大量的客户机。服务器配备大容量存储器并安装数据库系统,用于数据的存放和数据检索;客户端安装专用的软件,负责数据的输入、运算和输
21、出。严格说来,客户机服务器模型并不是从物理分布的角度来定义,它所体现的是一种网络数据访问的实现方式。采用这种结构的系统目前应用非常广泛。2023/4/1124第24页,此课件共51页哦7.3.1协作计算模型的发展协作计算模型的发展w在集中式计算技术时代,广泛使用大型机/小型机计算模型。w70年代以后,随着微型计算机和计算机网络的出现,集中式结构逐渐被以PC为主的微机网络所取代。w网络/文件服务器计算模型的产生用以解决个人PC和工作站的数据和外部设备共享问题。w以PC机为主体的文件服务器并不能满足分布式计算的需求,因此客户机/服务器技术应运而生,它集中了大中型系统及文件服务器的优点,并有良好的系
22、统开放性和可扩展性。w随着信息的全球化,区域的界限已经被打破,电子商务作为Internet的强大的驱动力,迫使客户机/服务器模式从局域网(LAN)向广域网(WAN)延伸。2023/4/1125第25页,此课件共51页哦7.3.2传统两层客户机传统两层客户机/服务器模式服务器模式w1、两层客户机、两层客户机/服务器模式的基本结构服务器模式的基本结构w客户机/服务器系统有三个主要部件:数据库服务器、客户应用程序和网络。w(1)服务器负责有效地管理系统的资源,其任务集中于:w数据库安全性的要求w数据库访问并发性的控制w数据库前端的客户应用程序的全局数据完整性规则w数据库的备份与恢复w(2)客户端应用
23、程序的主要任务是:w提供用户与数据库交互的界面w向数据库服务器提交用户请求并接收来自数据库服务器的信息w利用客户应用程序对存在于客户端的数据执行应用逻辑要求w(3)网络通信软件的主要作用是,完成数据库服务器和客户应用程序之间的数据传输。2023/4/1126第26页,此课件共51页哦7.3.2传统两层客户机传统两层客户机/服务器模式服务器模式w1、两层客户机、两层客户机/服务器模式的基本结构服务器模式的基本结构2023/4/1127第27页,此课件共51页哦7.3.2传统两层客户机传统两层客户机/服务器模式服务器模式w2、两层客户机、两层客户机/服务器模式的优缺点服务器模式的优缺点w(1)系统
24、的客户端应用程序和服务器部件分别运行在不同的计算机上,系统中每台服务器都可以适合各部件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和维护。w(2)在客户机/服务器模型中,系统中的功能部件充分隔离,客户端程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用开发中都要对一个数据库进行编码。w(3)将大的应用处理任务分布到许多通过网络连接的低成本计算机上使系统部署费用极大降低。w(4)两层模式的客户机/服务器模式和多层模式相比,开发、部署和维护成本较低。2023/4/1128第28页,此课件共51页哦7.3.2传统两层客户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 架构 建模 技术 课件
限制150内