软件工程及应用复习题

软件工程及应用复习题
软件工程及应用复习题

软件工程及应用复习题

一、填空题

1、软件是由计算机程序、数据、及文档三部分组成的完整集合。其中,计算机程序是按事先设计的功能和性能要求执行的指令序列。数据是使程序能够正确操纵信息的数据结构。文档是与程序开发、维护和使用有关的图文材料。

2、描述软件生存周期的瀑布模型在开发阶段一般包括需求分析、总体设计、详细设计、系统实现和软件测试等几个阶段。瀑布模型的各阶段依次线形连接,是文档驱动的模型。

3、喷泉模型适用于面向对象方法。

4、快速原型模型建立原型的主要目的是定义需求,实际的软件在充分考虑了质量和可行性后才被开发。

5、软件工程的主要思想是在软件生产中用工程化方法__代替传统手工方法。

6、软件工程方法学的三个要素是方法、工具和过程。其中,软件工具为软件工程方法提供了自动或半自动软件支撑环境。

7、需求分析的快速原型化方法中,原型分为追加型(或进化型)和废弃型两类。

8、结构化方法基于模块化思想,采用抽象和分解的原则进行分析和设计。

9、数据流程图(DFD)用于系统的功能建模,其组成成分包括数据存储、数据处理、源点和汇点和数据流。

10、实体-关系图包括对象,属性和关系三方面信息。

11、根据设计内容不同,可以将软件设计分为数据设计、接口设计、体系结构设计和过程设计四种。

12、Jackson方法是一种典型的面向数据结构的软件开发方法。

13、模块中所有成分引用共同的数据,该模块是通信内聚的。

14、PDL(过程设计语言)是用于描述功能模块的算法设计和加工细节的语言。

15、结构化过程设计中采用的基本结构有顺序结构、分支选择结构和循环结构。

16、在软件设计中,为解决一个大而复杂的问题把软件系统划分成一个个完成某一特定的子功能的方法称为模块化。

17、结构化设计是以需求阶段产生的数据流图为基础,按一定的步骤映射成系统逻辑模型,然后进行设计的。

18、软件测试是为了发现程序中的错误而执行程序的过程。

19、黑盒测试法是通过分析程序的功能说明来设计测试用例的方法;白盒测试法是根据程序的内部逻辑和执行步骤来设计测试用例的方法。

20、结构化程序设计用自顶向下、逐步求精的程序设计方法。

21、汇编语言是面向机器的语言,可对外部设备的接口进行操作。

22、在学校中,学生和课程之间是关联关系。

23、类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是依赖关系。

24、在面向对象分析中,通常建立的模型有对象模型、动态模型和功能模型。

25、面向对象方法的要素是对象、类、继承和消息机制。

26、动物与老虎之间是继承关系。公司与部门之间是聚合关系。

27、用例图的主要元素是用例、执行者和通信联系。

28、用例及其协作之间是细化关系。

29、用来表示对象之间消息传送序列的UML图形是顺序图。描述软件之间相互依赖关系的UML图是构件图。

30、封装是将对象的外部特征和内在实现分开的技术。

31、面向对象的系统设计中,系统结构通过类与对象的关系来确定。

32把一组具有较强联系的类组织在一起而得到的类的集合是主题。

33、UML的动态模型用来描述对象和关系的状态、状态转换的事件和对象的服务。

34、面向对象的方法中,类的泛化关系通过继承来实现。

35、统一过程RUP是用例驱动的软件。

二、选择题

1、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

A. 软件过程

B. 软件测试

C. 软件生存周期

D. 软件工程

2、在各种不同的软件需求中,( B)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。

A. 业务需求

B. 功能需求

C. 非功能需求

D. 用户需求

3、(A)是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。

A 软件过程

B 软件工具

C 质量保证

D 软件工程

4、软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及(C)。

A. 总结

B. 阶段性报告

C. 需求分析评审

D. 以上答案都不正确

5、各种需求方法都有它们共同适用的是(D)。

A.说明方法B.描述方式 C. 准则D.基本原则

6、在结构化分析方法中,用以表达系统内数据的运动情况的工具有(A)。

A. 数据流图

B. 数据词典

C. 结构化英语

D. 判定表与判定树

7、在结构化分析方法中用状态转移图表达系统或对象的行为。在状态转移图中,由一个状态和一个事件所决定的下一状态可能会有(A)个。

A. 1

B. 2

C. 多个

D. 不确定

8、软件需求分析的任务不应包括(C)。

A. 问题分析

B. 信息域分析

C. 结构化程序设计

D. 确定逻辑模型

9、可使用多种工具进行需求分析,下面(C)是不适用的。

A. 数据流图

B. 判定表

C. PAD图

D. 数据词典

10、需求规格说明书的内容不应当包括(B)。

A. 对重要功能的描述

B. 对算法的详细过程性描述

C. 软件确认准则

D. 软件的性能

11、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。

A. 需求不确定性高的

B.需求确定的

C. 管理信息

D. 决策支持

12、在需求分析中,用于数据建模的图形是(A)。

A.E-R图 B. 数据流程图 C. 状态转移图 D. 层次图

13、下面(C)不是数据流图中的基本元素。

A.数据处理 B. 数据存储 C. 数据对象 D. 数据流

14、需求分析中用于行为建模的图形是(C)。

A.E-R图 B. 数据流程图 C. 状态转移图 D. 层次图

15、下列模块的耦合关系中,耦合度最高的是(B)。

A. 数据耦合

B. 内容耦合

C. 公共耦合

D. 控制耦合

16、下列模块内聚中,内聚性最弱的是(A)。,

A. 巧合内聚

B. 功能内聚

C. 通信内聚

D. 信息内聚

17、下列不是软件设计阶段的方法的是(D)。

A. SD方法

B. Jackson方法

C. Parnas方法

D. 快速原型法

18、下列(A)是软件结构设计的图形工具。

A. HIPO图

B. PAD图

C. N-S图

D. DFD图

19、根据输入输出的数据结构产生程序结构的设计方法是(B)

A.Parnas 方法 B.Jackson 方法 C.Wirth 方法 D.Dijkstra 方法

20、软件结构设计中用于表示模块间调用关系的图为(D)

A. PAD

B. HIPO

C. NS

D. SC

21、结构化设计的最终目标是满足模块的(C)。

A. 高耦合,高聚合

B. 高耦合,低聚合

C. 低耦合,高聚合

D. 低耦合,低聚合

22、不属于软件详细设计阶段的工具是(B)。

A. PAD图

B. IPO图

C. N-S图

D. PDL

23、软件测试的目的是(B)。

A. 评价软件的质量

B. 发现软件的错误

C. 测量程序的动态特性

D.证明软件是正确的

24、不适用于黑盒测试的方法是(D)。

A. 等价类划分法

B. 边界分析法

