软件工程简答-郑州轻工业学院.docx

上传人:b****2 文档编号:1709821 上传时间:2022-10-23 格式:DOCX 页数:11 大小:77.05KB
下载 相关 举报
软件工程简答-郑州轻工业学院.docx_第1页
第1页 / 共11页
软件工程简答-郑州轻工业学院.docx_第2页
第2页 / 共11页
软件工程简答-郑州轻工业学院.docx_第3页
第3页 / 共11页
软件工程简答-郑州轻工业学院.docx_第4页
第4页 / 共11页
软件工程简答-郑州轻工业学院.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

软件工程简答-郑州轻工业学院.docx

《软件工程简答-郑州轻工业学院.docx》由会员分享,可在线阅读,更多相关《软件工程简答-郑州轻工业学院.docx(11页珍藏版)》请在冰豆网上搜索。

软件工程简答-郑州轻工业学院.docx

一、简答题(6*5分,原题13选6)

1.什么是软件工程,其目标是什么?

答:

软件工程是指导软件开发和维护的工程性学科,他以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理、技术、和方法进行软件的开发和维护,把经过时间考验且证明正确的管理技术和当前得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护它。

目标:

运用先进的软件开发技术和管理方法来提高软件的质量和生产率。

2.什么是软件生存期,主要有那些阶段组成,每一个阶段的主要工作是什么?

答:

软件生存期:

软件孕育、诞生、成长、成熟、衰亡的生存过程;主要由

软件定义、软件开发、运行维护三个时期完成;又可分为五个阶段:

1)问题的定义与可行性的研究:

确定工程的总目标和可行性导出实现工程目标应使用的策略及系统必须完成的功能。

2)需求分析:

对要解决的问题进行详细的分析,制定设计软件需求规格说明书;

3)软件设计:

从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案;

4)程序编码和单元测试:

根据所做的设计,运用编程语言实现功能,并对软件中的最小可测试单元进行检查和验证;

5)集成测试和系统测试:

将已测试过的模块按照设计规格说明的顺序组装过程中检查模块连接中的问题;根据规格说明要求,对必须实现的各项需求进行逐项确认;

6)软件运行和维护:

软件再运行中可能由于多方面的原因需要对他进行修改。

3.什么是软件工程方法学,软件工程方法学三要素各代表什么?

答:

软件开发生命周期全过程中使用的一整套技术的集合称为软件工程方法学:

三要素:

1)方法:

为建造软件提供技术上的方法;

2)工具:

为方法的运行提供自动或半自动的软件支撑环境;

3)过程:

规定了完成各项任务的工作步骤。

4.在软件生存期模型中,瀑布模型的优缺点,快速原型模型的优点,增量模型的优点?

答:

瀑布模型优点:

(一步步执行,较为规范的文档)

1)可强迫开发人员采用规范化的方法;

2)严格的规定了每个阶段必须提交的文档;

3)要求每个阶段交出的所有产品都必须经过验证的。

瀑布模型的缺点:

(过度依赖文档)

1)由于完全依赖书面的规格说明,一旦规格说明与用户之间需求有差异,就会导致最终开发出与用户需求不一致的软件产品;

2)瀑布模型只适用于项目开始时项目已经确定的情况下。

快速原型模型优点:

(快速出原型—增加UI界面—不易出错)

1)有助于满足用户真实需求;

2)开发过程基本按线性顺序进行;

3)因规格说明文档已正确描述用户需求,后续开发阶段不会因发现规格说明文档有错而进行较大的返工;

4)“快速”,尽快建造出原型系统,加快软件开发过程,节约软件开发成本

5)所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下;

6)使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。

螺旋模型优点:

1)利于软件的重用;

2)减少或多测试或测试不足带来的风险;

3)在螺旋模型中维护的只是模型的另一个周期,因而在维护和开发之间并没有本质区别。

螺旋模型缺点:

