软件工程练习题.docx
- 文档编号:4416954
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:17
- 大小:56.12KB
软件工程练习题.docx
《软件工程练习题.docx》由会员分享,可在线阅读,更多相关《软件工程练习题.docx(17页珍藏版)》请在冰豆网上搜索。
软件工程练习题
《软件工程》练习题
一、判断题
1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
(对)
2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
(错)
3.JAVA语言编译器是一个CASE工具。
(对)。
4.软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。
(错)
5.软件模块之间的耦合性越弱越好。
(对)
6.数据库设计说明书是一个软件配置项(对)
7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。
(错)
8.过程描述语言可以用于描述软件的系统结构。
(错)
9.如果通过软件测试没有发现错误,则说明软件是正确的。
(错)
10.快速原型模型可以有效地适应用户需求的动态变化。
(对)
11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(对)
12.集成测试主要由用户来完成。
(错)
13.确认测试计划应该在可行性研究阶段制定(错)
14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。
(错)
15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
(对)
16.用例常被用在项目的需求分析阶段,对项目的测试计划和用户指南也有用处。
(对)
二、单选题
1.瀑布模型的关键不足在于
(2)
(1)过于简单
(2)不能适应需求的动态变更(3)过于灵活(4)各个阶段需要进行评审
2.在面向对象软件开发方法中,类与类之间主要有以下结构关系
(1)
(1)关联和泛化
(2)继承和一般(3)聚集和消息传递(4)继承和方法调用
3.以下哪一项不是软件危机的表现形式(3)
(1)成本高
(2)生产率低(3)技术发展快(4)质量得不到保证
4.以下哪一项不是面向对象的特征(4)
(1)多态性
(2)继承性(3)封装性(4)过程调用
5.面向对象模型主要由以下哪些模型组成
(1)
(1)对象模型、动态模型、功能模型
(2)对象模型、数据模型、功能模型(3)数据模型、动态模型、功能模型(4)对象模型、动态模型、数据模型
6.软件可行性研究一般不考虑(4)
(1)是否有足够的人员和相关的技术来支持系统开发
(2)是否有足够的工具和相关的技术来支持系统开发(3)待开发软件是否有市场、经济上是否合算(4)待开发的软件是否会有质量问题
7.软件维护的副作用主要有以下哪几种(3)
(1)编码副作用、数据副作用、测试副作用
(2)编码副作用、数据副作用、调试副作用(3)编码副作用、数据副作用、文档副作用(4)编码副作用、文档副作用、测试副作用
8.软件项目计划一般不包括以下哪项内容(4)
(1)培训计划
(2)人员安排(3)进度安排(4)软件开发标准的选择和制定
9.以下哪一项不属于面向对象的软件开发方法(3)
(1)coad方法
(2)booch方法(3)jackson方法(4)omt方法
10.以下哪种测试方法不属于白盒测试技术
(2)
(1)基本路径测试
(2)边界值分析测试(3)循环覆盖测试(4)逻辑覆盖测试
11.需求规格说明书的作用不应该包括(D)。
A、软件设计的依据 B、用户与开发人员对软件要做什么的共同理解
C、软件验收的依据 D、软件可行性研究的依据
12.结构化设计方法在软件开发中用于(A)。
A、概要设计 B、详细设计 C、程序设计 D、测试用例设计
13.软件结构使用的图形工具,一般采用(C)图。
A、DFD B、PAD C、SC D、ER
14.JSP方法是一种面向(D)的设计方法。
A、对象 B、数据流 C、控制结构 D、数据结构
15.程序设计语言的技术特性不应包括(D)。
A、数据结构的描述性 B、抽象类型的描述性
C、数据库的易操作性 D、软件的可移植性
16.软件测试中,白盒法是通过分析程序的(B)来设计测试用例的。
A、应用范围 B、内部逻辑 C、功能 D、输入数据
17.软件维护费用高的主要原因是(C)。
A、人员少 B、人员多 C、生产率低 D、生产率高
18..瀑布模型本质上是一种(A)模型。
A、线性顺序 B、顺序迭代 C、线性迭代 D、及早见产品
19..软件质量必须在(D)加以保证。
A、开发之前 B、开发之后
C、可行性研究过程中 D、设计与实现过程中
20.确认测试主要涉及的文档是(A)。
A、需求规格说明书 B、概要设计说明书
C、详细设计说明书 D、源程序
三、简答题
1.分析软件危机产生的主要原因有哪些?
答:
导致软件危机的主要原因有:
(1)软件日益复杂和庞大
(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发费用不断增加
2.说明结构化程序设计的主要思想是什么?
答:
(1)自顶向下、逐步求精的程序设计方法
(2)使用3种基本控制结构、单入口、单出口来构造程序。
3.软件测试包括哪些步骤?
说明这些步骤的测试对象是什么?
答:
(1)单元测试,测试对象为单元模块
(2)集成测试,测试对象为组装后的程序模块(3)确认测试,测试对象为可运行的目标软件系统
4.需求分析与软件设计两个阶段任务的主要区别是什么?
答:
需求分析定义软件的用户需求,即定义待开发软件能做什么;软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。
5.说明软件测试和调试的目的有何区别?
答:
测试的目的是判断和发现软件是否有错误,调试的目的是定位软件错误并纠正错误。
6.什么是软件工程?
答:
软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
7.软件工程的目的:
就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统。
8.OOA(面向对象的分析)和OOD(画向对象的设计)与结构化分析和设计之间的区别是什么?
:
一,OOA/OOD中的思维过程,发现过程,以及用户、分析员、设计人员之间的交流与结构化分析/设计是本质不同的;二,结构化分析和设计之间存在鸿沟,面向对象分析和设计之间不存在鸿沟。
9.UML的主要特点:
(1)统一的标准,已成为面向对象的标准化的统一的建模语言。
(2)面向对象。
(3)可视化、表示能力强大。
(4)独立于过程,不依赖于特定的软件开发过程。
(5)概念明确,建模表示法简洁,图形结构清晰,容易掌握使用。
10.UML和程序设计语言的关系:
用UML是对一个系统建立模型,而程序设计语言是用编码实现一个系统。
一些CASE工具可以根据UML所建立的系统模型来产生程序设计语言代码框架。
11.用例在RUP过程的各个阶段中的应用:
(1)在初始阶段,应该了解项目范围,并且为其创建商业用例。
(2)在细化阶段,将进行需求分析和风险分析,开发出基本的体系结构。
在此阶段需要开发更细节化的用例。
(3)在构造阶段,以用例作为设计和开发测试计划的起点,更加细节化的用例可作为每一次迭代分析的一部分进行开发;(4)在交付阶段,把已经开发出的项目完善成为产品。
此阶段使用用例来开发用户指南和培训手册。
12.什么是模型?
开发软件为何要建模?
答:
模型是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。
在对目标系统进行分析的初级阶段,模型提供了组织大量信息的一种有效机制;模型建立起来后,要经受用户和领域专家的严格审查,发现错误改正错误,最终使软件开发人员对问题有了透彻的理解,从而为后续的开发工作奠定了坚实的基础。
13.在用例中主要有两种方法来处理时间,分别画图举例说明:
(1)把时间当作一个执行者,让时间执行者来启动用例。
如示例1。
(2)把时间当作系统的一部分,用例在某个时间自己启动。
如示例2。
示例1示例2
14.比较“三层体系结构模式”、“管道和过滤器型体系结构模式”以及“面向对象的体系结构模式”对于系统功能的处理方式。
答:
在三层体系结构模式中,每一种功能都存在于三个地方—用户接口、业务规则、数据库。
在管道和过滤器型体系结构模式中,各种功能则可以只通过数据相互作用。
面向对象的体系结构模式把每一个功能都表示成独立的、自我包含的部分。
15.将登录作为一个独立的用例(如图)来处理有何优点?
此时,对于其他两个用例应做何种处理?
答:
这种方法的优点在于登录的用例只描述了登录,别无其他内容。
图表文本清晰、简单易懂,系统灵活性得到提高。
在其他用例中包含了一个前置条件,此前置条件表明只有在用户登录有效之后,该用例才能被执行。
四、名词解释
1.需求分析:
需求分析是指开发人员要准确理解用户的需求,进行细致的调查分析,将用户非形式的需求陈述转化成完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
2.面向对象设计:
是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。
或者说,面向对象设计就是用面向对象观点建立求解域模型的过程。
3.结构化设计:
面向数据流的设计是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构,因此又称结构化设计(SD)。
4.结构化分析:
是根据分解与抽象的原则,按照系统中数据处理的流程,用数据图来建立系统的功能模型,从而完成需求分析工作。
5.原型:
是指模拟某种产品的原型模型。
软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特征。
6.模型:
是为了理解事务而对事物做出一种抽象,它忽略不必要的细节,只提取与事务相关的特性。
7.瀑布模型:
是将软件生存各个活动规定为依线性顺序联接的若干阶段的模型。
它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试和维护。
它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。
8.增量模型:
是在项目的开发工程中以一系列的增量方式开发系统。
增量方式包括增量开发和增量提交。
增量开发是指在项目开发过程中以一定的时间间隔开发部分工作软件;增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应稳当。
增量开发和增量提交可以同时使用,也可单独使用。
9.对象模型:
表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。
10.类:
具有相同或相似性质的对象的抽象就是类。
11.对象:
是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
类的具体化就是对象,也可以说类的实例是对象。
12.多态性:
指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。
不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
13.风险分析:
实际上就是贯穿在软件工程上的一系列风险管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监督,它能让人们主动“攻击”风险。
14.模块:
模块在程序重视数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素,如高级语言中的过程、函数、子程序等等。
15.UML:
统一建模语言的简称,是对软件密集型系统中的制品进行可视化、详述、构造和文档化的语言。
16.RUP:
是RationalUnifiedProcess的缩写,即由Rational公司提出的一个综合的开发软件的过程。
RUP由四个主要的部分组成:
初始、细化、构造和交付。
17.系统:
是指你打算开发的任何事物,它可能是软件、硬件或过程。
18.项目:
是指为了建立一个系统而做的所有事情,包括制定计划、安排进度以及归档等。
19.执行者:
是同系统交互的所有事物,例如,人、其他的软件、硬件设备、数据存储或者网络。
20.基本路径:
是在进行用例描述时,一系列没有分支和选择的简单陈述句。
每一步都假设一切都是正确的,每一步选取最通用的方式。
21.场景:
你所选择的任何一种贯穿用例的特定路径。
22.CRUD:
指维护数据时的创建、读取、更新以及删除功能。
五、填空
1.概括地说,软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
2.软件危机包含下述两方面的问题:
如何开发软件;如何维护软件。
3.喷泉模型使软件开发过程具有迭代性和无间隙性性。
4.可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目是否值得开发。
5.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。
6.软件设计是一个把软件需求转换为软件表示的过程。
7.详细设计的目标不仅使处理过程逻辑上正确,还应使处理过程清晰易读。
8.增量模型适合于开发需求不明确不明确、设计方案有一定风险的软件项目。
9..要覆盖含有循环结构的所有路径是不可能的,一般通过限制.循环次数来测试。
10.软件生存周期中时间最长、花费的精力和费用最多的一个阶段是.维护阶段。
11.对象之间进行通信的构造叫做消息。
12.计算机辅助软件工程这一术语的英文缩写为CASE。
13.增量模型适合于软件需求不明确、设计方案有一定风险的软件项目。
14.结构化分析方法的分析策略是自顶向下逐步求精。
15.可行性研究实质上是要在较高层次上以较抽象的方式进行需求分析和设计的过程。
16.衡量模块独立性的两个定性标准是耦合性与内聚性。
17.维护阶段是软件生存周期中花费精力和费用最多的阶段。
18.继承性是子类自动共享其父类的数据结构和方法机制。
19.在面向对象方法中,人们常用状态图描述类中对象的动态行为。
20.规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称该软件为容错软件。
21.面向对象技术充分体现了分解,抽象,模块化,信息隐蔽等思想,可以有效地提高软件生产率,缩短软件开发时间,提高质量。
22.在UML中,关系有4种类型,分别是依赖,关联,泛化,实现。
23.RUP的特点是迭代和风险驱动的软件过程。
24.通过确定执行者和用例来确定系统边界。
25.用例的每一步都应该是一个简单的陈述句,缺省时这些步骤按时间顺序组织。
26.可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项目是否能够开发。
27.程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是工程化。
28.喷泉模型是一种以需求分析为动力,以对象为驱动的模型。
29.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。
30.可行性研究需要从以下三个方面分析研究每种解决方法的可行性:
技术可行性、经济可行性、操作可行性。
31.可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得开发,其中的问题能否解决。
32.判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都考虑到。
可将两种工具结合起来,先用判定表做底稿,在此基础上产生判定树。
33.软件工具的发展特点是软件工具有单一工具向多个工具集成化方向发展。
重视用户界面的设计,不断的采用新理论和新技术。
软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。
34.可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。
35.结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。
36.投资回收期就是累计的经济效益等于最初的项目投资所需的时间。
37.详细描述处理过程常用三种描述工具:
图形、表格和语言。
38.数据流图中,每个加工至少有一个输入流和一个输出流。
39.结构化设计以数据流为基础映射成软件结构。
40.当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时,使用判定表或判定树较好。
41.由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。
42.有两类维护技术:
在开发阶段是用来减少错误、提高软件可维护性面向维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技术。
43.软件开发中原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性。
44.任何程序都可由顺序、选择、重复三种基本控制结构构造。
45.测试用例应有输入数据和预期的输出数据两部分组成。
这样便于对照检查。
46.需求分析阶段产生的最重要的文档之一是需求规格说明书。
47.项目开发计划是一个管理性文档。
48.软件配置管理,简称SCM,软件配置项简称SCI。
49.在算法描述工具中,PAD图可自动生成程序。
由机器自动通过走树的办法生成相应的源代码,大大提高软件的生产率。
50.在CASE集成中,控制集成支持工作台或环境中一个工具对系统中其它工具的访问。
过程集成是指CASE系统嵌入了关于过程活动、阶段、约束和支持这些活动所需的工具的知识。
51.解决一个复杂问题,往往采取的策略是分解。
52.效益分析有有形效益和无形效益两种。
53.两个模块都是用同一张表,这种耦合称为公共耦合。
54.一个模块把数值作为参数传送给另一个模块,这种耦合方式称为数据耦合。
55.一个模块内部各程序段都在同一张表上操作,这个模块的内聚性称为通信内聚。
56.在SA方法的需求描述工具中,数据流图描述系统的分解,即描述系统有哪几部分组成,各部分之间有什么联系等等。
数据字典定义了数据流图中每一个图形元素;结构化语言、判定表或判定树则详细描述数据流图中不能被再分解的每一个加工。
57.软件项目计划是可行性研究阶段的结果产品。
但由于可行性研究是在高层次进行系统分析,未能考虑软件系统开发的细节情节,因此软件项目计划一般在需求分析阶段完成后才定稿的。
58.信息隐蔽指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说是不能访问的。
59.同一个类中的共享是指同一个类中的对象有着相同的数据结构和相同的行为特征。
60.通过抽象,可以确定组成软件的过程实体。
通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。
61.IPO图描述分层图中一个模块的输入、输出和处理内容。
62.软件是一种逻辑产品,它与物质产品有很大区别。
63.数据流图中的箭头表示数据流。
64.软件测试时需要三类信息:
软件配置、测试配置、测试工具。
65.基于IDEF0图的设计也是结构化设计技术之一,它以系统的功能模型和信息结构为基础设计软件结构。
66.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素,表达了系统中各种元素之间的信息流动情况。
67.桩模块是用来代替被测试模块所调用的模块,它的作用是返回被测模块所需的信息。
68.建立数据字典一般的两种形式是手工建立和利用计算机辅助建立并维护。
69.汇编语言是面向机器的,可以完成高级语言无法满足要求的特殊功能,如与外部设备之间的一些接口操作。
70.黑盒测试是功能测试,因此设计测试用例时,需要研究需求规格说明书和概要设计说明书中有关程序功能或输入、输出之间的关系等信息,从而与测试后的结果进行分析比较。
71.在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。
子类继承了多个父类的数据结构和方法,则称为多重继承。
72.由于数据流是流动中的数据,所以必须有流向。
除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。
73.投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。
项目的纯收入是指在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。
74.程序设计语言的简洁性是指人们必须记住的语言成分的数量。
人们要掌握一种语言,需要记住的成分数量越多,简洁性越差。
75.不同对象的同一属性可以具有相同或不同的属性值。
76.软件开发划分的各阶段任务尽可能相对独立,同一阶段任务性质尽可能相同。
77.瀑布模型是将生存周期各活动规定为线性顺序联接的若干阶段的模型。
78.成本效益分析的目的是从经济角度评价开发一个软件项目是否可行。
79.在需求分析阶段要进行以下几方面的工作:
问题识别、分析与综合、导出软件的逻辑模型、编写文档。
80.静态冗余常用的有:
三模冗余TMR和多模冗余。
81.McCabe质量度量模型,针对面向软件产品的运行、修正、转移。
82.程序设计语言的局部性是指语言的联想性。
在编码过程中,由语句组合成模块,由模块组装成系统结构,并在组装过程中实现模块的高内聚,低耦合,使局部性得到加强。
83.软件复杂性度量的参数主要有规模、难度、结构和职能度。
84.项目开发计划的主要内容有:
项目概述、实施计划、人员组织及分工、交付期限。
85.可行性研究要在较高层次上以较抽象方式进行需求分析和设计。
86.软件工程是一门综合性交叉学科,计算机科学着重于原理和理论,软件工程着重于建造软件系统。
87.维护的副作用有编码副作用、数据副作用、文档副作用三种。
88.若年利率为I,不计复利,P元在n年后的价值F=P*(1+n*i)
89.软件结构是以模块为基础而组成的一种控制层次结构。
90.软件设计阶段产生的最重要的文档之一是概要设计说明书。
91.独立路径是指包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条在其它独立路径中未有过的边的路径。
92.各模块经过单元测试后,将各模块组装起来进行集成测试,以检查与设计相关的软件系统结构的有关问题。
93.开发过程管理包括项目计划和控制和任务管理等。
94.临时维护小组采用“同事复审”或“同行复审”等方法来提高维护工作的效率。
95.、数据字典中的加工逻辑主要描述该加工做什么,即实现加工的策略,而不是实现加工的细节,它描述如何把输入数据流变换为输出数据流的加式规则。
96.为了较完整的描述用户对系统的需求,DFD应与数据库中的ER图结合起来。
97.纯收入是软件生存周期内累计经济效益与投资之差。
98.反映软件结构的基本形态特征是深度、宽度、扇入和扇出。
99.若年利率为I,不计复利,n年后能收入F元的现在价值p=F/(1+n*i)。
100.在一个模块中,功能状态与接口反映模块的外部特性,逻辑反映它的内部特性。
101.硬件与软件一起构成完整的计算机系统。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 练习题
![提示](https://static.bdocx.com/images/bang_tan.gif)