0


软件工程期末考试超全试题库(含答案 和解析)

选择题

1.下面哪项不属于软件工程方法学的要素(B)
A、方法 B、模型 C、工具 D、过程
(知识点)软件工程三要素:方法、工具、过程

2.面向对象方法学具有(D)个要点。
A、1 B、2 C、3 D、4
(知识点)面向对象要点:对象,类,继承,封装

3.(B)是软件开发过程中普遍存在的一种内在现象。
A、综合 B、迭代 C、建模 D、归纳

4.数据流图具有(D)种最基本的符号。
A、1 B、2 C、3 D、4
(知识点)“→”箭头,表示数据流; 〇:圆或椭圆,表示加工; =:双杠(带一边开口,一边闭合),表示数据存储; □:方框,表示数据的源点或终点。

5.(C)是软件定义时期的最后一个阶段。
A、问题定义 B、总体设计 C、需求分析 D、可行性研究
(知识点)软件定义时期:问题定义、可行性研究(可行性研究报告)、需求分析(软件需求规格说明书)、概要设计、详细设计、编码和单元测试、综合测试、运行维护

6.下列哪项不属于应用形式化方法的准则(C)。
A、应该估算成本 B、应该建立详细的文档 C、可以放弃质量标准 D、应该重用
(知识点)(1)应该选用适当的表示方法。(2)应该形式化,但不要过分形式化。(3)应该估算成本。(4)应该有形式化方法顾问随时提供咨询。(5)不应该放弃传统的开发方法。(6)应该建立详尽的文档。(7)不应该放弃质量标准。(8)不应该盲目依赖形式化方法。(9)应该测试、测试再测试。(10)应该重用。

  1. 下列哪项不是模块独立性很重要的理由(B)。 A、比较容易开发软件 B、能够增强耦合程度 C、比较容易测试和维护 D、功能容易扩充

8.下列哪项不属于描绘软件结构的图形工具(A)。
A、层次方框图 B、层次图 C、HIPO图 D、结构图
(知识点)层次方框图用来描绘数据结构

9.下列哪项不属于三种基本控制结构(C)。
A、顺序 B、选择 C、调用 D、循环

10.用户界面设计是一个(A)的过程。
A、迭代 B、循环 C、顺序 D、变化

11.当算法中包含多重嵌套的条件选择时,最好使用(C)。
A、程序流程图 B、盒图 C、判定表 D、PAD图

12.(B)图既能表达数据结构,也能表达程序结构。
A、数据流 B、Jackson C、层次方框 D、IPO
(知识点)Jackson方法是一种面向数据结构的设计方法。

13.环形复杂度等于(C)是模块规模的一个更科学更精确的上限。
A、12 B、11 C、10 D、9

14.软件可靠性模型使用故障率数据,估计软件将来出现故障的情况并预测软件的(B)。
A、可维护性 B、可靠性 C、可修改性 D、可移植性

15.子系统测试和系统测试又称为(C)测试。
A、单元 B、验收 C、集成 D、计算机
(知识点)集成测试针对的是模块之间的关系.子系统测试主要测试模块间的相互协作和通信. 系统测试=集成测试

16.通常边覆盖和(B)标准一致。
A、语句覆盖 B、判定覆盖 C、条件覆盖 D、组合覆盖
(知识点)与判定覆盖区别

17.通常可以通过描述软件交付使用后可能进行的活动有(D)项。
A、1 B、2 C、3 D、4
(知识点)改正性维护、适应性维护、完善性维护和预防性维护

18.软件工程学的主要目的是提高软件的(C),降低维护的代价。
A、可测试性 B、可理解性 C、可维护性 D、可设计性

19.对象={ID,MS,DS,MI},其中DS指的是(C)。
A、对象的名字 B、操作集合 C、对象的数据结构 D、消息名集合
(知识点)ID:对象标识或名字 MS:操作集合 DS:对象的数据结构 MI:对象受理的消息名集合(即对外接口)

20.一个消息由3部分组成,下列哪项不属于消息的组成成分(C)。
A、接收消息的对象 B、消息选择符 C、实现代码 D、零个或多个变元

21.用面向对象的方法开发软件,通常需要建立3种形式的模型,下列哪一种不属于需要建立的模型(C)。
A、对象模型 B、动态模型 C、ER模型 D、功能模型
(知识点)ER模型是实体联系图,主要用于数据

22.一幅用例图不包括(B)。
A、系统 B、数据流 C、行为者 D、用例
(知识点)用例,角色,关系, 系统边界.数据流应该在数据流图里.

23.UML是(A)批准的基于面向对象技术的标准建模语言。
A、OMG B、BIC C、BODD D、OMA

24.复杂系统的对象模型通常由5个层次组成下列不属于其中的组成部分是(B)。A、主题层 B、逻辑层 C、属性层 D、服务层
(知识点)1.主题层2.类与对象层3.结构层4.属性层5.服务层

25.筛选正确的类与对象时,哪项不需要我们考虑(D)。
A、无关 B、操作 C、实现 D、结构

26.完整、正确的脚本为建立(B)模型奠定了必要的基础。
A、对象 B、动态 C、功能 D、用例

