软件体系结构实用教程重点

第1章 软件重用与构件技术

1.构件的三种描述模型分别是什么?

3C模型、REBOOT模型、青鸟构件模型。

2.掌握三种构件分类方法的组织方式和检索方式,尤其是刻面分类法。

三种构件分类方法:关键字分类法、刻面分类法、超文本组织方法。

关键字分类法

组织方式:根据领域分析的结果将应用领域的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构。

检索方式:系统在图形用户界面上将构件库的关键字树形结构直观地展示给用户,用户通过对树形结构的逐级浏览寻找需要的关键字并提取相应的构件。

刻面分类法

组织方式:定义若干用于刻画构件特征的"面",每个面包含若干概念,这些概念表述构件在面上的特征。

刻面可以描述构件执行的功能,被操作的数据,构件应用的语境或任意其他特征。

检索方式:构造查询、检索构件、对构件进行排序。

超文本组织方法

组织方式:所有构件必须辅以详尽的功能或行为说明文档。说明中出现的重要概念或构件以网状链接方式相互连接。

检索方式:将用户给出的关键字与说明文档中的文字进行匹配,实现构件的浏览式检索。可以按照人类的联想思维方式任意跳转到包含相关概念或构件的文档。

第2章 软件体系结构概论

1.根据国内普遍认可的看法,可以将体系结构定义为构件、连接件和约束

2.构件、连接件和约束的定义

构件是指具有一定功能、可明确辨识的软件单位。

连接件是用来建立构件间的交互以及支配这些交互规则的体系结构构造模块。

约束描述了体系结构配置和拓扑的要求,确定了体系结构的构件与连接件的连接关系。

3.软件体系结构的四个发展阶段是什么?

"无体系结构"设计阶段、萌芽阶段、初级阶段、高级阶段

第3章 软件体系结构的风格

1.B/S、C/S、MVC风格

(1)B/S风格

浏览器/服务器风格

B/S的优点:

系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了"零客户端"的功能,很容易在运行时自动升级。

B/S的缺点:

①缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。

②数据查询等响应速度远远低于C/S体系结构。

③数据的动态交互性不强。

(2)C/S风格

客户/服务器风格

C/S的优点:

①具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解接受。

②系统的客户应用程序和服务器构件分别运行在不同的计算机上,显示出极大的适应性和灵活性,易于对系统进行扩充和缩小。

③系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器集中于数据的管理。将大的应用处理任务分布到许多低成本计算机上,节约大量费用。

C/S的缺点:

①开发成本较高。

②客户端程序设计复杂。

③信息内容和形式单一。

④用户界面风格不一,使用繁杂,不利于推广使用。

⑤软件移植困难。

⑥软件维护和升级困难。

⑦新技术不能轻易应用

基于事件的隐式调用风格:构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。

这种风格在图形用户界面编程中被广泛使用。这种风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用。

(3)MVC风格

模型视图控制器风格将交互式应用划分为3种构件,模型、视图、控制器,为一个模型建立多个视图。

MVC的优点:

①将各方面问题分解开来考虑,简化了系统设计,保证了系统的可扩展性。

②改变界面不影响应用程序的功能内核,使得系统易于演化开发,可维护性好。

③易于改变,甚至可以在运行时改变,提供了良好的动态机制。

MVC的缺点:

①主要是仅局限在应用软件的用户界面开发领域中。

2.层次系统风格,基于层次消息总线的风格(HMB)

层次系统风格:组织成一个层次结构,每一层为他的上层服务,并作为下层的客户。

属性:(1)支持基于抽象程度递增的系统设计;(2)支持功能增强;(3)支持重用。

不足:(1)并不是每个系统都可以容易地划分为分层的模式;(2)很难找到一个合适的、正确的层次抽象方法。

基于层次消息总线的风格(HMB)

接口,静态结构,动态行为。

特点:

①从接口、结构、行为方面对构件进行刻画;

②基于层次消息总线,更好地支持系统构造性和演化性;

③统一描述系统和组成系统的构件;

④支持运行时刻的系统演化。

第4章 软件体系结构描述

1.软件体系结构描述方法有哪几种?

