【问题1】(10分)请用300字以内的文字解释什么是MVC架构风格以及其中的组件交互关系,并根据题干描述,指出该系统中的M、V、C分别对应什么。【问题2】(15分)扩展接口模式结构通常包含四个角色:基础接口、组件、扩展接口和客户端,它们之间的关系如图1-1所示。图1-1 扩展接口模式角色关系其中每个扩展接口需要通过扩展基础接口获得基本操作能力,然后加入自己特有的操作接口,并通过设置全局唯一接口ID对自身接口进行标识;每个具体的组件需要实现扩展接口完成实际操作;客户端不与组件直接交互,而需要通过与扩展接口交

题目

【问题1】(10分)

请用300字以内的文字解释什么是MVC架构风格以及其中的组件交互关系,并根据题干描述,指出该系统中的M、V、C分别对应什么。

【问题2】(15分)

扩展接口模式结构通常包含四个角色:基础接口、组件、扩展接口和客户端,它们之间的关系如图1-1所示。

图1-1 扩展接口模式角色关系

其中每个扩展接口需要通过扩展基础接口获得基本操作能力,然后加入自己特有的操作接口,并通过设置全局唯一接口ID对自身接口进行标识;每个具体的组件需要实现扩展接口完成实际操作;客户端不与组件直接交互,而需要通过与扩展接口交互提出调用请求,扩展接口根据请求查找并选择合适的实现组件响应客户端请求。请根据上图所示和题干描述,指出扩展接口模式结构中的四个角色分别对应网络设备管理系统的哪些部分;并以客户端发起调用操作这一场景为例,填写表1-1中的(1)~(5)。


相似考题
参考答案和解析

正确答案:
问题1:MVC架构风格:用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
MVC架构将整个软件系统划分为模型、视图和控制器3个部分。模型负责维护并保存具有持久性的业务数据,实现业务处理功能,并将业务数据的变化情况及时通知视图;视图负责呈现模型中包含的业务数据,响应模型变化通知,更新呈现形式,并向控制器传递用户的界面动作;控制器负责将用户的界面动作映射为模型中的业务处理功能并实际调用之,然后根据模型返回的业务处理结果选择新的视图。
在本题中:
M:监控组件V:控制终端C:管理模块。
问题2:
基础接口:统一操作接口;
组件:监控组件
扩展接口:新网络设备的操作接口
客户端:控制终端
(1)扩展接口
(2)组件
(3)操作接口
(4)接口ID
(5)扩展接口

