文档库 最新最全的文档下载
当前位置:文档库 › 软件工程(第五版)--习题及答案

软件工程(第五版)--习题及答案

1
《软件工程》第五版习题参考答案 第1章
一、判断题
1、×软件的维护与硬件维护本质上是相同的。
2、√软件在运行和使用中也存在退化问题。
3、×软件危机的产生主要是因为程序设计人员使用了不适当的程序设计语言。
4、√软件同其他事物一样有孕育、诞生、成长、成熟和衰亡的生存过程。
5、×文字处理软件Word属于系统软件。 应用软件 6、√原型是软件的一个早期可运行的版本它反映最终系统的部分重要特性。
7、√软件开发过程中一个错误发现得越晚为改正它所付出的代价就越大。
8、×快速原型模型对软件开发人员的水平要求不高。
9、√喷泉模型适合于面向对象的软件开发。
10、×面向对象开发方法的主要缺点是在适应需求变化方面不够灵活。
二、选择题
1、软件是一种C。
A、程序 B、数据 C、逻辑产品 D、物理产品
2、软件开发方法是A。
A、指导软件开发的一系列规则和约定 B、软件开发的步骤
C、软件开发的技术 D、软件开发的思想
3、软件生存周期中花费最多的阶段是D。
A、详细设计 B、软件编码最少
C、软件测试 D、软件维护
4、软件工程的三要素不包括D。
A、工具 B、过程 C、方法 D、环境
5、在软件生存周期中能准确地确定“软件系统必须做什么”的阶段是D。
A、总体设计 B、详细设计怎么做
C、可行性研究能不能做 D、需求分析
6、瀑布模型本质上是一种A模型。
A、线性顺序 B、顺序迭代
C、线性迭代 D、能及早见到产品的
7、瀑布模型突出的缺点是不适应D的变动。
A、算法 B、程序语言 C、平台 D、用户需求
8、在软件开发模型中提出最早、应用最广泛的模型是A。
A、瀑布模型 B、喷泉模型
C、快速原型模型 D、螺旋模型
9、瀑布模型不适合用于A的软件开发。
A、需求模糊不清 B、用户不能参与开发
C、用户对计算机不了解 D、开发人员对业务知识不熟悉
10、快速原型的主要优点不包括D。
A、能让用户参与开发、给出反馈
B、尽早把需求分析清楚以降低风险 2
C、尽早地发现问题、纠正错误
D、对软件分析设计人员的素质要求不高
11、快速原型的主要问题在于A。
A、缺乏支持原型开发的工具 B、要严格控制原型构造的迭代
C、终端用户对原型不能理解 D、软件的测试和文档更新困难
12、螺旋

模型是一种将瀑布模型和A结合起
来的软件开发模型。
A、增量模型 B、专家系统
C、喷泉模型 D、变换模型
13、在软件生产的程序系统时代由于软件规模扩大和和软件复杂性提高等原因导
致了A。
A、软件危机 B、软件工程
C、程序设计革命 D、结构化程序设计
14、集成化开发环境中的环境集成机制不包括D。
A、数据集成 B、控制集成
C、界面集成 D、服务集成
15、软件工程的出现是由于A。
A、软件危机的出现 B、计算机硬件技术的发展
C、软件社会化的需要 D、计算机软件技术的发展
三、简答题
1、软件通过你自己使用计算机的经历和对计算机的认识分辨软件和程序的差别指出区别
的关键点。 答软件包括程序、数据及其相关文档的完整集合。其中程序是按事先设计的功能和性
能要求执行的指令序列数据是使程序能够正确地处理信息的数据结构文档是与程序开发、
维护和使用有关的图文资料。软件包括程序,程序只是软件的一部分。
2、简述软件危机产生的原因以及避免的方法。
答软件危机的产生有两方面因素一方面与软件本身的抽象性和复杂性有关另一方面
则与软件开发和维护过程中使用的技术和方法有关这是主观原因。
为了解决软件危机既要有技术措施好的方法和工具也要有组织管理措施。1
使用好的软件开发技术和方法。2使用好的软件开发工具提高软件生产率。3有良好
的组织、严密的管理各方面人员相互配合共同完成任务。 3、简述软件工程在软件开发中的作用和意义。
答软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性。软件工程的目
标是实现软件的优质高产。软件工程的目的是在经费的预算范围内按期交付出用户满意的、
质量合格的软件产品。 4、软件生命周期概念对软件的开发有哪些指导作用。 3
答软件生命周期是软件工程的一个重要的概念。把整个软件生命周期划分为若干个较小
的阶段每个阶段都有相对独立的任务和完成任务的步骤和方法然后逐步完成各个阶段的
任务这有利于软件开发过程的组织和管理从而降低了整个软件开发过程的困难程度从
而使规模庞大、结构复杂和管理复杂的软件开发变得容易控制和管理。
5、分析瀑布模型和螺旋模型的异同比较它们的适用场合。
答瀑布模型是线性模型是整体开发模型文档驱动的模型每一阶段必须完成指定的
文档

需求明确的中、小型软件开发 不适宜需求模糊或多变的应用软件开发螺旋
模型
是典型迭代模型是风险驱动模型可用于面向对象开发适宜风险较大的大型软件开发。 第2章
一、选择题
1、系统流程图是一种传统工具用于描绘D。
A、逻辑模型 B、程序结构
C、体系结构 D、物理系统
2、软件可行性研究的目的是C。
A、证明软件开发项目可行
B、证明软件开发项目不可行
C、阐述软件开发项目值得或不值得做
D、为了确定软件开发项目要不要做
3、技术可行性研究要解决的问题是A。
A、从技术方面说明项目是否可行
B、从技术上定义项目要解决的问题
C、给出项目开发可行的技术路线
D、给出精简的项目需求设计报告
4、可行性研究的步骤首先是A。
A、确定项目目标即对要解决的问题进行定义
B、研究项目要求
C、对项目目标进行可行性分析
D、给出可行的解决方案
5、可行性研究的任务不包括D。
A、技术可行性 B、经济可行性
C、法律可行性 D、政治可行性
6、系统流程图是描述A的工具。
A、物理系统 B、逻辑系统
C、体系系统 D、程序系统
7、可行性研究实质上是要进行一次A需求分析设计过程。
A、简化、压缩的 B、详细的
C、彻底的 D、深入的
8、系统流程图的符号不包括D。
A、 B、 C、 D、 4

