软件工程——理论与实践(第二版)课后习题整理

第一章

1.选择题
(1)下列说法中正确的是( B )。
A.20 世纪50年代提出了软件工程的概念
B.20世纪60年代提出了软件工程的概念
C.20 世纪70年代出现了客户机/服务器技术
D.20 世纪80年代软件工程学科达到成熟
(2)软件危机的主要原因是( D)。
A.软件工具落后 B.软件生产能力不足
C.实行严格的产品控制 D.软件本身的特点及开发方法
(3)软件工程的3个要素是(C )。
A.技术、方法和工具 B. 方法、对象和类
C.方法、工具和过程 D.过程、模型和方法
(4)在下列选项中,( A)不属于软件工程学科研究的基本内容。
A.软件工程材料 B.软件工程方法C.软件工程原理D.软件工程过程
判断题
(1)软件就是程序,编写软件就是编写程序。(×)
(2)软件危机的主要表现是软件需求增加,软件价格上升。(×)
(3)软件工程学科出现的主要原因是软件危机出现。(√)
(4)软件工具的作用是延长软件产品的寿命。(×)

第二章

(1)增量模型本质上是一种( c )。
A.线性顺序模型B.整体开发模型外C.非整体开发模型D.螺旋模型
(2)软件过程是( C)。
A.特定的开发模型 B.一种软件求解的计算逻辑
C.软件开发活动的集合 D.软件生命周期模型
(3)软件生命周期模型不包括(B)
A.瀑布模型 B.用例模型 C.增量模型 D.螺旋模型
(4)包含风险分析的软件工程模型是( A)
A.螺旋模型 B.瀑布模型 C.增量模型 D.喷泉模型
(5)软件工程中描述生命周期的瀑布模型一般包括计划、需求分析、设计、编码、(D)等维护等几个阶段。
A.产品发布 B.版本更新 C.可行性分析 D.测试
(6)软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( C)。
A.分析阶段 B.设计阶段 C.编码阶段 D.测试阶段
(7)螺旋模型综合了(B)的优点,并增加了风险分析。
A.增量模型和喷泉模型 B.瀑布模型 和快速原型模型
C.瀑布模型和喷泉模型 D.快速原型模型和喷泉模型
2. 判断题
(1)瀑布模型最大的优点是将软件开发的各个阶段划分得十分清晰。(X)
(2)螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(X)
(3)软件工程过程应该以软件设计为中心,关键是编写程序。(X)
(4)极限编程属于增量模型。(X)

第三章

1.选择题
(1)可行性研究也称为( D)
A.技术可行性研究 B. 操作可行性研究
C. 经济可行性研究 D. 项目论证
(2)( A)研究在是系统开发过程中难度最大的工作,是可行性研究的关键。
A.技术可行性 B. 操作可行性 C. 经济可行性 D.风险可行性
(3)研究软硬件资源的有效性是进行( A)研究的方面。
A.技术可行性 B.经济可行性 C.社会可行性 D. 操作可行性
(4)软件开发计划是软件工程中的一种(B)性文档。
A.技术 B.管理 C.检索 D.文献
2.判断题
(1)软件开发计划是软件工程中的一种技术性文档。(X)
(2)可行性研究过程也称为项目论证过程。(√)
(3)投资回收期越长,获得利润的速度就越快,该项目就越值得开发。(X)
(4)代码行技术是成本估算技术的一种。(√)