C. 错误推理法

D. 逻辑覆盖法

25、在以下的测试过程中,逻辑覆盖最强的是(A)。

A. 条件组合覆盖

B. 判定覆盖

C. 条件覆盖

D. 判定/条件覆盖

26、不执行测试软件的测试方法是(B)。

A. 动态测试

B. 静态测试

C. 集成测试

D. 黑盒测试

27、进行软件测试时,选择的测试数据应该是(D)。

A.随机地选取 B. 取一切可能的输入数据

C. 在完成编码以后制定出的测试数据

D. 选择发现错误的可能性大的数据

28、程序的三种基本控制结构的共同点是(D)。

A. 不能嵌套使用

B. 只能用来写简单的程序

C. 已经用硬件实现

D. 只有一个入口和一个出口

29、软件调试的目的是(A)。

A.找出错误所在并改正之 B. 排除存在错误的可能性

C. 对错误性质进行分类

D. 统计出错的次数

30、设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次的测试是(D)。

A. 条件组合覆盖

B. 判定覆盖

C. 条件覆盖

D. 判定/条件覆盖

31、设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次的是(A)。

A. 条件组合覆盖

B. 判定覆盖

C. 条件覆盖

D. 判定/条件覆盖

32、用于检查软件组成接口正确性的测试是(B)。

A. 单元测试

B. 集成测试

C.系统测试

D. 验收测试。

33、在数据流图中,椭圆代表(C)。

A. 源点

B. 终点

C. 加工

D. 模块

34、TURBO PASCAL是(D)软件。

A.系统软件

B.人工智能

C.事务软件

D.应用软件

35、软件需求分析是保证软件质量的重要步骤,它的实施应该是在(C)。

A.编码阶段

B.软件开发全过程

C.软件定义阶段

D.软件设计阶段

36、检查软件产品是否符合需求定义的过程称为(C)。

A.确认测试

B.集成测试

C.验收测试

D.验证测试

37、白盒测试主要用于测试(D)。

A.结构合理性

B.软件外部功能

C.程序正确性

D.程序内部逻辑

38、模块内聚度越高,说明模块内各成分彼此结合的程度越(B)。

A.松散

B.紧密

C.无法判断

D.相等

39、在软件的层次结构中,“一个模块被其他模块直接调用的调用者的数量”是指(B )

A.深度

B.扇入

C.扇出

D.耦合

40、软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立(B)。

A.软件结构

B.软件过程

C.软件模型

D.软件模块

41、软件设计阶段的输出主要是(C)。

A.程序

B.模块

C.伪代码D、设计规格说明书

42、对软件中基本组成单位进行的测试是(A)。

A. 单元测试

B. 集成测试

C.系统测试

D. 验收测试。

43、软件需求分析阶段的测试手段一般采用()。

A 总结

B 阶段性报告

C 需求分析评审

D 不测试

44、程序的三种基本控制结构是(B)。

A.过程、子程序和分程序B.顺序、选择和重复

C.递归、堆栈和队列D.调用、返回和转移

45、汽车有一个发动机。汽车和发动机之间的关系是(B)关系。

A.一般具体B.整体部分C.分类关系D.主从关系

46、一个操作在不同的类中可以有不同的实现方式的性质是(A)。

A.多态性B.多继承C.可复用性D.信息隐蔽

47、时序图反映对象之间发送消息的时间顺序,它与(D)是同构的。

A. 用例图

B. 类图 C.活动图D.协作图

48、在面向对象的系统中,系统责任的良好分配原则是(C)。

A 在类之间均匀分配

B 集中分配在少数控制类中

C 根据交互图的消息进行分配

D 根据个人喜好进行分配

49、(C)是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。

A 多态性

B 继承

C 封装

D 消息

50、面向对象分析是对系统进行(A)的一种方法。

A 需求建模

B 程序设计

C 设计评审

D 测试验收

51、仅使用对象和消息的方法是(B)。

A 面向对象的方法

B 基于对象的方法

C 基于类的方法

D 基于消息的方法

52、面向对象程序设计语言不同于其他语言的最主要特点是(C)。

A 模块性

B 抽象性

C 继承性

D 封装性

53、(A)是软件开发中重复使用相同或相似软件元素的过程。

A 软件重用 B软件继承 C 软件建模 D 软件测试

54、统一过程RUP是基于(D)的软件。

A UML B对象 C 用例 D 构件

55、把一组具有较强联系的类组织在一起而得到的类的结合称作(B)。

A 构件 B主题 C 包 D 用例

56、可以用数据流程图表示的模型是(C)。

A 用例模型 B动态模型 C 功能模型 D 静态模型

57、面向对象分析阶段的核心模型是(A)。

A 对象模型 B动态模型 C 功能模型 D 静态模型

58、在面向对象方法中,对象之间的通信采用(D)。

A. 方法调用

B. 类的继承

C. 数据传输

D.消息传递

59、在面向对象的测试中,(A)层的测试是对类的每个服务进行测试。

A 算法层 B类层 C 系统层 D 模板层

60、面向对象设计分为(C)两个阶段。

A 功能设计和结构设计

B 系统设计和结构设计

C 系统设计和对象设计

D 系统设计和用例设计

三、简答题

1、什么是软件生存周期?它一般由哪些阶段组成?

答:软件的生存周期就是软件从孕育、诞生、成长、成熟直到衰亡的全过程,也就是从设计软件产品开始到产品不能使用为止的时间周期。它一般包括的阶段有:软件项目计划、软件需求分析、软件设计、软件实现、软件测试,以及运行维护。

2、软件和程序的区别是什么?

答:软件是计算机系统中与硬件相互依存的部分,它是包括计算机程序,数据及其相关文档的完整集合。程序只是按事先设计的功能和性能要求执行的指令序列,是软件的组成部分。

3、简述瀑布模型的主要缺陷,并说明原因。

答:瀑布模型的主要缺陷是依赖于一次需求分析,不能适应需求的变化;早期错误一旦延迟到后期发现,往往不能得到纠正;缺乏整体的描述能力和计算机化的适应性。造成缺陷的原因主要是该模型是面向阶段的、线性的开发策略,每个阶段只有当前一个阶段完成后才能开始。

4、简述需求分析阶段的基本任务和主要工作。

答:需求分析阶段的基本任务是准确的定义系统目标,即理解并准确表达用户要求,借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么” 的问题。

主要工作:㈠问题识别。确定目标系统的具体要求。㈡分析与综合,导出软件的逻辑模型。。㈢编写文档。编写“需求规格说明书”、编写初步用户使用手册、编写确认测试计划、修改完善软件开发计划。

5、可行性研究主要研究哪些问题?试简单说明。

答:可行性研究主要做三个方面的研究:

?经济可行性:进行成本∕效益分析。从经济角度判断系统开发是否“合算”。

