文档库 最新最全的文档下载
当前位置:文档库 › 中南大学软件工程复习题及参考答案

中南大学软件工程复习题及参考答案

中南大学软件工程复习题及参考答案
中南大学软件工程复习题及参考答案

中南大学复习题及参考答案

软件工程

一、选择题:

1.下面哪些UML图描述系统行为( A )

A.用例图

B.类图

C.对象图

2.属于概要设计活动的是( A )

A.软件结构设计

B.数据结构设计

C.算法设计

3.属行为型设计模式的是(C)

A.组合模式

B.工厂方法模式

C.观察者模式

4.下列说法正确的是( B )

A.UML是软件开发方法

B.UML是系统描述语言

C.UML是软件开发过程

5. 根据程序流程图划分的模块通常是( B )

A. 信息内聚的模块

B. 过程内聚的模块

C.逻辑内聚的模块

6.如果某程序中的比较个数是m,则其McCabe环形复杂度为( C )

A.m-1

B.m

C.m+1

7.按ISO9000-3的说明,下列属软件配置项的是( C )

A.软件开发方法

B.软件开发组织管理制度

C.软件开发合同

8. 软件测试的目的是( C )

A.证明软件无错

B.发现软件中的所有错误

C.尽可能发现软件系统中的错误

9.软件重构关注的是( B )

A. 软件体系结构

B. 模块细节

C.软件性能

10.软件项目开发计划的内容有( B )

A. 数据分析

B.风险分析

C.功能分析

11.在UML的类图中,描述整体与部分关系的有( B )

A.泛化关系

B.聚合关系

C.依赖关系

12.软件过程能力成熟度模型CMM用以评价(A)

A.软件过程能力

B.组织能力

C.学习能力

13. 因计算机硬件和软件环境的变化而作出的修改软件的过程称为( C )

A. 完善性维护

B. 改正性维护

C.适应性维护

14. 对项目软件而言,软件功能需求信息主要由谁提供( A )

A.软件用户

B.软件开发人员

C.软件项目管理人员

15. IDEF0图反映不出(C)

A.系统做什么

B.系统功能由谁做

C.系统如何做

16. 原型模型是一种什么开发过程模型(B)

A.自顶向上

B. 由外至内

C.增量式

17. 系统流程图描述(A)

A.物理系统

B.逻辑系统

C.软件体系结构

18.需求规格说明书的内容不应该包括( C )

A.软件确认准则

B.软件的性能描述

C.算法过程的详细描述

19.适合需求模糊或需求不确定系统开发的软件开发模型有( C )

A. 瀑布模型

B. RAD模型

C.原型模型

20.UML图中描述系统结构的有( A )

A. 组件图

B. 顺序图

C.状态图

21.面向对象方法是一种什么软件开发方法( B )

A.层次化

B.迭代增量式

C.逐步求精

22.不可以用来衡量软件可维护性的有()

A.可靠性

B.可用性

C.可行性

23. 系统分析员在需求分析最后负责编写()

A.用户手册

B. 概要设计说明书

C.可行性研究报告

24.为了提高软件的可靠性、可维护性等而对软件的修改称为()

A.改正性维护

B.适应性维护

C.预防性维护

25.在结构化方法中,为使需求改变对软件影响较小,应该使软件结构()

A. 与问题结构对应

B. 与问题结构独立

C.与用户界面对应

26.单元测试的计划应该在什么阶段完成()

A. 需求分析

B. 概要设计

C.详细设计

27. 下列属面向对象软件开发方法的有()

A. LCP方法

B. OMT方法

C.IDEF0方法

28.强调信息隐藏的软件工程设计方法有()

A.Jackson方法

B.Parnas方法

C.SA/SD方法

29.描述系统动态行为的模型有()

A.包图

B.软件结构图

C.状态图

30.考虑输入条件组合的测试用例设计方法有()

A.等价分类法

B.语句覆盖法

C. 因果图法

31. 下列能减少支援性维护活动的有()

A.利用软件包

B.进行配置管理

C.对用户进行适当培训

32. 只支持单重继承的程序设计语言有()

A.C++

B.Delphi

C. C

33. IDEF0图的顶层图是()

A. A0图

B.A-0图

C.A-1图