图形表达工具、模块内连接语言、基于软构件的系统描述语言、软件体系结构描述语言(ADL)、软件体系结构描述框架标准(IEEE)

2.ACME的七种体系结构实体

构件、连接件、系统、端口、角色、表述、表述映射

3.XML的三个主要方面的应用是什么?

设计置标语言。数据交换。Web服务。

4.Kruchten的"4+1"视图模型

4:逻辑视图 :面向对象的分解,采用面向对象的方法,按照抽象,封装,继承的原则进行分解,得到代表着系统的关键抽象表示集合。主要支持功能需求---系统应当向用户提供什么样的服务。过程视图 :描述系统的并发和同步方面的设计。物理视图 :描述软件到硬件之间的映射关系,反映系统在分布方面的设计。开发视图:描述软件在开发环境下的静态组织结构。

1:场景:通过选择一些用例对体系结构加以说明,这些用例被称为场景。

第5章 软件体系结构设计

1.软件体系结构设计的一般原理有哪些?

抽象原理、封装原理、信息隐藏原理、模块化原理、注意点分离原理、耦合和内聚原理、接口和实现分离原理、分而治之原理、层次化原理。

2.设计模式的基本成分

模式名称、问题、解决方案、后果。

3.体系结构设计的四种方法分别是什么?

制品 驱动的方法、用例 驱动的方法、领域 驱动的方法、模式驱动的方法。

4.常见的质量属性需求有哪些?

(1)可用性(2)可修改性(可维护性,可扩展性,结构重组,可移植性)(3)性能(4)安全性(5)可靠性(6)可测试性(7)易用性(8)可重用性(9)可集成性。

5.如何对质量属性需求的场景进行描述

"场景"就是对某个实体与系统的一次交互的简要描述,质量属性场景是一个有关质量属性的特定需求。

质量属性场景由以下6个要素组成:

(1)刺激源。这是某个生成该刺激的实体,可能是用户、计算机系统或任何其它可以起到刺激作用的实体。

(2)刺激。刺激源对系统的影响,可以看作是一个导致刺激的事件。

(3)环境。与刺激相关的上下文条件,相当于系统当前运行的状态。当刺激发生时,系统可能处于过载,或者正在正常运行,也可能是其它情况。

(4)制品。接收刺激的实体,是系统中对事件做出反应的部分。可能是整个系统,也可能是系统的一部分。

(5)响应。响应是在刺激到达后所采取的行动。

(6)响应度量。对反应结果提供某种形式的衡量,例如系统如果有自动纠错和恢复机制,提供的类似故障恢复效果和时间等衡量指标。

如何生成质量属性场景:

(1)先使用与质量属性有关的表格创建一般场景。

(2)根据一般场景,有选择地创建与特定系统有关的场景。

6. ADD(关键质量属性驱动的设计)方法的步骤

(1)作为体系结构设计师,首先需要在需求分析阶段,关注关键质量属性需求。

(2)开始考虑并建立软件系统的概念性体系结构,包括搞清楚影响系统关键质量属性的那些关键机制(模块划分、连接、连接关系)是什么。

(3)软件体系结构的细化设计,包括:

①从具体的质量属性需求和功能需求集合中选择体系结构驱动因素,如灵活性,可扩展性

等。

②选择满足体系结构驱动因素的体系结构模式,根据可以用来实现驱动因素的战术创建或选择模式,确定实现这些战术所需要的子模块。

③实例化模块并根据用例分配功能,使用多个视图进行表示。

④定义子模块的接口。该分解提供了模块和对模块交互类型的限制。对于每个模块,将该信息编写在接口文档中。

⑤验证用例和质量场景并对其进行求精,使它们成为子模块的限制。这一步验证重要内容没有被遗忘,并使子模块为进一步分解或实现做好准备。

⑥对需要进一步分解的每个模块重复上述步骤。

第7章 软件体系结构评估

1.软件体系结构评估的三种主要方式是什么?

基于调查问卷或检查表的评估方式、基于场景的评估方式、基于度量的评估方式。

2、SAAM方法和ATAM方法的具体步骤,如何通过投票的方式确定场景优先级