27.(C)模型表明了系统中数据之间的依赖关系,以及有关的数据处理功能。
A、对象 B、动态 C、功能 D、用例
28.大型、复杂系统的对象模型通常由(C)个层次组成。
A、3 B、4 C、5 D、6
1.主题层2.类与对象层3.结构层4.属性层5.服务层
29.(B)特别适用于用户需求未改变,但系统体系结构发生了根本变化的场合。
A、代码重用 B、分析结果重用 C、设计结果重用 D、测试结果重用
结构发生变化代码,设计结果,测试结果都已经改变.
30.下列哪项不属于类构件的重用方式(D)。
A、实例重用 B、继承重用 C、多态重用 D、消息重用
实例重用、继承重用、多态重用
31.Visual C++语言提供了(A)类库。
A、MFC B、MCL C、CFC D、BMF
32.(B)是分析并发性的主要依据。
A、对象模型 B、动态模型 C、功能模型 D、用例模型
33.文件系统中为每个第(A)范式表定义一个文件。
A、一 B、二 C、三 D、四
34.随着时间的推移,软件开发组织不能重用(C)结果。
A、OOA B、OOD C、OOC D、OOP
面向对象分析(OOA),面向对象设计(OOD),面向对象编程(OOP).
35.下列哪项不属于测试单个类的方法(C)。
A、随机测试 B、划分测试 C、分类测试 D、基于故障的测试
36.软件项目的开发时间最多可以减少到正常开发时间的(C)。
A、25% B、50% C、75% D、90%
37.主程序员组的核心成员不包括(B)。
A、主程序员 B、测试员 C、后备程序 D、编程秘书
38.(云班)下述过程属于基本过程的是(A B C D)
A.获取过程 B.开发过程 C.运行过程 D.供应过程
39.(云班)下列关于软件开发过程说法正确的是( B C)
A.软件生存周期过程就是软件开发过程
B.软件开发过程是软件开发者所从事的一系列活动
C.软件开发过程中还包括了系统需求分析、系统结构设计等系统层面的活动
D.软件开发过程包含了软件升级和演化等活动
40.(云班)获取正确软件的关键是( A )
A.开发逻辑 B.开发逻辑 C.人员素质 D.明确需求
41.(云班)软件开发中实现映射的基本手段是(D)
A.抽象 B.分层 C.隔离 D.建模
42.(云班)下列属于软件模型的是(B C)
A.概念模型 B.设计模型 C.实现模型 D.部署模型
43.(云班)与软件工程不同,(A)石玺彤工程所追求的目标
A.最优化 B.系统化 C.一体化 D.情境化
44.(云班)下面不属于需求的基本性质是(D)
A.必要性 B.无歧义性 C.可测性 D.可扩展性
45.(云班)下列哪些陈述可以作为软件需求(B D)
A.系统应支持大规模并发用户访问
B.用户需凭用户名和密码登陆之后才可使用系统
C.系统界面要美观大方 D.当用户失败时,应弹窗提示失败原因
46.(云班)下列需求属于设计约束的是(B)
A.响应时间 B.运行平台 C.错误处理 D.可维护
47.(云班)下列需求数与外部接口需求的是(A)
A.第三方插件 B.安全隐私 C.编程语言 D.字体字号
48.(云班)下列需求属于性能需求的是(A)
A.并发访问数 B.网络协议 C.异常响应 D.用户友好
49.(云班)针对对象之间的动态联系,以下说法正确的是(A)
A.对象之间只能通过消息进行通信
B.一个对象可以直接使用另一个对象的属性
C.对象相互之间不允许进行联系
50.(云班)UML是一种(A)语言
A.形式化 B.半形式化 C.非形式化
51.(云班)以下哪一项描述了UML的作用(D)
A.弥补一个用系统和运行平台之间的“距离”
B.建立不同抽象层次的术语空间和模型表达工具
C.支持多视角地建立系统模型 D.以上选项都正确
52.(云班)UML不具备以下那个结构(D)
A.静态对象结构 B.动态行为 C.系统部署 D.功能结构
53.(云班)(B)是描述类的所有对象的共同特征的一个数据项
A.实例属性 B.类属性 C.方法属性 D.对象属性
54.(云班)在类的属性定义中引入可见性,主要是为了支持(B)这一软件设计原则
A.抽象 B.信息隐蔽 C.模块化 D.自底向上
55.(云班)以下UML术语体现并发行为抽象的是(C)
A.接口 B.协作 C.主动类 D.用况
56.(云班)以下哪些不属于UML描述客观世界实体得基本术语(B D)
A.类 B.信号 C.协作 D.参与者
57.(云班)下列关于软件开发过程说法正确的是(B C)
A.软件生存周期过程就是软件开发过程
B.软件开发过程是软件开发者所从事的一系列活动
C.软件开发过程中还包括了系统需求分析、系统结构设计等系统层面的活动
D.软件开发过程包含了软件升级和演化等活动
58.(云班)下属过程属于基本过程的是(A B C D)
A.获取过程 B.开发过程 C.运行过程 D.供应过程
59.(云班)按照(),可以将软件生存周期过程分为基本过程、支持过程和组织过程。
A.软件开发活动的层次关系 B.软件开发工作的主体
C.软件开发项目的结构 D. 软件开发任务的重要程度
60.(云班)下列关于瀑布模型的说法正确的是(B D)
A.瀑布模型仅能依次经过需求、设计、编码、测试、集成和维护这一路径进行项目开发,不能从后一阶段返回到前面的阶段。
B.瀑布模型在每一阶段都会生成相应的文档。
C.瀑布模型只有在需求阶段和运行阶段才能有获取方和用户参与,其余阶段只能开发团队参加。
D.瀑布模型要求需求在最初阶段就要完整和明确。
61.(云班)下列关于增量模型的说法正确的是(A D)
A.增量模型要求需求在最初阶段就要完整和明确。
B.相比于瀑布模型,采用增量模型开发的项目所需的成本和时间要少。
C.采用增量模型时,每一增量必须按照既定顺序依次开发,不能更改。
D.增量模型能够更早的向用户交付第一个版本的系统。
62.(云班)下列关于演化模型的说法正确的是(C D)
A.演化模型要求需求在最初阶段就要完整和明确。
B.演化模型可以弱化需求和设计文档的编写,以提高开发效率。
C.演化模型在每一次迭代过程中可以采用瀑布模型。
D.相比瀑布模型,演化模型需要获取方和用户更多的参与。
63.(云班)下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是©
A.演化模型 B.瀑布模型 C.喷泉模型 D.增量模型
64.(云班)实例连接又称为链,他表达了对象之间的(A)
A.静态关系 B.动态关系 C.连接关系 D.无关系
65.(云班)再用UML对关系进行建模时,以下策略错误的是(A)
A.在考虑到建模的复杂性,可以引入循环的泛化关系
B.仅当关系是“is-a-kind-of”关系时,才使用泛化
C.应保持泛化关系的平衡,继承的层次不要过深,不要过宽
D.仅当要建模的关系不是结构关系时,才使用依赖
66.(云班)以下表达类目之间的关系的术语中,其正确的表示方法是无箭头实线线段的是(A)
A.关联 B.泛化 C.细化 D.依赖
67.(云班)Jack在Google工作,是公司市场组的一名成员。那么描述Jack的类目Employee和描述Google的类目Company之间是(A)关系。
A.关联 B. 泛化 C.细化(实现) D.依赖
68.(云班)以下不属于UML静态建模工具的是(B)
A.类图 B.通信图 C.对象图 D.制品图
69.(云班)描述UML需求模型的是(C)
A.状态图 B.顺序图 C.用况图 D.类图
70.(云班)以下不属于UML动态建模的是(B)
A.活动图 B.部署图 C.用况图 D.状态图
71.(云班)可视化地表达系统的静态结构模型的是(D)
A.状态图 B.顺序图 C.用况图 D.类图
72.(云班)在面向对象分析阶段,对于继承关系的简化以下说法正确的是(D)
A.取消没有特殊性的特殊类 B.增加属性简化继承关系
C.取消用途单一的一般类 D.以上说法均正确
73.(云班)以下哪项不属于类范围的操作(A)
A.创建类的某个对象 B.读取对象的属性值
C.通过计算后修改对象的属性值 D.监控对象的属性值
74.(云班)以下说法错误的是(B)
A.吸尘器和电子琴同时作为商品销售,所以可以通过抽象合并为同一类。
B.轿车和货车都是车,所以可以直接以一个类”车”代替两个类。
C.轿车和货车都是车,所以可以提取出一个一般类“车”作为他们的父类。
D.班主任只有一个属性姓名,所以可以取消该类,将属性”班主任姓名”添加至相关的其他类。
Q75.(云班)从OOA到OOD的过程以下描述最恰当的是(C)
A. 转换 B.扩展和完善 C.调整和增补 D.细化
76.(云班)需求是不断变化的,为了加强可维护性在设计上需要适应不可预见的变化。以下术语的易变性最低的是(A)
A.类 B.服务 C.接口 D.属性
77.(云班)以下实现条件对OOD模型问题域部分影响最大的是(A)
A.编程语言 B.硬件、操作系统及网络设施 C.复用支持 D.数据管理系统
78.(云班)相同操作明仔同一类中可以被定义多次按参数的个数、种类或次序等的不同对他们进行区分,这种现象在面向对象方法中被称为(B)
A.多态 B.重栽 C.泛化 D.分类
79.(云班)以下属于进行问题域部分的设计需要考虑的方面有(D)
A. 提高性能 B.考虑复用 C.编程语言 D.永久存储
第一章 软件工程概述
1、软件是 (A )
A、设计开发的 B、软件项目组制造的
C、程序员编写代码实现的 D、项目经理组织实施的
2、与硬件产品相比 ( B )
A、软件会磨损 B、软件会退化
C、软件失效遵守盆形曲线 D、软件可以用备用部件替换
3、软件工程是一种层次化的技术,支持软件工程的根基在于 ( C )
A、软件工程过程模型 B、软件生命周期模型 C、质量关注点 D、软件工程工具
4、“软件危机”是指( D)
A、计算机病毒的出现 B、利用计算机系统进行经济犯罪
C、人们过分迷恋计算机系统 D、软件开发和软件维护中出现的一系列问题
5、下列那种做法符合软件工程师的职业道德?( C)
A、把公司项目中完全由自己开发的模块封装为小软件,发布到网络牟利。
B、过于夸大自己的技术水平,从而得到一份超出自己能力范围的工作。
C、不在私人电脑上编辑公司的项目源代码和文档。
D、在客户现场进行技术维护休息期间,在客户的电脑上打游戏。
6、软件工程实践的一个重要原则是存在价值,是指 (D )
A、软件正常开发 B、软件能够稳定运行
C、软件具有足够的可靠性 D、软件能够给用户提供价值
7、构成软件工程基础的是 (A )
A、过程 B、方法 C、工具 D、设计
8、对软件的描述正确的是(C )
A、软件是没有附加价值的产品。 B、软件质量依赖于程序员的个人水平。
C、具有技术和文化的双重属性。 D、软件测试是一项比较简单的工作。
9、下列哪一项不是软件危机产生的原因(D )
A、客观原因,软件本身特点是逻辑部件,且规模日趋庞大。
B、主观上忽视需求分析。
C、错误认为:软件开发=程序编写。 D、过分重视软件维护。
10、下列哪一项不属于软件工程的发展阶段(B )
A、对象工程 B、作坊式工程 C、过程工程 D、构件工程
11、软件工程与计算机科学的区别错误的描述是(C )
A、软件工程关注如何为用户实现价值。
B、计算机理论关注的是软件本身运行的原理,比如时间复杂度,空间复杂度,和算法的正确性。
C、软件工程对于某一种特定问题的正确解决方法将永远不会改变。
D、随着技术和用户需求的不断变化,软件开发人员必须时刻调整自己的开发以适应当前的需求。同时软件工程本身也处于不断的发展中。
12、下列对软件的描述错误的是(A )
A、软件交付的形式为可执行软件。
B、能够完成预定的功能和性能,并对相应数据进行加工的程序,及描述程序、操作的文档。
C、软件=程序+数据+文档,为了突出其功能和性能,可扩展为:软件=知识+程序+数据+文档
D、软件的文档是用于记录软件的活动和中间制品,如需求规约、源程序等。
第二章 软件过程模型
1、软件过程模型中定义的框架活动是 ( B)
A、必须执行的 B、可以迭代的 C、团队每个成员必须参与的 D、必须符合标准
2、瀑布模型也称为经典生命周期模型 ( C)
A、是迭代的模型 B、是增量的模型 C、是顺序的模型 D、强调设计的模型
3、关于螺旋模型,以下说法错误的是(C)
A、把开发活动和风险管理结合起来控制风险 B、适用于大型复杂的软件项目
C、开发过程分成若干次迭代,每次迭代产生一个软件发布
D、原型的进化贯穿整个软件生存周期,具有原型模型的特点
4、统一过程(UP) (B )
A、适用于所有软件工程 B、是迭代和增量式模型
C、是不强调文档的 D、不追求架构的稳定
5、过程是多种多样的,下面不属于过程共同活动的是( C)
A、计划 B、部署 C、分析 D、建模
6、下面选项不属于瀑布模型特点的是(A )
A、高效性 B、顺序性 C、依赖性 D、推迟实现
7、有关增量模型,下面说法正确的是(D )
A、适用于技术成熟的项目 B、每个增量的开发是嵌套式增量方式
C、是一种整体开发的模型
D、在前面增量的基础上开发后面的增量,采用迭代的方式
8、关于原型模型,下面说法正确的是(B)
A、适用于小而可用的项目
B、容易让设计者在质量和原型间有所折中,让客户意识不到一些质量问题
C、快速应用开发模型(RAD)是一个原型过程模型 D、原型模型里没有迭代方式
9、下面选项中,不属于软件过程模型的是( B)
A、敏捷模型 B、迭代模型 C、原型模型 D、瀑布模型
10、关于敏捷模型,下面说法错误的是(A )
A、是一种严谨正式的方法。 B、需要开发者和客户之间积极持续的交流。
C、强调客户满意度和较早的软件增量交付
D、包括新型软件开发方法,如主极限编程(XP)、自适应软件开发(ASD)、动态系统开发方法(DSDM)等。
11、瀑布模型是软件过程中最经典的模型,下面选项不属于瀑布模型活动的是(D)
A、需求分析 B、软件设计 C、测试与维护 D、软件构造
12、如果软件开发中使用增量模型,第一个增量( B C)
A、必须正确 B、往往是核心产品 C、满足基本需求 D、不能变动
13、构件是软件技术中的重要内容,基于构件的开发 ( A B D)
A、可以实现复用 B、可以减少开发费用
C、可以提高软件性能 D、可以缩短开发周期
14、敏捷开发认为(A D )
A、有能力的个体和良好的交互胜过现代软件过程和先进工具
B、软件开发的目标是可工作的软件,因此应该不需要写文档
C、客户和开发方应该严格按照既定合同进行软件开发
D、采用增量式开发和短周期交付,以便及时响应变化
15、关于模型选择说法正确的是 (B C)
A、同一个软件组织应该采用一种软件过程模型,以便于管理
B、需求不稳定的情况下,尽量采用增量式开发
C、全新系统的开发应该在总体设计完成后再开始增量或并行
D、敏捷模型能够快速响应变化,即使编码人员经验较少,仍应该采用敏捷开发方式
第三章 需求分析
1、需求分析阶段最重要的技术文档是(B )
A、设计说明书 B、需求规格说明书 C、可行性分析报告 D、用户手册
2、以下关于数据流图的说法错误的是(C )
A、数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储
B、数据流图是用作结构化分析的一种工具
C、传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成
D、数据流图的绘制采用自上向下、逐层分解的方法
3、数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是(C )
A、数据库设计 B、数据通信 C、数据定义 D、数据维护
4、软件需求分析阶段的工作,可以分成以下四个方面:对问题的识别,分析与综合,制定规格说明以及(B )
A、实践性报告 B、需求分析评审 C、以上答案都不正确 D、总结
5、软件需求分析的任务不应包括(C )。
A、问题分析 B、信息域分析 C、结构化程序设计 D、确定逻辑模型
6、在数据流图中,有名字及方向的成份是(C )。
A、控制流 B、信息流 C、数据流 D、信号流
7、在数据流图中,不能由计算机处理的成份是(D )。
A、控制流 B、节点 C、数据流 D、数据源/终点
8、结构化分析方法就是面向( B)自顶向下逐步求精进行需求分析的方法。
A、目标 B、数据流 C、功能 D、对象
9、到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是( D  ) 的出现和广泛使用,使面向对象方法成为了软件开发的主流方法。
A、OMT B、OOSE C、C++ D、UML
10、( D  )是从用户使用系统的角度描述系统功能的图形表达方法。
A、序列图 B、协作图 C、类图 D、用例图
11、需求分析阶段开发人员要从用户那里了解(A)
A、软件要做什么 B、用户使用界面 C、输入的信息 D、软件的规模
12、需求分析的四个步骤中,撰写《需求规格说明书》是在(C )阶段。
A、需求获取 B、需求提炼 C、需求描述 D、需求验证
13、下列需求描述中,不属于飞机订票系统功能性需求的是(A )
A、必须使用某排序算法根据离开时间对航班排序
B、什么信息要出现在机票和报告中
C、什么信息必须存储在旅行社和其他人访问的数据库中
D、如何输入有关航班、乘客及订票信息
14、不需要在需求分析阶段建立的模型是( D)
A、数据流图 B、用例图 C、E-R图 D、程序流程图
15、在需求分析阶段不属于数据模型的是(C )
A、E-R图 B、数据字典 C、数据流图 D、类图
16、数据流图中的每个数据加工至少有(B )
A、一个输出流 B、一个输入流和一个输出流
C、一个输入流 D、一个输入流或一个输出流
17、0层数据流图有( B)个数据加工
A、0 B、1 C、2 D、多
18、数据流图的主图上的数据流必须封闭在(A )之间。
A、外部实体 B、数据加工 C、数据存储 D、数据流
19、下列说法最适合用来命名一条数据流的是(D )
A、选择账单管理功能 B、管理账单 C、账单管理 D、账单
20、以下数据流图的元素中,不适宜作为数据存储的是(B )
A、数据库 B、用户 C、数据表 D、文件
21、在数据流图中,下列数据流中可以不给出命名的是(C )
A、从外部实体输出的数据流 B、向外部实体输入的数据流
C、从数据存储输出的数据流 D、从数据加工输出的数据流
22、在用例之间,会有三种不同的关系,下列哪个不是他们之间可能的关系(D )
A、包含 B、扩展 C、泛化 D、关联
23、下列哪一个用例的命名符合规范( D)
A、用户管理 B、系统配置 C、基本信息维护 D、查找书籍
24、下列实体中不能作为系统用例图中的参与者的是( C)
A、用户 B、管理员 C、服务器 D、打印机
25、下列对系统功能的描述中,适合划分为一个用例的是(D )
A、输入个人信息 B、计算统计数据 C、返回查询结果 D、转账
26、下列各组用例之间存在包含关系的是(C )
A、管理用户与添加用户 B、预订机票与网上预订机票
C、ATM提款与登录 D、购买商品与查找商品
27、下列各组用例之间存在扩展关系的是( D)。
A、借书与还书 B、预订机票与网上预订机票
C、ATM提款与登录 D、购买商品与查找商品
28、下列各组用例之间存在泛化关系的是( B)。
A、借书与还书 B、预订机票与网上预订机票
C、ATM提款与登录 D、购买商品与查找商品
29、用例图中的参与者也可以是一种分析类,它应当归为( A)
A、实体类 B、控制类 C、边界类 D、父类
30、不属于用例规约组成部分的是( D)
A、主要参与者 B、前置条件 C、场景 D、输入参数
第四章 系统设计
1、模块内聚度越高,说明模块内各成分彼此结合的程度越( B)
A、松散 B、紧密 C、无法判断 D、相等
2、软件的结构化设计方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是对(D )进行设计。
A、软件结构 B、软件接口 C、软件模型 D、软件模块
3、程序的三种基本控制结构是( B)
A、过程、子程序和分程序 B、顺序、分支和循环
C、递归、堆栈和队列 D、调用、返回和转移
4、结构化设计是一种应用最广泛的系统设计方法,是以( B)为基础,自顶向下,求精和模块化的过程。
A、数据流 B、数据流图 C、数据库 D、数据结构
5、程序流程图(框图)中的箭头代表( B)
A、数据流 B、控制流 C、调用关系 D、组成关系
6、软件设计的重要性可以被概括成(D )
A、精确 B、复杂 C、高效开发 D、对质量的追求
7、下列哪种设计相当于一个房屋中每个房间的内部详图?(B )
A、体系结构设计 B、构件级设计 C、接口设计 D、数据设计
8、结构化软件工程方法中,(B )阶段主要是要建立软件结构。
A、需求分析 B、概要设计 C、详细设计 D、可行性研究
9、(D )是一张二维图。其纵向代表时间轴,时间沿垂直方向向下延伸;其横向由多个参与交互的对象构成。
A、对象图 B、活动图 C、交互图 D、顺序图
10、下列(C )不是MVC的组成部分?
A、模型 B、视图 C、接口 D、控制器
11、类之间的关系不包括(D )
A、依赖关系 B、泛化关系 C、实现关系 D、分解关系
12、模块间的耦合度越低,说明模块之间的关系越(A )。
A、松散 B、紧密 C、无法判断 D、相等
13、软件体系结构设计属于( A)。
A、概要设计阶段 B、详细设计阶段 C、需求分析阶段 D、初步开发阶段
14、结构化程序设计的基本结构不包括(D )。
A、循环 B、分支 C、顺序 D、并发
15、下列哪种设计相当于一个房屋中每个房间的门窗详图(以及规格说明)(C)。
A、体系结构设计 B、构件级设计 C、接口设计 D、数据设计
16、(B )可以用来描述对象之间整体与部分的关系。
A、关联 B、聚合 C、集成 D、依赖
17、在顺序图中哪类消息使用带箭头的虚线表示?( C)。
A、简单消息 B、反身消息 C、返回消息 D、异步消息
18、对体系结构的建模不使用(D )。
A、构件图 B、部署图 C、包图 D、用例图
19、数据流图里的数据流包括(A )类型。
A、变换型和事务型 B、变换型和调度型
C、调度型和事务型 D、数据型和控制型
20、构件级设计的基本原则不包括( B)。
A、开闭原则 B、并发原则 C、接口分离原则 D、依赖倒置原则
第五章 程序实现
1、程序设计语言的基本成分不包含下列哪个选项:C
A、数据成分 B、控制成分 C、功能成分 D、传输成分
2、结构化程序设计的原则不包含下列哪个选项:D
A、简单结构 B、块机制 C、一致性 D、充分联动
3、程序的效率的影响因素不包含下列哪个选项:B
A、存储 B、尽量使用多维数组 C、算法 D、输入/输出
4、编码规范的意义不包含下列哪个选项:A
A、易于提高编程效率 B、使开发人员有据可依
C、代码易读 D、易于定位错误、变更管理
第六章 质量保证
1、软件质量成本不包含下列哪个选项:D
A、预防成本 B、失效成本 C、评估成本 D、运维成本
2、软件测试V模型中的对应关系下列哪个选项是错误的:A
A、验收测试的主要目的是从开发者的角度检查系统是否满足合同中定义的需求
B、单元测试的主要目的是验证软件模块是否按详细设计的规格说明正确运行
C、系统测试的主要目的是验证整个系统是否满足需求规格说明
D、集成测试的主要目的是检查多个模块间是否按概要设计说明的方式协同工作
3、下列关于单元测试说法错误的是A
A、单元测试主要目的是检查多个模块间是否按概要设计说明的方式协同工作
B、模块接口测试是属于单元测试的内容
C、单元测试的主要目的是验证软件模块是否按详细设计的规格说明正确运行
D、单元测试完成以后才能进行集成测试
4、自底向上的集成测试方法需要开发(B )构建测试环境?
A、桩模块 B、驱动模块 C、底层接口 D、0层模块
5、下列不属于系统测试内容的是(D )。
A、功能性测试 B、性能测试 C、压力测试 D、局部数据结构测试
6、关于验收测试说法错误的是(D)
A、部署软件之前的最后一个测试操作
B、验收测试形式通常有α测试、β测试等
C、β测试时,开发者通常不在测试现场,在开发者无法控制的环境下进行的软件现场应用。
D、验收测试会对模块的内部逻辑的正确性进行白盒测试。
7、下面哪一种情况不是软件缺陷( B)。
A、软件未实现产品说明书要求的功能。 B、软件开发未按期完成。
C、软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好。
D、软件实现了产品说明书未提到的功能。
8、白盒测试中的逻辑覆盖技术不包含下列哪种方法(D )
A、语句覆盖 B、分支覆盖 C、条件覆盖 D、基础路径覆盖
9、下图为一个程序流程图的示意图,如采用控制流图覆盖测试,则其程序的环路复杂性为( B)