34. 在UML的用例图中,扩展关系是一种()

A. 泛化关系

B.依赖关系

C.关联关系

35.独立测试小组开始介入测试是在()

A.模块测试阶段

B.集成测试阶段

C.确认测试阶段

36. 在成本估计中容易低估局部问题的方法是()

A. 基于经验模型的估计

B. 自底向上估计

C. 自顶向下估计

37.在IDEF1X图中,如果子实体与父实体存在联系,则子实体将继承父实体的()

A.全部属性

B.主关键字属性

C.非主关键字属性

38. 结构化分析方法使用的工具有()

A. 数据流图

B.类图

C.软件结构图

39. 白盒测试设计用例的方法是()

A. 等价分类法

B.基本路径覆盖法

C.因果图法

40. 在衡量软件质量时,最重要的标准是()

A. 可维护性好

B. 可用性好

C. 满足用户功能需求

41. 瀑布模型是一种()

A. 演化模型

B. 顺序模型

C. 增量模型

42. 模块的独立程度可以由什么定性标准度量()

A. 耦合度

B. 复杂度

C.可靠性

43.以下选项中,不属于对象的特点有()

A. 继承

B. 多态

C. 封闭

44. 面向数据结构的设计方法有()

A.Parnas方法

B.Jackson方法

C. IDEF0方法

45. 与UML配合最好的软件开发方法是()

A.RUP方法

B.Coad/Yourdon方法

C.IDEF4方法

二、填空题:

1.统一建模语言UML提供了两种描述整体/部分关系的方法,分别是和。

2.软件是计算机程序、及的完整集合,将其统称为软件配置,这些项称为软件配置项。

通过正式复审的软件配置项称为,只有通过正式的变化控制过程才能改变它。

3.纯收入是指在整个生存周期之内的与投资之差。

4.瀑布模型是以驱动的软件生存周期模型,适合需求明确的软件系统开发。

5.在单元测试期间,应该为被测模块编写相应的测试软件,一般地模块接收测试数据,并把数据传给被测模块,而模块则模拟实际模块完成少量数据处理。

6.IDEF0方法用严格的自顶向下、逐层分解的方式进行系统的功能描述,其顶层图

将图在建模范围内分解成个主要部分得到。

7.如果一个模块完成多个逻辑上相近或相关的功能,并且每次调用只选择该模块中的一个功能执行,则称此模块为内聚的模块。

8.程序静态分析的对象是。常生成各种引用表,如列出各模块中出现的全部标号。

9.在数据流图中,每个加工至少有一个和一个。

10.两个小组独立地测试同一个程序,第一组发现25个错误,第二组发现30个错误,在两个小组发现的错误中有15个是共同的,那么可以估计程序中的错误总数是。

11.设E为程序图G中边的总数; N 为程序图中结点的总数,则该程序图的环形复杂度为。

12.汽车有一个发动机。若用UML描述汽车和发动机之间的关系,则它们之间是_____关系。

13.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略,即策略和策略。

14.在基本路径测试中,以详细设计为基础,导出控制流程图的拓扑结构: 程序图,在计算了程序图的之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。

15.在多层次的结构图中,其模块结构的层次数称为结构图的。结构图中同一层模块的最大模块数称为结构图的。

16.耦合性是指两个模块之间的关系,模块之间的联系越复杂,每个模块的独立性就。

17.可行性研究实质上是进行了一次过程。

18.需求分析的任务是。

19.NS图的主要优点是它强制设计人员使用技术,从而可保证软件设计的质量。

20.结构型模式涉及如何组合类和对象,从而构成更大的对象,一是采用来组合接口或实现形成更大的结构;另一种方式通过方式来形成。

21.为了便于对照检查,测试用例应由和预期的两部分组成。

22.软件开发时,一个错误发现得越晚,为改正它所付出的代价就。

23.在UML的用例图中,根据参与者与用例关系的不同,参与者可分为和次要参与者,参与者之间的关系只有关系。

24.评价软件质量可以从三个方面进行,即产品或中间产品、和项目。

25.软件配置管理是一组用于在计算机软件的整个生存周期内管理的活动。

26.通过抽象,可以确定组成软件的。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的。

27.UML表示法的基础是,它描述建模元素的语义。