(1)SAAM方法的场景优先级投票的投票策略:

每个人都拿到固定数量的选票,大概是场景总数的30%,投票策略是只要每个人投票总数不超过手中的选票总数,它可以为任何场景投任何数目的票。然后按照得到选票数目的顺序对所有场景进行排序,并根据具体情况,选择一定数目的排序靠前的场景。有时候,排序后的列表可能会有一个泾渭分明的分界,一边是得到很多票的场景,另一边得票数很少(如图所示),那么直接选择得票多的场景即可。

(2)ATAM方法的质量属性效用树(QAUT):

以树的形式表现质量属性的细化。QAUT的根是效用,接下来是质量属性层,典型的有可用性、可修改性和安全性等。再接着下一层是质量属性具体描述分类,也就是把某个质量属性分成几个主题。第四层也是最后一层是具体的场景,精确定义了质量需求以允许后续分析。QAUT生成了带有优先级的场景列表,顺序应该是(H,H),(H,M),(M,H)......,(L,L)。H、M、L分别代表高、中、低级别。

SAAM与ATAM评估方法的基本步骤

SAAM:

(1)场景开发(2)描述体系结构(3)对场景分类和设置优先级(4)间接场景的独立评估(5)识别场景关联(6)形成整体评估

ATAM:

(1)介绍ATAM(2)介绍商业动机(3)介绍体系结构(4)识别体系结构方法(5)生成质量属性效应树(6)分析体系结构方法(7)头脑风暴和设定场景优先级(8)分析体系结构方法(9)提供评估报告

3.敏感点,权衡点,直接场景,间接场景

敏感点:指由于体系结构元素的修改发生显著变化的系统模型参数

权衡点:是系统内与几个敏感点都相关的地方,是多个质量属性的敏感点

直接场景:按照现有体系结构开发出来的系统能够直接实现的场景

间接场景:必须修改体系结构才能支持的场景

第8章 基于服务的体系结构

1.SOA的定义(面向服务的体系结构)

W3C的定义:SOA是一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形成业务流程。

Service-architecture.com的定义:SOA本质上是服务的集合,这些服务是精确定义、封装完整、独立于其他服务所处环境和状态的函数。服务之间需彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务间协调进行的某些活动。服务之间需要某些方法进行连接。

Gartner的定义:SOA是一种客户端/服务端模型的软件设计方法,SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件构件的松散耦合,并使用独立的标准接口。

2.Web Services平台采用的四种核心技术

(1)XML:可扩展标记语言。Web服务平台表示数据的基本格式,解决了数据表示的问题。

(2)SOAP:简单对象访问协议。提供了标准的rpc方法来调用web服务。

(3)WASL:web服务描述语言。基于XML的用于描述web服务及其操作,参数和返回值的语言。

(4)UDDI:统一描述发现和集成协议。目的是在网上自动查找web服务。

3.单体架构和微服务架构的定义和特点

单体式构架:把所有的业务模块编写在一个项目中,最终打包并进行部署。

优点:

(1)部署简单:由于是完整的结构体,可以直接部署在一个服务器上即可

(2)技术单一,项目不需要复的技术栈,往往一套熟悉的技术栈就可以完成开发

(3)用人成本低:单个程序员可以完成从业务接口到数据库的整个流程

缺点:维护成本增加,交付周期长,新人培养周期长,技术选型成本高,可伸缩性差。

微服务架构 ****:****是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。

微服务的优点:易于开发和维护、启动较快、局部修改容易部署、技术栈不受限、按需伸缩

缺点:运维要求较高、分布式的复杂性、接口调整成本高、重复劳动。

第9章

1.DSSA(特定领域的软件体系结构)的含义

DSSA:在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构。

2.DSSA的基本活动

(1)领域分析:获得领域模型。(2)领域设计:获得DSSA。(3)领域实现:根据领域模型和DSSA来开发和组织可重用信息。

考试题型

一、填空(10*1分)

常用的构件描述模型有3C模型、REBOOT模型和__。(青鸟构件模型)

对软件体系结构进行评估的三种主要评估方法分别是:基于调查问卷或检查表的评估方式,__,和基于度量的评估方式。(基于场景的评估方式)

