第1题:
试题(45)
软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。以下关于软件架构设计活动的描述,错误的是 (45) 。
(45)
A. 在建立软件架构的初期,一般需要选择一个合适的架构风格
B. 将架构分析阶段已标识的构件映射到架构中,并分析这些构件之间的关系
C. 软件架构设计活动将已标识构件集成到软件架构中,设计并实现这些构件
D. 一旦得到了详细的软件架构设计,需要邀请独立于系统开发的外部人员对系统进行评审
第2题:
阅读以下关于软件架构风格的说明,在答题纸上回答问题1和问题2。 【说明】 某软件公司为其新推出的字处理软件设计了一种脚本语言,专门用于开发该字处理软件的附加功能插件。为了提高该语言的编程效率,公司组织软件工具开发部门为脚本语言研制一套集成开发环境。软件工具开发部门根据字处理软件的特点,对集成开发环境进行了需求分析,总结出以下3项核心需求: (1)集成开发环境需要提供对脚本语言的编辑、语法检查、解释、执行和调试等功能的支持,并要实现各种功能的灵活组合、配置与替换。 (2)集成开发环境需要提供一组可视化的编程界面,用户通过对界面元素拖拽和代码填充的方式就可以完成功能插件核心业务流程的编写与组织。 (3)在代码调试功能方面,集成开发环境需要实现在脚本语言编辑界面中的代码自动定位功能。具体来说,在调试过程中,编辑界面需要响应调试断点命中事件,并自动跳转到当前断点处所对应的代码。 针对上述需求,软件工具开发部门对集成开发环境的架构进行分析与设计,王工认为该集成开发环境应该采用管道-过滤器的架构风格实现,李工则认为该集成开发环境应该采用以数据存储为中心的架构风格来实现。公司组织专家对王工和李工的方案进行了评审,最终采用了李工的方案。
【问题1】(12分) 请用200字以内的文字解释什么是软件架构风格,并从集成开发环境与用户的交互方式、集成开发环境的扩展性、集成开发环境的数据管理三个方面说明为什么最终采用了李工的设计方案。 【问题2】(13分) 在对软件系统架构进行设计时,要对架构需求进行分析,针对特定需求选择最为合适的架构风格,因此实际的软件系统通常会混合多种软件架构风格。请对核心需求进行分析,说明为了满足需求(2)和(3),分别应采用何种架构风格,并概要说明采用相应架构风格后的架构设计过程。
【问题1】
软件架构风格是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
从集成开发环境与用户的交互方式看,用户通常采用交互式的方式对脚本语言进行编辑、解释执行与调试。在这种情况下,采用以数据存储为中心的架构风格能够很好地支持交互式数据处理,而管道-过滤器架构风格则对用户的交互式数据处理支持有限。
从集成开发环境的扩展性来看,系统核心需求要求实现各种编辑、语法检查、解释执行等多种功能的灵活组织、配置与替换。在这种情况下,采用以数据存储为中心的架构风格,以数据格式解耦各种功能之间的依赖关系,并可以灵活定义功能之间的逻辑顺序。管道-过滤器架构风格同样以数据格式解耦数据处理过程之间的依赖关系,但其在数据处理逻辑关系的灵活定义方面较差。
从集成开发环境的数据管理来看,集成开发环境需要支持脚本语言、语法树(用于检查语法错误)、可视化模型、调试信息等多种数据类型,并需要支持数据格式的转换。以数据存储为中心的架构将数据存储在统一的中心存储器中,中心存储器能够表示多种数据格式,并能够为数据格式转换提供各种支持。管道-过滤器架构风格通常只能支持有限度的数据格式,并且在数据格式转换方面的灵活性较差。
【问题2】
为了满足需求(2),应该采用解释器架构风格。具体来说,需要:① 为可视化编程元素及其拖拽关系定义某种语言,并描述其语法与语义;② 编写解释器对该语言进行解释;③ 生成对应的脚本语言程序。
为了满足需求(3),应该采用隐式调用架构风格。具体来说,首先需要定义“断点在调试过程中命中”这一事件,并实现当断点命中后的屏幕定位函数。集成开发环境维护一个事件注册表结构,将该事件与屏幕定位函数关联起来形成注册表中的一个记录项。在调试过程中,集成开发环境负责监听各种事件,当“断点在调试过程中命中”这一事件发生时,集成开发环境查找事件注册表,找到并调用屏幕定位函数,从而实现脚本语言编辑界面与调试代码的自动定位。
第3题:
● 某软件公司欲实现一个数据处理软件,该软件需要从网络接收一组复杂的数据,然后分步进行解析和处理。在这种情况下,采用 (34) 的体系结构风格比较适合。
(34)
A. 远程过程调用
B. 层次化
C. 管道/过滤器
D. 共享数据
第4题:
某公司采用基于架构的软件设计(Architecture-Based Software Design,ABSD)方法进行软件设计与开发。ABSD方法有三个基础,分别是对系统进行功能分解、采用(52)实现质量属性与商业需求、采用软件模板设计软件结构。 ABSD方法主要包括架构需求等6个主要活动,其中(53)活动的目标是标识潜在的风险,及早发现架构设计中的缺陷和错误;(54)活动针对用户的需求变化,修改应用架构,满足新的需求。 小王是该公司的一位新任架构师,在某项目中主要负责架构文档化方面的工作。小王(55)的做法不符合架构文档化的原则。架构文档化的主要输出结果是架构规格说明书和(56)。
A.架构风格
B.设计模式
C.架构策略
D.架构描述
第5题:
阅读以下软件系统架构选择的问题。
某公司欲开发一个车辆定速巡航控制系统,以确保车辆在不断变化的地形中以固定的速度行驶。该系统的简化示意图如下图所示。各种系统输入的含义见下表。
定速巡航控制系统输入说明
公司的领域专家对需求进行深入分析后,将系统需求认定为:任何时刻,只要定速巡航控制系统处于工作状态,就要有确定的期望速度,并通过调整引擎油门的设定值来维持期望速度。
在对车辆定速巡航控制系统的架构进行设计时,公司的架构师王工提出采用面向对象的架构风格,而李工则主张采用控制环路的架构风格。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了面向对象和控制环路相结合的混合架构风格。
[问题1]
在实际的软件项目开发中,采用成熟的架构风格是项目成功的保证。请用200字以内的文字说明:什么是软件架构风格:面向对象和控制环路两种架构风格各自的特点。
[问题2]
用户需求没有明确给出该系统如何根据输入集合计算输出。请用300字以内的文字针对该系统的增减速功能,分别给出两种架构风格中的主要构件,并详细描述计算过程。
[问题3]
实际的软件系统架构通常是多种架构风格的混合,不同的架构风格都有其适合的应用场景。以该系统为例,针对面向对象架构风格和控制环路架构风格,各给出两个适合的应用场景,并简要说明理由。
第6题:
● 某软件开发公司负责开发一个 Web 服务器服务端处理软件,其核心部分是对客户端请求消息的解析与处理,包括 HTTP 报头分离、SOAP 报文解析等功能。该公司的架构师决定采用成熟的架构风格指导整个软件的设计,以下 (53) 架构风格,最适合该服务端处理软件。
(53)
A. 虚拟机
B. 管道-过滤器
C. 黑板结构
D. 分层结构
第7题:
采用以架构为核心的软件开发方法,在建立软件架构的初期,首要任务是选择一个合适的( ),在此基础上,开发人员通过架构模型,可以获得关于( )的理解,为将来的架构实现与演化过程建立了目标。
A.分析模式 B.设计模式 C.架构风格 D.架构标准 A.架构需求 B.架构属性 C.架构优先级 D.架构约束
第8题:
试题(44)
软件架构是降低成本、改进质量、按时和按需交付产品的关键因素。以下关于软件架构的描述,错误的是 (44) 。
(44)
A. 根据用户需求,能够确定一个最佳的软件架构,指导整个软件的开发过程
B. 软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等
C. 软件架构设计需要确定组件之间的依赖关系,支持项目计划和管理活动
D. 软件架构能够指导设计人员和实现人员的工作
第9题:
形成Web Service架构基础的协议主要包括(33) 。
A.SOAP、HTTP、UDbDI
B.WSDL、SOAP、DHCP
C.SOAP、DHCP、WSDL
D.WSDL、SOAP、UDDI
第10题:
以下关于软件架构风格与系统性能的关系叙述中,错误的是( )。
A.对于采用层次化架构风格的系统,划分的层次越多,系统的性能越差 B.对于采用隐式调用架构风格的系统,可以通过处理函数的并发调用提高系统处理性能 C.采用面向对象架构风格的系统,可以通过引入对象管理层提高系统性能 D.对于采用解释器架构风格的系统,可以通过部分解释代码预先编译的方式提高系统性能