28.条件覆盖是指设计足够的测试用例,使得至少出现一次。

29.面向数据流图的结构化分析方法是根据的原则,按照系统中数据处理的流程,用数据图来建立系统的模型。

30.评估软件企业的质量管理有两种方法,一种是按照认证,另外一种是按照

CMM认证。

31.风险估计从两个方面来度量,一是估计,二是估计与风险相关的问题出现后将会带来的损失。

三、名词解释题:

1.集成测试

2.设计模式

3.信息隐藏

4.用例

5.结构化方法

6.MVC

四、判断题:

1. 测试计划、测试用例和出错统计等一般不用长期保存。 ( )

2. 在面向对象方法中,需求分析和设计没有差别。()

3. 应用设计模式使得软件灵活,可重用性提高,应该尽量多使用。()

4. UML是一种建模语言,可以被任何面向对象方法使用。()

5. 任何系统都需要对数据进行处理,因而数据流图可描述任何系统。()

6. 软件开发就是编写程序代码。 ( )

7. 面向对象软件开发最适合采用迭代、增量式的开发模型。()

8. 设计模式是一种可以重用的面向对象软件设计方案。()

9. 软件测试就是检查程序是否正确。()

10. 软件项目计划在可行性研究阶段就已定稿。()

11. 软件工程认为软件设计的最终目标是要取得最佳方案。 ( )

12. 只要对软件进行严格的测试,就能发现软件中的所有错误。()

13. 初级技术人员在编码阶段参与软件项目的程度在各类人员中最高。()

14. 单元测试常常在编码阶段进行。()

15. CMM描述和分析了软件过程能力的发展与改进的程度。()

16. 为了加快开发速度,可以一边写程序,一边设计文档。 ( )

17. 没有发现任何错误的测试是无效的测试。()

18. 软件结构图中不能有控制信息流动。()

19. 单元测试常常由独立的测试小组进行。()

20. 用例建模只能用于面向对象软件系统的开发。()

21. 数据流建模方法是一种自顶向下的需求分析方法。()

22. 为了减少程序的长度,最好不要在程序中增加注释。()

五、简答题:

1. 在需求分析和设计阶段建立原型的好处有哪些?

2. 什么是模块的扇入和扇出?

3. UML的特点是什么?

4.层次图和层次方框图有何区别?

5. 软件测试对象应包括哪些内容?

6. 试简要叙述文档在软件工程中的作用。

7. 为何螺旋模型主要适合开发人员和用户为同一个组织机构成员的软件项目的开发?

8. 软件测试为何需要尽早和不断地进行?

9.简要说明如何实现MVC。

10.试给出一种开源软件框架,并简要说明开源软件存在的问题。

11. IDEF0方法有什么特点?

12. 快速原型模型有几种?各有何特点?

六、综合题:

1.某网络学院决定开发一个管理所有学生和教师信息的交互式网络系统,该系统提供如下服务:

(1)浏览学生信息:网络学院的任何人员,包括学生和老师,均可以浏览学院任何学生的信息,包括姓名、学号和专业名称。

(2)浏览教师信息:网络学院的任何人,包括学生和老师,均可以浏览学院任何教师的信息,包括姓名、工号和职称。

(3)登录:网络学院给学院每个人一个账号。拥有授权帐号的学生和老师,可以使用系统提供的页面设置个人密码,并使用该帐号和密码向系统注册。

(4)修改个人信息:学生或老师向系统注册后,可以发送电子邮件或使用系统提供的页面,对个人信息进行修改。

(5)删除个人信息:只有网络学院的管理人员才能删除不再是学院学生或老师的人员的有关信息。

试问哪些是参与者?哪些是用例?并用UML的用例图描述系统行为。

2.试据下述伪代码描述的模块,改用NS图描述。

Begin

a

b

Do Until x6

If xl then

f

If x4 then

Do Until x5

i

End Until

Else

g

h

End if

Else

Select Case x2

Case 1:

Do While x3

c

End While

Case 2:

d

Case 3:

e

End Select

End if

End Until

End

