某软件开发公司负责开发一个Web服务器服务端处理软件,其核心部分是对客户端请求消息的解析与处理,包括HTTP报头分离、SOAP报文解析等功能。该公司的架构师决定采用成熟的架构风格指导整个软件的设计,以下()架构风格,最适合该服务端处理软件。A、虚拟机B、管道.过滤器C、黑板结构D、分层结构

题目

某软件开发公司负责开发一个Web服务器服务端处理软件,其核心部分是对客户端请求消息的解析与处理,包括HTTP报头分离、SOAP报文解析等功能。该公司的架构师决定采用成熟的架构风格指导整个软件的设计,以下()架构风格,最适合该服务端处理软件。

  • A、虚拟机
  • B、管道.过滤器
  • C、黑板结构
  • D、分层结构

相似考题

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

参考答案和解析
正确答案:B
更多“某软件开发公司负责开发一个Web服务器服务端处理软件,其核心部分是对客户端请求消息的解析与处理,包括HTTP报头分离、SOAP报文解析等功能。该公司的架构师决定采用成熟的架构风格指导整个软件的设计,以下()架构风格,最适合该服务端处理软件。A、虚拟机B、管道.过滤器C、黑板结构D、分层结构”相关问题
  • 第1题:

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

    A.架构风格

    B.设计模式

    C.架构策略

    D.架构描述


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

  • 第2题:

    老于是某银行的系统架构师,他为银行投资管理系统设计的软件架构包括进程通信和事件驱动的系统,该软件架构风格属于( )。

    A:数据流风格
    B:独立构件风格
    C:仓库风格
    D:虚拟机风格

    答案:B
    解析:
    软件架构五大风格:
    (1)数据流风格:包括批处理序列架构风格(Batch Sequential)和管理/过滤器架构风格(Pipes/Filters)。
    (2)调用/返回风格:包括主程序/子程序架构风格(Main Program and Subroutine)、数据抽象和面向对象架构风格(DataAbstraction and Object-Oriented)及层次结构架构风格(Hierarchical Layers).
    (3)独立构件风格:包括进程通信架构风格(Communicating Processes)和事件驱动架构风格(EventSystems)。
    (4)虚拟机风格:包括解释器架构风格(Interpreters)和基于规则的系统(Rule-based Systems)架构风格。
    (5)仓库风格:包括数据库架构风格(Database)和黑板架构风格(BlackBoards)

  • 第3题:

    以下关于Web测试的叙述中,不正确的是( )。

    A.Web软件的测试贯穿整个软件生命周期
    B.按系统架构划分,Web测试分为客户端测试、服务端测试和网络测试
    C.Web系统测试与其他系统测试测试内容基本不同但测试重点相同
    D.Web性能测试可以采用工具辅助

    答案:C
    解析:

  • 第4题:

    Java虚拟机采用( )软件体系结构。

    A.管道一过滤器
    B.分层
    C.黑板
    D.解释器

    答案:D
    解析:
    Java虚拟机(Java Virtual Machine,JVM)是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
    Garlan和Shaw将通用软件体系结构风格总结为五个大类:数据流风格、调用/返回风格、独立构件风格、虚拟机风格、仓库风格。数据流风格有:批处理序列、管道/过滤器;调用/返回风格有:主程序/子程序、面向对象风格、层次结构;独立构件风格有:进程通讯、事件系统;虚拟机风格有:解释器、基于规则的系统;仓库风格有:数据库系统、超文本系统、黑板系统。而JAVA虚拟机采用解释器软件体系结构。

  • 第5题:

    软件架构中,( )包括批处理序列和管道/过滤器两种风格。

    A.数据流
    B.调用/返回
    C.虚拟机
    D.独立构件

    答案:A
    解析:
    软件架构分为数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格。

  • 第6题:

    某公司欲实现一个数据处理软件,该软件需要从网络接收一组复杂的数据,然后分步进行解析和处理。在这种情况下,采用( )的体系结构风格比较适合。

    A. 远程过程调用
    B. 层次化
    C. 管道/过滤器
    D. 共享数据

    答案:C
    解析:
    当一个软件需要处理复杂数据,且数据需要通过分步进行处理,具有明显的阶段特性时,采用管道和过滤器模式是比较好的方式,因此本题应该选择C。

  • 第7题:

    Windows操作系统在图形用户界面处理方面采用的核心架构风格是(请作答此空)风格。Java语言宣传的"一次编写,到处运行"的特性,从架构风格上看符合( )风格的特点。

    A. 虚拟机
    B. 管道-过滤器
    C. 事件驱动
    D. 微内核-扩展

    答案:C
    解析:
    Windows操作系统在图形用户界面处理方面采用的是典型的"事件驱动"的架构风格。首先注册事件处理的是回调函数,当某个界面事件发生时(例如键盘敲击、鼠标移动等),系统会查找并选择合适的回调函数处理该事件。Java语言是一种解释型语言,在Java虚拟机上运行,这从架构风格上看是典型的"虚拟机"风格,即通过虚拟机架构屏蔽不同的硬件环境。

  • 第8题:

    某软件开发公司负责开发一个Web服务器服务端处理软件,其核心部分是对客户端请求消息的解析与处理,包括HTTP报头分离、SOAP报文解析等功能。该公司的架构师决定采用成熟的架构风格指导整个软件的设计,以下( )架构风格,最适合该服务端处理软件。

    A. 虚拟机
    B. 管道-过滤器
    C. 黑板结构
    D. 分层结构

    答案:B
    解析:
    根据题干描述,Web服务器服务端的核心功能是数据处理,由于Web服务在数据传输方面具有协议分层的特征,即底层协议会包装上层协议(HTTP协议体中包含整个SOAP消息内容),因此需要数据内容的逐步分解与分阶段处理。比较选项中的架构风格,由于管道-过滤器的架构风格支持分阶段数据处理,因此特别适合该服务端处理软件的要求。

  • 第9题:

    博学公司欲实现一个数据处理软件,该软件需要从网络接收一组复杂的数据,然后分步进行解析和处理。在这种情况下,采用()的体系结构风格比较适合。

    • A、远程过程调用
    • B、层次化
    • C、管道/过滤器
    • D、共享数据

    正确答案:C

  • 第10题:

    以下关于域名解析的描述中错误的是()

    • A、DNS协议可以完成地址解析
    • B、递归解析由本地域名服务器负责解析的全过程,只将最终结果返回给客户端
    • C、反复解析由客户端解析程序负责多次解析请求的全过程
    • D、实际在软件编程中人们主要采用在客户端的反复解析的方法

    正确答案:A

  • 第11题:

    在DNS中,正向解析是指(3),记录类别(4)不是用于正向解析的,而是用于反向解析的。空白处(3)应选择()

    • A、根据IP地址解析域名
    • B、根据域名来解析IP地址
    • C、服务端响应客户端的请求
    • D、客户端响应服务端的请求

    正确答案:B

  • 第12题:

    单选题
    在DNS中,正向解析是指(3),记录类别(4)不是用于正向解析的,而是用于反向解析的。空白处(3)应选择()
    A

    根据IP地址解析域名

    B

    根据域名来解析IP地址

    C

    服务端响应客户端的请求

    D

    客户端响应服务端的请求


    正确答案: D
    解析: DNS正向解析是指"域名→IP地址"的解析工作,反向解析则是指"IP地址→域名"的解析工作。

  • 第13题:

    某软件公司欲实现一个数据处理软件,该软件需要从网络接收一组复杂的数据,然后分步进行解析和处理。在这种情况下,采用(34)的体系结构风格比较适合。

    A.远程过程调用

    B.层次化

    C.管道/过滤器

    D.共享数据


    正确答案:C
    解析:当一个软件需要处理复杂数据,且数据需要通过分步进行处理,具有明显的阶段特性时,采用管道和过滤器模式是比较好的方式,因此本题应该选择C。

  • 第14题:

    老于是某银行的系统架构师,他为银行投资管理系统设计的软件架构包括进程通信和事件驱动的系统,该软件架构风格属于( )。

    A.数据流风格
    B.独立构件风格
    C.仓库风格
    D.虚拟机风格

    答案:B
    解析:
    Garlan和Shaw对通用软件架构风格进行了分类,他们将软件架构分为数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格。(1)数据流风格:数据流风格包括批处理序列和管理/过滤器两种风格。(2)调用/返回风格:调用/返回风格包括主程序/子程序、数据抽象和面向对象,以及层次结构。(3)独立构件风格:独立构件风格包括进程通信和事件驱动的系统。(4)虚拟机风格:虚拟机风格包括解释器和基于规则的系统。(5)仓库风格:仓库风格包括数据库系统、黑板系统和超文本系统。

  • 第15题:

    Java虚拟机采用( )软件体系结构。

    A.管道-过滤器
    B.分层
    C.黑板
    D.解释器

    答案:D
    解析:
    Java虚拟机(Java Virtual Machine,JVM)是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
    Garlan和Shaw将通用软件体系结构风格总结为五个大类:数据流风格、调用/返回风格、独立构件风格、虚拟机风格、仓库风格。数据流风格有:批处理序列、管道/过滤器;调用/返回风格有:主程序/子程序、面向对象风格、层次结构;独立构件风格有:进程通讯、事件系统;虚拟机风格有:解释器、基于规则的系统;仓库风格有:数据库系统、超文本系统、黑板系统。而JAVA虚拟机采用解释器软件体系结构。

  • 第16题:

    以下关于Web测试的叙述中,不正确的是( )

    A.Web软件的测试贯穿整个软件生命周期
    B.按系统架构划分,Web测试分为客户端测试、服务端测试和网络测试
    C.Web系统测试与其他系统测试的测试内容基本不同但测试重点相同
    D.Web性能测试可以采用工具辅助

    答案:C
    解析:
    本题考查Web测试的基础知识。由于web应用与用户直接相关,又通常需要承受长时间的大量操作,因此web项目的功能和性能都必须经过可靠的验证。这就要经过web项目的全面测试。Web应用程序测试与其它任何一种类型的应用程序测试相比没有太大差别。web系统测试与其它系统测试测试内容基本相同只是测试重点不同。故正确答案为C

  • 第17题:

    论软件系统架构风格系统架构风格(System Architecture Style)是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义了一个词汇表和一组约束,词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。软件系统架构风格反映了领域中众多软件系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。软件系统架构风格的共有部分可以使得不同系统共享同一个实现代码,系统能够按照常用的、规范化的方式来组织,便于不同设计者很容易地理解系统架构。 (请围绕“论软件系统架构风格”论题,依次从以下三个方面进行论述。) 1.概要叙述你参与分析和开发的软件系统开发项目以及你所担任的主要工作。 2.分析软件系统开发中常用的软件系统架构风格有哪些?详细阐述每种风格的具体含义。 3.详细说明你所参与的软件系统开发项目中,采用了哪种软件系统架构风格,具体实施效果如何。


    答案:
    解析:
    [写作要点] 一、简要描述所参与分析和开发的软件系统开发项目,并明确指出在其中承担的主要任务和开展的主要工作。 二、分析在软件系统开发中常用的软件系统架构风格,详细阐述每种风格的具体含义。 软件系统开发中常用的软件系统架构风格主要包括: 1.管道和过滤器风格 在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。此风格特别重要的过滤器必须是独立的实体,它不能与其他的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个管道/过滤器网络输出的正确性并不依赖于过滤器进行增量计算过程的顺序。 2.数据抽象和面向对象风格 抽象数据类型概念对软件系统有着重要作用,目前软件界已普遍转向使用面向对象系统。这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。 3.基于事件的隐式调用风格 基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。基于事件的隐式调用风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。 4.层次系统风格 层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的)。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。这种风格支持基于可增加抽象层的设计。这样,允许将一个复杂问题分解成一个增量步骤序列的实现。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。 5.仓库风格 在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行,仓库与构件间的相互作用在系统中会有大的变化。控制原则的选取产生两个主要的子类。若输入流中某类时间触发进程执行的选择,则仓库是一传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统。 6.C2风格 C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。C2风格中的系统组织规则如下:系统中的构件和连接件都有一个顶部和一个底部;构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;一个连接件可以和任意数目的其他构件和连接件连接;当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。 三、针对作者实际参与的软件系统开发项目,说明所采用的软件架构风格,并描述该架构风格所产生的实际应用效果。

  • 第18题:

    对于因数据输入某个构件,经过内部处理,产生数据输出的系统,通常会采用()架构风格。

    A. 事件驱动系统
    B. 黑板
    C. 管道-过滤器
    D. 分层系统

    答案:C
    解析:
    输入某个构件,经过内部处理,产生数据输出的系统,正是管道-过滤器中过滤器的职能,把多个过滤器使用管道相联的风格为管道-过滤器风格。

  • 第19题:

    软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的( )特征。对于语音识别、知识推理等问题复杂、解空间很大、求解过程不确定的这一类软件系统,通常会采用()架构风格。对于因数据输入某个构件,经过内部处理,产生数据输出的系统,通常会采用(请作答此空 )架构风格。

    A. 事件驱动系统
    B. 黑板
    C. 管道-过滤器
    D. 分层系统

    答案:C
    解析:
    体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。对软件体系结构风格的研究和实践促进对设计的重用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。例如,如果某人把系统描述为客户/服务器模式,则不必给出设计细节,我们立刻就会明白系统是如何组织和工作的。语音识别是黑板风格的经典应用场景。输入某个构件,经过内部处理,产生数据输出的系统,正是管道-过滤器中过滤器的职能,把多个过滤器使用管道相联的风格为管道-过滤器风格。

  • 第20题:

    以下关于软件架构风格与系统性能关系的叙述,错误的是()

    A. 对于采用层次化架构风格的系统,划分的层次越多,系统的性能越差
    B. 对于采用管道一过滤器架构风格的系统,可以通过引入过滤器的数据并发处理提高系统性能
    C. 对于采用面向对象架构风格的系统,可以通过减少功能调用层次提高系统性能
    D. 对于采用过程调用架构风格的系统,可以通过将显式调用策略替换为隐式调用策略提高系统性能

    答案:D
    解析:
    本题主要考查对软件架构风格与系统性能之间关系的理解。对于采用层次化架构风格的系统,划分的层次越多,系统完成某项功能需要的中间调用操作越多,其性能越差。对于采用管道一过滤器架构风格的系统,可以通过引入过滤器的数据并发处理可以有效提高系统性能。对于采用面向对象架构风格的系统,可以通过减少功能调用层次提高系统性能。对于采用过程调用架构风格的系统,将显式调用策略替换为隐式调用策略能够提高系统的灵活性,但会降低系统的性能。

  • 第21题:

    采用以架构为核心的软件开发方法,在建立软件架构的初期,首要任务是选择一个合适的(1),在此基础上,开发人员通过架构模型,可以获得关于(2)的理解,为将来的架构实现与演化过程建立了目标。 空白(1)处应选择()

    • A、分析模式
    • B、设计模式
    • C、架构风格
    • D、架构标准

    正确答案:C

  • 第22题:

    软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。以下关于软件架构设计活动的描述,错误的是()

    • A、在建立软件架构的初期,一般需要选择一个合适的架构风格
    • B、将架构分析阶段已标识的构件映射到架构中,并分析这些构件之间的关系
    • C、软件架构设计活动将已标识构件集成到软件架构中,设计并实现这些构件
    • D、一旦得到了详细的软件架构设计,需要邀请独立于系统开发的外部人员对系统进行评审

    正确答案:C

  • 第23题:

    单选题
    采用以架构为核心的软件开发方法,在建立软件架构的初期,首要任务是选择一个合适的(1),在此基础上,开发人员通过架构模型,可以获得关于(2)的理解,为将来的架构实现与演化过程建立了目标。 空白(1)处应选择()
    A

    分析模式

    B

    设计模式

    C

    架构风格

    D

    架构标准


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