二、简答题
1、软件开发的早期为什么要进行可行性研究目标的可行性研究有几个方面
答许多软件开发问题都不能在预期的时间范围内或资源限制下得到解决。如果开发人员
没有尽早停止没有可行解决方案的开发项目就会造成时间、资金、人力、物力的浪费。为
了降低软件开发失败的可能性需要进行软件可行性研究。可行性研究要从经济可行性、技
术可行性、运行可行性和法律可行性四方面进行。 2、简述可行性研究的步骤。
答1审核系统的规模和目标2分析研究现行系统3设计新系统的高层逻辑模
型4获得并比较可行的方案5撰写可行性研究报告。 3、某航空公司为了方便旅客拟开发一个机票预订系统。将旅客的信息姓名、性别、工作单位、身份证号、旅行时间、旅行目的地等输入该系统后系统自动为旅客安排航班。
打印出取票通知和票务账单。旅客可在航班的前一天凭取票通知和票务账单交款取票。系统
校对无误后即打印出机票给旅客。要求
1提出问题定义
2

分析此系统的可行性
3画出系统流程图。
答1问题定义航运公司机票预订系统问题定义
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - 系统目标和范围说明书 1项目名称X航运公司机票预订系统。
2背景目前由旅客人工到航运公司排队购票费时、费力、管理工作量大、手续
繁琐效率低制约了公司业务的发展。
3项目目标建立一个网络化的机票预订系统。
4项目范围软件开发费用不超过X万元。
5初步设想建议在系统中完成安排航班、打印取票通知、打印票务账单、打印机票
等主要功能。
6可行性研究建议进行大约X周的可行性研究研究费用不超过X元。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -
2可行性分析
技术可行性使用现有的技术能够实现此系统在现有资源包括硬件资源、软件资源、
技术人员的技术水平和已有的工作基础条件下技术风险不大项目可以实现。
经济可行性此系统能够方便旅客订票具有一定的经济效益和社会效益。
法律可行性此项目开发要符合航运系统相关要求。
操作可行性现有制度、人员素质、操作方式可行。
3系统流程图 5
旅客
寄发、交付取
票通知
打印取票通
知、票务账单
安排航班
查看航班舱位
旅客交款取票
航班要求
客机舱位表
通知单
账单
取票通知
旅客
取票通知
机票
航空公司登记
旅客信息
客机舱位表
旅客信息表A
A票务账
第3章
一、判断题
1、√软件需求分析阶段要确定软件系统要“做什么”。
2、×软件需求规格说明书可作为可行性研究的依据。
3、√需求分析员可以参加最后的需求评审工作。
4、×画数据流图时可以加少量的控制流使加工之间有时序的关系。 5、√结构化分析模型的核心是数据词典。
6、×在数据流图中带有箭头的线段表示的是控制流。 数据流
7、×在软件生产过程中需求信息的来源是项目经理。 用户
8、√需求分析阶段的任务是确定软件的功能。做什么
二、选择题
1、需求分析最终结果是产生B。 6
A、项目开发计划 B、需求规格说明书
C、设计说明书 D、可行性分析报告
2、数据流图DFD是A方法中用于表示系统的逻辑模型的一种图形工具。 A、SA B、SD C、SP D、SC
3、需求规格说明书的

作用不包括C。 A、软件验收的依据 B、用户与开发人员对软件要做什么的共同理解
C、软件可行性研究的依据
D、软件设计的依据
4、数据词
典是用来定义D中的各个成分的具体含义。 A、流程图 B、功能结构图
C、结构图 D、数据流图
5、结构化分析方法SA是一种面向B的分析方法。
A、数据结构 B、数据流
C、结构化数据系统 D、对象
6、在数据词典中以下哪一项表示允许重复0至任意次A。 A、{ } B、0{ } C、0{ }n D、{ }n
7、以下数据流图符号中哪一个表示加工B。 A、 B、 C、 D、
8、软件开发的需求活动其主要任务是D。 A、给出软件解决方案 B、给出系统模块结构 7
C、定义模块算法 D、定义需求并建立系统模型
9、结构化分析的核心是A。 A、自顶向下的分解 B、用DFD建模
C、用DD描述数据需求 D、自底向上的抽象
10、需求分析的任务是A。
A、正确说明让软件“做什么” B、用DFD建模
C、用DD建立数学模型 D、给出需求规格说明书
11、对于分层的DFD父图与子图的平衡是指B。 A、父图与子图的输入输出数据流必须相同
B、子图必须继承父图的输入与输出流
C、父图与子图相应的输入输出数据流名字保持一致
D、子图可以自己的输入输出数据流
12、DFD的每个加工都必须有A。 A、一个输入和输出数据流 B、一个输入数据流
C、一个输出数据流 D、一个输入或输出数据流
13、需求分析是分析员经了解用户的要求认真细致地调研、分析最终建立目
标系统的逻辑模型并写出B的过程。 A、模块说明书 B、软件规格说明书
C、项目开发计划 D、合同文档
14、结构化分析方法是以数据流图、D和加工说明等描述工具即用直观的图和简
洁的语言来描述软件系统模型。 A、DFD图 B、PAD图 C、IPO图 D、DD 8
15、软件需求分析阶段的工作可以分为四个方面需求获取、需求分析、编写需
求规格说明书以及B。
A、阶段性报告 B、需求评估
C、总结 D、都不正确
16、数据流图用于抽象描述一个软件的逻辑模型数据流图由一些特定的图符构
成。下面图符名称标识的图符不属于数据流图合法图符的是A。 A、控制流 B、加工
C、数据存储 D、源点和终点
17、DFD用于描述系统的D。 A、数据结构 B、控制流程
C、基本加工 D、软件功能
18、数据词典不包括的条目是C。 A、数据项 B、数据流
C、数据类型

