软件工程复习资料DYH.docx
- 文档编号:30384698
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:19
- 大小:28.21KB
软件工程复习资料DYH.docx
《软件工程复习资料DYH.docx》由会员分享,可在线阅读,更多相关《软件工程复习资料DYH.docx(19页珍藏版)》请在冰豆网上搜索。
软件工程复习资料DYH
软件工程复习资料
一、选择题
3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是()。
A喷泉模型B增量模型C瀑布模型D螺旋模型
7.()阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
A概要设计B详细设计C编码D测试
14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为()。
A可理解性B可维护性C可适应性D可重用性
29.软件项目管理必须()介入。
A)从项目的开头B)在可行性研究之后C)在需求分析之后D)在编码之后
30.下列选项中,属于成本管理的主要任务的是()。
A)人员的分工B)估算软件项目的成本
C)对控制软件质量要素D)对软件阶段产品进行评审
40.基于代码行的面向规模的度量方法适合于()。
A)过程式程序设计语言和事前度量B)第四代语言和事前度量
C)第四代语言和事后度量D)过程式程序设计语言和事后度量
51.在软件质量要素的评价准则中,在各种异常情况下软件能继续提供操作的能力指的是()。
A)容错性B)检测性C)安全性D)可操作性
49.在软件质量要素的评价准则中,程序易于理解的程度指的是()。
A)简单性B)准确性C)简明性D)执行效率
61.需求分析最终结果是产生()
A.项目开发计划B.可行性分析报告C.需求规格说明书D.设计说明书
62.需求分析中,开发人员要从用户那里解决的最重要的问题是()
A.让软件做什么B.要给软件提供哪些信息
C.要求软件工作效率怎样D.让软件具有何种结构
63.DFD中的每个加工至少有()
A.一个输入流或一个输出流B.一个输入流和一个输出流
C.一个输入流D.一个输出流
64.数据字典总,一般不出现的条目是()
A数据流B数据存储C.加工D.源点与终点
65.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的()A.细节B.输入与输出C.软件的作用D.绘制的时间
66.需求规格说明书的内容不应包括对()的描述。
A.主要功能B.算法的详细过程C.用户界面和运行环境D.软件性能
76.需求规格说明书的作用不应包括()
A.软件设计的依据B.用户与开发人员对软件要做什么的共同理解C.软件验收的依据D.软件可行性研究的依据
79.系统流程图用于可行性分析中的_____的描述。
A.当前运行系统B.当前逻辑模型C.目标系统D.新系统
80.系统流程图是描述_____的工具。
A.逻辑系统B.程序系统C.体系结构D.物理系统
82.程序的三种基本控制结构是
A.过程、子程序和分程序B.顺序、选择和重复
C.递归、堆栈和队列D.调用、返回和转移
83.程序的三种基本控制结构的共同特点是
A.不能嵌套使用B.只能用来写简单程序
C.已经用硬件实现D.只有一个入口和一个出口答案:
D
89模块内聚度越高,说明模块内各成分彼此结合的程度越( )。
A、松散 B、紧密 C、无法判断 D、相等
92、在七种偶合中,最低偶合是()。
A、内容偶合B、公共偶合C、数据偶合D、非直接偶合
8.在结构化分析方法中,用以表达系统内数据的运动情况的工具有()
A.数据流图B.数据词典C.结构化英语D.判定树与判定表
99.在结构化分析方法中,用以表达系统内数据的运动情况的工具有()
A.数据流图B.数据词典C.结构化英语D.判定树与判定表(题库中一个A一个BXXA)
175.Jackson方法以()为中心。
A.控制B.数据结构C.活动事件D.数据流答案:
B
176.Jackson方法是面向()的设计方法。
A.数据结构B.数据流C.控制D.对象答案:
A
177.软件测试的目的是()。
A)试验性运行软件B)发现软件错误C)证明软件正确D)找出软件中全部错误
178.软件测试中白盒法是通过分析程序的()来设计测试用例的。
A)应用范围B)内部逻辑C)功能D)输入数据
179.黑盒法是根据程序的()来设计测试用例的。
A)应用范围B)内部逻辑C)功能D)输入数据
180.为了提高软件测试的效率,应该()。
A)随机地选取测试数据B)取一切可能的输入数据作为测试数据
C)在完成编码以后制定软件的测试计划D)选择发现错误可能性最大的数据作为测试用例
181.与设计测试用例无关的文档是()。
A)项目开发计划B)需求规格说明书C)设计说明书D)源程序
182.测试的关键问题是()。
A)如何组织软件评审B)如何选择测试用例
C)如何验证程序的正确性D)如何采用综合策略
183.软件测试用例主要由输入数据和()两部分组成。
A)测试计划B)测试规则C)预期输出结果D)以往测试记录分析
184.成功的测试是指运行测试用例后()。
A)未发现程序错误B)发现了程序错误C)证明程序正确性D)改正了程序错误
185.下列几种逻辑覆盖标准中,查错能力最强的是()。
A)语句覆盖B)判定覆盖C)条件覆盖D)条件组合覆盖
186.在黑盒测试中,着重检查输入条件组合的方法是()。
A)等价类划分法B)边界值分析法C)错误推测法D)因果图法
187.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是()。
A)系统功能B)局部数据结构C)重要的执行路径D)错误处理
188.软件测试过程中的集成测试主要是为了发现()阶段的错误。
A)需求分析B)概要设计C)详细设计D)编码
189.不属于白盒测试的技术是()。
A)路径覆盖B)判定覆盖C)循环覆盖D)边界值分析
190.集成测试时,能较早发现高层模块接口错误的测试方法为()。
A)自顶向下渐增式测试B)自底向上渐增式测试C)非渐增式测试D)系统测试
二.填空题
1.计算机软件是指与计算机系统操作有关的以及任何与之有关的文档资料。
答案:
程序、数据
2.是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。
答案:
瀑布模型
3.是软件生存周期中时间最长的阶段。
答案:
维护阶段
4.是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。
答案:
喷泉模型
5.软件生存周期是指一个软件从开始直到该软件最终退役为止的整个时期。
答案:
定义
6.在软件的生产过程中,总是有大量各种信息要记录,因此,在产品的开发过程中起着重要的作用。
答案:
文档
7.在软件生存周期中,软件定义过程的基本任务是确定软件系统的。
答案:
工程需求
8.在软件生存周期中,软件定义过程可以通过软件系统的两个阶段来完成。
答案:
可行性研究和需求分析
9.在软件生存周期中,软件开发过程可以通过、实现、组装测试、验收测试共5个阶段组成。
答案:
概要设计、详细设计
10.我们把支持软件项目的的软件叫做软件开发的工具软件。
答案:
开发、管理、维护活动
11.软件工程由三部分组成,称为软件工程的三要素。
答案:
方法、过程和工具
1.软件项目管理的对象主要包括。
答案:
产品、过程和资源等
114.模块化指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。
115.衡量软件的独立性有两个定性的度量标准,即耦合性和内聚性。
116.模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
120.面向数据流的设计又称结构化设计,它是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构。
121.数据流图一般可分为变换型和事务型两类。
126.详细描述处理过程常用3种工具:
图形、表格和语言。
三、名词解释
1.计算机软件答:
计算机软件是指与计算机系统操作有关的程序、数据以及任何与之有关的文档资料。
2.软件危机
答:
软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
3.软件工程答:
软件工程是指用工程、科学和数学的原则与方法开发、维护计算机软件的有关技术和管理方法
4.软件工程过程答:
软件工程过程指在定义、开发、使用和维护软件时,要实施的过程、活动和任务。
5.软件生存周期答:
软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为软件生存周期。
6.软件生存周期模型答:
软件开发模型(又称为软件生存周期模型)是指软件项目开发和维护的总体过程思路的框架。
7.计算机辅助软件工程答:
在软件工程活动中,人们按照软件工程的原则和方法,利用计算机及其集成的软件开发环境,辅助软件项目的开发、维护及管理的过程,称为计算机辅助软件工程(即CASE)
15需求分析解开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
16.判定表解:
又称判断表,是一种图形工具,适合于描述加工判断的条件较多,各条件又相互组合的逻辑功能,它共分四大部分:
条件、状态、决策方案和决策规则。
17.结构化分析方法解:
结构化的含义是用一组规范的步骤、准则和工具来进行某项工作。
结构化方法是把整个系统开发过程分为若干阶段,每个阶段进行若干活动,每项活动应用一系列标准、规范、方法和技术,完成一个或多个任务,形成符合规范的产品。
18.数据流图解:
简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具.是一种功能模型.
19.数据字典解:
字据字典:
简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述.
20.JSP方法解:
是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入,输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。
25.信息隐蔽解:
信息隐蔽指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的。
26.模块独立性解:
模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
27.耦合性解:
耦合性也称块间关系,指软件系统结构中各模块间相互联系紧密程度的一种度量。
31.控制耦合解:
控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调用模块通过该控制变量的值有选择地执行块内某一功能。
32.公共耦合解:
公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合。
公共数据环境可以是全程变量或数据结构、共享的通信区、内存的公共覆盖区及任何存储介质上的文件、物理设备等。
33.内容耦合解:
内容耦合指一个模块直接调用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。
34.内聚性解:
内聚性又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
35.偶然内聚解:
偶然内聚指一个模块内的各处理元素之间没有任何联系。
36.逻辑内聚解:
逻辑内聚指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
37.时间内聚解:
时间内聚指需要同时执行的动作组合在一起形成的模块
40.功能内聚解:
功能内聚指模块内所有元素共同完成一个功能,缺一不可。
因此模块不能再分割。
41.软件结构图解:
软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现。
42.结构化设计解:
结构化设计又称面向数据流的设计,它是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构。
43.变换流解:
变换流指数据流图(简称DFD)具有明显的输入、变换和输出界面。
44.事务流解:
事务流指数据流图中输入流被分离成许多数据流,形成许多加工路径,并根据输入值选择其中一条路径来执行。
45.详细设计解:
详细设计主要确定每个模块的具体执行过程,也称过程设计。
47.流程图解:
流程图又称程序框图,是一种描述程序逻辑结构的工具。
48.盒图解:
盒图(简称N-S图)。
它是一种算法描述工具,它是一种由外往里、结构化逐层展开的二维盒型结构。
盒图的控制流程为自上而下,从外到里地执行
四、简答题
1.软件产品的特点是什么
答:
①软件开发与硬件研制相比,更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。
②大型软件仍然存在着潜伏的错误。
③软件产品开发成功后,只需对原版软件进行复制,即可生产出任意多的同样的产品。
④还有,软件在使用过程中的维护工作比硬件要复杂得多。
⑤由于软件不是物理产品,所以它不会磨损和老化。
2.软件危机的表现有哪些?
答:
1)对软件开发成本和进度的估计常常很不准确。
2)用户对已完成的软件不满意的现象时有发生。
3)软件产品的质量往往是靠不住的。
4)软件常常是不可维护的。
5)软件通常没有适当的文档资料。
6)软件成本在计算机系统总成本中所占比例逐年上升。
7)软件开发生产率提高的速度远跟不上日益增长的软件需求。
3.产生软件危机的原因主要有哪些?
答:
1)用户对软件需求的描述不精确。
2)软件开发人员对用户需求的理解有偏差。
3)缺乏处理大型软件项目的经验。
4)开发大型软件易产生疏漏和错误。
5)缺乏有力的方法学的指导和有效的开发工具的支持。
6)面对日益增长的软件需求,人们显得力不从心。
4.软件工程的7条基本原理是什么?
答:
1)用分阶段的生存周期计划严格管理2)坚持进行阶段评审3)实行严格的产品控制4)采用现代程序设计技术5)结果应能清楚地审查6)开发小组的人员应少而精7)承认不断改进软件工程实践的必要性
7.常见的软件开发模型有哪些?
答:
有瀑布模型、原型模型、螺旋模型、喷泉模型、变换模型、基于四代技术的模型、基于知识的智能模型等。
15.软件项目管理的主要任务是什么?
答:
软件项目管理的主要任务是根据选定的软件开发过程框架(即软件开发模型)和对其估算的结果制定软件项目实施计划;再根据计划对人员进行组织、分工;按照计划的进度,以及成本管理、风险管理、质量管理的要求,控制并管理软件开发和维护的活动,最终以最小的代价完成软件项目规定的全部任务。
27.风险评价过程可分为哪四步?
答:
风险评价过程可分四步进行:
1)定义项目的风险参照水准;2)定义每种风险的三元组[ri,pi,xi],并找出和每个参照水准之间的关系;3)预测一组参照点以定义一个项目终止区域,用一条曲线或一些易变动区域来定界;4)预测各种风险组合的影响是否超出参照水准
7.简述数据库工程完成的主要任务有哪些?
答:
数据库工程完成的主要任务有:
1)调查用户对信息和信息处理的需求,进行可行性论证、成本估算,制定项目计划。
2)选择支持数据库系统的硬件和软件。
3)数据库设计与实现。
4)数据的收集与存储。
5)运行、管理与维护。
49.简述可行性研究的步骤。
答:
典型的可行性研究的主要步骤如下:
1)复审初步分析结果;2)研究现有的系统;3)导出新系统的高层逻辑模型;4)导出新系统的高层物理解法;5)推荐建议的方案;6)评审、复审和决策
53.系统建模和模拟的主要步骤有哪些?
答:
系统建模和模拟的主要步骤如下:
1)分析问题,确定模拟的目标。
2)建立模型。
3)借助模型对现实系统进行模拟,并评价模拟结果。
4)如果模拟结果不正确,则修改模型,然后在3)和4)间进行迭代,直至得到满意的结果为止。
5)撰写模拟文档。
57需求分析阶段的基本任务是什么?
答:
需求分析阶段的基本任务是:
(1.问题识别:
双方对问题的综合需求:
a.功能需求b.性能需求c.环境需求d.用户界面需求.(2.分析与综合,导出软件的逻辑模型.(3.编写文档
83.软件设计的基本原理包括哪些内容?
答:
软件设计的基本原理包括:
①模块化:
指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。
每个模块完成一个特定的子功能,所有模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。
模块化是软件解决复杂问题所具备的手段。
②抽象:
是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其他因素。
软件工程中每一步都是对软件解决方法的抽象层次的一次细化。
③信息隐蔽:
指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的。
通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。
④模块独立性。
指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
衡量模块独立性有两个标准耦合性和内聚性,可判断设计方案的优劣。
85.什么是软件结构?
简述软件结构设计优化准则。
答:
软件结构设计优化准则如下:
①划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性,以此优化初始的软件结构。
②一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。
③软件结构的深度、宽度、扇入、扇出应适当。
④模块的大小要适中。
⑤模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。
86.什么是软件详细设计?
该阶段的基本任务是什么?
答:
详细设计是模块设计的第二阶段,主要确定每个模块的具体执行过程,也称过程设计。
其基本任务有:
①为每个模块进行详细的算法设计。
用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
②为模块内的数据结构进行设计。
③对数据库进行物理设计,即确定数据库的物理结构。
④其他设计。
根据软件系统类型,还可能要进行代码设计、输入/输出格式设计、人机对话设计。
⑤编写详细设计说明书。
⑥评审:
评审处理过程的算法和数据库的物理结构。
1.软件测试的目的是什么?
为什么把软件测试的目的定义为只是发现错误?
答:
软件测试的目的有:
①软件测试是为了发现错误而执行程序的过程。
②一个好的测试用例能够发现至今尚未发现的错误。
③一个成功的测试是发现了至今尚未发现的错误。
软件测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错误,另一个是发现错误。
由于软件开发是人的创造性劳动,人的活动不可能完美无缺,错误可能发生在任何一个阶段,因此预防错误这一目标几乎是不可实现的,所以软件测试的目标定义为只是发现错误。
92.软件测试应当遵循什么原则?
为什么要遵循这些原则?
答:
软件测试应当遵循原则如下:
①用例由输入数据和预期的输出数据两部分组成,因为这样便于对照检查,做到有的放矢。
②用例不仅选用合理的输入数据,还要选择不合理的输入数据。
因为当以特殊方式使用程序时,会突然发现程序中有许多错误,故使用预期的不合理的输入数据进行程序测试,比用合理的输入数据收获要大,从而能更多地发现错误,提高程序可靠性。
③除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事,因为如果程序做了它不应该做的事,即使程序能做它应该做的事,程序也是错误的。
④应制定测试计划并严格执行,因为这样可以排除随意性。
⑤长期保留测试用例,因为测试用例的设计耗费很大的工作量,而修改后的程序可能有新的错误,需要进行回归测试,故必须将测试用例作为文档保存,使测试具有可重复性,同时测试用例是将来系统维护测试与确认的依据,保存测试用例也为以后的维护提供方便。
⑥对发现错误较多的程序段,应进行更深入的测试,因为发现错误较多的程序段,其质量较差,同时在修改错误过程中又容易引入新的错误。
⑦程序员避免测试自己设计的程序,因为测试目的是找错。
从心理学角度讲,程序员大多对自己的程序存有偏见,总认为没有错误或错误不大,另外程序员对需求规格说明的理解而引入的错误则更难发现,应该由别人或另外的机构来测试会更客观、更有效。
96.需求分析的步骤
需求分析阶段的工作,可以分为四个方面:
问题识别、分析与综合、制订规格说明、评审。
就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准。
。
逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。
。
即编制文档,描述需求的文档称为软件需求规格说明书。
请注意,需求分析阶段的成果是需求规格说明书,向下一阶段提交。
。
对功能的正确性,完整性和清晰性,以及其它需求给予评价。
五、设计题
1..美国某大学有200名教师,校方与教师工会刚刚签订一项协议。
按照协议,所有年工资超过$26000(含$26000)的教师工资将保持不变,年工资少于$26000的教师将增加工资,所增加工资数额按下述方法计算:
给每位教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助¥50,但是,增加后的年工资总额不能多于$26000。
教师工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息。
需要写一个程序计算并印出每名教师的原工资和调整后的新工资。
2.某学校网上选课系统需求描述如下:
管理员从系统管理界面进入系统,通过添加、修改、删除等操作建立本学期所开设的各种课程信息,并将其保存在数据库中。
课程信息包括课程编号、课程名称、课程性质、任课教师、开课时间、教师、允许选课的人数等。
学生从客户机浏览器通过学号和密码进入选课界面,可进行查询可选课程,查询已选课程,选课等操作。
学生的学科结果也存入数据库。
(1)画出系统的用例图。
(2)试为管理员添加课程操作,画出活动图。
31银行计算机储蓄系统的工作过程大致如下:
储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
请用数据流图描绘本系统的功能
1.软件产品的特点是什么
答:
①软件开发与硬件研制相比,更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。
②大型软件仍然存在着潜伏的错误。
③软件产品开发成功后,只需对原版软件进行复制,即可生产出任意多的同样的产品。
④还有,软件在使用过程中的维护工作比硬件要复杂得多。
⑤由于软件不是物理产品,所以它不会磨损和老化。
2.软件危机的表现有哪些?
答:
1)对软件开发成本和进度的估计常常很不准确.2)用户对已完成的软件不满意的现象时有发生。
3)软件产品的质量往往是靠不住的。
4)软件常常是不可维护的。
5)软件通常没有适当的文档资料。
6)软件成本在计算机系统总成本中所占比例逐年上升。
7)软件开发生产率提高的速度远跟不上日益增长的软件需求。
3.产生软件危机的原因主要有哪些?
答:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习资料 DYH
![提示](https://static.bdocx.com/images/bang_tan.gif)