最新电大本科软件工程期末复习题Word格式.docx
《最新电大本科软件工程期末复习题Word格式.docx》由会员分享,可在线阅读,更多相关《最新电大本科软件工程期末复习题Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
![最新电大本科软件工程期末复习题Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/9/61e479d6-c1a7-4a47-bc77-97289161f4cd/61e479d6-c1a7-4a47-bc77-97289161f4cd1.gif)
ε)比较。
(用例视图)用于描述系统的功能集。
29、
50、瀑布模型存在的问题是(缺乏灵活性)。
30、用(静态)模型建立系统组织结构。
51对象模型描述现实世界中实体的对象以及它们之间31、、(开发一个简单的问题解决方案)不是分析建模的目的。
的关系,表示目标系统的静态数据结构。
在面向对象方52、对用例进行设计,发现实现用例功能的(关键类),法中,由(类图)实现。
确定类之间的关系。
来实现的,如果对象之间的耦合是通过、(消息机制)3253则这种耦合就是交互耦合。
、框架是一组可用于不同应用的(类)的集合。
54、从狭义上讲,软件测试是(为发现错误而执行程序)、定义类的属性类型时尽量使用已有类型,太多自定33的过程。
义类型会降低系统的(可维护性)指标。
55、在设计黑盒测试用例时,、在设计测试用例时,应该包括(上面所有情况)测34主要研究(需求规格说明)。
56、试用例。
(白盒测试)时,测试人员必须接触到程序源代码。
57、一般维护程序代码的策略(边值分析和等价类划分)属于功能测试方法。
35、(根据维护申请读源程序,并修改)、一个软件项目大约()的工作量在开发阶段,。
()3658的工作量在维护阶段。
、Gantt图直观简明、易学易用,但它不能(直接反)30%,70%(应任务间的依赖关系和关键路径)。
。
、软件项目管理的内容不包括(技术和算法)3759、、通俗的说,软件项目管理中常说的基线是(通过正38(软件配置管理)针对开发过程中的程序、数据、文档提出使用和管理策略。
式复审的文档)
60)语言。
C、科学计算领域一般选择(39、程序的三种基本控制结构,包括顺序结构、(判断结构)和循环结构。
(层。
)3层次不要超过对于嵌套的循环和分支程序,406141、在分析模型内表示协调、顺序、事务处理以及控制、软件工程的研究内容具有层次化结构,最底层是质量保证层,中间层是(过程层和方法层),最上层是工其他对象的类是(控制类)。
具层。
、继承耦合是(一般化类与特殊化类)之间的一种关42
62联形式,设计时应该适当使用这种耦合。
美国著名软件工程专家B.W.Boehm于1983年提出了
软件工程的(7)条基本原理。
,这、构架设计的主要目的是(确定系统总体结构)43
63、下面哪个选项不是软件工程研究的内容(精通一门项工作由经验丰富的构架设计师主持完成。
1/14
编程语言)。
91、用(动态)模型描述和分析业务流程。
92、用(界面类)描述系统与角色之间的接口。
64可行性研究的主要任务是(进行一次简要的需求分93、对类进行详细设计,主要是设计类的(属性和方法),析)。
优化类之间的关系。
、用户需求描述的是(用户使用该软件要完成的任6594、面向对象设计强调定义(软件对象),并且使它们务)。
相互协作来满足用户需求。
66、数据流程图的主要作用是(描绘系统的逻辑模型)。
95、软件设计的目标是(在最短的时间内,生产出可靠67、软件测试的目标是设计优秀的测试用例,(以最小的代价、在最短的时间内尽可能多地发现软件中的错性、可维护性俱佳的软件方案。
)。
误)。
68、内容耦合是模块间最紧密的耦合,(非直接耦合)
96、(程序员应该仔细测试自己编写的程序代码)不符是模块间最松散的耦合。
合软件测试原则。
()。
/(动作的主体69、面向对象是“先”确定()“后”97、引起软件改变的原因主要有(D)执行动作)
。
A.运行环境变化
B.需求变化C.系统有错D.以上全部是一种(面向对象建模语言)语言。
70、UML
98、(软件配置管理)针对开发过程中的程序、数据、)的方法应用于软件的开发和D71、软件工程强调将(文档提出使用和管理策略。
D.B.规范化维护过程之中。
A.系统化C.可度量
99、现在人们更强调程序代码的(可维护性)。
以上全部100、程序的三种基本控制结构,包括顺序结构、(判断、软件开发活动的顺序应该是(问题定义、可行性研72结构)和循环结构。
究、需求分析、设计、编码和测试。
1.软件对硬件和环境有着不同程度的依赖性,这导致元,73假定银行的存款年利率是50002%,请问现在存了软件(升级和移植)问题。
两年后的价值应为(5202)元。
2.原型化方法是用户和设计者之间的一种交互手段,74、系统物理模型用(系统流程图)表示。
适用于(需求不确定性高的)系统。
、关于软件需求特性不正确的描述是“软件需求具有753.IEEE是(国际电气和电子工程师协会)的简称。
(准确性)”。
4.可行性研究的主要目的是(确定系统是否值得开发)。
,模块集成76、随着模块规模减小,模块开发成本()5.(功能需求)定义了软件开发人员必须实现的软件功增加)/成本()。
(减小能。
、反映模块独立性的指标是(内聚和耦合)77。
6.数据流程图中的处理不能表示(数据组成)。
,而过程实施78、面向过程的方法最关心的是(过程)7.随着模块规模的——,模块的开发成本——,但是的对象是作为过程参数传递的。
模块之间的接口变得复杂起来,使得模块的集成成本增80、用(用例)模型分析和定义用户的需求。
加。
(减小,减小)、动态模型描述系统的动态结构和对象之间的交互,818.详细设计与概要设计衔接的图形工具是(SC图)。
表示瞬时的、行为化的系统“控制”特性。
面向对象方9.面向过程的方法最关心的是,而过程实施的是)实现。
法中,常用(DA.C.活动图交互图状态图B.作为过程参数传递的。
(过程/对象)D.以上全部11.目前面向对象分析有许多方法,大多数方法可以归,从分析、面向对象分析和设计的界限是(模糊的)82结为建立(功能模型)、对象模型、动态模型。
到设计是一个逐渐扩充模型的过程。
12.构建类图是(对象模型)的任务。
,体现了子、每个子系统的接口定义了若干(操作)8313.首先用(配置图)描述系统的物理构架,然后将需求系统的功能,而功能的具体实现方法应该是隐藏的。
分析阶段捕获的系统元素分配到这些物理节点上。
、测试最早的开始时间是(从需求分析阶段开始)84。
14.类的属性结构要坚持简单的原则,尽可能不使用复、从测试对象的粒度上划分测试为(单元测试、集成85杂的(数据结构)。
测试、系统测试和验收测试)15.现在人们更强调程序的(可读性)。
,软件的规模86、维护的工作量与软件规模成(正比)16.程序的三种基本控制结构,包括顺序结构、(条件/可以由源程序的语句数量、模块数、输入输出文件数、判断结构)和循环结构。
数据库的规模,以及输出的报表数等指标来衡量。
17.一般性的软件其测试工作量大约占整个开发工作量70%年代,美国国防部的研究结果发现7087、上世纪的(40%)。
的项目是因为(管理不善引起)原因,造成项目失败。
18.下面哪些测试方法属于黑盒测试?
(等价类划分)所有程序设计语言的基本成分都可归纳为:
数据成8819.软件特性中,相互矛盾的是(效率与通用性)。
、控制成分和传输成分。
(运算成分)分、20.(软件配置管理)针对开发过程中的程序、数据、文10089一个函数的规模一般程序结构清晰且简单易懂,(档提出使用和管理策略。
左右)行。
90、不属于软件项目管理的是(软件销售利润)
2/14
二、简答题
1、试从软件的特点出发分析软件危机产生的原因。
(1)软件是一种逻辑实体,具有抽象性,无法看到软件本身的形态,必须通过观察、分析、思考和判断才能了解它的功能和性能。
(2)软件对硬件和环境有着不同程度的依赖性,这导致了软件升级和移植的问题。
计算机硬件和支撑环境不断升级,为了适应运行环境的变化,软件也需要不断维护,并且维护的成本通常比开发成本高许多。
(3)软件生产至今尚未摆脱手工方式,软件开发的手工行为造就了一个致命的问题,就是为应用“量身订做”软件。
长期以来,软件给人的感觉是修改几条指令很简单,客户总是强调软件要适应自己的业务需求。
因此,软件产品大多是为客户“订做”的,通用性差。
(4)软件涉及人类社会的各行各业,常常涉及一些行业知识,这对软件工程师提出了很高的要求。
(5)软件是与文学艺术作品相似的精神作品,与体力劳动相比,精神活动过程的特点是“不可见性”,这大大增加了组织管理上的困难。
2、面向对象的分析通常要建立三个模型,请问三个模型的作用?
1)功能模型:
表达系统的详细需求,为软件的进一步分析和设计打下基础。
在面向对象方法中,由用例图和场景描述组成。
2)对象模型:
表示静态的、结构化的系统“数据”性质。
描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。
3)动态模型:
描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。
3、一个程序片段如下,请设计符合条件组合覆盖的测试用例。
……
if(a>
=4)&
&
(b<
0){
c=a+b;
else
c=a-b;
if(c>
3)||(c<
1)
printf(“c不在计算区域\n”)
printf(“%d\n”,c);
a>
=4b<
0
=4b>
=0
a<
4b<
4b>
c>
3
c<
=3
1
=1
综合以上条件组合,设计测试用例如下(注意结果不唯一,只要满足上面的组合条件即可):
a=4b=-1c=3
a=4b=0c=4
a=-1b=-1c=0
a=-1b=0c=-1
4、软件工程为什么要强调规范化和文档化?
软件工程强调规范化和文档化。
规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。
文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。
另外,在开发过程中产生的各类文档使得3/14
软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。
在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。
5、读懂下面的程序,调整格式,使其更容易理解,并添加注释。
intmain()
{
inta[10];
for(inti=0;
i<
10;
i++)
scanf(“%d”,a[i]);
intmax=a[0],min=a[1];
for(intj=0;
j<
j++)
max=(max>
a[j]?
max:
a[j]);
min=(min<
min:
}
printf(max=%d,max);
printf(min=%d,min);
printf(\
);
return0;
//读入10个数据
scanf(%d,a[i]);
//max存放最大值,min存放最小值
intmax=a[0],min=a[0];
//从10个数中发现最大、最小值
//输出结果
6、软件需求可以分为业务需求、用户需求、功能需求和非功能需求,请分析业务需求与用户需求的区别?
业务需求是用户高层领导机构决定的,它确定软件的目标、规模和范围。
业务需求一般在进行需求分析之前就应该确定,需求分析阶段要以此为参照制定需求调研计划、确定用户核心需求和软件功能需求。
业务需求通常比较简洁,大约三~五页纸就可以描述清楚,也可以将它直接作为需求规格说明书中的一部分。
用户需求是用户使用该软件要完成的任务。
这部分需求应该充分调研具体的业务部门,详细了解最终用户的工作过程、所涉及的信息、当前系统的工作情况、与其他系统的接口等等。
用户需求是最重要的需求,也是出现问题最多的。
7、一个程序片段如下,请设计符合判定覆盖的测试用例。
=5)&
4/14
5)||(c<
参考答案:
条件:
=5b<
=5b≮0
1<
5
符合判定覆盖的测试用例(不唯一):
a=5,b=-1,c=4;
a=5,b=5,c=0;
8、请说明对象模型的作用是什么?
对象模型:
在面向对象方法中,类图是构建对象模型的核心工具。
9、请说明IPO图的作用,并给出一个IPO图的模板。
数据流程图中的处理本应该放在数据字典中进行定义,但是由于处理与数据是有一定区别的两类事物,它们各自有独立的描述格式,因此在实际项目中通常将处理说明用IPO图标描述。
下面是项目中常用的处理说明模板:
系统名称:
作者:
处理编号:
日期:
输入参数说明:
输出参数说明:
处理说明:
备注:
局部数据元素:
10、什么是耦合?
什么是内聚?
在软件设计中应该保持模块的独立性原则。
反映模块独立性的有两个标准:
内聚和耦合。
内聚衡量一个模块内部各个元素彼此结合的紧密程度;
耦合衡量模块之间彼此依赖的程度。
软件设计时追求高内聚、低耦合。
11、请画图说明软件工程的层次化结构,并详细分析中间两层的内容。
软件工程的内容具有层次化结构,最底层是质量保证层,中间是过程层和方法层,最上层是工具层。
见图:
工具层方法层过程层质量保证层
其中过程层定义了一组关键过程域,目的是保证软件开发过程的规范性和可控性。
方法层提供了软件开发的各种方法,包括如何进行软件需求分析和设计,如何实现设计,如何测试和维护等方法。
12、请为下面的程序设计符合判定覆盖的测试用例。
5/14
inta,b,c,x,y,z;
scanf(“d%,d%,d%),&
a,&
b,&
c);
ifa>
5x=10elsex=1;
ifb>
10y=20elsey=2;
ifc>
15z=30elsez=3;
printf(“d%,d%,d%\n”,x,y,z)
=5
b>
10
b<
=10
15
=15
判定测试用例(不唯一):
a=6b=11c=16;
a=5b=10c=15
13、请说明快速原型化模型的基本思想。
在需求分析的同时,以比较小的代价快速建立一个能够反映用户主要需求的原型系统。
用户在原型系统上可以进行基本操作,并且提出改进意见,分析人员根据用户的意见完善原型,然后再由用户评价,提出建议,如此往复,直到开发的原型系统满足了用户的需求为止。
基于快速原型化模型的开发过程基本上是线性的,从创建系统原型到系统运行,期间没有反馈环。
这是由于开发人员是在原型的基础上进行系统分析和设计,而原型已经通过了用户和开发组的审查,在设计阶段由于有原型作设计参考,所以设计的结果正确率比较高。
14、下面的程序段A被程序员误写成程序段B,请设计合适的测试用例发现其中的错误。
程序段A程序段B
…………
{{
T=0;
T=0;
if(A>
=1)&
(B>
=2)T=T+1;
if(A>
elseT=T+2;
elseT=T+2;
if(X>
=90)&
(Y>
=75)T=T+3;
if(X>
=90)&
(Y<
75)T=T+3;
elseT=T+4;
elseT=T+4;
}}
printf(“d%\n”,T);
printf(“d%\n”,T);
条件组合:
A>
=1B>
=2;
2
A<
1B>
=2
1B<
X>
=90Y>
=75
=90Y<
75
X<
90Y>
90Y<
由此获得测试用例:
A=1B=2;
A=1B=1;
A=0B=2;
A=0B=1;
X=90Y=75;
X=90Y=1;
X=1Y=75;
X=1Y=1;
其中X=90
Y=75能够发现错误。
15、请举例说明用例之间的包含关系和扩展关系的区别?
包含关系用于构造多个用例共同的活动。
例如,在ATM系统中,取钱、查询、更改密码等功能都需要验证用户密码。
这种情况下应该将密码验证功能独立出来,便于复用、减少冗余。
一个用例扩展另一个用例的功能,例如,在图书馆信息管理系统中,读者还书时,系统检查所还图书是否有预订记录,如果有则执行“通知”用例。
6/14
16、软件设计中的抽象是什么意思?
所谓抽象就是将事务的相似方面集中和概括起来,暂时忽略它们之间的差异。
或者说,抽象就是抽出事务的本质特性而暂时不考虑它们的细节
17、孩子阅读疲倦时,一定要休息。
如果不疲倦,但是对所阅读的内容不感兴趣,就跳到下一章;
如果不疲倦,对内容有兴趣,理解无困难,则继续阅读;
如果不疲倦,对内容有兴趣,但理解有困难,则应该重读。
请对上面的描述设计判定表。
疲YYYYNNNN
YYNNY感兴YNN
YNY糊涂NYNYN
重读√
√继续
跳到一下章√√
√√√休息√
化简为:
NNYN疲倦N感兴趣YY
糊涂YN
继续√
跳到一下章√√休息
18、活动图与状态图的区别?
(1)描述的重点不同:
活动图描述的是从活动到活动的控制流;
状态图描述的是对象的状态及状态之间的转移。
(2)使用的场合不同:
在分析用例、理解涉及多个用例的工作流、处理多线程应用等情况下,一般使用活动图;
在显示一个对象在其生命周期内的行为时,一般使用状态图。
19、试分析结构化方法存在的主要问题是什么?
(1)结构化方法分析和设计阶段所应用的模型之间存在鸿沟。
分析阶段的主要模型是数据流程图,设计阶段的主要模型是软件模块结构图,数据流程图和软件模块结构图之间需要进行转换。
不同的人转换出的模块图可能不同,有很大的随意性。
(2)需求分析的细化程度没有标准,只能凭借分析人员的经验自己把握;
需求分析的过程是在一种瀑布形式,当需求变更时,功能变化就会导致软件模块结构发生变化,造成了软件结构不稳定。
(3)结构化程序设计将数据定义与处理数据的过程相分离,不利于软件复用。
(4)结构化方法设计的软件结构不稳定,缺乏灵活性,可维护性差。
20、请说明判定表的作用及其结构。
判定表是结构花设计的工具,用于描述多重条件的处理。
分为4各部分:
条件列表、条件组合、操作列表、特定条件下的操作组合。
21、请给出软件工程七条基本原理中的任意三条基本原理。
原理1.用分阶段的生命周期计划严格管理
原理2.坚持进行阶段评审
原理3.实行严格的产品控制
原理4.采用现代程序设计技术
原理5.结果应能清楚地审查
原理6.开发小组的人员应该少而精
原理7.承认不断改进软件工程实践的必要性
7/14
22、结构化程序设计的特征是什么?
结构化程序设计的特征如下:
程序模块只有一个入口和一个出口、程序中只包含顺序、条件和循环三种控制结构。
23、软件需求可以分为业务需求、用户需求、功能需求和非功能需求,请分析业务需求与功能需求的区别?
功能需求定义了软件开发人员必须实现的软件功能。
用户从他们完成任务的角度对软件提出了用户需求,这些需求通常是凌乱的、非系统化的、有冗余的,开发人员不能据此编写程序。
软件分析人员要充分理解用户需求,将用户需求整理成软件功能需求。
开发人员根据功能需求进行软件设计和编码。
24、对