更多“【问题1】(10分)请用300字以内的文字解释什么是MVC架构风格以及其中的组件交互关系,并根据题干描述 ”相关问题
  • 第1题:

    阅读以下关于软件架构风格的说明,在答题纸上回答问题1和问题2。 【说明】 某软件公司为其新推出的字处理软件设计了一种脚本语言,专门用于开发该字处理软件的附加功能插件。为了提高该语言的编程效率,公司组织软件工具开发部门为脚本语言研制一套集成开发环境。软件工具开发部门根据字处理软件的特点,对集成开发环境进行了需求分析,总结出以下3项核心需求: (1)集成开发环境需要提供对脚本语言的编辑、语法检查、解释、执行和调试等功能的支持,并要实现各种功能的灵活组合、配置与替换。 (2)集成开发环境需要提供一组可视化的编程界面,用户通过对界面元素拖拽和代码填充的方式就可以完成功能插件核心业务流程的编写与组织。 (3)在代码调试功能方面,集成开发环境需要实现在脚本语言编辑界面中的代码自动定位功能。具体来说,在调试过程中,编辑界面需要响应调试断点命中事件,并自动跳转到当前断点处所对应的代码。 针对上述需求,软件工具开发部门对集成开发环境的架构进行分析与设计,王工认为该集成开发环境应该采用管道-过滤器的架构风格实现,李工则认为该集成开发环境应该采用以数据存储为中心的架构风格来实现。公司组织专家对王工和李工的方案进行了评审,最终采用了李工的方案。

    【问题1】(12分) 请用200字以内的文字解释什么是软件架构风格,并从集成开发环境与用户的交互方式、集成开发环境的扩展性、集成开发环境的数据管理三个方面说明为什么最终采用了李工的设计方案。 【问题2】(13分) 在对软件系统架构进行设计时,要对架构需求进行分析,针对特定需求选择最为合适的架构风格,因此实际的软件系统通常会混合多种软件架构风格。请对核心需求进行分析,说明为了满足需求(2)和(3),分别应采用何种架构风格,并概要说明采用相应架构风格后的架构设计过程。


    正确答案:

    【问题1
    软件架构风格是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
    从集成开发环境与用户的交互方式看,用户通常采用交互式的方式对脚本语言进行编辑、解释执行与调试。在这种情况下,采用以数据存储为中心的架构风格能够很好地支持交互式数据处理,而管道-过滤器架构风格则对用户的交互式数据处理支持有限。
    从集成开发环境的扩展性来看,系统核心需求要求实现各种编辑、语法检查、解释执行等多种功能的灵活组织、配置与替换。在这种情况下,采用以数据存储为中心的架构风格,以数据格式解耦各种功能之间的依赖关系,并可以灵活定义功能之间的逻辑顺序。管道-过滤器架构风格同样以数据格式解耦数据处理过程之间的依赖关系,但其在数据处理逻辑关系的灵活定义方面较差。
    从集成开发环境的数据管理来看,集成开发环境需要支持脚本语言、语法树(用于检查语法错误)、可视化模型、调试信息等多种数据类型,并需要支持数据格式的转换。以数据存储为中心的架构将数据存储在统一的中心存储器中,中心存储器能够表示多种数据格式,并能够为数据格式转换提供各种支持。管道-过滤器架构风格通常只能支持有限度的数据格式,并且在数据格式转换方面的灵活性较差。
    问题2
    为了满足需求(2),应该采用解释器架构风格。具体来说,需要:① 为可视化编程元素及其拖拽关系定义某种语言,并描述其语法与语义;② 编写解释器对该语言进行解释;③ 生成对应的脚本语言程序。
    为了满足需求(3),应该采用隐式调用架构风格。具体来说,首先需要定义“断点在调试过程中命中”这一事件,并实现当断点命中后的屏幕定位函数。集成开发环境维护一个事件注册表结构,将该事件与屏幕定位函数关联起来形成注册表中的一个记录项。在调试过程中,集成开发环境负责监听各种事件,当“断点在调试过程中命中”这一事件发生时,集成开发环境查找事件注册表,找到并调用屏幕定位函数,从而实现脚本语言编辑界面与调试代码的自动定位。


  • 第2题:

    阅读以下说明,回答问题1、问题2和问题3。

    【说明】

    某单位正在使用一套C/S模式的应用软件系统,现在需要升级为B/S应用模式,但需要保持业务的连续性。开发人员提出用Web Service作为中间层的接口进行开发。

    【问题1】

    请用120字以内文字,从业务的继承性、升级成本(时间、工作量)和扩展性三个方面简要说明开发人员所提方案的优点。

    【问题2】

    Web Service的三个基本技术是WSDL、SOAP、UDDI,它们都是以XML为基础定义的。请用120字以内文字,简要说明WSDL、SOAP和UDDI的作用。

    【问题3】

    服务注册中心、服务提供者和服务请求者之间的交互和操作构成了Web Service的体系结构,如图13-21所示。请用180字以内文字,说明这三者的主要功能及其交互过程。


    正确答案:[问题1] 由于Web Service具有支持软件和数据重用、集成方便、支持对别人的服务拿来就用等特性升级开发人员不必重新设计业务流程只需将Web Service作为中间层的接口进行开发即可从而较好地保持了业务的连续性也大大减少了工作量并减低了升级成本也不必修改原来的Web服务及中间层易于扩展且扩展空间也较大。 [问题2] SOAP提供了标准的RPC方法来调用Web Service协议定义了服务请求者和服务提供者之间的消息传输规范。 WSDL为服务提供者提供了用XML格式描述Web Service的标准格式。 UDDI提供了一种机制让Web服务提供商发布他们的产品并最终让他们的客户能定位他们所提供的Web服务。 [问题3] 服务提供者使用WSDL来定义抽象的服务描述然后把具体的服务发布到服务注册中心;服务请求者使用查找(Find)操作从服务注册中心检索服务描述然后使用服务描述与服务提供者进行绑定(Bind)并调用Web Service实现访问。服务注册中心是连接服务提供者和服务请求者的桥梁与纽带。
    [问题1] 由于Web Service具有支持软件和数据重用、集成方便、支持对别人的服务拿来就用等特性,升级开发人员不必重新设计业务流程,只需将Web Service作为中间层的接口进行开发即可,从而较好地保持了业务的连续性,也大大减少了工作量并减低了升级成本,也不必修改原来的Web服务及中间层,易于扩展且扩展空间也较大。 [问题2] SOAP提供了标准的RPC方法来调用Web Service协议,定义了服务请求者和服务提供者之间的消息传输规范。 WSDL为服务提供者提供了用XML格式描述Web Service的标准格式。 UDDI提供了一种机制让Web服务提供商发布他们的产品,并最终让他们的客户能定位他们所提供的Web服务。 [问题3] 服务提供者使用WSDL来定义抽象的服务描述,然后把具体的服务发布到服务注册中心;服务请求者使用查找(Find)操作从服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑定(Bind),并调用Web Service实现访问。服务注册中心是连接服务提供者和服务请求者的桥梁与纽带。 解析:Web Service是一套标准,它定义了应用程序如何在Web上实现互操作性,支持用不同的语言(如VB、Java等)在不同的平台上(如Windows、UNIX、Linux等)编写Web Service,而后通过Web Service的标准对外发布服务,其他用户或应用也通过Web Service的标准来对这些服务进行查询和后续的访问调用。
    Web Service由SOAP(简单对象访问协议)、WSDL(服务描述语言)、UDDI(服务注册检索访问标准)三个协议有力地支持和实现:
    (1)SOAP:简单对象访问协议(Simple Object Access Protocol,SOAP)提供了标准的 RPC方法来调用Web Service协议,定义了服务请求者和服务提供者之间的消息传输规范。SOAP用XML来格式化消息,用HTTP来承载消息,它有很大的可扩展性和平台语言无关性,在各种平台上很容易实现。
    (2)WSDL:服务描述语言(Web Service Description Language,WSDL)为服务提供者提供了用XMI。格式描述Web Services的标准格式,以表达一个Web Service能提供什么功能,它的位置在哪里,如何调用它等。
    (3)UDDI:服务注册检索访问标准(Universal Discovery,Description,Integration, UDDl)提供了一种机制让Web服务提供商发布他们的产品,并最终让他们的客户能定位他们所提供的Web服务。其核心组件是UDDI商业注册,它利用WSDL语言来描述企业及其提供的Web服务。
    Web Service通过服务的建立、描述、发布、查找、调用等步骤来实现不同平台间服务的分布调用,具体描述如下:
    (1)Web服务的建立(Build):可用不同的语言在不同的平台上开发Web服务。
    (2)Web服务的描述(Description):Web服务开发出来后,用WSDL的标准来服务请求和响应的参数格式及其他协议相关的描述。
    (3)Web服务的发布(Publish):为了使服务可访问,服务提供者需要首先将服务进行一定的描述并发布到注册服务器上。
    (4)Web服务的查找(Find):服务请求方根据注册服务器提供的规范接口发出查询请求,以获取绑定服务所需的相关信息。
    (5)Web服务的调用(Bind):服务请求方通过分析从注册服务器中得到的服务绑定信息,包括服务的访问路径、服务调用的参数、返回结果、传输协议、安全要求等,对自己的系统进行相应配置,进而远程调用服务提供者所提供的服务。
    图13-52描述了服务请求者、服务提供者、服务注册中心这三者的交互过程。

    Web Service的主要目标是跨平台,创建可互操作的分布式应用程序。为了达到这一目标,Web Service完全基于XML、XSD等独立于平台、独立于软件供应商的标准,主要适用于企业内部不同应用的集成和数据交互、B2B集成、代码和数据重用,以及通过Web进行客户端和服务器的通信的场合。
    Web Service允许用户在重用代码的同时,重用代码后面的数据。使用Web Service时,用户不用再像以前那样,要先从第三方购买、安装软件组件,再从应用程序中调用这些组件,而只需要直接调用远端的Web Service就可以了。举个例子,如果想在应用程序中确认用户输入的邮件地址,那么只需把这个地址直接发送给相应的Web Service,这个 Web Service就会查阅街道地址、城市、省区和邮政编码等信息,确认这个地址的确在相应的邮政编码区域。Web Service的提供商可以按时间或使用次数对这项服务进行收费。这样的服务要通过组件重用来实现是不现实的,因为那样的话,必须下载并安装好包含街道地址、城市、省区和邮政编码等信息的数据库,而且这个数据库还是不能实时更新的。另一种软件重用的情况是,把好几个应用程序的功能集成起来。例如,想要建立一个局域网上的门户站点应用,让用户既可以查看股市行情,又可以管理他们的日程安排,还可以购买电影票。现在Web上有很多应用程序供应商,都在其应用中实现了上面的这些功能。一旦他们把这些功能都通过Web Service发布出来,就可以非常轻易地把所有这些功能都集成到门户站点中,为用户提供一个统一的、友好的界面。
    可见,因为Web Service具有上述特性,所以使用它会较好地保持业务的连续性,也正因为Web Service具有软件重用、支持对别人的服务拿来就用等特性,使得升级的工作量比单独开发要少得多、成本也低得多,不但易于扩展而且扩展空间也比较大。

  • 第3题:

    请用200字以内文字说明使用CGI 存在的主要问题及其原因,并给出两种替代CGI 的技术。


    正确答案:[答案要点] 使用CGI 存在的主要问题及其原因: .安全性差、可移植性差。CGI 接口不支持用户与数据库间的持续互操作。 .CGI 的效率低且需要同时运行多个CGI 程序。用户每次连接至服务器时服务器都要创建一个事务或者运行CGI 程序的一个副本。 替代技术有JSP、ASP、Servelet 或PHP。
    [答案要点] 使用CGI 存在的主要问题及其原因: .安全性差、可移植性差。CGI 接口不支持用户与数据库间的持续互操作。 .CGI 的效率低,且需要同时运行多个CGI 程序。用户每次连接至服务器时,服务器都要创建一个事务或者运行CGI 程序的一个副本。 替代技术有JSP、ASP、Servelet 或PHP。 解析:主要考查使用CGI 技术存在的主要问题及其原因,给出替代CGI 技术的方案。
    第二步:根据问题要点,仔细阅读正文,找出相应段落。
    1)题目中给出了企业现有系统的运行情况,包括:人员、设备、16个子系统等信息。从给出的信息来看,软件的配置、维护和升级工作量大。
    2)从给出的新OA 系统的体系结构来看,分析使用CGI 存在的主要问题。
    3)从给出的新OA 系统的访问控制方式要求,确定解决方案。
    4)从给出性能评估方法的说明中可以正确解答问题3。
    第三步:分析试题的内容,构思答案的要点。

  • 第4题:

    请用350字以内文字对解决此问题提出建议。


    正确答案:(1)对上海研发中心在软件设计中进行的变更进行评审最大可能地避免尚残留的或由此次修改带来的设计错误。 (2)成都研发中心以积极补台、密切配合的态度和科学方法准确测算需要重新编写的代码规模从而提出新的人员配置方案和进度计划尽可能缩短工期使最终交付给用户的产品延期最短且保证质量。 (3)上海总部应充分考虑成都方面的意见追加必要的经费支持确认最终完成编码和单元测试的日期。 (4)上海研发中心应采取有效措施缩短集成测试和系统测试时间并保证质量。 (5)T公司应组建或加强该项目的项目组加强上海研发中心与成都研发中心方面的协调以及与客户的沟通保证本项目后续任务顺利地完成并为今后T公司承接新项目探索经验。
    (1)对上海研发中心在软件设计中进行的变更进行评审,最大可能地避免尚残留的或由此次修改带来的设计错误。 (2)成都研发中心以积极补台、密切配合的态度和科学方法,准确测算需要重新编写的代码规模,从而提出新的人员配置方案和进度计划,尽可能缩短工期,使最终交付给用户的产品延期最短且保证质量。 (3)上海总部应充分考虑成都方面的意见,追加必要的经费支持,确认最终完成编码和单元测试的日期。 (4)上海研发中心应采取有效措施,缩短集成测试和系统测试时间并保证质量。 (5)T公司应组建或加强该项目的项目组,加强上海研发中心与成都研发中心方面的协调以及与客户的沟通,保证本项目后续任务顺利地完成,并为今后T公司承接新项目探索经验。 解析:针对问题,提出“良方”,使项目能够继续进行。
    第二步:根据问题要点,仔细阅读正文,找出相应段落。
    (1)本题共有五个角色,小张、老王、成都研发中心、上海研发中心和上海总部。
    (2)负责编码的小张发现上海方面设计的严重问题,老王却以做好本职工作为由将小张发现的问题压下。
    (3)因小张发现的问题没有解决,在测试时系统崩溃。
    (4)上海方面更改设计,但是成都方面重新编码需要追加经费,而且时间非常紧。
    (5)公司总部以客户不同意为由,拒绝成都方面追加经费和推迟完成时间。
    第三步:分析试题的内容,构思答案的要点。

  • 第5题:

    郭工程师设计的“部门”关系模式中存在什么问题?请用100字以内的文字简要说明理由。为了解决这个问题可将关系模式分解,请给出分解后的关系模式(分解后的关系模式的关系名可依次取“部门_A”、“部门_B”、……)。


    正确答案:郭工程师设计的“部门”关系模式中存在的主要问题是数据冗余因为部门关系模式属于2范式(或 2NF)。“部门”关系模式的基本函数依赖集F1为: F1={部门代码→(部门名起始年月终止年月)部门代码→办公室办公室→办公电话) 例如假设某个部门有10个办公室部门代码、部门名、起始年月、终止年月就要被重复10次。为了解决这个问题可将关系模式分解分解后的关系模式如下。 部门_A(部门代码部门名起始年月终止年月) 部门_B(部门代码办公室办公电话)
    郭工程师设计的“部门”关系模式中存在的主要问题是数据冗余,因为部门关系模式属于2范式(或 2NF)。“部门”关系模式的基本函数依赖集F1为: F1={部门代码→(部门名,起始年月,终止年月),部门代码→办公室,办公室→办公电话) 例如,假设某个部门有10个办公室,部门代码、部门名、起始年月、终止年月就要被重复10次。为了解决这个问题可将关系模式分解,分解后的关系模式如下。 部门_A(部门代码,部门名,起始年月,终止年月) 部门_B(部门代码,办公室,办公电话)

  • 第6题:

    X公司欲针对Linux操作系统开发一个KWIC(Key Word in Context)检索系统。该系统接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其它方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其它的方法实现这一功能。

    在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上,大家从系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。

    【问题1】在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用200字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。


    正确答案:
    本题是一道架构设计方面的试题,考查的内容是常见架构风格的选用。这就涉及到不同架构风格的优势、劣势、应用场合的比较分析。
    软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式(idiomatic paradigm)。架构风格定义了一个系统“家族”,即一个架构定义、一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而约束指出系统是如何将这些构件和连接件组合起来的。架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效地组织成一个完整的系统。
    Garlan和Shaw对通用软件架构风格进行了分类,他们将软件架构分为数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格。题目中的主程序-子程序架构风格属于调用/返回风格,管道-过滤器架构风格属于数据流风格。
    主程序/子程序。单线程控制,把问题划分为若干个处理步骤,构件即为主程序和子程序,子程序通常可合成为模块。过程调用作为交互机制,即充当连接件的角色。调用关系具有层次性,其语义逻辑表现为主程序的正确性取决于它调用的子程序的正确性。
    管道/过滤器。每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常是通过对输入数据流的变换或计算来完成的,包括通过计算和增加信息以丰富数据、通过浓缩和删除以精简数据、通过改变记录方式以转化数据和递增地转化数据等。这里的构件称为过滤器,连接件就是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。
    试题答案
    【问题1】(7分)
    软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。(1分)
    主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。(3分)
    管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。(3分)
    (以上答案,意思正确即可酌情给分)

  • 第7题:

    请用300字以内文字简要分析李工在软件测试的组织工作中存在什么问题,并简要叙述软件测试的一般步骤。


    正确答案:李工在组织工作中存在的问题: (1)测试工作必须由有资历的专职测试人员组成而不能由程序设计人员进行。 (2)测试中发现的问题须由程序设计人员修改修改后必须作回归测试。 (3)在软件测试之前必须制定测试计划规定测试的阶段(如单元测试、集成测试、系统测试等)确定测试人员的组成。 测试工作应如下进行: (1)成立一个或多个独立的测试小组。 (2)制定测试计划进行测试项目配置管理。 (3)设计测试用例。 (4)进行测试。 (5)确认问题并提出问题单。 (6)在程序设计人员修改完成后进行回归测试。 (7)编写测试报告并分析测试结果。
    李工在组织工作中存在的问题: (1)测试工作必须由有资历的专职测试人员组成,而不能由程序设计人员进行。 (2)测试中发现的问题须由程序设计人员修改,修改后必须作回归测试。 (3)在软件测试之前,必须制定测试计划,规定测试的阶段(如单元测试、集成测试、系统测试等),确定测试人员的组成。 测试工作应如下进行: (1)成立一个或多个独立的测试小组。 (2)制定测试计划,进行测试项目配置管理。 (3)设计测试用例。 (4)进行测试。 (5)确认问题并提出问题单。 (6)在程序设计人员修改完成后,进行回归测试。 (7)编写测试报告,并分析测试结果。 解析:分析测试的组织工作中存在的问题并给出测试的一般步骤。
    第二步:根据问题要点,仔细阅读正文,找出相应段落。
    (1)题目中给出了程序的代码总长度为18480行,甲、乙每天独立地测试同一个程序模块,发现的错误数在附表中给出,而且附表中还给出了甲、乙发现错误集合的交集中的错误数量(相同错误数)。
    (2)问题1指出,前四天测试的4个模块有代表性,即程序中其他模块的错误统计规律与这4个模块一致。
    (3)题目中说明测试小组成员由程序开发人员和用户代表组成,需要特别注意。
    (4)小李提出的测试方案中只涉及了模块测试。
    (5)小李认为通过改正每天测试中两个小组发现的共同错误,可以按线性速度减少程序中的错误数。
    第三步:分析试题的内容,构思答案的要点。

  • 第8题:

    请详细阅读以下关于网络设备管理系统架构设计的说明,回答下列问题。
    【说明】
    某软件公司欲开发一个网络设备管理系统,对管理区域内的网络设备(如路由器和交换机等)进行远程监视和控制。公司的系统分析师首先对系统进行了需求分析,识别出如下3项核心需求:
    (a)目前需要管理的网络设备确定为10类20种,未来还将有新类别的网络设备纳入到该设备管理系统中;
    (b)不同类别的网络设备,监视和控制的内容差异较大;同一类网络设备,监视和控制的内容相似,但不同厂商的实现方式(包括控制接口格式、编程语言等)差异较大;
    (c)网络管理员能够在一个统一的终端之上实现对这些网络设备的可视化呈现和管理操作。
    针对上述需求,公司研发部门的架构师对网络设备管理系统的架构进行了分析与设计,架构师王工认为该系统可以采用MVC架构风格实现,即对每种网络设备设计一个监控组件,组件通过调用网络设备厂商内置的编程接口对监控指令进行接收和处理;系统管理员通过管理模块向监控组件发送监控指令,对网络设备进行远程管理;网络状态、监控结果等信息会在控制终端上进行展示。针对不同网络设备的差异,王工认为可以对当前的20种网络设备接口进行调研与梳理,然后通过定义统一操作接口屏蔽设备差异。李工同意王工提出的MVC架构风格和定义统一操作接口的思路,但考虑到未来还会有新类别的网络设备接入,认为还需要采用扩展接口的方式支持系统开发人员扩展或修改现有操作接口。公司组织专家进行架构评审,最终同意了王工的方案和李工的改进意见。
    【问题1】
    请用300字以内的文字解释什么是MVC架构风格以及其中的组件交互关系,并根据题干描述,指出该系统中的M、V、C分别对应什么。【问题2】
    扩展接口模式结构通常包含四个角色:基础接口、组件、扩展接口和客户端,它们之间的关系如下图所示。其中每个扩展接口需要通过扩展基础接口获得基本操作能力,然后加入自己特有的操作接口,并通过设置全局唯一接口ID对自身接口进行标识。每个具体的组件需要实现扩展接口完成实际操作。客户端不与组件直接交互,而需要通过与扩展接口交互提出调用请求,扩展接口根据请求查找并选择合适的实现组件响应客户端请求。请根据下图所示和题干描述,指出扩展接口模式结构中的四个角色分别对应网络设备管理系统的哪些部分;并以客户端发起调用操作这一场景为例,填写表1中的(1)~(5)。



    答案:
    解析:
    MVC架构风格最初是Smalltalk-80中用来构建用户界面时采用的架构设计风格。其中M代表模型(Model),V代表视图(View),C代表控制器(Controller)。在该风格中,模型表示待展示的对象,视图表示模型的展示,控制器负责把用户的动作转成针对模型的操作。模型通过更新视图的数据来反映自身的变化。
    在本系统中,模型(M)代表监控组件、视图(V)代表控制终端、控制器(C)代表管理模块。
    答案:1.扩展接口 2.组件 3.操作接口 4.接口ID
    分析:各个角色与网络设备管理系统的对应关系为:
    基础接口对应统一操作接口; 组件对应监控组件; 扩展接口对应新网络设备的操作接口;客户端对应控制终端。

  • 第9题:

    请用150字以内的文字,分析问题发生的可能原因。


    正确答案: 销售部没有及时让软件开发部参与项目早期工作,需求分析耗时过长。 项目经理经验不足,进度估算不准确。
    项目资源配置不足,缺乏专门的系统分析和设计人员。 工作安排没有充分利用分配的项目资源,资源有闲置。 在安排进度时可能未考虑法定节假日的因素。

  • 第10题:

    请用300字以内的文字,说明配置管理的主要工作并作简要解释。


    正确答案: 此问主要考查对于配置管理过程的记忆和理解,考生应按照配置管理过程的框架,对配置管理过程及其所涉及的主要活动进行总结。
    (1)制定配置管理计划。确定方针,分配资源,明确职责,计划培训,确定干系人,制定配置识别准则,制定基线计划,制定配置库备份计划,制定变更控制规程,制定审批计划。
    (2)配置项识别。识别配置项,分配唯一标识,确定配置项特征,记录配置项进入时间,确定配置项拥有者职责,进行配置项登记管理。
    (3)建立配置管理系统。建立分级配置管理机制,存储和检索配置项,共享和转换配置项,进行归档、记录、保护和权限设置。
    (4)基线化。获得授权,建立或发布基线,形成文件,使基线可用。
    (5)建立配置库。建立动态库、受控库和静态库。
    (6)变更控制。包括变更的记录、分析、批准、实施、验证、沟通和存档。
    (7)配置状态统计。统计配置项的各种状态。
    (8)配置审计。包括功能配置审计和物理配置审计。

  • 第11题:

    单选题
    在MVC体系架构中,承担显示功能(VIEW层)的组件是()。
    A

    JSP

    B

    JavaBean

    C

    Servlet

    D

    JDBC


    正确答案: D
    解析: 暂无解析

  • 第12题:

    问答题
    请用300字以内的文字,说明配置管理的主要工作并作简要解释。

    正确答案: 此问主要考查对于配置管理过程的记忆和理解,考生应按照配置管理过程的框架,对配置管理过程及其所涉及的主要活动进行总结。
    (1)制定配置管理计划。确定方针,分配资源,明确职责,计划培训,确定干系人,制定配置识别准则,制定基线计划,制定配置库备份计划,制定变更控制规程,制定审批计划。
    (2)配置项识别。识别配置项,分配唯一标识,确定配置项特征,记录配置项进入时间,确定配置项拥有者职责,进行配置项登记管理。
    (3)建立配置管理系统。建立分级配置管理机制,存储和检索配置项,共享和转换配置项,进行归档、记录、保护和权限设置。
    (4)基线化。获得授权,建立或发布基线,形成文件,使基线可用。
    (5)建立配置库。建立动态库、受控库和静态库。
    (6)变更控制。包括变更的记录、分析、批准、实施、验证、沟通和存档。
    (7)配置状态统计。统计配置项的各种状态。
    (8)配置审计。包括功能配置审计和物理配置审计。
    解析: 暂无解析

  • 第13题:

    【问题3】(6分)

    表现层状态转换(REST)是面向资源架构的核心思想,请用200字以内的文字解释什么是REST,并指出在REST中将哪三种关注点进行分离。


    正确答案:
    REST从资源的角度来定义整个网络系统结构,分布在各处的资源由统一资源标识符(URI)确定,客户端应用程序通过URI获取资源的表现,并通过获得资源表现使得其状态发生改变。
    REST中将资源、资源的表现和获取资源的动作三者进行分离。

  • 第14题:

    根据图16-1,请用300字以内文字简要描述异步串口的数据传输过程。


    正确答案:
    解析:如图16-5所示的是在现有的嵌入式处理器上最常用的8位有效数据、无奇偶校验 (N)、1停止位(SN1)的异步串口数据帧格式。有了起始位和停止位,可以使接收端与发送端保持帧同步。一帧数据是从最低有效位开始传输的。同时,要传输的数据中的每个字节要求至少2位用于保证同步,因此,对于8N1的格式,同步的位数增加了超过20%的额外开销。奇偶校验指的是在有效数据帧传输完以后,接着再发送一个数据位,使有效数据帧中的各位数据加上此数据位的结果为奇数(或偶数)。
    异步传输的数据是以帧的方式传输的。每一帧有效数据前有一个起始位,帧结束于一个或多个停止位。也就是说,为了保证同步(不至于因为一个位的丢失引起整个串行总线的混乱),异步串口的数据由起始位和停止位分割成数据帧。通常,每帧数据只有5位、6位、7位或8位。传输线在逻辑1时处于空闲状态。当每帧数据开始传输时,先发送一个起始位。起始位是从逻辑1到逻辑0的迁移,这个变化表明一帧数据开始传输,接收端则在开始检测到起始位的时候,按照收发两端事先约定好的通信速度检测后面的数据位,从而组成一帧数据。在传输的最后,利用一个或多个停止位(逻辑1)使传输线回到空闲状态,然后发送方才可以发送下一个字节的数据。

  • 第15题:

    根据本项目中任务的时间性能参数,请用200字以内文字(也可用图示)描述任务的被调度关系,并分析系统是否可调度(暂不考虑操作系统的时间开销)。


    正确答案:1.任务的调度关系描述 (1)根据实时任务调度的小周期任务优先原则任务的优先级排列如下: (2)系统最小调度周期不能大于5ms。 (3)在5ms时间点到达时5ms任务可以终止低优先级任务处理机优先执行5ms的所有任务;当5ms任务完成或被阻塞可以执行其他低优先级任务;同样10ms任务可以终止40ms、50ms、1 000ms的任务;依次类推1 000ms的任务只能在处理机空闲时被执行。 (4)同周期任务的优先级可根据任务间的关系采用同等优先级也可采用不同优先级但是同周期最低优先级的任务其优先级不能低于其他大周期任务的优先级。 2.可调度性分析 (1)系统的最大周期为1 000ms其中5ms周期任务共执行200次、10ms周期任务共执行100次、40ms周期任务共执行25次、50ms周期任务共执行20次1 000ms周期任务共执行1次。 (2)在1 000ms最大周期内所有任务共需执行时间是: T=200*1+100*4+25*8+20*9+1*3=983ms 所有任务完成共需时间为983ms小于最大周期数因此系统是可调度的。
    1.任务的调度关系描述 (1)根据实时任务调度的小周期任务优先原则,任务的优先级排列如下: (2)系统最小调度周期不能大于5ms。 (3)在5ms时间点到达时,5ms任务可以终止低优先级任务,处理机优先执行5ms的所有任务;当5ms任务完成或被阻塞,可以执行其他低优先级任务;同样,10ms任务可以终止40ms、50ms、1 000ms的任务;依次类推,1 000ms的任务只能在处理机空闲时被执行。 (4)同周期任务的优先级可根据任务间的关系采用同等优先级,也可采用不同优先级,但是,同周期最低优先级的任务,其优先级不能低于其他大周期任务的优先级。 2.可调度性分析 (1)系统的最大周期为1 000ms,其中,5ms周期任务共执行200次、10ms周期任务共执行100次、40ms周期任务共执行25次、50ms周期任务共执行20次,1 000ms周期任务共执行1次。 (2)在1 000ms最大周期内,所有任务共需执行时间是: T=200*1+100*4+25*8+20*9+1*3=983ms 所有任务完成共需时间为983ms,小于最大周期数,因此,系统是可调度的。 解析:本问题中共有两个方面。其一是根据题目内容完成在操作系统控制下,对本项目算法设计的考虑;其二是完成可调度性分析。这两个方面的知识,是系统分析师必须具备的知识点,即分析问题的能力。

  • 第16题:

    根据你的网络工程经验,请用250字以内的文字简要描述该21层教学综合大楼网络层次结构的设计要点。(不要求画图)


    正确答案:①各楼层的信息点与各楼层交换机的连接构成该网络结构的接入层 ②各楼层交换机通过其上连端口与中间层交换机连接构成该网络结构的汇聚层 ③各汇聚层交换机通过其上连的光纤端口与该大楼核心交换机连接以及与图书馆机房中原核心交换机进行连接两台核心交换机通过光纤链路进行聚合连接从而构成该网络的核心层的连接成为该网络结构的核心层(答案类似即可)
    ①各楼层的信息点与各楼层交换机的连接构成该网络结构的接入层 ②各楼层交换机通过其上连端口与中间层交换机连接构成该网络结构的汇聚层 ③各汇聚层交换机通过其上连的光纤端口与该大楼核心交换机连接,以及与图书馆机房中原核心交换机进行连接,两台核心交换机通过光纤链路进行聚合连接从而构成该网络的核心层的连接成为该网络结构的核心层(答案类似即可) 解析:这是一道要求读者掌握大型校园网网络方案设计要点的简答题,本试题所涉及的知识点如下。
    ①通常从逻辑设计的角度来看,该21层教学综合大楼网络结构可分为接入层、汇聚层和核心层3个层次。
    ②各楼层的信息点与各楼层交换机的连接构成该网络的接入层。
    ③各楼层交换机通过其上连端口,与中间层交换机连接构成该网络的汇聚层。
    ④各汇聚层交换机通过其上连的光纤端口与该大楼核心交换机连接,以及与图书馆机房中原核心交换机进行连接;两台核心交换机通过光纤链路进行聚合连接从而构成该网络的核心层的连接构成该网络结构的核心层。

  • 第17题:

    阅读以下软件系统架构选择的问题。

    某公司欲开发一个车辆定速巡航控制系统,以确保车辆在不断变化的地形中以固定的速度行驶。该系统的简化示意图如下图所示。各种系统输入的含义见下表。

    定速巡航控制系统输入说明

    公司的领域专家对需求进行深入分析后,将系统需求认定为:任何时刻,只要定速巡航控制系统处于工作状态,就要有确定的期望速度,并通过调整引擎油门的设定值来维持期望速度。

    在对车辆定速巡航控制系统的架构进行设计时,公司的架构师王工提出采用面向对象的架构风格,而李工则主张采用控制环路的架构风格。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了面向对象和控制环路相结合的混合架构风格。

    [问题1]

    在实际的软件项目开发中,采用成熟的架构风格是项目成功的保证。请用200字以内的文字说明:什么是软件架构风格:面向对象和控制环路两种架构风格各自的特点。

    [问题2]

    用户需求没有明确给出该系统如何根据输入集合计算输出。请用300字以内的文字针对该系统的增减速功能,分别给出两种架构风格中的主要构件,并详细描述计算过程。

    [问题3]

    实际的软件系统架构通常是多种架构风格的混合,不同的架构风格都有其适合的应用场景。以该系统为例,针对面向对象架构风格和控制环路架构风格,各给出两个适合的应用场景,并简要说明理由。


    正确答案:[问题1] 软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。 面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象对象维扩自身表示的完整性对象之间通过消息机制进行通信对象交互时需要知道彼此的标识通过对象之间的协作完成计算过程。 控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件通过收集实际和理想的过程状态信息并能调整过程变量使得实际状态趋于理想状态。 [问题2] 对于系统的增减速功能采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等构件。 整个计算的主要过程是: (1) 司机进行增/减速操作设置期望速度该期望速度以消息的形式传递给速度计; (2) 速度计通过向车轮和时钟发送消息获取车轮转速和时钟值得到当前速度; (3) 速度计计算当前速度和期望速度的速度差值: (4) 该差值以消息的形式发送给油门油门通过速度差值调节自身状态; (5) 整个过程在时钟的控制下定期向速度计发送消息重复执行(2)~(4)。 控制环路的架构风格以控制器为核心期望速度、车轮脉冲、时钟和油门等作为构件。 具体的计算过程是: (1) 司机进行增/减速操作设置期望速度值; (2) 将设定值置为期望速度值: (3) 控制器采集车轮脉冲和时钟值计算出当前速度; (4) 比较期望速度和当前速度计算速度差值控制油门动作; (5) 反复执行(3)和(4)。 [问题3] 适合面向对象架构风格的应用场景: (1) 用户刹车立即退出巡航控制系统。理由:这是一个典型的事件驱动的场景适合于面向对象风格。 (2) 系统对突发事件的处理如某些部件失灵等。理由:当发生突发事件时系统会同时产生数据和事件这种情况用对象建模较为恰当。 适合面向控制环路架构风格的应用场景: (1) 在达到期望速度后系统维持恒定速度行驶。理由:这是一个典型的闭环控制的情景系统需要在外界情况不断发生变化的情况下进行调整使得系统状态尽可能接近期望状态。 (2) 用户改变期望速度后系统不断进行调整直至到达恒定速度。理由:这是一个闭环控制情景当用户设定期望速度值后系统需要在不断获取当前速度和外界条件的情况下对系统状态持续调整使得系统状态尽可能接近这个新的期望状态。
    [问题1] 软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。 面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维扩自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。 控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。 [问题2] 对于系统的增减速功能,采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等构件。 整个计算的主要过程是: (1) 司机进行增/减速操作设置期望速度,该期望速度以消息的形式传递给速度计; (2) 速度计通过向车轮和时钟发送消息获取车轮转速和时钟值,得到当前速度; (3) 速度计计算当前速度和期望速度的速度差值: (4) 该差值以消息的形式发送给油门,油门通过速度差值调节自身状态; (5) 整个过程在时钟的控制下定期向速度计发送消息,重复执行(2)~(4)。 控制环路的架构风格以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。 具体的计算过程是: (1) 司机进行增/减速操作设置期望速度值; (2) 将设定值置为期望速度值: (3) 控制器采集车轮脉冲和时钟值,计算出当前速度; (4) 比较期望速度和当前速度,计算速度差值,控制油门动作; (5) 反复执行(3)和(4)。 [问题3] 适合面向对象架构风格的应用场景: (1) 用户刹车,立即退出巡航控制系统。理由:这是一个典型的事件驱动的场景,适合于面向对象风格。 (2) 系统对突发事件的处理,如某些部件失灵等。理由:当发生突发事件时,系统会同时产生数据和事件,这种情况用对象建模较为恰当。 适合面向控制环路架构风格的应用场景: (1) 在达到期望速度后,系统维持恒定速度行驶。理由:这是一个典型的闭环控制的情景,系统需要在外界情况不断发生变化的情况下进行调整,使得系统状态尽可能接近期望状态。 (2) 用户改变期望速度后,系统不断进行调整,直至到达恒定速度。理由:这是一个闭环控制情景,当用户设定期望速度值后,系统需要在不断获取当前速度和外界条件的情况下对系统状态持续调整,使得系统状态尽可能接近这个新的期望状态。 解析:本题主要考查软件系统架构的比较与选择问题,即如何根据实际系统的要求选择合适的架构风格。
    [问题1]
    本问题主要考查软件架构风格的基本概念以及面向对象和控制环路两种常见架构风格的特点。根据卡内基.梅隆大学软件工程研究所等权威机构的定义,软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。
    面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维护自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。
    控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。
    [问题2]
    主要针对系统的增减速功能的要求设计两种风格的主要构件,在设计构件时需要注意符合两种架构风格的基本要求和约束。
    采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等对象。整个计算过程通过对象之间的合理交互完成期望的功能。
    控制环路的架构风格将以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。通过不断地反馈机制实现对系统的控制。
    [问题3]
    主要从应用场景的角度比较两种架构风格。面向对象系统比较适合事件驱动的场景,特别是离散突发事件的处理:而控制环路则适合连续事件的处理,比如维持恒定车速等。

  • 第18题:

    架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。ADL主要包括以下组成部分:组件、组件接口、( )和架构配置。

    A.架构风格 B.架构实现 C.连接件 D.组件约束


    正确答案:C

  • 第19题:

    试题一(共25分)

    阅读以下关于软件系统架构选择的说明,在答题纸上回答问题1至问题 3。

    【说明】

    某公司欲针对 Linux操作系统开发一个KWIC(Key Word in Context)检索系统。该系统接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其它方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其它的方法实现这一功能。

    在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上,大家从系统的算法变更、 功能变更、 数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。

    【问题 1】(7分)

    在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用 200 字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。

    【问题 2】(12分)

    请完成表1-1 中的空白部分(用+表示优、-表示差),对王工和李工提出的架构风格进行评价,并指出采用李工方案的原因。

    【问题 3】(6分)

    图1-1 是李工给出的架构设计示意图, 请将恰当的功能描述填入图中的(1)~(4)。


    正确答案:

    试题一分析
    【问题1】
    本题主要考查软件架构风格的定义,并考查对两种与本题相关的架构风格的定义。软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
    主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。
    管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。
    【问题2】
    本问题是一道填表题,其核心是对两种架构风格在算法变更、功能变更、数据表示变更和性能等方面的特点进行比较。其中共享数据的主程序-子程序在算法变更方面灵活性较差,算法变更时一般需要重新编译整个系统;在功能变更方面也比较差;在数据表示方面,当需要变更时,也意味着程序传递参数的变化以及整个程序的调整,表现比较差;在性能方面,由于整个程序处在一个紧耦合的状态,因此性能较高。管道-过滤器架构风格在算法变更方面实现比较简单,只需要修改过滤器的实现即可;在功能变更方面也比较简单;在数据表示方面,需要同时改变数据格式和过滤器的结构,相对比较复杂;在性能方面,由于整个系统是松耦合连接在一起的,因此性能不高。
    根据题干描述:“用户后续还有可能采用其它方式展示帮助内容”,因此KWIC系统对功能变更要求较高;根据题干描述:“…,后续还将采用其它的方法实现这一功能”,因此KWIC系统对实现某一个功能的算法变更要求较高;KWIC是一个支持用户交互的窗口界面程序,因此对性能要求并不高;KWIC系统的显示帮助内容为文本,数据的表示基本不变,因此对数据表示变更要求不高。针对这些考虑,可以看出应该采用管道-过滤器的架构风格。
    【问题3】
    本问题是一道读图题,考查用户对系统架构的理解程度。根据题干中的关键描述“…接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读…”和“…公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动…”,可以看出整个系统的流程是:输入→文档检索→查询结果按字母排序→剪切行首单词→单词插入行尾→输出。

    解答要点
    【问题1】
    软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
    主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。
    管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。

    根据题干描述:“用户后续还有可能采用其它方式展示帮助内容”,因此KWIC系统对功能变更要求较高;
    根据题干描述:“…,后续还将采用其它的方法实现这一功能”,因此KWIC系统对实现某一个功能的算法变更要求较高。
    KWIC是一个支持用户交互的窗口界面程序,因此对性能要求并不高。
    KWIC系统的显示帮助内容为文本,数据的表示基本不变,因此对数据表示变更要求不高。
    综合上述分析,可以看出应该采用李工提出的管道-过滤器架构风格。

  • 第20题:

    阅读以下软件系统架构选择的问题,在答题纸上回答问题1至问题3。
    某公司欲开发一个车辆定速巡航控制系统,以确保车辆在不断变化的地形中以固定的速度行驶。图4-1给出了该系统的简化示意图。表4-1描述了各种系统输入的含义。


    公司的领域专家对需求进行深入分析后,将系统需求认定为:任何时刻,只要定速巡航控制系统处于工作状态,就要有确定的期望速度,并通过调整引擎油门的设定值来维持期望速度。
    在对车辆定速巡航控制系统的架构进行设计时,公司的架构师王工提出采用面向对象的架构风格,而李工则主张采用控制环路的架构风格。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了面向对象和控制环路相结合的混合架构风格。
    【问题1】(5分)
    在实际的软件项目开发中,采用成熟的架构风格是项目成功的保证。请用200字以内的文字说明:什么是软件架构风格;面向对象和控制环路两种架构风格各自的特点。
    【问题2】(12分)
    用户需求没有明确给出该系统如何根据输入集合计算输出。请用300字以内的文字针对该系统的增减速功能,分别给出两种架构风格中的主要构件,并详细描述计算过程。
    【问题3】(8分)
    实际的软件系统架构通常是多种架构风格的混合,不同的架构风格都有其适合的应用场景。以该系统为例,针对面向对象架构风格和控制环路架构风格,各给出两个适合的应用场景,并简要说明理由。


    答案:
    解析:
    【问题1】
    软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。
    面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维护自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。
    控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。
    【问题2】
    对于系统的增减速功能,采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等构件。
    整个计算的主要过程是:
    (1)司机进行增/减速操作设置期望速度,该期望速度以消息的形式传递给速度计;
    (2)速度计通过向车轮和时钟发送消息获取车轮转速和时钟值,得到当前速度;
    (3)速度计计算当前速度和期望速度的速度差值;
    (4)该差值以消息的形式发送给油门,油门通过速度差值调节自身状态;
    (5)整个过程在时钟的控制下定期向速度计发送消息,重复执行(2)~(4)。
    控制环路的架构风格以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。
    具体的计算过程是:
    (1)司机进行增/减速操作设置期望速度值;
    (2)将设定值置为期望速度值;
    (3)控制器采集车轮脉冲和时钟值,计算出当前速度;
    (4)比较期望速度和当前速度,计算速度差值,控制油门动作;
    (5)反复执行(3)和(4)。
    【问题3】
    适合面向对象架构风格的应用场景:
    (1)用户刹车,立即退出巡航控制系统。理由:这是一个典型的事件驱动的场景,适合于面向对象风格。
    (2)系统对突发事件的处理,如某些部件失灵等。理由:当发生突发事件时,系统会同时产生数据和事件,这种清况用对象建模较为恰当。
    适合面向控制环路架构风格的应用场景:
    (1)在达到期望速度后,系统维持恒定速度行驶。理由:这是一个典型的闭环控制的情景,系统需要在外界情况不断发生变化的情况下进行调整,使得系统状态尽可能接近期望状态。
    (2)用户改变期望速度后,系统不断进行调整,直至到达恒定速度。理由:这是一个闭环控制情景,当用户设定期望速度值后,系统需要在不断获取当前速度和外界条件的情况下对系统状态持续调整,使得系统状态尽可能接近这个新的期望状态。

  • 第21题:

    架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。ADL主要包括以下组成部分:组件、组件接口、()和架构配置。

    • A、架构风格
    • B、架构实现
    • C、连接件
    • D、组件实现

    正确答案:C

  • 第22题:

    问答题
    软件系统架构 博学公司欲开发一个车辆定速巡航控制系统,以确保车辆在不断变化的地形中以固定的速度行驶。如图12-6所示给出了该系统的简化示意图。 表12-2描述了各种系统输入的含义。 公司的领域专家对需求进行深入分析后,将系统需求认定为:任何时刻,只要定速巡航控制系统处于工作状态,就要有确定的期望速度,并通过调整引擎油门的设定值来维持期望速度。 在对车辆定速巡航控制系统的架构进行设计时,公司的架构师王工提出采用面向对象的架构风格,而李工则主张采用控制环路的架构风格。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了面向对象和控制环路相结合的混合架构风格。用户需求没有明确给出该系统如何根据输入集合计算输出。请用300字以内的文字针对该系统的增减速功能,分别给出两种架构风格中的主要构件,并详细描述计算过程。

    正确答案: 对于系统的增减速功能,采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等构件。
    整个计算的主要过程如下:
    ①司机进行增/减速操作设置期望速度,该期望速度以消息的形式传递给速度计。
    ②速度计通过向车轮和时钟发送消息获取车轮转速和时钟值,得到当前速度。
    ③速度计计算当前速度和期望速度的速度差值。
    ④该差值以消息的形式发送给油门,油门通过速度差值调节自身状态。
    ⑤整个过程在时钟的控制下定期向速度计发送消息,重复执行②~④。
    控制环路的架构风格以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。
    具体的计算过程如下:
    ①司机进行增/减速操作设置期望速度值。
    ②将设定值置为期望速度值。
    ③控制器采集车轮脉冲和时钟值,计算出当前速度。
    ④比较期望速度和当前速度,计算速度差值,控制油门动作。
    ⑤反复执行③和④。
    解析: 问题2难度比问题1要大一些。需要根据面向对象的风格特点与控制环路的风格特点,来分析系统功能应如何拆分成构件。
    采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等对象。整个计算过程通过对象之间的合理交互完成期望的功能。
    控制环路的架构风格将以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。通过不断地反馈机制实现对系统的控制。

  • 第23题:

    问答题
    博学公司欲针对Linux操作系统开发一个KWIC(KeyWordInContext)检索系统。该系统接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其他方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其他的方法实现这一功能。 在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上,大家从系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。 在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用200字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。

    正确答案: 软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
    主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。
    管道.过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。
    解析: 暂无解析