该模型是将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型,包括需求分析、设计、编码、测试、运行与维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水逐级下落。
瀑布模型的优点容易理解,管理成本低:强调开发的阶段性早期计划及需求调查和产 品测试。
在瀑布模型中,需求或设计中的错误往往只有到了 项目后期才能够被发现,对于项目风险的控制能力较弱,从而导致项目常常延期完成,开发费 用超出预算。
该模型融合了瀑布模型的基本成分和原型实现的迭代特征,它假设可以将需求分段为一 系列增量产品,每一个增量可以分别开发。该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第一个增量往往是核心的产品。客户对每个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。
增量模型有以下不足之处
演化模型是迭代的过程模型,使得软件开发人员能够逐步开发出更完整的软件版本。演化模型特别适用于对软件需求缺乏准确认识的情况。典型的演化模型有原型模型和螺旋模型等。
螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,每个螺旋周期分为如下 4 个工作步骤。
螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,从而做 出应有的反应。因此,该模型特别适用于庞大、复杂并且具有高风险的系统。
这是是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。喷泉模型的各个阶段没有明显的界线,开发人员可以同步进行。
其优点是可以提高软件项目的开发效率,节省开发时间。由于喷泉模型在各个开发阶段是重叠的,在开发过程中需要大量的开发人员,不利于项目的管理。此外,这种模型要求严格管理文档,使得审核的难度加大。
统一过程模型是一种“用例和风险驱动,以架构为中心,迭代并且增量”的开发过程,由 UML 方法和工具支持。
迭代的意思是将整个软件开发项目划分为许多个小的“袖珍项目”,每统一过程定义了 4个技术阶段及其制品。
某公司拟开发一个地面清洁机器人。机器人的控制者首先定义清洁任务和任务之间的关系,机器人接受任务后,需要响应外界环境中触发的一些突发事件,根据自身状态进行动态调整,最终自动完成任务。针对上述需求,该机器人应该采用( )架构风格最为合适。
A. 面向对象
B. 主程序—子程序
C. 规则系统
D. 管道—过滤器
某公司拟开发一个语音识别系统,其语音识别的主要过程包括分割原始语音信号、识别音素、产生候选词、判定语法片断、提供语义解释等,每个过程都需要进行基于先验知识的条件判断并进行相应的识别动作。针对该系统的特点,采用( )架构风格最为合适。
A. 解释器
B. 面向对象
C. 黑板
D. 隐式调用
某公司拟开发一个轿车巡航定速系统,系统需要持续测量车辆当前的实时速度,并根据设定的期望速度自动控制轿车的油门和刹车。针对上述需求,采用( )架构风格最为合适。
A. 解释器
B. 过程控制
C. 分层
D. 管道—过滤器
某公司拟开发一套在线游戏系统,该系统的设计目标之一是支持用户自行定义游戏对象的属性、行为和对象之间的交互关系。为了实现上述目标,公司应该采用( )架构风格最为合适。
A. 管道—过滤器
B. 隐式调用
C. 主程序—子程序
D. 解释器
某公司为其研发的硬件产品设计实现了一种特定的编程语言,为了方便开发者进行软件开发,公司拟开发一套针对该编程语言的集成开发环境,包括代码编辑、语法高亮、代码编译、运行调试等功能。针对上述描述,该集成开发环境应采用( )架构风格最为合适。
A. 管道—过滤器
B. 数据仓储
C. 主程序—子程序
D. 解释器
软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和(请作答此空),并通过多种( )_全面描述特定系统的架构。
A. 实现方式
B. 交互作用
C. 设计方案
D. 测试方式
A. 对象
B. 代码
C. 文档
D. 视图
某公司拟开发一个 VIP 管理系统,系统需要根据不同商场活动,不定期更新 VIP 会员的审核标准和 VIP 折扣标准。针对上述需求,采用( )架构风格最为合适。
A. 规则系统
B. 过程控制
C. 分层
D. 管道-过滤器
以下关于软件架构设计重要性的描述,()是错误的。
A. 软件架构设计能够满足系统的性能、安全性、可维护性等品质
B. 软件架构设计能够帮助项目干系人(Stakeholder)更好地理解软件结构
C. 软件架构设计能够帮助架构师更好地捕获和细化系统需求
D. 软件架构设计能够有效地管理系统的复杂性,并降低系统维护费用
某公司拟开发一个新闻系统,该系统可根据用户的注册兴趣,向用户推送其感兴趣的新闻内容,该系统应该采用( ) 架构风格最为合适。
A. 事件驱动系统
B. 主程序-子程序
C. 黑板
D. 管道-过滤器
某公司拟开发一个地面清洁机器人。机器人的控制者首先定义清洁任务和任务之间的关系,机器人接受任务后,需要响应外界环境中触发的一些突发事件,根据自身状态进行动态调整,最终自动完成任务。针对上述需求,该机器人应该采用( )架构风格最为合适。
A. 面向对象
B. 主程序—子程序
C. 规则系统
D. 管道—过滤器
正确答案:正确答案: C
解析:
机器人需要根据自身状态的外界环境进行自动调整,这是一个典型的根据外部事件进行响应的场景。比较4个候选项,规则系统比较适合根据外部事件,以自身状态为基础自动进行处理和动作的场景。
某公司拟开发一个语音识别系统,其语音识别的主要过程包括分割原始语音信号、识别音素、产生候选词、判定语法片断、提供语义解释等,每个过程都需要进行基于先验知识的条件判断并进行相应的识别动作。针对该系统的特点,采用( )架构风格最为合适。
A. 解释器
B. 面向对象
C. 黑板
D. 隐式调用
正确答案:正确答案: C
解析:
根据题目描述,语音识别系统是一个十分典型的专家系统,其特点是求解的正确结果不止一个,求解过程比较复杂,需要通过专家知识和反馈逐步得到正确结果。因此对比4个候选项,黑板结构特别适合求解这类问题。
某公司拟开发一个轿车巡航定速系统,系统需要持续测量车辆当前的实时速度,并根据设定的期望速度自动控制轿车的油门和刹车。针对上述需求,采用( )架构风格最为合适。
A. 解释器
B. 过程控制
C. 分层
D. 管道—过滤器
正确答案:正确答案: B
解析:
根据题目描述,轿车巡航定速系统是一个十分典型的控制系统,其特点是不断采集系统当前状态,与系统中的设定状态进行对比,并通过将当前状态与设定状态进行对比从而进行控制
某公司拟开发一套在线游戏系统,该系统的设计目标之一是支持用户自行定义游戏对象的属性、行为和对象之间的交互关系。为了实现上述目标,公司应该采用( )架构风格最为合适。
A. 管道—过滤器
B. 隐式调用
C. 主程序—子程序
D. 解释器
正确答案:正确答案: D
解析:
该软件系统特别强调用户定义系统中对象的关系和行为这一特性,这需要在软件架构层面提供一种运行时的系统行为定义与改变的能力,根据常见架构风格的特点和适用环境,可以知道最合适的架构设计风格应该是解释器风格
某公司为其研发的硬件产品设计实现了一种特定的编程语言,为了方便开发者进行软件开发,公司拟开发一套针对该编程语言的集成开发环境,包括代码编辑、语法高亮、代码编译、运行调试等功能。针对上述描述,该集成开发环境应采用( )架构风格最为合适。
A. 管道—过滤器
B. 数据仓储
C. 主程序—子程序
D. 解释器
正确答案:正确答案: B
解析:
编程语言的集成开发环境需要提供代码编辑、语法高亮、代码编译、运行调试等功能,这些功能的特点是以软件代码为中心进行对应的编译处理与辅助操作。根据常见架构风格的特点和适用环境,可以知道最合适的架构设计风格应该是数据仓库风格。
软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和(请作答此空),并通过多种( )_全面描述特定系统的架构。
A. 实现方式
B. 交互作用
C. 设计方案
D. 测试方式
正确答案:正确答案: B
解析:
软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。
A. 对象
B. 代码
C. 文档
D. 视图
正确答案:正确答案: D
解析:
软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。
某公司拟开发一个 VIP 管理系统,系统需要根据不同商场活动,不定期更新 VIP 会员的审核标准和 VIP 折扣标准。针对上述需求,采用( )架构风格最为合适。
A. 规则系统
B. 过程控制
C. 分层
D. 管道-过滤器
正确答案:正确答案: A
解析:
根据题目中描述,VIP管理系统会根据不同商场活动,不定期更新VIP会员的审核标准和折扣标准,属于典型规则系统应用场景。
以下关于软件架构设计重要性的描述,()是错误的。
A. 软件架构设计能够满足系统的性能、安全性、可维护性等品质
B. 软件架构设计能够帮助项目干系人(Stakeholder)更好地理解软件结构
C. 软件架构设计能够帮助架构师更好地捕获和细化系统需求
D. 软件架构设计能够有效地管理系统的复杂性,并降低系统维护费用
正确答案:正确答案: C
解析:
软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。软件架构设计能够满足系统的性能、安全性、可维护性等品质;软件架构设计能够帮助项目干系人(Stakeholder)更好地理解软件结构;软件架构设计能够有效地管理系统的复杂性,并降低系统维护费用;软件架构设计对系统开发具有指导性;软件架构设计为系统复用奠定的基础;软件架构设计能够支持冲突分析。需要注意的是,软件架构设计与系统需求是直交的,两者并无必然联系。
某公司拟开发一个新闻系统,该系统可根据用户的注册兴趣,向用户推送其感兴趣的新闻内容,该系统应该采用( ) 架构风格最为合适。
A. 事件驱动系统
B. 主程序-子程序
C. 黑板
D. 管道-过滤器
正确答案:正确答案: A
解析:
根据题目的意思,用户会注册自己的兴趣,然后系统也会把新闻按兴趣分类,如果某个新闻事件发生,可以通过事件来触发推送动作,将新闻推送给对其感兴趣的用户。这是典型的事件驱动系统应用场景。