?技术可行性:进行技术风险评价。从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。

?社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。

6、数据流图的作用是什么?它由哪些基本成份构成?

答:数据流图可以用来抽象地表示系统或软件。它从信息传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。

数据流图的基本成份有4种:数据的源点和汇点、数据加工、数据存储和数据流。

7、简单说明模块独立性与信息隐蔽的关系?

答:“模块独立性”是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。“信息隐蔽”是指每个模块的实现细节对于其它模块来说是隐蔽的。信息隐蔽定义和实施了对模块的过程细节和局部数据结构的存取限制,做到信息隐蔽的模块,其模块相互间的接口比较简单,因此独立性比较强。

8、简单说明概要设计的基本步骤?

答:①确定设计方案②设计软件结构③设计数据文件④制定测试方案⑤书写概要设计文档

9、为了降低模块的耦合程度,应遵循的设计原则有哪些?

答:①尽量使用数据耦合。②少用控制耦合和特征耦合③用参数传递信息,不采用内容耦合④尽量控制公共环境耦合。

10、采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点?

答:①等价类划分。等价类划分是将输入数据域按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其它值的测试。

②边界值分析。该方法是将测试边界情况作为重点目标,选取正好等于,刚刚大于或刚刚小于边界值的情况,根据这些情况选择测试用例。

③错误推测。错误推测法没有确定的步骤,凭检验进行。它的基本思想是列出程序中可能发生错误的情况,根据这些情况选择测试用例。

④因果图。因果图能有效的检测输入条件的各种组合可能会引起的错误。因果图的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。

11、简述数据字典与数据流图的关系。

答:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。

12、简述结构化程序设计方法的基本要点。

答:(1)采用自顶向下,逐步求精的程序设计方法。

(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环

(3)采用主程序员组的组织形式。

13、试说明面向对象开发方法与面向数据流的结构化开发方法的主要区别。

答:结构化方法将结构化分析和结构化设计分为两个独立的部分,将描述数据对象和描述作用于数据上的操作分别进行,而事实上对数据的抽象和对在数据上处理的抽象是密切相关,不可分割的,对它们的分别处理会增加软件开发和维护的难度。面向对象系统中的对象是数据抽象与过程抽象的一个混合体。面向对象的方法能有效地描述和刻画问题域的信息和行为,以全局的观点考虑系统中各种对象的联系,考虑系统的完整性和一致性,是对问题域完整和直接的映射。

14、试举例说明类之间存在的关联关系。

答:普通关联--------学生和书本的关联

限定关联-------目录和文件之间的关系

关联类----------学生和课程的关系

聚集关联---------飞机和机翼的关系。

15、面向对象系统设计的主要步骤是什么?

答:①将系统分解成子系统。②设计问题域子系统③设计人机交互子系统④设计任务管理子系统⑤设计数据管理子系统

16、简述软件重用的概念和作用,并列举出可能重用的软件元素。

答:软件重用是指在软件开发过程中重复使用相同或相似的软件元素的过程。通过在软件开发过程中重用软件构件可以降低软件开发和维护的成本,提高软件生产率,是提高软件质量合理而有效的途径。

可能的重用有:项目计划重用。成本估计重用。体系结构重用。需求模型和规格说明重用。设计重用。源代码重用。文档重用。用户界面重用。数据重用。测试用例重用。

17、简述用例图的基本成分及相应的作用。

答:用例图的主要元素是用例、执行者和通信联系。用例用椭圆表示,描述系统功能;执行者也称角色,用小人表示,描述和系统交互的人或物;通信联系用线段表示,用来描述用例和执行者之间的交互。

18、说明类的特征以及它与传统数据类型的区别。

答:类是具有相同特征和行为的对象集合。类是对象的模板,抽象地描述了属于该类的全部对象的属性和操作。就它是一个数据值的聚合的意义上来看,与传统意义的记录或结构类型类似,但又有差别。类扩展了通常的记录语义,可提供各种级别的可访问性。也就是说,记录的某些成份可能是不可访问的,而这些成份对于本记录型来说具有可访问性。类不同于记录,因为它们包括了操作的定义,这些操作与类中声明的数据值有相同的地位。

19、简述说明面向对象分析的基本过程。

答:1.发现对象,定义对象和类的属性和服务。

2.分析对象之间的关系,建立实例连接。

3.划分主题,定义系统结构。

4.编写脚本、画顺序图和状态转换图,建立动态模型。

5.分析系统中数据之间的依赖关系和数据处理能力,建立功能模型

20、简述设计类时所要遵循的基本准则。

答:模块化:把类中数据结构和操作数据的方法紧密地结合在一起,通过实例化构成模块。抽象:类是一种抽象的数据结构,她对外开放的接口定义了外界可以使用的合法操作符。信息隐蔽:通过信息隐蔽可保护类的存储表示不被其它类的实例直接存取。

高内聚:模块内部各个部分之间应有较强的关系,它们不能分别标识。

低耦合:一个单独模块应尽量不依赖于其它模块。

重用性:在设计类时要考虑将来的重复使用。

21、简单说明如何在类的设计中做到抽象、信息隐蔽和模块化。

答:以类作为系统的基本模块单元,通过一般化―特殊化关系和整体―部分关系,搭建整个系统的类层次结构,实现数据抽象和过程抽象;

?将数据和相关的操作封装在类内部,建立共有、私有和子类型等存取级别,将数据表示定义成为类的私有成员,实现信息隐蔽。

?通过建立类属性(类模板),将某些有可复用要求的类设计成在数据类型上通用的可复用的软件构件,这样有助于实现模块化。

22、简单阐述UML的建模方法,并说明它如何表示一个系统。

答:UML叫做统一的建模语言,它允许软件工程师使用由一组语法的语义的实用的规则支配

的符号来表示分析模型。UML用5种不同的视图来表示一个系统,这些视图从不同的侧面描述系统。每一个视图由一组图形来定义。这些视图概述如下:

?用户模型视图:这个视图从用户(在UML中叫做参与者)角度来表示系统。它用使用实例(use case)来建立模型,并用它来描述来自终端用户方面的可用的场景。

?结构模型视图:从系统内部来看数据和功能性。即对静态结构(类、对象和关系)模型化。

?行为模型视图:这种视图表示了系统动态和行为。它还描述了在用户模型视图和结构模型视图中所描述的各种结构元素之间的交互和协作。

?实现模型视图:将系统的结构和行为表达成为易于转换为实现的方式。

?环境模型视图:表示系统实现环境的结构和行为。

23、简单说明对象、类及接口之间的关系。

答:对象是面向对象开发模式的基本成分,是现实世界中个体或事物的抽象表示。每个对象可由一组属性和它可以执行的一组操作来定义。类是一组具有相同特征和行为的对象集合,是对象的模板,抽象地描述了属于该类的全部对象的属性和操作。对象是类的实例化。接口是由于类中特殊化的方法而存在的规范,它的作用是把已知的某些类拥有的某些行为从使用这些行为的类中分离出来。接口类似于抽象类,但它不是类,它与类层次结构没有太大的关系,只是使得类层次结构的实现更为灵活,不会因某些特殊化的方法而发生改变。

24、简述面向对象方法中建立动态模型的步骤

答:1)编写脚本。2)从脚本中提取事件。3)画出UML顺序图或活动图。4)画出对象的状态转换图。