A、2 B、3 C、4 D、5
10、下属哪一个选项不属于黑盒测试的检查范围(C )?
A、在接口上,输入能否正确地接受? 能否输出正确的结果?
B、性能上是否能够满足要求? C、程序是否容易被理解
D、是否有数据结构错误或外部信息访问错误?
11、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(C )
A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法
12、黑盒测试不能发现以下类型的错误(D )
A、不正确或遗漏的功能 B、接口错误
C、行为或性能错误 D、内部代码的具体错误
13、软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试(D )。
A、结构合理性 B、软件外部功能 C、程序正确性 D、程序内部逻辑
14、以下说法错误的是(A )。
A、成功的测试是指发现程序的所有错误 B、测试不能证明程序是正确的
C、测试不能证明程序中没有错误 D、测试是为了发现程序中的错误
15、下列不属于单元测试内容的选项是( D)。
A、边界条件测试 B、模块接口测试 C、重要执行路径测试 D、压力测试
16、下列说法错误的是(A )。
A、桩模块用于模拟主程序功能,用于向被测模块传递数据,接收、打印从被测模块返回的数据
B、系统测试是从用户使用的角度来进行的测试,主要工作是将完成了集成测试的系统放在真实的运行环境下进行测试,用于功能确认和验证
C、系统测试基本上使用黑盒测试方法
D、系统测试的依据主要是软件需求规格说明书
17、在软件测试中,首先对每个模块分别进行单元测试,再把所有的模块按照设计要求组装在一起,称为(D )。
A、确认测试 B、系统测试 C、黑盒测试 D、集成测试
18、用白盒测试设计测试用例的方法包括( C)
A、错误推测 B、状态测试 C、基本路径测试 D、边界值分析
19、关于软件测试基本概念描述错误的是(D )。
A、软件测试方法分为静态分析法和动态测试法
B、软件测试通常很难用“穷举法”进行测试
C、软件测试的基本步骤的顺序依次为:单元测试、集成测试、系统测试、验收测试。
D、白盒法是一种静态分析方法,可尽可能早的发现缺陷,主要用于模块测试
20、下列不属于静态分析方法的是(D )。
A、桌面检查 B、代码会审 C、走查 D、白盒法
21、白盒法中的覆盖标准描述不正确的是( C)。
A、语句覆盖是指选择足够的测试用例,使得程序中每个语句至少都能被执行一次
B、判断覆盖是指执行足够的测试用例,使每个判定至少都获得一次“真”值和“假”值
C、条件覆盖是指执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次
D、判定/条件覆盖是指执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果
22、下列说法错误的是( A)。
A、等价类划分法属于白盒测试法 B、边界值分析法属于黑盒测试法
C、条件覆盖属于白盒测试法 D、分支覆盖属于白盒测试法
23、若有一个程序,它的输入文件可有1-255个记录,则设计用例:文件的记录数为 0个、1个、255个、256个。设计这组测试用例的方法是(C )。
A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法
24、以下针对V模型的描述不正确的是( D)。
A、单元测试对应的开发活动是详细设计
B、集成测试对应的开发阶段是概要设计
C、系统测试对应的开发活动是需求分析
D、验收测试对应的开发活动是详细设计
25、下列说法错误的是(A )。
A、验收测试是从开发者的角度检查系统是否满足需求分析规格说明书
B、在等价分类法中,一个测试用例只能覆盖一个无效等价类
C、单元测试的主要目的是验证软件模块是否按详细设计的规格说明正确运行
D、集成测试的主要目的是检查多个模块间是否按概要设计说明的方式协同工作
26、关于回归测试说法不正确的是( A)。
A、在修正发现的软件缺陷后,只要认真设计修改,不需要对变化的部分再进行测试
B、回归测试是指有选择地重新测试系统或其组件,以验证对软件的修改没有导致不希望出现的影响
C、回归测试需要测试所有新集成的程序
D、回归测试需要测试所有修改或者修正过的程序
27、关于集成测试说法不正确的是( D)。
A、集成测试以黑盒法为主 B、集成测试在单元测试完成以后进行
C、自顶而下增量集成的优点是能够尽早发现系统主控方面的问题
D、自底而上增量集成的优点是能够尽早发现系统主控方面的问题
28、由软件预发行的最终客户们在一个或多个客户场所对软件进行的测试,称为(A )。A、β测试 B、集成测试 C、平行运行 D、α测试
填空题

  1. 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
  2. (软件过程) 是为了获得高质量软件所需要完成的一系列任务的框架。
  3. 系统流程图实质上是 (物理) 数据流图。
  4. ER模型可以作为(用户)与分析员之间有效的交流工具。
  5. 第二范式满足第一范式条件,而且每个非关键字属性都由整个关键字决定。
  6. 并发系统中遇到的一个主要问题是(定时)问题。
  7. 形式化的规格说明消除了(二义性),从而可以减少差错。
  8. 需求分析阶段得出的(数据流图)是总体设计的极好的出发点。
  9. 软件工程师应该在需求分析阶段所确定的系统数据需求的基础上,进一步设计(数据库)。
  10. 面向数据流的设计方法是把信息流映射成(软件结构)
  11. 程序的质量和GO TO语句的数量成(反比)。
  12. (易变性)指系统响应时间相对于平均响应时间的偏差。
  13. 人机界面设计是(接口)设计的一个重要组成部分。
  14. 通常把(编码)和测试统称为实现。
  15. (黑盒)测试法把程序看做是一个黑盒子,完全不考虑程序的内部结构和处理过程
  16. (验收)测试也称为确认测试。
  17. 集成测试主要目标是发现与(接口)有关的问题。
  18. 通常(白盒)测试在测试过程的早期阶段进行。
  19. 软件(可靠性)是程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率
  20. 通常把诊断和改正错误的过程称为(改正)性维护。
  21. 传统的软件开发方法以算法为核心,开发过程基于功能分析和(功能分解)。
  22. 面向对象的软件技术在利用(可重用)的软件成分构造新的软件系统时,有很大的灵活性。
  23. 在C++中,多态性是通过(虚函数)来实现的。
  24. 如果在聚集关系中处于部分方的对象可以同时参与多个处于整体方对象的构成,则该聚集称为(共享)聚集。
  25. 与多重继承相反的是(不相交)继承。
  26. 面向对象方法学认为,客观世界由(对象)组成。
  27. 在用面向对象观点建立起的3种模型中,(对象模型)是最基本,最重要,最核心的。
  28. (主题)是指导读者理解大型、复杂模型的一种机制。
  29. 确定了类中应该定义的属性之后,就可以利用(继承)机制共享公共性质。
  30. 对于仅存储静态数据的系统来说,(动态)模型并没有什么意义,但它在开发交互式系统时却起着很重要的作用。
  31. 我们可以把面向对象设计分为系统设计和(对象)设计
  32. 由于类的封装性,使用者无须了解实现细节就可以使用适当的(构造)函数,按照需要创建类的实例。
  33. 把子系统组织成完整的系统时,有水平层次组织和(垂直块)组织两种方案可供选择
  34. 在面向对象设计过程中,应该对系统的人机(交互)子系统进行详细设计
  35. 关系数据库管理系统的理论基础是(关系代数)。
  36. 面向对象分析得出的对象模型,通常并不详细描述类中的(服务)。
  37. 如果关联的重数是多元的,则需要用一个(指针集合)实现关联。
  38. 可以通过增加(冗余)关联提高访问效率。
  39. 仅当存在真实的一般-特殊关系时,利用(继承)机制实现行为共享才是合理的。
  40. 更完整的类库通常还提供了独立于具体设备的(接口)类。
  41. 所谓(参数)类,就是使用一个或多个类型去参数化一个类的机制。
  42. 测试面向对象的软件时,应该把操作作为(类)的一部分来测试。
  43. 开始集成面向对象系统以后,必须对(类间协作)进行测试。
  44. (软件项目管理)先于任何技术开始之前开始,并且贯穿于软件的整个生命周期之中。
  45. 如果把项目(持续时间)延长一些,则可降低完成项目所需的工作量。
  46. (云班)按照(软件开发工作的主体),可以将软件生存周期过程分为基本过程、支持过程和组织过程。 判断题
  47. 软件开发和维护过程中存在很多严重问题,这与软件的规模有关。(×)
  48. 导出软件结构属于典型的可行性研究过程(×) (知识点)(1) 确定项目规模和目标(2) 研究正在运行的系统(3) 建立新系统的逻辑模型(4) 导出和评价各种方案(5) 推荐可行性方案(6) 编写可行性研究报告(7) 递交可行性研究报告
  49. 面对复杂的系统时,一个比较好的方法是分层次地描绘这个系统。(√)
  50. 数据字典是开发数据库的第一步,而且是很有价值的一步。(√)
  51. 层次方框图不能代表完整的数据结构。(×)
  52. 不需要验证需求的现实性(×)
  53. 所谓形式化方法,是描述系统性质的基于数学的技术。(√)
  54. 总体设计过程通常由两个主要阶段组成,其中系统设计阶段确定软件结构(×)
  55. 简单地说,理想的内聚模块只做一件事情。(√)
  56. 一个模块的扇出表明有多少个上级模块直接调用它。(×)
  57. 层次图方框间的连线表达的是组成关系。(×)
  58. 结构图中箭头尾部是实心圆表示传递的是控制信息。(√)
  59. 面向数据结构的设计方法的目标是给出设计软件结构的一个系统化的途径。(×)
  60. 优化是先使它快起来,再使它工作起来。
  61. 任何流图的环形复杂度都等于判定节点的数目加1。(×)
  62. 软件测试的目的是发现并改正错误。(×)
  63. 调试的目标是充分暴露程序当中的错误。(×)
  64. 所有测试都应该追溯到用户的需求(√)
  65. 白盒测试又称为功能测试。(×) (知识点)白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。
  66. 如果一个人是程序的设计者又是编写者,或是程序的编写者又是测试者,则审查小组应该再增加一个程序员。(√)
  67. Alpha测试由软件的最终用户们在一个或多个客户场所进行。(×)
  68. 类中定义的方法,是允许施加于该类对象上的操作。(√)
  69. 对面向对象的软件进行维护,主要通过从已有类派生出一些新类来实现。(√)
  70. 对象本质上具有并行性。(√)
  71. 在C++中,函数重载是通过动态联编来实现的。(×)
  72. 细化关系描述了两个模型元素之间的语义连接关系。(×)
  73. 实际上,用面向对象方法开发软件时,阶段的划分是十分模糊的。(√)
  74. 系统分析员必须把需求与实现策略区分开(√)
  75. 需求陈诉应该阐明怎么做而不是做什么。(×)
  76. .在建立对象模型的过程中,服务一定要确定下来。(×)
  77. 事件追踪图中箭头线之间的距离表示两个事件之间的精确时间差。(×)
  78. 我们应该降低继承耦合的强度(×) (知识点)与交互耦合相反,继承的耦合程度要高。
  79. 紧密的继承耦合与高度的一般-特殊内聚是不一致的。(×)
  80. 使用面向对象方法开发软件时,在分析和设计之间并没有明确的分界线。(√)
  81. 在提高可扩充性的过程中,应该用一种方法遍历多条关联链。(×)
  82. 面向对象系统的确认测试是面向白盒的。(×)
  83. 正确性证明过程本身也可能发生错误。(√)
  84. (云班)支持过程是指那些与软件生产组织有关的活动集。 (×)
  85. (云班)软件生存周期的含义是表明软件的演化和发展具有周期性,每过一段时间就需要更新。(×)
  86. (云班)当软件的一个版本被淘汰时,则该软件的生存周期就结束了 (×)
  87. (云班)软件生存周期过程表示软件生存周期内的一个过程。 (×)
  88. (云班)软件生存周期模型是对软件生存周期中过程、活动和任务的组织。(×)
  89. (云班)软件开发模型是软件开发过程的活动和任务的结构框架。(×)
  90. (云班)软件生存周期模型必须要将所有类型的过程、活动和任务考虑在内,形成满足每个软件项目需要的模型。(×)
  91. (云班)模型一定是在某种特定意图下,从某种特定的角度物理环境的抽象(√)
  92. (云班)软件开发中分层的基本动机时空之开发的复杂性(√)
  93. (云班)相比硬件而言,软件更容易被修改,而且更容易被正确的进行修改(×)
  94. (云班)采用瀑布模式的开发过程是一种自顶向下的开发方法,而软件构件复用的开发过程是一种自底向上的开发方法(√)
  95. (云班)任何软件开发过程必须从软件需求入手(√)
  96. (云班)软件需求时代开发产品或系统的功能描述(×)
  97. (云班)质量属性必须要给出量化的测量指标(√)
  98. (云班)非功能需求必须依附于功能需求而存在(√)
  99. (云班)面向对象就是一种使用面向对象程序设计语言的程序开发方法(×)
  100. (云班)一个类中可以有多个操作,也可以没有操作(√)
  101. (云班)所有的类都必须与客观事物相对应,都必须有具体的实例(×)
  102. (云班)接口之间没有关联、泛化、实现和依赖,也不能参与泛化、实现和依赖关系(×)
  103. (云班)接口不仅可以描述类的外部可见操作,而且可以描述其内部结构(×)
  104. (云班)软件开发中分层的基本动机是控制开发的复杂性(√)
  105. (云班)支持过程是指那些与软件生产组织有关的活动集(×)
  106. (云班)软件生存周期模型是对软件生存周期中过程、活动和任务的组织(√)
  107. (云班)包间的依赖通常隐含了各包种元素之间存在的一个或多个依赖(√)
  108. (云班)包可以包含其他种类的模型元素,但本身不能嵌套在其他包中(×)
  109. (云班)对于关联另一端的类的每个对象,本端的类只可能会有一个对象出现(×)
  110. (云班)在类的一个关联中,可以显示地命名该角色(√)
  111. (云班)在关联关系中,聚合是组合的一种特殊形式(×)
  112. (云班)对于每一个关联关系都需要说明其多重性,如果不说名,则默认是(√)
  113. (云班)注解和约束不是类图的一部分(×)
  114. (云班)类图主要使用“类”来抽象系统中各个组成部分,不包括系统环境(×)
  115. (云班)OOA过程中建立模型规约可以集中进行,也可以分散在各个活动中(√)
  116. (云班)OOA的最终目的是产生一个只能直接反映问题域的OOA模型(×)
  117. (云班)如果一个交互是由系统外的参与者发起的,第一个处理该监护的对象是主动对象(√)
  118. (云班)与实现条件有关的对象是OOA阶段需要重点关注的对象(×)
  119. (云班)在对象分类过程中,对于属性及操作相似的类需要考虑能够抽出一个一般类或部分类(√)
  120. (云班)依赖关系是一种使用关系,如果被使用的类发生变化,那么另一个类的操作也会受到影响(√)
  121. (云班)在OOA过程中,不需要考虑任何主动对象和主动操作(×)
  122. (云班)一个类的属性必须适合这个类和他的全部特殊类的所有对象,同时,一个类中的操作也应适合这个类及其所有特殊类的每一个对象实例(√)
  123. (云班)OOA过程中,为了提高操作的执行速度,可以考虑增加一些属性来保持操作的阶段性执行结果(×)
  124. (云班)依赖关系是一种使用关系,如果被使用的类发生变化,那么另一个类的操作也会受到影响(√)
  125. (云班)在初步建立类之间的关系时,可以暂时使用关联。在最终的类图中,若能用其他关系明确地指明类之间关系的含义,就不要适用关联(×)
  126. (云班)关联关系可用动词或动宾结构来命名,关联的命名不可缺省(×)
  127. (云班)两个对象之间的关联关系只能有一个(×)
  128. Q(云班)与结构化的分析和设计类似,面向对象的分析和设计之间也存在一定的鸿沟(×)
  129. (云班)OOD模型的四个部分均采用与OOA一致的概念、表示法、活动及策略(×)
  130. (云班)所有的实现因素都能通过一些在OOD中新定义的独立组成部分而实行有效的隔离(×)
  131. (云班)在OOA中未完成的细节定义需要在OOD完成,所以OOD的主要任务是对OOA 的细化(×)
  132. (云班)OOA强调如实地反映问题域,OOD考虑实现问题,当所用语言不支持多继承和多态,此时需要按编程语言调整多继承和多态。(×)
  133. (云班)人机交互的设计需要重点考虑比例最大的适用人群的情况,并适当的兼顾其他人(√)
  134. (云班)人机交互是OOD阶段的任务,在OOA阶段不需要考虑(×)
  135. (云班)人机交互的交互内容需求不仅与系统的功能需求有关,而且与人的主观意识也有很大的关系(×)
  136. (云班)人机交互部分的设计可以从use case 抽取人机交互内容及过程,在抽取过程中需要删除所有与输入输出无关语句。(√) 简答题
  137. 软件重用可以分为哪几个层次? (1)知识重用 (2)方法和标准重 (3)软件成分重用
  138. 软件过程的输出信息可分为? (1)计算机程序(2)描迹计算机程序的有关文档(3)数据 3.什么是多重继承 指的是一个类别可以同时从多于一个父类继承行为与特征的功能。与单一继承相对
  139. 什么是软件工程? 软件工程是一门指导软件系统开 发的工程学科,它以计算机理论及其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经实践证明的科学的管理措施与最先进的技术方法结合起来,软件工程研究的目标是“以较少的投资获取高质量的软件 (1)把系统的,规范的,可度量的途径应用于软件开发.运行和维护过程,也就是把工程应用于软件. (2)研究上面所述途径 5.什么是软件危机?如何解决? 指在计算机软件开发和维护过程中所遇到的一系列严重问题 (1)吸取和借鉴人类长期以来从事各种工程项目的积累,特别是经验教训 (2)研究探索更好的方法,尽快消除一些错误概念和做法 (3)采取严密的管理,做好各类文档的一致性完整性 6.至少可以从哪些方面研究每种解法的可行性 (1)技术可行性 (2)经济可行性 (3)操作可行性 7.应从哪些方面验证需求的正确性? (1)一致性 (2)完整性 (3)现实性 (4)有效性 (5)精确性 8.什么是形式化方法? 基于数学描述系统性质的技术. 形式化=有坚实的数学基础 9.总体设计阶段,完成的文档有哪几种? (1)系统说明 (2)用户手册 (3)测试计划 (4)详细的实现计划(5)数据库设计结果 10.代码省查比计算机测试的优越性表现? (1)减少工作量,提高效率.计算机测试发现错误后,需改正错误才能继续测试,错误是一个个发现并改正,但省查一次就可以查很多错误. 11.有哪几种维护活动? (1)改正性维护 (2)适应性维护 (3)完善性维护 (4)预防性维护 12.面向对象方法学有哪些优点? (1)与人类习惯的思维一致 (2)稳定性好 (3)可重用性好(4)较易开发大型软件产品 13.类与类之间有那几种联系? (1)关联 (2)继承 (3)依赖 (4)细化 14.大型系统对象模型层次组成? (1)主题层 (2)类与对象层 (3)结构层 (4)属性层 (5)服务层 15.测试单个类的方法有哪些? (1)随机测试 (2)划分测试 (3)基于故障的测试 16.能力成熟度的5个等级? (1)初始级 (2)可重复级 (3)已定义级 (4)已管理级 (5)优化级 17.(云班)与计算机硬件相比,计算机软件有哪些特点? (1)具有抽象性 (2)没有明显的制造过程 (3)存在退化问题 (4)对计算机系统有着不同程度的依赖性 (5)尚未完全摆脱人工的开发方式 (6)软件本身是复杂的 (7)软件成本相当昂贵( 8)相当多的软件工作涉及社会因素 18.(云班)软件工程的基本原则? (1)达到要求的软件功能。 (2)取得较好的软件性能。 (3)开发出高质量的软件。 (4)付出较低的开发成本 (5)需要较低的维护费用 (6)能按时完成开发工作,及时交付使用。 19.(云班)软件工程研究的内容? 软件工程的研究内容主要包括以下两个部分: 软件开发技术。主要研究软件开发方法、软件开发过程、软件开发工具和环境。 软件开发过程管理。主要研究软件工程经济学和软件管理学。
  140. (云班)软件工程的三要素? (1)方法。(2)工具。(3)过程
  141. (云班)软件工程的目标? (1)达到要求的软件功能。(2)取得较好的软件性能。(3)开发出高质量的软件。 (4)付出较低的开发成本。(5)需要较低的维护费用。(6)能按时完成开发工作,及时交付使用。 22.(云班)软件开发方法有哪几种? (1)结构化方法。(2)面向数据结构方法。 (3)面向对象方法。(4)形式化方法。 23.(云班)什么是软件过程模型?有哪些主要模型? (1)软件过程模型是软件开发全部过程、活动和任务的结构框架,直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。 (2)软件过程主要模型:瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、统一过程弄醒、基于构件的模型、敏捷开发模型等。 24.(云班)为什么增量式开发适合商务软件?它适合实时控制系统吗? (1)增量式开发适合商务软件的原因:能够及早投入市场;产品逐步交付能够较好地适应需求变化;开发中能够看到软件中间产品,提出改进意见,减少返工,降低开发风险;开放式体系结构便于维护 (2)增量式开发不适合实时控制系统,原因:实时控制系统通常需求明确且稳定,技术相对成熟,对软件质量要求高,要求严格的工程管理。
  142. Q(课堂)多态和重载的区别? 重载是指相同的操作名在同一个类中可以被定义多次,按参数的个数、种类或次序等的不同对他们进行区分 多态是指在继承结构中,具有相同的属性和操作,在不同的类中可以具有不同的类型和行为。
  143. (课堂)结构化分析方法? (1)数据流图指出当数据在软件系统中移动识被怎样变换,以及描绘变换数据流的功能和子功能,用于功能建模。 (2)实体—关系图(E-R图)庙会数据对象之间的关系,用于数据建模 (3)状态转换图指明了作为外部事件结果的系统行为,用于行为建模
  144. (课堂)软件生命周期的阶段? (1)可行性研究 (2)需求分析 (3)软件设计(4)编码(5)软件测试 (6)软件维护 第一章作业 1、什么是软件工程? 参考答案:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。(2)在(1)中所述方法的研究。 第二章作业 1、什么是软件过程模型?有哪些主要模型(回答4种以上)? 参考答案:(1)软件过程模型是软件开发全部过程、活动和任务的结构框架,直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。 (2)软件过程主要模型:瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、统一过程弄醒、基于构件的模型、敏捷开发模型等。 2、为什么增量式开发适合商务软件?它适合实时控制系统吗? 参考答案:(1)增量式开发适合商务软件的原因:能够及早投入市场;产品逐步交付能够较好地适应需求变化;开发中能够看到软件中间产品,提出改进意见,减少返工,降低开发风险;开放式体系结构便于维护; (2)增量式开发不适合实时控制系统,原因:实时控制系统通常需求明确且稳定,技术相对成熟,对软件质量要求高,要求严格的工程管理。 第三章作业 1、什么是结构化分析方法?该方法使用什么描述工具? 参考答案:结构化分析(Structured Analysis,简称SA),是面向数据流进行需求分析的方法。 结构化分析的主要思想是采取自顶向下逐层分解的分析策略,即面对一个复杂的问题,分析人员不可能一开始就考虑到问题的所有方面以及全部细节,采取的策略往往是分解,把一个复杂的问题划分成若干小问题,然后再分别解决,将问题的复杂性降低到人可以掌握的程度。分解可分层进行,先考虑问题最本质的方面,忽略细节,形成问题的高层概念,然后再逐层添加细节,即在分层过程中采用不同程度的“抽象”级别,最高层的问题最抽象,而低层的较为具体。结构化分析(SA)方法的描述工具有:数据流图,数据字典,描述加工逻辑的结构化语言、判定表、判定树等。从功能模型、数据模型、行为模型三方面的描述工具来作答。 2、什么是数椐字典?其作用是什么?它有哪些条目? 参考答案:数据字典(Data Dictionary,简称DD)是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。数据流图仅描述了系统的“分解”,系统由哪几部分组成,各部分之间的联系,并没有对各个数据流、加工、数据存储进行详细说明,如数据流、数据存储的名字并不能反映其中的数据成分、数据项目内容和数据特性,在加工中不能反映处理过程等等。数据字典有以下四类条目:数据流、数据项、文件、基本加工。 3、什么是面向对象方法?面向对象的解决问题的思路是什么?  参考答案:面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。 面向对象方法的解决问题的思路是从现实世界中的客观对象(如人和事物)入手,尽量运用人类的自然思维方式来构造软件系统,这与传统的结构化方法从功能入手和信息工程化方法从信息入手是不一样的。 4、现有一个医院病人监护系统,病症监视器负责病人的病症监控,实时采集病人的病症信号,并将病症信号格式化后传回到中央监护系统,中央监护系统将病症信号存储在中央数据库中,并将病症信号与标准信号进行比较,当病症出现异常时自动报警。请给出此系统的用例图,并描述出用例之间的include与extend关系。 参考答案:评分标准:正确给出2个参与者,得2分,1个参与者1分;正确给出至少6个正确用例,每个1分,最多6分; 正确给出至少1个include关系,得1分,最多1分;正确给出extend关系,得1分。

