软件工程复习.docx

上传人:b****6 文档编号:4434001 上传时间:2022-12-01 格式:DOCX 页数:11 大小:21.90KB
下载 相关 举报
软件工程复习.docx_第1页
第1页 / 共11页
软件工程复习.docx_第2页
第2页 / 共11页
软件工程复习.docx_第3页
第3页 / 共11页
软件工程复习.docx_第4页
第4页 / 共11页
软件工程复习.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

软件工程复习.docx

《软件工程复习.docx》由会员分享,可在线阅读,更多相关《软件工程复习.docx(11页珍藏版)》请在冰豆网上搜索。

软件工程复习.docx

软件工程复习

软件工程复习题一

一、选择题,请从四个可选项中选择正确答案。

1.以下哪一项不是软件危机的表现形式()?

A.成本高B.生产率低C.技术发展快D.质量得不到保证

2.哪种模型分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。

()

A.演化模型B.喷泉模型C.原型模型D.螺旋模型

3.可行性研究的目的不包括()

A.分析开发系统的必要性B.确定系统建模的方案

C.分析系统风险D.确定是否值得开发系统

4.可行性分析研究的费用大约是项目总经费的()。

A.2%B.8%C.20%D.50%

5.在E-R模型中,包含以下基本成分()。

A.数据、对象、实体B.控制、联系、对象

C.实体、联系、属性D.实体、属性、联系

6.软件需求分析产生一个重要文档是()。

A.软件维护说明书B.需求规格说明书

C.可行性报告D.初步用户手册

7.内聚程度较低的是()。

A.通信内聚B.过程内聚C.顺序内聚D.时间内聚

8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()

A.把软件划分成模块B确定模块之间的调用关系

C.确定各个模块的功能D.设计每个模块的伪代码

9.UML语言支持的建模方式不包括有()。

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.要求软件做什么B.要给软件提供哪些信息

C.要求软件工作效率如何D.要求软件具有什么样的结构

16.DFD中的每个加工至少需要()

A.一个输入流B.一个输出流

C.一个输入或输出流D.一个输入流和一个输出流

17.PDL是描述处理过程()。

A.做什么B.为什么做C.怎么做D.对谁做

18.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为()

A.数据耦合B.公共耦合C.标记耦合D.内容耦合

19.按照模块独立性,耦合程度由弱至强正确的顺序是()。

A.数据耦合、控制耦合、外部耦合、内容耦合

B.控制耦合、数据耦合、内容耦合、外部耦合

C.内容耦合、外部耦合、控制耦合、数据耦合

D.外部耦合、内容耦合、数据耦合、控制耦合

20.UML中,包图是一种()。

A.集合B.数据结构C.分组机制D.对系统的动态描述

21.面向对象设计首先要确定系统的总体结构和风格,构造系统的()。

A.逻辑模型B.物理模型C.数据模型D.用例模型

22.面向对象设计的步骤中,正确的顺序是()。

A.系统构架设计、用例设计、类设计B.系统构架设计、数据库设计和用户界面设计

C.类设计、用例设计、构架设计D.用例设计、构架设计、类设计

23.类有3种类型,即()。

A.边界类、实体类、控制类B.实体类、控制类、界面类

C.控制类、实体类、虚类D.界面类、控制类、公共类

24.()是一般化类与特殊化类之间的一种关联形式,设计时应该适当使用这种耦合。

A.消息连接B.参数传递C.方法重写D.继承

25.结构化程序设计主要强调的是()。

A.程序的规模B.程序效率C.程序语言的先进性D.程序易读性

26.下列关于功能性注释不正确的说法是()。

A.功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态

B.注释用来说明程序段,需要在每一行都要加注释

C.可使用空行或缩进,以便很容易区分注释和程序

D.修改程序也应修改注释

27.软件测试的目的是()。

A.评价软件的质量B.发现软件的错误

C.找出软件中的所有错误D.证明软件是正确的

28.在设计黑盒测试用例时,主要研究()。

c:

\iknow\docshare\data\cur_work\l

A.概要设计说明书B.详细设计说明

C.项目开发计划D.需求规格说明

29.以下属于完善性维护的有()。

A.解决开发时未能测试各种可能条件带来的问题

B.增加联机求助命令

C.缩短系统的应答时间,使其达到特定要求

D.为提高软件的可靠性和可维护性,主动修改软件

40.软件项目管理的内容包括()。

A.人员的组织与管理B.软件配置管理

C.软件开发进度计划D.以上所有

31.以下哪一项不属于面向对象的软件开发方法()?

A.coad方法B.booch方法C.jackson方法D.omt方法

32.面向对象分析的核心在于()。

A.建立正确的模型B.识别问题域对象C.识别对象之间的关系D.上面都有