二名词解释(10*2分)

  1. B/S:浏览器/服务器风格
  2. C/S:客户/服务器风格
  3. DSSA:特定领域的软件体系结构
  4. ADL:软件体系结构描述语言
  5. ADD:关键质量属性驱动的设计
  6. SOA:面向服务的体系结构
  7. MVC:模式---视图---控制器风格
  8. UUDI:统一描述、发现和集成协议
  9. Use-Case-Driven:用例驱动
  10. HMB:层次消息总线
  11. Pattern-Driven:模式驱动
  12. XML Schema:负责定义和描述XML文档的结构和内容模式
  13. 敏感点:指由于体系结构元素的修改发生显著变化的系统模型参数
  14. 权衡点:是系统内与几个敏感点都相关的地方,是多个质最属性的敏感点
  15. 直接场景:按照现有体系结构开发出来的系统能够直接实现的场景
  16. 间接场景:必须修改体系结构才能支持的场景
  17. 软件重用:一种由预先构造好的、为重用目的而设计的软件构件来建立或组装软件系统的过程
  18. 构件:具有一定功能,可明确辨识的软件单位
  19. 连接件:用来建立构件间的交互以及支配这些交互规则的体系结构构造模块
  20. 质量属性效用树:以树的形式表现质量属性的细化

MTBF:平均失效间隔时间

ATAM:体系结构权衡分析方法

三、问答题(10*4分)

1.熟悉三种风格的软件体系结构,并了解其优缺点

管道过滤器风格:在管道过滤器模式下,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。

优点:使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;支持并行执行。

缺点:由于过滤器的传输特性,管道过滤器风格通常不适合交互性很强的应用。另外因为在数据传输上没有通用的标准,每个过滤器都增加了数据打包和解包的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。

基于事件的隐式调用风格:构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。

层次体系结构风格:层次结构将系统进行分级组织,其组织思想是:在层次结构中,每一层向上层提供服务,并作为客户向下层请求服务。层次结构的表现形式可以是多种多样的,如有些层次系统中,底层服务只向相邻的上一层提供,有些层次系统中,系统服务和请求则可以跨层进行。另一些层次系统中,除了选定的输出函数外,内部的层只对相邻的层可见。

2.简要介绍Krutchen的"4+1"视图模型

4:逻辑视图 :面向对象的分解,采用面向对象的方法,按照抽象,封装,继承的原则进行分解,得到代表着系统的关键抽象表示集合。主要支持功能需求---系统应当向用户提供什么样的服务。过程视图 :描述系统的并发和同步方面的设计。物理视图 :描述软件到硬件之间的映射关系,反映系统在分布方面的设计。开发视图:描述软件在开发环境下的静态组织结构。

1:场景:通过选择一些用例对体系结构加以说明,这些用例被称为场景。

3.了解软件体系结构的四个发展阶段

(1)"无体系结构"设计阶段:开发采用汇编语言,规模较小。

(2)萌芽阶段:采用结构化开发技术。

(3)初级阶段:采用面向对象开发技术,从多种角度对系统建模,如UML。

(4)高级阶段:以4+1模型为标志,开发中心是描述系统的高层抽象结构模型。

4、SAAM和ATAM评估方法的基本步骤分别是什么?

SAAM:

(1)场景开发(2)描述体系结构(3)对场景分类和设置优先级(4)间接场景的独立评估(5)识别场景关联(6)形成整体评估

ATAM:

(1)介绍ATAM(2)介绍商业动机(3)介绍体系结构(4)识别体系结构方法(5)生成质量属性效应树(6)分析体系结构方法(7)头脑风暴和设定场景优先级(8)分析体系结构方法(9)提供评估报告

四、综合题

在第五章

相关推荐
小鱼儿LY2 个月前
系统架构设计师论文-论软件体系结构的演化
系统架构·软件体系结构·架构设计师·体系结构演化
海海不掉头发7 个月前
【2025 年】软件体系结构考试试卷-期末考试
java·服务器·软件体系结构
向懒羊羊学习的大猫1 年前
【专题】基于服务的体系结构
数据库·软件体系结构