《软件体系结构》期末复习题(2)

时间:2021-08-31

篇二:软件体系结构期末范围综合

  1. 软件体系结构定义:

  软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。

  2. 核心研究内容:

  (1)体系结构风格:描述特定系统组织方式的惯用范例,强调组织模式和惯用范例。

  (2)设计模式:软件问题高效和成熟的设计模板,模板包含了固有问题的解决方案。

  (3)应用框架:整个或部分系统的可重用设计,表现为一组抽象构件的集合以及构件实 例间交互的方法。

  3.软件危机表现形式:软件成本日益增长、开发进度难以控制、软件质量差、软件维护困难

  4.·构件:具有一定功能,能独立工作或能同其他构件装配起来协调工作的程序体。

  ·软件重用:两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。·构件与软件重用的关联关系:语义完整,语法正确和有可重用价值的单位软 件,是软件重用过程中可以明辨识别的系统。

  5. 软件体系结构模型的分类(5种):

  (1)结构模型:这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统配置、约束、隐含的假设条件、风格、性质研究结构模型的核心是体系结构描述语言。

  (2)框架模型:框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。

  (3)动态模型:动态模型是对结构或框架模型的补充,研究系统的“大颗粒”的行为。例如,描述系统的重新配置或演化。动态可以指系统总体结构的配置、建立或拆除通信通道或计算的过程。

  (4)过程模型:过程模型研究构造系统的步骤和过程。结构是遵循某些过程脚本的结果。

  (5)功能模型:功能模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。功能模型可以看作是一种特殊的框架模型。

  6. “4+1视图模型”

  最终用户:功能需求编程人员:软奖管理

  系统集成人员:性能 系统工程人员:系统

  可扩充性、吞吐量等拓扑、安装、通信等

  ·逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。

  ·开发视图:也称模块视图,主要侧重于软件模块的组织和管理。开发视图要考虑软件内部的需求,如软件开发的容易性、软件的重用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。开发视图通过系统输入输出关系的模型图和子系统图来描述。 ·进程视图:侧重于系统的运行特性,主要关注一些非功能性的需求。进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构。它也定

  义逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。进程视图可以描述成多层抽象,每个级别分别关注不同的方面。在最高层抽象中,进程结构可以看作是构成一个执行单元的一组任务。它可看成一系列独立的,通过逻辑网络相互通信的程序。它们是分布的,通过总线或局域网、广域网等硬件资源连接起来。

  · 物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。解决系统拓扑结构、系统安装、通讯等问题。

  · 场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。在开发体系结构时,它可以帮助设计者找到体系结构的构件和它们之间的作用关系。同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。

  本地呼叫场景的一个原型:

  7.软件体系结构核心模型的组成元素(5种)的含义,彼此关系(构件、连接件、配置) (1)构件:计算或存储数据单元,包含多种属性,如接口、类型、

  语义、约束、演化和非功能属性等。

  (2)连接件:建立构件间的交互以及支配这些交互规则的体系结构

  构造模块。

  (3)体系结构配置:描述体系结构的构件和连接件的连接图。 用于确定构件是否正确连接、接口是否匹配、连接件构成的通信是 否正确,并说明实现要求行为的组合语义。 (4)端口(5)角色 8. 软件过程:需求分析→建立体系结构→设计→实现→测试

  10. 软件体系结构风格11. 体系结构风格的四要素:(1)提供一个词汇表;(2 语义解释原则;(412.通用体系结构的分类:

  经典的体系结构风格: (1)数据流风格:批处理序列;管道和过滤器。

  (2)调用/返回风格:主程序/子程序;面向对象风格;层次结构。

  (3)独立构件风格:进程通讯;事件系统

  (4)虚拟机风格:解释器;基于规则的系统。

  (5)仓库风格:数据库系统;超文本系统;黑板系统

  ·管道和过滤器模式:构件:过滤器,接收数据输入,进行转化后输出

  ·过滤器是独立的实体,相互之间没有状态的依赖

  ·对一个过滤器而言,它上游和下游的过滤器是透明的

  交互由管道提供,管道负责连接一个过滤器的输出和另一个过滤器的输入

  ·管道过滤器通用的结构有:

  (1)管线:也称为流水线,即限制系统的拓扑结构只能是过滤器的线性结构;

  如:批处理系统、Unix Shell、编译器

  (2)有界管道:限制了在管道中能容纳或传输的数据量;

  (3)类型定义管道:也称类型管道,即要求明确定义在两个过滤器间传输的数据类型。 优点:

  (1)系统的总体输入输出是每个过滤器的简单组合,易于理解;

  (2)支持重用;

  (3)易于维护和修改;

  (4)系统的一些特性容易分析,比如吞吐量、死锁;

  (5)支持并发。

  缺点:

  (1)经常退化为批处理系统;

  (2)交互能力差,管道之间同步困难。

  ·数据抽象和面向对象组织模式:

  构件:对象,或者说是抽象数据类型的实例。

  (1)对象是一种被称作管理者的构件,负责保持资源的完整性。

  (2)对象通过函数和过程的调用来交互的。

  面向对象模型(1)封装(2)继承(3)多态性

  这种模式的两个重要方面:

  (1)对象维护自身表示的完整性;(2)这种表示对其他对象是隐藏的。

  优点:(1)隐藏内部实现,容易修改;(2)问题分解;(3)重用;

  缺点:(1)对一个对象身份的依赖性(显示调用,即调用一个方法必须以:对象名. 方法名的方式进行调用)(2)继承往往使得设计变得复杂,引入的多层对象结构使得维护困难。 ·基于事件的隐式调用模式:

  构件:模块,模块既可以是过程,又可以是事件的集合。

  (1)过程可以用通用的方式调用,也可以在系统事件中注册一些过程,当发生这些事件时,过程被调用。

  特点:事件的触发者并不知道哪些构件会被这些事件影响。

  优点:(1)问题分解;将计算和交互相互分离,使得对象更加独立

  (2)系统演化和重用;通过事件注册,新的构件可以轻易的被引入系统

  缺点:(1)构件不能控制系统进行的计算;当一个组件发布事件的时候,它无法假设其他组件会对该事件作出响应(2)对事件触发的方法调用的次序无法控制(3)数据交换大数据量的数据交互往往没法由事件携带,从而带来性能问题(4)可能会对正确性的保证带来困难 ·分层模式

  优点:(1)支持逐层抽象的方式进行设计,从而可以将一个复杂系统的设计划分为多个相对简单的层次;(2)容易修改,每层的改变至多影响上下两层;(3)支持重用,只要保持接口不变,每层的具体实现的替换式透明的。(4)支持可移植性。

  缺点:(1)性能上的额外支出(2)并非每个系统都可以进行分层设计(3)跨层使用可能会损坏整个模型

  · 仓库系统及知识库模式

  构件:

  (1)中央数据结构构件:代表系统当前状态;(2)一些相对独立的构件的集合:这些构件对中央数据存储进行操作。当要交换或共享大量的数据时,仓库模式是最常用的解决方案。 数据交换方式:(1)共享的数据放在中心数据库中,所有构件可以通过访问数据库进行

  交互;(2)每个构件维护自己的数据库,通过显示的传递数据与其他构件进行交互。

  当要交换或共享大量的数据时,仓库模式是最常用的解决方案。

  若中央数据结构的当前状态触发系统相应的进程执行,则仓库是黑板系统。

  黑板系统由三部分组成:知识源、黑板数据结构、控制

  黑板模式特点:没有直接的算法可解、具有不确定性、黑板是一种特别的仓库,主要用于需要对凌乱的信息进行处理的领域,其控制策略必须是机会主义的。

  13. C2模式:通过连接件绑定在一起的按照一组规则运作的并行构件网络。

  C2模式中的系统组织规则如下:

  (1)系统中的构件和连接件都有一个顶部和一个底部;

  (2)构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;

  (3)一个连接件可以和任意数目的其它构件和连接件连接;

  (4)当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。

  C2模式的特点:

  (1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;

  (2)所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来实现的;

  (3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。

  14. C/S风格:

  基本概念:C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。

  主要组成部分:数据库服务器、客户应用程序和网络。

  C/S风格—优点: (1)具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。(2)系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。(3) 将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。

  C/S风格—缺点: 开发成本较高、客户端程序设计复杂、信息内容和形式单一、用户界面风格不一,使用繁杂,不利于推广使用、软件移植困难、软件维护和升级困难、新技术不能轻易应用

  三层C/S风格—优点:(1)提高系统和软件的可维护性和可扩展性(2)具有良好的可升级性和开放性(3)并行开发(4)有效地隔离开表示层与数据层(5)为严格的安全管理奠定了坚实的基础

  三层C/S风格—注意点:

  1.各层间的通信效率若不高,即使

  分配给各层的硬件能力很强,其作为

  整体来说也达不到所要求的性能。

  2. 各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。

  B/S风格—基本概念:浏览器/服务器(B/S)风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。

  B/S风格—优点:基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。B/S风格—缺点:1.缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。2. 系

  统扩展能力差,安全性难以控制。3. 在数据查询等响应速度上,要远远地低于C/S体系结构。4.不利于在线事务处理(OLTP)应用。

  15. DSSA的定义:DSSA就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合

  16. DSSA的基本活动:领域分析、领域设计、领域实现。

  17. DSSA与软件风格的比较:(1)DSSA以问题域为出发点,体系结构风格以解决域为出发点。(2)DSSA只对某一个领域进行设计专家知识的提取、存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个应用领域。

  18. 软件体系结构和软件体系结构描述的区别:软件体系结构是附属于系统之中。只要存在系统,体系结构就存在;软件体系结构描述是将体系结构可视化的手段和产物

  19. 体系结构描述方式:图形表达方式、UML、模块接口语言MIL、ADL

  ·图形表达工具 优点:直观形象、简单易用 缺点:由于其术语和表达语义上存在着一些不规范和不精确,从而使得以矩形为基础的传统图形表达方法在不同系统和不同文档之间存在着许多不一致甚至矛盾。

  ·模块接口语言MIL 缺点:这些语言处理和描述的软件设计开发层次过于依赖程序设计语言,限制了它们处理和描述比程序设计语言元素更为抽象的高层次软件构架元素的能力。

  20. 体系结构描述语言ADL定义:ADL是在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。

  21. 软件体系结构的分析评估:就是通过成本相对较低的活动来分析结构中可能存在的风险,发现软件体系结构中影响系统质量的关键因素,并提出相应的改进措施,在此基础上检验软件的性能需求是否得到满足。

  22. 系统的质量属性的分类:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、 集成性、互操作性

  23.基于场景的评估方式:ATAM、SAAM

  SAAM法是把一个物体最丰要的属性列举出来,再用检查表法把各个项目加以变化,并将其加以重新组合,然后再找出其中可以实行而且也有效果的项目。

  优点:SAAM方法在改良事物性质的方面具有极大的功效。SAAM方法是第1个被广泛接受的体系结构分析评价方法。它适用于可修改性、可拓展性以及功能覆盖等质量属性。

  缺陷:没有提供体系结构质量属性的清晰的度量。评估过程依赖专家经验等,只适合对体系结构的粗糙评价

  步骤:1.形成场景2.描述体系结构3.对场景进行分类和确定优先级4.对间接场景进行单个评估5.评估场景和相互作用6.形成总体评估7.SAAM评估日程安排

  ATAM 是评价软件构架的一种综合全面的方法,它考虑了可修改性、可靠性和安全性等多种质量属性。

  优点: 有助于质量目标的具体化和排序;ATAM方法是被验证有效和广泛使用的一种方法,可以针对实用性、可靠性和可修改性这些质量属性,在系统开发之前对其进行分析和评价。 缺点:它对质量属性并没有进行深入分析,缺少定量的数据来支持分析的结果。

  步骤:

  1. 描述ATAM方法2.描述商业动机3.描述体系结构4.确定体系结构的方法5.生成质量属性

  效用树6.分析体系结构方法7.讨论和分级场景8.分析体系结

  构方法9.描述评估结果

  2. 内外有别模型