软件工程习题解答(含基本章节应试例子以及一个UML案例)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程习题解答
一、软件生存周期各阶段的基本任务?
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=l00 m=200 b=300
②更新数据:a=200 m=300 b=400
③产生报表:a=300 m=400 b=500
三个功能的软件生产率都是200行/人月,每行成本lO元/行,请用LOC技术估算出该软件包的成本和工作量。
解:
2.某计算机系统投入使用后、5年内每年可节省人民币2 O0O元,假设系统的投资额为5 000元,年利率为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
}
加工名:记录
编号:无
激发条件:存款单
优先级:无
输入:存款单
输出:存款单
加工逻辑:根据账单检查此储户是否存在,不存在则建立此储户{
余额=余额+存款数
输出存款单到储户
}