《软件工程导论》考试复习资料.docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2016-2017年第一学期
《软件工程》
期末复习答疑
一、怎样进行课程的总复习?
将在16周最后的课程总复习课(串讲):第一、各章的复习重点;第二、适当讲解期末考试复习题。
下面给同学们提几点建议,供大家参考:
(1)在进行课程的总复习前,应该完成课程的上机练习作业;
(2)要进行全面地系统的复习,决不能靠猜题和押题等侥幸心理进行复习,因为结业考试的题量很大,内容覆盖非常广,所以必须进行全面地系统的复习;
(3)在全面地系统复习基础上,掌握的课堂讲授的知识点。
尤其要抓住各章的重点和难点问题深入复习(我将会在最后一次复习课中强调的)。
(4)在全面复习的基础上,认真练习或阅读期末考试复习题(与考试题型一致)。
(5)所给的复习资料上未提到内容,只要求作一般性的掌握,可以不必去深究,但不代表一点不考,因为需要掌握《软件工程》中的一些常识。
二、课程理论考试试卷题型
本课程理论考试是闭卷考试,题型包括:名词解释5题15分;单项选择题15题15分,填空题10题20 分,判断题2()题10分,问答与简述题5题2()分。
综合题两题20分。
一、名词解释
1、软件危机
答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:
(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)-般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2、需求分析
答:需求分析是指开发人员要准确理解用户的需求,进行细致的调查分析,将用户非形式的需求陈述转化成完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
3> Alpha 测试
答:用户在开发者的场所进行测试,并且在开发者的指导下进行,测试在受控环境中进行,开发者记录发现的错误和问题
4、Bela测试
答:用户在一个或多个客户场所进行测试,不受开发者控制,测试者记录发现的问题和错误,定期将问题报告发送给开发者。
3、测试用例
答:①测试用例应由输入数据和预期的输出结果两部分组成。
②测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或
核实是否满足某个特定需求。
5、软件配置
答:①软件配置,包括需求说明书、设计说明书和源程序清单等。
②软件生存周期各个阶段活动的产物经审批后即可称之为软件配置。
③软件配置为软件文档和源码
:面向对象方法中的“类(Class)”就是对具有相同数据和相同操作的一组相似对象的定义。
6、面向对象中的“重载(Overloading)"
答:有两种重载:
(1)函数重载
指在同一作用域内的若干个参数特征不同的两数可以使用相同的两数名字。
(2)运算符重载
指同一运算符可以施加于不同类型的操作数上面。
当被操作数类型不同时,运算符的含义是不同的。
7、动态模型
答:动态模型是与时间和变化有关的系统性质。
该模型描述了系统的控制结构,他表示了瞬时的、行为化的系统控制性质。
它关心的是系统的控制,操作的执行顺序。
它从对象的事件和状态的角度出发,表现了对象的相互行为。
8、软件模块设计中的“内聚”
答:一个模块内部各个元素彼此结合的紧密程度。
它是衡量一个模块内部组成部分间整体统一性的度量。
9、面向数据流的设计方法中的“事务流”
答:事务型数据流图中存在一个事务屮心(也就是数据处理、加工屮心),它将输入分离成若干个发散的数据流,形成许多活动路径,并根据输入值选择其中一条路径,这类数据流就是事务流。
10、软件模块设计中的“耦合”
答:软件模块设计中的“耦合”是指软件结构内不同模块彼此之间相互依赖(连接)的紧密程度。
11、面向数据流的设计方法中的“变换流”
答:具有较明确的输入、变换(或称主加工)和输岀界面的数据流图称为变换型数据流图。
12、模块一一是数据说明,可执行语句等程序对象的集合.
13、原型一一是使用样机,使用户通过实践获得对未来系统的的概念,可以更准确提出要求.
14、经济可行性一一进行开发成本的估算以及了解収得效益的评估,确定要开发的项目是否值得投资开
发.
15、社会可行性一一要开发的项目是否存在任何侵犯,妨碍等责任问题,要开发项目目的运行方式在用
户组织内是否行得通,现有管理制度,人员素质,操作方式是否可行.
16、投资回收期一一解:投资回收期就是使累计的经济效益等于最初的投资费用所需的吋间•数据流图
(DFD)--- 数据流图(Data Flow Diagram,简称DFD)是以图形方式刻画各种业务数据处理过程。
18、软件可重用
19、内聚性一一是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼
此结合的紧密程度的度量。
20、面向对象技术中的“类”
答:在面向对象的软件技术中,“类”就是对具有相同数据和相同操作的一组相似对象的定义,也就是说,类是对具有相同屈性和行为的一个或多个对彖的描述,通常在这种描述中也包括对怎样创建该类的新对象的说明。
21、面向对象技术中的“封装”
答:在血向对象的程序中,把数据和实现操作的代码集中起来放在对象内部。
一个对象好像是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码与局部数据,都被封装在黑盒子里面,从外面是看不见的,更不能从外面直接访问或修改这些数据和代码。
使用一个对象的时候,只需知道它向外界提供的接口形式,无须知道它的数据结构细节和实现操作的算法。
22、对象的形式化定义
答:对象::二〈ID,MS,DS,MI〉。
其中,ID是对象的标识或名字,MS是对象中的操作集合,DS是对象的数据结构,MI是对象受理的消息名集合(即对外接口)。
23、面向对象技术屮的“封装”
答:面向对象技术屮,封装是把数据和实现操作的代码集屮起来放在对彖内部。
一个对象好像是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码与局部数据,都被封装在黑盒子里面,从外血是看不见的,更不能从外面直接访问或修改这些数据和代码。
使用一个对彖的时候,只需知道它向外界提供的接口形式,无须知道它的数据结构细节和实现操作的算法24、面向对彖技术中的“多态”
答:在面向对象的软件技术中,多态是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。
也就是说,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要來实现这个行为。
当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法。
25、面向对彖技术中的“继承”
答:广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。
在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。
一个类直接继承其父类的全部描述(数据和操作)。
26、动态模型屮的事件
答:事件是在某个特定的时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事情的抽彖。
简而言之,事件就是引起系统做动作或(和)救困转换状态的控制信息。
27、动态模型中的状态
答:状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。
状态规定了系统对事件的响应方式,系统对事件的响就既可以是做一个(或一系列)动作,也可是仅仅改变系统本身的状态,还可以是是既改变状态又做动作。
28、对象模型中的泛化
答:UML屮的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之I'可的一种分类关系。
具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息。
29、系统设计说明书
答:系统设计说明书是从系统总体的角度出发对系统建设中各主要技术方面的设计进行说明,是系统设计阶段的产物,英着重点在于阐述系统设计的指导思想以及所采用的技术路线和方法,编写系统设计说明书将为后续的系统开发工作从技术和指导思想上提供必要的保证。
30、结构化分析
答:结构化分析是根据分解与抽象的原则,按照系统中数据处理的流程,用数据图来建立系统的功能模型, 从而完成需求分析工作
31、可执行的规格说明
答:这是一种使要求说明过程自动化的技术,通过可执行的规格说明语言來描述预期的行为“做什么”,人们可以从直接观察中用规格说明语言来规定任何系统行为。
32、黑盒测试法
答:该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件接
口处进行测试,依照需求规格说明书,检查程序是否满足功能要求。
因此,黑盒测试又称为功能测试或数据驱动测试。
33、白盒测试法
答:该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序屮尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否--致。
白盒法也不可能进行穷举测试。
34、软件维护
答:所谓软件维护就是在软件己经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
35、软件的可靠性
答:对于软件可靠性有许多不同的定义,其屮多数人承认的一个定义是:软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。
36、C OCOMO 模型
答:这是由TRW公司开发,Boehm提出的结构化成本估算模型,是一种精确的、易于使用的成本估算方法。
37、M cCall 模型
答:McCall于1979年提出了包括软件质量要素、软件评价准则、软件质量度量的三个层次的McCall 软件质量度量模型。
它从软件产品的运行、软件产品的修改和软件产品转移三个方面进行评价。
38、信息隐蔽
答:是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模
块来说是不能访问的。
二、单项选择题
(在每小题列出的四个选项屮只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的横线上。
)
1..软件可行性研究一般不考虑一D
A.是否有足够的人员和相关的技术来支持系统开发
B.是否有足够的工具和相关的技术来支持系统开发
C.待开发软件是否有市场、经济上是否合算
D.待开发的软件是否会有质量问题
2..软件维护的副作用主要有以下哪几种C
A.编码副作用、数据副作用、测试副作用
B.编码副作用、数据副作用、调试副作用
C・编码副作用、数据副作用、文档副作用
D.编码副作用、文档副作用、测试副作用
3..软件项目计划一般不包括以下哪项内容D
A・培训计划
B.人员安排
C.进度安排
D.软件开发标准的选择和制定
4..以下哪一项不属于面向对象的软件开发方法C
A.coad方法
B.booch 方法
C.jackson 方法
D.omt方法
5.以下哪种测试方法不属于白盒测试技术B
A.基本路径测试
B.边界值分析测试
C.循环覆盖测试
D.逻辑覆盖测试
6. A 数据处理问题的工作过程大致分为三步,即取得数据、变换数据和给出数据。
A.变换型
B.事务型
C.结构化验室
D.非结构化
7.在对数据流的分析中,主要是找到中心变换,这是从C 导出结构图的关键。
A.数据结构
B.实体关系
C.数据流图
D.E—R 图
8.程序内部的各个部分之间存在的联系,用结构图表达吋,最关心的是模块的D 和耦合性。
A.一致性
B.作用域
C.嵌套限制
D.内聚性
9.在多层次的结构图中,其模块的层次数称为结构图的A 。
A.深度
B.跨度
C.控制域
D.粒度
10.下列有关内聚度由低到高的排列顺序,—D—是正确的。
A.偶然性、时间性、功能性、通信性、逻辑性、顺序性、过程性
B.过程性、时间性、顺序性、功能性、通信性、逻辑性、偶然性
C.偶然性、逻辑性、时间性、过程性、通信性、顺序性、功能性
D.时间性、逻辑性、顺序性、功能性、通信性、偶然性、过程性
11.面向数据结构的设计方法(Jackson方法)是进行B 的形式化的方法。
A.系统设计
B.详细设计
C.软件设计
D.编码
12.在进行软件测试时,首先应当进行 A ,然后再进行组装测试,最后再进行有效性测试。
A.单元测试
B.集成测试
C.确认测试
D.组合测试
13.原型化方法是一种A 型的设计过程。
A.自外向内
B.自顶向下
C.自内向外
D.自底向上
14.为了提高测试的效率,应该D
A.随机地选取测试数据
B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划
D.选择发现错误可能性大的数据作为测试数据
15.使用白盒测试方法时,确定测试数据应根据和指定的覆盖标准。
A.程序的内部逻辑
B.程序的复杂结构
C.使用说明书
D.程序的功能
16.可行性研究要进行一次 ____ 需求分析。
参考答案为:C
A.详细的
B.全面的
C.简化的、压缩的
D.彻底的
[解析]软件的可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。
其实质是要进行一次简化、压缩了的需求分析、设计过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。
因此答案为C。
17. _____________________________ 系统流程图用于可行性分析中的的描述。
参考答案为:A
A.当前运行系统
B.当前逻辑模型
C.目标系统
D.新系统
[解析]可行性研究首先要确定项目的规模和目标,然后就需要对当前运行的系统进行研究了,在考察系统的基础上,通过描绘现有系统的高层系统流程图,与有关人员一起审查该系统流程图是否正确。
描述的对象是当前正在运行的系统,因此选择A。
18. ___________________ 系统流程图是描述的工具。
参考答案为:C
A.逻辑系统
B.程序系统
C.体系结构
D.物理系统
[解析]系统流程图是用图形符号来表示系统屮的各个元素,例如人工处理、数据库、设备等,流程图
表达了系统中各个元素之间的信息流动情况。
是描绘物理系统的传统工具。
19. _____________________________________________________________ 关于下面的类图中所表示的关联关系,下列四个选项中说法错误的是____________________________________
A.一个学生可以选1到多门课程
B.一个老师可以教0到多门课程
C.一门课程只能由一位老师上课
D.一门课程可以被0到多个学生选课
[解析]详细描述处理过程常用三种工具:图形、表格和语言。
其中图形工具有结构化流程图、盒图和问题
分析图三种,答案中的判定表是用来表示复杂的条件组合与应做的动作之间的对应关系。
IPO图用来描述每个模块输入/输出数据、处理功能及模块调用的详细情况。
PDL是过程设计语言的缩写,也称程序描述语言,用于描述模块算法设计和处理细节的语言,这三种都可以在软件详细设计过程中使用,而DFD图则是数据流图,是以图形的方式描绘数据在系统屮流动和处理的过程,只反映系统必须完成的逻辑功能,所以它只是一种功能模型,不能在详细设计过程中使用。
20.程序的三种基本控制结构是参考答案为:B
A.过程、子程序和分程序
B.顺序、选择和重复
C.递归、堆栈和队列
D.调用、返冋和转移
[解析]程序的三种基本控制结构是顺序、选择和循环(重复)。
子程序只是程序设计一种方法,递归则是一种算法,都算不上是控制结构。
21.程序的三种基本控制结构的共同特点是参考答案为:D
A.不能嵌套使用
B.只能用来写简单程序
C.已经用硬件实现
D.只有一个入口和一个出口
[解析]程序的特点就是从一个入口开始,最终以一个出口结束,其间可以用顺序,选择和循坏方式对程序的流向进行控制。
三种结构可以写出非常复朵的程序,而且选择和循环都可以嵌套设计。
22.产生软件维护的副作用,是指参考答案为:C
A.开发吋的错误
B.隐含的错误
C.因修改软件而造成的错误
D.运行时误操作
[解析]因修改软件而造成的错误或其他不希望出现的情况称为维护的副作用,包括编码副作用、数据
副作用、文档副作用三种。
只有答案C是正确的表述。
23.维护中,因误删除一个标识符而引起的错误是__________ 副作用。
参考答案为:C
A.文档
B.数据
C.编码
D.设计
[解析]编码副作用指的是在使用程序设计语言修改源代码时可能引入错误,比如删除或修改一个子程序、一个标号、一个标识符,改变程序代码的时序关系,修改文件的打开或关闭等。
因此本题答案为C。
24.可维护性的特性屮相互促进的是参考答案为:A
A.可理解性和可测试性
B.效率和可移植性
C.效率和可修改性
D.效率和结构好
[解析]软件的可维护性可用七个质量特性来衡量,分别是:可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
对于不同类型的维护,这些特性的侧重点也不相同,有一些可维护特性是可以相互促进的,比如可理解性和可测试性,可理解性和可修改性,另外一些则是相互矛盾的,如答案中的B效率和可移植性、C中的效率和可修改性。
至于D中的结构好则不属于可维护性的特征。
25.汽车有一个发动机。
汽车和发动机之间的关系是______ 关系。
参考答案为:B
A.一般具体
B.整体部分
C.分类关系
D.主从关系
[解析]类有两种主要的结构关系,即一般——具体结构关系和整体——部分结构关系。
前者称为分类结构,用来描述现实世界屮的一般化的抽象关系。
后者称为组装结构,用来描述现实世界屮的类的组成的抽象关系。
汽车和发动机的关系很明显,应该属于整体——部分关系。
26.在变更控制中,______ 可以用来确保由不同用户所执行的并发变更。
参考答案为:B
A.异步控制
B.同步控制
C.存取控制
D.基线控制
[解析]变更控制包括建立控制点和建立报告与审查制度,其过程中的“检出''和“登入"处理实现了存取控制和同步控制,存取控制管理各个用户存取和修改一个特定软件配置对象的权限,同步控制可用来确保由不同用户所执行任务的并发变更。
27.变更控制是一项最重要的软件配置任务,其屮“检岀”和 ___ 处理实现了两个重要的变更控制要素, 即存取控制和同步控制。
参考答案为:A
A.登入
B.管理
C.填写变更要求
D.审查
[解析]“检dr和“登入”处理实现了两个重要的变更控制要素。
具体说明见上题。
28.提高软件质量和可靠的技术大致可分为两大类:其中一-类就是避开错误技术,但避开错误技术无法
做到完美无缺和绝无错误,这就需要参考答案为:D
A.消除错误
B.检测错误
C.避开错谋
D.容错
[解析]提高软件质量和可靠性的技术大致可分为两类,一类是避开错误技术,即在开发的过程中不让差错潜入软件的技术,另一类是容错技术,即对某些无法避开的差错,使其影响减至最小的技术。
29.____ 是以提高软件质量为目的的技术活动。
参考答案为:D
A.技术创新
B.测试
C.技术创造
D.技术评审
「解析]技术评审是以提高软件质量为目的的技术活动,是对软件木身的结构、与运行环境的接口、变更带来的影响等方面进行的评审活动。
30.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软
件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。
因此面向刈象方法有许多特征, 如软件系统是由对象组成的; __________ :对象彼此之间仅能通过传递消息互相联系;层次结构的继承。
参考答案为:C
A.开发过程基于功能分析和功能分解
B.强调需求分析重要性
C.把对象划分成类,每个对象类都定义一组数据和方法
D.对既存类进行调整
1解析]而向对象方法有四个特征,分别是对象唯一性、分类性、继承性和多态性。
其中分类性是指将具有一致的数据结构(属性)和行为(操作)的对彖抽彖成类,每个类是具有相同性质的个体集合,而每
个对象相关类的实例,对象彼此之间通过传递消息互相联系。
31.软件开发过程中,抽収和整理用户需求并建立问题域精确模型的过程叫参考答案为:D
A.生存期
B.面向对象设计
C.面向对象程序设计
D.面向对象分析
[解析「面向对象的分析的过程就是认识客观世界的过程,其目的就是建立対客观世界的精确、简洁、
可理解的正确模型,也就是所谓的建模。
因此本题答案为D。
32.原型化方法是用户和设计者Z间执行的一种交互构成,适用于_______ 系统。
参考答案为:A
A.需求不确定性高的
B.需求确定的
C.管理信息
D.实时
「解析]原型不同于最终系统,它只实现所选择的部分功能,仅是为了试验或是演示而用,部分功能需求可以忽略或者模拟实现,因此适用于需求不确定性高的系统。
33.原型化方法是一种______ 型的设计过程。
参考答案为:A
A.自外向内
B.自顶向下
C.自内向外
D.自底向上
[解析]原型化方法的基本思想是根据用户给出的基本需求,通过快速实现构造出一个小型的、可执行的模型,用户在计算机上实际运行这个用户界面原型,在试用过程中提出意见或建议,然后开发者再对原型进行改进。
如此周而复始,逐步弥补不足之处,从而提高了最终产品的质量。
它是一种自外向内的设计过程。
34.为了提高测试的效率,应该参考答案为:D
A.随机地选取测试数据
B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划
D.选择发现错误可能性大的数据作为测试数据
[解析]软件测试是为了尽可能多的发现程序川的错误,尤其是发现至今尚未发现的错误。
在选取测试用例吋,不可能进行穷举测试,在每一个细节进行测试,也不能无目的地随机选取测试数据,为了提高测试的效率,测试用例应该选择发现错误可能性大的部分,这样的测试结果才符合软件测试的目的。
35.使用白盒测试方法时,确定测试数据应根据_______ 和指定的覆盖标准。
参考答案为:A
A.程序的内部逻辑
B.程序的复杂结构
C.使用说明书
D.程序的功能
[解析]白盒测试是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,rti 于白盒测试是一种结构测试,所以被测对象基本上是源程序,以程序的内部逻辑和指定的覆盖标准确定测试数据。
36.瀑布模型的关键不足在于B
A.过于简单
B.不能适应需求的动态变更
C.过于灵活。