33.在面向对象方法中,描述系统控制结构的模型是()模型。

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

34.面向对象分析和设计涉及到三个方面的内容:

()、一系列有效的分析步骤和一个方便易用的建模工具。

A.一套完善的建模符号B.有效的数据结构

C.灵活的体系结构D.稳定的系统架构

35.每个子系统的接口上定义了若干(),体现了子系统的功能。

A.说明B.操作C.属性D.关系

36.程序设计语言的技术特性不应包括()。

A.数据结构的描述性B.抽象类型的描述性

C.数据库的易操作性D.软件的可移植性

37.以下哪种测试方法不属于白盒测试技术()。

?

A.语句覆盖测试B.边界值分析测试C.条件覆盖测试D.判断覆盖测试

38.软件测试的主要特点是()。

A.软件测试的开销不大B.软件测试要依靠工具

C.软件不能进行“穷举”测试D.软件测试要依靠人工

39.在软件生存期的维护阶段,继续诊断和修正错误的过程称为()。

A.完善性维护B.适应性维护C.预防性维护D.改正性维护

40.不属于软件项目管理的是()。

A.开发机构能力评估B.项目风险评估C.质量监控D.软件销售利润

二、简答题

1.什么是软件危机?

试简述至少3种软件危机的典型表现。

2.简述软件过程模型

3.简述结构化分析的主要步骤

4.请给出软件工程七条基本原理中的任意6条基本原理。

5.软件工程为什么要强调规范化和文档化?

6.简述模块独立性,内聚与耦合。

7.设计下列伪程序的语句覆盖测试用例。

BEGIN

INPUT(A,B,C)

IFA>5THEN

X=10

ELSE

X=1

ENDIF

IFB>10THEN

Y=20

ELSE

Y=2

ENDIF

IFC>15

THENZ=30

ELSEZ=3

ENDIF

PRINT(X,Y,Z)

END

8.为了提高软件的可维护性,在软件开发过程的各个阶段怎样充分考虑软件的可维护性因素。

9.简述在项目开发时选择程序设计语言的主要考虑的因素。

10.设计下列伪程序的条件组合覆盖测试用例。

BEGIN

INPUT(A,B)

IF(A>0)AND(B>0)THEN

X=A+B

ELSE

X=A-B

END