第四章

  1. 选择题
    (1)在需求分析之前有必要进行( B )工作。
    A.程序设计 B. 可行性研究 C. E-R分析 D.行为建模
    (2)需求分析是一个( D )、它应该贯穿于系统的整个生命周期,而不是仅仅属于软件生命周期早期的项工作。
    A.概念 B.工具 C.方法 D.过程
    (3)软件需求规格说明书的内容不应该包括( B)
    A. 对重要功能的描述 B.对算法的详细过程描述
    C. 对数据的要求 D.软件的性能
    (4)软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写 需求分析文档以及( C )。
    A.总结 B.阶段性报告 C.需求分析评审 D.以上答案都不正确
    (5)进行需求分析可使用多种工具,但(B)是不适用的。
    A.数据流图 B. PAD图 C.状态转换图 D.数据词典
    (6)数据流图是进行软件需求分析的常用图形工具,其基本图形符( C )。
    A.输人、输出、外部实体和加工 B.变换、加工、数据流和存储
    C. 加工、数据流、数据存储和外部实体D.变换、数据存储、加工和数据流
    (7)结构化分析方法的基本思想是(B)
    A.自底向上逐步分解 B.自顶向下逐步分解
    C.自底向上逐步抽象 D.自顶向下逐步抽象
    (8)在E-R图中,包含以下基本成分(D)
    A.数据、对象、实体 B. 控制、关系、对象
    C.实体、关系、控制 D.实体、属性、关系
    2.判断题
    (1)用于需求 分析的软件工具,应该能够保证需求的正确性,即验证需求的-致性 、完整性、现实性和有效性。(√)
    (2)需求分析是开发方的工作,用户的参与度不大。(X)
    (3)需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性研究的依据。(X)
    (4)需求分析的主要目的是解决软件开发的具体方案。(X)
    5)需求规格说明书描述了系统每个功能的具体实现。(X)
    (6)非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。(√)
    (7)需求分析阶段的成果主要是需求规格说明书,但该成果与软件设计、编码测试直至维护关系不大。(X)
    (8)分层的DFD图可以用于可行性研究阶段,描述系统的物理结构。(X)
    (9)信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R图. (√)
    (10)在需求分析阶段主要采用图形工具来描述的原因是图形的信息量大,便于描述大规模的软件系统。(X)
    (11)设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能。(√)

第六章

1.选择题
(1)在面向对象技术中,对象是类的实例。对象有3种成分:©、属性和方法(或操作)。
A.标识 B.继承 C.封装 D.消息
(2)以下哪一项不是面向对象的特征? ( D.)
A.多态性 B.继承性 C. 封装性 D.过程调用
(3)汽车有一个发动机,汽车和发动机之间的关系是(B)关系。
A. 组装 B. 整体部分 c.分类 D.一般具体
(4)( D)是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界隐藏的,外界只能通过有限的接口与对象发生联系。
A. 多态性 B.继 C.消息 D.封装
(5)面向对象的主要特征除了对象唯一性、封装、继承外,还有(D)。
A.兼容性 B. 完整性 C.可移植性 D.多态性
(6)关联是建立(B)之间关系的一种手段。
A.对象 B.类 C.功能 D.属性
(7)面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(B)一个子类获得其父类的全部描述(数据和操作)。
A.兼容性 B.继承性 C.复用性 D.多态性
(8)所有的对象可以成为各种对象类,每个对象类都定义了一组(D )。
A.说明 B.类型 C.过程 D.方法
(9)通过执行对象的操作改变对象的属性,但它必须通过( B )的传递。
A.操作 B.消息 C.信息 D.继承
(10)UML是软件开发中的一个重要工具, 它主要应用于( D)。
A. 基于螺旋模型的结构化方法 B. 基于需求动态定义的原型化方法
C.基于数据的数据流开发方法 D. 基于对象的面向对象的方法
(11)( C )是从用户使用系统的角度描述系统功能的图形表达方法。
A. 类图 B.活动图 C.用例图 D.状态图
(2)( B)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.类图 B. 顺序图 C.状态图 D.协作图
2.判断题
(1)UML是一种建模语言,是种标准的表示,是一种方法。(×)
(2)类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。(×)
(3)在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例, 对象是生成类的模板。(×)
(4)顺序图描述对象是如何交互的并且将重点放在消息序列上。(√)
(5)继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系。(×)
(6)多态性增强了软件的灵活性和重用性,允许用更为明确、易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的重用性和可扩充性。(×)
(7)类封装比对象封装更具体。要细致。(×)
(8)用例之间有扩展、使用、组客等几种关系。(×)
(9)活动图显示动作及其结果,着重描述操作实现中完成的工作,以及用例实例或类中的活动。(×)
( 10) UML支持面向对象的主要概念,并与具体的开发过程相关。(×)
(11)部署图描述系统硬件的物理拓扑结构以及在此结构上执行的软(√)