D、数据加工
19、软件需求分析一般应确定的是用户对软件的D。 A、功能需求 B、非功能需求
C、性能需求 D、功能需求和非功能需求
20、在数据流图中有名字和方向的成分
是B。 A、信息流 B、数据流
C、控制流 D、信号流
三、简答题
1、需求分析的任务是什么怎样理解“做什么”和“怎么做”
答需求分析的基本任务是要准确地理解旧系统、定义新系统的目标为了满足用户需要
回答“系统必须做什么”的问题即确定系统必须完成哪些工作对新系统提出完整、准确、
清晰、具体的要求。 9
具体任务是:明确问题定义、导出软件的逻辑模型、编写软件需求规格说明书。
“做什么”即深入描述软件的功能和性能确定软件设计的限制和软件与其他系统元
素的接口细节定义软件的其他有效性需求。
“怎么做”即着手软件需求的实现用比较抽象概括的方式确定目标系统如何完成预定的
任务确定系统的物理模型。
2、怎样建立目标系统的逻辑模型
答建立目标系统逻辑模型的一般过程
1由当前物理系统导出当前系统物理模型;
2由当前系统物理模型导出当前系统逻辑模型;
3参考当前系统逻辑模型设想出新系统逻辑模型。
3、数据流图的作用是什么它有哪些基本成分
答数据流图是用于表示系统逻辑模型的一种工具。它从数据传递和加工的角度以图形
的方式描述数据在系统中流动和处理过程。它表示了系统内部信息的流向以及系统的逻辑处
理功能。
数据流图的主要成分有四种数据流、数据存储、加工、数据流的源点和终点。 4、数据词典的作用是什么它包括哪些内容
答数据词典是数据的集合它对数据流图中的各个元素作完整的定义和说明是数据流
图的补充工具。数据流图和数据词典共同构成系统的逻辑模型两者缺一不可。 其内容包括数据流、数据项、数据结构、数据存储、加工逻辑、外部实体6类元素。
四、应用题 1、用SA方法对“学生档案管理系统”进行分析画出DFD图并建立相应的数据
词典。
解“学生管理系统”的顶层图和0层图。
顶层图








0层图









学生管理系统

生 老师 学生信息

成绩表
课程表
考试成绩
课程表 1
学籍管理
学生信息
成绩表
课程表
考试成绩 3
成绩登统
成绩库
学生档案
成绩库
课程库 2
排课管理 10



部分数据词典
学生档案={学号+姓名+

性别+年龄+专业+班级}
成绩库=学号+课程号+分数
课程库=课程号+课程名+学分
学生信息=学号+姓名+性别+年龄+专业+班级
考试成绩=学号+课程号+分数
学号=”00001”...”99999”
姓名=2{汉字}4

专业=”01”...”99” 注:专业代号2位数字
班级=”01”...”99” 注:班级代号2位数字
学分=0..99

2、某录取统分子系统有如下功能
1计算标准分根据考生原始分计算出标准分并将其存入考生分数文件。
2计算录取线分根据标准分、招生计划文件中的招生人数计算录取线分数并
存入录取线文件。试根据要求画出该子系统的数据流程图。 解数据流图如下
3、某考务中心准备开发一个考务管理系统其需求如下
1考生填写考试报名表经检查合格后在系统中登记注册并发给学生准考证。
2学生按照准考证要求进入考场考试。考试完后将试卷交给阅卷站。
3阅卷站阅卷后把成绩表包括每个考试科目、每个考生的分项分数交给本系统
并输入计算机。
4考试中心负责管理成绩评定标准并将其交给阅卷站。
5系统把考试成绩通知考生把考试成绩的统计结果交给考试中心。
6系统向考生提供按准考证号、考生姓名的考生成绩查询将按科目的历年考试成
绩统计分析和评分标准提供给考试中心。
7考生对考试成绩质疑时系统根据准考证号、姓名可以查询考生某科目的各分项
成绩必要时可查阅阅卷站的试卷。 计算

标准分
计算录
取线分 考

生 原始分

标准分
标准分
考生分数 招生计划文件
录取线文件
招生人数 11
8系统保存并可查询历年每门科目的评分标准。
9根据考试成绩统计系统可以向考试中心提供试题难度分析。
请画出系统的数据流程图顶层图和0层图。
解顶层图


















顶层图


0层图

0层图 单 错

误 成






统计分析表

考生通知单 2
统计
成绩



准 考生名册

报名表
1
登记
报名单

不合格报名表

准考证



单 成


单 统计分析表

不合格报名表



单 报名表

准考证
考务管理系统

生 考





合格标准

阅卷站

考试通知单




单 12
4、某单位人事部门拟对职工工作进行调整细则如下
年龄满40岁以上人员初中或高中文化若是男性当修理工若是女性当清洁工大
专文化

当技术员。
年龄25岁至40岁初中或高中文化若是男性钳工若是女性当车工大专文化当技
术员。
年龄不满25岁初中文化脱产学习高中文化当电工大专文化
当技术员。
请根据以上叙述运用三种加工逻辑说明写出它们的逻辑组合的关系。
解判定表如下
设性别: 男:M 女:F
学历: 初中:A 高中B 大专:C
年龄:小于25: C 25至40:Y 40以上:L
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
性别 M M M M M M M M M F F F F F F F F F
学历 A A A B B B C C C A A A B B B C C C
年龄 C Y L C Y L C Y L C Y L C Y L C Y L
脱产学习 X X
电工 X X
技术员 X X X X X X
修理工 X X
钳工 X X
车工 X X
清洁工 X X 化简后的判定表:
1 2 3 4 5 6 7-9 10 11 12 13 14 15 16-18
性别 M M M M M M M F F F F F F F
学历 A A A B B B C A A A B B B C
年龄 C Y L C Y L -- C Y L C Y L --
脱产学习 X X
电工 X X
技术员 X X
修理工 X X
钳工 X X
车工 X X
清洁工 X X
最简化:
110 2 3 413 5 6 7-916-18 11 12 14 15
性别 -- M M -- M M
--
F F F F
学历 A A A B B B
C
A A B B
年龄 C Y L C Y L
--
Y L Y L
脱产学习 X


电工 X

13

技术员
X

修理工 X X
钳工 X X
车工 X X
清洁工 X X
判定树:



















