欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件架构与架构建模技术课件.ppt

    • 资源ID:87207465       资源大小:2.56MB        全文页数:51页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件架构与架构建模技术课件.ppt

    软件架构与架构建模技术2023/4/111第1页,此课件共51页哦7.1从设计模式到软件架构w随着软件系统越来越复杂和庞大,对数据结构及算法的选择在许多情况下成为较次要的部分,代码级别的软件复用已经远远不能满足大型软件开发的需求。而对整个系统的设计和描述变得越来越重要。由此便产生了软件架构(SoftwareArchitecture)这一概念,软件架构是软件设计抽象的进一步发展,它使得软件开发人员视野更加开阔,满足了更好地理解软件系统,更方便地开发更大、更复杂的软件系统的需要。2023/4/112第2页,此课件共51页哦7.1.1软件架构的定义软件架构的定义w虽然软件架构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一个被大家所公认的定义。许多专家学者从不同角度和不同侧面对软件架构进行了刻画。2023/4/113第3页,此课件共51页哦7.1.1软件架构的定义软件架构的定义w我们将使用软件架构的下列定义:w软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。2023/4/114第4页,此课件共51页哦7.1.2软件架构的发展史软件架构的发展史w20世纪70年代以前,此阶段系统规模较小,很少明确考虑系统结构,一般不存在系统建模工作。w70年代中后期,由于结构化开发方法的出现与广泛应用,软件开发中出现了概要设计与详细设计,而且主要任务是数据流设计与控制流设计。因此,此时软件结构已作为一个明确的概念出现在系统的开发中。2023/4/115第5页,此课件共51页哦7.1.2软件架构的发展史软件架构的发展史w20世纪80年代初到90年代中期,是面向对象开发方法兴起与成熟阶段。w90年代以后则是基于构件的软件开发阶段,该阶段以过程为中心,强调软件开发采用构件化技术和体系结构技术,要求开发出的软件具备很强的自适应性、互操作性、可扩展性和可重用性。此阶段中,软件架构已经作为一个明确的文档和中间产品存在于软件开发过程中,同时,软件架构作为一门学科逐渐得到人们的重视,并成为软件工程领域的研究热点。2023/4/116第6页,此课件共51页哦7.1.2软件架构的发展史软件架构的发展史w经历了4个阶段:(1)“无体系结构”设计阶段:以汇编语言进行小规模应用程序开发为特征;(2)萌芽阶段:出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征;(3)初级阶段:出现了从不同侧面描述系统的结构模型,以UML为典型代表;(4)高级阶段:以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结构模型与传统的软件结构的界限,该阶段以Kruchten提出的“4+1”模型为标志。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)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;w(2)允许设计者将整个系统的输入)允许设计者将整个系统的输入/输出行为看成是多个过滤输出行为看成是多个过滤器的行为的简单合成;器的行为的简单合成;w(3)支持软件重用。只要提供适合在两个过滤器之间传送的数据,)支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;任何两个过滤器都可被连接起来;w(4)系统维护和增强系统性能简单。新的过滤器可以添加到现)系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;有系统中来;旧的可以被改进的过滤器替换掉;w(5)允许对一些属性如吞吐量、死锁等的分析;)允许对一些属性如吞吐量、死锁等的分析;w(6)支持并行执行。每个过滤器是作为一个单独的任务完成,因此)支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。可与其它任务并行执行。2023/4/1110第10页,此课件共51页哦7.2.1管道和过滤器模式w3、管道和过滤器模式的不足、管道和过滤器模式的不足w采用管道和过滤器模式的系统也存在着若干不利因素。采用管道和过滤器模式的系统也存在着若干不利因素。w(1)通常导致进程成为批处理的结构。这是因为虽然过滤器可增量)通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。一个完整的从输入到输出的转换。w(2)不适合处理交互的应用。当需要增量地显示改变时,这个问题)不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。这样的系统几乎无法显示系统数据流细微的变换过程。尤为严重。这样的系统几乎无法显示系统数据流细微的变换过程。w(3)因为在数据传输上没有通用的标准,每个过滤器都增加了解)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。过滤器的复杂性。2023/4/1111第11页,此课件共51页哦7.2.1管道和过滤器模式w4、模式实例、模式实例w一个特征显著的实例是传统的编译器。传统的编译器一直被认为是一一个特征显著的实例是传统的编译器。传统的编译器一直被认为是一种管道系统,在该系统中,一般包含四个阶段即:词法分析、语法分种管道系统,在该系统中,一般包含四个阶段即:词法分析、语法分析、语义分析和代码生成,每一个阶段的输出是另一个阶段的输入。析、语义分析和代码生成,每一个阶段的输出是另一个阶段的输入。2023/4/1112第12页,此课件共51页哦7.2.2面向对象模式面向对象模式w1、面向对象模式的基本结构、面向对象模式的基本结构2023/4/1113第13页,此课件共51页哦7.2.2面向对象模式面向对象模式w2、面向对象模式的优点、面向对象模式的优点w面向对象系统具有如下面向对象系统具有如下4个基本特征:信息隐藏、数据抽象、动态汇集和继承个基本特征:信息隐藏、数据抽象、动态汇集和继承性,其优点大致归纳为以下几方面:性,其优点大致归纳为以下几方面:w(1)高度模块化,系统中的每个对象都是功能和数据独立的单元,对象之间)高度模块化,系统中的每个对象都是功能和数据独立的单元,对象之间的联系是明确的和可预知的。的联系是明确的和可预知的。w(2)功能封装、信息隐藏,用户不必知道对象的内部状态,只需了解其功能)功能封装、信息隐藏,用户不必知道对象的内部状态,只需了解其功能描述就可以使用。因为对象对其它对象隐藏它的表示,所以可以改变一个对象描述就可以使用。因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象。的表示,而不影响其它的对象。w(3)可重用性好,面向对象的继承性提供了一种代码共享的手段,可以避免重复)可重用性好,面向对象的继承性提供了一种代码共享的手段,可以避免重复的代码设计。的代码设计。w(4)灵活性)灵活性,对象可以根据自身的特点进行功能实现,提高了系统的灵活性。,对象可以根据自身的特点进行功能实现,提高了系统的灵活性。w(5)系统易维护,面向对象的封装性决定了类和对象内聚性,从而将可能出)系统易维护,面向对象的封装性决定了类和对象内聚性,从而将可能出现的错误限制在对象内部,不会向外传播,易于检错和修改,对某个对象中错现的错误限制在对象内部,不会向外传播,易于检错和修改,对某个对象中错误的修改也不会导致其它对象代码失效。误的修改也不会导致其它对象代码失效。w(6)可扩充性好,面向对象系统可以通过继承机制不断扩充功能,这种增量式的)可扩充性好,面向对象系统可以通过继承机制不断扩充功能,这种增量式的功能扩充方式不会影响原有系统的运行。功能扩充方式不会影响原有系统的运行。2023/4/1114第14页,此课件共51页哦7.2.2面向对象模式面向对象模式w3、面向对象模式的不足、面向对象模式的不足w(1)为了使一个对象和另一个对象通过过程调用等)为了使一个对象和另一个对象通过过程调用等进行交互,必须知道被调用对象的标识(对象名或进行交互,必须知道被调用对象的标识(对象名或其他标识符)。这就增加了对象之间的依赖关系,其他标识符)。这就增加了对象之间的依赖关系,只要一个对象的标识改变了,就必须修改所有其他只要一个对象的标识改变了,就必须修改所有其他明确调用它的对象。明确调用它的对象。w(2)如果修改一个对象,也必须修改所有显式调用它的)如果修改一个对象,也必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。例如,如果其它对象,并消除由此带来的一些副作用。例如,如果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分层模式分层模式w2、分层模式的优点、分层模式的优点w(1)支持基于抽象程度递增的系统设计,使设计者可以)支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解。把一个复杂系统按递增的步骤进行分解。w(2)支持功能增强,有较好的扩展性。因为每一层)支持功能增强,有较好的扩展性。因为每一层至多和相邻的上下层交互,因此功能的改变最多影至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;如果该层次功能的变化仅仅局限响相邻的上下层;如果该层次功能的变化仅仅局限于某些功能函数的具体实现,而没有对接口进行修于某些功能函数的具体实现,而没有对接口进行修改,那么对其相邻层次几乎没有影响。改,那么对其相邻层次几乎没有影响。w(3)支持软件重用。只要提供的服务接口定义不变,)支持软件重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法。义一组标准的接口,而允许各种不同的实现方法。2023/4/1118第18页,此课件共51页哦7.2.3分层模式分层模式w3、分层模式的不足、分层模式的不足w(1)并不是每个系统都可以很容易地划分)并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综统设计师不得不把一些低级或高级的功能综合起来;合起来;w(2)很难找到一个合适的、正确的层次抽)很难找到一个合适的、正确的层次抽象方法。象方法。2023/4/1119第19页,此课件共51页哦7.2.3分层模式分层模式w4、模式实例、模式实例w层次系统最广泛的应用是分层通信协议。在这一应用领域中,每一层提供一个抽象的功能,作为层次系统最广泛的应用是分层通信协议。在这一应用领域中,每一层提供一个抽象的功能,作为上层通信的基础。较低的层次定义低层的交互,最低层通常只定义硬件物理连接。上层通信的基础。较低的层次定义低层的交互,最低层通常只定义硬件物理连接。w以以ISO/OSI参考模型为例。该模型采用了参考模型为例。该模型采用了7层体系结构,从高到低分别是:应用层、表层体系结构,从高到低分别是:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。示层、会话层、传输层、网络层、数据链路层和物理层。2023/4/1120第20页,此课件共51页哦7.2.4知识库模式知识库模式w1、知识库模式基本结构、知识库模式基本结构2023/4/1121第21页,此课件共51页哦7.2.4知识库模式知识库模式w2、知识库模式的优缺点、知识库模式的优缺点w知识库模式常应用于专家系统中,是专家系知识库模式常应用于专家系统中,是专家系统中不可替代的软件架构模式,但在其他领统中不可替代的软件架构模式,但在其他领域应用的案例较少见。域应用的案例较少见。2023/4/1122第22页,此课件共51页哦7.2.4知识库模式知识库模式w4、模式实例、模式实例w知识库模式的软件体系架构常见于专家系统中。知识库模式的软件体系架构常见于专家系统中。w专家系统是一类具有专门知识和经验的计算机智能程序系统,通过对人类专家的问题求解能专家系统是一类具有专门知识和经验的计算机智能程序系统,通过对人类专家的问题求解能力的建模,采用人工智能中的知识表示和知识推理技术来模拟通常由专家才能解决的复杂力的建模,采用人工智能中的知识表示和知识推理技术来模拟通常由专家才能解决的复杂问题,达到具有与专家同等解决问题能力的水平。问题,达到具有与专家同等解决问题能力的水平。2023/4/1123第23页,此课件共51页哦7.3客户客户/服务器模式服务器模式w当一台连入网络的计算机向其他计算机提供各种网络服务(如数据、文件的共享等)时,它就被叫做服务器。而那些用于访问服务器资料的计算机则被叫做客户机。客户机和服务器都是独立的计算机。采用客户/服务器(Client/Server,C/S)结构的系统,有一台或多台服务器以及大量的客户机。服务器配备大容量存储器并安装数据库系统,用于数据的存放和数据检索;客户端安装专用的软件,负责数据的输入、运算和输出。严格说来,客户机服务器模型并不是从物理分布的角度来定义,它所体现的是一种网络数据访问的实现方式。采用这种结构的系统目前应用非常广泛。2023/4/1124第24页,此课件共51页哦7.3.1协作计算模型的发展协作计算模型的发展w在集中式计算技术时代,广泛使用大型机/小型机计算模型。w70年代以后,随着微型计算机和计算机网络的出现,集中式结构逐渐被以PC为主的微机网络所取代。w网络/文件服务器计算模型的产生用以解决个人PC和工作站的数据和外部设备共享问题。w以PC机为主体的文件服务器并不能满足分布式计算的需求,因此客户机/服务器技术应运而生,它集中了大中型系统及文件服务器的优点,并有良好的系统开放性和可扩展性。w随着信息的全球化,区域的界限已经被打破,电子商务作为Internet的强大的驱动力,迫使客户机/服务器模式从局域网(LAN)向广域网(WAN)延伸。2023/4/1125第25页,此课件共51页哦7.3.2传统两层客户机传统两层客户机/服务器模式服务器模式w1、两层客户机、两层客户机/服务器模式的基本结构服务器模式的基本结构w客户机/服务器系统有三个主要部件:数据库服务器、客户应用程序和网络。w(1)服务器负责有效地管理系统的资源,其任务集中于:w数据库安全性的要求w数据库访问并发性的控制w数据库前端的客户应用程序的全局数据完整性规则w数据库的备份与恢复w(2)客户端应用程序的主要任务是: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)系统的客户端应用程序和服务器部件分别运行在不同的计算机上,系统中每台服务器都可以适合各部件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和维护。w(2)在客户机/服务器模型中,系统中的功能部件充分隔离,客户端程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用开发中都要对一个数据库进行编码。w(3)将大的应用处理任务分布到许多通过网络连接的低成本计算机上使系统部署费用极大降低。w(4)两层模式的客户机/服务器模式和多层模式相比,开发、部署和维护成本较低。2023/4/1128第28页,此课件共51页哦7.3.2传统两层客户机传统两层客户机/服务器模式服务器模式w2、两层客户机、两层客户机/服务器模式的优缺点服务器模式的优缺点w(1)系统的可靠性有所降低。一个客户机/服务器系统是由各自独立开发、制造和管理的各种硬件和软件的组成的混合体,其内在的可靠性不如单一的、中央管理的大型机或小型机,出现问题时,很难立即获得技术支持和帮助。w(2)维护费用较高。尽管这种应用模式在某种程度上提高了生产效率,由于客户端需要安装庞大而复杂的应用程序,当网络用户的规模达到一定的数量之后,系统的维护量急剧增加,因而维护应用系统变得十分困难。w(3)系统资源的浪费。随着客户端的规模越来越大,对客户机资源的要求也越来越高。客户机硬件要适应系统要求而不断更新,每个客户机都要重复购置、安装大量应用软件,这无疑是一种巨大的浪费。w(4)系统缺乏灵活性。客户机/服务器需要对每一应用独立地开发应用程序,消耗了大量的资源。w(5)二层C/S结构是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet;w(6)数据安全性不好。因为客户端程序可以直接访问数据库服务器,那么,安装在客户端计算机上的其他程序也可以访问数据库服务器,从而使数据库的安全性受到威胁。2023/4/1129第29页,此课件共51页哦7.3.2传统两层客户机传统两层客户机/服务器模式服务器模式w3、应用实例、应用实例w以一个早期构建的学生信息管理系统为例。系统硬件包括若干台客户机和一台服务器以及连接它们的网络环境,服务器上安装Unix操作系统,使用Oracle数据库管理系统管理和存储数据;客户机上安装Windows操作系统,使用Delphi语言开发客户端管理软件,再部署到每个管理人员使用的客户机上。服务器和客户机软件要采用一些安全控制策略和加密手段以保证数据的安全。2023/4/1130第30页,此课件共51页哦7.3.3经典三层客户机经典三层客户机/服务器模式服务器模式w1、三层客户机、三层客户机/服务器模式基本结构服务器模式基本结构w三层C/S结构是将应用功能分成表示层、功能层和数据层三部分。w表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行操作,一般要使用图形用户接口(GUI),操作简单、易学易用。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和值的范围,不包括有关业务本身的处理逻辑。w功能层相当于应用的本体,它是将具体的业务处理逻辑地编入程序中。表示层和功能层之间的数据交互要尽可能简洁。w数据层就是DBMS,负责管理对数据库数据的读写。DBMS必须能迅速执行大量数据的更新和检索。目前的主流是采用关系数据库管理系统(RDBMS)。因此一般从功能层传送到数据层的要求大都使用SQL语言。2023/4/1131第31页,此课件共51页哦7.3.3经典三层客户机经典三层客户机/服务器模式服务器模式w1、三层客户机三层客户机/服务器模式基本结构服务器模式基本结构2023/4/1132第32页,此课件共51页哦7.3.3经典三层客户机经典三层客户机/服务器模式服务器模式w2、三层、三层C/S模式的优缺点模式的优缺点w(1)三层C/S结构具有更灵活的硬件系统构成,对于各个层可以选择与其处理负荷和处理特性相适应的硬件。w(2)合理地分割三层结构并使其独立,可以使系统的结构变得简单清晰,这样就提高了程序的可维护性。w(3)三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最适合的开发语言,有利于变更和维护应用技术规范。按层分割功能使各个程序的处理逻辑变得十分简单。w(4)允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段非法地访问数据层,这就为严格的安全管理奠定了坚实的基础;整个系统的管理层次也更加合理和可控制。w(5)系统可用性高,具有良好的开放性,可跨平台操作,支持异构数据库。w三层C/S模式当然也存在一些不足,例如相比两层C/S模式来讲,开发的技术难度加大,对于小企业和小型应用项目来说,部署成本过高等。2023/4/1133第33页,此课件共51页哦7.3.3经典三层客户机经典三层客户机/服务器模式服务器模式w3、应用实例、应用实例w由于三层C/S模式应用较广泛,各行业的应用实例也不胜枚举,仍以学校学生信息管理系统为例。w出于性能和数据安全的考虑,上节实例中提到的学校对自己的学生信息管理系统进行了升级改造,增加了两台应用服务器,其中一台处理学生信息查询业务,另一台处理学生信息修改业务,这两台应用服务器软件使用微软COM+组件开发,对客户机软件也进行了修改。这样改造的结果是:业务处理逻辑分配到了两个服务器节点上,系统性能得到提升,支持的终端数可以成倍增加;查询和修改两个业务逻辑分离,更有利于系统安全控制;客户机软件只处理表示逻辑,系统开发工作量大大减少;客户机软件和应用服务器软件可由两个小组分别开发和维护,提高和效率。2023/4/1134第34页,此课件共51页哦7.3.3经典三层客户机经典三层客户机/服务器模式服务器模式w4、多层客户机/服务器模式w在大型系统中,为了进一步提高系统性能,增加系统灵活性,还可以对三层C/S结构中的功能层继续进行细分。例如将数据库存取的相关操作独立出来形成数据库访问层,该层专门负责和数据库交互,存取数据。这样就形成了四层乃至N层客户机/服务器模式。这样做的优点在于,对于大型系统来说,逻辑结构更加清晰,系统各层的开发和维护、部署更加灵活,但也带来了管理成本加大的问题。在实际应用中,系统架构师应根据项目的具体情况选择合适的架构模式。2023/4/1135第35页,此课件共51页哦7.4浏览器浏览器/服务器模式服务器模式w浏览器/服务器(Browser/Server,B/S)架构模式实际上是上述三层C/S架构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器,2023/4/1136第36页,此课件共51页哦7.4浏览器浏览器/服务器模式服务器模式w2、主要优缺点、主要优缺点wBS结构的主要优点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了零客户端的功能,很容易在运行时自动升级。w主要缺点在于:w一是存在数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低;w二是难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。w三是实现复杂的应用构造有较大的困难。虽然可以用ActiveX、Java等技术开发较为复杂的应用,但是相对于已经发展的非常成熟的CS一系列应用工具来说,这些技术还不够成熟。2023/4/1137第37页,此课件共51页哦7.4浏览器浏览器/服务器模式服务器模式w3、应用实例、应用实例w还以上文学校学生信息管理系统为实例说明这种架构模式。学校准备向全校学生开放部分信息,在校学生可以在校园网上用自己的计算机查询自己的诸如考试成绩、图书借阅记录等信息,学校难道要让每个学生都下载安装一个客户机信息软件吗。这种情况下,B/S模式就显示出它的巨大优势,改用这种模式就是一种必然的选择。w新系统采用BS架构,结合了ASP技术,并将组件技术COM+和ActiveX技术分别应用在服务器端和客户端。该系统的实现主要分为三个部分:ASP页面、COM+组件和数据库,是一个三层结构。表示层由ASP页面组成,用以实现WEB页面显示和调用COM+组件,业务逻辑和数据访问由一组用VC实现的COM+组件构成。为了便于维护、升级和实现分布式应用,在实现过程中,又将业务逻辑层和数据访问层分离开,ASP页面不直接调用数据访问层,而是通过业务逻辑层调用数据库。一些需要用WEB处理的、满足大多数访问者请求的功能界面采用BS结构,例如任课教师可以通过浏览器查询所教班级学生各种相关信息;学校管理人员通过浏览器对学校的学生、教师等信息进行管理与维护以及查询统计;领导层可通过浏览器进行数据的查询和决策。2023/4/1138第38页,此课件共51页哦7.5基于构件的模式基于构件的模式w1、基于构件模式的基本结构、基于构件模式的基本结构w一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辩识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。简单地说,构件是具有一定的功能,能够独立工作或能同其它构件装配起来协调工作的程序体,构件的使用同他的开发、生产无关。从抽象程度来看,面向对象技术已达到了类级重用(代码重用),它以类为封装的单位。这样的重用粒度还太小,不足以解决异构互操作和效率更高的重用。构件将抽象的程度提到一个更高的层次,它是对一组类的组合进行封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。整个构件隐藏了具体的实现,只用接口提供服务。2023/4/1139第39页,此课件共51页哦7.5基于构件的模式基于构件的模式w2、基于构件模式的优缺点、基于构件模式的优缺点w基于构件的软件架构模式是软件开发发展到一定阶段的产物,是目前主流的应用软件架构模式,其优点体现在以下几个方面:w(1)完全黑盒的软件复用,整个构件隐藏了具体的实现,只用接口提供服务。不仅能实现代码复用,还实现了核心功能复用。w(2)总体架构的松耦合,构件与构件之间都是松耦合的,相同接口而不同实现的构件完全可以互换。w(3)软件生产周期缩短,目前,人们更倾向于购买使用已开发好的构件来构建自己的系统,从而使开发时间大大缩短。w(4)能适应远程访问的分布式、多层次异构系统。w(5)具有灵活方便的升级能力和系统模块的更新维护能力。w存在的缺点主要有以下几点:一是大量使用第三方构件给软件的安全带来隐患;二是购买构件可能使软件成本增加;三是非定制的构件中存在的无用部分可能带来性能负担。2023/4/1140第40页,此课件共51页哦7.5基于构件的模式基于构件的模式w3、应用实例、应用实例w在此以企事业单位的档案管理系统为例,档案MIS系统基于C/S(Client/Server)与B/S(Browser/Server)混合结构对档案信息进行全面收集、加工、存储、传输和利用,并对管理活动进行控制。针对档案管理的业务流程,档案管理信息系统应具有库文件管理、著录标引、分类编目、排序、查询、借阅、打印、统计、报表等功能,形成若干子系统。根据对档案工作领域的分析结果,建立开发模型,明确划分三类构件,即:将系统中不变(或基本不变)部分作为通用类构件,如各类型的档案单位都要进行大量的查询、统计、报表等操作;可变部分,则归入专用类构件,如著录标引、分类编目、借阅等;而系统类构件,则是在整个MIS中都要用到的构件,如开发工具的菜单、窗口、网络安全模块等。2023/4/1141第41页,此课件共51页哦7.5基于构件的模式基于构件的模式w3、应用实例、应用实例2023/4/1142第42页,此课件共51页哦7.6软件架构建模技术软件架构建模技术w研究软件架构的首要问题是如何表示软件架构,即如何对软件架构建模。根据建模的侧重点的不同,可以将软件架构的模型分为5种:结构模型、框架模型、动态模型、过程模型和功能模型。在这5个模型中,最常用的是结构模型和动态模型。w(1)结构模型w这是一个最直观、最普遍的建模方法。这种方法以架构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是架构描述语言。w(2)框架模型w框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。2023/4/1143第43页,此课件共51页哦7.6软件架构建模技术软件架构建模技术w(3)动态模型w动态模型是对结构或框架模型的补充,研究系统的大颗粒的行为性质。例如,描述系统的重新配置或演化。动态可能指系统总体结构的配置、建立或拆除通信通道或计算的过程。这类系统常是激励型的。w(4)过程模型w过程模型研究构造系统的步骤和过程。因而结构是遵循某些过程脚本的结果。w(5)功能模型w该模型认为架构是由一组功能构件按层次组成,下层向上层提供服务。它可以看作是一种特殊的框架模型。w这5种模型各有所长,如果将5种模型有机地统一在一起,形成一个完整的模型来刻画软件架构,将能更加准确、全面地反映软件架构。2023/4/1144第44页,此课件共51页哦7.6.1软件架构软件架构“4+1”视图模型视图模型wPhilippeKruchten在1995年提出了一个4+1的视角模型。4+1模型从5个不同的视角包括逻辑视角、过程视角、物理视角、开发视角和场景视角来描述软件架构。每一个视角只关心系统的一个侧面,5个视角结合在一起才能够反映系统的软件架构的全部内容。4+1视图模型如图7.14所示。2023/4/1145第45页,此课件共51页哦7.6.2“4+1”视图模型建模方法视图模型建模方法w1、逻辑视角逻辑结构、逻辑视角逻辑结构w逻辑视角主要对系统的逻辑结构进行建模,采用的是面向对象的分解的方法。w逻辑架构主要支持功能性需求即在为用户提供服务方面系统所应该提供的功能。系统分解为一系列的关键抽象,(大多数)来自于问题域,表现为对象或对象类的形式。它们采用抽象、封装和继承的原理。分解并不仅仅是为了功能分析,而且用来识别遍布系统各个部分的通用机制和设计元素。一般使用Rational/Booch方法来表示逻辑架构,主要借助于类图和类模板的手段。类图用来显示一个类的集合和它们的逻辑关系:关联、使用、组合、继承等等。相似的类可以划分成类集合。类模板关注于单个类,它们强调主要的类操作,并且识别关键的对象特征。如果需要定义对象的内部行为,则使用状态转换图或状态图来完成。公共机制或服务可以在类功能(classutilities)中定义。对于数据驱动程度高的应用程序,可以使用其他形式的逻辑视图,例如E-R图,来代替面向对象的方法。2023/4/1146第46页,此课件共51页哦7.6.2“4+1”视图模型建模方法视图模型建模方法w2、进程视角进程架构、进程视角进程架构w进程视角主要对系统的进程架构进行建模,采用过程分解的方法。w进程架构考虑一些非功能性的需求,如性能和可用性。它解决并发性、分布性、系统完整性、容错性的问题,以及逻辑视图的主要抽象如何与进程结构相配合在一起即在哪个控制线程上,对象的操作被实际执行。w进程架构可以在几种层次的抽象上进行描述,每个层次针对不同的问题。在最高的层次上,进程架构可以视为一组独立执行的通信程序的逻辑网络,它们分布在整个一组硬件资源上,这些资源通过LAN或者WAN连接起来。多个逻辑网络可能同时并存,共享相同的物理资源。例如,独立的逻辑网络可能用于支持离线系统与在线系统的分离,或者支持软件的模拟版本和测试版本的共存。w进程是构成可执行单元任务的分组。进程代表了可以进行策略控制过程架构的层次(即:开始、恢复、重新配置及关闭)。另外,进程可以就处理负载的分布式增强或可用性的提高而不断地被重复。2023/4/1147第47页,此课件共51页哦7.6.2“4+1”视图模型建模方法视图模型建模方法w3、开发视角开发架构、开发视角开发架构w开发视角主要对系统的开发架构进行建模,采用子系统分解的方法。w开发架构关注软件开发环境下实际模块的组织。软件打包成小的程序块(程序库或子系统),它们可以由一位或几位开发人员来开发。子系统可以组织成分层结构,每个层为上一层提供良好定义的接口。w系统的开发架构用模块和子系统图来表达,显示了输出和输入关系。完整的开发架构只有当所有软件元素被识别后才能加以描述。但是,可以列出控制开发架构的规则:分块、分组和可见性。w大部分情况下,开发架构考虑的内部需求与以下几项因素有关:开发难度、软件管理、重用性和通用性及由工具集、编程语言所带来的限制。开发架构视图是各种活动的基础,如:需求分配、团队工作的分配(或团队机构)、成本评估和计划、项目进度的监控、软件重用性、移植性和安全性。它是建立产品线的基础。2023/4/1148第48页,此课件共51页哦7.6.2“4+1”视图模型建模方法视图模型建模方法w4、物理视图物理架构、物理视图物理架构w物理视角主要对系统的物理架构进行建模,是软件至硬件的映射。w物理架构主要关注系统非功能性的需求,如可用性、可靠性(容错性),性能(吞吐量)和可伸缩性。软件在计算机网络或处理节点上运行,被识别的各种元素(网络、过程、任务和对象),需要被映射至不同的节点;我们希望使用不同的物理配置:一些用于开发和测试,另外一些则用于不同地点和不同客户的部署。因此软件至节点的映射需要高度的灵活性及对源代码产生最小的影响。2023/4/1149第49页,此课件共51页哦7.6.2“4+1”视图模型建模方法视图模型建模方法w5、场景、场景w场景综合所有的视图,对系统总体架构进行建模。w四种视图的元素通过数量比较少的一组重要场景(更常见的是用例)进行无缝协同工作,我们为场景描述相应的脚本(对象之间和过程之间的交互序列)。在某种意义上场景是最重要的需求抽象。w场景是其他视图的冗余(因此才称作1),但它起到了两个作用:一是作为一项驱动因素来发现架构设计过程中的架构元素。二是作为架构设计结束后的一项验证和说明功能,既以视图的角度来说明又作为架构原型测试的出发点。2023/4/1150第50页,此课件共51页哦7.6.2“4+1”视图模型建模方法视图模型建模方法w6、模型的剪裁、模型的剪裁w并不是所有的软件架构都需要41视图。无用的视图可以从架构描述中省略,比如:只有一个处理器,则可以省略物理视图;而如果仅有一个进程或程序,则可以省略过程视图。对于非常小型的系统,甚至可能逻辑视图与开发视图非常相似,而不需要分开的描述。但场景对于所有的情况均适用,一般不能省略。2023/4/1151第51页,此课件共51页哦

    注意事项

    本文(软件架构与架构建模技术课件.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开