25、简述面向对象设计的主要阶段。

答:面向对象设计是把分析阶段得到的需求,转变成符合成本和质量要求的、抽象的系统实现方案的过程。它包括系统设计和对象设计两个阶段:系统设计用来设计目标系统的体系结构,是将系统分析为各子系统并定义其组织方式的过程;对象设计用来扩充、完善和细化对象模型,它集中于类的详细设计。

四、分析题

1、某学校需要开发一个学生成绩管理系统,教务人员可以通过该系统维护学生信息、课程信息和成绩信息,学生可以随时查询自己的成绩单,该系统的实体关系图如下所示:

请问图中是否应该增加"教务人员"?试说明理由。

答:不需要。

因为E-R图是表示目标系统问题域的数据模型,它描述的是系统数据之间的静态联系,而不是操作关系。而“教务人员”是系统的外部实体,是操作者,而不是E-R图中的实体。

2、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。

Int Sort(int n, int A[])

{

i=1;

while i<=n-1 {

Max=A[i];

j=i+1;

while j<=n {

if Max

temp= Max;

Max =A[j];

A[j]=temp;

}

j=j+1;

}

i=i+1;

}

}

画出该程序的程序流图,并计算其McCabe环路复杂性()。

(V(G)=4 图略)

3.请使用N-S图和PDL语言描述在数组A(1)~A(10)中找最大数的算法。

解:PDL语言:

N=1

WHILE N<=10 DO

IF A(N)<=A(N+1) MAX =A(N+1);

ELSE MAX =A(N) ENDIF;

N=N+1;

ENDWHILE;

(N-S图略)

4.有下列伪码程序:

{

scanf (A, B);

If ( A>=10) X =10;

Else X=l ;

If (B>=20) Y=20;

Else Y=2;

Printf (X,Y)

}

设计该程序的语句覆盖测试用例。

参考答案:

①A=9(或

②A=l0(或>=10),B=20(或>=20)

5、分析下列类图,试解释其中的关系。

答案:商店中有商品,但是商品也可能被人买走从而离开商店

6、下图中,类B 和类A 之间是什么关系?请解释该关系的含义。

答案:依赖关系。假设有两个元素X 、Y ,如果修改X 的定义可能会导致对另一个元素Y 的定义的修改,则称元素Y 依赖于元素X 。

7、分析下列语句,说明所采用的技术。

Class Console{

public static void drawLine(int parameter)

public static void drawLine(double parameter)

public static void drawLine(decimal parameter)

}

答:重载。

8、分析下列类关系图,是否恰当,若不恰当,指出问题并进行改正。

答案:不恰当,应该是继承关系(图略)

9、学生按性别分为男生和女生,按学习性质分为脱产和非脱产两类。分析其中的关系,画出类关系图,要求不能有多继承关系。

10、下图显示了某个学校课程管理系统的部分类图,其中一个学生(student)可以知道所有注册课程的教师(instructor),一个教师也可以知道所有注册课程的学生。

现在提出一个新的需求:"一个教师也可以是某些课程的学生",那么下面设计A~C中哪一个是最好的?为什么?

设计A:

设计B:

设计C:

答案:设计C

五、应用题

1、简化的邮件系统如下:用户可以收发邮件,如果有新邮件,系统可以提醒用户接受邮件。分析该系统,画出用例图。

(答案略)

2、假设您已经将顾客、管理员和商店经理列为候选类,如下图所示。请您合理地改造这个类图。(为便于理解,图中类名、属性名和方法名都采用汉字)

答案:

3、某航空公司要开发一套网上订票系统。在该系统中,有关乘客预定航班的关联是:每个预定总是与一个乘客想对应;不存在没有乘客的预定;一个预定永远也不可能有多于一个的乘客;每个乘客可以有任意数量的预定;一个乘客可以根本就没有预定;一个乘客可以有不止一个的预定。请绘制相关的类图。

4、绘制简化BBS系统的用例图。其中系统管理员可以管理其中的所有功能;用户分为非注册用户、注册用户,注册用户又分为普通注册用户和版主。非注册用户可以登录、注册和浏览信息;普通注册用户可以创建主题和进行回答。除此之外系统管理员还可以对论坛进行主题分类,各类版主除了普通用户的功能还可以对主体和回答进行管理。

5、在一个简化的教学辅导网站中,有如下内容:

1)学生和教师能够通过用户名和口令登录到这个网站;

2)学生和教师都可以上传文件和下载文件;

3)学生可以向其指导教师提问,只有他的指导教师能回答他的问题。

4)学生可以看到网站上所有学生的提问和所有教师的回答;

请设计该系统的类图。

一、填空题(在下划线上填写正确的答案,每题2分,共20分) 1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数。 2.数据流图和数据字典共同构成了系统的逻辑模型。 3.盒图也称为N-S图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。 4.软件有效性,指软件系统的时间和空间效率。 6.数据流图有四种基本成分:源、终点,处理,存储,数据流。 7 中数据项是组成数据流和数据存储的最小元素。 8.软件工程中的结构化分析SA是一种面向数据流的分析方法。 9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程。 10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。 1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型。2.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、单元测试、运行与维护阶段。 3.软件测试的步骤:单元、集成、系统、验收。 4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点。5.IPO图由输入、处理和输出三个框组成。这个图的特点是能够直观的显示三者之间的关系。 6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法。 7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动。 9.为了获得较高的模块独立性,尽量设计出具有高内聚和低藕合性能的模块。10.常用的测试方法有黑盒测试和白盒测试。 1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和社会效益

