软件体系结构复习.docx
- 文档编号:30454701
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:20
- 大小:40.05KB
软件体系结构复习.docx
《软件体系结构复习.docx》由会员分享,可在线阅读,更多相关《软件体系结构复习.docx(20页珍藏版)》请在冰豆网上搜索。
软件体系结构复习
一、题型
名词解释选择题(25个),问答题(4个),分析题
二、架构的定义
LenBass,PaulClements等人对软件构架所做的定义:
–某个软件或计算系统的软件构架是该系统的一个或多个结构,它由软件元素、这些元素的外部可见属性以及这些元素之间的关系组成。
三、软件体系结构异构的三种方式,特点
一种方式是使用层次结构
第二种组合方式的风格是,允许单一构件使用复合的连接件
第三种组合方法,用完全不同的软件体系结构风格对一个系统水平的软件体系结构进行描述
四、构件、连接件
构件是计算或数据储存的单元
a)Perry&Wolf定义中的处理元素和数据元素
连接件是对以下内容进行建模的体系结构元素
b)构件之间的交互
c)指导这些交互的规则
五、软件体系结构(构架)研究的问题
•结构性问题
•系统的组织,由哪些组件构成
•全局性的控制结构
•通讯、同步或访问的协议
•将功能分配到不同的系统组成部分
•设计元素的组成
•系统的物理分布
•可扩展性、性能
•
(1)软件构架的主要内容包括
•对系统组成元素的描述
•这些元素相互之间的交互
•系统组成的模式
•模式的约束
所以在软件构架中,系统以组件和组件之间的交互进行定义。
当前的系统同时可以作为更高层设计的一个系统组件。
(同时,要弄清哪些方面的问题是属于构架的,哪些方面的问题是不属于构架的)
六、软件体系结构风格:
描述某一特定应用领域中系统组织方式的惯用模式,以结构组织模式定义了一个系统家族
软件体系结构模式:
描述了在特定设计语境中重复再现的设计问题,并为之提供一个经过充分验证了的通用解决方案。
该方案提供了构件、构件的责任、构件之间的关系、以及它们之间的协作方式。
模式比风格更加面向问题,模式通常有问题出现的语境、解决方案和适用的场景;风格更侧重于从应用系统中抽取它们的总体结构,较少从实际设计环境来考虑设计技术
SA风格相对独立;SA模式依赖于它包含的较小的模式、与它相互作用的模式和包含它的较大的模式
(1)管道和过滤器:
(构件:
过滤器连接件:
管道)
含义:
每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。
这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。
例子:
Unix,DOS中的重定向:
dir|sort(perl脚本语言)编译器
优点
使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;
允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;
支持软件复用。
只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;
系统维护和增强系统性能简单。
新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;
允许对一些如吞吐量、死锁等属性的分析
支持并行执行。
每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行
•缺点
通常导致进程成为批处理的结构。
这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换;
不适合处理交互的应用。
当需要增量地显示改变时,这个问题尤为严重;
因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
(2)数据抽象和面向对象组织(构件:
对象,或者也可称为抽象类型的实例连接件:
函数和过程调用)
含义:
这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象
数据类型或对象中。
这种风格的构件是对象,或者说是抽象数据类型的实例。
对象是一种被称作管理者的
构件,因为它负责保持资源的完整性。
对象是通过函数和过程的调用来交互的。
•优点
–因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象;
–设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。
•缺点
–为了使一个对象和另一个对象通过过程调用等进行交互,必须知道对象的标识。
只要一个对象的标识改变了,就必须修改所有其他明确调用它的对象;
–必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。
例如,如果A使用了对象B,C也使用了对象B,那么,C对B的使用所造成的对A的影响可能是料想不到的。
(3)基于事件的隐式调用(基于事件的模式)(构件:
模块连接件:
过程)
•优点
–为软件复用提供了强大的支持。
当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中。
–为改进系统带来了方便。
当用一个构件代替另一个构件时,不会影响到其它构件的接口。
•缺点
–构件放弃了对系统计算的控制。
一个构件触发一个事件时,不能确定其它构件是否会响应它。
而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。
–数据交换的问题。
有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。
在这些情况下,全局性能和资源管理便成了问题。
–既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。
(4)分层系统(组成:
构件,连接件)
•优点
–支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解;
–支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;
–支持复用。
只要提供的服务接口定义不变,同一层的不同实现可以交换使用。
这样,就可以定义一组标准的接口,而允许各种不同的实现方法。
•缺点
–并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来;
–很难找到一个合适的、正确的层次抽象方法。
(5)仓库(Repository)模式(构件:
中央数据结构构件、构件的集合连接件:
)
含义:
在仓库风格中,有两种不同的构件:
中央数据结构说明当前状态,独立构件在中央数据存贮上执行,仓库与外构件间的相互作用在系统中会有大的变化。
控制原则的选取产生两个主要的子类。
若输入流中某类时间触发进程执行的选择,则仓库是一传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统。
l组成:
构件(中央数据结构,独立构件)
例子:
黑板系统的传统应用是信号处理领域,如语音和模式识别。
另一个应用是松耦合代理数据共享存取。
(6)–解释器模式
(7)–过程控制
(8)客户/服务器风格(C/S体系结构有三个主要组成部分:
数据库服务器、客户应用程序和网络。
)
含义:
C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。
•优点
–C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
–系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
–在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个DBMS进行编码。
将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
•缺点
–开发成本较高
–客户端程序设计复杂
–信息内容和形式单一
–用户界面风格不一,使用繁杂,不利于推广使用
–软件移植困难
–软件维护和升级困难
–新技术不能轻易应用
(9)浏览器/服务器风格
–含义:
浏览器/服务器(B/S)风格就是上述三层应用结构的一种实现方式,其具体结构为:
浏览器/Web服务器/数据库服务器。
B/S体系结构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。
从某种程度上来说,B/S结构是一种全新的软件体系结构。
–l组成:
浏览器/Web服务器/数据库服务器
•优点
–基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。
用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。
–B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。
•缺点
–B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
–B/S体系结构的系统扩展能力差,安全性难以控制。
–采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。
–B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)
–应用。
Architecturalstylevs.Designpatterns(1/2)
ArchitecturalstyleDesignpatterns
Relationship
•Architecturalstylescanbeviewedaskindsofpatterns(patternlanguage)
•Forgivenstyle,theremayexistasetofidiomaticuses
Difference
•Toprovideguidanceandanalysisforbuildingabroadclassofarchitecturesinaspecificdomain
•Tofocusonsolvingsmaller,morespecificproblemswithinagivenstyle
Difference
•Toprovidealanguageandframeworkfordescribingfamiliesofwell-formeds/warchitectures
•Tobethoughtofasalanguageforbuildingpatterns(Architecturalstyle)
七、架构由什么决定
构架是否由系统需求决定?
–将一份需求说明书给两个不同的构架师,他们是否能够设计出同样的架构?
答案:
一般情况下会给出两个不同的构架。
系统需求决定构架的观点是错误的。
软件构架是技术、商业和社会等诸多因素共同作用的结果。
•影响构架的因素主要包括:
–系统涉众(stakeholder)
–开发组织
–构架师的素质和经验
–技术环境
八、什么样的构架才算好?
什么样的架构是一个好的架构?
P13
•如何才能设计出一个好的软件构架?
九、软件构架结构(视图)PPT4月5日讲义
三个主要的软件结构视图
RUP的4+1视图
❑PhillpeKruchten的4+1视图
⏹逻辑视图-设计的对象模型
⏹进程视图-捕获系统中的并发与同步
⏹开发视图-描述软件在开发阶段的静态组织
⏹物理视图-描述软件与硬件间的映射
⏹+1视图(场景视图)-将上述四个视图联系到一起的重要用例
–模块结构:
•系统如何被划分为一些更小的代码单元(模块)?
–组件-连接器结构
•系统如何被划分为一组有动态行为的元素(组件)和相互交互的元素(连接器)?
–分配结构
•系统如何映射到非软件的环境?
•弄懂上课讨论过的全部11种结构(风格),
重点掌握分层结构(风格)、共享数据、通信进程、部署等风格,要求能够从某个设计中识别这些风格的应用
分层风格概述
⏹每一层都代表一个虚拟机
❑在软件构架中,这是最常用的一种视图
❑分层风格往往有较高的可修改性
❑不过也常常定义得很差
❑也经常被误解
共享数据风格概述
⏹共享数据风格中有着至少一个能够实现数据持续化的共享数据存储以及多个数据的访问者
⏹交互的模式主要是持续化数据的交换
❑例如:
数据库系统和基于知识的系统
⏹一般计算模型
❑数据的访问者从数据存储中读取数据,执行计算,然后回写数据(纯共享数据模式)
❑除了上述功能外,还非数据存储元素之间的相互交互
通信进程风格概述
⏹该风格将系统表示为一系列的并发执行单元以及它们之间的交互
❑可用的交互方法包括:
同步,消息传递,数据交互,进程控制原语(stop,start…)…
⏹在大系统中,这种表示方式非常普遍;在分布式系统中,这种表示是必须的
❑帮助理解和并发性相关的一些行为
部署风格概述
⏹在部署风格中,某种组件-连接器风格(通常是通信进程风格)的元素被分配到执行平台
⏹分配上的一些限制包括
❑软件元素所表达的需求
❑这些需求如何被硬件元素的特性所满足
十、质量属性场景是一种面向特定的质量属性的需求。
它由以下6部分组成:
PPT-4-1-SA_in_Practice_ch4
•能够通过质量属性场景模型来界定实践中常用的六种质量属性
系统的质量属性:
可用性、可修改性、性能、安全性、可测试性和易用性等
–质量属性场景模型:
源,刺激,环境,制品,响应,响应度量(表,图形表示)
❑刺激源这是某个生成该刺激的实体
❑刺激当刺激到达该系统时需要考虑的条件
例如:
一个消息到达、用户希望修改某个功能、一个系统错误产生、试图删除数据等
⏹环境
❑刺激发生时,所处的一些条件
⏹比如:
系统是否过载,这会影响到响应
⏹制品
❑被刺激的某个系统元素
⏹比如:
整个系统或者系统的部分
⏹响应
❑刺激到达后所采取的行动
⏹响应度量
❑当响应发生时,应能够以某种方式对其进行度量,以对需求进行测试
理解功能性和质量属性之间的关系
⏹功能和质量属性是正交的
❑功能的选择不会限定安全性、性能或易用性的级别
❑这也不是说任何功能都可以实现质量属性的任何级别
⏹功能是指系统完成所期望的工作的能力
❑某个功能的完成,需要多个元素的协作,但是在大量可能的结构中,却可以通过任意一个结构来实现功能
❑如果功能属性是系统唯一的需求的话,整个系统可以是一个没有内部结构的单一模块
理解构架和质量属性的实现之间的关系
⏹构架是软件功能到软件结构的映射,正是这个映射(或分配)决定了构架对质量属性的支持
⏹质量属性的达成,必须在以下阶段都进行考虑
❑设计
❑实现
❑部署
⏹满意的质量属性,来自于系统的总体蓝图(构架)和细节的正确处理
十一、战术---PPT-5-1-SA_in_Practice_ch5
掌握达成六种常用的质量属性相关的战术
每种质量属性分别有哪些战术?
–要求能在具体的设计中选取相应的战术来达成某种质量属性
1、可用性战术
错误检测战术、错误恢复战术、错误预防战术
2、可修改性战术
局部化修改、防止连锁反应、延迟绑定时间、
3、性能战术
资源需求、资源管理战术、资源仲裁
4、安全性战术
抵抗攻击、检测攻击、从攻击中恢复、
5、可测试性战术
输入/输出、内部监视、
6、易用性战术
运行时战术、设计时战术、
十二、ADL
ADL:
定义、作用、构成元素
•软件体系结构视图,有哪些视图,各视图的作用
•用UML描述软件体系结构的优缺点,解决策略,如何描述一个组件的接口和组件-连接器视图中组件的接口等。
ADL是形式化语言,有底层语义的支持,提供语法和概念框架;
基于底层语义的工具,为SA的表示、分析、演化、细化、设计过程提供支持;
有三个基本组成元素
*构件:
计算或数据存储单元
*连接件:
交互及其交互规则
*SA配置:
拓扑图
哪些是典型的软件体系结构描述语言?
UniCon、Wright、C2、Rapide、SADL、Aesop、ACME
UML建模优点
主要优点可以归结为以下三点:
统一标准
UML不仅统一了Booch,OMT和OOSE等方法中的基本概念,还吸取了面向对象技术领域中其它流派的长处,其中也包括非OO方法的影响。
UML使用的符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的,多余的和极少使用的符号,也添加了一些新符号,提供了标准的面向对象的模型元素的定义和表示法。
面向对象
UML建模优点中第二个就是面向对象。
UML支持面向对象技术的主要概念,它提供了一批基本的表示模型元素的图形和方法,能简洁明了地表达面向对象的各种概念和模型元素。
表达能力强大,可视化
UML是一种图形化语言,用UML的模型图形能清晰地表示系统的逻辑模型或实现模型。
它不只是一堆图形符号,在每一个图形表示符号后面,都有良好定义的语义;UML还提供了语言的扩展机制,用户可以根据需要增加定义自己的构造型,标记值和约束等,它的强大表达能力使它可以用于各种复杂类型的软件系统的建模。
UML缺点:
UML缺乏对体系结构下述的元素进和相应的描述与应用能力
体系结构风格
显式的体系结构连接器
体系结构约束
总体来讲:
UML是一种非形式化的描述语言,缺乏严格的语意描述,不能表达体系结构中的语义,不能描述体系结构的相关模型。
●UML2有所改进
P189
十三、ADD-ppt-7-1-SA_in_Practice_ch7
生命周期中的构架
•ADD方法的思路、原理
•ADD方法的具体步骤
•量化设计空间,QFD质量功能部署,蜡烛
•并行工程
构架在软件生命周期中处于一个什么位置?
ADD是一种设计软件构架的方法,该方法根据软件的质量属性需求对系统进行分解
一个递归的分解过程
系统分解基于系统必须满足的质量属性
每个阶段都选择战术和构架模式来满足一组质量属性的场景,然后对功能进行分配,以实例化由该模块所提供的模块类型
ADD结果:
得到一种粗粒度的划分,即模块分解视图和其他视图的最初的几个层次
系统被描述为功能和功能之间交互的一组容器
ADD步骤
1.选择要分解的模块
从整个系统开始
进行分解时,要求所有输入都是可获得的
限制条件、功能需求、质量需求
2.根据这些步骤对模块进行求精
从具体的质量场景和功能需求集合中选择构架驱动因素
选择或创建满足构架驱动因素的构架模式,确定所用战术需要的子模块
实例化模块并根据用例分配功能,使用多个视图进行表示
定义子模块的接口
验证用例和质量场景并对其进行求精,使它们成为子模块的限制
3.对需要进一步分解的每个模块重复上述步骤
十四、构架编档---PPT9-3-SA_in_Practice_ch9
•视图的读者
•“视图和超越视图”编档方法包含哪些相关信息?
•对一个视图的编档应包括哪些信息
•对接口的编档应该包括哪些部分•
•优秀编档的七个原则
下面这些编档的原则可以用于所有的编档工作,而非仅仅是软件构架的编档
从读者的角度出发撰写你的文档
避免不必要的重复
避免歧义
使用一种标准的组织格式
不仅记载怎么做,也记载为什么这么做
保持文档更新,但不必太新
根据文档的使用目的来进行编档
对一个视图的编档应包括哪些信息
一般实践中可以采取包括以下7部分的标准组织
1.展示视图中的元素和元素间关系的主要表示
2.元素目录
3、上下文图
4.可变性指南
5.构架背景
6.视图中所使用的术语表,对每个术语进行简要说明
7.其他信息
“视图和超越视图”编档方法
选择相关视图
对视图编档
将适合多个视图的信息放到文档中
•对接口的编档应该包括哪些部分
1.接口身份
2.所提供的资源
3.数据类型定义
对接口中使用的结构、复杂数据类型进行定义
4.异常定义
描述可以由接口上的资源引发的异常
5.该接口提供的可变性
表明该接口是否允许用某种方式配置该元素
6.接口的质量属性特征
将接口使用者需知道的质量特征(性能、可靠性等)编入文档
7.元素需求
该元素所需要的资源
8.基本原理和设计问题
9.使用指南
十五、ATAM主要部分包括4组,共9个步骤:
评估的方法,ATAM,CBAM
•ATAM的评估结果
•阶段,具体步骤
•风险点、非风险点、敏感点和权衡点
•评估团队
•评估结果
•构架复审的目的
ATAM主要部分包括4组,共9个步骤:
1.陈述,包括通过它进行的信息交流
1ATAM方法的陈述:
评估负责人
2商业动机的陈述:
项目经理或系统客户
3SA的陈述:
系统设计人员
2.调查与分析,包括对照体系结构方法评估关键质量属性需求
1确定体系结构方法:
系统设计人员
2生成质量属性效用树(utilitytree):
说明构成系统“效用”的质量属性(性能、有效性、安全性、可修改性、可用性),具体到场景层次,标注刺激/反应,并区分不同的优先级
3分析体系结构方法:
基于步骤5识别出的高优先级的场景,说明和分析针对这些场景的体系结构方法。
在这一步骤中,体系结构风险、非风险、敏感点和权衡点被识别出来
3.测试,包括对照所有相关人员的需求检验最新结果
1集体讨论并确定场景优先级
2分析体系结构方法:
针对步骤7的高等级场景
4.形成报告,包括陈述ATAM的结果
1结果的表述:
包括方法、场景、特定属性的问题、效用树、有风险决策、无风险决策、敏感点和权衡点
提示:
上述步骤顺序并不严格,可根据需要适当调整
ATAM:
ArchitectureTradeoffAnalysisMethod(体系结构权衡分析方法)
CBAM:
CostBenefitAnalysisMethod成本收益分析方法
•第1步:
ATAM方法的陈述
评估负责人向参加会议的相关人员介绍ATAM方法。
在这一步,要对每个人解释参与的过程,并留出解答疑问的时间,明确其他工作的环境和预期
–ATAM评估步骤简介
–用于获取信息和分析的技巧:
效用树的生成、基于体系结构方法的获取和分析、对场景的集体讨论及优先级的划分
–评估的结果:
场景及其优先级、用以理解和评估体系结构的问题、描述体系结构的动机需求并给出其优先级的效用树、所确定的一组体系结构方法、所发现的有风险决策、无风险决策、敏感点和权衡点等
•第2步:
商业动机的陈述
项目决策者从商业角度,向相关人员介绍系统概况和主要的商业动机
–系统最重要的功能
–技术、管理、经济、政治方面的任何相关限制
–与该项目相关的商业目标和上下文
–主要的相关人员
–体系结构的驱动因素,即促使形成该体系结构的主要质量属性目标
十六、软件体系结构发展
•产品线
•基于组件的软件开发
•软件体系结构的失配
•软件集成
•软件体系结构重用
•软件体系结构重构
•MDA
•SOA
•AOP
P302
SOA定义:
W3C定义
SOA为一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形成业务流程。
Gartner定义
SOA为客户端/服务器的软件设计方法,一项应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 体系结构 复习