软件工程复习资料按题型.docx
《软件工程复习资料按题型.docx》由会员分享,可在线阅读,更多相关《软件工程复习资料按题型.docx(35页珍藏版)》请在冰点文库上搜索。
![软件工程复习资料按题型.docx](https://file1.bingdoc.com/fileroot1/2023-6/4/7f219111-b7d7-4fed-9376-63ae89b18934/7f219111-b7d7-4fed-9376-63ae89b189341.gif)
软件工程复习资料按题型
名词解释:
1. 数据词典——是描述数据信息的集合,它对数据流图中的各个元素按规定格式进行详细的描述和确切的解释,是数据流图的补充工具。
2. 数据流图——他以图形的方式反映系统的数据流程
3. 白盒测试——按照程序内部的结构测试程序,检验程序中的每条路径是否都能按预定要求正确工作。
有两种测试法既逻辑覆盖测试法和路径测试法
4. 黑盒测试——按照程序的功能测试程序,检验与程序功能有关的输入、输出与程序执行是否正确。
有四种方法既等价分类法、边界值分析法、错误猜测法和因果图法
5. 完善性维护——为了适应用户业务和机构的发展变化而对软件的功能、性能进行修改、扩充的过程称为完善性维护。
因为各种用户的业务和机构在相当长的时期内不可能是一成不变的,所以功能、性能的增加是不可避免的,而且这种维护活动在整个维护工作中所占的比重很大
6.软件可靠性——指在给定的时间内,程序按照规定的条件成功地运行的概率
7.软件配置——是一个软件在生存周期内,他的各种形式、各种版本的文档与程序的总称
8. 软件再工程——运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合、并重新构建软件,用于提高软件的可理解性、可维护性可复用性或演化性。
9. α测试——是在一个受控的环境下,由用户在开发者的“指导”下进行的的测试,由开发者负责记录错误和使用中出现的问题。
10.β测试——是由软件的最终用户(多个)在一个或多个用户场所来进行。
由用户负责记下遇到的所有问题,包括主观认定的和真实的问题,定期向开发者报告,开发者在综合用户的报告之后进行修改,最后将软件产品交付给全体用户使用。
11.聚集关系——表示类或对象之间的整体与部分的关系
12.泛化关系——表示类或对象之间的一般与特殊的关系
13.内聚——一个模块内部各个元素彼此结合的紧密程度的度量。
14.耦合——一一个软件结构内不同模块之间互连程度的度量。
15、软件重用——也叫软件再用或复用,是指同一事物不做修改或稍加改动就能多次在软件中重复使用。
判断题:
1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
(对)
2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
(错)
3.JAVA语言编译器是一个CASE工具。
(对)。
4.软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。
(错)
5.软件模块之间的耦合性越弱越好。
(对)
6.数据库设计说明书是一个软件配置项(对)
7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。
(错)
8.过程描述语言可以用于描述软件的系统结构。
(错)
9.如果通过软件测试没有发现错误,则说明软件是正确的。
(错)
10.快速原型模型可以有效地适应用户需求的动态变化。
(对)
11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(对)
12.集成测试主要由用户来完成。
(错)
13.确认测试计划应该在可行性研究阶段制定(错)
14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。
(错)
15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
(对)
16.在可行性研究中最难决断和最关键的问题是经济可行性。
(错 )
17.耦合是指一个模块内各个元素彼此结合的紧密程度。
(错 )
18.一笔交易、一个动作、甚至操作人员按一个按钮都可以看作是一次事物。
( 对 )
19.概要设计阶段完成的主要文档是概要设计说明书。
(对 )
20.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。
(错)
21.程序设计语言中应绝对禁止使用GOTO语句。
( 错 )
22.类是关于对象性质的描述,由方法和数据组成。
(对 )
23.随着软件技术的发展,人们逐渐认识到编码不仅要强调效率还要强调清晰。
( 对 )
25.为保证程序的安全,必须做到程序中没有任何错误存在,即容错。
(错 )
26.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。
(对)
27软件开发小组人员越多越好。
(X)
28.在程序运行之前没法评估其质量。
(X)
29需求是变化的,因为软件是灵活的,总可以满足需求。
(X)
30有了对目标一般描述,就可以编程序,以后再详细描述。
(X)
31模块越小,模块的优点越大。
(X)
32、在软件开发过程中,工作量最大的一个阶段就是编码程序。
(X)(注:
是测试阶段)
33、开发初始原型的目的是为了确定用户的基本需求。
(X)
(注:
只有确定了用户的基本需求之后才开发初始原型,初始原型表达了用户的基本需求)
34、尽可能推迟程序的逻辑实现是按照瀑布模型开发软件的一条重要的指导思想(X)(注:
逻辑实现)
35、一般说来,模块的内聚程度越高,它们之间的耦合程度也越高。
(X)
36、软件测试只能证明程序有错误,不呢个证明程序没有错误。
(对)
37、独立编译的机制对于大型软件的编码工作极为重要。
(对)
38、结构化程序设计方法能改善程序结构,提高程序的运行效率。
(X)(注:
运行效率反而降低了)
39、如果测试数据满足条件覆盖,则必然满足判定覆盖。
(X)
40、信息隐藏原则禁止在模块外使用在接口说明的关于高模块的信息。
(X)
(注:
信息隐藏原则应该隐蔽的不是有关模块的一切信息,而是模块的实现细节)
41、每个类都是其相应对象的一个实例。
(X)(注:
每个对象都是其相应类的一个实例)
42、在一个设计得很好的系统中,模块的控制域是模块的作用域子集。
(X)
(注:
在一个设计得很好的系统中,模块的作用域是模块的控制域子集。
)
43、编译程序可以发现源程序的一切错误,因此是程序正确性证明的实用工具。
(X)
44、在程序调试时,改正该错误比找出错误的位置和性质更难。
(X)
(注:
在程序调试时,找出错误的位置和性质比改正该错误更难。
)
!
!
!
填空题:
1.在信息处理和计算机领域内,一般认为软件是、和。
2.数据流图的基本组成部分有___、___、___、___。
3. 数据流图和数据字典共同构成了系统的__模型,是需求规格说明书的主要组成部分。
4. 划分模块时尽量做到____,保持模块的独立性,尽量使用公共模块。
5. 类的实例化是。
6. 人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可
靠性的两个指标是__和_。
8. 将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,
将得到软件的总开发量。
这种成本估算方法称为___。
10. 如果一个模块被n个模块调用,其中直接的上级模块的个数是m个(m<=n)那么该模块的扇入数是个。
11. 结构化设计以______为基础,按一定的步骤映射成软件结构。
15. 面向对象分析的目的是对客观世界的系统进行_______。
16. 软件维护工作的生产性活动包括分析评价、修改设计和_等。
17. 为了使应用软件适应计算机环境的变化而_______的过程称为适应性维护。
18. 一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是________。
19.投资回收期就是使累计的经济效益等于__所需的时间。
20. 软件生存周期是指一个软件从提出开发要求开始直到_____为止的整个时期。
21.曾被誉为“程序设计方法的革命”的程序设计,使程序设计从主要依赖于程序员个人的自由活动
成为有章可循的一门科学。
22.、从结构化程序设计到 ,是程序设计方法的又一次飞跃。
23、. 在单元测试时,需要为被测模块设计。
24、.软件测试是为了___而执行程序的过程。
25、.运行被测程序的方法称为_测试。
26、.动态测试中,主要测试软件功能的方法称为法。
27、.选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准为。
28.、要覆盖含有循环结构的所有路径是不可能的,一般通过限制来测试。
29、.用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,则可确定一个合理的等价类和。
30、.凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是。
31、集成测试中的具体方法是。
32、.确认测试阶段的两项工作是。
33、.在单元测试中,测试一个模块时,需要设计。
34、信息流的类型只要包括和。
35、与程序流程图相比,盒图没有,因此不允许随意转移控制。
36、适用于表示多重嵌套的条件选择。
37、动态模型中将消息从一个对象发送到另一个对象。
38、软件工程中的结构化分析SA是一种面向的分析方法。
39件模块独立性的两个定性度量标准是、。
40、软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个。
41、和数据字典共同构成了系统的逻辑模型。
42、作为计算机科学技术领域的一门新兴学科,“软件工程”主要是为了解决问题。
43、软件设计方法中的Jackson方法是一种面向的设计方法。
44、在软件测试中黑盒测试的主要任务是通过测试来检查程序的。
45、螺旋模型的主要优势在于,它是驱动的。
======================================================================
!
!
!
填空题答案:
1、程序、文档、数据2、数据的源点与终点、数据流、加工、数据文件3、逻辑
4、高内聚、低耦合5、对象6、成功地运行的概率平均故障时间8、_自底向上
10、n11、数据流图15、建模16、编写程序代码
17、修改软件18、顺序内聚19、最初的投资费用20、_软件废弃
21、结构化22、面向对象程序设计23、测试用例24、发现错误
25、动态测试26、.黑盒法27、判定覆盖28、循环次数
29、两个不合理等价类30、错误推测法31、渐增式和非渐增式测试方法
32、进行确认测试和软件配置审查33、驱动模块和桩模块34、交换流事务流
35、箭头36、判定表37、事件38、数据流
39、内聚性、耦合性40、由下而上41、数据流图42、软件危机
43、数据结构44、功能45、风险
======================================================================
老师课堂讲的有如下
一填空题:
1、同一软件的大量软件产品的生产主要是通过而得到。
2、软件工程是计算机科学中的一个分支,其主要思想是在软件生产中用的方法代替传统手工方法。
3、结构化方法由结构化分析、结构化设计和构成。
4、是将软件生存周期各个活动规定为依线性顺序连接的若干阶段模型。
5、软件是一种逻辑产品,它以程序和文档的形式出现,通过才能体现它的功能和作用。
6、软件工程研究的主要内容是软件开发技术和两个方面。
7、软件生存周期是指一个软件从开始直到软件报废而止的整个时期。
8、是一种非整体开发的模型软件在该模型中“逐渐”开发出来的。
9、是软件生存周期中时间最长的阶段。
======================================================================
一、填空题答案:
1、复制2、工程学3、结构实现4、瀑布模型5、运行
6、软件开发管理7、软件定义8、增量模型9、软件维护
二、填空题
1、软件可靠性研究的目的就是用最小的代价在尽可能短的时间内确定解决。
2、系统流程图是描绘物理系统的传统工具,它用图形符号来表示子系统中各个元素,它表达了系统中各个元素之间的情况。
3、成本——效益分析的目的是以评价开发一个新的软件项目是否可行。
4、可行性研究的第一步骤是。
5、可行性研究的最后步骤是。
======================================================================
二、填空题答案:
1、问题是否能够2、流动3、经济角度4、复查系统规模和目标5、书写文档提交审查
三、填空题
1需求分析的基本任务是要标准定义_,回答系统必须“做什么”的问题。
2编写_,着重反映被开发软件的用户功能界面和用户使用的具体要求,它能强制分析人员从用户使用的观点考虑设计。
3传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统“做”的功能,但它仅是一个,没有反映处理的顺序
4为完善地描述用户对系统的需求,DFD应与数据库技术中的_结合起来。
======================================================================
三、填空题答案:
1、软件的需求2、用户手册3、静态模型4、建立数据模型
四、填空题
1在软件概要设计阶段,编写完文档后,要求是否完整地实现需求中规定的功能,性能等要求设计方案的可行性等等进行。
2两模块之间有调用关系,传递的是简单的数据值,这种模块之间耦合称为。
3一个模块内的个处理元素之间没有任何联系,该模块的内聚性为。
4结构化设计中以数据流图为基础的两种具体设计方法是____设计和_______设计
5软件概要设计阶段产生的最重要的文档是。
6软件结构图中的模块用表示,并用名字标识破该模块,名字应该体现模块的功能。
7通过抽象,可能确定组成设计的过程实体,通过可能定义和实施对模块的过程细和局部数据结构的存取限制。
8在多层次结构图中,其模块的层次数称为结构图的_。
9模块的基本属性包括接口、、逻辑、和状态。
======================================================================
四、填空题答案:
1、评审2、数据耦合3、偶然内聚_4、_变换、事务5、概要设计说明书
6、矩形7、信息屏蔽8、深度_9、功能
五、填空题
1在软件详细设计阶段,用JSP方法完成设计的最后一步是用______写出程序。
2详细描述处理过程常用三种工具:
,表格,和语言
3详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应该使设计的处理过程。
4程序语言的工程特征性主要表现为可移植性,,软件的可重用性和维护性
5详细设计的基本任务是确定每个模块的设计。
6必须在软件交付之前对整个进行评审,以减少对文档的副作用。
7为了提高程序的易读性,同时为减少错误,提高软件开发效率,编写时应注意养成良好的。
======================================================================
五、填空题答案:
1、伪码2、_图形工具3、应该尽可能简明易懂4、开发工具的可利用性
5、算法6、软件配置7、程序设计_风格。
六、填空题
1.软件测试是为了.发现_____而执行程序的过程。
2集成测试时,能较早发现高层模块接口,控制等方面的问题的测试法是。
3用等价类划分法设计一个测试用例,使其尽可能地覆盖尚未被覆盖过的等价类。
4在逻辑覆盖的测试技术中,要覆盖含有循环结构的所有路径是不可能的,但可以通过限制来测试。
5在测试程序中,人们可能根据经验和直觉推测程序中可能存在的各种错误,从而针对性地编写检查这些错误的测试用例,这种方法称为。
6使用_______方法设计测试用例时一般与等价划分结合起来,但它不是从一个等价类中任选一个例子作为代表。
7确认测试又称为___,它的任务是检查软件的功能与性能是否与需求规格说明书中的指标相符。
8选择测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次,这种逻辑覆盖标准称为。
======================================================================
六、填空题答案:
1、程序中的错误2、自底向下的渐增式测试3、合理的4、循环次数
5、错误测试法6、边值分析7、验收测试8、条件组合
七、填空题
1在整个维护活动中,预防性维护主要占珍格格维护活动的_______。
2采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护,这是一种的_______维护。
3软件维护费用增加的主要原因是软件维护的_______非常低。
4用于软件维护工作的活动课分为生产活动和非生产性活动两种,非生产性活动包括理解程序代码功能,,接口特点和设计约束
5所有软件维护申请报告应按规定的方法提出,该报告也称为______。
6不管维护类型如何,大体上要开展相同的技术工作,这些工作包括,______,必要的代码维修,单元测试,集成测试,确认测试以及复审。
每种维护类型的侧重点不一样。
7维护阶段是软件生命周期中时间______的一个阶段,所花费的精力和费用也是的一个阶段。
8在软件交付使用后,由于软件开发过程中产生的错误并没有完全彻底地在测试中发现,因此,必然有一部分被带到____阶段上来。
9维护的副作用有三种:
编码副作用,数据副作用,文档副作用,______副作用是修改软件信息结构导致的结果。
======================================================================
七、填空题答案:
1、比例很小2、结构化3、生产率4、数据结构5、软件问题报告
6、软件设计7、最长、最多8、软件维护9、数据副作用
八、填空题
1对象有操作,用于改变对象的状态,对象及其操作就是对对象的_____。
2类具有属性,它是对象的状态的抽象,用_______描述类的属性。
3采用面向对象方法开发软件的基本目的和主要优点是通过重用提高软件的_______
4在类层次中,子类只继承一个父类的数据结构和方法,则称为_______。
5动态模型描述了系统的______。
6_______是封装的最基本单位
7瀑布模型把设计进一步划分成概要设计和详细设计两个阶段,类似地,也可以把面向对象设计再细分为_和对象设计。
8现实世界中,各种对象之间相互触发的,一个触发行为就是一个_______。
9_______是类中对象所使用的一个功能或变。
10面向对象分析的目的是对客观世界的系统进行_______。
======================================================================
八、填空题答案:
1、行为2、数据结构3、开发的生产率4、单继承5、动态行为_
6、对象7、系统设计8、事件9、操作10、键模
简答题:
1.软件工程的七条基本原理是什么?
答:
软件工程的七条基本原理是:
(1用分阶段的是的生存周期计划严格管理;
(2) 坚持进行阶段评审;
(3)严格实施的产品控制;
(4)采用现代程序技术;
(5)结果应能清楚地审查;
(6)开发小组的成员应该少而精;
(7)承认不断改进软件工程的必要性。
2.良好的编码风格应具备哪些条件?
答:
应具备以下条件:
(1)使用标准的控制结构;
(2)有限制地使用GOTO语句;
(3)源程序的文档化(应具备以下内容)
①有意义的变量名称——“匈牙利命名规则”。
②适当的注释——“注释规范”。
③标准的书写格式:
——用分层缩进的写法显示嵌套结构的层次(锯齿形风格);
——在注释段的周围加上边框;
——在注释段与程序段、以及不同程序段之间插入空行;
——每行只写一条语句;
——书写表达式时,适当使用空格或圆括号等作隔离符。
(4)满足运行工程学的输入输出风格。
3.简述文档在软件工程中的作用。
答:
(1)提高软件开发过程的能见度
(2)提高开发效率
(3)作为开发人员阶段工作成果和结束标志
(4)记录开发过程的有关信息便于使用与维护;
(5)提供软件运行、维护和培训有关资料;
(6)便于用户了解软件功能、性能。
4.可行性研究包括哪几方面的内容?
答:
(1)经济可行性:
是否有经济效益,多长时间可以收回成本;
(2)技术可行性:
现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;
(3)运行可行性:
系统操作在用户内部行得通吗?
(4)法律可行性:
新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。
5.结构化的需求分析描述工具有哪些?
答:
有数据流图(DFD)、数据字典(DD)、判定表、判定树、结构化语言(PDL)、层次方框图、Warnier图、IPO图、控制流图(CFD)、控制说明(CSPEC)、状态转换图(STD)和实体—关系图(E—R)等。
6.一般面向对象分析建模的工具(图形)有哪些?
答:
用例图、类/对象图、对象关系图、实体—关系图(E—R)、事件轨迹图(时序图)和状态转换图(STD)等。
7.UML统一建模语言有哪几种图形?
答、用例图、类图、对象图、构件(组件)图、部署(配置)图、状态图、活动图、顺序(时序)图、合作(协作)图等九种图。
8.在面向对象分析时类和对象的静态关系主要有哪几种?
答:
类和对象的静态关系主要有关联、聚集、泛化、依赖等四种关系。
9.什么是模块化?
模块设计的准则?
模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。
模块设计的准则:
(1)改进软件结构,提高模块独立性:
在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。
(2)模块大小要适中:
大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。
(3)软件结构图的深度、宽度、扇入和扇出要适当。
一般模块的调用个数不要超过5个。
(4)尽量降低模块接口的复杂程度;
(5)设计单入口、单出口的模块。
(6)模块的作用域应在控制域之内。
10.什么是模块独立性?
用什么度量?
答:
模块独立性概括了把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准。
独立性可以从两个方面来度量:
即模块本身的内聚和模块之间的耦合。
11.变换