《软件工程》期末考试复习训练题 一、选择题 1、软件质量的好坏决定着软件的生命力,一般说来,一个质量好的软件应具备(D)。 A、功能正确、界面友善、占内存少、足够可靠、易于维护 B、功能正确、结构良好、程序短小、足够可靠、易于维护 C、功能正确、界面友善、速度足够、足够可靠、易于维护 D、功能正确、界面友善、程序易读、结构良好、文档齐全 2、黑盒子、白盒子测试法是常采用的测试方法,其中白盒子测试主要用于测试(D )。 A、结构合理性 B、软件功能 C、程序正确性 D、程序内部结构 3、在以下几种耦合中,最低耦合是(C )。 A、数据耦合 B、内容耦合 C、非直接耦合 D、公共耦合 4、面向对象的程序设计方法具有比结构化程序设计方法无比优越性,是因为(B ) A、OO方法具有封装性、动态性、多态性 B、O O方法具有封装性、继承性、多态性 C、O O方法具有封装性、客观性、动态性 D、OO方法具有客观性、动态性、动态性 5、UML中采用(C )表现系统的动态性 A、类图 B、对象图 C、交互图 D、配置图 6、软件工程是一门交叉学科,其研究领域包括(ABD)。 A、软件开发模型与开发方法 B、软件开发环境与工具 C、计算机辅助设计与制造CAD/CAM D、软件工程经济学 7、可行性研究的主要任务是了解客户的要求及现实环境,从技术、经济和社会因素等三方 面研究并论证本软件项目的可行性,编写可行性研究报告,制定( B)。 A、项目总体规划 B、初步项目开发计划 C、需求规格说明书 D、总体解决方案 8、软件系统开发对技术性能的指标要求主要包括:存储容量限制、执行速度、响应时间和 (A)等。 A、吞吐量 B、安全性 C、正确性 D、可靠性 9、需求分析过程负责分析当前系统与目标系统的差别,建立目标系统的() A、物理模型 B、逻辑模型 C、过程模型 D、数据模型 10、问题分析图(PAD)包括的基本控制结构有:顺序结构、选择结构、重复结构和()。 A、并行结构 B、多分支选择型 C、逻辑结构 D、物理结构 11、面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程,具体包括对 象模型、动态模型和()三个子模型。 A、过程模型 B、资源模型 C、功能模型 D、交互模型 12、模块内聚度越高,说明模块内各成分彼此结合的程度越() A、松散 B、紧密 C、无法判断 D、相等 13、结构化程序设计的三种基本控制结构是()。 A、过程、子程序和分程序 B、顺序、选择和循环 C、递归、堆栈和队列 D、调用、返回和转移 14、面向对象模型主要由以下哪些模型组成()。 A、对象模型、动态模型、功能模型 B、对象模型、数据模型、功能模型 C、数据模型、动态模型、功能模型 D、对象模型、动态模型、数据模型

软件工程期末试卷(A) 说明:本试卷为04级计算机专业(专升本)软件工程期末试卷,总计100分,时间100分钟 一、选择题:(每题1分,共20分)(将答案写在题号前的()中) ( C )1. 软件是()。 A. 处理对象和处理规则的描述 B. 程序 C. 程序及其文档 D. 计算机系统 ( B )2. 软件需求规格说明的内容不应包括()。 A. 主要功能 B. 算法的详细描述 C. 用户界面及运行环境 D. 软件的性能 ( B )3. 程序的三种基本控制结构是()。 A. 过程、子程序和分程序 B. 顺序、选择和重复 C. 递归、迭代和回溯 D. 调用、返回和转移 ( D) 4. 面向对象的分析方法主要是建立三类模型,即( )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 ( C ) 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体 B) 控制、联系、对象 C) 实体、联系、属性 D) 实体、属性、操作 ( A ) 6. 各种软件维护的类型中最重要的是( )。 A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护 ( B ) 7.软件测试的目标是()。 A. 证明软件是正确的 B. 发现错误、降低错误带来的风险 C. 排除软件中所有的错误 D. 与软件调试相同 ( D )8.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测试 D.软件维护 ( C )9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法 ( D )10、详细设计的基本任务是确定每个模块的( )设计 A.功能 B.调用关系 C.输入输出数据 D.算法 ( A )11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:() A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据 ( D )12.下面几种白箱测试技术,哪种是最强的覆盖准则() A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖

中南大学现代远程教育课程考试复习题及参考答案 软件工程 一、选择题: 1.下面哪些UML图描述系统行为() A.用例图 B.类图 C.对象图 2.属于概要设计活动的是() A.软件结构设计 B.数据结构设计 C.算法设计 3.属行为型设计模式的是() A.组合模式 B.工厂方法模式 C.观察者模式 4.下列说法正确的是() A.UML是软件开发方法 B.UML是系统描述语言 C.UML是软件开发过程 5. 根据程序流程图划分的模块通常是() A. 信息内聚的模块 B. 过程内聚的模块 C.逻辑内聚的模块 6.如果某程序中的比较个数是m,则其McCabe环形复杂度为() A.m-1 B.m C.m+1 7.按ISO9000-3的说明,下列属软件配置项的是() A.软件开发方法 B.软件开发组织管理制度 C.软件开发合同 8. 软件测试的目的是() A.证明软件无错 B.发现软件中的所有错误 C.尽可能发现软件系统中的错误 9.软件重构关注的是() A. 软件体系结构 B. 模块细节 C.软件性能 10.软件项目开发计划的内容有() A. 数据分析 B.风险分析 C.功能分析 11.在UML的类图中,描述整体与部分关系的有() A.泛化关系 B.聚合关系 C.依赖关系 12.软件过程能力成熟度模型CMM用以评价() A.软件过程能力 B.组织能力 C.学习能力 13. 因计算机硬件和软件环境的变化而作出的修改软件的过程称为() A. 完善性维护 B. 改正性维护 C.适应性维护 14. 对项目软件而言,软件功能需求信息主要由谁提供() A.软件用户 B.软件开发人员 C.软件项目管理人员 15. IDEF0图反映不出() A.系统做什么 B.系统功能由谁做 C.系统如何做 16. 原型模型是一种什么开发过程模型() A.自顶向上 B. 由外至内 C.增量式 17. 系统流程图描述() A.物理系统 B.逻辑系统 C.软件体系结构 18.需求规格说明书的内容不应该包括() A.软件确认准则 B.软件的性能描述 C.算法过程的详细描述 19.适合需求模糊或需求不确定系统开发的软件开发模型有() A. 瀑布模型 B. RAD模型 C.原型模型 20.UML图中描述系统结构的有() A. 组件图 B. 顺序图 C.状态图 21.面向对象方法是一种什么软件开发方法() A.层次化 B.迭代增量式 C.逐步求精 22.不可以用来衡量软件可维护性的有() A.可靠性 B.可用性 C.可行性 23. 系统分析员在需求分析最后负责编写()