3.某五星级宾馆共有H间客房。每间客房的房间号、房间等级、床位数以及占用状态分别存放在数组ROOM、RANK、NBED和STATUS中。房间等级用整数表示。房间状态有:空闲(0表示)和占用(1表示)。客房以房间为单位出租。试设计一个算法,依据散客的要求预定房间,要求输入为:人数M,房间等级要求R(R为0表示任意等级均可);输出为:可供选择的房间号。要求用程序流程图描述算法。

4. 某医院打算开发一个以计算机为中心的患者监护系统,以解决医院人手不够和对危重病人的及时监护。该系统应能做到以下几点:随时接受每个病人的生理信号;定时记录病人情况形成患者日志;当病人生理信号超出医生规定的安全范围时向值班护士发告警信息;此外,护士在需要时,还可要求系统印出指定病人的病情报告。试椐此叙述绘出对应的DFD图。

5. 试采用设计模式描述算术表达式(不含圆括号)的设计方案。算术表达式是由加、减、乘、除和操作数构成的表达式,操作数假定为实数。

6.请根据如下程序流程图设计该程序段的判定覆盖测试用例,其中输入为A,B,X,输出为X。

参考答案

一、选择题:

1.A 2.A 3.C 4.B 5.B 6.C 7.C

8.C 9.B 10.B 11.B 12.A 13.C 14.A

15.C 16.B 17.A 18.C 19.C 20.A 21.B

22.C 23.A 24.C 25.A 26.C 27.B 28.B

29.C 30.C 31.C 32.B 33.A 34.B 35.C

36.C 37.B 38.A 39.B 40.C 41.B 42.A

43.C 44.B 45.A

二、填空题:

1.聚集组合

2.描述计算机程序的文档数据基线

3.累计经济效益(折合成现在值)

4.文档

5.驱动模块桩模块

6.A-0 3-6

7.逻辑

8.源程序标号交叉引用表

9.输入流输出流

10.50

11. E – N + 2

12.聚合

13.深度优先广度优先

14. 环形复杂性以前没有处理的语句或条件

15. 深度宽度

16.依赖越低

17.大大压缩简化了的系统分析和设计过程

18.确定系统必须完成哪些工作

19.结构化

20. 继承对象组合

21.输入数据预期输出结果

22.越大

23.主要参与者泛化

24. 过程

25. 变化

26.过程实体存取限制

27.UML元模型

28.判定表达式中每个条件的各种可能的值

29.分解与抽象功能

30. ISO9001

31. 风险发生的可能性

三、名词解释题:

1.集成测试也称组装测试或联调。是指在单元测试的基础上,将所有模块按照概要设计要求组装成一个完整的系统而进行的测试。模块组装的方式有两种:渐增式和非渐增式。

2.设计模式是普通面向对象设计问题的解决方案,这类问题以一组交互类的形式出现,用户根据需要定制这些交互类以形成专门的设计。所有设计模式均可以从四个方面加以描述:模式名称、问题描述、解决方案和效果。

3.信息隐藏是指在模块设计时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的

其他模块来说是不能访问的。这样,改变模块的内部过程和数据的设计不会影响到其它模块。

4.用例是参与者为达到某个目的而与系统进行的一系列交互,执行结果将为参与者提供可度量的价值。从参与者的角度来看,用例应该是一个完整的任务,在一个相对较短的时间内完成。

5.结构化方法是一种传统的软件开发方法,其总的指导思想是自顶向下、初步求精、单入口、单出口,其基本原则是抽象和功能分解。

6.MVC即模型、视图、控制器。其中,模型是应用对象,其包含一些数据值,维护数据并提供数据的访问方法。视图显示模型的部分或说有数据,多个视图可以以不同的方式来显示模型中数据。控制器处理用户输入事件。

四、判断题:

1.X 2.X 3.X 4.√5.√6.X 7.√ 8.√ 9.X10.X11.X12.X13.√ 14.√ 15.√16.X 17.√ 18.X 19.X 20. X21.√22. X

五、简答题:

1.在需求分析和设计阶段建立原型的好处有:

(1)增进开发人员和用户对系统需求的一致理解,明确软件需求,尤其是功能含糊的需求。

(2)原型提供了一种有力的学习手段,能够使用户尽早接触系统。

(3)原型可以用来识别或化解风险。

(4)原型有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统。

2.扇入则定义为一个模块被调用(或控制)的模块个数;扇出表示一个模块直接调用(或控制)的其他模块数目。

