0


软件工程综合习题

一、填空题

1.一般来说,可以从__一致性__、_完整性___、_现实性____和_有效性___四个方面验证软件需求的正确性。

2.IPO图是_输入、处理和输出图_的简称,它是美国IBM公司发展完善起来的一种图形工具。

3.系统流程图是描述__物理模型__的传统工具,用图形符号表达了系统中各种元素之间的_____信息流动_____情况。

4.数据流图中的箭头表示 数据流 ,椭圆或圆形表示 数据处理 ,矩形表示 数据的源点/终点 。

5.软件测试的步骤按顺序分别是:单元测试_____、子系统测试、系统测试(子系统和系统测试通常称为集成测试)、__确认测试__和_____系统测试(集成测试)_

6.软件生命周期一般可分为_问题定义_、可行性研究、_需求分析_、设计编码、_测试_、运行与维护阶段。

7.可行性研究主要集中在以下四个方面_经济可行性_、__技术可行性____、__法律可行性___和抉择。

8.在结构化设计中,HIPO图应用在 总体设计 阶段,由IPO图和_层次图_两部分组成。

9.复杂问题的对象模型通常由下述五个层次组成:主题层、___类与对象_层、__结构___层、_属性_层和__服务_层。

10.实施精化设计的目标是基于模块的“高内聚低耦合”的原则,提高模块的_独立性。

11.软件生命周期一般可分为___问题定义_、可行性研究、__需求分析__、概要设计__、详细设计、编码、__软件测试_、运行与维护阶段。

12.面向对象的数据存储管理模式分为__文件__、_关系数据库__和__面向对象数据库___三种。

13.单元测试一般以_白盒_测试为主,__黑盒__测试为辅。

14.软件工程三要素包括_方法_、__工具___和__过程___,其中, _过程_支持软件开发的各个环节的控制和管理。

15.类构件的重用方式有_实力重用__、_继承重用______和 多态重用__三种。

16.能力成熟度模型分为5个等级:初始级、____可重复____级、__已定义___级、____已管理__级和__优化____级。

二、判断题

