一个软件的架构设计是随着技术的不断进步而不断变化的。以编译器为例,其主流架构经历了管道—过滤器到数据共享为中心的转变过程。以下关于编译器架构的叙述中,错误的是______。A.早期的编译器采用管道—过滤器架构风格,以文本形式输入的代码被逐步转化为各种形式,最终生成可执行代码B.早期的编译器采用管道-过滤器架构风格,并且大多数编译器在词法分析时创造独立的符号表,在其后的阶段会不断修改符号表,因此符号表并不是程序数据的一部分C.现代的编译器采用以数据共享为中心的架构风格,主要关心编译过程中程序的中间表示D.现

题目

一个软件的架构设计是随着技术的不断进步而不断变化的。以编译器为例,其主流架构经历了管道—过滤器到数据共享为中心的转变过程。以下关于编译器架构的叙述中,错误的是______。

A.早期的编译器采用管道—过滤器架构风格,以文本形式输入的代码被逐步转化为各种形式,最终生成可执行代码

B.早期的编译器采用管道-过滤器架构风格,并且大多数编译器在词法分析时创造独立的符号表,在其后的阶段会不断修改符号表,因此符号表并不是程序数据的一部分

C.现代的编译器采用以数据共享为中心的架构风格,主要关心编译过程中程序的中间表示

D.现代的编译器采用以数据共享为中心的架构风格,但由于分析树是在语法分析阶段结束后才产生作为语义分析的输入,因此分析树不是数据中心的共享数据


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

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

    A.分析模式 B.设计模式 C.架构风格 D.架构标准 A.架构需求 B.架构属性 C.架构优先级 D.架构约束


    正确答案:C,B

  • 第2题:

    随着互联网业务的极速增长,应用架构也随之不断变迁,在应用架构的变迁中未提及以下哪个选项?()

    A、SOA架构

    B、原子架构

    C、微服务架构

    D、单体架构


    答案:B

  • 第3题:

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

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

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

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

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

    [问题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]
    主要从应用场景的角度比较两种架构风格。面向对象系统比较适合事件驱动的场景,特别是离散突发事件的处理:而控制环路则适合连续事件的处理,比如维持恒定车速等。

  • 第4题:

    软件架构设计包括提出架构模型,产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和( ),并通过多种( )全面描述特定系统的架构。

    A.实现方式 B.交互作用 C.设计方案 D.测试方式 A.对象 B.代码 C.文档 D.视图


    正确答案:B,D

  • 第5题:

    软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和( ),并通过多种(请作答此空)全面描述特定系统的架构。

    A.对象
    B.代码
    C.文档
    D.视图

    答案:D
    解析:
    软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。

  • 第6题:

    软件设计过程是定义一个系统或组件架构和接口的过程,其中描述软件的结构和组织,标识各种不同组件的设计是( )

    A.软件详细设计
    B.软件对象设计
    C.软件环境设计
    D.软件架构设计

    答案:D
    解析:
    软件设计是描述出软件架构及相关组件之间的接口,然后进一步详细地描述组件,以便能构造这些组件的过程。其中描述软件的结构和组织,标识各种不同组件的设计是软件架构设计。

  • 第7题:

    基于软件架构的设计(Architecture Based Software Development,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用( )来描述软件架构,采用(请作答此空)来描述需求。

    A. 用例与类图
    B. 用例与视角
    C. 用例与质量场景
    D. 视角与质量场景

    答案:C
    解析:
    根据基于软件架构的设计的定义,基于软件架构的设计(Architecture Based Software Development,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。

  • 第8题:

    统一过程模型是以用例驱动,以架构为中心、可迭代可配置的软件开发流程。


    正确答案:正确

  • 第9题:

    ()架构、()架构和SOA架构是当今世界软件开发模式技术架构的主流技术。


    正确答案:B/S;C/S

  • 第10题:

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

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

    正确答案:C

  • 第11题:

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

    分析模式

    B

    设计模式

    C

    架构风格

    D

    架构标准


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

  • 第12题:

    多选题
    关于软件架构的说法错误的是()
    A

    软件架构是系统的功能结构

    B

    软件架构是关于软件系统功能描述

    C

    软件架构是软件系统实现的逻辑结构

    D

    软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面设计


    正确答案: B,C
    解析: 暂无解析

  • 第13题:

    在典型的软件架构模式中,()模式是基于资源不对等,为实现共享而**。

    A.管道/过滤器

    B.事件驱动

    C.分层

    D.客户/服务器


    正确答案:D

  • 第14题:

    RUP的主要特征有以()、以架构为中心(类、组件、子系统)、迭代和增量的软件开发、以及过程可配置。

    A.数据驱动软件的设计和实现

    B.性能驱动软件的设计和实现

    C.用例驱动软件的设计和实现

    D.计划驱动软件的设计和实现


    正确答案:C

  • 第15题:

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

    A.架构风格

    B.设计模式

    C.架构策略

    D.架构描述


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

  • 第16题:

    基于组件的软件开发架构模式一般在()软件开发架构模式中使用

    A.管道-过滤器

    B.面向对象

    C.事件驱动

    D.客户/服务器


    正确答案:B

  • 第17题:

    软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和(请作答此空),并通过多种( )_全面描述特定系统的架构。

    A.实现方式
    B.交互作用
    C.设计方案
    D.测试方式

    答案:B
    解析:
    软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。

  • 第18题:

    基于架构的软件开发(Architecture Based Software Development,ABSD.强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用(11)来描述软件架构,采用(12)来描述需求。【回答括号12】

    A. 用例与类图
    B. 用例与视角
    C. 用例与质量场景
    D. 视角与质量场景

    答案:C
    解析:

    根据定义,基于软件架构的开发(Architecture Based Software Development,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。

  • 第19题:

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

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

    正确答案:C

  • 第20题:

    关于软件架构的说法错误的是()

    • A、软件架构是系统的功能结构
    • B、软件架构是关于软件系统功能描述
    • C、软件架构是软件系统实现的逻辑结构
    • D、软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面设计

    正确答案:A,B

  • 第21题:

    基于软件架构的设计(ArchitectureBasedSoftwareDevelopment,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用(1)来描述软件架构,采用(2)来描述需求。 空白(2)处应选择()

    • A、用例与类图
    • B、用例与视角
    • C、用例与质量场景
    • D、视角与质量场景

    正确答案:C

  • 第22题:

    填空题
    ()架构、()架构和SOA架构是当今世界软件开发模式技术架构的主流技术。

    正确答案: B/S,C/S
    解析: 暂无解析

  • 第23题:

    单选题
    软件架构是降低成本、改进质量、按时和按需交付产品的关键因素。以下关于软件架构的描述,错误的是()
    A

    根据用户需求,能够确定一个最佳的软件架构,指导整个软件的开发过程

    B

    软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等

    C

    软件架构设计需要确定组件之间的依赖关系,支持项目计划和管理活动

    D

    软件架构能够指导设计人员和实现人员的工作


    正确答案: B
    解析: 软件架构是降低成本、改进质量、按时和按需交付产品的关键因素,软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等,软件架构设计需要确定组件之间的依赖关系,支持项目计划和管理活动,软件架构能够指导设计人员和实现人员的工作。一般在设计软件架构之初,会根据用户需求,确定多个候选架构,并从中选择一个较优的架构,并随着软件的开发,对这个架构进行微调,以达到最佳效果。

  • 第24题:

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

    虚拟机

    B

    管道.过滤器

    C

    黑板结构

    D

    分层结构


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