3.UML的特点是:

(1)统一了面向对象方法的有关概念和描述方法;

(2)表达能力强,能对各种并发分布式系统进行建模,且UML还提供了扩展机制;

(3)UML专注于一种标准的建模语言,而不是一个开发过程。

4.层次图主要用来描绘软件的层次结构,矩形框代表一个模块,矩形框之间的连线表示模块之间的调用关系,常与IPO图一起形成HIPO图。层次方框图主要描述系统的组成关系,一般自用域需求分析。5.软件测试并不等于程序代码测试,其应该贯穿于软件定义与开发的整个期间。因此,需求分析、概要设计以及程序编码等各阶段所得的文档,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序代码都应成为软件测试的对象。

6.在软件工程中,文档的作用是:

(1)提高软件开发过程的能见度;

(2)记录开发过程的有关信息便于使用与维护;

(3)作为开发人员阶段工作成果和结束标志;

(4)提高开发效率;

(5)提供软件运行、维护和培训有关资料;

(6)便于用户了解软件功能、性能。

7.因为如果开发人员和用户属于不同的组织机构,则一般在正式的软件开发之前均需要签订合同,所有的风险分析均必须在签订合同之前完成。但螺旋模型需要在软件开发的每一个阶段都进行风险分析,当重要风险不能解决时,项目应该终止。由此螺旋模型可能因为风险使得合同在完成之前就终止,从而导致法律诉讼。故螺旋模型不适合开发人员和用户属于不同组织机构的情况。

8.软件测试不应仅仅作为一个独立的软件开发阶段,而应贯穿到软件开发的各个阶段中。通过各阶段的评审,在早期把错误解决,以减少错误放大效应,这样不仅可以提高软件质量,而且也是降低软件成本的一个重要措施。由此,软件测试应该尽早和不断地进行。

9.MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的表示层(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过MVC把应用逻辑,处理过程和显示逻辑分成不同的组件实现。10.Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开源应用框架。 Struts 框架主要有如下功能:1)包含一个controller servlet,能将用户的请求发送到相应的Action对象;

2)JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发人员创建交互式表单应用;

3).提供了一系列实用对象,如XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息等。

开源软件存在的主要问题有:(1)技术服务支持较少;(2)版本控制困难;(3)性能不够稳定;(4)文档不全,等等。

11.IDEF0方法的特点是:

(1)采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活动所受到的约束条件及实现机制,清楚地反映了系统的功能。

(2)采用严格的自顶向下、逐层分解的方式建立系统功能模型。顶层确定系统范围,采用抽象原则,然后有控制的逐步展开有关活动的细节,符合SA方法的分析策略。同时,IDEF0规定每张图至少有3个、最多有6个方框,上界6保证采用层次性描述复杂问题的可理解性,下界3保证分解有意义。12.根据原型的不同作用,有三类原型模型:

⑴探索型原型。这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,

确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发着对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求。

⑵实验型原型。这种原型主要用于设计阶段,考核实现方案是否合适,能否实现,对于一个大型系统,

若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。

⑶演化型原型。这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框或者

包含系统的主要功能。在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软件开发的全过程。

六、综合题:

1.

3.

开始

输入M 和I=1,J=0 I>H? NBED(I)

接收生理信号记录病人情况告警打印病情报告值班护士护士

病人生理信号生理信息患者日志

病情报告

告警信息打印请求

5.

+calculation()Expression

+calculation()-operand

Operand

return operand;+calculation()-operandA -operandB

-operator

ArithmeticExpression 1

*

switch (operator) {

"+": return operandA.calculation()+operandB.calculation;

"-": return operandA.calculation()-operandB.calculation;

"*": return operandA.calculation()*operandB.calculation;

"/": return operandA.calculation()/operandB.calculation;

}

6.

(1) 选择测试路径:

I :a b d (判定(A>1)∨(B=0)为假;判定(A=2)∧(X>1)为假) (3分) II :a c e (判定(A>1)∨(B=0)为真;判定(A=2)∧(X>1)为真) (3分)

(2) 选择测试用例

I :输入A=1 B=1 X=1 预期输出 X=1(3分)

II :输入A=2 B=0 X=4 预期输出 X=4(3分)

相关文档
相关文档 最新文档