《软件体系结构》知识点整理

软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识
软件工程包括3要素:方法、工具、过程
软件重用过程中需要重用的开发组织结构予以支持,它包括构件开发组、构件应用组、协调组三组成员组成
采用层次式软件体系结构,将产品的系统构件模型定义为4个层次,分别为:系统构件层、通用类构件层、业务构件层、表现层
软件体系结构的模型分为5种:结构模型、框架模型、动态模型、过程模型、功能模型
软件体系结构的生命周期模型主要分为需求分析阶段、建立软件体系结构阶段、设计阶段和实现阶段
软件体系结构应建立于传统的软件开发过程的需求分析和软件设计阶段之间
黑板系统主要由知识源、黑板数据结构和控制组成
三层C/S结构风格是由表示层、功能层和数据层构成
消息总线对消息过滤提供了转换和阻塞两种方式
正交软件体系结构由组织层、线索的构件构成
C/S体系结构服务器主要负责有效的管理系统的资源,主要负责数据库安全性的要求、数据库访问并发性的控制、数据库前端的客户应用程序的全局数据完整性规则、数据库的备份和恢复
层次系统最广泛的应用是分层通信协议
软件体系结构的描述方法主要有图形表达工具、模块内连接语言、基于软构件的系统描述语言和软件体系结构描述语言
ADL是一种在底层语义模拟支持下的形式化语言。基于底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持
可重用的体系结构描述框架可以从需求视点、设计视点、实现视点、测试视点四个视点出发描述体系结构
典型的ADL在充分集成和吸收传统程序设计语言的精确性和严格性特点的同时,还应该具有构造、抽象、重用、组合、异构和分析推理等多种能力和特性。组合能力指的是ADL使得其描述的每一个系统元素都具有其自己的局部结构
一个完整的Web服务包括3种逻辑构件:服务提供、服务代理、服务请求
Web服务栈的五层标准为:发现服务层、描述层、消息格式层、编码格式层、传输协议层
Web服务开发生命周期分为:构建、部署、运行、管理四个阶段
实现完整测试的典型方法是利用测试准则定义测试需求,进而生成测试用例。参照相关研究工作,可定义构件或连接件内部消息的传递路径、构件或连接件内部端口的执行顺序路径等测试路径
构件依赖图是用于在体系结构级进行可靠分析的概率模型
一个复杂的系统通常包括顺序、并行计算、容错和客户/服务器常用的结构风格模型
体系结构评估中,一般采用刺激、环境和响应三个方面来对场景进行描述
可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。包括可维护性、可扩展性、结构重组、可移植性4各方面
软件体系结构的开发是大型软件系统开发的关键环节
领域工程阶段的主要任务有:领域分析、领域设计和领域实现三个阶段
软件体系结构设计的主要目的是满足对软件的质量需求
软件危机的原因:1 用户需求不明确 2 缺乏正确的理论指导 3 软件规模越来越大 4 软件复杂度越来越高
重用组织框构中的主要组成成员:构件开发组、构件应用组、协调组不包括:构件需求组
常用的软件体系结构评估的方法包括:体系结构权衡分析法、软件体系结构分析法、中间设计的积极评审,不包括:系统体系结构分析法
软件体系结构的核心模型的5种元素是:构件、连接件、配置、端口、角色,其中构件、连接件和配置是最基本的元素
“4+1”视图模型:逻辑是图、开发视图、进程视图、物理视图、场景。不包括:连接视图
逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务
开发视图也称模块视图,主要侧重于软件模块的组织和管理
进程视图侧重于系统的运行特性,主要关注一些工作能性需求,例如系统的性能和可用性
物理视图主要考虑如何把软件映射到硬件上,它通常要考虑系统性能、规模、可靠性等
场景
逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构
在三层C/S体系结构中,中间件是最重要的构件
正交软件体系结构具有以下优点:1.结构清晰,易于理解 2.易修改,可维护性强 3.可移植性强,重用粒度大
C/S系统中,服务器的任务包括:1 数据库安全性要求 2数据库访问并发性的控制 3 数据库前端的客户应用程序的全局数据完整性规则 4 数据库的备份与恢复;不包括:数据库一致性要求
客户应用程序的主要任务包括:1 提供用户与数据库交互的界面 2 向数据库服务器提交用户请求并接收来自数据库服务器的信息 3 利用客户应用程序对存在于客户端的数据执行应用逻辑要求
黑板系统的3个组成部分:知识源、黑板数据结构、控制,不包括内存
与C/S相比,B/S体系结构也有很多不足之处,例如:1. B/S体系结构缺乏动态页面的支持能力,没有集成有效的数据库处理功能 2. B/S体系结构的系统扩展能力差,安全性难以控制 3. 采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远低于C/S体系结构 4. B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于事务处理应用
关于软件体系结构描述方法的说法:1. 图形表达工具在软件中占据主导地位 2. 由于程序设计语言和模块内连接语言具有严格的语义基础,因此它们能支持对较大的软件单元进行描述 3.基于软构件的系统描述语言将软件体系结构描述成一种是由许多以特定形式相互作用的特殊软件实体构造组成的组织或系统 4.软件体系结构描述语言是参照传统程序设计语言的设计和开发经验,重新设计、开发和使用针对软件体系结构特点的专门的软件体系结构描述语言ADL
ADL与其他语言的比较:1.ADL与需求语言的区别在于后者描述的是问题空间,而前者则扎根于解空间中 2.ADL与建模语言区别在于后者对整体行为的关注要大于对部分的关注,而ADL集中在构件的表示上 3.ADL与传统的程序设计语言的构成元素有许多相同和相似之处,又各自有着很大的不同
动态体系结构的特征:1. 可构造性动态特征 2.适应性动态特征 3.智能性动态特征,不包括安全性
通常,一个Web服务可以分为4个逻辑层,分别为数据层、数据访问层、业务层和监听者。离客户端最近的是监听者,离客户最远的是数据层。
同传统分布式体系结构相比,Web服务体系结构的主要优势体现为:1. 高度的通用性和易用性 2.完全的平台、语言独立性 3.高度的集成性 4.容易部署和发布
Web服务是采用XML格式的信息来定义和描述对外的公共接口和绑定
尽管对Web服务进行的描述和出发点或应用类型不同,但他们均具有如下共同特征:1. 应用的分布式 2.应用到应用的交互 3.平台无关性
设计模式方法的分类:1. Coad的面向对象模式 2.代码模式 3. 框架应用模式 4.形式合约 5.设计模式目录的内容 不属于其分类方法的是:遗传算法
一般来说,模式有一下四个基本成分:模式名称、问题、解决方案、效果
软件体系结构文档化过程的主要输出结果是:体系结构需求规格说明
软件体系结构设计的过程: 1.提出软件体系结构模型 2.把已标识的构件映射到软件体系结构中 3.分析构件之间的相互作用 4.产生软件体系结构 5.设计评审
软件体系结构的严重性分级:灾难性的、危急的、边际性的、较小的,不属于的是:较大的
传统的软件测试和基于体系结构的软件测试都需要研究的对象是:测试内容、测试准则、测试需求和测试用例的生成;不都需要的是:测试语言
在体系结构中,应用于当前环境中有多个构建同时运行的情况,主要用来提高系统性能的结构风格是并行/管道-过滤器结构风格
集成测试是测试构件之间的接口以保证构件能够交互,它将构件本身抽象为单元,并关注与构件间的消息传递,构件的交互行为可以通过形式化规约得到,可以提前进行
评估方法质量属性中可修改性不包括完整性,包括可维护性、可扩展性、结构重组、可移植性
刺激是场景中解释或描述风险承担者怎样引发与系统的交互部分
产品线就是由在系统的组成元素和功能方面具有共性和个性相似的多个系统组成的系统族
领域工程阶段的主要任务:领域分析、领域设计、领域实现。不包括:需求分析

 