第七章

  1. 选择题
    (1)面向对象模型主要由以下哪些模型组成? ( A )
    A. 对象模型、动态模型、功能模型B.对象模型、数据模型、功能模型
    C. 数据模型、动态模型、功能模型D.对象模型、动态模型、数据模型
    (2)面向对象分析的首要工作是建立(D).
    A. 系统的动态模型 B.系统的功能模型
    C.基本的E-R图 D.问题的对象模型
    (3)面向对象的分析方法主要是建立3类模型,即( B )
    A. 系统模型、E-R模型、应用模型
    B. 对象模型、动态模型、功能模型
    C. E-R模型、对象模型、功能模型
    D. 对象模型、动态模型、应用模型
    (4)在面向对象分析阶段建立的3个模型中,核心的模型是( C) 模型。
    A.功能 B.动态 C.对象 D.分析
    (5)在面向对象的动态模型中,每张状态图表示( A )的动态行为。
    A.某一个类 B. 有关联的若干类 C.一系列事件 D.一系列状态
    (6)在考察系统一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:事件追踪图和(B)
    A.顺序图 B.状态图 C. 系统结构图 D.数据流图
    (7)对象模型的描述工具是(D)
    A.状态图 B.数据流图 C.结构图 D.对象图
    (8)功能模型中所有的( D)往往形成一个层次结构,在这个层次结构中,一个数据流图的过程可以由下一层数据流图做进一步说明。
    A.事件追踪图 B.物理模型图 C.状态迁移图 D.数据流图
    2.判断题
    (1) 模型是对现实的简化,建模是为了更好地理解所开发的系统。(√)
    (2)在面向对象的需求分析方法中,建立动态模型是最主要的任务。(X)
    (3)在面向对象分析阶段建立3个模型中,核心的模型是功能模型(X)
    (4)对象模型的描述工具是状态图。(X)

第九章

1.选择题
(1)面向对象设计阶段的主要任务是系统设计和(D)。
A.结构化设计 B.数据设计 C.面向对象程序设计 D.对象设计
(2)只有类的共有界面的成员才能成为使用类的操作,这是软件设计的(B )原则。
A.过程抽象 B. 信息隐藏C. 功能抽象D.共享性
(3)( B)是表达系统类及其相互联系的图示,它是面向对象设计的核心,是建立状态图、协作图和其他图的基础。
A.部署图 B.类图 C.组件图 D.配置图
(4)下面所列的性质中,( D ) 不属于面向对象设计的特性。
A.继承性 B. 重用性 C.封装性 D.可视化
(5)下列是面向对象设计方法中有关对象的叙述,其中( B)是正确的。
A.对象在内存中没有它的存储区 B.对象的属性集合是它的特征表示
C.对象的定义与程序中类型的概念相当 D. 对象之间不能相互通信
(6)在面向对象设计中,基于父类创建的子类具有父类的所有特性(属性和方法),这一特点称为类的(C )
A.多态性 B.封装性 C.继承性 D.重用性
2.判断题
(1)在面向对象的设计中,应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有信息隐藏。(√)
(2)面向对象分析和设计活动是多次反复迭代的过程。(√)
(3)关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。(x)
(4)面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。(√)

第十章