1.向滞后的项目中增加人手会使得项目更加滞后。(T

2.过程描述语言可以用于描述软件的系统结构。(F

3.按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。(**F **)

4.只有质量差的软件产品才需要维护。( F

5.层次图用来描述软件的层次结构。层次图中的一个矩形框代表一个模块,方框间的连线表示模块的组成关系。在层次图中除最顶层的方框之外,给每个方框都加编号,即成为带有编号的层次图。( F

6.建立动态模型的第一步,是编写典型交互行为的脚本。( T

7.软件错误可能出现在开发过程的早期,越早修改越好。(T

8.软件模块的耦合是越低越好。( T

9.一个好的测试用例在于能发现至今未发现的错误。( T

10.面向对象设计的结果只能采用面向对象语言来实现( F

11.一个成功的项目唯一提交的就是运行程序。(F

12.用例之间的关系有3种。( T

13.面向对象设计准则也要遵循弱耦合的原则,但是继承耦合则应该提高,紧密地继承耦合与高度的一般-特殊内聚是一致的。 ( T

14.软件工作的考虑范围主要是程序设计和实现。(**F ** )

15.环形复杂度定量度量程序的逻辑复杂度,可以用这个公式来计算环形复杂度:流图G的环形复杂度V(G) = N– E + 2。(改成E-N+2)( F

16.等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。( T

17.在进行总体(改成概要)设计时应加强模块间的联系。( ** F** )

18.系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。( T

19.建立动态模型的第一步,是编写典型交互行为的脚本。( ** T ** )

20.在程序调试时,找出错误的位置和性质比改正该错误更难。(** F ** )

21.如果通过软件测试没有发现错误,则说明软件是正确的。( ** F ** )

22.快速原型模型可以有效地适应用户需求的动态变化。( ** T** )

23.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。( **T ** )

24.集成测试主要由用户来完成。( ** F ** )

25.面向对象 = 对象 + 类 + 继承 + 消息传递。( ** T** )

26.面向对象的分析是面向计算机系统建立软件系统的对象模型。( F

三、选择题

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.时间内聚

  1. 偶然内聚 D.功能内聚

12.需求分析是( )。
A. 软件开发工作的基础 B. 软件生存周期的开始
C. 由系统分析员单独完成的 D. 由用户自己单独完成的

13.在白盒测试技术测试用例的设计中,( )是最强的覆盖标准。

A.语句覆盖 B.路径覆盖

C. 条件组合覆盖 D.判定覆盖

14.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为( )。
A. 改正性维护 B. 适应性维护
C. 完善性维护 D. 预防性维护

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

A. 多态性 B. 继承

C. 封装 D. 消息

16.对象实现了数据和操作的结合,使数据和操作( )于对象的统一体中。

A.结合B.隐藏C.封装D.抽象

17.面向对象的开发方法中,( )将是面向对象技术领域内占主导地位的标准建模语言。

A.Booch方法 B.Coad方法 C.UML语言 D.OMT方法

18.( )意味着一个操作在不同的类中可以有不同的实现方式。

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

19.单元测试的测试用例主要根据( )的结果来设计。

A.需求分析 B.源程序 C.概要设计 D.详细设计

20.软件测试是为了( )而执行程序的过程。

A. 纠正错误 B. 发现错误

C. 避免错误 D. 证明正确

21.类构件的重用方式有多态重用、继承重用和( )

A.实例重用 B.重载重用

C. 代码重用 D. 方法重用

22.支持面向对象技术的软件生存周期模型是( )。
A. 喷泉模型 B. 螺旋模型
C. 增量模型 D. 瀑布模型

23.在白盒测试技术测试用例的设计中,( )是最弱的覆盖标准。

A.语句覆盖 B.路径覆盖

  C.条件组合覆盖 D.判定覆盖

24.下面哪些测试方法属于白盒测试( )。//BCD是黑盒测试

A、基本路径测试  B、等价类划分  C、边界值分析

D、错误推测 E、逻辑覆盖测试

25.下列哪些选项是属于内容耦合( )。

A.一个模块直接访问另一个模块的内部数据

B.一个模块有多个入口

C.一个模块不通过正常入口转到另一模块内部

D.一个模块只有一个入口

26.下列属于度量效益方法的是( )。

A、货币的时间价值 B、投资回收期

C、收入 D、投资回报率

27.数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,哪些是常采用的( )。
A、自顶向下 B、自底向上 C、分层绘制 D、逐步求精

28.软件设计中一般将用到图形工具,下列哪种些可用作设计的图形工具( )。
A、结构图
B、实体联系图
C、IPO图
D、层次图

四、简答题

1.简述增量模型的优点和缺点。

答:

优点 :

采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量。当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。这样即可先发布部分功能给客户,对客户起到镇静剂的作用。此外,增量能够有计划地管理技术风险。

  缺点 :

1) 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。

2) 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

3)如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程。

2.简述软件设计的过程。

答:

软件设计是把许多事物和问题抽象起来,并且抽象它们不同层次和角度,是将需求转变为软件陈述的过程,是迭代的过程。软件设计,要根据需求规格说明 书,对整个设计过程进行计划,然后实施具体的设计过程,即“先整体,再局部”,也是不断迭代和精化的过程。然后需要对生成的设计规格说明书进行评审,启动 质量评价的标准,若未通过评审,需重新修改设计,直至评审通过,确定最后定型的过程本身。进入后续阶段,完成软件设计过程。

3.原型化方法主要用于解决什么问题?试说明这种方法的主要优缺点。

答:

建立原型的主要原因是为了解决在产品开发的早期阶段需求不确定的问题,用户、经理和其他非技术项目风险承担者发现在确定和开发产品时,原型可以使他们的想象更具体化。

原型在软件开发过程中可以起到以下主要作用:

 (1) 明确并完善需求 原型作为一种需求工具,它初步实现所理解的系统的一部分。用户对原型的评价可以指出需求中的许多问题,在你开发真正产品之前,可以最低的费用来解决这些问题。

 (2) 探索设计选择方案 原型作为一种设计工具,用它可以探索不同的用户界面技术,使系统达到最佳的可用性,并且可以评价可能的技术方案。

 (3) 发展为最终的产品 原型作为一种构造工具,是产品最初子集的完整功能实现,通过一系列小规模的开发循环,你可以完成整个产品的开发。

4.请看下列伪代码程序,要求完成下列问题:

(1)画出代码的流程图(4分)

(2)根据该程序流程图画出该程序的流图;(4分)

(3)计算该流图的环形复杂度;(4分)

START
     INPUT (A,B,C)
       IF A>5
        THEN X=10
        ELSE X=1
     END IF
     IF B>10
        THEN Y=20
        ELSE Y=2
     END IF
     IF C>15
        THEN Z=30
        ELSE Z=3
     END IF
     PRINT (X,Y,Z)
     STOP

(1)

(2)

(3)

法一:环形复杂度=E-N+2=18-16+2=4

法二:环形复杂度=P+1=3+1=4

5.简述结构化程序设计方法的基本特点。

答:

(1)尽可能少用goto语句的程序设计方法;

(2)每个代码块都单入单出;

(3)使用控制结构:顺序、选择和循环;

(4)自顶向下逐步求精。

6.请比较快速原型模型和螺旋模型的优缺点,并说明各自的适用范围。

答:

模型

优点

缺点

适用范围

快速原型模型

易于获取客户真实需求

可能导致系统设计差、效率低,难于维护

适用于对软件需求缺乏准确认识的情况

螺旋模型

风险驱动,降低风险

风险分析人员需要有经验且经过充分训练

内部开发的大型软件项目

7.衡量模块独立性的两个定性标准是什么?这两个标准的定义分别是什么?在我们的软件设计中,关于模块独立性我们追求的目标是什么?

答:

衡量模块独立性的两个定性标准是内聚和耦合(2分)。

耦合是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元素彼此结合的紧密程度(2分)。

在我们的软件设计中,关于模块独立性我们追求的目标是紧密内聚松散耦合(1分)。

8.什么是黑盒测试法?

答:

黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程(2分)。它只检查程序功能是否能按照规格说明书的规定正常使用(1分),程序是否能适当地接收输入数据(1分),产生正确地输出信息(1分)。

9.面向对象设计中,存在有哪几种耦合和内聚?

答:

弱耦合:交互耦合,继承耦合

强内聚:服务内聚,类内聚,一般-特殊内聚

10.某个程序的伪码如下(前面的标号只用于标明语句顺序,不参与程序运行):

START
IF L1 THEN
S1
DO WHILE L2
S2
IF L3 THEN
S3
ELSE
S4
END IF
END  DO
EISE
S5
END IF
STOP

10.某个程序的伪码如下(前面的标号只用于标明语句顺序,不参与程序运行):

(1)试将其转换成PAD图(5分)

(2)计算程序的环路复杂度(5分)

法一:环路复杂度=E-N+2=15-13+2=4

法二:环路复杂度=P+1=3+1=4

11.简述面向对象的4个要点的含义。

答:

面向对象的4个要点是:对象分解、数据专有、继承、封装性。(1分)

1)对象分解:认为客观世界是由各种对象组成的。  (1分)

2)数据专有,方法共享:把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。 (1分)

3)继承:按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。(1分)

4)封装性:对象彼此之间仅能通过传递消息互相联系。(1分)

12.在下面用例图中,有哪些行为者,有哪些用例?

答:

行为者:Bank network, Manager, Clerk

用例:Authorize purchase, Log onto redister, Sell goods, Restock inventory, Open store

13.航空公司托运行李规定:乘客可以免费托运重量不超过20公斤的行李。当行李超过20公斤时,对头等舱的国内乘客超重部分每公斤收费3元,对其它舱的国内乘客超重部分每公斤收费5元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。要求用判定树来表示计算行李费的算法。

答:

14.已知有一段代码实现了“输出ABC三个数中的最大值”,要求完成下列问题:

(1)画出代码的流程图(4分)

(2)根据该程序流程图画出该程序的流图;(4分)

(3)计算该流图的环形复杂度;(4分)

1.等于流图中的区域数

2.或等于(边数-节点数+2)

3.或等于(判定节点数+1)

因此复杂度为4

15.多余答案:题目应该是(软件维护的过程)

在软件开发完成交付用户使用后,为了保证软件在一个相当长的时期能够正常运行,就需要对软件进行维护。 软件维护的过程:

(1) 确认维护要求。(1分)

(2) 对于改正性维护申请,评价错误的严重性。对于严重的错误,立即安排人员,分析问题原因,进行"救火"性的紧急维护;对于不严重的错误,根据任务情况和轻重缓急进行统一安排。(2分)

(3) 对于适应性和完善性维护申请,需要确定申请的优先级,然后安排维护工作。并不是所有的完善性维护申请都必须承担,需要考虑商业需要、现有资源、未来发展方向等进行决定。(2分)


本文转载自: https://blog.csdn.net/WHT869706733/article/details/124481054
版权归原作者 一条小橘猫 所有, 如有侵权,请联系我们删除。

“软件工程综合习题”的评论:

还没有评论