本资料来自专业老师提供的复习资料,题目较多覆盖全面,对考试和平常学习及极其有用。
《软件工程》
期末复习答疑
一、怎样进行课程的总复习br> 将在16周最后的课程总复习课(串讲):第一、各章的复习重点;第二、适当讲解期末考试复习题。
下面给同学们提几点建议,供大家参考:
(1)在进行课程的总复习前,应该完成课程的上机练习作业;
(2)要进行全面地系统的复习,决不能靠猜题和押题等侥幸心理进行复习,因为结业考试的题量很大,内容覆盖非常广,所以必须进行全面地系统的复习;
(3)在全面地系统复习基础上,掌握的课堂讲授的知识点。尤其要抓住各章的重点和难点问题深入复习(我将会在最后一次复习课中强调的)。
(4)在全面复习的基础上,认真练习或阅读期末考试复习题(与考试题型一致)。
(5)所给的复习资料上未提到内容,只要求作一般性的掌握,可以不必去深究,但不代表一点不考,因为需要掌握《软件工程》中的一些常识。
二、课程理论考试试卷题型
本课程理论考试是闭卷考试,题型包括:名词解释5题15分;单项选择题15题15分,填空题10题20分,判断题20题10分,问答与简述题5题20分。综合题两题20分。
一、名词解释
1、 软件危机
答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:
(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2、 需求分析
答:需求分析是指开发人员要准确理解用户的需求,进行细致的调查分析,将用户非形式的需求陈述转化成完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
3、 Alpha测试
答:用户在开发者的场所进行测试,并且在开发者的指导下进行,测试在受控环境中进行,开发者记录发现的错误和问题
4、 Beta测试
答:用户在一个或多个客户场所进行测试,不受开发者控制,测试者记录发现的问题和错误,定期将问题 告发送给开发者。
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中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系。具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息。
29、系统设计说明书
答:系统设计说明书是从系统总体的角度出发对系统建设中各主要技术方面的设计进行说明,是系统设计阶段的产物,其着重点在于阐述系统设计的指导思想以及所采用的技术路线和方法,编写系统设计说明书将为后续的系统开发工作从技术和指导思想上提供必要的保证。
30、结构化分析
答:结构化分析是根据分解与抽象的原则,按照系统中数据处理的流程,用数据图来建立系统的功能模型,从而完成需求分析工作
31、可执行的规格说明
答:这是一种使要求说明过程自动化的技术,通过可执行的规格说明语言来描述预期的行为“做什么”,人们可以从直接观察中用规格说明语言来规定任何系统行为。
32、黑盒测试法
答:该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依照需求规格说明书,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试。
33、白盒测试法
答:该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。白盒法也不可能进行穷举测试。
34、软件维护
答:所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
35、软件的可靠性
答:对于软件可靠性有许多不同的定义,其中多数人承认的一个定义是:软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。
36、COCOMO模型
答:这是由TRW公司开发,Boehm提出的结构化成本估算模型,是一种精确的、易于使用的成本估算方法。
37、McCall模型
答:McCall于1979年提出了包括软件质量要素、软件评价准则、软件质量度量的三个层次的McCall软件质量度量模型。它从软件产品的运行、软件产品的修改和软件产品转移三个方面进行评价。
38、信息隐蔽
答:是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。
39、软件重用
答:重用也叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用。广义地说,软件重用可分为以下3个层次:
(1) 知识重用(例如,软件工程知识的重用)。
(2) 方法和标准的重用(例如,面向对象方法或国家制定的软件开发规范的重用)。
(3) 软件成分的重用。
二、单项选择题
(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的横线上。)
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____和指定的覆盖标准。
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.产生危机
[解析]“检出”和“登入”处理实现了两个重要的变更控制要素。具体说明见上题。
28.提高软件质量和可靠的技术大致可分为两大类:其中一类就是避开错误技术,但避开错误技术无法做到完美无缺和绝无错误,这就需要 参考答案为:D
A.消除错误
B.检测错误
C.避开错误
D.容错
[解析]提高软件质量和可靠性的技术大致可分为两类,一类是避开错误技术,即在开发的过程中不让差错潜入软件的技术,另一类是容错技术,即对某些无法避开的差错,使其影响减至最小的技术。
29.是以提高软件质量为目的的技术活动。 参考答案为:D
A.技术创新
B.测试
C.技术创造
D.技术评审
[解析]技术评审是以提高软件质量为目的的技术活动,是对软件本身的结构、与运行环境的接口、变更带来的影响等方面进行的评审活动。
30.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的;;对象彼此之间仅能通过传递消息互相联系;层次结构的继承。 参考答案为:C
A.开发过程基于功能分析和功能分解
B.强调需求分析重要性
C.把对象划分成类,每个对象类都定义一组数据和方法
D.对既存类进行调整
[解析]面向对象方法有四个特征,分别是对象唯一性、分类性、继承性和多态性。其中分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类,每个类是具有相同性质的个体集合,而每个对象相关类的实例,对象彼此之间通过传递消息互相联系。
31.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫 参考答案为:D
A.生存期
B.面向对象设计
C.面向对象程序设计
D.面向对象分析
[解析]面向对象的分析的过程就是认识客观世界的过程,其目的就是建立对客观世界的精确、简洁、可理解的正确模型,也就是所谓的建模。因此本题答案为D。
32.原型化方法是用户和设计者之间执行的一种交互构成,适用于______系统。 参考答案为:A
A.需求不确定性高的
B.需求确定的
C.管理信息
D.实时
[解析]原型不同于最终系统,它只实现所选择的部分功能,仅是为了试验或是演示而用,部分功能需求可以忽略或者模拟实现,因此适用于需求不确定性高的系统。
33.原型化方法是一种_______型的设计过程。 参考答案为:A
A.自外向内
B.自顶向下
C.自内向外
D.自底向上
[解析]原型化方法的基本思想是根据用户给出的基本需求,通过快速实现构造出一个小型的、可执行的模型,用户在计算机上实际运行这个用户界面原型,在试用过程中提出意见或建议,然后开发者再对原型进行改进。如此周而复始,逐步弥补不足之处,从而提高了最终产品的质量。它是一种自外向内的设计过程。
34.为了提高测试的效率,应该 参考答案为:D
A.随机地选取测试数据
B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划
D.选择发现错误可能性大的数据作为测试数据
[解析]软件测试是为了尽可能多的发现程序中的错误,尤其是发现至今尚未发现的错误。在选取测试用例时,不可能进行穷举测试,在每一个细节进行测试,也不能无目的地随机选取测试数据,为了提高测试的效率,测试用例应该选择发现错误可能性大的部分,这样的测试结果才符合软件测试的目的。
35.使用白盒测试方法时,确定测试数据应根据_______和指定的覆盖标准。 参考答案为:A
A.程序的内部逻辑
B.程序的复杂结构
C.使用说明书
D.程序的功能
[解析]白盒测试是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,由于白盒测试是一种结构测试,所以被测对象基本上是源程序,以程序的内部逻辑和指定的覆盖标准确定测试数据。
36.瀑布模型的关键不足在于 B
A.过于简单
B.不能适应需求的动态变更
C.过于灵活
D.各个阶段需要进行评审
37..在面向对象软件开发方法中,类与类之间主要有以下结构关系 A
A.继承和聚集
B.继承和一般
C.聚集和消息传递
D.继承和方法调用
38..以下哪一项不是软件危机的表现形式 C
A.成本高
B.生产率低
C.技术发展快
D.质量得不到保证
39.以下哪一项不是面向对象的特征 D
A.多态性
B.继承性
C.封装性
D.过程调用
40..面向对象模型主要由以下哪些模型组成 A
A.对象模型、动态模型、功能模型
B.对象模型、数据模型、功能模型
C.数据模型、动态模型、功能模型
D.对象模型、动态模型、数据模型
41.面向对象建模得到的三个模型,其中核心的模型是____A_。
A.对象模型
B.功能模型
C.逻辑模型
D.动态模型
42.COCOMO估算模型是____B____。
A.模块性成本模型
B.结构性成本模型
C.动态单变量模型
D.动态多变量模型
43.在考察系统的一些涉及时序和改变的状态时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是 D 。
A.时序图
B.数据流图
C.系统结构图
D.状态图
44.从结构化的瀑布模型看,在软件生存周期的几个阶段中,对软件的影响最大是___C______。
A.详细设计阶段
B.概要设计阶段
C.需求分析阶段
D.测试和运行阶段
45.模块 B ,则说明模块的独立性越强。
A.耦合越强
B.耦合越弱
C.扇入数越高
D.扇入数越低
46. D 数据处理问题的工作过程大致分为三步,即取得数据、变换数据和给出数据。
A.非结构化
B.事务型
C.结构化验室
D.变换型
47.与设计测试数据无关的文档是___D______。
A.需求说明书
B.设计说明书
C.源程序
D.项目开发设计
48.设计软件结构一般不确定______D____。
A.模块之间的接口
B.模块间的调用关系
C.模块的功能
D.模块内的局部数据
49.在多层次的结构图中,其模块的层次数称为结构图的 D 。
A.粒度
B.跨度
C.控制域
D.深度
50.两个模块都使用同一张数据表,模块间的这种耦合称为___A_____。
A.公共耦合
B.内容耦合
C.数据耦合
D.控制耦合
51.与设计测试数据无关的文档是____D_____。
A.需求说明书
B.设计说明书
C.源程序
D.项目开发设计
52.模块内聚性最好的是___C____。
A.逻辑内聚
B.时间内聚
C.功能内聚
D.通信内聚
53.需求分析阶段的任务是确定_C___。
A.软件开发方法
B.软件开发工具
C.软件系统的功能
D.软件开发费
54.软件结构化设计中,好的软件结构应该力求做到_____B____。
A.顶层扇出较少,中间扇出较高,底层模块低扇入
B.顶层扇出较高,中间扇出较少,底层模块高扇入
C.顶层扇入较少,中间扇出较高,底层模块高扇入
D.顶层扇入较少,中间扇入较高,底层模块低扇入
55.耦合度也可以分为七级:其中最松散的耦合是____A_____
A.非直接耦合
B.数据耦合
C.特征耦合
D.控制耦合
56.软件可靠性是软件在给定的时间内,在规定的环境条件下系统完成所指定功能的___C____。
A.可用性
B.适应性
C.概率
D.可移植性
57.为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础的软件维护称为___D___。
A.纠错性维护
B.适应性维护
C.改善性维护
D.预防性维护
58.PAD(Problem Analysis Diagram)图是一种 B 工具。
A.系统描述
B.详细设计
C.测试
D.编程辅助
59.面向对象分析的独到之处是___A_____
A.将数据和处理结合在一起而不是分离
B.数据和处理分别独立考虑
C.仅考虑数据结构
D.考虑处理过程
60.与软件开发需求分析、设计及编码阶段相对应的软件测试步骤是___D______。
A.组装测试、确认测试、单元测试
B.单元测试、组装测试、确认测试
C.单元测试、确认测试、组装测试
D.确认测试、组装测试、单元测试
三、填空题
1.系统流程图是描述物理模型的传统工具,用图形符 表示系统中各个元素表达了系统中各种元素之间的____信息的流动_____情况。
2.成本效益分析的目的是从 经济 角度评价开发一个项目是否可行。
3.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和 宽度优先策略 。
4.详细设计的任务是确定每个模块的内部特性,即模块的算法、 数据结构 。
5.所有软件维护申请 告要按规定方式提出,该 告也称 软件问题 告。
6.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的 维护支援 技术。
7.Jackson方法是一种 面向数据结构 的开发方法。
8.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、 可移植性 、 可使用性和效率。
9.使用白盒测试方法时,确定测试数据应根据__程序的内部逻辑_____和指定的覆盖标准。
10.用面向对象方法开发软件时,在分析、设计和编码等项开发活动之间并不存在_明显的边界_______。
11.计算机程序及其说明程序的各种文档称为__文件___。
12.如果IT是程序长度(机器指令总数),ET测试之前程序中故障总数,而MTTF是平均无故障时间,那么需要改正EC=个错误之后,测试工作才可以结束。
13.UML中的泛化关系就是通常所说的___继承关系,它是通用元素和具体元素之间的一种分类关系。
14.继承___是指能够直接获得已有的性质和特征,而不必重复定义它们。
15.等价类划分是一种____,寻找有限个具有代表性的测试用例。
16.软件开发环境的主要目标是提高软件开发的_________,改善软件的质量和降低__________。
17.UML提供的用例图也是进行需求分析和建立______的有力工具。
18.软件在给定的时间间隔内,按照规格说明书的规定成功地运行的概率就是软件的_______。
19.面向对象方法中对象是最本的概念,面向对象方法学可概括为 。
20.在一个模块中,功能状态与接口反映模块的_________,逻辑反映它的__________。
31.在软件项目的经济可行性分析中,所谓投资回收期指的是:使开发项目累计的经济效益等于________所需的时间。
32.软件开发中原型是软件的一个_____________,它反映了最终系统的重要特性。
33.计算机程序及其说明程序的各种文档称为: 。
34.两个模块之间只是通过参数交换信息,而且交换的信息仅仅是数据,这种耦合就是__。
35.所有软件维护申请 告要按规定方式提出,该 告也称 告。
36.面向对象中的“重载”有两种:。
37.软件工程方法学三要素 。
38.数据流图中描述加工逻辑一般使用三种工具,分别是、判定表、判定树。
39.使用白盒测试方法时,确定测试数据应根据_________和指定的覆盖标准。
40.只有同时使用 的方法,才是真正面向对象的方法。
41.CASE这一术语的英文是___________,中文含义是_________________。
42.在面向对象方法中,对象实现了数据和操作的结合,使数据和操作 ____________ 于对象的统一体中。
43.面向对象分析的目的是对客观世界的系统进行 __________________ 。
44.软件维护工作的生产性活动包括分析评价、修改设计和 __________________ 等。
45.为了使应用软件适应计算机环境的变化而 _________________ 的过程称为适应性维护。
46.需求分析的基本任务是要准确回答系统必须“ ”的问题。
47.软件结构图的宽度是指一层中 __________________ 的模块个数。
48.投资回收期就是使累计的经济效益等于 ________________ 所需的时间。
49.软件生存周期是指一个软件从提出开发要求开始直到 ______________ 为止的整个时期。
50.只有同时使用 的方法,才是真正面向对象的方法。
四、判断题
1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(对)
2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。(错)
3.JAVA语言编译器是一个CASE工具。(对)。
4.软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。(错)
5.软件模块之间的耦合性越弱越好。(对)
6.数据库设计说明书是一个软件配置项(对)
7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。(错)
8.过程描述语言可以用于描述软件的系统结构。(错)
9.如果通过软件测试没有发现错误,则说明软件是正确的。(错)
10.快速原型模型可以有效地适应用户需求的动态变化。(对)
21. 缺乏有力的方法学的指导和有效的开发工具的支持, 这往往是产生软件危机的原因之一。( √)
22. 一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。(× )
23. 在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。( √)
24. 快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。( × )
25. 流程图也称为程序(框图)是最常用的一种表示法。(√ )
26. 面向数据设计方法一般都包括下列任务: 确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。(√ )
27. 理想的人机界面应针对具有典型个性的特定的一类用户设计。(√ )
28. 数据输入的一般准则中包括尽量(增加)用户输入的动作。( × )
29. 用穷举测试是较现实的测试方法。( × )
30. 编码时应尽可能使用全局变量(× )
31. 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。( √ )
32. 集成测试主要由用户来完成。( × )
33. 确认测试计划应该在可行性研究阶段制定。( × )
34. 白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(√ )
35. 软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(√ )
36. 在可行性研究中最难决断和最关键的问题是经济可行性。( × )
37. 耦合是指一个模块内各个元素彼此结合的紧密程度。( × )
38. 一笔交易,一个动作,甚至操作人员按一个按钮都可以看作是一次事物。( √ )
39. 概要设计阶段完成的主要文档是概要设计说明书。( √ )
40. 过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。(× )
41. 程序设计语言中应绝对禁止使用GOTO语句.(错)
42. 类是关于对象性质的描述,由方法和数据组成.(对)
43. 随着软件技术的发展,人们逐渐认识到阅读程序的重要性,编码不仅要强调效率还要强调清晰.(对)
44. 为保证程序的安全,必须做到程序中没有任何错误存在,即容错.(错)
45. 如果把软件开发所需的资源画成一个金字塔,人是最基本的资源.(对)
46. 模块的内聚度应尽可能地小。(错)
47. 因果图法可以用来系统地设计测试用例。(对)
48. 对程序的穷举测试在一般情况下是可以做到的。(错)
49. 为了确认用户的需求,先做出系统的主要部分,提交用户试用的软件开发方法是原型法。(对)
50. 用于表示模块间调用关系的图是SD。(错)
51. 结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。(对)
52. 程序编码在系统分析阶段就可以开始了。(错)
53. 通常用数据流图、数据库字典和简明算法描述表示系统的逻辑模型。(对)
54. 一个软件系统中可能会出现所有模块之间没有任何联系的情况。(错)
55. 判定表不适合做通用的设计工具,不能表示顺序结构、循环结构。(对)
56. 测试一般情况下是以白盒法为主黑盒法作为补充。(错)
57. 因果图法可以用来系统地设计测试用例。(错)
58. 模块的内聚度应尽可能地小,模块间联系尽可能大。(错)
59. 为了确认用户的需求,先做出系统的主要部分,提交用户试用的软件开发方法是原型法。(对)
60. 系统分析阶段和系统设计阶段一般不考虑测试。(错)
61. 结构化程序设计SP强调模块采用自上而下逐步求精设计方法,单入口、单出口
62. 标准结构。(对)
63. 面向对象设计中的主题相当于子系统。(错)
64. 判定表不适合做通用的设计工具,不能表示顺序结构、循环结构。(对)
65. 对象中的服务可通过分析属性值的变化情况发现。(错)
66. 通常用数据流图、数据库字典和简明算法描述表示系统的逻辑模型。(对)
五、简答题
- 需求分析阶段的基本任务是什么br> 需求分析阶段的基本任务是要准确的定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。
本阶段要进行以下几方面的工作:
⑴ 问题识别。双方确定对问题的综合需求,这些需求包括:功能需求、性能需求、环境需求、用户界面需求,另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求。
⑵分析与综合,导出软件的逻辑模型。分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成份,并用图文结合的形式,建立起新系统的逻辑模型。
⑶ 编写文档。编写“需求规格说明书”、编写初步用户使用手册、编写确认测试计划、修改完善软件开发计划。 - 数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
数据流图有四种基本图形符 :“→”箭头表示数据流;“○”圆或椭圆表述加工;“=”双杠表示数据存储;方框表示数据的源点或终点。(3分)
2、请根据下图回答问题:①列出用例模型中的行为者与用例,②哪些用例之间存在扩展关系/li>
答:
行为者: cellular、User 用例:Place phone call、Place conference call、Receive phone call、Receive additional call、Use scheduler
用例之间存在扩展关系的有:Place phone call与Place conference call、Receive phone call与Receive additional call
3、说明结构化程序设计的主要思想是什么br> 答:(1)自顶向下、逐步求精的程序设计方法 (2)使用3种基本控制结构、单入口、单出口来构造程序。
4、.软件测试包括哪些步骤明这些步骤的测试对象是什么br> 答:(1)单元测试,测试对象对单元模块(2)集成测试,测试对象为组装后的程序模块(3)确认测试,测试对象为可运行的目标软件系统
5、简述需求分析的过程或步骤
答:
(1)进行系统的详细调查访谈,获得“三表一图”
① 输入信息调查,获得输入信息表
② 输出信息调查,获得输出信息表
③ 文件信息调查,获得文件信息表
④ 进行问卷、访谈,进行业务处理流程分析,获得业务处理流程图(BPFD)
(2)建立现有系统的逻辑模型:
① E-R图
② DFD+DD或USE CASE
(3)问题分析与改进策略的提出,建立新软件系统的逻辑模型
① 进行系统目标分析,进行目标分解,找出所有的原子目标
② 进行系统功能分析,进行功能分解,找出所有的原子功能或功能点
③ 绘制目标/功能分析表,找出存的问题,重新构建系统的逻辑模型DFD+DD或USE CASE
(4)查新、整理可重用资源
(5)编制规范的需求说明书
① 需求的陈述:功能需求、性能需求、环境需求、用户界面需求,另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求。
② 软件系统的逻辑模型:E-R图、DFD+DD或USE CASE、FHD
③ 开发计划
6、软件开发成本估算方法有哪几种br> 答:(1)自顶向下估算方法。估算人员参照以前完成的项目所耗费的总成本(或总工作量),来推算将要开发的软件的总成本(或总工作量),然后把它们按阶段、步骤和工作单元进行分配,这样方法称为自顶向下的估算方法。(1分)
(2)自底向上估算方法。自底向上估算方法是将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,得到软件的总开发量。(1分)
(3)差别估算方法。差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。(1分)
(4)专家估算法。依靠一个或多个专家对要求的项目做出估算。(1分)
(5)类推估算法。(0.5分)
(6)经验公式估算法。(0.5分)
7、说明软件测试和调试的目的有何区别br> 答:测试的目的是判断和发现软件是否有错误 , 调试的目的是定位软件错误并纠正错误。
8、 什么是确认测试阶段有哪些工作br> 答:确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合 。
确认测试阶段有两项工作,进行确认测试与软件配置审查:
(1)确认测试一般是在模拟环境中运用黑盒测试方法,由专门测试人员和用户参加的测试。
(2)软件配置审查的任务是检查软件的所有文档资料的完整性、正确性。如果发现遗漏和错误,应补充和改正,同时要编排好目录,为以后的软件维护工作奠定基础。
9、简述软件测试的准则。
答:(1)所有测试都应该能追溯到用户需求;
(2)应该远在测试前就制定出测试计划;
(3)把Pareto原理应用到软件测试中;
(4)应该从“小规模”测试开始,并逐步进行“大规模”测试;
(5)穷举测试是不可能的;
(6)为了达到最佳测试效果,应该由独立的第三方从事测试工作。
10、简述建立对象模型的过程。
答:典型的工作步骤是:
(1)首先确定对象类和关联(因为它们影响系统整体结构和解决问题的方法);
(2)对于大型复杂问题还要进一步划分出若干个主题;
(3)然后给类和关联增添属性,以进一步描述它们;
(4)接下来利用适当的继承关系进一步合并和组织类;
(5)由于经过一次建模过程很难得到完全正确的对象模型,所以需要反复修改。
11. 一般来讲,开发一个软件系统首先应该遵循的基本原则是什么无解释给3分,有解释满分)
答:开发一个软件系统首先应该遵循的基本原则:
(1)首先要建立一个领导子:
①能调动资源的行政领导
②有经验的系统开发工程师
③用户(专家)
④软件开发人员
(2)软件系统开发严格按软件生命周期分阶段进行:
①可行性分析
②需求(系统)分析
③总体(概要)设计
④软件系统的详细设计
⑤软件系统的实施
(3)要有用户的观点
(4)要加强文档资料的管理
- 简述软件再工程的过程(无解释给3分,有解释满分)br> 答:(1)库存目录分析;
包含每个应用系统的信息,如:名称、构建日期、修改次数、过去18个月 告的错误、用户数量、文档质量、预期寿命,等。从中选出再工程的候选者。
(2)文档重构;
①如果一个程序走向生命终点,不再经历变化,则保持现状;②重构只针对当前正在修改的软件部分。
(3)逆向工程;
逆向工程是一个恢复设计结果的过程,从程序代码中抽取数据结构、体系结构和处理过程的设计信息。
(4)代码重构;
分析源代码,标注出与结构化程序设计概念不符的部分,重构它的代码,测试重构代码并更新代码。
(5)数据重构;
当数据结构较差时,进行再工程。如以文件方式保存数据变为以数据库方式存储。
(6)正向工程。
也称革新或改造,即应用软件工程的原理、概念、技术和方法来重新开发现有系统。
13.简述提高软件可维护性的方法。(每项1分)
(1)建立明确的软件质量标准;
(2)使用先进软件开发技术和工具;
(3)建立明确的软件质量保证工作;
(4)选择可维护的程序设计语言;
(5)改进程序文档。
14、简述软件需求说明书(软件规格说明书)中包含的内容每项1分)
答:(1)软件系统的开发背景资料(主要相关人、财、物或设备);
(2)所开发软件的功能、性能、用户界面及运行环境等作出详细的说明;
(3)软件系统详细的逻辑模型:数据流图(DFD)+数据词典(DD)或面向对象的三大模型(对象模型、动态模型和功能模型)等
(4)系统开发计划表
(5)所有附加文档:调查问卷信息、BPFD等
15、 在测试中,如何估计软件中故障总数ET无解释3分,有解释满分)
答:(1)Halstead估算方法:(1分)
Halstead预测程序中包含错误个数的公式 ET = H log2(n1+n2) / 3000,H=n1log2n1+n2logn2
(2)经验法:(1分)
单位长度里的故障数ET/ IT近似为常数。一些统计数字表明,通常有:0.5×102≤ET/ IT≤2×102。
(3)植入故障法(1分)
假设人为地植入的故障数为Ns,经过一段时间的测试之后发现ns个植入的故障,同时还发现了n个原有的故障,则可以估计出程序中原有的故障总数:ET=Nsn/ns
(4)分别测试法 (2分)
分别测试法使用甲、乙两组测试员,独立地测试同一个程序的两个副本,由另一名分析员分析他们的测试结果。每隔一定时间,分析员分析使用甲、乙两组测试员的测试结果B1、B2,相同部分为bc。估计错误总数ET= B1B2/bc。几次估计结果差不多时,用其平均值作为错误总数的估计值16、简述面向对象分析的主要步骤。(无解释3分,有解释满分)
答:(1)需求陈述
(2)寻找类与对象
(3)识别结构,确定对象之间的关联
(4)识别主题
(5)定义属性
(6)建立动态模型
(7)建立功能模型
(8)定义服务。
17、简述建立动态模型的步骤。
答:动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。通常,用UML提供的状态图来描绘对象的状态、触发状态转换的事件以及对象的行为(对事件的响应)(2分)
建立动态模型的步骤:
第一步,是编写典型交互行为的脚本。虽然脚本中不可能包括每个偶然事件,但是,至少必须保证不遗漏常见的交互行为。
第二步,从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象。第三步,排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系,并用状态图描绘它们。
最后,比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。(3分)
18、快速原型技术的基本思想是什么br> 答:在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。
19、简述决定软件可维护性的因素br> 答: (1)可理解
(2)可测试
(3)可修改
(4)可移植
(5)可重用
20、简述面向对象方法学的4个要点。
答:概括地说,面向对象方法学具有下述4个要点:
(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。
(2) 把所有对象都划分成类(class)。
(3) 按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。
(4) 对象彼此间仅能通过发送消息互相联系。
六、 综合题(每题10分,共20分)
(一)有一个长度为48000 条机器指令的程序,第一个月由甲、乙二人分别测试它。甲改正了20 个错误,使程序的平均无故障时间达到8 小时。乙在测试该程序的另一个副本时改正了24 个错误,其中6 个错误与甲改正的相同。然后,由甲一个人继续测试这个程序。请问:
(1)刚开始测试时程序中的错误总数ET 是多少br> (2)为使平均无故障时间达到240h,如果甲不利用乙的工作成果,则他还需再改正多少个错误br> (3)为使平均无故障时间到达480h,如果甲利用了乙的工作成果,则他还需再改正多少个错误br> 解:
(1)刚开始测试时程序中错误总数为
ET=(24/6)20=80
(2)由方程 EC=ET -IT/(KMTTR)得
20=80 -4800/(K8) 解得 K=48000/8(80-20)=100
由方程 EC1=80-48000/(100240) 解得 EC1=78
78-20=58
即为使平均无故障时间到达240h,如果甲不利用乙的工作成果,则他还需再改正58
个错误。
(3)由方程
EC2=80-48000/(100*480)解得 EC2=79
79-20-(24-6)=41
即为使平均无故障时间到达480h,如果甲利用了乙的工作成果,则他还需要再改正41 个错误。
(二)假设有一个由5000行高级语言构成的程序(经编译后大约有25000条机器指令),根据美国多年的统计经验,你估计在对它进行测试期间将发生多少个错误什么br> 解:经验表明,在类似的程序中,单位长度里的错误数Er/Ir 近似为常数。美国的一些统计数字告诉我们,通常 0.5ⅹ10-2 <= Er/Ir <= 2ⅹ10-2
也就是说,在测试之前每1000 条指令中大约有5-20 个错误.假设在该程序的每1000 条指令中大约有10 个错误,则估计在对它进行测试期间将发现的错误数为 25000ⅹ10/1000=250
(三)假设要为某医院开发一个电话挂 的软件管理系统,其需求陈述如下:
当病人打电话挂 时,接线员将查阅挂 登记表,如果病人申请的就诊时间与医生的接诊时间冲突,则接线员建议一个就诊时间以安排病人尽早得到就诊。如果病人同意建议的就诊时间,接线员将输入约定时间和病人的名字。系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历 等。在每次治疗后,护士将标记相应的挂 就诊已经完成,如果必要的话会安排病人下一次复诊时间。系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和挂 信息。接线员可以取消挂 ,可以打印出前三天已挂 但尚未就诊的病人清单。系统可以从病人记录中获知病人的电话 码。接线员还可以打印出所有医生的每天和每周的工作安排。
请使用面向对象方法对该系统进行分析和设计,画出该系统的用例图、类图。
答:
1.建立用例
在这个阶段,通过用例来捕获用户的需求。用例图从用户角度描述系统的功能,它必须包含用户关心的所有关键功能。用户通常就是用例图中的执行者。为了画出系统的用例图,首先应该找出系统的用户,然后根据用户对系统功能的需求确定用例。
与参考答案基本符合,满分,其他情况酌情给分。
2.建立类图:
类是是面向对象的开发方法的基础,可以说UML 的基本任务就要
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!