软件在运行和使用期间,没有机械磨损、老化问题。软件存在退化问题。软件退化缘于修改。
单选题】软件工程方法是( )。
A、为开发软件提供技术上的解决方法
B、为支持软件开发、维护、管理而研制的计算机程序系统
C、为了获得高质量软件而实施的一系列活动
D、为了理解问题和确定需求而采取的一些技术和方法
答案:A
解析:
为开发软件提供技术上的解决方法 ——软件工程方法(软件工程方法学)
为支持软件开发、维护、管理而研制的计算机程序系统 ——软件工程工具(软件工程方法学)
为了获得高质量软件而实施的一系列活动 ——软件工程过程(软件工程方法学)
为了理解问题和确定需求而采取的一些技术和方法 ——需求提取(需求分析-需求过程)
【单选题】“软件工程”术语是在( )被首次提出。
A、美国卡内基·梅隆大学的软件工程研究所
B、IEEE的软件工程知识体系指南(SWEBOK)
C、1968年NATO会议
D、Fred Brooks的《没有银弹:软件工程中的根本和次要问题》
答案:C
软件危机的产生主要是因为在程序系统阶段,软件技术的发展不能满足需要。一方面是由于软件本身的逻辑性,和程序的复杂性、规模庞大;另一方面是由于软件开发与维护的方法不正确。
【单选题】RUP定义了初启阶段、精化阶段、构建阶段、移交阶段,每个阶段以达到某个里程碑时结束,其中( )的里程碑是生命周期架构。
A、构建阶段
B、精化阶段
C、初启阶段
D、移交阶段
答案:B
解析:不同阶段对应的里程碑
初启阶段 - 生命周期目标
精化阶段 - 生命周期架构
构建阶段 - 初始可操作性能
移交阶段 - 产品发布
【单选题】下列关于敏捷联盟宣言的理解错误的是( )。
A、个体和交互胜过过程和工具,表明团队的构建比开发环境的构建重要得多
B、可以工作的软件胜过面面俱到的文档,表明过多的文档比过少的文档更糟糕
C、响应变化胜过遵循计划,表明项目计划不能考虑过远,只需要为下几周做详细计划即可,再远的时间可制定简略的规划
D、客户合作胜过合同谈判,表明成功的项目需要客户配合开发团队详细明确地制定合同,避免开发时关于工作内容的过多交互
答案:D
解析:敏捷过程认为规定了需求、进度和项目成本的合同在根本上是存在缺陷的,更重要的是客户在开发中充分互动和协作。
【单选题】瀑布模型是( )。
A、适用于需求被清晰定义的情况
B、一种需要快速构造可运行程序的好方法
C、一种不适用于商业产品的创新模型
D、目前业界最流行的过程模型
答案:A
解析:瀑布模型的缺点就是如果需求没有被很好地定义,会造成大量反馈浪费或产品和实际需求不符(因为它假设一开始需求就是定义好的)。因此特别适用于需求被清晰定义的情况。
单选题】极限编程采用( )工具来了解与需求相关的内容。
A、用户素材
B、访谈大纲
C、用例图
D、思维导图
答案:A
【单选题】以下关于极限编程(XP)的最佳实践的叙述中,不正确的是( )。
A、系统最终用户代表应该全程配合XP团队
B、只处理当前的需求,使设计保持简单
C、编写完程序之后编写测试代码
D、可以按日甚至按小时为客户提供可运行的版本
答案:C
解析:极限编程的每次迭代都要有对应的测试代码进行测试。
(先写测试,再写代码)
【单选题】下列关于瀑布模型的说法正确的是( )。
A、实际工作中,瀑布模型仅能依次经过需求、设计、编码、测试、集成和维护这一路径进行项目开发,不能从后一阶段返回到前面的阶段。
B、瀑布模型并非在每一阶段都要求生成相应的文档。
C、经典瀑布模型只有在需求阶段和运行阶段才能有客户方和用户的参与,其余阶段只能开发团队参加。
D、经典瀑布模型要求需求必须在最初阶段就要完整和明确。
答案:D
解析:
A、通过反馈环(就是指向上一个阶段的箭头),后一个阶段可以返回到前一个阶段。
B、瀑布模型是文档驱动的模型,它关心每一阶段的文档正确性(编码阶段也会生成相关文档),例如需求文档、设计文档、测试计划等。
C、瀑布模型并不限制客户方和用户的参与阶段。
【单选题】下列关于增量模型的说法正确的是( )。
A、增量模型并不要求需求在最初阶段就是完整和明确的。
B、增量模型能够更早的向用户交付第一个版本的系统。
C、相比于瀑布模型,采用增量模型开发的项目所需的成本和时间要少。
D、采用增量模型时,每一增量必须按照既定顺序依次开发,不能更改。
答案:B
解析:
A、增量模型需要完整和明确的需求,因为增量模型要在一开始就对整体架构进行设计。
C、开发的总成本和时间并不一定更少。增量模型的优点在于交付第一个版本的速度更快、开发的初期成本要求更少。
D、增量模型可以根据实际情况改变开发顺序,这是它管理风险的方式。
【单选题】原型化模型是( )。
A、适用于客户需求难以清楚定义的情况
B、适用于客户需求被明确定义的情况
C、很难产生有意义产品的一种冒险模型
D、提供一个精确表述的形式化规格说明
答案:A
解析:原型化模型利用原型能统一客户和开发人员对软件项目需求的理解,有助于需求的定义和确认。通过快速的原型迭代,原型化模型能把需求定义的更加清晰。
【单选题】下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是( )。
A、瀑布模型
B、增量模型
C、喷泉模型
D、演化模型
答案:C
解析:面向对象 ==> 喷泉模型
【单选题】增量模型是( )。
A、适用于需求被清晰定义的情况
B、一种需要快速构造核心产品的好方法
C、一种不适用于商业产品的创新模型
D、已不能用于现代环境的过时模型
答案:B
解析:增量模型的优点:快速交付第一个版本。
【单选题】以下关于原型化开发方法的叙述中,不正确的是( )。
A、原型化方法利于确认各项系统服务的可用性
B、在开发过程中,可以废弃不用早期构造的软件原型
C、原型化方法适用于需求不明确的软件开发
D、原型化方法可以直接开发出最终产品
答案:D
解析:原型化方法其实也可以直接开发出最终产品,但这是非常不推荐的,因为原型程序中可能存在非常多的缺陷。
单选题】某大型公司计划开发一款新产品,开发周期长,但是与重要客户相关的风险也很多,最适于采用( )开发过程模型。
A、原型
B、螺旋
C、瀑布
D、增量
答案:B
解析:螺旋模型的重点:控制风险。
【单选题】软件工程中描述生存周期的瀑布模型一般包括计划、( )、设计、编码、测试、维护等几个阶段。
A、问题定义
B、需求分析
C、需求调查
D、可行性分析
答案:B
【单选题】敏捷设计要求系统设计在任何时间都尽可能的简单、干净和富有表现力,下面对敏捷设计理解错误的是( )。
A、对于软件管理者来说,只需要做很少的管理工作
B、对于软件设计者来说,通过简单、直观的划分,使其具有最小耦合的内部结构
C、对于用户来说,通过直观、简单的界面呈现出恰当特征的程序
D、对于开发人员来说,每周都会取得一些重大进展
答案:A
解析:不管怎样,软件管理者都是重要的角色,他不应该没事干的。
同时,D选项其实也有一点问题,每周确实都会取得进展,但不一定是“重大”进展。
【单选题】衡量原型开发人员能力的重要标准是( )。
A、很强的组织协调能力
B、快速获取需求
C、灵活使用开发工具
D、丰富的编程技巧
答案:B
解析:原型开发和需求分析绑定了都,它就是用来弄需求的。
【单选题】下列软件哪个最适合采用敏捷开发方法( )。
A、小型创业项目软件
B、铁路12306购票网
C、Windows操作系统
D、火箭飞行控制系统
答案:A
解析:敏捷开发适合小型的,快速变化的软件开发。其中,B和C都是大型项目,BCD都不需要快速变化(D根本不需要适应变化)。
判断题】极限编程是采取必要的手段,充分挖掘软件开发团队人员的极限能力,在最短的时间内交付软件的开发方法。
答案:×
解析:“极限”的含义是指把最好的开发实践运用到极致,并不是指极限的快交付。
【判断题】V模型的本质是对瀑布模型的需求获取活动进行改造,有助于需求的定义和确认。
答案:×
解析:
- V模型的本质是对瀑布模型的需求获取活动进行改造,(进一步明确了设计环节和测试环节)。
- (将原型模型和瀑布模型结合),有助于需求的定义和确认。
【判断题】为了防止软件腐化,敏捷开发团队不需要一个成熟的初始设计,而是通过多次使用单元测试和验收测试,灵活、持续地改进设计。
答案:√
【判断题】使用快速原型模型收集了客户的真实需求之后,可以在这个原型基础上快速扩充得到最终的软件系统。
答案:×
解析:不能把原型开发成最终产品。
【判断题】RUP是可配置的过程,如各阶段持续时间的长短、每个阶段的迭代次数、不同迭代过程持续的时间等都是可变化和调整的因素,因此RUP具有通用性。
答案:√
【判断题】采用原型法时,关键的因素是建立模型的速度,而不是原型运行的效率。
答案:√
【判断题】软件过程有时也会被称为软件生命周期。
答案:√
【判断题】过程可以看做是一组精心安排的任务:包含有活动、约束和资源的一系列步骤,能产出某种特定输出。
答案:√
第三章
【单选题】结构化语言、判定表和判定树属于( )规格说明的描述工具。
A、控制
B、脚本
C、加工
D、数据描述
答案:C
解析:加工到后续开发中就成为一段程序,它的表达方式有判定表、判定树、结构化语言等。
【单选题】研发资源的有效性属于( )可行性的一部分。
A、社会/法律
B、技术
C、经济
D、操作
答案:B
解析:
侵权、版权、责任 ==> 法律可行性
研发、资源、技术、工具 ==> 技术可行性
成本、效益 ==> 经济可行性
操作方式、用户 ==> 操作可行性
解析:
①数据流:表示数据在系统中的流动或传递,可以抽象地表示数据的输入、输出、传输和转换过程。
②数据存储:表示数据在系统中的存储位置,可以抽象地表示数据的持久存储、临时存储或数据的来源和目的地。
这两个术语支持了数据的抽象,将数据视为系统中的实体,而不关注数据的具体内容或实现细节。
6.【单选题】
结构化分析模型中,支持数据抽象的是哪些术语( )。
①数据流 ②数据存储 ③数据源 ④数据汇 ⑤加工
A、①②③④
B、①②
C、③④
D、③④⑤
解析:【考点】抽象(PPT里没有,不知道从哪出的题)
数据流和数据存储支持数据抽象
数据源和数据汇支持系统边界抽象
加工支持过程抽象
【单选题】结构化分析阶段,不适用于描述加工逻辑的工具是( )。
A、层次图
B、判定表
C、结构化语言
D、判定树
答案:A
解析:加工逻辑的表达方式有判定表、判定树、结构化语言等。
解析:【考点】数据字典—用于写加工逻辑说明的工具(见题1)
结构化生命周期开发方法中,对结构化分析的工具有几种,其中判定树、判定表和结构化语言是用于描述数据加工环节的工具。
【单选题】下面关于DFD基本系统模型的描述中,错误的是( )
A、基本系统模型重点刻画了当前系统与外界环境之间的关系,即数据从哪些数据源点流入,最终又流向哪些数据终点。
B、基本系统模型中只有一个加工/处理,代表目标软件系统。
C、对于复杂的系统常采用分层绘制DFD的方法,应该最先画出基本系统模型。
D、从基本系统模型中可以看出目标系统的主要功能有哪些。
答案:D
解析:基本系统模型中只有一个加工/处理,代表目标软件系统,无法看出具体功能。
析:【考点】数据流图—基本系统模型
顶层数据流图=基本系统模型+源点和终点
而顶层数据流图是一个由系统名为中心,周围分布着实体,实体与系统之间的关系用箭头连接,箭头上写的是所传数据的一个图。它只表示了数据的流向情况,并没有细分出目标系统应该实现的主要功能。(只能体现出系统于外界实体之间的交互,但是系统内部的情况是没有体现的)
【单选题】下面关于数据流图(DFD)基本符号元素的说明中,错误的是( )。
A、加工/变换/处理是对数据进行处理的单元,输入数据经过加工/变换/处理后将转换成相应的输出数据。
B、数据流由一组数据项组成,表示运动中的数据,它可以在其它三类符号元素之间任意流动。
C、源点和终点是系统之外的实体,可以是人、物或其他软件系统。源点和终点是为了帮助理解系统接口而引入的。
D、数据存储/文件用来暂时存储数据的,表示处于静止状态的数据。
答案:B
解析:数据流不能在源点、终点、数据存储之间流动。
解析:【考点】数据流图—基本符号元素
数据流的流向有规定,它可以从加工流向加工,可以从源点流向加工,从加工流流向终点,可以从加工流向数据存储,可以从数据存储流向加工。其他的不行。
单选题】以下说法正确的是( )。
A、数据流图中的每个加工必须在数据字典的加工说明中予以定义
B、数据流图中的图形元素个数应当控制在7+2以内
C、数据流图绘制时为方便起见,通常先为加工命名,再为与之相关联的数据流命名
D、数据流图中的每个数据流和数据存储必须在数据字典中予以定义
答案:D
解析:
A、对于一些简单的加工过程可以直接写在数据字典的条目里,而如果是一些很复杂的加工就要使用判定表等方式来进行记录。数据流图中最底层的加工处理必须有加工处理说明
B、一个加工的分解子加工个数应当控制在7+-2以内。
C、通常先为数据流命名,然后再为与之相关联的处理命名。
D:每个数据流和数据存储都要在数据字典中有定义,数据字典将包括各层数据流图中数据元素的定义。
【单选题】在可行性研究过程中,对每一个合理的候选方案,分析人员都应准备如下资料( )。
A、1、2、3全部
B、1、系统流程
C、3、实现该系统的进度计划
D、2、组成系统的物理元素清单、成本―效益分析
答案:A
【单选题】DFD的每个加工都必须至少有( )。
A、一个输出数据流
B、一个输入和输出数据流
C、一个输入或输出数据流
D、一个输入数据流
答案:B
【单选题】进行需求分析可使用多种工具,但( )是不适用的。
A、数据流图
B、数据词典
C、PAD图
D、判定表
答案:C
解析:PAD图用二维树形结构的图来表示程序的控制流,是一种过程设计工具。一般用在详细设计阶段。
解析:【考点】需求分析—需求分析建模
需求分析建模分为面向过程分析模型、面向对象分析模型
- 面向过程分析模型对应结构化分析法
- 首先,结构化分析法中用于加工的工具有:结构化语言、判定表、判定树
- 其次是下图提到的工具
- 面向对象分析模型对应面向对象的软件开发模型。
- 数据模型(对象模型):描述系统数据结构的对象模型
- 行为模型(动态模型):描述系统控制结构
- 功能模型:描述系统功能
【单选题】下面关于数据流图(DFD)的描述中,错误的是( )。
A、DFD是一种图形化技术,描绘了信息流和数据从输入移动到输出的过程中所经受的变换。
B、DFD除了刻画了系统的基本逻辑功能之外,也展现了这些功能将会如何实现的设计决策。
C、DFD描绘数据在软件中流动和被处理的逻辑过程,是系统逻辑功能的图形表示。
D、DFD简单易懂,方便分析员与用户之间的沟通。
答案:B
解析:DFD不包括具体实现,只是一个逻辑模型。
【判断题】需求规格说明书可以做为软件可行性研究的依据。
答案:×
解析:需求规格说明书在软件开发过程中起到指导和定义需求的作用,它是根据可行性研究的结果来进行编写的,而不是作为可行性研究的依据。
也可以从生命周期的阶段顺序看出来:问题定义阶段 => 可行性研究阶段 => 需求分析阶段。需求分析是在可行性分析后面的
【判断题】在结构化分析方法中,可以使用判定表与判定树来表达系统内数据的运动情况。
答案:×
解析:判定表和判定树只能表示加工/变化内部的逻辑结构,无法表示数据流动。
- 判定树和判定表是用于描述结构化分析方法中(数据加工)环节的工具。
- 可以使用(数据流图)表达系统内数据的运动情况的工具。
判断题】可行性研究报告应评述为了合理地达到开发目标而可能选择的各种方案,以便用户抉择。因此,编写者不必提出结论。
答案:×
解析:可行性研究的任务是为以后的行动方针提出建议。如果问题没有可行的解,应建议停止项目。如果问题值得解,应推荐一个较好的解决方案,并为项目制定一个初步的计划。
第四章
【单选题】快速原型化思想是在研究( )阶段的方法技术中产生的。
A、程序编码
B、软件设计
C、可行性研究
D、需求分析
答案:D
解析:快速原型化思想是在需求分析-需求提取中使用的技术。
【单选题】我们通常把确定需求,或者说确定系统应提供哪些服务以及系统运行受到哪些限制的过程及其相关的活动称之为( )。
A、软件过程
B、需求过程
C、软件需求
D、软件说明
答案:B
【单选题】软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及( )。
A、总结
B、需求分析评审
C、阶段性报告
D、以上答案都不正确
答案:B
解析:对问题的识别(需求提取)、分析与综合(需求分析与协商)、编写需求分析文档、需求分析评审(需求确认)
【单选题】传统结构化需求分析的目的是理清数据流或数据结构,导出完整的、精致的( )。
A、系统物理模型
B、数据流图
C、系统结构图
D、系统逻辑模型
答案:D
解析:不选数据流图,数据流图至少要和数据字典组合才能称为逻辑模型。
需求分析的任务有:
- 确定对系统的综合要求
- 分析系统的数据要求
- 导出系统的逻辑模型
- 修正系统开发计划
【单选题】以下哪种方法最适用于身处多个不同地点的人在各自方便的时间参与并围绕同一个主题表达自己的观点?
A、面向数据流自顶向下求精
B、简易的应用规格说明技术
C、问卷调查
D、面谈
答案:C
解析:A和身处多个不同地点的人没什么关系;B是需要组织会议共同讨论的,也不行。
【单选题】软件需求分析的任务不应包括( )。
A、信息域分析
B、问题分析
C、确定逻辑模型
D、结构化程序设计
答案:D
解析:结构化程序设计是需求分析的下一个环节。
【单选题】以下( )是满足软件需求特征的非功能性需求的描述。
A、系统提供的用户界面应该是用户友好的。
B、系统能够对用户提供查询、修改和打印工资数据的功能。
C、系统应该能及时返回对目标对象的准确定位。
D、来自调度站的响应应该在1分钟内到达。
答案:D
解析:非功能性需求:可靠性、有效性、性能、可用性、健壮性、完整性。
D:性能
- 功能需求是【计算、操作数据等活动】,规定产品要做什么事情,来满足业务,一般用动词+名词描述。
- 非功能需求是【描述产品要做到何种程度】,【为产品增加某些特征的需求】,相当于【修饰产品的形容词】。
【单选题】下列哪项需求描述属于业务需求描述?
A、我们公司的主营业务是销售飞机票
B、我们的目标是让客户将我们的品牌和高质量联系在一起
C、我们的任务是无缝集成有竞争力的软件信息服务来解决商业问题
D、公司网站上销售的产品必须满足所有食品药品监管需求
答案:A
件非功能性需求,是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括安全性、可靠性、互操作性、健壮性等。
- 功能需求是【计算、操作数据等活动】,规定产品要做什么事情,来满足业务,一般用动词+名词描述。
- 非功能需求是【描述产品要做到何种程度】,【为产品增加某些特征的需求】,相当于【修饰产品的形容词】。
【单选题】下列哪项不是需求规约的性质。
A、不可修改性
B、一致性
C、有效性
D、完整性
答案:A
解析:需求规约性质: 一致性、完整性、现实性、有效性
【判断题】软件需求是待开发产品或系统的功能描述。
答案:×
解析:软件需求不仅有功能需求,还有非功能需求,以及对设计、制造的约束。
【判断题】非功能需求必须依附于功能需求而存在。
答案:√
【单选题】下面关于面向数据流的设计方法的描述中,不正确的是( )。
A、任何一个信息处理系统的信息流都可以看作是一个变换流,只有当其具有明显的“事务”特征(即有一个明显的事务中心)时,才按照事务分析的映射规则进行转换。
B、面向数据流的设计方法可以利用前面需求阶段得到的数据流图,按照一定的映射规则生成相应的软件结构图。
C、数据流图有可能全局特征是变换流,而局部区域属于事务流,反之易可,所以在进行向软件结构图的转换过程中要区分全局特征和局部特征。
D、按照变换分析或事务分析从数据流图出发转换得到的软件结构图就是最终的软件总体设计结果,不需要再进行任何的调整和优化。
答案:D
解析:变换分析第七步:使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。
【单选题】关于软件设计规约,以下说法错误的是( )。
A、概要设计规约对应于系统的确认测试
B、详细设计规约主要作为软件设计人员与编程人员之间交流的媒体
C、概要设计规约主要作为软件项目管理人员、系统分析人员与设计人员之间交流的媒体
D、详细设计规约对应于系统的单元测试
答案:A
解析:
概要设计 - 系统测试
需求分析 - 确认测试
【单选题】( )着重反映的是模块间的隶属关系,即模块间的调用关系和层次关系。
A、实体关系图
B、系统结构图
C、程序流程图
D、数据流图
答案:B
解析:【考点】系统结构图
- 实体关系图(E-R图):提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型;
- 系统结构图:是结构化设计方法使用的描述方式,也称结构图或控制结构图。它表示了一个系统(或功能模块)的层次分解关系,模块之间的调用关系,以及模块之间数据流和控制流信息的传递关系,它是描述系统物理结构的主要图表工具;
- 程序流程图:又称程序框图,是用统一规定的标准符号描述程序运行具体步骤的图形表示;
- 数据流图:简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法;
【单选题】如果一个模块调用下层模块时传递一个数据结构,而被调用的模块只使用其中一部分数据,这种耦合属于( )。
A、数据耦合
B、控制耦合
C、内容耦合
D、标记耦合
答案:D
【单选题】软件体系结构风格代表了软件体系结构设计中的惯用模式,在下面几种体系结构风格中,( )支持基于抽象程度递增的系统设计。
A、隐式调用风格
B、黑板风格
C、管道-过滤器风格
D、层次系统风格
答案:D
层次系统风格优点:支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解。
【单选题】( )把已确定的软件需求转换成特定形式的软件表示,使其得以实现。
A、详细设计
B、系统设计
C、逻辑设计
D、软件设计
答案:D
解析:软件设计是将需求准确转换为完整的软件产品或系统的唯一办法;
需求 ==> 软件实现,这整个过程是软件设计。
【单选题】模块内聚性用于衡量模块内部各成份之间彼此结合的紧密程度。模块中所有成分引用共同的数据,该模块的内聚性是( )的。
A、过程内聚
B、通信内聚
C、功能内聚
D、顺序内聚
答案:B
单选题】以下( )不是总体设计环节的工作。
A、结构设计,即确定系统由哪些模块组成,以及这些模块之间的关系
B、过程设计,即确定每个模块的具体实现算法和使用的局部数据结构
C、确定系统的最佳实现方案
D、制定测试计划,在软件开发的早期阶段考虑测试问题,可以促使软件设计人员在设计时注意提高软件的可测试性
答案:B
典型的总体设计过程包括以下9个步骤:
- 设想供选择的方案
- 选取合理的方案
- 推荐最佳方案
- 功能分解
- 设计软件结构
- 设计数据库
- 制定测试计划
- 书写文档
- 审查和复审
【单选题】软件体系结构风格代表了软件体系结构设计中的惯用模式,在下面几种体系结构风格中,( )适合构造批处理的系统。
A、管道/过滤器风格
B、数据抽象与面向对象风格
C、黑板风格
D、客户机-服务器风格
答案:A
【单选题】管道过滤器风格的特点不包括( )。
A、适合处理与用户有交互的应用
B、该风格使得软构件具有良好的隐蔽性和高内聚、低耦合的特点
C、支持软件重用和构件的并行执行
D、允许对吞吐量和死锁等系统性质的分析
答案:A
【单选题】关于程序模块化的启发规则有若干条,以下规则中不符合模块化原则的是( )。
A、将模块的作用范围限制在模块的控制范围之内
B、降低上层模块的扇出, 提高中层模块的扇出
C、通过模块的合并和分解,降低模块的耦合度,提高模块的内聚性
D、降低模块之间接口的复杂性,避免“病态连接”
答案:B
解析:模块化原则更看重模块的独立,而且一般是增加上层的扇出。
解析:【考点】启发规则
- 启发规则有:
- 改进软件结构提高模块独立性
- 模块规模应适中
- 深度、宽度、扇出扇入都应适当
- 设计得好的系统,上层模块有较高的扇出,下层模块有较高的扇入。其结构图像清真寺的塔,上面尖、中间宽、下面小。
- 模块的作用域应该在控制域内
- 力争降低模块接口的复程度
- 设计单入口单出口的模块
- 模块功能应该可以预测,避免过多限制
【单选题】下列对软件体系结构的描述错误的是( )。
A、软件体系结构是对子系统、系统构件以及它们之间相互关系的描述。
B、子系统和构件一般定义在不同的视图内,以显示软件系统的相关功能属性和非功能属性。
C、软件体系结构是软件系统的一组关键设计决策。
D、软件体系结构是软件需求活动的一种工作产品。
答案:D
【单选题】下面的( )不是模块化设计的目的。
A、提高模块的可靠性和复用性
B、清楚地描述系统的功能和性能
C、易于维护和功能扩展
D、降低程序设计的复杂性
答案:B
解析:模块设计的目的:降低模块之间的依赖关系,使各模块更加独立和可维护。
模块化设计的目的:为了降低程序复杂度,使程序设计、调试和维护等操作简单化。
软件设计原理(准则)有:
- 模块化与模块独立
- 抽象
- 逐步求精
- 信息隐藏
- 局部化
【判断题】模块的控制域必须在模块的作用域内。否则,必须将判定上移或将受影响的模块下移。
答案:×
解析:模块的作用域应该在控制域之内。
【判断题】基于事件/隐式调用风格增加了构件之间进行数据交换的难度。
答案:√
【判断题】信息隐藏是指把一些关系密切的元素物理地放得彼此靠近。
答案:×
解析:
信息隐藏:模块应该设计成其中包含的信息(过程和数据)对不需要这些信息的其他模块来说是不可访问的。
局部化:指把一些关系密切的软件元素物理地放得彼此靠近 。
【判断题】错误处理类模块是典型的逻辑内聚模块。
答案:√
【判断题】变换分析得到的结构图是一个三分支结构,即包括输入部分、变换中心部分和输出部分;而事务分析得到的结构图是一个二分支结构,即一个接收分支和一个发送分支。
答案:√
第六章
2.【单选题】程序片段如下。则其环形复杂度V(G)的值为( )。
A、5
B、6
C、4
D、3
解析:【考点】程序复杂度的定量度量—环形复杂度计算
8.【单选题】不属于详细设计工具的是( )。
A、PDL(伪码)
B、PAD图(问题分析图)
C、N-S图(盒图)
D、DFD
解析:【考点】详细设计工具
数据流图(DFD)
10.【单选题】软件详细设计的图形工具中,(B )可以纵横延伸,图形的空间效果好。
A、流程图
B、PAD图
C、HIPO图
D、N-S图
HIPO图:是美国IBM公司发明的“层次图加输入/处理/输出图” 的英文缩写。 和层次图中每个方框相对应,应该有一张IPO图描绘这个方框代表 的模块的处理过程
12.【单选题】人机界面设计是软件设计工作的一项重要内容,下面各项中( )不属于良好的人机界面设计原则。
A、出错信息应该使用面向用户的术语并为用户提供有助于从错误中恢复的建设性意见
B、减少用户的记忆负担
C、系统的响应时间越短越好
D、帮助系统应该为用户提供多个可能的入口
答案:C
解析:【考点】人机界面设计— 应该考虑的设计问题
C、系统响应时间有两个重要的属性,分别是长度和易变性。系统响应时间的长短应该适当,而且应该尽量稳定,不是越短越好。
1.【判断题】详细设计评审应尽可能和概要设计评审一同进行。
答案:×
没查到,也许是先概要设计评审,再详细设计评审?
第七章
2.【单选题】等价划分法的一个假设是,每类中的一个(D )在测试中的作用与这一类中所有其他值的作用相同。
A、最大值
B、最小值
C、边界值
D、典型值
解析:【考点】黑盒测试技术—等价划分法
等价划分法的一个假设是,每类中的一个典型值再测试中的作用与这一类中所有其他值的作用相同。
3.【单选题】逻辑覆盖标准主要用于白盒测试。它主要包括语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖和条件组合覆盖等几种。其中,最弱的覆盖标准是( A)。
A、语句覆盖
B、判定覆盖
C、条件组合覆盖
D、条件/判定覆盖
解析:【考点】白盒测试技术—逻辑覆盖
4.【单选题】下列叙述中,符合程序设计风格指导原则的5条叙述是(b )。
① 嵌套的重数应加以限制。 ② 尽量多使用临时变量。 ③ 不滥用语言特色。
④ 不用可以省略的括号。⑤ 使用有意义的变量名。 ⑥ 应尽可能把程序编得短些。
⑦ 把常见的局部优化工作留给编译程序去做。 ⑧ 注解越少越好。
⑨ 程序的格式应有助于读者理解程序。 ⑩ 应尽可能多用GOTO语句。
A、②③⑤⑥⑦
B、①③⑤⑦⑨
C、①④⑤⑧⑨
D、②④⑤⑦⑨
解析:【考点】程序设计风格
5.【单选题】如果在某班级管理系统中,班级的班委有班长、副班长、学习委员和生活委员,且学生年龄在15~25岁。若用等价类划分来进行相关测试,则( )不是好的测试用例。
A、(班长,20)
B、(班长,15)
C、(队长,15)
D、(队长,12)
答案:D
解析:【考点】黑盒测试—等价划分—选择测试用例(见题2)
一个测试用例里,要尽可能多地包含有效等价类,但只能包含一个无效等价类。
本题的有效等价类有:(1)担任班长、副班长、学习委员或者生活委员
(2)学生年龄在15-25岁之间
本题的无效等价类有:(1)担任除班长、副班长、学习委员、生活委员之外的班委
(2)学生年龄小于15岁
(3)学生年龄大于25岁
D选项包含了两个无效等价类;
8.【单选题】给定C语言程序如下:
当用路径覆盖法进行测试时,至少需要设计( )个测试用例。
A、3
B、5
C、4
D、8
解析:【考点】白盒测试—逻辑覆盖
.【单选题】下列不属于软件配置复查目的的是( )。
A、确保文档与程序完全一致
B、保证软件配置的所有成分都齐全
C、确保软件具有完成测试所必须的细节
D、确保软件质量符合要求
解析:【考点】软件配置复查—目的
C.应改为具有完成软件维护所必须的细节
10.【单选题】下面的( )是错误的。
A、在程序设计中应尽可能对程序代码进行优化
B、在程序设计中使用括号以改善表达式的清晰性
C、不要修补不好的程序,要重新写
D、不要在注释中重复描述代码
解析:【考点】编码风格:语句构造(只摘取部分)
11.【单选题】单元测试的重点包括模块接口、(d )、重要的执行通路、出错处理通路和边界条件。
A、不正确或遗漏的功能
B、外部信息访问
C、初始化或终止性错误
D、局部数据结构
解析:【考点】软件测试—单元测试
单元测试测试重点:模块接口、局部数据结构、重要的执行通路、出错处理通路、边界条件。
12.【单选题】黑盒测试注重于测试软件的功能性需求,主要用于软件的后期测试。 ( )不能用黑盒测试检查出来。
A、程序控制结构错误
B、功能不对或遗漏错误
C、界面错误
D、外部数据库访问错误
答案:A
3.【单选题】在改正当前故障的同时可能会引入新的故障,这时需要进行 ( )。
A、性能测试
B、验收测试
C、功能测试
D、回归测试
解析:【考点】回归测试
16.【单选题】关于代码性能优化,下面( )是错误的。
A、应先通过测试找出限制效率的真正瓶颈
B、应以提高程序的全局效率为主,局部效率为辅
C、要优先改进耗时最多的部分
D、任何优化都不能破坏代码的正确性
解析:【考点】代码性能优化(没找到)
虽然性能分析工具指明了程序各个部分的耗时,但这也不意味我们改进效率一定要优先改进耗时最多的部分。固然,改进耗时最多的部分往往能得到最明显的效果,但这并不意味耗时最多的部分很容易改进。像上文所示的Split函数,虽然其耗时并非最多,但由于其改进非常简单,有时反而会成为我们优先改进的对象。在实际项目中,我们要在改进所能得到的效果以及改进所要投入的精力之间妥协,优先完成有能力做而效果又比较明显的性能优化。
集成测试是测试和组装软件的系统化技术,进行集成测试时可以采用非渐增式测试和渐增式测试,其中渐增式测试实质上是同时完成单元测试和集成测试。
答案:√
6.【判断题】判定覆盖法则一定可以查出在判定中某些条件中关系运算符使用有误时产生的错误。
答案:×
7.【判断题】程序的McCabe环形复杂度决定了程序中独立路径的数量,而且这个数是确保程序中所有语句至少被执行一次所需的最少测试用例数量。
答案:×
环形复杂度定量度量程序的逻辑复杂性。使用基本路径测试法设计测试用例时,程序的环形复杂度决定了程序中独立路径的数量,而且这个数是确保程序中所有语句至少被执行一次所需的测试数量的上界。
计算好流图的环形复杂度,便可以知晓程序独立路径的条数。所谓独立路径就是从流图开始的地方到结束的地方的通路。独立路径的数量等于流图的环形复杂度。上面例子的环形复杂度为6,所以独立路径总共有6条。
判断题】软件测试的目的是尽可能地发现程序中的错误和缺陷,详细严密的测试过程可以证明软件的正确性。
答案:×
9.【判断题】测试分析报告应把每个模块实际测试的结果,与软件需求规格说明书和概要设计说明书中规定的要求进行对照并作出结论。
答案:×
每个模块的实测结果是单元测试的结果,不应使用需求信息和概要设计(体系结构)信息来做结果比较。
第八章
4.【单选题】( C)是从现有的程序代码中抽取有关数据、体系结构和处理过程的设计信息,以便恢复设计结果。
A、正向工程
B、数据重构
C、逆向工程
D、代码重构
解析:【考点】软件再工程过程—逆向工程
5.【单选题】下面的( B)不是软件再工程活动。
A、程序结构改善
B、增加新的功能
C、数据再工程
D、逆向工程
解析:【考点】软件再工程(见题4)
软件再工程活动包括:库存目录分析、文档重构、逆向工程、代码重构、数据重构、正向工程
6.【单选题】符合下列5个叙述的软件特性名称及顺序是( A)。
①软件从一个计算机系统或环境转移到另一个计算系统或环境的容易程度。
②软件在需要它投入使用时能实现其指定的功能的概率。
③软件使不同的系统约束条件和用户需求得到满足的容易程度。
④在规定的条件下和规定的一段期间内,实现所指定的功能的概率。
⑤尽管有不合法的输入,软件仍能继续正常工作的能力。
A、可移植性 可使用性 兼容性 可靠性 容错性
B、可移植性 可靠性 可修改性 可使用性 容错性
C、一致性 可靠性 可移植性 可使用性 可修改性
D、可测试性 可靠性 可理解性 可修改性 兼容性
解析:【考点】软件的可维护性—决定软件可维护性的因素(不只考了可维护性,其他的没找到在哪)
8.【单选题】以下关于提高软件可维护性的措施中,错误的是( )。
A、尽可能利用硬件特点以提高程序效率。
B、在分析用户需求时同时考虑维护问题。
C、不要修补不好的程序,要重新编写。也不要一味地追求代码的复用,要重新组织。
D、把与硬件及操作系统有关的代码放到某些特定的程序模块中。
没查到,难道是利用软件特点以提高程序效率?
9.【单选题】以下关于软件可维护性的叙述中不正确的是( )。
A、可维护性可以从可理解性、可靠性、可测试性、可重用性、可移植性等方面进行度量。
B、可维护性不受软件开发文档的影响。
C、可维护性是软件开发阶段各个时期的关键目标。(没查到)
D、可维护性是衡量软件质量的一个重要特性。
解析:【考点】软件可维护性(CD没查到,看一眼)
11.【单选题】下面关于软件维护的描述中,错误的是( )。
A、在软件产品刚刚进入使用阶段的初期,改正性维护的要求比较多。
B、一般情况下,在几种维护活动中,完善性维护所占的比重最大,即大部分维护工作是改变和加强软件,而不是纠错。
C、软件维护大多是救火式的紧急维修,一少部分可以是有计划的一种再开发活动。
D、软件维护活动所花费的工作占整个软件生存期工作量的70%以上,因此在软件开发的各个阶段都要努力提高软件的可维护性。
解析:【考点】软件维护(AD没查到,看一下)
1.【判断题】提高可维护性是在软件维护阶段考虑的问题。
答案:×
2.【判断题】为了提高软件日后的可用性和可维护性,软件组织应该为自己的所有遗留软件进行软件再工程。
答案:×
3.【判断题】代码重构是最常见的再工程活动,关注个体模块中存在的问题并完善软件的整体架构。
答案:×
此重构并不修改整体的程序体系结构,它仅关注个体模块的设计细节以及在模块中定义的局部数据结构。
4.【判断题】数据重构发生在较低的抽象层次上,是一种全范围的再工程活动。
答案:√
第九章
UML的设计视图包含了类、接口和协作。其中,设计视图的静态方面由类图和对象图表现,而动态方面由交互图、(C )表现。
A、类图和顺序图
B、对象图和状态图
C、状态图和活动图
D、状态图和类图
在面向对象分析中仅仅关注把概念组织成分析类之间的泛化关系,而不能用复用的形式来解释。
答案:√
在 进行软件模块结构设计时应当遵循的最主要的准则是 (模块独立)
采用面向对象方法开发软件,递常需要建立三种形式的模型,它们分别描述系统数据结构的 (14)该模型主要用(15)来展现:描述系统控制结构的(16) 该模型通常用(17)来 表示,插述系统功能的(18)该模型通常用(19)来刻画。
(14)A.功能模型
B.对象模型
C.动态模型
D.操作模型
(15)A.交互图
B.构件图 C.用例图 D.对象图和类图
(16)A.功能模型 B.对象模型 C.动态模型 D.操作模型
C.用例图 D.对象图和类图 B.部署图 (17)A.顺序图和状态图 b.棵作葆型 B.对象模型 C.动态模型 (18)A.功能模型 B.用例图 C.组合结构图 D.顺序图和状态图 (19) A对象图和类图
本文使用 文章同步助手 同步