软件工程习题解答解析.docx
- 文档编号:26074575
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:41
- 大小:1MB
软件工程习题解答解析.docx
《软件工程习题解答解析.docx》由会员分享,可在线阅读,更多相关《软件工程习题解答解析.docx(41页珍藏版)》请在冰豆网上搜索。
软件工程习题解答解析
期考试题题型构成:
选择题20道40分
填空题10道20分
应用题5道40分
软件工程习题解答
一、软件生存周期各阶段的基本任务?
1.问题定义:
(1)回答要解决的问题是什么。
(2)系统分析员应该提出关于问题性质、工程目标和规模的书面报告。
(3)经过和用户讨论,澄清含糊不清的地方,改正理解不正确的地方,得出一份双方都满意的文档。
(4)问题定义是软件生命周期中最简短的阶段。
2.可行性研究:
(1)前一阶段定义的问题有可行的解决办法吗?
(2)系统分析员要进行一次大大压缩和简化了的系统分析和设计。
导出高层逻辑模型(用数据流图表示)。
确定工程规模和目标,准确估计系统的成本和效益。
(3)使用部门的负责人根据可行性研究的结果决定是否继续进行该工程的开发工作。
3.需求分析:
(1)主要确定目标系统必须具备哪些功能。
(2)系统分析员和用户密切配合,充分交流,得出经用户确认的系统逻辑模型(数据流图、数据字典、算法描述)。
4.总体设计:
(1)回答如何解决问题。
(2)系统分析员
应使用系统流程图或其他工具描述每种可能系统;
估计每种方案的成本和效益。
推荐一较好的系统──有其详细计划。
设计软件的结构(用层次图或结构图描述)。
5.详细设计:
(1)回答应该怎样具体地实现这个系统。
(2)设计出程序的详细规格说明(用HIPO层次图加输入/处理/输出图)或PDL语言(过程设计语言)。
6.编码和单元测试:
(1)写出正确的容易理解,容易维护的程序模块。
(2)程序员:
选取一种适当的用高级语言书写程序(或汇编语言)。
仔细测试编写出的每一个模块。
7.综合测试:
(1)通过各种类型的测试,使软件达到预定的要求。
(2)最基本的测试是集成测试和验收测试方法。
集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配的过程中对程序进行必要的测试。
验收测试是按照需求规格说明书的规定,由用户对目标系统进行验收。
(3)用正式文档将测试计划、详细测试方案以及实际测试结果保存。
(4)以正式或非正式的方式对用户进行培训。
8.软件维护:
(1)使系统持久地满足用户的需要。
(2)四类维护:
改正性维护:
诊断和改正使用过程中发现的软件错误。
适应性维护:
修改软件以适应环境变化。
完善性维护:
根据用户要求,改进或扩充软件。
预防性维护:
修改软件为将来的维护预先准备。
第二章可行性研究
1.已知某软件包具有三个主要功能:
输入数据、更新数据、产生报表。
根据历史资料记载,实现每个功能所需源代码行数估算如下:
①输入数据:
a=l00m=200b=300
②更新数据:
a=200m=300b=400
③产生报表:
a=300m=400b=500
三个功能的软件生产率都是200行/人月,每行成本lO元/行,请用LOC技术估算出该软件包的成本和工作量。
解:
2.某计算机系统投入使用后、5年内每年可节省人民币2O0O元,假设系统的投资额为5000元,年利率为12%。
试计算投资回收期和纯收入。
解:
1、投资回收期
最初投资额为5000元,经过3年后可以节省4814.28元,比最初投资还少185.72元,
第4年一年再次节省1273.89元,则
185.72÷1273.89=0.15
3+0.15=3.15
因此这项工程的投资回收期是3.15年。
2、纯收入
7224.53-5000=2224.53元>0,值得投资。
第三章需求分析
1.什么是数据流图?
其作用是什么?
其中的基本符号各表示什么含义?
数据流图:
简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。
作用:
它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.
基本符号有四种:
→,箭头,表示数据流;○,圆或椭圆,表示加工;=,双杠,表示数据存储;□,方框,表示数据的源点或终点.
2.某银行的计算机储蓄系统功能是:
将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算清单储户。
请用DFD和IDEF0描绘该功能的需求,并建立相应的数据字典。
(1)数据流条目:
数据流名称:
存款单
别名:
无
简述:
储户存款时填写的项目
来源:
储户
去向:
记帐
数据流量:
未知
组成:
姓名+住址+存款类型+存款日期+利率
数据流名称:
取款单
别名:
无
简述:
储户取款时填写的项目
来源:
储户
去向:
统计
数据流量:
未知
组成:
姓名+住址+取款类型+取款日期+利率
数据流名称:
清单
别名:
无
简述:
储户取款后得到的项目
来源:
记录
去向:
储户
数据流量:
未知
组成:
姓名+住址+取款类型+取款日期+利率+余额
(2)数据存储条目:
数据存储名称:
账单
别名:
无
简述:
存放储户信息及其账目
组成:
姓名+住址+余额+存款类型+最后修改日期+利率
组织方式:
未知
查询要求:
能立即查询
(3)数据项条目:
未知
(4)加工条目:
加工名:
分类检查
编号:
无
激发条件:
接收到存/取款单
优先级:
优先
输入:
存/取款单
输出:
存/取款单
加工逻辑:
IF存款单THEN把存款单输出到统计
ELSE
把取款单输出到统计
ENDIF
加工名:
统计
编号:
无
激发条件:
取款单
优先级:
无
输入:
取款单
输出:
清单
加工逻辑:
根据账单检查此储户是否存在,不存在输出错误{
IF取款数<余额THEN余额=余额-取款数
输出清单到储户,输出现金到储户
ELSE
输出错误清单到储户
ENDIF
}
加工名:
记录
编号:
无
激发条件:
存款单
优先级:
无
输入:
存款单
输出:
存款单
加工逻辑:
根据账单检查此储户是否存在,不存在则建立此储户{
余额=余额+存款数
输出存款单到储户
}
关于软件工程中的判定树和判定表
判定树又称决策树,是一种描述加工的图形工具,适合描述问题处理中具有多个判断,而且每个决策与若干条件有关。
使用判定树进行描述时,应该从问题的文字描述中分清哪些是判定条件,哪些是判定的决策,根据描述材料中的联结词找出判定条件的从属关系、并列关系、选择关系,根据它们构造判定树。
【例4.5】某工厂对工人的超产奖励政策为:
该厂生产两种产品A和B。
凡工人每月的实际生产量超过计划指标者均有奖励。
奖励政策为:
对于产品A的生产者,超产数N小于或等于100件时,每超产1件奖励2元;N大于100件小于等于150件时,大于100件的部分每件奖励2.5元,其余的每件奖励金额不变;N大于150件时,超过150件的部分每件奖励3元,其余按超产150件以内的方案处理。
对于产品B的生产者,超产数N小于或等于50件时,每超产1件奖励3元;N大于50件小于等于100件时,大于50件的部分每件奖励4元,其余的每件奖励金额不变;N大于100件时,超过100件的部分每件奖励5元,其余按超产100件以内的方案处理。
上述处理功能用判定树描述,如下图所示
判定树又称决策树,是一种描述加工的图形工具,适合描述问题处理中具有多个判断,而且每个决策与若干条件有关。
使用判定树进行描述时,应该从问题的文字描述中分清哪些是判定条件,哪些是判定的决策,根据描述材料中的联结词找出判定条件的从属关系、并列关系、选择关系,根据它们构造判定树。
【例4.5】某工厂对工人的超产奖励政策为:
该厂生产两种产品A和B。
凡工人每月的实际生产量超过计划指标者均有奖励。
奖励政策为:
对于产品A的生产者,超产数N小于或等于100件时,每超产1件奖励2元;N大于100件小于等于150件时,大于100件的部分每件奖励2.5元,其余的每件奖励金额不变;N大于150件时,超过150件的部分每件奖励3元,其余按超产150件以内的方案处理。
对于产品B的生产者,超产数N小于或等于50件时,每超产1件奖励3元;N大于50件小于等于100件时,大于50件的部分每件奖励4元,其余的每件奖励金额不变;N大于100件时,超过100件的部分每件奖励5元,其余按超产100件以内的方案处理。
上述处理功能用判定树描述,如下图所示
这一判定树比起文字叙述,使人一目了然,清晰地表达了在什么情况下采取什么策略,不易产生逻辑上的混乱。
因而判定树是描述基本处理逻辑功能的有效工具。
==============================================
判定表由四部分组成。
第一部分即①表示的部分,判定标的左上部称为基本条件项,列出各种可能的条件。
第二部分即②表示的部分,判定标的右上部称为条件项,它列出了各种可能的条件组合。
第三部分即③表示的部分,判定标的左下部称为基本动作项,它列出了所有的操作。
第四部分即④表示的部分,判定标的右下部称为动作项,它列出在对条件组合下所选的操作。
【例4.6】以学生的奖学金评定为例,说明判定表的应用。
奖励的目的在于鼓励学生的品学兼优,此处理功能是要合理确定奖学金评定等级。
决定受奖的条件为:
成绩优秀占70%或50%以上,成绩为中或中以下占15%或20%以下,团结纪律为优良或一般者。
奖励方案为一等奖、二等奖、三等奖、鼓励奖四种。
因为受奖条件有些是相容的,相互组合的项较多。
描述此学生奖励政策的判定表如下图所示:
由上图可见,判定表将比较复杂的决策问题简洁、明确、一目了然地描述出来,它是描述条件比较多的决策问题的有效工具。
判定表或判定树都是以图形形式描述数据流的加工逻辑,它结构简单,易懂易读。
尤其遇到组合条件的判定,利用判定表或判定树可以使问题的描述清晰,而且便于直接映射到程序代码。
在表达一个加工逻辑时,判定数、判定表都是好的描述工具,根据需要可以交叉使用。
4.选择一个系统(例如人事档案管理系统、图书管理系统、医院监护系统、足球俱乐部管理系统、财务管理系统、学生选课系统、飞机订票系统等),用SA方法对它进行分析,画出系统的分层DFD图。
解:
下面是一个学生选课系统的DFD。
新补充:
1、某图书出版公司希望每月定期向固定客户邮寄最近一个月的图书分类目录。
客户可在其收到的目录上圈定自己要买的书。
出版公司按照客户的反馈信息邮寄图书。
要求为出版公司设计软件,以实现以下功能:
(1)自动生成图书分类目录;
(2)自动处理客户反馈信息。
试用面向数据流的方法给出系统的数据流图,并设计出软件结构图。
第四章概要设计
3.衡量模块独立性的两个标准是什么?
它们各表示什么含义?
两个定性的度量标准:
耦合与内聚性
耦合性:
也称块间联系。
指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
内聚性:
也称块内联系。
指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
模块内元素联系越紧密,内聚性越高。
6.什么是软件结构?
简述软件结构设计优化准则。
软件结构:
软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。
软件结构设计优化准则:
a.划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,以此为原则优化初始的软件结构。
b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近
c.软件的深度、宽度、扇入、扇出应适当。
D.模块的大小要适中。
E.模块的控制范围模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。
2、已知模块C中的一个判定影响到模块B,如图所示,它违反了SD的设计原则。
试问:
可以采用哪些手段对结构图作改进,请说明改进办法并画出改进的结构图。
3、已知有一抽象的DFD图如下所示,请用SD方法画出相应的结构图。
答:
4、高考录取统分子系统有如下功能:
(1)计算标准分:
根据考生原始分计算,得到标准分,存入考生分数文件;
(2)计算录取线分:
根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
试根据要求画出该系统的数据流程图,并将其转换为软件结构图。
答:
(1)数据流图:
(2)软件结构图:
①原始分②标准分③招生计划④录取线
5、图书馆的预定图书子系统有如下功能:
(1)由供书部门提供书目给订购组。
(2)订书组从各单位取得要订的书目。
(3)根据供书目录和订书书目产生订书文档留底。
(4)将订书信息(包括数目,数量等)反馈给供书单位。
(5)将未订书目通知订书者。
(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。
试根据要求画出该问题的数据流程图,并把其转换为软件结构图。
答:
(1)数据流图:
(2)软件结构图:
第五章详细设计
1.选择一种将三个数从小到大排序的算法,分别用
(1)流程图,
(2)N-S图,(3)PAD图描述其详细过程。
设数为a,b,c,其详细过程如下:
(1)流程图
(2)N-S图
(3)PAD图
第六章实现
第七章软件测试
1、对下列子程序进行调试:
procedureexample(y,z:
real;varx:
real)
begin
if(y>1)and(z=0)thenx:
=x/y;
if(y=2)or(x=l)thenx:
=x+l;
end.
该子程序接受x,y,z的值,并将计算结果x的值返回给调用程序。
答题要求:
(1)画出流程图。
(2)用白盒法设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。
答:
(1)流程图
(2)用白盒法中条件组合覆盖设计测试用例:
①y=2,z=0,x=4;
②y=2,z=1,x=1;
③y=1,z=0,x=2;
④y=1,z=1,x=1.
2、某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。
系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。
现要求用黑盒测试法中的边界值法写出测试用例。
答:
输入条件测试用例说明测试数据
报表日期的1个数字字符5
类型及长度5个数字字符20035
7个数字字符2003005
有1个非数字字符2003.5
全部是非数字字符MAY---
6个数字字符200305
日期范围在有效范围200301
边界上选取200812
数据200300
200813
月份范围月份为1月200301
月份为12月200312
月份<1200300
月份>12200313
3、对以下程序进行测试:
PROCEDUREEX(A,B:
REAL;VARX:
REAL);
BEGIN
IF(A=3)OR(B>1)THENX:
=A×B
IF(A>2)AND(B=0)THENX:
=A-3
END
先画出程序流程图。
再按不同逻辑覆盖法设计一种(写出名称)测试数据。
答:
语句覆盖 A=3B=0
4、程序功能说明书指出,某程序的输入条件为:
每个学生可以选修1至3门课程,试用黑盒法设计测试用例。
(1)按等价分类法设计测试用例(要求列出设计过程)
(2)按边缘值分析法设计测试用例。
答:
1)合理等价类
选修1门
选修2门
选修3门
不合理等价类
没选课
选3门以上
测试用例
选修=2
选修=0
选修>3
2)边缘值法
0,1,3,4
5、设被测试的程序段为:
begin
s1;
if(x=0)and(y>2)
thens2;
if(x<1)or(y=1)
thens3;
s4;
end
可供选择的测试数据组为:
xy
Ⅰ03
Ⅱ12
Ⅲ-12
Ⅳ31
找出实现
(1)语句覆盖;
(2)条件覆盖;(3)判定覆盖至少要选择的数据组。
答:
(1)Ⅰ
(2)Ⅰ,Ⅳ(3)Ⅰ,Ⅱ
二.某电力公司有A、B、C、D共四类收费标准,并规定,居民用电每月200度以下按A类收费,200度以上按B类收费。
动力电以每月1万度为分界,非高峰用电不足1万度按B类收费,达到或超过1万度按C类收费。
高峰用电不足1万度按C类收费,达到或超过1万度按D类收费。
试用基于逻辑的测试方法为它设计足够的测试用例实现条件组合的完全覆概。
规则号
1
2
3
4
5
6
居民
用电
200度以下
Y
200度以上
Y
动力用电
非高峰
1万度以下
Y
1万度以上
Y
高峰
1万度以下
Y
1万度以上
Y
收费
标准
A类
▲
B类
▲
▲
C类
▲
▲
D类
▲
测试用例
用电类型
输入数据
预期结果
居民
用电
90度/月
A
110度/月
B
动力用电
非
高峰
8000度/月
B
12000度/月
C
高峰
9000度/月
C
11000度/月
D
三.如图显示某程序的逻辑结构。
试为它设计足够的测试用例,分别实现对程序的判定覆概、条件覆概和条件组合覆概。
设计测试方案
覆盖种类
需满足的条件
测试数据
期望结果
判定覆盖
A>1,B=0
A=2,B=0
执行S1
A>1,B0或
A1,B=0或
A1,B0
A=2,B=1或
A=1,B=0或
A=1,B=1
执行S2
条件覆盖
以下四种情况各出现一次
A>1
B=0
A=2,B=0
执行S1
A1
B0
A=1,B=1
执行S2
条件组合
覆盖
A>1,B=0
A=2,B=0
执行S1
A>1,B0
A=2,B=1
执行S2
A1,B=0
A=1,B=0
执行S2
A1,B0
A=1,B=1
执行S2
四.某城市电话号码由三部分组成。
它们的名称和内容分别是:
地区码:
空白或三位数字;
前缀:
非‘0’或‘1’的三位数字;
后缀:
4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
根据该程序的规格说明,作等价类的划分,并设计测试方案。
1.划分等价类
输入条件
有效等价类
无效等价类
地区码
1.空白;
2.三位数;
1. 有非数字字符;2.少于三位数字;
3.多于三位数字。
前缀
3.从200到999之间的三位
4.有非数字字符;5.起始位为‘0’;
6.起始位为‘1’;7.少于三位数字;
8.多于三位数字。
后缀
4.四位数字。
9.有非数字字符;10.少于四位数字;
11.多于四位数字。
设计测试方案
方案
内容
输入
预期
输出
地区码
前缀
后缀
1
空白
200~999之间的三位数字
四位数字
()276-2345
有效
2
三位数字
四位数字
(635)805-9321
有效
3
有非数字字符
(20A)723-4567
无效
4
少于三位数字
(33)234-5678
无效
5
多于三位数字
(5555)345-6789
无效
6
有非数字字符
(345)5A2-3456
无效
7
起始位为‘0’
(345)012-3456
无效
8
起始位为‘1’
(345)132-3456
无效
9
少于三位数字
(345)92-3456
无效
10
多于三位数字
(345)4562-3456
无效
11
有非数字字符
(345)342-3A56
无效
12
少于四位数字
(345)342-356
无效
13
多于四位数字
(345)562-34567
无效
第八章软件维护
1、软件维护有哪些内容?
a、校正性维护b、适应性维护c、完善性维护d、预防性维护
第九章
第十章面向对象技术
1、 说明对象、类、类结构、消息的基本概念?
答:
对象:
是客观实体在问题域中的抽象。
类:
具有相似或相同性质的对象的抽象就是类。
类结构:
类的结构通常有一般----具体(分类结构)整体---抽象(组装结构)
消息:
对象之间通信的构造。
2、 面向对象的特征和要素?
答:
特征:
一致性、多态性、分类性、继承性。
要素:
共享、封装、抽象。
第十二章软件工程管理
3、软件开发成本估算方法有哪几种?
答:
COCOMO、PUTANM。
。
。
。
4、 什么软件配置管理?
什么是基线?
答:
软件配置管理:
软件配置管理(SCM)用于整个软件工程过程,目标是表示变更,控制变更,确保变更的正确实施,报告变更。
SCM是用在整个软件生存周期个阶段中的变更活动。
基线:
是软件生存周期中各开发阶段的一个特定点,它的作用是把开发各阶段的工作划分的更加明确化,使本来连续的工作在这些点上断开,便于检查于肯定阶段成果。
图书馆信息系统UML实例
一、如何理解UML
1、UML统一建模语言
统一建模语言(UnifiedModelingLanguage,UML)是一个通用的可视化建模语言,跨越软件开发的整个生命过程,详细描述系统结构的方法,为规范化、可视化、文档化软件系统提供了一致的建模语言。
使用UML主要目的是是便于用户、开发人员、分析人员、测试人员、管理人员、其他涉及项目人员之间的通信。
建立“立体”的模型需要:
点、线、面
UML描述模型有三种词汇:
要素、关系、图
2、UML有四种要素:
(1)表示结构的要素:
UseCase、类、接口、协作
(2)表示行为的要素:
交互、状态机
(3)表示组织的要素:
包(Packa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 习题 解答 解析