结构化语言
IF 年龄>40 THEN
SWITCH学历
{CASE “初中”
IF 性别为“男” THEN
做修理工
ELSE 做清洁工
CASE“高中”
IF 性别为“男” THEN
做修理工
ELSE 做清洁工
CASE“大专” 做技术员
ELSE IF年龄>=25 且 年龄<40 THEN
SWITCH学历
>40
25-40
年龄 学历 性别
男------修理工
女-----清洁工 初中
高中
大专------------------------技术员
男 ---修理工
女 –--清洁工
25-40
男------钳工
女-----车工 初中
高中
大专------------------------技术员
男 ---钳工
女 –--车工
大专------------------------技术员
初中-----------------脱产学习
高中-------------------电工
大专------------------技术员 14
{ CASE“初中”
IF 性别为“男” THEN
做钳工
ELSE 做车工
CASE “高中”
IF 性别为“男” THEN
做钳工
ELSE 做车工
CASE “大专”
做技术员
}
ELSE
SWITCH学历
{ CASE “初中” 脱产学习
CASE “高中” 做电工
CASE “大专” 做技术员
} 5、下面是一项货

运收费政策
“航空运费”重量小于或
等于20kg的货物每千克6元若重量大于20kg超重部
分每千克6.5元航空运费的最低起价是12元。这项标准适用于国内航线如果是国际航
线运费加倍。请用判定树、判定表表达。
解判定表
国内
Y Y Y N N N
重量
L M H L M H
运费元
12 6W 6.5(W-20)+120 24 12W 13(W-20)+240
注设重量为W(单位为Kg)
重量<=2Kg重量>2Kg且重量<=20Kg重量>20Kg分别用L、M、H表示

判定树: 重量<=2Kg —— 12元
重量>2Kg且<=20Kg —— 6W元
重量>20Kg —— 6.5(W-20)+120
重量<=2Kg —— 24元
重量>2Kg且<=20Kg —— 12W元
重量>20Kg —— 13(W-20)+240

6、下面是中国邮政电子汇兑系统中汇兑资费计算加工中资费计算的方法
无论是本埠县还是外埠资费计算方法相同。每汇款1元以元为单位计算收费0.01
元每笔汇款最低汇费为2元最高汇费为50元。请用判定树、判定表表达。
解设汇款金额为W元。判定树如下
汇额 本埠/外埠 汇费
国内
国际 15
<=200 ----------------------- 2元
>200且<=5000元 ----------- W*0.01元
>5000 --------------------- 50元

判定表如下三种汇额分别用符号L、M、H表示汇款额用W表示。
汇额元
L L M M H H
本埠
Y N Y N Y N
汇费元
2 2 W*0.01 W*0.01 50 50
可简化为
汇额元
L M H
本埠
-- -- --
汇费元
2 W*0.01 50

第4章
一、判断题
1、√如果在需求分析阶段采用了结构化分析方法则软件设计阶段就应采用
结构化设计方法。
2、√概要设计与详细设计之间的关系是全局和局部的关系。
3、×一个模块的作用范围应该大于该模块的控制范围。
4、√模块间的耦合性越强则模块的独立性越弱。
5、×在设计模块时应使一个模块尽量包括多个功能。
6、√软件结构图可以利用数据流图映射出来。
7、×结构化设计是一种面向数据结构的设计方法。
8、√在结构化设计过程中首先要确认DFD。
二、选择题
1、软件结构图的形态特征能反映程序重用率的是C。
A、深度 B、宽度 C、扇入 D、扇出
2、概要设计的目的是确定整个系统的B。
A、规模 B、功能及模块结构
C、费用 D、测试方案
3、耦合是对软件不同模块之间互连程度的度量。各种耦合从强到弱的排列为C。
A、内容耦合控制耦合数据耦合

公共环境耦合 16
B、内容耦合控制耦合公共环境耦合数据耦合
C、内容耦合
公共环境耦合控制耦合数据耦合
D、控制耦合内容耦合数据耦合公共环境耦合
4、当一个模块直接使用另一个模块的内部数据时,这种模块之间的耦合为D。
A、数据耦合 B、公共耦合
C、标记耦合 D、内容耦合
5、数据耦合和控制耦合相比,则B成立。
A、数据耦合的耦合性强
B、控制耦合的耦合性强
C、两者的耦合性相当
D、两者的耦合性需要根据具体情况分析
6、衡量模块独立性的标准是D。
A、耦合的类型 B、内聚的类型
C、模块信息的隐藏性 D、耦合性和内聚性
7、如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内
聚为A。
A、时间内聚 B、逻辑内聚
C、通信内聚 D、信息内聚
8、为了提高模块的独立性,模块内部最好是C。
A、逻辑内聚 B、时间内聚
C、功能内聚 D、通信内聚
9、在结构化设计方法中,下面哪种内聚的内聚性最弱C。 17
A、逻辑内聚 B、时间内聚
C、偶然内聚 D、过程内聚
10、软件设计是把A转换为软件表示的过程。
A、软件需要 B、系统分析
C、数据库 D、软件代码
11、概要设计的主要成果是C。
A、用户的界面需求 B、用户的分析方案
C、概要设计说明书 D、系统总体方案
12、数据结构设计也是概要设计的重要内容,主要是进行数据的A设计。
A、逻辑 B、存取 C、用户视图 D、索引
13、概要设计与详细设计衔接的图形工具是B。
A、DFD图 B、SC图
C、程序流程图PFD D、PAD图
14、在软件开发中,下面任务不属于设计阶段的是D。
A、数据结构设计 B、给出系统模块结构
C、定义模块算法 D、定义需求并建立系统模型
15、下面不属于软件设计原则的是C。
A、抽象 B、模块化
C、自底向下 D、信息隐藏
三、简答题
1、软件设计应遵循的原则是什么?
答:软件设计中一般应遵循以下原则模块化、抽象、信息隐蔽与局部化、一致
性、完整性和可验证性。 2、什么是软件的概要设计?概要设计阶段完成的主要任务是什么? 18
答:总体设计又称概要设计是将软件需求转化为软件体系结构、确定系统级接
口、全局数据结构和数据库模式。 3、启发设计规则有哪些? 答:1模块功能的完善化2消除重复功能改善软件结构3模块规模应该适中4模块

的深度、宽度、扇出和扇入都应适当5模块的作用范围
应该在控制范围之内6力争降低模块接口的复杂程度
7设计单入口、单
出口的模块8模块功能应该可以预测。
四、应用题
根据以下的C语言程序段判断模块A和B之间属于哪一种耦合模块B是哪一种
内聚。 1、 模块A“开发票”
??
water_fee= calc_waterfee12.53.0
模块B“计算水费”
float calc_waterfeefloat mountfloat price

float fee
??
feturn fee

答模块A和B是数据耦合模块B是功能内聚。 2、 模块A
??
flag=1
max=max_avgflag
??
模块B
int max_avgint flag

??
ifflag= =1
??
else ifflag= =0
??

答模块A和B是控制耦合模块B是逻辑内聚。 第5章
一、判断题 19
1、√详细设计也称模块设计。
2、×在数据代码设计时应尽量让一条代码代表多个信息。
3、×在数据代码设计时应可能设计字母和数字混合代码。
4、×在输出界面设计时要尽可能使用代码或缩写以求简洁。
5、×详细设计评审应尽可能和概要设计评审一同进行。
二、选择题
1、软件详细设计的主要任务是确定每个模块的A。
A、算法和使用的数据结构 B、外部接口
C、功能 D、程序
2、借助于软件工具可将C容易地转换为高级语言源程序。
A、程序流程图 B、N-S图
C、PAD图 D、判定表
3、不属于详细设计工具的是A。
A、DFD图 B、PAD图
C、PDl D、N-S图
4、程序的三种基本结构是C。
A、过程、子过程和子程序 B、递归、堆栈和队列
C、顺序、选择和重复 D、调用、返回和转移
5、下面描述中符合结构化程序设计风格的是A。
A、使用顺序、选择和重复循环三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口可以有多个出口
C、注重提高程序的执行效率
D、不使用goto语句
三、简答题
1、软件的详细设计阶段完成的主要任务是什么
答1算法设计2数据结构设计3模块接口细节设计4测试用例设计5
数据库物理设计6数据代码设计7其他设计8编写详细设计说明书并进行评审。 2、数据输入界面设计的主要原则有哪些
答在设计数据输入界面时应做到尽量简化用户的工作、减少输入的出错率减轻用户
的记忆负担、尽可能减少输入量并实现自动输入 对共同的输入设置默认值

使用代码或
缩写 自动填入已输入过的内容列表式输入; 数据分组输入。 3、代码设计的原则有哪些
答代码设计的原则是标准化、唯一性、可扩充性、
简单性、规范性和适应性。 四、应用题 1、请分别使用程序流程图、PAD图和N-S图描述下列程序的算法。 答1求整数1-n的累加和SUM其中n的值由键盘输入。
程序流程图如下 20


PAD图如下













N-S图如下 n>=i

Y
N
Sum=Sum+ i
输出数Sum
输入数n
i=i+1 Sum=0,i=1
当I<=N
Sum=Sum+I
I=I+1
I=1
打印Sum
Sum=0
输入N 21



2求整型数组K[50]中的最大值和次大值。 答N-S图如下

定义数组
k[50]
fst = k[0] , sed =k[1]
I=3
当i<=50时


scd = fst
fst=k[i] Scd=k[i]

I=i+1 Sum=0
i=1 DO─WHILE n>=i 输入数n
Sum=Sum+ i
i++
输出数Sum F
T
k[i]>fst
k[i]>scd
T
F 22
输出
fst,scd 3求s=1- 1/2!+1/3!-1/4! + …. +1/n!其中n的值由键盘输入。 答PAD图如下






2根据以下伪码画出PAD图
if x<y goto 30
if y<z goto 50
s=z
goto 70
30 if x<z goto 60
s=z
goto 70
50 s=y
goto 70
60 s=x
70 ??
答 当
I<=N
S=s
-jc(i)
打印S
I%2=0
T
F
I=1
S=0
输入N
S=s+jc(i)
I=I+1 当
K<=I
P=P*K
JC(i)
DEF
P=1
K=1
K=k+1
返回P 23

3将程序流程图转化为PAD图
1 AP
B
结束OF
F
T
T 答

2 当
P
A
直到O
B
结束
S=x
S=y
……
X<y
T
X<z
T
y<z
F
F
T
F
S=Z
S=Z 24
A
PB结束F
T 答

3
PA
B结束 TF 答
直到
P为假 A
B 结束
P
F
T
当P
A
B
结束 25
4 AC
BE
D
GT
FF
TF 答

5只使用顺序结构和循环结构构造分支结构。请画出PAD图。
答对于分支结构 if(f) a;
else
b; 只使用顺序和循环结构的PAD图如下 当
F
A
break
当!F
B
break
当A为假
D
break 直到
E为假
B
G
C为假
T
A为真
T
F
F 26
第6章 一、选择题
1、UML的主要特点不正确的是C。 A、面对对象表达能力强 B、可视化建模
C、面对过程表达能力强 D、统一标准
2、静态建模图不包括B。 A、用例图 B、协作图 C、类图 D、对象图 3、用例图的模型元素不包括D。 A、用例 B、系统 C、行为者 D、软件开发者 4、类图的要素不包括D。 A、类名称 B、操作 C、属性 D、对象
5、时序图中的要素不包括A。 A、执行者 B、对象 C、对象生命线 D、消息 6、

对象模型的描述工具是C。 A、状态图 B、数据流图 C、对象图 D、结构图
7、协作图的要素不包括A。 A、用例 B、对象 C、链 D、消息 8、类
图反映了系统中对象之间的抽象关系不包括D。 A、关联 B、聚合 C、泛化 D、内聚
9、下面D不是状态图的图符。 A、圆角的矩形 B、实心圆点
C、实心圆环 D、椭圆
10、描述类中某个对象的行为反映了状态与事件关系的是A。 A、状态图 B、数据流图 C、对象图 D、结构图 11、动态模型的描述工具C。 A、对象图 B、设计图 C、状态图 D、结构图 12、表示对象的相互行为的模型是A模型。 A、对象 B、动态 C、结构 D、静态 13、有关类和对象的描述中错误的是A。 A、一个类只能有一个对象
B、对象是类的具体实例
C、类是某一类对象的抽象
D、类和对象的关系是一种数据类型和变量的关系
14、用例图中用例之间的关系通常有关联关系、依赖关系和C关系。 A、协作 B、聚合 C、泛化 D、内聚 15、动态模型图包括时序图、协作图、状态图和C图。 A、对象图 B、设计图 C、活动图 D、结构图
二、简答题
1. 简要介绍用例图的三个要素。
答用例图主要包括以下三个元素
①用例Use Case用例是系统的使用过程或要执行的动作序列用来描述某个参与
者使用系统所完成的功能。在图中用椭圆来表示用例名称可写在椭圆中或椭圆下面。 27
②参与者Actor。或称角色或执行者它是系统外部的一个实体可以是任何的事物
或人所扮演的角色等。在图中用一个小人图形表示。
③关联。表示角色与用例之间的驱动和反馈关系也可以表示用例间的包含与扩展关系。
在图中用线段或带箭头的线段表示。

2. 分别写出UML对象图中对象的三种表示方式。
答在UML中对象图和类图一样采用矩形图示不过对象名称下方有下划线类名称下
方没有下划线通常对象名采用对象名类名、 类名 或 对象名三种格式表示中间
形式是尚未给对象命名最后一种形式是省略了类名。

3. 举例说明类图和对象图之间的关系。
答对象图展示了一组对象和它们之间的关系。对象图是类图的实例对象之间的连
接是类之间关联的实例。类图和对象图的不同点在于对象图显示类的多个对象实例
而不是实际的类。

4. 活动图的主要作用是什么状态图的主要作用是什么
答状态图和活动图都属于行为图主要用于分析、设计阶段描述

对象的行为。状态图适于
描述单个对象状态的变化情况活动图适于描述一个工作过程、多个对象之间的合作。
状态图描述一个特定对象的所有可能状态以及由于各种事件的发生而引起
的状态间的
转移。

活动图(Activity Diagram)是状态图的变种。状态图适于描述单个对象状态的变化情况
而活动图的目的是描述动作执行的工作和活动以及对象状态改变的结果适于描述一
个工作过程、多个对象之间的合作。与状态图不同的是活动图中动作状态的迁移不是靠事
件触发当动作状态中的活动完成时就触发迁移活动图中的一个活动结束后将立即进行下
一个活动。 三、应用题
1、某教务管理系统主要完成以下功能教师使用该系统完成某班级学生某门课
程成绩的录入、修改、计算和打印学生使用该系统查询所学课程的成绩系统
管理员使用该系统进行学生信息、教师信息、课程信息和班级信息的管理。
请对该系统分析找出系统中的参与者、用例确定它们之间的关系并对
每个用例进行详细描述。
略。
2、某教务管理系统中教师的主要信息包括工号、姓名、性别、职称、系部
学生的主要信息包括学号、姓名、性别、班级课程的主要信息包括课程编
号、课程名称、任课教师。请列出本系统中所涉及的主要的类给出类的主要属
性及类间关系画出该系统的类图。
略。 28
3、请画出某教务管理系统中某一学期中课程对象的状态图。
略。
4、请画出某教务管理系统中学生选课的活动图。
略。
第7章
一、选择题 1、汽车有一个发动机汽车和发动机之间的关系是B关系。
A、一般具体 B、整体部分 C、分类关系 D、is a
2、火车是一种陆上交通工具火车和陆上交通工具之间的关系是D关系。
A、组装 B、整体部分 C、has a D、一般具体
3、面向对象程序设计语言不同于其他语言的最主要特点是C。
A、模块 B、抽象性 C、继承性 D、共享性
4、软件部件的内部实现与外部可访问性分离这是指软件的A。
A、封装性 B、抽象性 C、继承性 D、共享性
5、面向对象分析阶段建立的三个模型中核心模型是C模型。
A、功能 B、动态 C、对象 D、分析
6、对象模型的描述工具是C。
A、状态图 B、数据流图 C、对象图 D、结构图
7、动态模型的描述工具是A。
A、状态图 B、结构图 C、对象图 D、流程图
8、在只有单重继承的类层次结构中类层次结构是A层次结构。
A、树

型 B、网状型 C、星型 D、环型 29
9、C模型表示了对象的互相行为。
A、功能 B、动态 C、对象 D、分析
10、在确定类时所有A是候选的类。
A、名词 B、形容词 C、动词 D、代词
11、面向对象分析的原
则不包括C。
A、抽象 B、封装 C、依赖 D、继承
12、常用动词和动词词组来表示C。
A、对象 B、类 C、关联 D、属性
13、在确定属性时所有B是候选的属性。
A、名词 B、修饰性名词词组 C、动词 D、词组
14、在面向对象方法中信息隐藏是通过对象的A来实现的。
A、封装性 B、分类性 C、继承性 D、共享性
15、面向对象设计的准则不包括D。
A、模块化 B、抽象 C、信息隐藏 D、强耦合 二、 简答题
1、面向对象分析通常要建立哪三种模型它们分别描述系统的哪些方面
答面向对象分析通常要建立三种模型分别是对象模型、动态模型和功能模型。其中
对象模型描述系统的数据结构它是用来描述系统包含的对象及对象之间关系的模型
动态模型描述系统的控制结构它是用来确定各个对象之间交互及整体的控制结构的模
型
功能模型描述系统的功能它是用来描述系统要实现的功能的模型。

2、对象模型有哪五种层次
答复杂问题(大型系统)的对象模型由5个层次组成即主题层、类--对象层、结构层、
属性层和服务层。 30
1类-&-对象层定义类和属性。在这个层次将分析与待开发软件对应的各个现实世
界的实体并从中抽象出类和对象。
2结构层定义对象和类之间的层次结构关系如一般-特殊结构即继承结构、
整体-部分结构即组合结构。
3属性层定义属性。为类和对象层中抽取出来的各个类和对象设计静态属性和它
们之间的关系。
4服务层定义对象和类的动态属性以及对象之间的消息通信。
5主题层主题是指导读者理解大型、复杂模型的一种机制。定义若干个主题把
有关的对象分别划归不同的主题每个主题构成一个子系统。

3、建立对象模型的基本过程是什么
答建立对象模型的基本过程如下
确定对象和类  确定结构  确定主题  确定服务和消息 三、应用题 1、写出图书管理系统中“办理还书”用例的用例描述。
略。
2、分析图书管理系统中“查询个人借阅”用例相关的实体类、控制类和边界类绘制出该
用例的相关类图并设计该模块的用户界面。
略。
第8章
一、判断题
1、√

使用括号改善表达式的清晰性。
2、×对递归定义的数据结构不要使用递归定义的过程。
3、×尽可能对程序代码进行优化。 可读性第一清晰性第二
4、√不要修改不好的程序要重新编写。
5、√不要进行浮点数的相等比较。
6、×
应尽可能多地使用临时变量。
7、√利用数据类型对数据值进行防范。
8、×用计数方法少量而不是用文件结束符大量判别批量数据输入
的结束。
9、×程序中的注释是可有可无的。 40%~60%
10、√使用有意义的标识符。
11、×应尽量把程序编写的短一些。
12、×应尽量使用goto语句。
二、选择题 31
1、在编码中首先要考虑的是B。
A、程序的执行效率 B、程序的可读性
C、程序的一致性 D、程序的安全性
2、D。不属于序言性注释内容的是
A、模块设计者 B、修改日期
C、程序的整体说明 D、语句功能
3、序言性注释应置于文件或模块的A位置。
A、起始 B、结束
C、中间 D、起始和中间
4、如果编写系统软件可选用的语言是C。
A、FoxPro B、COBOL
C、C D、FORTRAN
5、选择程序设计语言不应该考虑的是B。
A、应用领域 B、语言的功能
C、用户的要求 D、用户的使用水平
6、与编程风格有关的因素不包括D。
A、源程序文档化 B、语句构造
C、输入输出 D、程序的编译效率
7、最早用于科学计算的程序设计语言是C。
A、PROLOG B、Smalltalk
C、FORTRAN D、COBOL
8、功能性注释的主要内容不包括B。
A、程序段的功能 B、模块的功能
C、数据的状态 D、语句的功能
9、对建立良好的编程风格下面描述正确的是A。
A、程序应简单、清晰、可读性好
B、符号名的命名只要符合语法即可
C、充分考虑程序的执行效率
D、程序的注释可有可无
10、源程序中应包含一些内部文档以帮助阅读和理解程序源程序的内部文
档通常包括合适的标识符、注释和A。
A、程序的布局组织
B、尽量不使用或少用goto语句
C、检查输入数据的有效性
D、设计良好的输出报表
11、编制一个好的程序应强调良好的编程风格例如选择标识符的名字时应
考虑C。
A、名字长度越短越好以减少源程序的输入量
B、多个变量共用一个名字以减少变量名的数目
C、选择含义明确的名字以正确提示所代表的实体
D、尽量用关键字作名字以使

名字标准化
12、以下关于编程风格的叙述中不应提倡的是B。
A、使用括号以改善表达式的清晰性
B、用计数方法而不是用文件结束符判断输入的结束 32
C、一般情况下不要直接进行浮点数的相等比较
D、使用有清晰含义的标识符
13、在结构化程序设计思想提出之前在程序设计中曾强
调程序的效率现在
人们更重视程序的D性。
A、技巧性 B、保密性 C、一致性 D、可理解性
14、为了提高易读性源程序内部应加功能性注释用于说明B。
A、模块总的功能 B、程序段或语句的功能
C、模块参数的用途 D、数据的用途
15、适合在互联网上编写程序可供不同平台上运行的面向对象的程序设计语言
是B。
A、ALGOL B、Java C、Smalltalk D、Lisp
16、使用C语言开发的软件具有较好的可移植性。
A、COBOL B、BASIC C、C D、C++
17、用低级语言开发的程序具有C特点。
A、运行效率低开发效率低
B、运行效率低开发效率高
C、运行效率高开发效率低
D、运行效率高开发效率高
三、简答题 1、程序设计语言发展至今已经历了哪几个时代
答第一代语言机器语言、第二代语言汇编语言、第三代语言高级语言。高级语
言种类繁多又可分为传统的基础语言、结构化语言和专用语言三类。
2、良好的编码风格包括哪几方面
答1源程序文档化 2数据说明 3语句构造 4输入与输出 5效率。 3、在软件开发时应根据哪些因素选择程序设计语言 答1项目的应用领域。2用户的要求。3软件开发工具。4算法和数据结构的复
杂性。5 软件开发人员的知识。6 系统的可移植性要求。
四、应用题
1指出下面的程序段在风格上的问题并改正。 答一方面尽量不使用“非”条件另一方面语句格式不规范。改为
if( x <= 0)
{
x = -x; }
2请将语句printf((i+1) % 10 = = 0)”%5d\n” ”%5d”, *(a+i) )改写为更为清晰的格式。
答
if ( (i+1) % 10 = = 0) {
printf(”%5d\n”, *(a+i) )
} 33
else
{
printf(”%5d”, *(a+i) )
}


