2015年软件工程期末考试试题及答案(机密)解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
班级姓名学号
一.简要回答下列各问题(共40分,每个小题5分)
(1) 阐述软件工程的定义。
答:
●是指导计算机软件开发和维护的一门工程学科;
●采用工程的概念、原理、技术和方法来开发和维护软件;
●把证明正确的管理技术和最好技术综合运用到软件开发中;
●研究经济地开发出高质量的软件方法和技术;
●研究有效维护软件的方法和技术。
(2) 简述软件危机的原因。
答:
●缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划很难制定。
●软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
●软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。
●随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,
不仅涉及技术问题,更重要的是必须有科学严格的管理。
●缺少有效的软件评测手段,提交用户的软件质量不能完全保证。
(3) 画出软件生存周期的瀑布模型的示意图,并简单评述其优缺点。
(4) 画出软件生存周期的增量模型的示意图,并简述其优点。
优点:
●可强迫开发人员采用规范化的方法。
●严格地规定了每个阶段必须提交的文档。
●要求每个阶段交出的所有产品都必须是经过验证
的。
缺点
●由于瀑布模型几乎完全依赖于书面的规格说明,很
可能导致最终开发出的软件产品不能真正满足用户
的需要。如果需求规格说明与用户需求之间有差异,
就会发生这种情况。
●瀑布模型只适用于项目开始时需求已确定的情况。
1-2 瀑布模型示意图
●能在较短时间内向用户提交可完成一些有用的工作产
品,即从第1个构件交付之日起,用户就能做一些有用
的工作。
●逐步增加产品的功能可以使用户有较充裕的时间学习和
适应新产品,从而减少一个全新的软件可能给用户组织
带来的冲击。
●项目失败的风险较低,虽然在某些增量构件中可能遇到
一些问题,但其他增量构件将能够成功地交付给客户。
●优先级最高的服务首先交付,然后再将其他增量构件逐
次集成进来。因此,最重要的系统服务将接受最多的测
试。
(5) 画出D.Ross 提出的软件工程结构化分析方法的框架示意图,并解释数据字典和数据流的含义。
答:
(6) 举例说明变换型和事务型流图的特点。 答:
变换型流图由输入、中心变换和输出3部分组成,而且逐层展开。如:
事务型流图通常接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。
(7) 给出下面变换型数据流图对应的模块结构图。
答:
(8) 给出下面交易型数据流图对应的模块结构图。
答:
(9) 举例说明模块结构图优化方法中的不同模块相似部分调整的原则。 答:
● 完全相似的模块可以归并;
● 两个模块部分相似的代码可以通过建立公共新模块,并设立对公共模块调用进
行调整。 例如:
(10) 举例说明模块结构图优化方法中作用域与控制域调整的原则。
答:
作用域是指判断语句所在模块和他判断调用的下属模块,而控制域是指他本身以及他的下属模块;一般要求作用域在控制域内。
例如: D 通过B 判断调用C ,故D 的作用范围不在它的控制范围内,调整为右图。
(11) 试将下面的代码段进行局部调整,使其更容易理解。
1)要进行适当的缩排;
2)增加必要的注释;
3)增加必要的语句,以免产生错误;
For(i=1;i<=n-1,i++){t=i;for(j=i+1,j<=n,j++)if(a[j] int i=0;/*实现***功能 int t=0; int tm=0; For(i=1;i<=n-1,i++) /*实现***功能 { t=i; for(j=i+1,j<=n,j++) /*实现***功能