软件工程复习.docx
- 文档编号:10730317
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:31
- 大小:238.26KB
软件工程复习.docx
《软件工程复习.docx》由会员分享,可在线阅读,更多相关《软件工程复习.docx(31页珍藏版)》请在冰豆网上搜索。
软件工程复习
单选10题20分;填空10空20分;名词解释4题20分;简答4题20分;应用2题20分
一、单选题
1.软件是一种(C)A.物质产品B.物理产品C.逻辑产品D.文档产品
2.下列4个选项中,不属于软件危机表现的是(D)A.开发的软件可靠性差B.经费预算不断突破,完成时间一再拖延C.开发的软件可维护性差D.开发的软件规模庞大,结构复杂
3.下列4个选项中,不属于软件危机原因的是:
软件(D)A.规模越来越大B.结构越来越复杂C.开发技术落后D.用户素质不高
4.软件产品的生产主要是(D)A.生产B.再生产C.开发D.研制
5.软件工程是一门(C)A.理论性学科B.原理性学科C.工程性学科D.心理性学科
6.软件重用的单位是(A)A.软件模块B.性能C.系统D.功能
7.软件工程着重于(C)A.理论研究B.原理探讨C.建造软件系统D.原理的理论
8.软件工程中的“软件”是指(D)A.程序B.数据C.文档D.程序、数据及文档
9.软件生存周期中时间最长的阶段是(D)A.需求分析B.概要设计C.测试D.维护
10.软件开发各阶段中,时间长、费用高的阶段是(D)A.需求分析B.详细设计C.编码D.测试
11.解决“软件要做什么”问题的阶段是(B)A.可行性研究B.需求分析C.详细设计D.编码
12.下列工作中,不在需求分析阶段进行的是(B)A.编写需求规格说明B.编写集成测试计划C.编写用户手册初稿D.修改完善软件开发计划
13.需求分析要解决的最重要的问题是(A)A.要让软件做什么B.要给软件提供哪些信息C.要求软件工作效率怎样D.要让该软件具有何种结构
14.DFD中的每个加工至少有(A)A.一个输入流和一个输出流B.一个输入流或一个输出流C.一个输入流D.一个输出流
15.在DFD中,箭头表示(A)A.数据流B.数据存储C.数据处理D.数据源点
16.在DFD中,双杠表示(D)A.数据处理B.数据源点C.数据流D.数据存储
17.下列工作中,不在概要设计阶段进行的是(D)A.划分模块B.确定模块功能C.确定模块的接口D.确定模块的算法
18.为提高模块独立性,模块之间最好是(D)A.公共耦合B.控制耦合C.内容耦合D.数据耦合
19.为提高模块独立性,模块内部最好是(C)A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚
20.程序的三种基本控制结构是(B)A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移
21.程序的三种基本控制结构的共同特点是(D)A.不能嵌套使用B.只能用来写简单程序C.已经用硬件实现D.单入口和单出口
22.软件测试的目的是(B)A.运行软件B.发现软件错误C.证明软件正确D.改正软件错误
23.白盒法设计测试用例的根据是程序的(B)A.应用范围B.内部逻辑C.功能D.输入数据
24.黑盒法设计测试用例的根据是程序的(C)A.应用范围B.内部逻辑C.功能D.输入数据
25.下列技术中不属于白盒技术的是(D)A.语句覆盖B.判定覆盖C.条件覆盖D.边界值分析
26.黑盒技术中不包括(A)A.基本路径测试B.边界值分析C.错误推测D.等价类划分
27.下列测试中,最早进行的是(A)A.单元测试B.集成测试C.确认测试D.系统测试
28.为识别和纠正错误,弥补软件性能缺陷而修改软件的过程称为(A)A.校正性维护B.适应性维护C.完善性维护D.预防性维护
29.为使软件适应其运行环境变化而修改软件的过程称为(B)A.校正性维护B.适应性维护C.完善性维护D.预防性维护
30.为使软件增加功能、增强性能、提高效率而修改软件的过程称为(C)A.校正性维护B.适应性维护C.完善性维护D.预防性维护
31.为提高软件的可维护性和可靠性而对软件进行修改称为(D)A.校正性维护B.适应性维护C.完善性维护D.预防性维护
32.软件维护的副作用是指(C)A.开发时的错误B.隐含的错误C.修改软件造成的错误D.运行时误操作
33.采用快速原型模型开发时,首先应(C)A.构造原型B.运行原型C.快速分析D.评价原型
34.面向对象程序设计语言不同于其他语言的最主要的特点是(A)A.继承性B.多态性C.封装性D.内聚性
35.面向对象方法的基本特性不包括(D)A.继承性B.多态性C.封装性D.正确性
36.子类自动共享父类的操作和属性,称为(A)A.继承B.多态C.封装D.消息
37.不同的对象收到相同的消息可能产生不同的结果,称为(B)A.继承B.多态C.封装D.共享
38.软件部件的内部实现与外部可访问性分离,这是指软件的(C)A.继承性B.共享性C.封装性D.抽象性
39.面向对象方法中描述动态模型的图形工具是(D)A.程序图B.数据流图C.对象图D.状态图
40.面向对象的方法中描述功能模型的图形工具是(D)A.程序图B.对象图C.状态图D.DFD
41.面向对象的方法中描述对象模型的图形工具是(B)A.程序图B.对象图C.状态图D.DFD
42.对象图又称为(B)A.程序图B.类图C.状态图D.数据流图
43.汽车装有一个发动机,汽车和发动机之间的关系是(B)A.一般──具体B.整体──部分C.分类关系D.归纳关系
44.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是(D)A.组装关系B.整体──部分C.聚集关系D.一般化关系
二、填空题
1.文档是有关计算机程序功能、设计、编制、使用的文字或图形资料。
2.瀑布模型是将生存周期各活动规定为依线性顺序联接的若干阶段的模型。
喷泉模型是一种以用户需求为动力,以对象为驱动的模型。
3.结构化分析的基本思想是自顶向下,逐步求精。
4.可行性分析的主要内容有技术可行性、经济可行性和社会可行性分析。
5.效益有有形效益和无形效益两种。
6.需求分析的基本任务是准确定义新系统的目标,回答系统必须“做什么”。
7.结构化设计是面向数据流的,Jackson方法是面向数据结构的设计方法。
8.DD中有四类条目:
数据流条目、数据项条目、数据存储条目、加工条目。
9.需求分析阶段要确定对系统的综合需求,其中最主要的是功能需求,该阶段产生的最重要的文档之一是需求规格说明。
10.解决一个复杂问题,往往采取的策略是分解。
11.SA方法中主要描述工具是DFD(数据流图)与DD(数据字典)。
12.数据流图中的箭头表示数据流,椭圆表示加工(处理),双杠表示数据存储,矩型框表示外部实体(数据源点或终点)。
13.DFD中,每个加工、数据存储至少有1个输入流和1个输出流。
14.当DFD中某加工的一组动作存在多个复杂组合判断时,宜用判定表或判定树。
15.一张判定表由四个部分组成,其左上角是条件列表,左下角是操作列表,右上角是条件值组合列,左下角是各条件值组合列对应的操作列。
16.模块之间的联系越紧密,其耦合性就越强,模块的独立性就越差。
17.模块内各元素的联系越紧密,其内聚性就越高,模块的独立性就越好。
18.划分模块时,应尽量做到低耦合、高内聚。
19.一个模块把数值作为参数送给另一个模块,这种耦合方式属于数据耦合。
20.两个模块内部都使用同一张表,这种耦合属于公共耦合。
21.一个模块内部各程序段都在同一张表上操作,该模块的内聚性属于通信内聚。
22.SP的设计要点是使用三种基本控制结构,自顶向下逐步求精构造算法。
23.程序的三种基本控制结构是顺序结构、选择(分支)结构、重复(循环)结构。
24.详细描述处理过程常用三种工具是过程设计语言、判定表、判定树。
25.描述加工逻辑一般用以下三种工具:
结构化语言(伪码)、判定表、判定树。
26.软件测试的目的是为了发现软件中的错误。
27.软件测试方法一般分两大类:
静态测试法和动态测试法,动态测试包括黑盒法和白盒法。
28.被测试程序不在机器上运行而采用人工分析检测或计算机辅助分析检测称为静态测试,使被测试程序在机器上运行的测试方法称为动态测试。
29.动态测试包括白盒法和黑盒法,检查程序是否满足功能要求应采用黑盒法,测试程序的内部逻辑是否正确应使用白盒法。
30.动态测试中,主要测试程序功能的方法称为黑盒法,测试程序内部结构及处理过程的方法称为白盒法。
31.白盒技术中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
其中查错能力最弱的是语句覆盖。
32.黑盒技术设计方法主要有等价类划分、边界值分析、错误推测、因果图等。
33.用等价类划分法设计一个测试用例时,应使其覆盖尽可能多的尚未被覆盖的合理等价类或只覆盖1个不合理等价类。
34.如果规格说明中含有输入条件的组合情况,则使用因果图。
35.修改程序后,使用先前的测试用例对软件进行曾进行过的测试称为回归测试。
36.单元测试时,可能需要设计驱动模块和桩模块。
37.单元测试大量使用白盒技术;集成测试最常用的是黑盒技术,为保证覆盖主要控制路径,也可能使用一定数量的白盒技术;确认测试仅使用黑盒技术。
38.软件维护分为校正性维护、适应性维护、完善性维护、预防性维护。
其中维护活动数量较大(约占整个维护活动的50%)的是完善性维护。
39.为识别和纠正错误,弥补软件性能缺陷而修改软件的过程称为校正性维护。
40.为使软件适应其运行环境变化而修改软件的过程称为适应性维护。
41.为使软件增加功能、增强性能、提高效率而修改软件的过程称为完善性维护。
42.维护阶段是软件生存周期中时间最长的阶段,花费精力和费用最多的阶段。
43.所有软件维护申请报告要按规定方式提出,该报告也称软件问题报告。
44.快速原型方法的开发步骤是:
①快速分析;②构造原型;③运行原型;④评价原型;⑤修改。
其中修改过程代替了初始的快速分析,形成原型开发循环过程。
45.结构化方法的本质是功能分解,其稳定性、可修改和可重用性都比较差。
46.对象具有状态,对象用数据值来描述它的状态。
47.对象具有行为,用于改变对象的状态。
对象实现了数据和操作的结合。
48.对象的抽象是类,类的具体化就是对象。
49.类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
50.类具有操作,它是对象的行为的抽象。
51.类之间有两种结构关系,它们是一般----具体关系和整体---部分关系。
52.聚集关系是“整体──部分”关系,关系中有整体类和部分类之分。
53.汽车与小汽车之间的关系是一般----具体(分类)关系;汽车与发动机之间的关系是整体---部分关系。
54.一般化关系是“一般──具体”的关系,关系中有一般化类和具体类之分。
55.一般化关系又称为泛化关系,它和继承是同时存在的。
56.继承具有传递性和多重性。
一个子类继承多个父类的特性,称为多重继承。
一个子类只继承一个父类的特性,称为单重继承。
57.类的层次结构中,上层类称父类或超类,下层类称子类。
58.面向对象分析模型中,对象模型描述系统的静态结构,使用对象图工具;动态模型描述系统的控制结构,使用状态图工具;功能模型描述系统的所有计算,表明如何从输入值得到输出值,使用数据流图工具。
三、名词解释
1.软件:
软件是计算机程序及其相关文档的集合。
程序是计算任务的处理对象和处理规则的描述;文档是有关计算机程序功能、设计、编制、使用的文字或图形资料。
软件与硬件一起构成完整的计算机系统。
2.需求分析:
开发人员准确理解用户要求,进行调查分析,将用户非形式的需求陈述转化为完整的需求定义,再转换到相应的形式功能规约(需求规格说明)的过程。
3.SA:
结构化分析,是以“自顶向下逐层分解”(把一个复杂问题分成若干小问题,然后再分别解决)为基本思想的面向数据流的需求分析方法。
4.DFD:
数据流图。
以图形方式描绘数据在系统中流动和处理过程,用于表示系统逻辑模型(功能模型)的一种工具。
5.模块化:
自顶向下逐层把软件系统划分成若干模块的过程。
6.抽象:
只考虑事物共有的本质特性而暂不考虑其细节的思维方式。
7.信息隐蔽:
使模块内的信息(过程或数据)不被不需要这些信息的其他模块访问。
8.模块独立性:
每个模块只完成要求的独立的子功能,且与其他模块联系最少且接口简单。
9.耦合性:
软件系统结构中各模块间相互联系的紧密程度。
10.内聚性:
模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度。
11.单元测试:
对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。
(测试①模块接口、②局部数据结构、③重要的执行路径、④错误处理、⑤边界条件)。
12.集成测试:
在单元测试基础上,将所有模块按设计要求组装成一个完整的系统进行的测试,也称组装测试或联合测试。
用于发现模块组装中可能出现的问题。
13.回归测试:
在软件修改或调试或增殖了新模块后,使用先前的测试用例对软件重复曾进行过的测试,以验证软件的修改/调试/增殖后有无引出新的错误,是否仍然满足需求规格说明。
14.黑盒法:
把被测试对象看成一个黑盒子,不考虑程序内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明,检查程序是否满足功能要求。
因此,黑盒测试又称为功能测试或数据驱动测试。
15.白盒法:
把测试对象看作一个打开的盒子,测试人员必须了解程序的内部结构和处理过程,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
16.合理等价类:
正确的输入数据。
17.不合理等价类:
错误的输入数据。
18.校正性维护:
为识别和纠正错误,弥补软件性能缺陷而修改软件的过程。
21%。
19.适应性维护:
为使软件适应其运行环境变化而修改软件的过程。
25%。
20.完善性维护:
为使软件增加功能、增强性能、提高效率而修改软件的过程。
50%。
21.预防性维护:
为提高软件的可维护性和可靠性而修改软件的过程。
4%。
22.软件可维护性:
软件能够被理解、校正、适应及增强功能的容易程度。
23.维护副作用:
因修改软件而造成的错误或其他不希望出现的情况。
24.对象:
封装了数据结构及可施加在这些数据结构上的操作的封装体,这个封装体有可唯一地标识它的名字,而且向外界提供一组服务。
25.类:
具有相同属性和相同操作的一组相似对象的抽象。
26.状态:
对象的静态性质和特征,用数据值(属性值)描述。
27.属性:
类的静态性质和特征(状态的抽象),用数据结构描述。
不同对象的同一属性可有相同或不同的属性值。
28.行为:
对象的动态性质,用操作描述。
29.操作:
类的动态性质(类中对象所使用的一种功能或变换),用操作名和方法描述。
类中各对象可共享操作,每个操作都有一个目标对象作为其隐含参数。
30.关联:
类之间的联系,即链的抽象
31.角色:
类在关联中的作用,位于关联的端点。
32.关系:
类之间的静态结构关系。
①聚集关系(组装关系,整体─部分关系):
聚集有传递性和逆对称性,把部分类聚集起来可得一棵聚集树(多级聚集);②一般化关系(分类关系,一般─具体关系,归纳关系):
一般化关系和继承同时存在。
33.继承:
子类自动共享父类数据结构和方法(属性和操作)的机制。
34.单重继承:
子类只继承一个父类的数据结构和方法。
35.多重继承:
子类继承了多个父类的数据结构和方法。
36.多态性:
相同的操作可作用于多种类型的对象上并获得不同结果。
即不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
如MOVE操作,可以是窗口对象的移动操作,也可以是国际象棋棋子移动的操作。
37.封装性:
指所有软件部件内部都有明确的范围以及清楚的外部边界,软件部件的内部实现与外部可访问性分离。
38.对象模型:
描述系统的静态结构(静态的、结构化的系统数据性质),从客观实体的对象关系角度表现对象的相互关系。
主要关心系统中对象的结构、属性和操作,使用对象图作描述工具,是分析阶段三个模型的核心,其他两个模型的框架。
39.动态模型:
描述系统的控制结构(与时间和变化有关的系统性质),关心系统的控制,操作的执行顺序,从对象的事件和状态角度表现对象的相互行为。
使用状态图作描述工具。
40.功能模型:
描述系统的所有计算,表明一个计算如何从输入值得到输出值,不考虑计算次序。
使用数据流图作描述工具。
功能模型也包括对象模型中值的结束条件,说明对象模型中操作的含义、动态模型中动作的意义及对象模型中约束的意义。
四、简答题
1.软件产品的特点有哪些?
答:
①逻辑产品;②使用无磨损;③生产主要是研制;④生产主要靠脑力劳动;⑤生产成本高。
2.软件危机的主要表现有哪些?
答:
⑴经费预算一再突破。
软件开发经验的缺乏使开发计划很难制定,主观盲目制定的计划执行起来与实际情况有很大差距,使开发经费一再突破。
⑵完成时间一再拖延。
工作量与开发难度估计的不足使进度计划无法按时完成。
⑶开发的软件不能满足用户要求。
开发初期对用户要求了解不够明确,开发工作开始后,软件人员和用户未及时交换意见,一些问题不能及时解决,导致软件不能满足用户要求。
⑷开发的软件可靠性差。
开发过程中没有确保软件质量的体系和措施,测试时没有严格、充分、完全测试,软件存在大量问题。
⑸开发的软件可维护性差。
开发过程没有统一、公认的规范,开发人员各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。
程序结构不好,运行时发现错误很难修改,导致维护性差。
3.软件危机主要原因有哪些?
答:
2方面:
软件因素,人员因素;①软件规模越来越大,结构越来越复杂;②开发技术落后;③生产方式落后;④开发工具落后,生产率低;⑤开发管理复杂且困难;⑥开发费用不断增加。
4.消除软件危机的主要途径有哪些?
答:
①技术措施:
研究和使用更好的开发方法和工具;②管理措施:
良好组织,严密管理。
5.软件工程过程包含的七个过程是什么?
答:
软件工程过程规定了获取、供应、开发、操作和维护软件时要实施的过程、活动和任务。
⑴获取过程:
定义需方按合同获取一个系统、软件产品或服务的活动。
⑵供应过程:
定义供方向需方提供合同中的系统、软件产品或服务所需的活动。
⑶开发过程:
定义开发者为定义和开发软件或提供服务所需的活动(包括需求分析、设计、编码、集成、测试、安装和验收等)。
⑷操作过程:
定义操作者和机构为在规定的运行环境中为其用户运行一个计算机系统所需的活动。
⑸维护过程:
定义维护者和机构为修改和管理软件,使它处于良好运行状态所需要的活动。
⑹管理过程:
定义软件工程过程中各项管理活动,包括项目开始和范围定义,项目管理计划,实施和控制,评审和评价,项目完成。
⑺支持过程:
对项目生存周期过程给予支持。
6.什么是瀑布模型?
它将软件生存周期分为哪几个阶段?
适合于哪些项目开发?
答:
瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。
它将软件生存周期分为可行性研究与项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护7个阶段。
它规定了由前至后、相互衔接的固定次序,如瀑布流水,逐级下落。
以文档为驱动,适合于软件需求明确且基本固定的软件项目开发。
7.请简要说明原型的优点。
答:
⑴及早为用户提供有用的产品。
⑵及早发现、随时纠正错误。
⑶减少技术、应用风险,缩短开发时间,减少费用,提高生产率。
⑷通过实际运行原型,提供直接评价系统的方法,促使用户主动参与开发活动,加强信息反馈,促进协调,减少误解,适应需求变化,提高系统质量。
8.项目解决方法可行性研究的三大内容有哪些?
(应该从哪三个方面进行可行性分析?
)
答:
⑴技术可行性分析(技术水平,人员素质,软硬资源,约束条件);⑵经济可行性分析(成本─效益分析);⑶社会可行性分析(合同、责任、侵权、用户组织的管理模式及规范等)
9.结构化方法的三大构成是什么?
各适用于软件开发何阶段?
答:
⑴结构化分析SA:
用于需求分析阶段(面向数据流进行需求分析的方法。
使用简单符号,根据软件内部数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型);⑵结构化设计SD:
用于概要设计阶段(面向数据流的设计方法。
以DFD为基础映射成软件结构);⑶结构化程序设计SP:
用于详细设计阶段(采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序;单入口、单出口)。
10.面向对象方法的三大内容是什么?
各相当于结构化软件开发方法何阶段?
答:
⑴面向对象分析[①问题陈述与需求分析;②建模(对象模型,动态模型;功能模型)];相当于需求分析阶段。
⑵面向对象的设计(OOD)[把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程:
①系统设计:
确定实现系统的策略和目标系统的高层结构;②对象设计:
确定解空间中的类、关联、接口形式及操作的算法];相当于概要设计和详细设计阶段。
⑶面向对象的实现[①类和系统的实现:
把OOD结果翻译成用某种程序设计语言书写的面向对象程序;②测试并调试面向对象程序];相当于编码和测试阶段。
11.什么是需求分析?
该阶段的基本任务是什么?
其主要任务有哪些?
答:
需求分析是将用户需求陈述转化为完整的需求定义,继而形成规范化的需求规格说明的过程。
其基本任务是准确定义系统的功能(各项需求),主要任务有:
⑴确定系统需求:
功能需求,性能需求,环境需求,用户界面需求,其它需求(可靠性,安全性,可维护性等);⑵导出系统逻辑模型;明确系统要做些什么;⑶编修文档:
需求规格说明,数据要求说明,用户手册,确认测试计划,项目开发计划;⑷评审。
12.DFD的作用是什么?
画DFD应注意什么?
答:
DFD的作用:
以图形的方式描绘数据在系统中流动和处理过程,形成系统的逻辑模型(功能模型)。
画DFD时的注意事项:
⑴命名。
数据流、数据存储和加工均应合理命名。
⑵编号。
子图及子图上的所有加工应编号,且与父加工的编号呼应。
⑶加工和数据存储都必须有输入数据流和输出数据流。
⑷不画控制流、物质流。
⑹父图与子图必须平衡。
⑺局部数据存储与信息隐蔽。
局部数据存储只有当它作为加工的数据接口或特定的输入或输出时才画出来。
⑻提高DFD的易理解性。
分解时注意均匀性和子加工独立性。
13.DD的作用是什么?
答:
清晰、无歧义地定义系统中的各成分的具体含义,和DFD共同构成系统的逻辑模型,是需求规格说明的主
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习