5、现有一个图书订购系统:顾客填写订单并交给书店,书店首先依据订单的图书书目对订单检查,对合格订单进行录入系统处理,并存储在订单库中。每天下班前对当日订单进行汇总,并将汇总结果发送给出版社。请画出此系统的第0层与第1层数据流图,正确表达出外部项、数据加工、数据存储及三者之间的关系。
参考答案:评分标准:正确给出第0层数据流图得3分,1个外部项1分、1个数据加工得1分;正确给出第1层数据流图得7分,1个外部项1分,不超过2分、1个数据加工得1分,不超过3分、1个数据存储得1分,不超过2分。

第四章作业
1、衡量模块独立性的两个标准是什么?它们各表示什么含义?它们之间有什么关系?
参考答案:内聚性和耦合性。内聚性是指模块内部各个元素之间的紧密程度。耦合性是指模块之间的相互依赖。内聚性强,则耦合性弱,反之亦然。
2、什么是软件体系结构?请举出两个软件体系结构的例子。
参考答案:软件体系结构是系统的一个或多个结构,它包括软件构件、构件的外部可见属性、以及它们之间的相互关系。两个例子,如分层、管道过滤器或数据为中心等并加以阐述,一个例子1分。
3、请创建下列描述的顺序图。 (1) 借阅者希望通过图书管理员借阅某本图书; (2) 借阅者将图书证和图书交给图书管理员; (3) 图书管理员将读者图书证编号和图书编号录入借阅图书界面LendBookWindow; (4) 借阅图书界面LendBookWindow根据图书编号向Book类对象请求加载图书信息; (5) Book类对象返回图书信息给借阅图书界面LendBookWindow; (6) 借阅图书界面LendBookWindow请求将图书信息和借阅者编号添加到Loan类对象中; (7) Loan类对象添加借阅信息,返回借阅成功给借阅图书界面LendBookWindow; (8) 借阅图书界面LendBookWindow显示借阅完成; (9) 图书管理员将图书证和图书归还给借阅者。
参考答案:评分标准:答对一条请求消息1分,答对一个角色1分

