软件工程试卷及答案

更新时间:2023-11-11 04:53:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2011-2012学年第2学期硕士研究生《软件工程》期末考试试卷

课程名称:软件工程 考试方式:开卷 总分 题号 得分 一、简答题 1 2 3 4 5 6 7 8 9 10 1 二、应用题 2 3 4 一. 简答题(每题5分,共50分)

1. 简述软件工程的基本原理。

答:1、用分阶段的生命周期计划严格管理;2、坚持进行阶段评审;3、实行严格的产品控制;4、采用现代程度设计技术;5、结果应能清楚地审查;6、开发小组的人员应该少而精;7、承认不断改进软件实践的必要性。 2. 软件需求分析经过哪些步骤?

答:需求分析可分为需求提出、需求描述及需求评审三个阶段。 需求提出

主要集中于描述系统目的。需求提出和分析仅仅集中在使用者对系统的观点上。开发人员和用户确定一个问题领域,并定义一个描述该问题的系统。这样的定义称作系统规格说明,并且它在用户和开发人员之间充当合同。 需求描述

在问题分析阶段分析人员的主要任务是:对用户的需求进行鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。分析人员要将对原始问题的理解与软件开发经验结合起来,以便发现哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。 需求评审

在需求评审阶段,分析人员要在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进行复核,以确保软件需求的完整、准确、清晰、具体,并使用户和软件设计人员对需求规格说明和初步的用户手册的理解达成一致。一旦发现遗漏或模糊点,必须尽快更正,再行检查。

3. 总体设计的任务和步骤是什么?

答:总体设计的任务是:1、划分出组成系统的物理元素,包括程序、文件、数据库、人工过程和文档等,并不涉及物理元素内部设计。2、设计软件结构,确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。步骤是:1、设想供选择的方案;2、选取合理方案;3、推荐最佳方案;4、功能分解;5、设计软件结构;6、设计数据库;7、制定测试计划;8、书写文档;9、复审。

1

4. 简述变换分析的基本步骤。

答:变换分析的各个步骤:步骤一、复审基本系统模型。步骤二、复审和精化软件数据流图。步骤三、确定DFD的特性,判定它为变换流还是事务流。步骤四、划定输入流和输出流的边界,孤立变换中心。步骤五、执行“一级分解”,一级分解的目标是导出具有三个层次的程序结构,顶层为主控模块;底层模块执行输入、计算和输出功能;中层模块控制、协调底层的工作。步骤六、执行“二级分解”。步骤七、采用启发式设计策略,精化所得程序结构雏形,改良软件质量 。上述七个设计步骤的目标是给出软件的一个整体描述。

5. 软件详细设计的主要任务是什么?

答:详细设计阶段的主要任务是:1.确定系统每一个模块所采用的算法,并选择合适的工具给出详细的过程性描述;2.确定系统每一个模块使用的数据结构;3.确定系统模块的接口细节,包括系统的外部接口和用户界面、与系统内部其它模块的接口以及各种数据(输入、输出和局部数据)的全部细节;4.为系统每一个模块设计测试用例。

6. 详细设计的工具有哪几类?