一、选择题 1、白盒测试法是通过分析程序的(C)来设计测试用例的。 A.应用范围 B.功能 C.内部逻辑 D.输入数据 2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。 A.风险产生的原因 B.风险监控技术 C.风险能否消除 D.风险发生所产生的后果 3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。 A.好的计划 B.不断的发布 C.反馈和勇气 D.持续集成 4、等价分类法的关键是(C)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类 D.确定系统中相同和不同的部分 5、下列不属于黑盒测试的技术是(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 6、为了提高模块的独立性,模块之间最好是(D)耦合。 A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。 A.角色 B.活动 C.制品 D.工作流 8、功能性注释嵌入在源程序内部,它是用来说明(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 9、在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。 A.只有结构化语言 B.有结构化语言和判定树 C.有结构化语言、判定树和判定表 D.有判定树和判定表 10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。 A.正确性 B.适应性 C.完善性 D.预防性 11、软件危机的主要原因是(A)。 A软件本身特点与开发方法B对软件的认识不够 C软件生产能力不足D软件工具落后 12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。 A.输入、输出、外部实体和加工

考试时间: 16周周一5,6节 考试地点: 二教419 406 408 考试题型: 选择题:20分 简答题:30分 应用题:50分 各章内容及题型总结: 第1,2章本章的主要题型是选择题和简答题。 1. 软件危机的主要表现是什么?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。 2. 软件工程的定义?答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。 IEEE的定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。 3. 软件工程研究的主要内容是什么?答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。 4. 软件工程的7条基本原理是什么?答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。 5. 什么是软件生命周期?答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。 6. 软件过程的定义?答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 7. 你能举出几个典型的软件过程模型吗?答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。 8. 目前,主流的软件开发方法有哪些?答:结构化方法和面向对象方法。 9. 软件工程师职业道德规范的8组关键词是什么?1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。 10. 职业化软件工程师要注意的十大问题是什么?答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。 第3章本章的题型主要是选择题。 1. 可行性研究的目的是什么?答:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。 3. 可行性研究的实质:是要进行一次简化了的系统分析和设计过程。首先要分析和澄清问题定义,导出系统的逻辑模型,探索若可供选择的方案,对每种方案仔细研究它的可行性。推荐一个较好的解决方案和一个初步的计划。 第4,5章本章的题型有选择题。 2. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

4. 面向对象的分析方法主要是建立三类模型,即( D )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、操作 9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[, ],现从输入的角度考虑一组测试用例:, , , . 设计这组测试用例的方法是( c ) A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法 10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法 11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间 15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试 16.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表D.需求规格说明书 17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A.增量模型 B.喷泉模型 C.原型模型D.螺旋模型 (×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 (×)4、软件需求分析的任务是建立软件模块结构图。 (√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。 (×)7、进行总体设计时加强模块间的联系。(×)8、编码时尽量多用全局变量. (√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。 1. 软件生命期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么?

1.某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱 产学习,高中文化程度当电工;年龄在20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员;年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。请用PDL语言、判定表和判定树分别描述上述问题。 答:PDL语言描述: If(年龄<20){ If(文化程度=”初中”){ 脱产学习; } Else if (文化程度=”高中”){ 当电工; } } Else if (年龄<40){ If(文化程度=”初中” ||文化程度=”高中”){ If(性别=”男”){ 当钳工; } Else { 当车工; } }

Else{ 当技术员; } } Else{ If(文化程度=”初中” ||文化程度=”高中”){当材料员; } Else { 当技术员; } } 判定表

判定树 ---20<=<40----???? ?? ???????????? ?? ??????? 初中文化程度脱产学习 年龄<20高中文化程度电工女性车工中学文化程度年龄男性钳工大学文化程度技术员中学文化程度材料员年龄>=40大学文化程度技术员 2. 某考务管理系统有如下要求: (1)对考生送来的报名表进行检查; (2)对合格的报名表编好准考证号码后将准考证送给考生,并将汇总后的考生 名单送给阅卷站; (3)对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合 格者; (4)填写考生通知单(内容包含考试成绩及合格∕不合格标志),送给考生; (5)按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计及试题难 度分析,产生统计分析表。 画出该系统的分层数据流图。

软件工程期末试题及答案 选择题 1.软件测试的目的是()。 A)试验性运行软件B)发现软件错误C)证明软件正确D)找出软件中全部错误2.软件测试中白盒法是通过分析程序的()来设计测试用例的。 A)应用范围B)内部逻辑C)功能D)输入数据 3.黑盒法是根据程序的()来设计测试用例的。 A)应用范围B)内部逻辑C)功能D)输入数据 4.为了提高软件测试的效率,应该()。 A)随机地选取测试数据B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划D)选择发现错误可能性最大的数据作为测试用例5.与设计测试用例无关的文档是()。 A)项目开发计划B)需求规格说明书C)设计说明书D)源程序 6.测试的关键问题是()。 A)如何组织软件评审B)如何选择测试用例 C)如何验证程序的正确性D)如何采用综合策略 7.软件测试用例主要由输入数据和()两部分组成。 A)测试计划B)测试规则C)预期输出结果D)以往测试记录分析 8.成功的测试是指运行测试用例后()。 A)未发现程序错误B)发现了程序错误C)证明程序正确性D)改正了程序错误9.下列几种逻辑覆盖标准中,查错能力最强的是()。 A)语句覆盖B)判定覆盖C)条件覆盖D)条件组合覆盖 10.在黑盒测试中,着重检查输入条件组合的方法是()。 A)等价类划分法B)边界值分析法C)错误推测法D)因果图法 11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是()。A)系统功能B)局部数据结构C)重要的执行路径D)错误处理 12.软件测试过程中的集成测试主要是为了发现()阶段的错误。 A)需求分析B)概要设计C)详细设计D)编码

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 2、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。 A 业务需求 B 功能要求 C 非功能需求 D 用户需求 3、软件测试计划开始于需求分析阶段,完成于()阶段。 A 需求分析 B 软件设计 C 软件实现 D 软件测试 4.下面关于面向对象方法中消息的叙述,不正确的是( )。 A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息 B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息 C. 应用程序之间可以相互发送消息 D.发送与接收消息的通信机制与传统的子程序调用机制不同 5.美国卡内基—梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是( )。 A.工作无序,项目进行过程中经常放弃当初的计划 B.建立了项目级的管理制度 C.建立了企业级的管理制度 D.软件过程中活动的生产率和质量是可度量的 6.在McCall软件质量度量模型中,()属于面向软件产品修改。 A.可靠性B.可重用性C.适应性 D.可移植性 7.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测 试 D.软件维护 8.需求分析阶段的任务是确定() A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能

