软件体系结构复习(20211201194858)_第1页
软件体系结构复习(20211201194858)_第2页
软件体系结构复习(20211201194858)_第3页
软件体系结构复习(20211201194858)_第4页
软件体系结构复习(20211201194858)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、1 一、题型名词解释选择题( 25 个) ,问答题( 4 个) ,分析题二、架构的定义len bass,paul clements 等人对软件构架所做的定义: 某个软件或计算系统的软件构架是该系统的一个或多个结构,它由软件元素、这些元素的外部可见属性以及这些元素之间的关系组成。三、软件体系结构异构的三种方式,特点一种方式是使用层次结构第二种组合方式的风格是,允许单一构件使用复合的连接件第三种组合方法,用完全不同的软件体系结构风格对一个系统水平的软件体系结构进行描述四、构件、连接件构件是计算或数据储存的单元a)perry & wolf 定义中的处理元素和数据元素连接件是对以下内容进行建模

2、的体系结构元素b)构件之间的交互c)指导这些交互的规则五、软件体系结构(构架)研究的问题?结构性问题?系统的组织,由哪些组件构成?全局性的控制结构?通讯、同步或访问的协议?将功能分配到不同的系统组成部分?设计元素的组成?系统的物理分布?可扩展性、性能?(1)软件构架的主要内容包括?对系统组成元素的描述?这些元素相互之间的交互?系统组成的模式?模式的约束所以在软件构架中,系统以组件和组件之间的交互进行定义。当前的系统同时可以作为更高层设计的一个系统组件。(同时,要弄清哪些方面的问题是属于构架的,哪些方面的问题是不属于构架的)六、软件体系结构风格:描述某一特定应用领域中系统组织方式的惯用模式,以结

3、构组织模式定义了一个系统家族软件体系结构模式:描述了在特定设计语境中重复再现的设计问题,并为之提供一个经过充分验证了的通用解决方案。该方案提供了构件、构件的责任、构件之间的关系、以及它们之间的协作方式。模式比风格更加面向问题,模式通常有问题出现的语境、解决方案和适用的场景;风格更侧重于从应用系统中抽取它们的总体结构,较少从实际设计环境来考虑设计技术sa风格相对独立; sa模式依赖于它包含的较小的模式、与它相互作用的模式和包含它的较大的模式( 1)管道和过滤器: (构件:过滤器连接件:管道)含义:每个构件都有一组输入和输出, 构件读输入的数据流, 经过内部处理, 然后产生输出数据流。这个过程通常

4、通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前, 输出便产生了。2 例子: unix,dos 中的重定向:dir | sort(perl 脚本语言)编译器优点使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;支持软件复用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;系统维护和增强系统性能简单。 新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;允许对一些如吞吐量、死锁等属性的分析支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行?缺点通常导致进程成

5、为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的, 所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换;不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重;因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。( 2)数据抽象和面向对象组织(构件:对象,或者也可称为抽象类型的实例连接件:函数和过程调用)含义:这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的

6、构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。?优点因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象;设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。?缺点为了使一个对象和另一个对象通过过程调用等进行交互,必须知道对象的标识。只要一个对象的标识改变了,就必须修改所有其他明确调用它的对象;必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。例如, 如果 a 使用了对象b,c 也使用了对象b,那么, c 对 b 的使用所造成的对a 的影响可能是料想不到的。( 3)基于事件的隐式调用(基于事件的模式)(构件:模块连接件:

7、过程)?优点为软件复用提供了强大的支持。当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中。为改进系统带来了方便。当用一个构件代替另一个构件时,不会影响到其它构件的接口。?缺点构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其它构件是否会响应它。而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。数据交换的问题。有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。在这些情况下,全局性能和资源管理便成了问题。既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。( 4)分层系统(组成:构件,连接件

8、)?优点支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解;支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;支持复用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法。?缺点并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,3 出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来;很难找到一个合适的、正确的层次抽象方法。( 5)仓库( repository)模式(构件:中央数据结构构件、构件的集合连接件:)含义:在仓