IF(C>A)OR(D

Y=C-D

ELSE

Y=C+D

END

PRINT(X,Y)

END

三、应用题

1.一个简单的飞机机票预订系统:

机票预订系统按功能可分成两部分,一部分为旅行社预订机票,另一部分为旅客取票,两部分通过机票文件的数据存储联系起来。

旅行社把预订机票的旅客信息(姓名、年龄、单位、身份证号码、旅行时间、目的地等)输入机票预订系统。

系统为旅客安排航班,打印出取票通知单(附有应交的账款)。

旅客在飞机起飞的前一天凭取票通知单交款取票,系统检验无误,输出机票给旅客。

请你根据以上的描述,画出数据流程图。

2.用用例图描述图书管理。

该系统主要包括三类用户:

读者、图书管理员、系统管理员。

其中,读者是多个,图书管理员是几个,系统管理员是一个。

对于系统,读者可以查询自己的借阅情况、分门别类的查询图书和在规定期限内续借不能超过一次操作的情况下进行自行登录续借书等。

图书管理员主要是日常操作以下几个工作环节:

图书订购、新书验证、书目录入、图书登记、读者信息管理、借阅书登记、图书信息注销和读者信息注销等,而系统管理员统筹管理图书的系统相关事宜,比如权限维护、日志维护、增删用户和管理系统后台数据等。

参考答案

一、选择题,请从四个可选项中选择正确答案。

1.C2.A3.B4.B5.C

6.B7.D8.D9.C10.D

11.A12.B13.A14.D15.A

16.D17.C18.D19.A20.C

21.B22.A23.B24.D25.D

26.B27.B28.D29.B30.D

31.C32.D33.A34.A35.B

36.D37.B38.C39.D40.D

二、简答题

1.什么是软件危机?

试简述至少3种软件危机的典型表现。

答:

(1)软件危机是指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。

(2)典型表现:

●开发费用和进度难以估算和控制,大大超过预期的资金和规定日期;

●软件需求分析不够充分,用户不满意“已经完成”的软件系统。

●软件质量难于保证;

●软件维护困难;

●通常没有保留适当的文档资料

●开发成本逐年上升;

●软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势

2.简述软件过程模型

答:

(1)软件过程是人们开发和维护软件及相关产品的活动、方法、实践和改进的集合。

它明确定义软件过程中所执行的活动及其顺序,确定没一个活动内容和步骤,定义每个角色和职责。

(2)软件工程将软件开发和维护的过程概况为8个大的活动:

问题定义、可行性研究、需求分析、总体设计、详细设计、编码、系统测试和运行维护。

3.简述结构化分析的主要步骤

答:

(1)根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(IPO图),实体关系图。

(2)以初始数据流程图为基础,从数据流程图的输出端开始回溯。

在对数据流程图进行回溯的过程中可能会发现丢失的处理和数据,应将数据流程图补充完善。

(3)对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。

(4)系统分析人员与用户一起对需求分析的结果进行复查。

(5)根据细化的需求修订开发计划。

(6)编写需求规格说明书和初始的用户手册,测试人员开始编写功能测试用的测试数据。

4.请给出软件工程七条基本原理中的任意6条基本原理。

答:

原理1.用分阶段的生命周期计划严格管理

原理2.坚持进行阶段评审

原理3.实行严格的产品控制

原理4.采用现代程序设计技术

原理5.结果应能清楚地审查

原理6.开发小组的人员应该少而精

原理7.承认不断改进软件工程实践的必要性

5.软件工程为什么要强调规范化和文档化?

答:

(1)软件工程强调规范化和文档化。

规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。

(2)文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。

另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。

在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。

6.简述模块独立性,内聚与耦合。

答:

模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。

一般采用两个准则度量模块独立性。

即模块间耦合和模块内聚。

耦合是模块之间的互相连接的紧密程度的度量。

内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。

模块独立性比较强的模块应是高内聚低耦合的模块。

7.设计下列伪程序的语句覆盖测试用例。

BEGIN

INPUT(A,B,C)

IFA>5THEN

X=10

ELSE

X=1

ENDIF

IFB>10THEN

Y=20

ELSE

Y=2

ENDIF

IFC>15

THENZ=30

ELSEZ=3

ENDIF

PRINT(X,Y,Z)

END

答:

因为每个判定表达式为真或假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或假各一次。

下面是实现语句覆盖的典型测试用例:

(1)使3个判定表达式之值全为假

输入:

A=1,B=1,C=1

预期的输出:

X=1,Y=2,Z=3

(2)使3个判定表达式之值全为真

输入:

A=20,B=40,C=60

预期的输出:

X=10,Y=20,Z=30

8.为了提高软件的可维护性,在软件开发过程的各个阶段要充分考虑软件的可维护性因素。

答:

(1)在需求分析阶段应该明确维护的范围和责任,检查每条需求,分析维护时这条需求可能需要的支持,对于那些可能发生变化的需求要考虑系统的应变能力。

(2)在设计阶段应该做一些表更实验,检查系统的可维护性、灵活性和可移植性,设计时应该将今后可能变更的内容与其他部分分离出来,并且遵循高内聚、低耦合的原则。

(3)编码阶段要保持源程序与文档的一致性、源程序的可理解性和规范性。

(4)在测试阶段测试人员应该按照需求文档和设计文档测试软件的有效性和可用性,收集出错信息并进行分类统计,为今后的维护打下基础。

9.简述在项目开发时选择程序设计语言的主要考虑的因素。

答:

●编程人员的水平和编程经历;

●待开发的软件类型;

●算法和计算复杂性;

●数据结构的复杂性;

●软件的开发成本和时间要求;

●软件可移植性要求;

●可用的软件工具。

10.设计下列伪程序的条件组合覆盖测试用例。

BEGIN

INPUT(A,B)

IF(A>0)AND(B>0)THEN

X=A+B

ELSE

X=A-B

END

IF(C>A)OR(D

Y=C-D

ELSE

Y=C+D

END

PRINT(X,Y)

END

答:

条件组合覆盖标准为,使得每个判定表达式中条件的各种可能组合都至少出现一次。

本程序中共有两个判定表达式,每个判定表达式中有两个简单条件,因此,总共有8种可能的条件组合,它们是:

A>0,B>0

A>0,B<=0

A<=0,B>0

A<=0,B<=0

C>A,D

C>A,D>=B

C<=A,D

C<=A,D>=B

下面的4个测试用例,可以使上面列出的8种条件组合每种至少出现一次:

实现1,5两种条件组合

输入:

A=1,B=1,C=2,D=0

预期的输出:

X=2,Y=2(1分)

实现2,6两种条件组合

输入:

A=1,B=0,C=2,D=1

预期的输出:

X=2,Y=1(1分)

实现3,7两种条件组合

输入:

A=0,B=1,C-1,D=0

预期的输出:

X=-1,Y=-1(1分)

实现4,8两种条件组合

输入:

A=0,B=0,C=-1,D=1

预期的输出:

X=0,Y=0(1分)

三、应用题

1.答:

(答案不唯一,做为参考)。

2.答:

参考答案

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1