风险不易发现,必须要求开发人员具有丰富的风险评估经验和专业知识。

5.什么是结构化分析模型?

各部分的含义?

答:

结构化建模方法是一种建模技术,主要包括:

数据字典:

包括在目标系统中使用和生成的所有数据对象;

数据流图(DFD):

描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能),用于功能建模;

实体-关系图(ER图):

描述数据以及数据对象之间的关系;

状态-迁移图(STD):

描述系统对外部事件如何响应、如何动作,用于行为建模。

6.结构化设计和结构化分析两者之间的关系?

答:

简单来说,结构化分析是结构化设计的基础。

7.结构化设计分为哪两个阶段,每个阶段的主要工作是什么?

答:

分4个阶段:

1)体系结构设计:

定义软件模块及其之间的关系;

2)接口设计:

包括外部接口(系同内部与外部之间)和内部接口(系统内部各元素之间)。

3)数据接口:

根据ER图来确定软件涉及的文件系统及数据库的表结构。

4)过程设计:

确定软件各个组成部分内的算法及内部数据结构,并选定某种表达形式来描述各种算法。

8.软件设计原则都有哪些?

答:

有五个原则:

1)分而治之:

将大型复杂问题分解成许多容易解决的小问题,使之易于解决;

2)模块独立性:

指软件中每个模块只涉及软件要求的具体的子功能,而与软件系统中其他模块的接口是简单的;

3)提高抽象层次:

忽视一个主题中与当前目标无关的方面,以便更充分地注意与当前目标有关的方面;

4)复用性设计:

同一事件不做修改或稍加修改就可以多次重复使用;

5)灵活性设计:

使功能信息隐藏起来,利于更加灵活的使用。

9.什么是内聚,什么是耦合?

为了保证模块独立性,在划分模块时应该遵循什么原则?

答:

内聚:

模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量

耦合:

模块之间的相互独立性(相互连接的紧密程度)的度量。

10.面向对象分析的三个模型各是什么?

答:

三个模型分别是:

1)用例模型:

由用例和场景表示的功能模型;

2)对象模型:

由类和对象表示的静态模型;

3)交互模型:

由状态图、顺序图等表示的动态模型。

11.请对下面代码的布局进行改进,使其符合规范其更容易理解。

修改后代码如下:

inti,j,t,n=0,temp;

int[]a=null;

for(i=1;i<=n-1;i++){ for(i=1;i<=n-1;i++){

t=i; t=i;

for(j=i+1;j<=n;j++) for(j=i+1;j<=n;j++){

if(a[j]

if(t!

=i){ t=j;

temp=a[t]; }elseif(t!

=i){

a[t]=a[i]; temp=a[t];

a[i]=temp a[t]=a[i];

} a[i]=temp;

} }

}

}

12.什么是黑盒测试,主要方法有哪些?

什么是白盒测试,主要方法有哪些?

答:

黑盒测试:

测试人员不用考虑程序内部的逻辑结构和内部特性,指依据程序父需求规格说明书,检查程序的功能是否符合它的功能。

主要方法有:

等价类划分、边界值分析、错误推测,因果图和综合策略。

白盒测试:

逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例技术,属于白盒测试。

白盒测试方法分为两大类:

静态测试方法和动态测试方法:

静态测试方法:

检查软件的表示和描述是否一致没有冲突或者没有歧义。

动态测试方法:

语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。

13.软件测试包括哪些步骤?

说明这些步骤的测试对象是什么?

答:

(1)单元测试,测试对象对单元模块;集成测试,测试对象为组装后的程序模块;确认测试,测试对象为可运行的目标软件系统。

二、论述题(2*7分)

1、“软件就是程序,软件开发就是编写代码”,这种观点对不对,为什么?

答:

“软件就是程序,软件开发就是编写程序”这个观点是错误的。

软件是计算机系统中与硬件相互依存的另一部分,包括程序,数据及其相关文档的完整集合。