9、库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存贮上执行,仓库与外构件间的相互作用在系统中会有大的变化。控制原则的选取产生两个主要的子类。若输入流中某类时间触发进程执行的选择,则仓库是一传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统。组成:构件(中央数据结构,独立构件)例子:黑板系统的传统应用是信号处理领域,如语音和模式识别。另一个应用是松耦合代理数据共享存取。( 6) 解释器模式( 7) 过程控制(8)客户 /服务器风格( c/s 体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。)含义:c/s 软件体系结构是基于

10、资源不对等,且为实现共享而提出来的,是20 世纪 90 年代成熟起来的技术,c/s 体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。?优点c/s 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求, 这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。在 c/s 体系结构中, 系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个db

11、ms进行编码。将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。?缺点开发成本较高客户端程序设计复杂信息内容和形式单一用户界面风格不一,使用繁杂,不利于推广使用软件移植困难软件维护和升级困难新技术不能轻易应用( 9)浏览器 /服务器风格含义:浏览器 /服务器( b/s)风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/web 服务器 /数据库服务器。b/s 体系结构主要是利用不断成熟的www 浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。从某种程度上来说,b/s 结构是一种全新的软件体系

12、结构。组成:浏览器 /web 服务器 /数据库服务器?优点基于 b/s 体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了 “ 零客户端 ” 的功能,很容易在运行时自动升级。b/s 体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。?缺点b/s 体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。4 b/s 体系结构的系统扩展能力差,安全性难以控制。采用 b/s 体系结构的应用系统,在数据查询等响应速度上,要远远地低于c/s 体系结构。b/s体系结构的数据提交一般以页面为单位

13、,数据的动态交互性不强,不利于在线事务处理(oltp) 应用。architectural style vs. design patterns (1/2)architectural style design patternsrelationship?architectural styles can be viewed as kinds of patterns (pattern language) ?for given style, there may exist a set of idiomatic usesdifference?to provide guidance and analysis

14、for building a broad class of architectures in a specific domain ?to focus on solving smaller, more specific problems within a given style difference ?to provide a language and framework for describing families of well -formed s/w architectures ?to be thought of as a language for building patterns(a

15、rchitectural style)七、架构由什么决定构架是否由系统需求决定? 将一份需求说明书给两个不同的构架师,他们是否能够设计出同样的架构?答案:一般情况下会给出两个不同的构架。系统需求决定构架的观点是错误的。软件构架是技术、商业和社会等诸多因素共同作用的结果。?影响构架的因素主要包括:系统涉众( stakeholder) 开发组织构架师的素质和经验技术环境八、什么样的构架才算好? 什么样的架构是一个好的架构?p13 ? 如何才能设计出一个好的软件构架?九、软件构架结构(视图 ) ppt4月 5日讲义三个主要的软件结构视图rup的4+1视图phillpe kruchten 的 4+1视

16、图逻辑视图设计的对象模型进程视图捕获系统中的并发与同步开发视图描述软件在开发阶段的静态组织物理视图描述软件与硬件间的映射 1视图(场景视图)将上述四个视图联系到一起的重要用例5 模块结构:? 系统如何被划分为一些更小的代码单元(模块)? 组件连接器结构? 系统如何被划分为一组有动态行为的元素(组件)和相互交互的元素(连接器)? 分配结构? 系统如何映射到非软件的环境?? 弄懂上课讨论过的全部11种结构(风格) ,重点掌握分层结构(风格)、共享数据、通信进程、部署等风格,要求能够从某个设计中识别这些风格的应用分层风格概述每一层都代表一个虚拟机在软件构架中,这是最常用的一种视图分层风格往往有较高的

17、可修改性不过也常常定义得很差也经常被误解共享数据风格概述共享数据风格中有着至少一个能够实现数据持续化的共享数据存储以及多个数据的访问者交互的模式主要是持续化数据的交换例如:数据库系统和基于知识的系统一般计算模型数据的访问者从数据存储中读取数据,执行计算,然后回写数据(纯共享数据模式)除了上述功能外,还非数据存储元素之间的相互交互通信进程风格概述该风格将系统表示为一系列的并发执行单元以及它们之间的交互可用的交互方法包括:同步,消息传递,数据交互,进程控制原语(stop, start)在大系统中,这种表示方式非常普遍;在分布式系统中,这种表示是必须的帮助理解和并发性相关的一些行为部署风格概述在部署

