系统架构师(每日一练20)

每日一练

1.在架构评估中,()是一个或多个构件(和/或构件之间的关系)的特性。改变加密级别的设计决策属于(),因为它可能会对安全性和性能产生非常重要的影响。答案与解析
问题1

  • A.敏感点
  • B.非风险点
  • C.权衡点
  • D.风险点

问题2

  • A.敏感点
  • B.非风险点
  • C.权衡点
  • D.风险点

2.系统移植也是系统构建的一种实现方法,在移植工作中,()需要最终确定移植方法。答案与解析

  • A.计划阶段
  • B.准备阶段
  • C.转换阶段
  • D.验证阶段

3.在单元测试中,()答案与解析

  • A.驱动模块用来调用被测模块,自顶向下的单元测试中不需要另外编写驱动模块
  • B.桩模块用来模拟被测模块所调用的子模块,自顶向下的单元测试中不需要另外编写桩模块
  • C.驱动模块用来模拟被测模块所调用的子模块,自底向上的单元测试中不需要另外编写驱动模块
  • D.桩模块用来调用被测模块,自底向上的单元测试中不需要另外编写桩模块

4.某公司采用基于架构的软件设计(Architecture-Based Sofware Design,ABSD)方法进行软件设计与开发。ABSD方法有三个基础,分别是对系统进行功能分解、采用()实现质量属性与商业需求、采用软件模板设计软件结构。
ABSD方法主要包括架构需求等6个主要活动,其中()活动的目标是标识潜在的风险,及早发现架构设计中的缺陷和错误;()活动针对用户的需求变化,修改应用架构,满足新的需求。
小王是该公司的一位新任架构师,在某项目中主要负责架构文档化方面的工作。小王()的做法不符合架构文档化的原则。架构文档化的主要输出结果是架构规格说明书和()答案与解析
问题1

  • A.架构风格
  • B.设计模式
  • C.架构策略
  • D.架构描述

问题2

  • A.架构设计
  • B.架构实现
  • C.架构复审
  • D.架构演化

问题3

  • A.架构设计
  • B.架构实现
  • C.架构复审
  • D.架构演化

问题4

  • A.从使用者的角度书写文档
  • B.随时保证文档都是最新的
  • C.将文档分发给相关人员
  • D.针对不同背景的人员书写文档的方式不同

问题5

  • A.架构需求说明书
  • B.架构实现说明书
  • C.架构质量说明书
  • D.架构评审说明书

5.基于场景的架构分析方法(Scenarios-based Architecture Analysis Method,SAAM)是卡耐基梅隆大学软件工程研究所的Kazman等人于1983年提出的一种非功能质量属性的架构分析方法,是最早形成文档并得到广泛应用的软件架构分析方法。SAAM的主要输入是问题描述、( )和架构描述文档,其分析过程主要包括场景开发、()、单个场景评估、场景交互和总体评估。答案与解析
问题1

  • A.问题说明
  • B.问题建模
  • C.需求说明
  • D.需求建模

问题2

  • A.架构需求
  • B.架构描述
  • C.架构设计
  • D.架构实现

6.()描述了一类软件架构的特征,它独立于实际问题,强调软件系统中通用的组织结构选择。垃圾回收机制是Java语言管理内存资源时常用的一种()。答案与解析
问题1

  • A.架构风格
  • B.开发方法
  • C.设计模式
  • D.分析模式

问题2

  • A.架构风格
  • B.开发方法
  • C.设计模式
  • D.分析模式

7.某磁盘磁头从一个磁道移至另一个磁道需要10ms。文件在磁盘上非连续存放,逻辑上相邻教据块的平均移动距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和2ms,则读取一个100块的文件需要()ms的时间。答案与解析

  • A.10200
  • B.11000
  • C.11200
  • D.20200

8.软件的架构设计是随着技术的不断进步而不断变化的。以编译器为例,其主流架构经历了管道-过滤器到数据共享为中心的转变过程。以下关于编译器架构的叙述中,错误的是()。答案与解析

  • A.早期的编译器采用管道一过滤器架构风格,以文本形式输入的代码被逐步转化为各种形式,最终生成可执行代码
  • B.早期的编译器采用管道一过滤器架构风格,并且大多数编译器在词法分析时创造独立的符号表,在其后的阶段会不断修改符号表,因此符号表并不是程序数据的一部分
  • C.现代的编译器采用以数据共享为中心的架构风格,主要关心编译过程中程序的中间表示
  • D.现代的编译器采用以数据共享为中心的架构风格,但由于分析树是在语法分析阶段结束后才产生作为语义分析的输入,因此分析树不是数据中心的共享数据

9.软件开发过程模型中,()主要由原型开发阶段和目标软件开发阶段构成。答案与解析

  • A.原型模型
  • B.瀑布模型
  • C.螺旋模型
  • D.基于构件的模型

解析


1.答案:AC
敏感点和权衝点是关键的架构决策。敏感点是一个或多个构件(和/或构件之间的关系)的特性。研究敏感点可使设计人员或分析员明确在搞清楚如何实现质量目标时应注意什么。权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。例如,改变加密级别可能会对安全性和性能产生非常重要的影响。提高加密级别可以提高安全性,但可能要耗费更多的处理时间,影响系统性能。如果某个机密消息的处理有严格的时间延迟要求,则加密级别可能就会成为一个权衡点。