软件危机
答案:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题
依据页码:P1
软件重用
答案:是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
依据页码:P4
构件组装答案:构件组装是指将库中的构件经过适当修改后相互连接,或者将它们与当前开发项目中的软件元素相互连接,最终构成新的目标软件。
依据页码:P12
构件
答案:是指语义完整、语法正确和具有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通信接口和实现代码的复合体。
依据页码:P4
7、场景(scenarios):
答:场景是那些重要系统活动的抽象,它使4个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。 依据页码:P36
9、软件体系结构
答案:软件体系结构是一个设计,它包括所建立系统中的各元素(构件和连接件)的描述、元素之间的交互、指导装配的范例和对范例的约束。
根据页码:P44
10、软件体系结构风格
答案:软件体系结构风格是描述某一特定领域中系统组织方式的惯用模式。 依据页码:P49
11、“服务模型”
答案:“服务模型”是对所创建的构件进行分组的一种逻辑方式,这种模型与语言无关。服务模型基于这样一个概念:每个构件都是一系列服务的集合,这些服务由构件提供给其他对象。 依据页码:P62
12、消息转换
答案:消息转换是针对构件实例而言的,即所有构件实例发出和接收的消息类型都经过消息总线的过滤。
依据页码:P77
13、C2体系结构风格
答案:C2体系结构风格是通过连接件绑定在一起的、按照一组规则运作的并行构件网络。 依据页码:P54
16、ADL中的构件:
答案:构件是一个计算单元或数据存储。也就是说,构件是计算与状态存在的场所。
依据页码:P104
17、ADL中的连接件:
答案:连接件是用来建立构件间的交互以及支配这些交互规则的体系结构构造模块。
依据页码:P104
18、ADL中的体系结构配置:
答案:体系结构配置或拓扑是描述体系结构的构件与连接件的连接图。体系结构配置提供信息来确定构件是否正确连接、接口是否分配、连接件构成的通信是否正确,并说明实现要求行为的组合含义。
依据页码:P105
19、构造能力:
答案:构造能力指的是ADL能够使用较小的独立的体系结构元素来建造大型软件系统。
依据页码:P102
20、UML:
答案:UML是指统一建模语言Unified Modeling Language,是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立文档。
依据页码:P123
25、Web服务栈
答案:Web服务栈是一种全新的体系结构,是整个Web服务的技术系列。
依据页码:P174
29、需求
答案:用户对目标软件系统在功能、行为、性能、设计约束等方面的期望
依据页码:P215
30、设计模式中,什么是元素的一个空间配置?
答案:每个模式规定了的一个特定的结构。
31、模式
答案:模式是指从某个具体的形式中得到的一种抽象,在特殊的非任意性的环境中,该形式不断地重复出现。
依据页码:P196
35、单元测试
答案:是最底层的测试活动,指构件开发者对构件本身的测试,涉及的消息流是构件内部的消息,一般由构件开发者完成。
依据页码:253
36、软件体系结构的可靠性
答案:在基于构件的可靠性模型中,通过状态图来描述系统的行为,软件系统的可靠性依赖于状态的执行顺序和每一个状态的可靠性。
依据页码:P244
37、风险评估
答案:风险评估是基于能够通过定量的方法对软件产品属性进行的度量。
依据页码:P248
38、可修改性
答案:可修改性是指能够快速地以较高的性价比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。可修改性包括:
1可维护性 2可扩展性 3结构重组 4可移植性
见书P257
39、评估方法中质量属性中性能的含义。
答:性能指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某个时间内系统所能处理的事件的个数。经常用单位时间内处理事务的数量或系统完成某个事物处理所需的时间来对性能进行定量的表示。
依据页码:P256
40、基于场景的评估方法。
答:场景是一系列有序地使用或修改系统的步骤。这种评估方式分析软件体系结构对场景也就是对系统的使用或修改活动的支持程度,从而判断该体系结构对这一场景所代表的质量需求的满足程度。
依据页码:P260
41、什么是软件安全性?
答:安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性是根据系统可能受到的安全威胁的类型来分类的。安全性又可分为机密性,完整性,不可否认性以及可控性等特性。其中,机密性保证信息不泄漏给非授权的用户,实体或过程;完整性保证信息的完整和准确,防止信息被非法修改;可控性保证对信息对传播以及内容具有控制的能力,防止为非法者所使用。
依据页码: P257
42、核心资源
答案:是领域工程所有结果的集合,是产品线中产品构造的基础。
依据页码: P285
软件产品线
答案:软件产品线就是在一个公共的软件资源集合基础上建立起来的共享同一个特性集合的系统集合。
依据页码:P282
产品线体系结构
答案:产品线体系结构是一个软件体系结构和一组产品中可重用的构件,为增加软件重用、为企业降低软件开发和维护的成本提供了一个重要的途径。
1、纵观软件体系结构技术的发展过程,从最初的“无结构”设计到现行的基于体系结构的软件开发,可以认为经历了哪四个阶段?P23
答案:(1)“无体系结构”设计阶段。以汇编语言进行小规模应用程序开发为特征
(2)萌芽阶段。出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征
(3)初期阶段。出现了从不同侧面描述系统的结构模型,以UML为典型代表
(4)高级阶段。以描述系统的高层抽象结构为中心,不关心集体的建模细节,划分了体系结构模型与软件结构的界限,该阶段以Kruchten,提出了“4+1”模型为标志。
依据页码:P23
2、试述下可重用技术对构件库组织方法的几点要求:
答案:(1)支持构件库的各种维护动作,如增加、删除以及修改构件,尽量不要影响构件库的结构。
(2)不仅要支持精确匹配,还要支持相似构件的查找。
(3)不仅能进行简单的语法匹配,而且还能够查找在功能或行为方面等价或相似的构件。
(4)对应用领域具有较强的描述能力和较好的描述精度。
(5)库管理员和用户容易使用
依据页码:P7
简要概产生软件危机的原因答案:1.用户需求不明确 2.缺乏正确的理论指导 3.软件规模越来越大 4.软件复杂度越来越高。
依据页码:P3
软件体系结构的定义众多,你是如何理解软件体系结构的?软件体系结构在软件系统中有何作用?
答案:(1)软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素继承的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,还显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
(2)体系结构是风险承担者进行交流的手段。它明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性,可以预测软件的质量,是推理和控制更改更简单,有助于循序渐进的原型设计。同时,软件体系结构是可传递和可重用的模型。
依据页码:p19

