0
软件体系结构概论
软件体系结构产生背景
- 规模增长
- 需求增加
- 满足需求
- 维护问题
软件重用的定义
在开发新的系统软件时对已有软件的重新使用,该软件可以是已存在的软件,也可以是专门设计的可重用构件。
软件 重用类型
依据不同的分类:
- 依据重用的对象 产品重用 过程重用
- 依据重用的方式 黑盒重用 白盒重用
- 依据重用方法 组合式重用 生成式重用
- 依据应用的领域范围 横向重用 纵向重用
软件成分重用的方式
- 源代码的重用
- 目标代码级重用 使用函数库的方式体现
- 设计和分析结果重用
- 类的重用
- 构件重用
主流核心模型
构件、连接件、配置约束
构件的定义
将大而复杂的应用软件分解为一系列可先行实现,易于开发,理解,重用和调整的软件单元。只有当构件达到一定规模,形成构件库时,才能有效支持构件在产品线上的重用。
基于构件的开发思想
将用户需求分解为一系列子功能构件,在开发的过程中不必重新设计这些子模块,只需从现有的构件库中寻找合适的构件来组装应用系统。
软件体系结构建模
软件体系结构应该以模型的形式具体化。
为了使软件体系结构能够满足系统的功能、性能和质量需求,就需要有一种规范的软件体系结构描述方法,这就是建模语言。
ADL(体系结构描述语言)
用于把体系结构文档化的工具集合。
广泛使用的ADL
- ACME
- Rapide
- Unicon
- Wright
- Darwin
- Aesop
- SADL
- MetaH
- C2
有无工具的支持是ADL是否可用的重要标志。
描述体系结构的两种方法
- 实践派-使用通用的建模符号
- 学院派- 使用ADL
实践派风格的特点是:关注更广范围的开发问题,提供多视角的体系结构模型集,强调实践可行性而非精确性,将体系结构看成开发过程的蓝本,给出针对通用目标的解决方案。
学院派风格则侧重于软件体系结构形式化理论的研究。在学院派风格中,倡导使用体系结构描述语言来刻画软件的框架结构。
ADL集中描述了整个系统的高层结构。通常,ADL提供了一个概念框架和一套具体的语法规则。此外,在每种体系结构描述语言中,还会提供相应的工具支持,用于分析、显示、编译和模拟该语言所表示的软件体系结构。
学院派风格的特点是:模型单一,具有严格的建模符号,注重体系结构模型的分析与评估,给出强有力的分析技术,提供针对专门目标的解决方案。
ACME的基本特征
- 提供了基本的元素描述体系结构,应提供拓展
- 提供灵活的注解机制来描述系统的非结构性信息
- 提供了可对软件体系结构风格重用的模板机制
- 提供开放的语义框架,对体系结构描述进行形式化推理
UML ADL的关系
- ADL是研究软件体系结构规范及模型的形式化工具,但应用领域狭窄
- UML是建模语言,用来对软件进行描述的文档
4+1视图模型
逻辑视图,也称概念视图。主要支持系统功能需求的抽象描述,即系统最终将提供给用户什么样的服务。主要描述了系统的功能需求及其之间的相互关系,并按照应用领域的概念来描述系统的框架结构。
开发视图,也称模块视图。主要侧重于描述系统的组织,根据系统模块的组织方式,可以有不同的形式。通常是根据分配给项目组的开发和维护工作来组织,该视图主要使用层次结构风格,通常将层次限制在4-6层左右。
过程视图。主要侧重于描述系统的动态属性,即系统运行时的特性。该视图着重解决系统的并发和分布,及系统的完整性和容错性,同时也定义在逻辑视图中的各个类中的操作是在哪一个控制线索中被执行的。
物理视图。主要描述如何把软件映射到硬件上,通常要考虑系统的性能、规模、容错等。物理视图展示了软件在生命周期的不同阶段中所必须的物理环境、硬件配置和分布状况。
场景视图。场景是用户需求和系统功能实例的抽象,设计者通过分析如何满足每个场景所要求的约束来分析软件的体系结构。
总的来说,逻辑视图定义了系统的目标;开发视图和过程视图提供了详细的系统设计实现方案;物理视图解决了系统的拓扑结构、安装和通信问题;场景反映了完成上述任务的组织结构。
基于体系结构的软件开发过程
体系结构在整个软件生存周期中扮演着重要的角色。下图给出了基于体系结构的软件开发过程包括的几个主要活动;
通过对特定领域应用软件进行分析,提炼其中的稳定需求和易变需求,建立可重用的领域模型。根据用户需求和领域模型,产生应用系统的需求规格说明;
在领域模型的基础上,提炼面向特定领域的软件体系结构。 在体系结构的框架指导下,把系统功能分解到相应的构件和连接件。
低层设计主要解决具体构件和连接件的设计问题,通过重用设计件库中存放的设计模式、对象和其他类型的可重用设计,或根据情况设计新的构件,并提炼入库。
软件体系结构风格
可划分为五大类
- 数据流风格:批处理序列,管道过滤器
- 仓库风格:数据库系统 超文本系统 黑板系统(知识源 黑板 控制组件)
- 独立构件风格:进程通信 事件系统
- 调用/返回风格:主程序/子程序 面向对象 层次结构
- 虚拟机风格:解释器 基于规则的系统
B/S vs C/S
答:B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。
C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
三、B/S、C/S结构软件技术上的比较
C/S结构软件(即客户机/服务器模式)分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的局域网内使用。国内目前的大部分ERP(财务)软件产品即属于此类结构。
B/S(浏览器/服务器模式)是随着Internet技术的兴起,对C/S结构的一种改进。在这种结构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在Web服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。e通管理系列产品即属于此类结构。
特定领域软件体系结构
DSSA
是在特定应用领域中为一组应用提供组织结构参考的标准软件体系体系
特征
- 它是对整个领域适度的抽象
- 具有严格定义的问题域和解决方案域
- 具有该领域固有的,典型的开发过程中可重用的元素
- 具有普遍性,既可用于领域中某个特定应用的开发
DSSA包含的两个过程
领域工程
为一组相似或相近的应用建立基本能力与必备基础的过程,以形成领域模型
人员划分及其任务
- 领域专家 提供知识
- 领域分析人员 知识获取
- 领域设计人员 建立领域模型
- 领域实现人员 提起使用构件
应用工程
应用过程是对领域模型的实例化的过程
- 以领域工程的成果为基础,针对特定的需求产生特定的设计和实现,进行应用工程的开发。
- 领域工程处于较高的级别上
- 领域工程为应用工程提供了支持
- 在很多方面都可以进行类比
领域分析的三个阶段及其目标
领域分析
主要目标是产生领域模型,活动包括领域定义和建立领域模型
领域设计
开发出相应的设计模型
领域实现
组织开发可重用因素
web service与SOA
定义
是一个为了实现跨网络操作而设计的软件系统,提供了相应的操作接口,其他应用可以使用SOAP消息,以预先指定的方式与web services进行交互。
目标
消除语言差异,平台差异,协议差异和数据结构差异,成为不同构建模型与异构系统之间的集成技术。
优点
- 良好的封装性,开放性,维护性和伸缩性
- 高度的集成性,跨平台性和语言独立性
- 自描述和发现性以及协议通用性
- 协约的规范性
- 松散的耦合性
体系结构模型
webservices体系结构当中组成的三者之间的主要功能和他们之间的交互过程:
1)发布服务:服务提供者定义了Web Service描述,在服务注册中心上发布这些服务描述信息。
2)查找服务:服务请求者使用查找服务操作从本地或服务注册中心搜索符合条件的Web Service描述,可以通过用户界面提交,也可以由其他Web Service发起。
3)绑定服务:一旦服务请求者发现合适的Web Service,将根据服务描述中的相关信息调用相关的服务。
工作机制
主要采用的技术
- 可拓展标记语言XML
- 简单对象访问协议SOAP
- web service描述语言 WSDL
- 统一描述,查找和集成协议UDDI
- web services流程语言WSFL
- 业务流程执行语言BPEL
XML是Web Services进行数据交换时所采用的标准,同时也是Web Services技术的全部规范和技术基础。
SOAP是以XML为基础,独立于编程语言和操作平台,交换结构化信息的轻量级协议。
一个WSDL文档将服务定义为一个网络端点或端口的集合。
UDDI 是一套Web服务信息注册标准规范,信息注册中心通过实现这套规范开放各个Web Services的注册和查询服务。
SOA定义
-
狭义上认为是一种架构风格
-
广义上认为是一种企业解决方案和企业环境,而不仅仅是一种架构风格
SOA优缺点
优点
- 具有良好的平台无关性,可适用性和可拓展性
- 技术与业务对齐,具有更好的集成效果,更好的定价和销售模式
- 减少系统耦合,提高系统的复用粒度,降低开发成本
- 使企业的信息化建设真正以业务为核心,业务人员根据需求编排服务,而不必考虑技术细节
缺点
- 降低了系统的性能
- 服务的划分和编排困难
- 如果选择的接口标准有问题,会带来系统的额外开销,并因此而最终导致整个系统不稳定性的增加
- 对IT硬件资源并没有重用
- 主流实现方式接口很多,从而松散,脆弱
- 主流实现方式只局限于不带界面的服务共享
web servce 与SOA的关系
SOA不是Web Services,Web服务是技术规范,而SOA是设计原则;
SOA本质上是一种将软件组织在一起的抽象概念,依赖于XML和Web Services等更加具体的实现技术;
Web Services是SOA的一个特定实现。
Web Services是实现SOA的最好方式,但SOA的实现并不仅仅局限于Web Services。
软件体系结构评估
评估的定义
对系统的某些值得关心的属性,如性能,可靠性,可修改性等进行评价和判断
评估的目的
识别体系结构设计中潜在的风险
评估技术的三种方式及其方法
P249
- 问卷调查或检查表
问卷调查是一系列可以应用到各种体系结构评估的相关问题,其中有些问题可能涉及到体系结构的设计决策;有些问题涉及到体系结构的文档,比如体系结构的形式化描述采用何种技术;有的问题针对体系结构描述本身的一些细节问题,比如系统的核心功能是否与用户界面分开
- 基于场景
场景
一个场景反映了一个终端用户或有关各方和系统之间的相互作用以及要求。
场景分为直接场景和间接场景两类。
在体系结构评估中,一般采用激励(Stimulus)、环境(Environment)和响应(Response)3个方面对场景进行描述。
- 基于度量和预测
度量是指对软件制品的某一属性所赋予的数值,例如,代码行数、方法调用层数、组件个数等。
传统的度量研究主要针对代码这一级别,但目前已经出现一些针对高层设计的度量方案,软件体系结构度量即是其中之一。
评估中场景的描述
基于场景的体系结构:SAAM 和ATAM的不同之处
SAAM考查的是SA单独的质量属性,而ATAM提供从多个竞争的质量属性方面来理解SA的方法,使用户能认识到在多个质量属性目标间权衡的必要性。
SAAM的评估过程
SAAM
SAAM及其扩展评估方法
SAAM (Scenario-based Architecture Analysis Method)主要分析体系结构的可修改性;也可以对系统属性及系统功能进行快速评估。
评估方法:描述场景、划分优先级、分析体系结构问题
SAAM评估的输入:一组场景
SAAM评估的输出
将代表了未来可能做的更改的场景与体系结构对应起来,显示出体系结构中未来可能具有较高复杂性的地方,估计预期工作量理解系统功能,比较多个体系结构支持的功能数量
SAAM 的评估包括六个活动, 分别为:
场景形成。通过集体讨论, 风险承担者提出反映自己需求的场景。
SA 描述。SAAM 定义了功能性、结构和分配三个视角来描述SA。
功能性指示系统做了些什么, 结构由组件和组件间的连接组成, 而从功能到结构的分配则描述了域上的功能性是如何在软件结构中实现的。场景的形成与SA 的描述通常是相互促进的, 并且需要重复的进行。
场景的分类。在分析过程中需要确定一个场景是否需要修改该体系结构。不需要修改的场景称为直接场景, 需要修改的场景则称为间接场景。另一方面需要对场景设置优先级,以保证在评估的有限时间内考虑最重要的场景。
单个场景的评估。主要针对间接场景, 列出为支持该场景所需要对体系结构做出的修改, 并估计出这些修改的代价。而对于直接场景只需弄清体系结构是如何实现这些场景的。
场景交互的评估。两个或多个间接场景要求更改体系结构的同一个组件就称为场景交互。对场景交互的评估, 能够暴露设计中的功能分配。
总体评估。按照相对重要性为每个场景及场景交互设置一个权值, 根据权值得出总体评价。
ATAM的评估过程
ATAM 评估方法包括4个部分,分为9个步骤:
1.表述,分三个步骤:
分别为:ATAM方法表述、商业动机表述、软件体系结构表述;
2.调查分析,包括三个步骤
分别为:确定软件架构的方法、生成质量效用树、分析软件架构方法。
3.测试,包括两个步骤
分别为:集体讨论并确定场景的优先级、分析软件体系结构方法。
4.形成报告
简单质量效用树的特点
云计算 公共云 私有云 混合云
“云”,一组通过因特网公开访问的计算机和服务器
从软件体系结构的角度看“云”
云将网络上分布的计算、存储、服务构件、网络软件等资源集中起来,以基于资源虚拟化的方式,为用户提供方便快捷的服务,这些资源就是云计算体系结构中的构件;
同时云计算还可以实现计算与存储的分布式与并行处理,一系列的网络管理构件和服务管理构件就是它的连接件;
而其约束应该根据欲实现的商业计算目标和安全管理形式来决定。
如果把云视为一个虚拟化的存储与计算资源池,那么云计算就是该资源池基于网络平台为用户提供的数据存储和网络计算服务。
优点
规模超大,数据存储和处理能力强
虚拟化技术
高可靠性和数据容错安全性
通用性
动态可扩展性
按需服务
易于使用
规模可变,易于定制
可以改进操作系统之间的兼容性
廉价,高性价比,对用户透明
缺点
企业级安全性问题,数据隐私保密
云计算宿主离线 所产生的事故
迫使用户适应新的操作环境、更改使用习惯
网络带宽的局限性问题
分类
- 将基础设施作为服务(Infrastructure as a Service,IaaS)
- 将云计算软件开发平台作为服务(Platform as a Service,PaaS)
将软件作为服务(Software as a Service,SaaS)- 除此之外,基于云的数据作为服务(Data as a Service,DaaS),通信作为服务(Communication as a Service,CaaS)等形式的更多的XaaS也在根据用户的需要不断应运而生
- 将云计算软件开发平台作为服务(Platform as a Service,PaaS)
云计算的体系结构和核心技术
-
服务管理中间件层和虚拟化资源层是云计算技术的核心部分 。
-
GAE是目前已知的最好的云计算平台之一。
-
云计算技术上的研究主要包括两个方面:
- 如何构建分布式平台的基础设施
- 如何帮助开发人员在云计算的分布式平台上进行编程
-
以Google云为例简单介绍云计算的核心技术以及各自的工作原理
- 分布式海量数据存储技术
- 分布式海量数据编程模型 //MapReduce的核心思想,就是“任务的分解与结果的汇总” 。
- 分布式海量数据的锁服务
- 分布式海量数据管理技术
PPT后面的习题
第一单元:
1.( )主要包含两方面的问题:如何开发软件以满足对软件日益增长的需求;如何维护数量不断高速增长的已有软件。
2.软件体系结构的核心模型主要包括:()、()、()。
3.()有助于提高软件开发的生产率,提高软件系统的可靠性,减少软件维护的负担。
4.()是软件重用的核心与基础。
5.基于构件的软件开发的基本思想是?
1.软件危机
2.构件、连接件、配置约束
3.软件重用技术
4.软件构件技术
5.基于构件的软件开发的基本思想是:将用户需求分解为一系列的子功能构件,在开发过程中不必重新设计这些基本功能模块,只需从现有构件库中寻找合适的构件来组装应用系统。
第二单元:
1.软件架构是降低成本、改进质量、按时和按需交付产品的关键因素。以下关于软件架构的描述,错误的是()。
A. 根据用户需求,能够确定一个最佳的软件架构,指导整个软件的开发过程
B. 软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等
C. 软件架构设计需要确定组件之间的依赖关系,支持项目计划和管理活动
D.软件架构能够指导设计人员和实现人员的工作
答案:A
2.下面哪种视图不属于软件体系结构中定义的“4+1”视图?
A) 物理视图
B) 设计视图
C) 场景视图
D) 开发视图
答案:B
3.在RUP (Rational Unified Process,统一软件开发过程)中采用“4+1”视图模型来描述软件系统的体系结构。在该模型中,最终用户侧重于(),系统工程师侧重于()。
A. 实现视图
B. 进程视图
C. 逻辑视图
D. 部署视图
答案:C D
4.在基于构件的软件开发中,( )描述系统设计蓝图以保证系统提供适当的功能;( )用来了解系统的性能、吞吐率等非功能性属性。
A. 逻辑构件模型
B. 物理构件模型
C. 组件接口模型
D. 系统交互模型
答案:A B
第三单元:
1.下列哪个选项是描述系统的静态结构( )
A.逻辑视图和开发视图
B.进程视图和物理视图
C.开发视图和物理视图
D.开发视图和进程视图
答案A
2.Unicon提供了一组预先定义的构件和连接件,这是为了达到( )
A:提供对大量构件和连接件的统一访问;
B:区分不同类型的构件和连接件,以便对体系结构配置进行检查;
C:支持不同表达方式和不同开发人员的分析工具;
D:支持有构件的使用。
答案:A
3.下列选项中关于ADL与其他语言的比较说法中错误的是( )
A:ADL与需求语言的区别在于后者描述的问题空间,而前者则扎根与解空间中;
B: ADL与建模语言的区别在于后者对部分的关注要大于对整体的关注;
C:ADL与传统的程序设计语言的构成元素由许多相同和相似之处,又各自有着很大的不同;
D:ADL集中在构件的表示上。
答案:B
4.软件架构模式描述了如何将各个模块和子系统有效地组织成一个完整的系统。诸如Word和Excel这类图形界面应用软件所采用的架构模式是( )。
A.分层模式
B.知识库模式
C.面向对象模式
D.事件驱动模式
答案:D
5.为了解决C/S模式中客户机负荷过重的问题,软件架构发展形成了( )模式。
A. 三层C/S B. 分层
C.B/S D. 知识库
答案:C
C/S模式即客户机/服务器模式。该模式是基于资源不对等,为实现共享而提出的。C/S模式需要在使用者计算机上安装相应的操作软件,使得客户机负载过重。为了解决C/S模式中客户端的问题,发展形成了浏览器/服务器(B/S)模式;为解决C/S模式中服务器端的问题,发展形成了三层(多层)C/S模式及多层应用架构。知识库模式采用两种不同的控制策略:传统数据库型的知识库模式和黑板报系统的知识库模式。
6.与基于C/S架构的信息系统相比,基于B/S架构的信息系统( )。
A.具备更强的事务处理能力,易于实现复杂的业务流程
B.人机界面友好,具备更加快速的用户响应速度
C.更加容易部署和升级维护
D.具备更高的安全性
答案:C
1.软件重用长期以来一直是软件工程界不断追求的目标。()
答案:√
2.软件体系结构的核心由5种元素组成:构件、连接件、配置、端口和角色。其中,构件、连接件和配置是最基本的元素()
答案:√
3.体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之前进行。
答案:×(需求分析之后,软件设计之前)
4.基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。
答案:√
5.层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。
答案:×
6.正交软件体系结构由组织层和线索的构件构成。
答案:√
7.SOA模型具有松散耦合、细粒度服务、标准化接口等特征。
答案:×(粗粒度,SOA是一个组件模型)
8.层次系统最广泛的应用是分层通信协议。
答案:√
- MVC模式的中的M,V,C分别对应______、_______、_________三种单词。
答案:Model,View,Controller
2.黑板系统主要由 __________ 、___和 组成。
答案:知识源、黑板、控制组件
什么是软件体系结构风格?
答:软件体系结构风格是描述某一特定领域中系统组织方式的惯用模式。
请设计一个具体B/S结构登录模块的体系结构,并说明每层的作用:
答:该模块的B/S结构可分为三层:
第一层:客户层(或表现层、界面层),第二层:业务逻辑层(或应用层、功能层、应用服务器层),第三层:数据层。
第一层只有浏览器,通过访问第二层的网页实现用户界面,即接受用户的名称、密码的输入,并向第二层传送用户名和密码,最后将登录结果显示出来;
第二层接受第一层的用户名和密码,并通过访问第三层判断用户合法性,最后将登录结果以网页形式返回给第一层;
第三层在数据库或文件中存储用户名和密码,并为第二层提供数据访问服务。
第五单元:
【问题1】:
1)开发人员不需要重新设计业务模式,是需要在原有系统的界面和中间层添加Web Services,可以继承原有系统的所有业务。
2)节约了开发的时间和工作量,将系统升级。5
3)可以不修改原有的Web服务和中间层,可以直接扩展新的服务。
【问题2】:WSDL:是Web Services的描述语言,描述Web Services的服务,接口绑定等信息,为用户提供详细的接口说明书;
SOAP:是通信协议,以服务的方式发布有用的程序模块。
UDDI:提供统一的发布、查找、定位WebServices的方法。
【问题3】:
在Web Service模型的解决方案中,服务提供者定义并实现Web Service,使用服务描述语言(WSDL)描述Web Service,然后将服务描述发布到服务请求或者服务注册中心;服务请求这使用查找操作从本地或者服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑定并调用Web Service.服务注册中心是整个模型中的可选角色,它是连接服务提供者和服务请求者的纽带。
第九单元:
1.特定领域软件架构(DSSA)是在一个特定应用领域为一组应用提供组织结构参考的标准软件架构。实施DSSA的过程包括一系列基本活动,其中(①)活动的主要目的是为了获得DSSA。该活动参加人员中,(②)的主要任务是提供关于领域系统的需求规约和实现的知识。
① A.领域需求 B.领域分析 C.领域设计 D.领域实现
② A.领域专家 B.领域分析者 C.领域设计者D.领域实现者
答案:①C ②A
2.某服务器软件系统能够正确运行并得出计算结果,但存在“系统出错后不能在要求的时间内恢复到正常状态”和“对系统进行二次开发时总要超过半年时间”两个问题,上述问题依次与质量属性中的( )相关。
A.可用性和性能 B.性能和修改性
C.性能和可测试性 D.可用性和可修改性
答案:D
3.计算机系统的可用性可从多个方面来评测,但不包括( )。
A.故障率 B.健壮性 C.可移植性 D.可恢复性
答案:C
4、以下关于系统性能的叙述中,不正确的是( )
A. 常见的Web服务器性能评估方法有基准测试、压力测试和可靠性测试
B. 评价Web服务器的主要性能指标有最大并发连接数、响应延迟和吞吐量
C. 对运行系统进行性能评估的主要目的是以更好的性能/价格比更新系统
D. 当系统性能降到基本水平时,需要查找影响性能的瓶颈并消除该瓶颈
答案:A
5、“系统在提供服务给合法用户的同时抵制未授权使用的能力”这是哪种质量属性关心的问题:
A)性能
B)可测试性
C)可移植性
D)安全性
答案:D
软件体系结构的评估方法主要有调查问卷、检查表、场景、度量、比较5种。
( )
答:╳
调查问卷、检查表、场景、度量、比较是软件体系结构的5种评估方式,评估方法有ATAM、SAAM、ARID三种。
某网上购物电子商务公司拟升级正在使用的在线交易系统,以提高用户网上购物在线支付环节的效率和安全性。在系统的需求分析与架构设计阶段,公司提出的需求和关键质量属性场景如下:
正常负载情况下,系统必须在0.5秒内对用户的交易请求进行响应;
信用卡支付必须保证99.999%的安全性;
对交易请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;
网络失效后,系统需要在1.5分钟内发现错误并启用备用系统;
需要在20人月内为系统添加一个新的CORBA中间件;
交易过程中涉及到的产品介绍视频传输必须保证画面具有600*480的分辨率,20帧/秒的速率;
更改加密的级别将对安全性和性能产生影响;
主站点断电后,需要在3秒内将访问请求重定向到备用站点;
假设每秒中用户交易请求的数量是10个,处理请求的时间为30毫秒,则“在1秒内完成用户的交易请求”这一要求是可以实现的;
用户信息数据库授权必须保证99.999%可用;
目前对系统信用卡支付业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性;
更改Web界面接口必须在4人周内完成;
系统需要提供远程调试接口,并支持系统的远程调试。
在对系统需求和质量属性场景进行分析的基础上,系统的架构师给出了三个候选的架构设计方案。公司目前正在组织系统开发的相关人员对系统架构进行评估。
【问题1】:
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图1-1中a、b空白处;并选择题干描述的1~13,填入c~f空白处,完成该系统的效用树。
问题1答案:
a:可修改性
b:可用性
c:6
d:12
e:8
f:2
【问题2】:在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请给出系统架构风险、敏感点和权衡点的定义,并从题干1-13中各选出1各对系统架构风险、敏感点和权衡点最恰当的描述。
答:系统架构风险:是指架构设计中潜在的、存在问题的架构决策所带来的隐患;
敏感点:是指为了实现某种特定的质量属性,一个或多个系统组件所具有的特性;
权衡点:是指影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性
题干描述中,11描述的是架构风险;3描述的是敏感点;7描述的是权衡点。
第十单元:
- 云计算的计算模式为( ).
A W/S B C/S C B/S D B/C
- ( )是公有云计算基础架构的基石。
A 虚拟化 B 分布式 C 并行 D 集中式
- ( )是私有云计算基础架构的基石。
A 虚拟化 B 分布式 C 并行 D 集中式
答案:
1.D
2.B
3.A
4.网格计算是利用( )技术,把分散在不同地理位置的计算机组成一台虚拟超级计算机。 A 对等网 B 因特网 C 广域 D 无线网
5.云计算就是把计算资源都放到( )
A 对等网 B 因特网 C 广域 D 无线网
答案:4.B 5.B
6.用户可通过( )从列表中选择所需的服务,其请求通过管理系统调度相应的资源,并通过部署工具分发请求、配置Web应用。
A 云用户端 B 服务目录
C 管理系统和部署工具D 监控端
答案:A
-
SaaS是( )的简称。
PAAS是( )的简称
IaaS是( )的简称。
A 软件即服务 B 平台即服务
C 基础设施即服务D 硬件即服务
答案:A B C
-
云计算是对分布式处理(DistributedComputing)、并行处理(Parallel Computing)和网格计算(Grid Computing)及分布式数据库的改进处理。( )
-
利用并行计算解决大型问题的网格计算和将计算资源作为可计量的服务提供的公用计算,在互联网宽带技术和虚拟化技术高速发展后萌生出云计算。( )
-
云计算的基本原理为:利用非本地或远程服务器(集群)的分布式计算机为互联网用户提供服务(计算、存储、软硬件等服务)。( )
-
云计算可以把普通的服务器或者PC连接起来以获得超级计算机的计算和存储等功能,但是成本偏高。 ( )
-
云计算真正实现了按需计算,从而有效地提高了对软硬件资源的利用效率。 ( )
-
云计算模式中用户不需要了解服务器在哪里,不用关心内部如何运作,通过高速互联网就可以透明地使用各种资源。( )
-
Amazon EC2在基础设施云中使用公共服务器池。 ( )
-
所谓“云”计算就是一种计算平台或者应用模式。( )
答案: 1.√ 2.√ 3.√ 4. × 5.√
6.√ 7. √ 8. ×
总习题:
1.软件重用是为了解决 _____
答案:软件危机
2.综合各种不同软件体系结构定义,认为软件体系结构主要包括_____ 、 _____ 和_____ 3个部分。
构件、连接件和配置约束
3.软件体系结构应建立于传统的软件开发过程的________和________阶段之间。
答案:需求分析、软件设计
体系结构评估中,一般采用刺激,环境,和_____三方面来对场景进行描述。
答案:响应
1.UML是一种通用的面向对象的建模语言,在很大程度上独立于建模过程,在实际的应用中,建模人员往往把UML应用于_____ 驱动的、以_____ 为中心的, 和 的开发过程。
用例、体系结构、迭代的、渐增式
2.Kruchten提出了“4+1”视图模型,从5个不同的视角来描述软件体系结构,这5个视角包括_____ 、 _____ 、 _____ 、 _____ 和_____ 。
逻辑视图、开发视图、过程视图、物理视图、场景视图
1.黑板系统主要由 __________ 、____________和 _________ 组成。
知识源、黑板、控制组件
2.三层C/S结构风格是由_________ 、_________ 和 __________ 构成的。
答案:表示层、功能层、数据层
领域工程阶段的主要任务有_____ 、______和______三个阶段。
答案:领域分析、领域设计、领域实现
- ______是Web Services进行数据交换时所采用的标准,同时也是Web Services技术的全部规范和技术基础。SOAP、WSDL、UDDI都是使用它进行描述的。
答案:XML
2.理解SOA和Web Service关系上, ______所表示的是一个概念模型,______是______的一个特定实现。
答案:SOA, Web Service ,SOA
1.SAAM评估方法可以对许多_____以及______进行快速评估。
答案:质量属性,系统功能
2.体系结构评估中一般采用_____ 、环境和_____三方面来对场景进行描述。
答案:刺激、响应