答:1、程序流程图(program flow chart)又称为程序框图,它具有直观、清晰,易于学习。主要缺点如下:(1)程序流程图从本质上来说不是逐步求精的好工具,它容易使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。(2)程序流程图中用箭头代表控制流,程序员可以不顾结构程序设计的精神,随意转移控制,而使程序结构过于混乱。(3)程序流程图在表示数据结构方面存在不足。2、盒图(N-S图)。特点是:(1)功能域(即,一个特定控制结构的作用域)明确,用图形表示,非常清晰。(2)必须遵守结构化程序设计的要求,不能任意转移控制。(3)很容易确定局部和全程数据的作用域。(4)很容易表现嵌套关系,也可以表示模块的层次结构。3、PAD图。主要优点如下:(1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。(2) PAD图所描绘的程序结构十分清晰。(3)用PAD图表现程序逻辑,易读、易懂、易记。(4)容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。(5)即可用于表示程序逻辑,也可用于描绘数据结构。(6) PAD图的符号支持自顶向下、逐步求精方法的使用。4、过程设计语言(PDL)。一方面具有严格的关键字外部语法,用于定义控制和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是不太严格的,以便可以灵活使用,从而适应各种项目的需要。5、判定表与判定树。判定表可以清晰地描述复杂的条件组合。其优点在于使别人很容易看清楚各种条件组合以及由此产生的各种动作,甚至简单到不需要加以任何说明。

7. 什么是面向对象的分析?对象模型的层次是什么?

答:面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。复杂问题(大型系统)的对象模型由下述五个层次组成:主题层(范畴层)、类--对象层,结构层,属性层和服务层。

8. 软件测试包括哪些步骤?说明这些步骤的测试对象是什么?

答:测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。单元测试是集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。集成测试是把已测试过的模块组装起来,主要对与设

2

计相关的软件体系结构的构造进行测试。确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。

9. 程序设计语言的选择应当考虑哪些因素?

答:项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识等

10. 简述文档在软件工程中的作用。

答:文档在软件开发人员、软件管理人员、维护人员、用户以及计算机之间的多种桥梁作用。软件开发人员在各个阶段中以文档作为前阶段工作成果的体现和后阶段工作的依据,这个作用是显而易见的。软件开发过程中软件开发人员需制定一些工作计划或工作报告,这些计划和报告都要提供给管理人员,并得到必要的支持。管理人员则可通过这些文档了解软件开发项目安排、进度、资源使用和成果等。软件开发人员需为用户了解软 件的使用、操作和维护提供详细的资料,我们称此为用户文档。以上三种文档构成了软件文档的主要部分。

二. 设计分析题 (共50分)

1. 某图书馆收费管理系统有以下功能:(15分)

(1) 借书:输入读者借书证,系统首先检查借书证是否有效,若有效,对于第一次借书的读者,在借书文件上建立档案;否则,查阅借书文件,检查读者所借图书是否超过10本,若已达到10本,拒借,未达到10本,办理借书(检查库存、修改库存目录并将读者借书情况登入借书文件)。

(2)还书:从借书文件中读出与读者有关的记录,查阅所借日期,如果超期(3个月)作罚款处理;否则,修改库存目录与借书文件。

(3)查询:可通过借书文件、库存目录文件查询读者情况、图书借阅情况及库存情况,打印各种统计表。

请就以上系统功能画出分层的DFD,并建立重要条目的数据字典。

办公室读者IPO001DS004处罚信息图书馆系统DS002库存信息答: 0层数据流程图

DS001读者信息DS003借还信息 3

读者IPO1DS002库存信息还书处理DS003借还信息IPO6DS004处罚信息处罚处理 还书流程图

DS001读者信息 IPO2读者有效性检查IPO7数量检查DS003IPO3DS002库存信息借书处理借还信息借书流程图

DS002库存信息

IPO4管理员查询IPO5打印报表DS003借还信息 查询流程图 数据字典: 元素名称 名称 类型 IPO1 还书处理 处理 IPO2 有效性检查 处理 IPO3 借书处理 处理 IPO4 查询 处理 IPO5 打印报表 处理 IPO6 处罚管理 处理 IPO7 数量检查 处理 DS001 DS002 DS003

读者信息 库存信息 错还信息

数据存储 数据存储 数据存储

说明

根据书号做还书处理,违规做处罚 检查读者号,图书号的有效性 按读者号,图书号进行借书处理 管理员对一些基本信息进行查询 打印查询到的信息

根据规则对延期给予相应的处罚 对读者借出的数量是否符合规定进行检查

读者信息录入,修改,删除,保存 图书的基本的情况以及所有图书的整体情况

存储借还书信息,系统自动处理,不

4

能人工录入

DS004 处罚信息 数据存储

存储延期的处罚信息

2. 画出下列伪代码的程序流程图和盒图。(10分)

START IF P THEN

WHILE Q DO F END DO ELSE BLOCK G N

END BLOCK END IF STOP

答:

3. 设计下列伪代码程序的语句覆盖和分支覆盖测试用例。(10分)

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

5

END IF

PRINT(X,Y,Z)

答:(1) 语句覆盖的测试用例

因为每个判定表达式为真或为假时均有赋值语句,为了使每个语句都至少执行一次, 总共需要两组测试数据,以便使得每个判定表达式取值为真或为假各一次。下面是实现 语句覆盖的典型测试用例:

① 使3 个判定表达式之值全为假 输入:A = 1 ,B = 1 ,C = 1

预期的输出:X = 1 ,Y = 2 ,Z = 3 ② 使3 个判定表达式之值全为真

输入:A = 20 ,B = 40 ,C = 60

预期的输出:X = 10 ,Y = 20 ,Z = 30 (2) 路径覆盖的测试用例

本程序共有8 条可能的执行通路,为做到路径覆盖总共需要8 组测试数据。下面是 实现路径覆盖的典型测试用例: ① 3 个判定表达式之值全为假

输入:A = 1 ,B = 1 ,C = 1

预期的输出:X = 1 ,Y = 2 ,Z = 3 ② 3 个判定表达式依次为假、假、真 输入:A = 1 ,B = 1 ,C = 60

预期的输出:X = 1 ,Y = 2 ,Z = 30 ③ 3 个判定表达式依次为假、真、假 输入:A = 1 ,B = 40 ,C = 1

预期的输出:X = 1 ,Y = 20 ,Z = 3 ④ 3 个判定表达式依次为假、真、真 输入:A = 1 ,B = 40 ,C = 60

预期的输出:X = 1 ,Y = 20 ,Z = 30 ⑤ 3 个判定表达式依次为真、假、假 输入:A = 20 ,B = 1 ,C = 1

预期的输出:X = 10 ,Y = 2 ,Z = 3 ⑥ 3 个判定表达式依次为真、假、真 输入:A = 20 ,B = 1 ,C = 60

预期的输出:X = 10 ,Y = 2 ,Z = 30 ⑦ 3 个判定表达式依次为真、真、假 输入:A = 20 ,B = 40 ,C = 1

预期的输出:X = 10 ,Y = 20 ,Z = 3 ⑧ 3 个判定表达式全为真

输入:A = 20 ,B = 40 ,C = 60

预期的输出:X = 10 ,Y = 20 ,Z = 30

4. 根据下列条件使用等价类划分法设计测试用例。(15分)

某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065.

6

解:(1)划分等价类并编号,如下表示:(4分)

(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子(2分)

(3)为不合理等价类测试用例,至少设计一个测试用例(2分)

7

本文来源:https://www.bwwdw.com/article/cnsv.html

Top