2.答案:A
移植工作大体上分为计划阶段、准备阶段、转换阶段、测试阶段、验证阶段。
1、计划阶段,在计划阶段,要进行现有系统的调音整理,从移植技术、系统内容(是否进行系统提炼等)、系统运行三个方面,探讨如何转换成新系统,决定移植方法,确立移工作体制及移植日程。
2、准备阶段,在准备阶段要进行移植方面的研究,准备转换所需的资料。该阶段的作业质量将对以后的生产效率亡生很大的影响。
3、转换阶段,这一阶段是将程序设计和数据转换成新机器能根据需要工作的阶段。提高转换工作的精度,减轻下一阶段的测试负担是提高移植工作效率的基本内容。
4、测试阶段,这一阶段是进行程序单元、工作单元测试的阶段。在本阶段要核实程序能否在新系统中准确地工作。所以,当有不能准确工作的程序时,就要回到转换阶段重新工作。
5、验证阶段,这是测试完的程序使新系统工作,最后核实系统,准备正式运行的阶段。


3.答案:A
驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。
桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。主模块作为驱动模块,与之直接相连的模块用桩模块代替。在集成测试前要为被测模块编制一些模拟其下级模块功能的"替身”模块,以代替被测模块的接口,接收或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。


4.答案:ACDBC
ABSD方法有3个基础。第一个基础是功能的分解。在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术。第二个基础是通过选择体系结构风格来实现质量和业务需求。第三个基础是软件模板的使用。软件模板利用
了一些软件系统的结构。ABSDM模型把整个基于体系结构的软件过程划分为体系结构需求、设计、文档化、复审、实现、演化等六个子过程。
架构需求:需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。架构需求受技术环境和架构设计师的经验影响。需求过程主要是获取用户需求,标识系统中所要用到的构件。如果以前有类似的系统架构的需求,我们可以从需求库中取出,加以利用和修改,以节省需求获取的时间,减少重复劳动,提高开发效率。架构设计:架构需求用来激发和调整设计决策,不同的视图被用来表达与质量目标有关的信息。架构设计是一个迭代过程,如果要开发的系统能够从已有的系统中导出大部分,则可以使用已有系统的设计过程。架构文档化:绝大多数的架构都是抽象的,由一些概念上的构件组成。例如,层的概念在任何程序设计语言中都不存在。因此,要让系统分析师和程序员去实现架构,还必须得把架构进行文档化。文档是在系统演化的每一个阶段,系统设计与开发人员的通讯媒介,是为验证架构设计和提炼或修改这些设计(必要时)所执行预先分析的基础。架构文档化过程的主要输出结果是架构需求规格说明和测试架构需求的质量设计说明书这两个文档。生成需求模型构件的精确的形式化的描述,作为用户和开发者之间的一个协约。软件架构的文档要求与软件开发项目中的其他文档是类似的。文档的完整性和质量是软件架构成功的关键因素。软件架构文档应该从使用者的角度进行书写,针对不同背景的人员采用不同的书写方式,并将文档分发给相关人员。架构文档要保持较新,但不要随时保证文档最新,要保持文档的稳定性。
架构复审:架构设计、文档化和复审是一个选代过程。从这个方面来说,在一个主版本的软件架构分析之后,要安排一次由外部人员(用户代表和领域专家)参加的复审。复审的目的是标识潜在的风险,及早发现架构设计中的缺陷和错误,包括架构能否满足需求、质量需求是否在设计中得到体现、层次是否清晰、构件的划分是否合理、文档表达是否明确、构件的设计是否满足功能与性能的要求等等。,由外部人员进行复审的目的是保证架构的设计能够公正地进行检验,使组织的管理者能够决定正式实现架构。架构实现:所谓“实现”就是要用实体来显示出一个软件架构,即要符合架构所描述的结构性设计决策,分割成规定的构件,按规走方式互相交互。
架构演化:在构件开发过程中,最终用户的需求可能还有变动。在软件开发完毕,正常运行后,由一个单位移植到另一个单位,需求也会发生变化。在这两种情况下,就必须相应地修改软件架构,以适应新的变化了的软件需求。


5.答案:CB


6.答案:AC
架构风格往往是从全局的角度来考虑问题,他是一种独立于实际问题的通用组织结构。例如,常用的B/S架构,在很多不同的系统中,都有应用。而设计模式着眼于解决某一特定的局部问题,是一种局部解决方案的应用。例如,在很多的软件系统中,创建对条时,希望有统一的机制对这些对象的创建进行管理,所以出现了工厂模式,创建者模式等设计模式。而内存垃圾的回收机制也做成了一种设计模式。


7.答案:D
根据题目描述,读取一个连续数据需要的时间包括磁道移动时间、旋转延迟时间和传输时间三个部分,总时间花费为(10x10)+100+2=202ms,因此读取一个100的块文件需要的时间为202x100=20200ms。


8.答案:D
软件的架构设计是随着技术的不断进步而不断变化的。以编译器为例,其主流架构经历了管道-过滤器到数据共享为中心的转变过程。早期的编译器采用管道-过滤器架构风格,以文本形式输入的代码被逐步转化为各种形式,最终生成可执行代码。早期的编译器采用管道-过滤器架构风格,并且大多数编译器在词法分析时创造独立的符号表,在其后的阶段会不断修改符号表,因此符号表并不是程序数据的一部分。现代的编译器采用以数据共享为中心的架构风格,主要关心编译过程中程序的中间表示。现代的编译器采用以数据共享为中心的架构风格,分析树是在语法分析阶段结束后才产生作为语义分析的输入,分析树是数据中心中重要的共享数据,为后续的语义分析提供了帮助。


9.答案:A

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒人w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值