接前一篇文章:软考 系统架构设计师系列知识点之软件架构风格(10)
所属章节:
第7章. 系统架构设计基础知识
第3节. 软件架构风格
相关试题
9. “编译器”是一种非常重要的基础软件,其核心功能是对源代码形态的单个或一组源程序依次进行预处理、词法分析、语法分析、语义分析、代码生成、代码优化等处理,最终生成目标机器的可执行代码。考虑以下与编译器相关的软件架构设计场景:
传统的编译器设计中,上述处理过程都以独立功能模块的形式存在,程序源代码作为一个整体,依次在不同模块中传递,最终完成编译过程。针对这种设计思路,传统的编译器采用( )架构风格比较合适。
随着编译、链接、调试、执行等开发过程的一体化趋势发展,集成开发环境(IDE)随之出现。IDE集成了编译器、连接器、调试器等多种工具,支持代码的增量修改预处理,能够实现不同工具之间的信息交互,覆盖整个软件开发生命周期。针对这种需求,IDE采用( )架构风格比较合适。IDE强调交互式编程,用户在修改程序代码后,会同时出发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用与结果呈现,针对这种需求,通常采用( )架构风格比较合适。
某公司已经开发了一款针对于某种嵌入式操作系统专用编程语言的IDE,随着一种新的嵌入式操作系统上市并迅速占领市场,公司决定对IDE进行适应性改造,支持采用现有编程语言进行编程,生成符合新操作系统要求的运行代码,并能够在现有操作系统上模拟出新操作系统的运行环境,以支持代码调试工作。针对上述要求,为了使IDE能够生成符合新操作系统要求的运行代码,采用基于( )的架构设计策略比较合适;为了模拟新操作系统的运行环境,通常采用( )架构风格比较合适。
第1空
A. 管道—过滤器
B. 顺序批处理
C. 过程控制
D. 独立进程
正确答案:B。
第2空
A. 规则引擎
B. 解释器
C. 数据共享
D. 黑板
正确答案:C。
第3空
A. 隐式调用
B. 显式调用
C. 主程序—子程序
D. 层次结构
正确答案:A。
第4空
A. 代理
B. 适配
C. 包装
D. 模拟
正确答案:B。
第5空
A. 隐式调用
B. 仓库结构
C. 基于规则
D. 虚拟机
正确答案:D。
解析
传统的编译器一般都采用数据流架构风格。在这种架构中,每个构件都有一组输入和输出,数据输入构件,经过内部处理,然后产生数据输出。编译处理过程中,会分步将源代码一次一次地处理,最终形成目标代码,这与数据流架构风格相当吻合。但选项中有两个数据流风格的架构供选择,即:“管道-过滤器”和“顺序批处理”,这就需要进一步分析哪个更合适,由于题目中提到“程序源代码作为一个整体,依次在不同模块中进行传递”,而顺序批处理是强调把数据整体处理的,所以应选用顺序批处理风格。
IDE是一种集成式的开发环境,在这种环境中,多种工具是围绕同一数据进行处理,这种情况适合用数据共享架构风格。
在题目中提到,IDE是一种交互式编程,用户在修改程序代码后,会同时触发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用于结果呈现。在做一件事情时,同时触发一系列的行为,这是典型的隐式调用风格(事件驱动系统)。
“使IDE能够生成符合新操作系统要求的运行代码”,这一要求是可以通过适配策略满足的,像设计模式中的适配器模式便是采用适配的方式,形成一致的接口。
“模拟新操作系统的运行环境”是典型的虚拟机架构风格的特长。