4、输入一个数X,求使得1 + 2 + … + i <= X成立的i的最大值,画出求解的程序流程图。
参考答案:评分标准:流程图符号错误一个扣1分,解题逻辑正确得5分。参考答案如下:

第六章作业
1、在11月11日购物节期间,购物金额大于500,按照8折给予优惠,其他给予9折优惠,现已给出程序流程图和对应代码,要求采用逻辑覆盖的白盒测试方法进行测试。(1)设计一组测试用例实现语句覆盖; (2)设计一组测试用例实现分支覆盖; (3)设计一组测试用例实现条件覆盖。 input a,b c=a if b=11-11 then if a≤300 then c=0.9a else c=0.8a endif endif output c

参考答案:(1)语句覆盖 两组:a≤300,b=11-11; a>300,b=11-11(2)分支覆盖 三条分支:a≤300,b=11-11; a>300,b=11-11; b≠11-11(3)条件覆盖 第一个判断:b=11-11 取真为T1,取假为T1, 第一个判断:a≤300 取真为T2,取假为T2。 每个每个条件的可能取值至少执行一次
2、设有一个排课系统,输入的数据结构为{课程编号,课程类别,周次,实验课排课},并要求如下:课程编号为字母和数字的字符串组合,必须以字母开头,课程类别为{必修课、选修课}两种,排课周次要求在1~16周,课程的实验课排课要求为布尔量:是或者否。请用等价类划分法设计测试用例,来测试系统的输入功能。 等价类表 输入条件 有效等价类 无效等价类
参考答案:(1)划分等价类(等价每个等价类或无效等价类0.5分)(2)设计测试用例(每个测试用例1分) 覆盖有效等价类,用最少的测试用例覆盖尽可能多的有效等价类 覆盖无效等价类,用一个测试用例覆盖一个无效等价类
软件工程试题+画图题
一、选择题
1.瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和 -。©
A详细计划 B.可行性分析 C 运行阶段 D测试与排错
2.在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试年勺系统测试阶段的目 (A)
A需求分析阶段 B详细设计阶段 C.概要设计阶段 D可行性研究阶段,
3.软件工程的出现主要是由于©,
A程序设计方法学的影响 B.其它工程科学的影响
C.软件危机的出现 D.计算机的发展
4. 软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C)
A. 硬件环境 B.软件开发的环境
C.软件开发工具和软件开发的环境 D.开发人员的素质
5.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B)
A.相互排斥 B相互补充 C独立使用 D交替使用
6.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法©
A.基于瀑布模型的结构化方法 B.基于需求动态定义的原型化方法
C.基于对象的面向对象的方法 D.基于数据的数据流开发方法
7.在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B)
A.结构化方法 B原型化方法 C面向对象的方法 D控制流方法
8.结构化分析方法是一个预先严格定义需求的方法,它在实施时强调的是分析对象的(B)
A.控制流 B.数据流 C程序流 D.指令流
9.软件开发的结构化生命周期方法将软件生命周期划分成(A)
A计划阶段开发阶段运行阶段 B计划阶段编程阶段测试阶段
C.总体设计详细设计编程调试 D.需求分析功能定义系统设计
10.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是©
A.分析阶段 B设计阶段 C编码阶段 D测试阶段
11.适合于面向对象方法学的软件生存周期模型是(B)
A瀑布模型 B喷泉模型 C.螺旋模型 D.增量模型
12从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大的是©
A详细设计阶段 B概要设计阶段 C需求分析阶段 D测试和运行阶段
13从实用角度看,数据规范化在大多数场合选用第__范式。©
A.1 B.2 C.3 D.5
14.可行性分析研究的目的是(A)
A项目值得开发否 B.争取项目 C.开发项目 D.功能内聚
15.模块的内聚性最高的是(D)
A逻辑内聚 B.时间内聚 C.偶然内聚 D功能内聚
16.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称(B)
A.软件工程 B.软件危机 C.软件周期 D软件产生
17.需求分析阶段的任务是确定(D)
A软件开发方法 B软件开发工具 C软件开发费 D软件系统的功能
18.完整的软件结构通常用图来表示。(B)
A.IPO图 B.HIPO图 C.PAD图 D.DFD图
19.在白盒法技术测试用例的设计中是最弱的覆盖标准。(A)
A.语句 B.路径 C条件组合 D.判定
20软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)
A瀑布模型 B对象模型 C.螺旋模型 D.层次模型
二、填空题
1.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的 信息流动 情况。
2.成本效益分析的目的是从 经济 角度评价开发一个项目是否可行。
3.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略; 深度优先策略和宽度优先策略.
4.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条 其他独立路径中从未有过的 的边的路径。
5.汇编语言是面向 机器 的,可以完成高级语言无法完成的特殊功能。如与外部设备之间的一些接口工作。
6.单元测试一般以 白盒 测试为主,黑盒 测试为辅。
7.详细设计的任务是确定每个模块的内部特性,即模块的算法、使用的数据。
8.所有软件维护申请报告要按规定方式提出,该报告也称 软件问题 报告。
9…有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的 维护支援 技术。
10.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:FORTRAN语言、PASCAL语言、C语言和PL/1语言。
11.目前使用最广泛的软件工程学方法分别是传统方法学和 面向对象方法学
12.可行性研究主要集中在以下四个方面 经济可行性、技术可行性、法律可行性和抉择。
13.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的
结构化设计方法以数据结构为基础构造模块的 Jackson方法 ,以对象、类、继承和通信为基础的 面向对象的设计方法。
14. 数据流图 和 数据字典 共同构成系统的逻辑模型。
三、判断题
1.软件的开发与运行经常受到硬件的限制和制约。(T)
2.模块内的高内聚往往意味着模块间的松耦合。(T)
3.Jackson图只能表达程序结构,不能表达数据结构。(F)
4.软件生命周期中需我进行需求分析,再进行可行性研究。(F)
5.软件的质量好坏主要由验收人员负责,其他开发人员不必关心。(F)
6.判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。(T)
7.应该尽量使用机器语言编写代码,提高程序运行效率,而减少高级语言的使用。(F)
8.UML只能应用于软件系统模型的建立。(F)
9.容错就是每个程序采用两种不同的算法编写。(F)
10.软件测试的目的是为了无一遗漏的找出所有的错误。(F)
11.在进行总体设计时应加强模块间的联系。(F)
12.系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作统流程图使用。(F)
13.用黑盒法测试时,测试用例是根据程序内部逻辑设计的。(F)
14.在程序调试时,找出错误的位置和性质比改正该错误更难。(T)
15.以对象、类、继承和通信为基础的面向对象设计方法(00D)也是常见的软件概要设计方法之一。(T)
16.如果通过软件测试没有发现错误,则说明软件是正确的。(F)
17.快速原型模型可以有效地适应用户需求的动态变化。(T)
18.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品(T)
19.集成测试主要由用户来完成。 (F)
20.软件危机完全是由硬件问题引起的。(F)
四、名词解释
1.软件开发环境
在基本硬件和宿主软件的基础上,为支持系统软件和应用软件工程化开发维护而使用的一组软件。
2. 错误推测法
错误推测法是指利用直觉和经验猜测出出错的可能类型,有针对性列举出程序中所有可能的错误和容易发生错误的情况,它是测试经验丰富的测试人员喜欢使用的一种测试用例设计方法。
3. 黑盒测试法
在黑盒测试中,测试人员把被测试的软件系统看成是一个盒子,不需要关系盒子的内部结构和内部特性,只关注软件产品的输入数据和输出结果,从而检查软件产品是否符合它的功能说明。
4.软件质量保证
软件质量保证是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
5.瀑布模型
在软件开发的过程中,需求不发生或很少发生变化,并且开发人员可以一次性获取全部需求;软件项目的风险低;开发者对软件应用领域很熟悉。
6.软件生命周期
软件生命周期是指软件产品从提出、实现、使用维护到停止使用退役的过程。
7. 单元测试
是指对软件中的最小可测试单元进行检查和验证。
五、简答题
1某一新闻管理系统主要用来发布新闻,管理员只需要一个,登录后可以
在后台发布新闻。任何人可以浏览新闻,浏览者可以注册成为系统会员,注册后
可对新闻进行评论。管理员在后台可以对新闻、评论、注册会员进行管理,如修
改、删除等。
要求:请画出该新闻管理系统的用例图