3王永涛同学于2008年4月22日编写了下面的C程序其名称为sumint.c。请阅读该程
序并根据程序设计风格的一般要求改写下面的程序。 答按编码风格优化后的代码为 /**************************************************************
程序名称sumint.c
设计者 王永涛
日期 2008年4月22日
程序功能由键盘输入若干个整数计算它们之和并打印整数个数

及其和
***************************************************************/
# include <stdio.h>
void main()
{
int count, j=1sum=0, x;
printf(“请输入整数个数\n”);
scanf("%d",&count);
while (j<=count) //求 count 个整数之和
{
printf(“请输入第 %d个整数\n”, j );
scanf("%d",&x);
sum=sum+x; //累加整数
j++; //整数个
数计数
}
printf("%d个整数的和为%d\n" , j, sum);}
}

4、请对以下代码的布局进行改进使其符合良好的编码风格。
答 for(i=0;i<n-1;i++)
{
t=i;
for(j=i+1;j<n;j++)
{
if(a[j]<a[t])
{
t=j;
if(t!=i)
{
temp=a[t];
a[t]=a[i]; 34
a[i]=temp;
}
}
} 5、求整数1n的累加和sum其中n的值由键盘输入。使用您熟悉的语言编写程序注
意编码风格。
答
/*****************************
程序名sumints.c
程序功能求整数1n的累加和sum其中n的值由键盘输入
*****************************/
void main( )
{
int i,n,sum=0;
printf(“请输入整数个数n\n”);
for(i=1;i<=n;i+++)
{
scanf(“%d”); /*输入整数使用空格、回车或TAB键分隔*/
sum=sum+i; /*计算累加*/
}
printf(“1~%d的累加和sum=%d\n”,n,sum);
}

第9章
一、判断题
1、×测试是为了验证该软件以正确地实现了用户的需求。
2、√发现错误多的程序模块残留在模块中的错误也多。
3、×白盒测试法是根据程序的功能来设计测试用例的。
4、×黑盒法是根据程序的内部逻辑来设计测试用例的。
5、√确定测试计划是在需求分析阶段制定的。
6、√集成测试计划是在概要设计阶段制定的。
7、√单元测试是在编码阶段完成的。
8、√集成测试工作最好由不属于该软件开发组的软件设计人员承担。
9、√为了提高软件的测试效率测试工作需要有测试工具的支持。
10、×在做程序的单元测试时桩模块比驱动模块容易编写。

二、选择题
1、测试用例是专门为了发现软件错误而设计的一组或多组数据它由C组
成。
A、测试输入数据
B、预期的测试输出数据
C、测试输入与预期的输出数据
D、按照测试用例设计方法设计出的数据
2、测试和调试最大的不同在于A。
A、操作者的心理状态不同 B、它们的行为取向不同 35
C、使用的工具不同 D、运用的方法不同
3、一个成功的测试是B。
A、发现错误 B、发现至今尚未发现的错误
C、没有发现错误 D、证明发现不了错误
4、白盒法和黑盒法最大的不同

在于A。
A、测试用例设计方法不同 B、测试的任务不同
C、应用的测试阶段不同 D、基于的知识集不同
5、单元测试阶段主要涉及D的文档。
A、需求设计 B、编码和详细设计
C、详细设计 D、概要设计
6、检查软件产品是否符合需求定义的过程称为A。
A、确认测试 B、集成测试
C、验证测试 D、验收测试
7、
软件调试的目的是B。
A、发现错误 B、改正错误
C、改善软件的性能 D、挖掘软件的潜能
8、进行软件测试的目的是A。
A、尽可能多地找出软件中的错误 B、缩短软件的开发时间
C、减少软件的维护成本 D、证明程序没有缺陷
9、选择一个适当的测试用例用于测试下面的程序能达到判定覆盖的是C。
A、 B、

A B
False True

C、 D、
A B
False False
True True
语句
A OR B
False
True
10、在进行单元测试时常用的方法是A。
A、采用白盒测试辅之以黑盒测试
B、采用黑盒测试辅之以白盒测试
C、只使用白盒测试
D、只使用黑盒测试
A B
False True
True False
A B
False True
True False
True True 36
11、白盒测试方法一般适合于A测试。
A、单元 B、系统 C、集成 D、确认
12、为了提高测试的效率应该D。
A、随机地选取测试数据
B、取一切可能的输入数据作为测试数据
C、在完成编码以后制定软件的测试计划
D、选择发现错误可能性大的数据作为测试数据
13、不属于白盒测试的技术是D。
A、语句覆盖 B、判定覆盖
C、条件覆盖 D、边界值分析
14、下列逻辑覆盖标准中差错能力最强的是D。
A、语句覆盖 B、判定覆盖
C、条件覆盖 D、条件组合覆盖
15、在黑盒法中着重检查输入条件组合的测试方法是D。
A、等价类划分法 B、边界值分析法
C、错误推测法 D、因果图法

三、简答题
1、 为什么要进行软件测试软件测试要以什么目标和原则
答软件测试的目的是为了发现软件产品中存在的软件缺陷进而保证软件产品的质量。
软件测试是软件开发过程中的一个重要阶段是软件产品正式投入运行前对软件需求分析、
设计规格说明和编码的最终复审是软件质量保证的关键步骤。软件测试的结果也是分析软
件可靠性的重要依据。
在软件测试中应注意以下指导原则
1所有测试都应追溯到需求
2坚持“尽早地和不断地进行软件测试”。
3测试用例应由输入数据和预期的输出结

果两部分组成。
4程序员应避免测试自己的程序。
5在设计测试用例时应当包括合理的输入条件和不合理的输入条件。
6充分注意测试中的群集现象。
7严格执行测试计划排除测试的随意性。
8应当对每个测试结果做全面检查。
9在测试程序时不仅要检验程序是否做了该做的事还要检验程序是否做了不该
做的事。
10应长期保留所
有测试用例。保留测试用例有助于以后修改程序后的回归测试。 2、软件测试包括哪几个过程测试过程中包括哪些数据源
答测试过程分为4个步骤即单元测试、组装测试、确认测试和系统测试。
数据源有
1软件配置包括软件需求规格说明、软件设计规格说明、源代码等。
2测试配置包括测试计划、测试用例、测试驱动程序等。
3测试工具测试工具为测试的实施提供某种服务以减轻测试过程中的手工劳动
提高测试效率。 3、黑盒测试法与白盒测试法的本质区别是什么它们的使用场合有何不同。 答黑盒测试法与白盒测试法的根本区别是设计测试用例的方法不同。前者是测试产品37
的功能后者是测试产品的内部结构和处理过程。
通过黑盒测试主要发现以下错误
1是否有不正确或遗漏了的功能。
2界面是否有错能否正确地接受输入数据能否产生正确的输出信息。
3是否有数据结构或外部数据库访问错误。
4性能是否满足要求。
5是否有初始化或终止性错误。
白盒测试法是一种程序级的微观上的测试不适合于大单元、大系统的测试主要用于
很小单元的测试以及从事软件底层工作、生产构件的测试人员使用。 4、试比较测试与调试的异同。 答软件测试的目的是尽可能多地发现程序中的错误而调试的目的是根据测试时发现
的错误找出错误的原因和具体位置并改正错误。测试与调试的不同如下表所示。
测试与调试的不同 测试
(test) 调试 (debug)
目的是发现错误 目的是找出错误位置并排除
有计划 被动的
以已知条件开始,使用预先定义的程序,有预知的结

以不可知内部条件开始,结果一般不可预见
由独立的测试组在不了解软件设计的条件下完成
由程序作者进行谁开发的程序就由谁来调
试 5、试叙述面向对象的单元测试、组装测试、确定测试的内涵。 1面向对象的单元测试
面向对象的单元测试是进行面向对象集成测试的基础。面向对象的单元测试以类或对
象为单位。由于类包含一组

相关文档