18、风格中,某种组件连接器风格(通常是通信进程风格)的元素被分配到执行平台分配上的一些限制包括软件元素所表达的需求这些需求如何被硬件元素的特性所满足十、质量属性场景是一种面向特定的质量属性的需求。它由以下6部分组成: ppt-4-1-sa_in_practice_ch4 ? 能够通过质量属性场景模型来界定实践中常用的六种质量属性6 系统的质量属性:可用性、可修改性、性能、安全性、可测试性和易用性等 质量属性场景模型:源 , 刺激 , 环境 , 制品 , 响应 , 响应度量 (表 , 图形表示 ) 刺激源这是某个生成该刺激的实体刺激当刺激到达该系统时需要考虑的条件例如:一个消息到达、用户希望修改某个

19、功能、一个系统错误产生、试图删除数据等环境刺激发生时,所处的一些条件比如:系统是否过载,这会影响到响应制品被刺激的某个系统元素比如:整个系统或者系统的部分响应刺激到达后所采取的行动响应度量当响应发生时,应能够以某种方式对其进行度量,以对需求进行测试理解功能性和质量属性之间的关系功能和质量属性是正交的功能的选择不会限定安全性、性能或易用性的级别这也不是说任何功能都可以实现质量属性的任何级别功能是指系统完成所期望的工作的能力某个功能的完成,需要多个元素的协作,但是在大量可能的结构中,却可以通过任意一个结构来实现功能如果功能属性是系统唯一的需求的话,整个系统可以是一个没有内部结构的单一模块理解构架和

20、质量属性的实现之间的关系构架是软件功能到软件结构的映射,正是这个映射(或分配)决定了构架对质量属性的支持质量属性的达成,必须在以下阶段都进行考虑设计实现部署满意的质量属性,来自于系统的总体蓝图(构架)和细节的正确处理十一、战术 -ppt-5-1-sa_in_practice_ch5 掌握达成六种常用的质量属性相关的战术每种质量属性分别有哪些战术? 要求能在具体的设计中选取相应的战术来达成某种质量属性1、可用性战术错误检测战术、错误恢复战术、错误预防战术2、可修改性战术局部化修改、防止连锁反应、延迟绑定时间、3、性能战术资源需求、资源管理战术、资源仲裁4、安全性战术抵抗攻击、检测攻击、从攻击中恢

21、复、5、可测试性战术输入/输出、内部监视、7 6、易用性战术运行时战术、设计时战术、十二、 adl adl :定义、作用、构成元素?软件体系结构视图,有哪些视图,各视图的作用?用uml 描述软件体系结构的优缺点,解决策略 , 如何描述一个组件的接口和组件-连接器视图中组件的接口等。adl 是形式化语言,有底层语义的支持,提供语法和概念框架;基于底层语义的工具,为sa的表示、分析、演化、细化、设计过程提供支持;有三个基本组成元素* 构件:计算或数据存储单元* 连接件:交互及其交互规则* sa配置:拓扑图哪些是典型的软件体系结构描述语言?unicon 、wright、c2、rapide 、sadl

22、 、aesop、acme uml建模优点主要优点可以归结为以下三点:统一标准uml不仅统一了booch, omt 和 oose 等方法中的基本概念,还吸取了面向对象技术领域中其它流派的长处,其中也包括非oo方法的影响。uml使用的符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的,多余的和极少使用的符号,也添加了一些新符号,提供了标准的面向对象的模型元素的定义和表示法。面向对象uml建模优点中第二个就是面向对象。uml支持面向对象技术的主要概念,它提供了一批基本的表示模型元素的图形和方法,能简洁明了地表达面向对象的各种概念和模型元素。表达能力强大,可视化uml是一种图形化语言,用uml的