(课后习题)2.某图书管理系统具有以下项能。
①借书。输人读者借书证。系统首先检查借书证是否有效,若有效,对于第一次借书的读
者,在借书文件上建立档案,否则, 查阅借书文件,检查该读者所借图书是否超过10本,若已 达10本,拒借,未达10本,办理借告书(检查该读者借书目录并将借书情况登入借书文件)。
②还书。从借书文件中读出与读者有关的记录,查阅所借日期,如果超期(3个月),就做罚款处理,否则修改库存目录与借书书文件。
③查询。可通过借书文件、库存目录文件查询读者情况、图书借阅情况及库存情况,打印各种统计表

(课后习题)3.根据以下描述画出相应的状态转换图
到ATM前插入磁卡后输入密码,如果密码不正确,则系统会要求再次输入密码,如3次输入不正确,则退出服务。密码输入正确后,系统会提示选择服务类型,如果选择存款,则进行存款操作,存款完毕后可选择继续服务,也可以选择退出服务。如果选择取款,则进行取款操作,取款完毕后可选择继续服务,也可选择退出服务。

不正确

取款

三次不正确

(课本题)4.某培训机构人学管管理系统有报名、交费、就读等多项功能,并有课程表(课程号课程名,收费标准)学员登记表(学员号,姓名,电话)、学员选课表(学员号,课程号,班级号)账目表(学员号,收费金容硕)等诸多数据表。
下面是对其各项功能的说明
(1)报名:由报名处负责, 需要在学员登记表上进行报名登记,需要查询 课程表让学员选报
课程,学员所报课程将记录到学员选课表。
(2)交费:由收费处负责, 需要根据学员所报课程的收费标准进行收费 然后在账目表上记
账,并打印收款收据给办理交费的学员。
(3)就读:由培训处负责,其在验证学员收款收据后,根据学员所报课程将学员安排到合适班级就读。
请用结构化方法画出入学管理系统顶层图、0层图,写出其数据字典。
(1) 对于一个培训机构,外部用户主要有非学员、学员、工作人员。非学员通过报名成为学员。学员只有交费,才可上课。工作人员需要登记学员、收费以及安排学员就读,根据以上分析得到顶层图,

