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