23、模型图形能清晰地表示系统的逻辑模型或实现模型。它不只是一堆图形符号,在每一个图形表示符号后面,都有良好定义的语义;uml还提供了语言的扩展机制,用户可以根据需要增加定义自己的构造型,标记值和约束等,它的强大表达能力使它可以用于各种复杂类型的软件系统的建模。uml 缺点: uml 缺乏对体系结构下述的元素进和相应的描述与应用能力体系结构风格显式的体系结构连接器体系结构约束总体来讲: uml 是一种非形式化的描述语言,缺乏严格的语意描述,不能表达体系结构中的语义,不能描述体系结构的相关模型。uml2有所改进p189 8 十三、 add-ppt-7-1-sa_in_practice_ch7 生命周期

24、中的构架?add方法的思路、原理?add方法的具体步骤?量化设计空间 ,qfd质量功能部署 ,蜡烛?并行工程构架在软件生命周期中处于一个什么位置?add是一种设计软件构架的方法,该方法根据软件的质量属性需求对系统进行分解一个递归的分解过程系统分解基于系统必须满足的质量属性每个阶段都选择战术和构架模式来满足一组质量属性的场景,然后对功能进行分配, 以实例化由该模块所提供的模块类型add结果 :得到一种粗粒度的划分,即模块分解视图和其他视图的最初的几个层次系统被描述为功能和功能之间交互的一组容器add步骤1. 选择要分解的模块从整个系统开始进行分解时,要求所有输入都是可获得的限制条件、功能需求、质

25、量需求2. 根据这些步骤对模块进行求精从具体的质量场景和功能需求集合中选择构架驱动因素选择或创建满足构架驱动因素的构架模式,确定所用战术需要的子模块实例化模块并根据用例分配功能,使用多个视图进行表示定义子模块的接口验证用例和质量场景并对其进行求精,使它们成为子模块的限制3. 对需要进一步分解的每个模块重复上述步骤十四、构架编档 -ppt 9-3-sa_in_practice_ch9 ?视图的读者?“ 视图和超越视图 ” 编档方法包含哪些相关信息??对一个视图的编档应包括哪些信息?对接口的编档应该包括哪些部分?优秀编档的七个原则下面这些编档的原则可以用于所有的编档工作,而非仅仅是软件构架的编档从

26、读者的角度出发撰写你的文档避免不必要的重复避免歧义使用一种标准的组织格式不仅记载怎么做,也记载为什么这么做9 保持文档更新,但不必太新根据文档的使用目的来进行编档对一个视图的编档应包括哪些信息一般实践中可以采取包括以下7部分的标准组织1.展示视图中的元素和元素间关系的主要表示2.元素目录3、上下文图4.可变性指南5.构架背景6.视图中所使用的术语表,对每个术语进行简要说明7.其他信息“ 视图和超越视图 ” 编档方法选择相关视图对视图编档将适合多个视图的信息放到文档中?对接口的编档应该包括哪些部分1.接口身份2.所提供的资源3.数据类型定义对接口中使用的结构、复杂数据类型进行定义4.异常定义描述

27、可以由接口上的资源引发的异常5.该接口提供的可变性表明该接口是否允许用某种方式配置该元素6.接口的质量属性特征将接口使用者需知道的质量特征(性能、可靠性等)编入文档7.元素需求该元素所需要的资源8.基本原理和设计问题9.使用指南十五、 atam 主要部分包括 4组,共 9个步骤:评估的方法 ,atam, cbam ?atam的评估结果?阶段, 具体步骤?风险点、非风险点、敏感点和权衡点?评估团队?评估结果10 ?构架复审的目的atam 主要部分包括 4组,共 9个步骤:1. 陈述,包括通过它进行的信息交流 atam 方法的陈述:评估负责人 商业动机的陈述:项目经理或系统客户 sa的陈述:系统设计人员2. 调查与分析,包括对照体系结构方法评估关键质量属性需求 确定体系结构方法:系统设计人员 生成质量属性效用树(utility tree):说明构成系统 “ 效用 ”的质量属性(性能、有效性、安全性、可修改性、可用性),具体到场景层次,标注刺激/反应,并区分不同的优先级 分析体系结构方法:基于步骤5识别出的高优先级的场景,说明和分析针对这些场景的体系结构方

温馨提示

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

评论

0/150

提交评论