(2) 一个非学员通过报名 成为学员。他需要将个人信息提供 给报名处,报名处负责记录信息并通过查询课程表提供学员选课信息,学员选课后,将学员选果信息记录在学员选课表。

(3) 学员将学员 号报给收费处。收费处通过 查询选课表获取课程信息。通过查询课程表查询应收金额,并将信息己录在账目表,最后向学员收费并打印账目信息。

(4) 学员向培训处提供缴费凭证。培训处验证好学员缴费凭证后,通过查询选课表提供学员班级号,分配其到指定班级上课。

(课本题)5.下面将以“小型网 书店系统”为例,介绍软作 牛工程开发实践方法和相关工 具的使用。该网 上书店系统旨在实现图 书销售的电子商务模式并满 足经销商和用户进行电子交易 易的需求,从而充分发挥网上交易的优势 它的目标是保证经销商和用户之间快速的信息交流。

6.某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中:
●生产科的任务是:
(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。
(2)根据车间实际生产日报表、周报表调整月生产计划w
(3)以月生产计划为基础,制定产品设计(结构、工艺)及产品组装月计划。
(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间。
●技术科的任务是:
(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。
(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件
要求:试写出以上系统中生产科和技术科处理的软件结构图。

7.某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。
(1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报
告单交财务部门,财务人员开出发票给学生。
(2)如是想注销原来已选修的课程,则由注销人员在课程文件、学生文
件和帐目文件上做相应的修改,并给学生注销单。
(3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费
收据。
要求:
(1)分析以上问题画出数据流图。
(2)画出该培训管理系统的软件结构图的主图。


本文转载自: https://blog.csdn.net/weixin_43398418/article/details/121617994
版权归原作者 正在吞噬的世界 所有, 如有侵权,请联系我们删除。

“软件工程期末考试超全试题库(含答案 和解析)”的评论:

还没有评论