软件工程课后题答案大全详细.docx
《软件工程课后题答案大全详细.docx》由会员分享,可在线阅读,更多相关《软件工程课后题答案大全详细.docx(18页珍藏版)》请在冰豆网上搜索。
软件工程课后题答案大全详细
软件工程习题解答
第一章概述
3.什么是软件危机?
其产生的原因是什么?
软件危机:
软件发展第二阶段的末期,由于计算机硬件技术的进步。
一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
主要表现在以下几个方面:
a.经费预算经常突破,完成时间一再拖延。
b.开发的软件不通满足用户要求。
c.开发的软件可维护性差。
d.开发的软件可靠性差。
软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:
a.软件的规模越来越大,结构越来越复杂。
b.软件开发管理困难而复杂。
c.软件开发费用不断增加。
d.软件开发技术落后。
e.生产方式落后。
f.开发工具落后,生产率提高缓慢。
4.什么是软件工程?
它的目标和内容是什么?
软件工程:
用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:
a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;
d.开发的软件易于移植;e.需要较低的维护费用;
f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;
软件工程的内容:
1)软件开发技术:
软件开发方法、软件开发过程、软件开发工具和环境。
2)软件开发管理:
软件管理学、软件经济学、软件心理学。
6.什么是软件生存周期?
它有哪几个活动?
软件生存周期:
一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:
可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.
7.什么是软件生存周期模型?
有哪些主要模型?
软件生存周期模型:
是描述软件开发过程中各种活动如何执行的模型。
(模型:
是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。
)
软件生存周期主要模型:
瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等
第三章需求分析
1.什么是需求分析?
需求分析阶段的基本任务是什么?
需求分析是指:
开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
需求分析阶段的基本任务是:
(1)问题识别:
双方对问题的综合需求:
a.功能需求b.性能需求c.环境需求d.用户界面需求.
(2)分析与综合,导出软件的逻辑模型.(3)编写文档
4.什么是数据流图?
其作用是什么?
其中的基本符号各表示什么含义?
数据流图:
简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。
作用:
它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.
基本符号有四种:
→,箭头,表示数据流;○,圆或椭圆,表示加工;=,双杠,表示数据存储;□,方框,表示数据的源点或终点.
5.画数据流图应该注意什么事项?
画数据流图注意事项:
a.命名.不论是数据流\数据存储还是加工,合适的命名使人们易于理解基含义.
b.画数据流而不是控制流.c.一般不画物质流.
d.每个加工到少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果.
e.编号.f.父图与子图的平衡.g.局部数据存储.h.提高数据流图的易理解性.
7.描述加工逻辑有哪些工具?
a,结构化语言b,判定表c.判定树
10.某银行的计算机储蓄系统功能是:
将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算清单储户。
请用DFD和IDEF0描绘该功能的需求,并建立相应的数据字典。
(1)数据流条目:
数据流名称:
存款单
别名:
无
简述:
储户存款时填写的项目
来源:
储户
去向:
记帐
数据流量:
未知
组成:
姓名+住址+存款类型+存款日期+利率
数据流名称:
取款单
别名:
无
简述:
储户取款时填写的项目
来源:
储户
去向:
统计
数据流量:
未知
组成:
姓名+住址+取款类型+取款日期+利率
数据流名称:
清单
别名:
无
简述:
储户取款后得到的项目
来源:
记录
去向:
储户
数据流量:
未知
组成:
姓名+住址+取款类型+取款日期+利率+余额
(2)数据存储条目:
数据存储名称:
账单
别名:
无
简述:
存放储户信息及其账目
组成:
姓名+住址+余额+存款类型+最后修改日期+利率
组织方式:
未知
查询要求:
能立即查询
(3)数据项条目:
未知
(4)加工条目:
加工名:
分类检查
编号:
无
激发条件:
接收到存/取款单
优先级:
优先
输入:
存/取款单
输出:
存/取款单
加工逻辑:
IF存款单THEN把存款单输出到统计
ELSE
把取款单输出到统计
ENDIF
加工名:
统计
编号:
无
激发条件:
取款单
优先级:
无
输入:
取款单
输出:
清单
加工逻辑:
根据账单检查此储户是否存在,不存在输出错误{
IF取款数<余额THEN余额=余额-取款数
输出清单到储户,输出现金到储户
ELSE
输出错误清单到储户
ENDIF
}
加工名:
记录
编号:
无
激发条件:
存款单
优先级:
无
输入:
存款单
输出:
存款单
加工逻辑:
根据账单检查此储户是否存在,不存在则建立此储户{
余额=余额+存款数
输出存款单到储户
}
11.某图书管理系统工程有以下功能:
(1)借书:
输入读者借书证。
系统首先检查借书证是否有效,对于第一次借书的读者,在借书文件建立档案。
否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10本,拒借,未达10本,办理借书(检查库存、修改库存目录并将读者借书情况登入借书文件).
(2)还书:
从借书文件中读出与读者有关的记录,查阅所借日期,如果超期(3个月)作罚款处理。
否则,修改库存目录与借书文件。
(3)查询:
可通过借书文件、库存目录文件查询读者情况、图书借阅情况及库存情况,打印各种统计表。
请就以上系统功能画出分层的DFD图,并建立重要条目的数据字典。
12.某厂对部分职工重新分配工作的政策是:
年龄在伙岁以下者,初中文化程度脱产学习。
高中文化程度当电工;年龄在20岁到40岁之间者,中学中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。
年龄在40岁以上者,中学文化程度当材料员,大学文化程序当技术员。
请用结构化语言、判定表或判定树描述上述问题的加工逻辑。
(1)结构化语言:
根据职工年龄和文化程序:
REPEAT
If 年龄<=20
If 初中文化 Then 脱产学习 endif
else if 高中文化 Then 电工 endif
endif
If 20<年龄<40
If 中学文化
If 男性 Then 钳工
Else
车工
Endif
else if 大学文化 Then 技术员endif
endif
endif
If 年龄>=40
If 中学文化 Then 材料员
else if 大学文化 Then 技术员endif
endif
endif
Until 没有剩余未分配员工
判定表
1
2
3
4
5
6
7
8
9
10
11
年龄
C
C
D
D
D
D
D
E
E
E
文化
G
H
H
G
G
H
I
G
H
I
性别
--
--
M
M
F
F
--
--
--
--
脱产学习
√
电工
√
钳工
√
√
车工
√
√
技术员
√
√
材料员
√
√
条件取值表
条件名
取值
符号
取值数
年龄
<=20
C
M1=3
>20,<40
D
>=40
E
文化程度
中学
G
M2=3
高中
H
大学
I
性别
男
M
M3=2
女
F
附加题:
1、自学考试报名过程中有个“记录报名单”的加工。
该加工主要是根据报名表(姓名、性别、身份证号、课程名)和开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报名者,同时记录到考生名册中(准考证号、姓名、课程)。
请绘制该加工的DFD图,并写出数据词典中的数据流条目。
答:
数据流词典
数据流条目:
报名单=姓名+性别+身份证号+课程名
开考课程=课程名+开考时间
考生名册=准考证号+姓名+课程
2、“决定比赛名单”这个加工,根据“运动员名单”和“比赛项目”产生“项目参加者”,如下图所示,运动员名单要包括所在队名,运动员编号号,运动员姓名,及参加的所有项目。
请写出这三个数据流条目。
答:
运动员名单=队名+运动员号+姓名+{项目}
项目=项目名
项目参加者=项目名+{运动员号}
3、某旅馆的电话服务如下:
可以拨分机号和外线号码。
分机号是从7201至7299。
外线号码先拨9,然后是市话号码或长话号码。
长话号码是以区号和市话号码组成。
区号是从100到300中任意的数字串。
市话号码是以局号和分局号组成。
局号可以是455,466,888,552中任意一个号码。
分局号是任意长度为4的数字串。
要求:
写出在数据字典中,电话号码的数据条目的定义(即组成)。
答:
电话号码=分机号|外线号码
分机号=7201...7299
外线号码=9+[市话号码|长话号码]
长话号码=区号+市话号码
区号=100...300
市话号码=局号+分局号
局号=[455|466|888|552]
分局号=4{数字}4第四章概要设计
1.什么是软件概要设计?
该阶段的基本任务是什么?
软件概要设计:
在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能是实现,即把软件需求转换为软件包表示的过程。
基本任务:
(1)设计软件系统结构(简称软件结构)
a.采用某种设计方法,将一个复杂的系统按功能划分成模块(划分)
b.确定模块的功能。
(功能)
c.确定模块之间的调用关系。
(调用)
d.确定模块之间的接口,即模块之间传递的信息。
(接口)
e.评价模块结构的质量。
(质量)
(2)数据结构及数据库设计
a.数据结构设计b.数据库设计:
(概念设计、逻辑设计、物理设计)
(3)编写概要设计文档(文档主要有:
概要设计说明书、数据库设计说明书、用户手册、修订测试计划)
(4)评审
2.软件设计的基本原理包括哪些内容?
软件设计的基本原理:
(1)模块化(四个属性:
接口、功能、逻辑、状态)
(2)抽象
(3)信息隐蔽(4)模块立性(两个定性的度量标准:
耦合性与内聚性)
3.衡量模块独立性的两个标独准是什么?
它们各表示什么含义?
两个定性的度量标准:
耦合与内聚性
耦合性:
也称块间联系。
指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性