(1)软件实现是软件产品由概念到实体的关键过程,它将( B)的结果翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。,虽然软件的质量取决软件设计,但是规范的程序设计风格将会给后期的软件维护带来不可忽视的影响。
A.软件设计 B. 详细设计 C.架构设计 D.总体设计
(2)( C)是一种纯面向对象语言。
A. C B. Pascal C. Eiffel D. LISP
(3)第一个体现结构化编程思想的程序设计语言是( C)
A. FORTRAN B. C C. Pascal D. Cobol
(4)面向对象设计的结果,实现时(A)
A. 只能使用面向对象语言 B. 只能使用非面向对象语言
C. 可以使用第四代语言 D.既可使用面向对象语言,也可使用非面向对象语言
2判断题
(1)C语言是一种纯面向对象语言。(X)
(2)选择程序设计语言时,首先考虑的是应用领城。(√)
(3)良好的个人编程风格是优秀的程序员应具备的素质。(√)
4)项目的应用领域是选择程序设计语言的关键因素。(√)
(5) FORTRAN、Pascal、 C语言和C编语都是科学工程计算可选用的语言。(X)

第十一章

1.选择题
(1)软件测试的目的是(B.)
A.证明软件是正确的B.发现软件的错误
C.找出软件中的所有错误 D.评价软件的质量
(2)白盒法又称为逻辑覆盖法,主要用于( D)。
A.确认测试 B. 系统测试 C.测试 D.单元测试
(3)在软件工程中,白盒测试方法可用于测试程序的内部结构,此方法将程序作为(B)
A.循环的集合B.路径的集合C.目标的集合D.地址的集合
(4)成功的测试是指运行测试用例后(A)
A.发现了程序错误B.未发现程序错误C.证明程序正确D. 改正了程序错误
(5)白盒测试法是根据程序的(B)来设计测试用例的方法。
A. 输出数据B. 内部逻辑C.功能D.输入数据
(6)在软件测试中,逻辑覆盖法主要用于( B )。
A.黑盒测试方法 B. 白盒测试方法C.灰盒测试方法D.软件验收方法
(7)黑盒测试是从( B)观点的测试,白盒测试是从( B )观点的测试。

A.开发人员、管理人员 B.用户、开发人员
C. 用户、管理人员 D. 开发人员、用户
(8)软件测试可能发现软件中的( D). 但不能证明软件(D)
A. 所有错误、没有错误 B.设计错误、没有错误
C.逻辑错误、没有错误 D.错误、没有错误
(9)使用白盒测试方法时确定测试数据应根据( A)和指定的覆益标准。
A.程序的内部逻辑 B.程序的复杂程度
C.程序的难易程度 D. 程序的功能
(10)黑盒测试方法根据( B)设计测试用例。
A. 程序的调用规则 B. 软件要完成的功能
C、模块间的逻辑关系 D. 程序的数据结构
(11)集成测试主要有两个方法:©和©
A白盒测试方法、黑盒测试方法动本
B. 等价类划分方法、边缘值分析方法
C渐增式测试方法、非渐增式测试方法
D. 因果图方法、 错误推测方法
(12)软件测试的目的是尽可能发现软件中的错误,通常(D)是代码编写阶段可进行的测试,它是整个测试工作的基础。
A.集成测试 B. 系统测试
C.验收测试 D. 单元测试
(13)单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( A.) 系统功能
A.系统功能 B.局部数据结构
C. 重要的执行路径 D. 错误处理
.判断题
(1)软件测试是对软件规格说明、软件设计和编码最全面也是最后的审查。(X)
(2)如果通过软件测试没有发现错误,则说明软件是正确的。(X)
(3)白盒测试无须考虑模块内部的执行过程和程序结构,只需了解模块的功能即可。(X)
(4)软件测试的目的是尽可能多地发现软件中存在的错误,并将它作为纠错的依据。(√)
(5)测试用例由输入数据和预期的输出结果两部分组成。(√)
(6)白盒测试是结构测试,主要以程序的内部逻辑为基础设计测试用例(√)
(7)软件测试的目的是证明软件是正确的。(X)
(8)单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。(√)
(9)白盒测试法是一种静态测试方法,主要用于模块测试。(X)
(10)在等价分类法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类。(X)
(11)功能测试是系统测试的主要内容,用于检查系统的功能、性能是否与需求规格说明相同。(√)

你可能感兴趣的:(软件工程,软件工程师)