软件工程复习题(一) 一、选择题 1、瀑布模型本质上是一种() A、线性顺序模型 B、顺序迭代模型 C、线性迭代模型 D、及早见产品模型 2、使用程序设计的控制结构导出测试用例的测试方法是() A、黑盒测试 B、白盒测试 C、边界测试 D、系统测试 3、软件结构图的形态特征能反映程序重用率的是() A、深度 B、宽度 C、扇入 D、扇出 4、软件结构图中,模块框之间若有直线连接,表示它们之间存在() A、调用关系 B、组成关系 C、链接关系 D、顺序执行关系 5、需求分析最终结果是产生() A、项目开发计划 B、需求规格说明书 C、设计说明书 D、可行性分析报告 6、快速原型模型的主要特点之一是( ) A、开发完毕才见到产品 B、及早提供全部完整的软件产品 C、开发完毕后才见到工作软件 D、及早提供工作软件 7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( ) A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法 8、软件详细设计主要采用的方法是( ) A、模块设计 B、结构化设计 C、PDL语言 D、结构化程序设计 9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( ) A、.软件工程 B、软件周期 C、软件危机 D、软件产生 10、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作() A、需求分析 B、概要设计 C、详细设计 D、软件维护 11、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是() A、探索型模型 B、演化型模型 C、实验型模型 D、提交型模型 12、程序设计语言的工程特性之一为( ) A、软件的可重用性 B、数据结构的描述性 C、抽象类型的描述性 D、数据库的易操作性 13、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( ) A、可用性 B、可靠性 C、正确性 D、完整性 14、模块设计中,最不希望的内聚是() A、功能内聚 B、通信内聚 C、过程内聚 D、偶然内聚 15、实施快速原型模型方法开发软件的关键在于() A、CASE工具的支持 B、如何开发演化型模型 C、项目主管的支持 D、开发人员的素质 16、程序流程图(框图)中的箭头代表( )。 A、数据流 B、控制流 C、调用关系 D、组成关系 17、一个只有顺序结构的程序,其环形复杂度是( )。 A、0 B、1 C、3 D、不确定的

软件工程期末考试复习题-精品 2020-12-12 【关键字】方案、情况、方法、环节、条件、动力、空间、文件、质量、计划、运行、传统、认识、问题、系统、机制、有效、务必、密切、整体、尽早、平衡、合理、良好、合作、沟通、执行、统一、发展、细化、建立、制定、提出、发现、了解、研究、特点、突出、关键、安全、稳定、网络、准则、成果、要素、基础、需要、素质、环境、工程、项目、职能、资源、体系、能力、需求、方式、作用、标准、增量、结构、科学性、任务、反映、速度、关系、分析、提倡、逐步、形成、满足、严格、规划、管理、保证、维护、服务、指导、支持、优化、调整、完善、方向、适应、实现、提高、实施、改进、规范、中心、关心、规范化、有效性、复杂性、重要性 一、选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内,每小题1分) 软件工程 1.软件产品的开发主要是(D )。 A.复制 B.再生产 C.拷贝 D.研制 2.作坊式小团体合作生产方式的时代是(C )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 3.软件工程与计算机科学性质不同,软件工程着重于( C )。 A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论 4.与计算机科学的理论研究不同,软件工程是一门( C )学科。 A.理论性 B.原理性 C.工程性 D.心理性 5.软件工程的出现主要是由于( C )。 A.程序设计方法学的影响 B.其它工程科学的影响 C. 软件危机的出现 D.计算机的发展 6.在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是( D ) A、工作阶段间的等待时间 B、生产原型的复杂性 C、参与人员所需的工作站数 D、参与人员之间的通信困难 7.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主 要保证是(C ) A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质 8、下列不属于软件工程方法学三要素的是( D ): A、方法 B、工具 C、过程 D、操作 周期 1.将每个模块的控制结构转换成计算机可接受的程序代码是(A )阶段的任务。 A.编码 B.需求分析 C.详细设计 D.测试 2.可行性研究的目的是决定( B )。 A.开发项目 B.项目值得开发否 C.规划项目 D.维护项目 3.据国家标准GB8566-8计算机软件开发的规定,软件的开发和维护划分为八个阶段,其中 组装测试的计划是在( C )阶段完成的?

软件工程期末复习题 选择题 1.软件设计中划分模块的一个准则是(C)。 A低内聚低耦合 B低内聚高耦合 C高内聚低耦合 D.高内聚高耦合 2.(A)是用户和设计交换最频繁的方法。 A、原型化方法 B、瀑布模型法 C、螺旋模型方法 D、构件组装模型 3.试判断下列叙述中,哪个些是正确的(C)。 a、软件系统中所有的信息流都可以认为是事务流 b、软件系统中所有的信息流都可以认为是变换流 c、事务分析和变换分析的设计步骤是基本相似的 A、a B、b C、c D、b和c 4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C) A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质 5.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言(D) A、PASCAL B、VISUAL BASIC C、C++

D、汇编语言 6.软件测试的目的是?(D) A.软件的正确性 B.找出软件系统中存在的所有错误 C.证明软件系统中存在错误 D.尽可能多的发现软件系统中的错误 7.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。 A、程序的内部逻辑 B、程序的复杂程度 C、该软件的编辑人员 D、程序的功能 8.软件维护工作的最主要部分是(C)。 A、纠正性维护 B、适应性维护 C、完善性维护 D、预防性维护 9.PDL是(B)语言。 A.高级程序设计语言 B、伪码式 C、中级程序设计语言 D、低级程序设计语言 10.软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立(C)。 A、软件结构 B、软件过程 C、软件模型 D、软件模块 11.在数据流图中,○(椭圆)代表(B) A、数据流 B、转换 C、数据源 D、外部实体

综合练习一答案 一.选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末 B.60年代初C.60年代末 D.70年代初 A.运筹学B.工程学 C.软件学 D.软件学 E.数字 2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护 B.测试 C.详细设计 D.概要设计 E.编码 F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员 D。用户和软件人员的领导 10.下列叙述中,_______不属于数据字典的作用。 A、作为编码阶段的描述工具 B、为用户与开发人员之间统一认识 C、作为概要设计的依据 D、为需求分析阶段定义各类条目 11.使用结构化分析方法时,采用的基本手段是____。 A.分解和抽象 B.分解和综合C.归纳与推导D.试探与回溯12.结构化系统分析主要是通过____进行分析的。 A.算法分解B.控制结构分解 C.数据结构分解D.处理功能分解13.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的____。 总貌B.细节C.抽象D.软件的作者 13.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于____。 A.变换型 B 事务型 14.需求分析说明书不能作为______。