6、体系结构的生命周期模型分为哪几个阶段?
答案:1、需求分析阶段 2、建立软件体系结构阶段 3、设计阶段 4、实现阶段
依据页码:P38

11、试阐述与C/S体系结构相比,B/S体系结构的不足之处。
答案:
1、B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能;
2、B/S体系结构的系统扩展能力差,安全性难以控制;
3、采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远的低于C/S体系结构;
4、B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用。
依据页码:P66
14、请简述三层C/S结构的优点
答案:1、允许合理的划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为合理清晰,能提高系统和软件的可维护性和可扩展性。
2、允许更灵活的选用相应的平台和硬件系统使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层,并且具有可升级性和开放性
3、可并行开发,各层可选择各自最适合语言使之高效开发,从而达到较高的性价比
4、允许利用功能层有效的隔离开表示层 和数据层,未授权的用户难以通过如黑客手段访问数据层,具有可控性
参考页码:P64
18、在C2中,连接件和构件是如何工作的?
答案:连接件负责构件之间消息的传递,而构件维持状态,执行操作并通过top和bottom端口和其他的构件交换信息。每个接口包含一种可发送的消息和一组可接受的消息,构件之间的消息要么是请求其他构件执行某个操作的请求消息,要么是通知其他构件自身执行某个操作或状态发生改变的通知消息。构件之间的消息交换不能直接进行,而只能通过连接件来完成。
依据页码:P109
41、软件体系结构评估对主要方式有哪些?
1.基于调查问卷或检查表的评估方式
2.基于场景的评估方式
3.基于度量的评估方式
依据页码:P260-P261
42、简述双生命周期中的领域工程阶段的主要任务及内容。
(1)领域分析。利用现有的系统设计、体系结构和需求建立领域模型。
(2)领域设计。用领域模型确定领域/产品线的共性和可变性,为产品线设计体系结构。
(3)领域实现。基于领域体系结构开发领域可重用资源(构件、文档、代码生成器)。
依据页码:P283
软件产品线的划分依据有?
答案:1、该组织是用演化方式还是革命方式引入产品线开发过程的。
2、是基于现有产品还是开发全新的产品线。
依据页码:P287

❤ 点击这里 -> 订阅《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验》by 柳婼

❤ 点击这里 -> 订阅《从放弃C语言到使用C++刷算法的简明教程》by 柳婼

❤ 点击这里 -> 订阅PAT甲级乙级、蓝桥杯、GPLT天梯赛、LeetCode题解离线版