软件架构的概念(★★★)
软件架构风格(★★★★★)
架构描述语言ADL(★★★)
特定领域软件架构(★★★)
基于架构的软件开发(★★★★)
软件质量属性(★★★★★)
软件架构评估(★★★★★)
软件产品线(★★★)
构件与中间件技术(★★★★)
Web架构设计(★★★★★)
架构的本质
1、软件架构为软件系统提供了一个结构、行为和属性的高级抽象。
2、软件架构风格是特定应用领域的惯用模式,架构定义一个词汇表和组约束。
架构的作用
1、软件架构是项目干系人进行交流的手段。
2、软件架构是可传递和可复用的模型,通过研究软件架构可能预测软件的质量。
3、软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础。
软件架构的概念
以下叙述,(D)不是软件架构的主要作用。
A在设计变更相对容易的阶段,考虑系统结构的可选方案
B便于技术人员与非技术人员就软件设计进行交互
C展现软件的结构、属性与内部交互关系
D表达系统是否满足用户的功能性需求
架构的发展历程
架构的"4+1"视图
UML的“4+1”视图
软件架构风格
- 架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效地组织成一个完整的系统。
- 架构风格定义了用于描述系统的术语表和一组指导构建系统的规则。
软件架构风格——数据流风格【数据驱动】
批处理和管道-过滤器
调用/返回风格
调用/返回风格之分层架构风格
独立构件风格
其中最常见的子风格是:事件驱动系统【隐式调用】
构件之间,不直接交互【松耦合】
优点、缺点、特点
虚拟机风格
JAVA虚拟机【windos版本、linux版本】
仓库风格
使用了仓库风格的例子:注册表、剪切版
黑板系统
黑板风格适用于解决疑难杂症
优缺点
闭环控制架构(过程控制)
开环控制系统:控制器控制电视机换台
闭环控制系统:空调温度自动反馈调节【空调温控、定速巡航】
C2风格
C2架构的基本规则:
- 构件和连接件都有一个顶部和一个底部。
- 构件的顶部要连接到连接件的底部,构件的底部要连接到连接件的顶部,构件之间不允许直连。
- 一个连接件可以和任意数目的其他构件和连接件连接。
- 当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。
练习题
填空题
-
Java程序可以做到“一次编写,到处运行”,从架构风格上看符合(虚拟机)风格的特点。
-
在网络通信中,进行包的解析,一般先进行包头的分离,然后进行报文解析及后续处理,根据这一特点,选用(数据流)风格最合适。
-
某公司欲开发一个基于图形用户界面的集成调试器。该调试器的编辑器和变量监视器可以设置调试断点。当调试器在断点处暂停运行时,编辑程序可以自动卷屏到断点,变量监视器刷新变量数值。针对这样的功能描述,采用(隐式调用/事件驱动)的架构风格最为合适。
-
某游戏公司欲开发一个大型多人即时战略游戏,游戏设计的目标之一是能够支持玩家自行创建战役地图,定义游戏对象的行为和之间的关系。针对该目标,公司应该采用(解释器)架构风格最为合适。(四选一:管道-过滤器、隐式调用、主程序-子程序、解释器)
-
某公司承接了一个开发家用空调自动调温器的任务,调温器测量外部空气温度,根据设定的期望温度控制空调的开关。根据该需求,公司应采用(过程控制)架构风格最为百色。(四选—︰解释器、过程控制、分层、管道-过滤器)
-
某公司欲开发一个语音识别系统,语音识别的主要过程包括分割原始语音信号、识别音素、产生候选词、判定语法片断、提供语义解释等。每个过程都需要进行基于先验知识的条件判断并进行相应的识别动作。针对该系统的特点,采用(黑板)架构风格最为合适。(四选一︰解释器、面向对象、黑板、隐式调用)
-
某公司欲开发一个漫步者机器人,用来完成火星探测任务。机器人的控制者首先定义探测任务和任务之间的时序依赖性,机器人接受任务后,需要根据自身状态和外界环境进行动态调整,最终自动完成任务。针对这些需求,该机器人应该采用(解释器)架构风格最为合适。(四选一:解释器、主程序-子程序、隐式调用、管道-过滤器)
机器人的控制者首先定义探测任务和任务之间的时序依赖性 解释器
需要根据自身状态和外界环境进行动态调整 过程控制、隐式调用
-
Windows操作系统在图形用户界面处理方面采用的核心架构风格是(隐式调用/事件驱动)风格。
选择题
“编译器”是一种非常重要的基础软件,其核心功能是对源代码形态的单个或一组源程序依次进行预处理、词法分析、语法分析、语义分析、代码生成、代码优化等处理,最终生成目标机器的可执行代码。考虑以下与编译器相关的软件架构设计场景:传统的编译器设计中,上述处理过程都以独立功能模块的形式存在,程序源代码作为一个整体,依次在不同模块中进行传递,最终完成编译过程。针对这种设计思路,传统的编译器采用(B)架构风格比较合适。
随着编译、链接、调试、执行等开发过程的一体化趋势发展,集成开发环境(IDE)随之出现。IDE集成了编译器、连接器、调试器等多种工具,支持代码的增量修改与处理,能够实现不同工具之间的信息交互,覆盖整个软件开发生命周期。针对这种需求,IDE采用(C)架构风格比较合适。IDE强调交互式编程,用户在修改程序代码后,会同时触发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用与结果呈现,针对这种需求,通常采用(A)架构风格比较合适。
某公司已经开发了一款针对某种嵌入式操作系统专用编程语言的IDE,随着一种新的嵌入式操作系统上市并迅速占领市场,公司决定对IDE进行适应性改造,支持采用现有编程语言进行编程,生成符合新操作系统要求的运行代码,并能够在现有操作系统上模拟出新操作系统的运行环境,以支持代码调试工作。针对上述要求,为了使IDE能够生成符合新操作系统要求的运行代码,采用基于(B)的架构设计策略比较合适;为了模拟新操作系统的运行环境,通常采用(D)架构风格比较合适。
(1)A.管道-过滤器 B.顺序批处理 C.过程控制 D.独立进程
(2)A.规则引擎 B.解释器 C.数据共享 D.独立构件
(3)A.隐式调用 B.显式调用 C.主程序-子程序 D.层次结构
(4)A.代理 B.适配 C.包装 D.模拟文章来源:https://www.toymoban.com/news/detail-406625.html
(5)A.隐式调用 B.仓库结构 C.基于规则 D.虚拟机文章来源地址https://www.toymoban.com/news/detail-406625.html
到了这里,关于软考之软件架构设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!