其中,程序是使程序能够正确的处理信息的数据结构;文档是与程序开发。

维护和使用有关的图文材料。

2、“从软件生命周期的角度来看,测试是编码的下一个阶段,因此测试工作应该在编码完成后才开始”,这种观点对不对,为什么?

答:

软件测试应贯穿于软件定义与开发的整个期间。

因此,需求分析,概要设计。

详细设计以及程序编码等各阶段所得到的文件资料,包括需求规格说明,概要设计说明,详细设计规格说明以及源程序,都应成为软件测试的对象。

软件测试不应局限在程序的狭小范围内。

事实上,到程序的测试为止,软件开发工作已经经历了许多环节,每个环节都可能发生问题。

为了把握各个环节的正确性,在每个过程都需要测试,而不仅仅是只在编码的下一个阶段进行测试。

3、“在软件开发过程中,因为模块分解可以简化要解决的问题,所以模块分解应该越小越好”,这种观点对不对,为什么?

答:

不对,在软件开发过程中,尽管模块分解可以简化要解决的问题,但模块分析并不是越小越好。

当模块数目增加时,每个模块的规模将减小,开发单个模块的成本确实减少了;但是,随着模块数目增加,模块之间关系的复杂程度也会增加,设计模块间接口所需要的工作量也将增加。

4、“在测试过程中,根据测试用例,若实际输出结果等于预期输出结果,则说明该程序一定没有错误”,这种观点对不对,为什么?

答:

观点是错误的。

通过收集和分析测试结果数据,开始对软件建立可靠的模型。

如果在测试过程中,根据测试用例,若实际输出结果等于预期输出结果。

也就是说测试发现不了错误,不能证明软件不存在问题。

可能是软件配置考虑的不够细致充分,错误仍然潜伏在软件中。

这些错误最终不得不由用户发现并在维护时改正。

5、“由于程序最终是交由计算机来执行,因此不需要注释”,这种观点对不对,为什么?

答:

正确的注释能够帮助读者理解程序,为测试和维护提供明确的指导,注释绝不是可有可无的。

大多数程序设计语言允许使用自然语言来写注释,一些正规的程序文本中注释行的数量占到整个源程序的1/3到1/2。

注释分为序言性注释和功能性注释,序言性注释通常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于程序本身具有指导作用。

有些软件开发部门对序言性注释作了明确而严格的规定,要求程序编制者逐项列出。

功能性注释嵌在源程序体中,用以描述其后的语句或程序段,也就是解释下面的语句会怎么样,而不要解释下面怎么做,因为程序怎么做与程序本身常常是重复的,而且对阅读者理解程序没什么帮助。

因此注释是必需的。

三、应用题(2*8分)

1、假设汽车的车牌号可由车主人在规定范围内自选,若其规定为:

(1)车牌上应有7个字符;

(2)为首的字符限定为汉字“京”;

(3)第2字符可任选一字母(A-Z);

(4)第3-7字符可选任意数字。

请为该处理程序根据等价类方法设计测试用例。

(参考245页的(3))

输入数据

有效等价类

无效等价类

字符个数

7个

(1)

0-6个

(2),>7个(3)

首字符

京(4)

非“京”(5)

第2个字符

字母(6)

非字母(7)

第3-7个字符

数字(8)

非数字(9)

测试用例如下:

1)京H87774

(1)(4)(6)(8)

2)京H8777

(2)

3)京H877745 (3)

4)冀H87774 (5)

5)京987774 (7)

6)京BA7774 (9)

2、根据白盒测试,给出这段代码的语句覆盖测试用例?

判定覆盖测试用例?

条件覆盖测试用例?

条件组合测试用例?

1)输入a,b,x;

2)If(a≥2andb==1)

x=x/a;

else

x=x+1;

3)If(a==4orx≥4)

x=x+2;

4)输出a,b,x.

(参考235页的例子),画出流程图,给路径、条件标号、设计测试用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1