第一章概述 1.软件产品具有哪些特性? 答:软件是一种逻辑案件,而不是具体的物理实体,具有抽象性 软件是通过人的智力活动,将知识和技能转化成为信息的一种产品,是在研制,开发中被创造出来的 a.软件产品是一种逻辑产品. b.软件产品的生产主是研制,软件产品的成本主要体现在软件的... c.开发的软件可维护性差. d. 开发的软件可靠性差 ⑴是一种逻辑产品,与物质产品有很大的区别. ⑵软件产品的生产主要是研制,成本主要在开发和研制,开发完成后,通过复制就产生了大量软件产品. ⑶软件产品不会用坏,不存在磨损,消耗. ⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的 ⑸开发软件的费用不断增加,致使生产成本相当昂贵. (6)其质量往往靠不住,缺乏可见性 2.简述什么是软件工程? 答: 软件工程软件工程是开发、运行、维护和修复软件的系统方法,其中“软件” 的定义为计算机程序、方法、规则、相关的文档资料以及计算机上运行时所必须 的数据;软件工程是一门科学,其目的是生产无故障的、软件,且交付及时,不 超过预算,并满足用户要求; 3.软件生命周期可分为哪三个时期?GB 8567中规定可分为哪几个阶段? 答:定义时期:问题的定义(客户需求)、可行性研究(为什么做); 开发时期:需求分析(做什么)、总体设计(怎么做—抽象)、详细设计(怎么实现—具体)、编码(程序设计语实现)测试.。 运行时期:软件维护。 4.依下列叙述确定软件生命周期模型。 M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已 经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认 为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告简要阐 明你的理由。 答:瀑布模型的缺点在于只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。另外瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要,它已不适宜开发实验型的软件。根据快速原型法的特点,原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。开发人员通过建立原型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。说明它特别适合于开发探索型、实验型的软件。 5.依下列叙述确定软件生命周期模型。 假设要求你开发一个软件,该软件的功能是

《软件工程》选择题 一、选择题(在每小题得四个备选答案中,选出一个正确答案,并将正确答案得序号填在题干得括号内,每小题1分) 软件工程 1、软件产品得开发主要就是(D )。 A、复制B、再生产C、拷贝 D、研制 2、作坊式小团体合作生产方式得时代就是(C )时代。 A、程序设计B、软件生产自动化 C、程序系统 D、软件工程3、软件工程与计算机科学性质不同,软件工程着重于(C )。 A、理论研究 B、原理探讨 C、建造软件系统 D、原理得理论 4、与计算机科学得理论研究不同,软件工程就是一门(C)学科。 A、理论性B、原理性C、工程性D、心理性 5、软件工程得出现主要就是由于( C )。 A、程序设计方法学得影响 B、其它工程科学得影响 C、软件危机得出现 D、计算机得发展 6、在软件工程项目中,不随参与人数得增加而使软件得生产率增加得主要问题就是( D ) A、工作阶段间得等待时间 B、生产原型得复杂性 C、参与人员所需得工作站数 D、参与人员之间得通信困难 7、软件工程方法学得目得就是:使软件生产规范化与工程化,而软件工程方法得以实施得 主要保证就是(C ) A、硬件环境 B、软件开发得环境 C、软件开发工具与软件开发得环境D、开发人员得素质 8、下列不属于软件工程方法学三要素得就是( D ): A、方法 B、工具 C、过程 D、操作 周期 1、将每个模块得控制结构转换成计算机可接受得程序代码就是(A )阶段得任务。 A、编码 B、需求分析 C、详细设计 D、测试 2、可行性研究得目得就是决定( B )。 A、开发项目 B、项目值得开发否 C、规划项目 D、维护项目 3、据国家标准GB8566-8计算机软件开发得规定,软件得开发与维护划分为八个阶段,其中组装测试得计划就是在( C )阶段完成得? A、可行性研究与计划 B、需求分析 C、概要设计D、详细设计4、初步用户手册在( B )阶段编写。 A、可行性研究B.需求分析C.软件概要设计D.软件详细设计 5、在软件得可行性研究中,可以从不同得角度对软件得可行性进行研究,其中就是从软件得 功能可行性角度考虑得就是(B ) A、经济可行性 B、技术可行性C、操作可行性D、法律可行性 6、瀑布模型把软件生命周期划分为八个阶段:问题得定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试与运行、维护。八个阶段又可归纳为三个大得阶段:计划阶段、开发阶段与( C )。 A、详细计划 B、可行性分析 C、运行阶段D、测试与排错

综合练习一答案 选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末B.60年代初C.60年代末D.70年代初 A.运筹学B.工程学C.软件学D.软件学E.数字2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护B.测试C.详细设计D.概要设计E.编码F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员D。用户和软件人员的领导

一、画出实际的瀑布模型p16 三、画出增量模型p18 五、可行性研究的工作过程及内容p36 答:1).复查系统规模和目标; 2).研究目前正在使用的系统; 3).导出新系统的高层逻辑模型; 4).进一步定义问题; 5).导出和评价供选择的解法; 6).推荐行动方针;7).草拟开发计划;8.书写文档提交审查。 六、可行性研究的目的是什么?要如何进行?p35 答:目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。 首先,需要进一步分析和澄清问题定义。之后,分析员应该导出系统的逻辑模型。从系统逻辑模型出发,探索若干可供选择的主要解决方法(即系统实现方案)。对每种解法都应该仔细研究它的可行性,一般来说,至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。 二、画出快速原型模型p17 四、画出简化的螺旋模型p20 软件工程考试复习题

七、需求分析的任务是什么?进行需求分析时要重点考虑哪些方面的问题?p56 答:1、确定对系统的综合要求:1).功能需求——指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。2).性能需求——性能需求指定系统必须满足的定时约束或容量约束,如速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等。3).可靠性和可用性需求——可靠性是指确保各应用及其相关的所有交易的完整性和一致性的能力;可用性是指一个系统应确保一项服务或者资源永远都可以被访问到。4).出错处理需求——说明系统对环境错误应该怎样响应。5).接口需求——描述应用系统与它的环境通信格式。6).约束——在设计或实现应用系统时应遵守的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。7).逆向需求——说明软件系统不应该做什么。8).将来可能提出的要求——应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。 2、分析系统的数据要求。 3、导出系统的逻辑模型。 4、修正系统开发计划。 八、典型的总体设计过程包括哪些步骤?p92 答:典型的总体设计过程包括九个步骤: 1)、设想供选择的方案;2)、选取合理的方案;3)、推荐最佳方案;4)、功能分解;5)、设计软件结构;6)、设计数据库;7)、制定测试计划;8)、书写文档;9)审查和复查。 九、总体设计的主要任务是什么?总体设计的主要过程有哪些?p91 答:主要任务: 总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素—程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计的另一项重要的任务是设计软件的结构,也就是要确定系统中每个程序是由哪个模块组成,以及这些模块相互间的关系。 主要过程: ①寻找实现目标系统的各种不同的方案。②从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素。③进行成本/效益分析,并且制定实现这个方案的进度计划。从中选出一个最佳方案。④进一步为这个最佳方案设计软件结构。⑤进行必要的数据库设计,确定测试要求并且制定测试计划。 十、何谓耦合?有哪些类型?软件设计应该取哪种类型?p97 答:耦合是对一个软件结构内不同模块之间互连程度的度量。 类型:数据藕合、控制藕合、公共环境藕合、内容耦合 设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。 十一、何谓内聚?有哪些类型?软件设计应该取哪种类型?p98 答:内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。 低内聚有如下几类:偶然内聚、逻辑内聚、时间内聚。中内聚主要有两类:过程内聚、通信内聚。高内聚也有两类:顺序内聚、功能内聚。 设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。

相关文档
最新文档