当前位置:文档之家› 软件工程基础习题集答案

软件工程基础习题集答案

软件工程基础习题集答案
软件工程基础习题集答案

《软件工程基础》习题集答案

第一章概述

1.什么是软件危机,它有哪些典型表现?

所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。

软件危机的典型表现主要有:

a. 开发成本和进度不能准确估计

b. 开发出来的软件不能满足用户的要求

c. 软件的可维护性差

d. 软件质量不可靠

e. 软件成本在系统中的比重逐年上升

f. 软件开发生产率的提高速度不够

2.简述产生软件危机的原因和解决的思路。

软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。

解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。

3.什么是软件工程?它有哪些本质特性?

软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。

其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。

4.软件工程是如何用来消除软件危机的?

软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。

6.简述软件的定义。

软件=程序 + 数据 + 文档

7.软件工程的目的是什么?

为高质量的软件开发提供一个科学的体系框架。

8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?

软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。

软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。

9.简述软件工程的基本原理。

软件工程有7条基本原理:

1.严格按照软件生命周期计划进行管理

2.坚持进行阶段评审

3.实行严格的产品控制

4.采用先进的程序设计技术

5.结果应能清楚的审查

6.开发小组成员应少而精

7.承认不断改进软件工程实践的必要性

10.软件工程的基本开发原则有哪些?

软件工程的基本开发原则有:

1.模块化

2.抽象和信息隐蔽

3.模块的高内聚和低耦合

4.确定性

5.一致性

6.完备性

11.构成软件工程的基本元素有哪些?

除了前面给出的软件工程三大要素,还应该包括控制和质量保证。这里的控制,即规模控制、成本控制、复杂性控制等。

12.什么是软件过程?它与软件工程方法学有何关系?

软件过程是指为了获得高质量软件产品,在软件工具支持下,由软件人员完成的一系列软件工程活动。

软件过程规定了开发软件所需完成的各项任务步骤。过程步骤的设定与软件生命周期、生命周期模型、软件开发工具,以及参与开发的人员等诸方面因素有关。

13.什么是软件生命周期?什么是软件生命周期模型?

软件如同自然界任何事物一样,都有其孕育、诞生、成长、成熟、衰亡的生存过程。软件的这一过程,称为软件生命周期。

软件生命周期模型也称软件开发过程模型,是为了解决产业环境中的实际问题,而提出的开发策略。是反映整个软件生命期中,系统开发、运行、维护等实施活动的一种结构框架。

14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。

软件生命周期方法学是软件工程的传统途径,划分阶段步骤的目的和实质是:控制开发工作的复杂性,通过有限步骤,把抽象逻辑概念,转化为具体物力

实现。

15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围。

1.瀑布模型。

瀑布模型广为人知和历史悠久,其优势是规范及文档驱动的方法。但问题是,往往不能够真正满足用户的需求。

适用于传统软件工程领域的结构化开发。

2.原型模型。

是为了克服瀑布模型的缺点而提出来的。通过快速构建一个在机器上可运行的原型系统,让用户试用原型,并收集反馈意见的办法,来获取用户真实的需求。

3.螺旋模型。

螺旋模型适用于大型软件项目,比起之前的其它模型而言,有其一定的优越性,但这些优越性并不是绝对的。主要体现在对开发人员的风险评估经验和专门知识的要求较高。如果项目风险较大,而开发人员的水平较低,不能准确的识别和分析风险,则势必造成重大损失。

4.增量模型。

具有在软件开发早期阶段使投资获得明显回报和交易维护的优点,但是要求软件具有开放的结构。

第二章可行性研究

1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?

可行性研究的目的是用最小的代价,在尽可能短的时间内确定问题是否可解决,以及是否值得解决。

可行性研究的任务不是解决问题,而是确定是否可解/值得解。

2.应该从哪些方面研究目标系统的可行性?

主要从以下几个方面进行可行性研究:

1. 技术可行性。以现有技术,能否在预定时间内完成该系统开发。

2. 经济可行性。通过成本-效益分析,估算系统的整体经济效益是否满足要求。

3. 操作可行性。分析系统的运行方式、操作规程是否适应用户应用需要。

4. 社会可行性。分析系统在法律、社会、市场等方面的认可度。

3.可行性研究有哪些工作步骤?

(1) 复查定义,确定系统规模和目标。

(2) 研究老系统

(3) 导出高层逻辑模型(conceptual design)

(4) 重新定义

(5) 导出多种解法

(6) 推荐行动方针

(7) 开发计划(粗略)

(8) 审查、存档

4.简述系统流程图在可行性研究中的作用。

系统流程图是概括的描述物理系统的传统工具。系统流程图反映的是信息在系统各部分间流动的情况。

系统流程图可以帮助了解和分析系统,以概括的方式表达对系统的认识,并可以描述未来物理系统的概貌。

5.简述数据流图在可行性研究中的作用和用途。

数据流图在可行性分析中可以帮助分析和描绘数据在软件中流动和被处理的逻辑过程,用图形的方式描述系统的逻辑功能,是系统分析员和用户之间理想的通信工具。

6.简单描述数据字典的内容和定义数据的方法。

数据字典主要由下列4种元素定义组成:

1.数据流

2.数据流分量

3.数据存储

4.处理

除了数据定义外,数据字典还应包含一些关于数据的其它信息。

定义数据的方法通常采用自顶向下分解的方式。并由顺序、选择、重复三

种基本数据元素类型组成数据。

7.说明软件计划的内容和目标。

软件计划的内容=项目任务范围 + 环境资源 + 工作量 + 进度

软件计划的目标是为了提供一个框架,以便于管理者对资源、成本和进度等进行合理的估算。

8.什么是软件范围?定义软件范围需要哪些信息?

软件范围就是在技术和管理层面上都是无二义性和可理解的项目范围,是软件开发各阶段的工作依据。

定义软件范围需要以下信息:

a. 与用户、总体目标及利益相关的问题。

b. 有利于系统分析员理解的问题。

c. 集中于交流效果的问题。

9.简述软件开发环境资源的三个层次。

软件开发环境资源由三个层次构成:开发环境、软件构件以及最重要的资源——人。

10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?

每一类资源都有四个特征:资源描述、可用性说明和资源提供的时间、资源使用的延续时间。

可以为制定软件计划估算软件开发所需的资源。

11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?

编制进度计划的常用工具主要有甘特图和网络计划法。

甘特图的优点是简单,能动态地反映开发进展;缺点是难以反映多个任务间的逻辑关系。

网络计划法则恰好弥补了甘特图的缺点,最适合反映多个工作之间的逻辑关系。

12.主要的成本估计技术有哪些?其依据的主要是什么?

主要有,代码行技术。

是一种基于规模的分解估算:

D= f(vi)

以及基于问题的分解估算:

EV=(Sopt+4Sm+Spess)/6

还有功能点技术。这种技术以功能点(FP)为单位,度量软件的规模。

由于项目本身的复杂性,因此,成本估计技术主要采用“分而治之”的分解技术对软件项目进行估算。

13.为什么说成本估计是不可能精准的?

那是由于太多的变化因素——人员、技术、环境、策略、复杂性等等,使得成本估算永远不可能精确。

14.进行成本/效益分析的方法主要有哪些?

常用成本/效益分析的方法主要有:

(1) 货币的时间价值

(2) 投资回收期

(3) 纯收入

(4) 投资回收率

16.如何对制定完成的软件计划进行复审?为什么要复审?

软件计划的复审通常涉及有关软件工作范围和软硬件资源问题等。复审应该邀请用户参加,用户可提出建议,并与开发人员最终商定内容。复审内容分为技术和管理两个方面:

技术方面需要考虑的问题有:

系统的任务是否合理;

系统的给你复杂性是否与开发成本、进度以及风险一致;

系统规格说明书是否足够充分;

系统性能要求是否恰当

管理方面需要考虑的问题有:

计划中描述的工作范围是否符合用户需求?

计划中对资源的描述是否有效、合理?

计划中系统的开发成本与进度要求是否合理?

计划中人员的安排是否合理?

系统开发存在哪些风险?

复审可以尽早发现错误,复审是软件质量保证的重要措施。

第三章需求分析

1.为什么要进行需求分析?通常对软件系统有哪些需求?

需求问题是软件工程项目失败的主要原因。一个高质量的软件,很大程度上取决于对要解决的问题的认识,以及如何准确的表达用户的需求。需求分析就是要解决这个问题。

通常,对一个软件系统的需求可以有功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求等多个方面。

2.怎样与用户有效地沟通,以获得用户的真实需求?

访谈、情景分析,以及面向数据流的自顶向下求精等方法,编制简易的系统规格说明文档,创建原型等,是获取真实需求的有效方法。

3.需求分析的任务是什么?

确定对待开发系统的综合要求。

4.通常系统的需求可以分为哪几个层次?

一般可以分成5个层次:

(1) 功能需求:系统必须做什么?

(2) 业务需求:反映客户组织机构对系统高层次的目标要求。

(3) 运行需求:运行环境、软硬件配置等。

(4) 属性需求:包括用户关心的属性,如效率、灵活性、完整性、可靠性等;开发者关心的属性,如可维护性、可复用性、可移植性等。

(5) 未来可能的扩充需求:如HDIS各组的合并,3维虚拟现实的效果等等。

5.进行需求分析的步骤有哪些?

1.确定系统的综合要求

2.分析系统的数据要求

3.导出逻辑模型

4.修正系统开发计划

6.简述建立原型模型对软件需求分析的作用。

可以快速构建旨在演示目标系统主要功能的可运行程序,帮助用户确定及提供更为精准的需求,以利用户和开发者能够在目标系统应该“做什么”这一问题上尽快达成一致。

7.解释实体-联系图及其用途。

实体-联系图是按照用户的观点对数据建立的模型。描述从用户角度看到的数据,反映用户的现实环境,并且与在软件系统中的实现方法无关。

8.说明为什么需要进行需求验证及验证的步骤有哪些?

进行需求验证是为了确保软件开发的质量,降低开发成本。通常对需求进行验证的步骤有:验证需求的一致性、验证需求的现实性、验证需求的完整性和有效性。

第四章总体设计

3.简单说明系统总体设计的步骤。

典型的总体设计包括以下9个步骤:

1、确定最佳方案

2、选取合理方案

3、推荐最佳方案

4、功能分解

5、软件结构设计

6、设计数据库

7、制定测试计划

8、书写文档

9、审查和复审

5.为什么要尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合?

减少模块之间的关联度,提高模块的独立性。

因为内容耦合会导致一个模块修改另一个模块的内容,使得程序逻辑发生严重问题。

而公共耦合是若干模块通过一个公共数据环境相互作用,公共部分的改动将影响所有调用它的模块,公共部分的数据存取无法控制,并且复杂程度也会随耦合模块的个数增加而增加。

控制耦合是一个模块通过传递开关、标志、名字等控制信息,明显地控制选择另一个模块的功能。由于接口单一,因此仍然会影响被控模块的内部逻辑。

而数据耦合只是模块间通过数据参数来交换I/O信息,因此不会对其它模块产生任何等影响。

6.为什么模块的规模要适中?

过大不易理解;太小则接口开销过大。

7.请说明为什么模块控制的宽度和深度要适度。

深度过大表示分工过细,而宽度过大则表示系统复杂度大,所以模块控制的宽度和深度要适度。

8.简述面向数据流设计方法的基本思想。

将由数据流图描绘的信息在系统中加工和流动的情况映射成软件结构。

9.常用数据流类型有哪些?

变换流和事务流。

10.面向数据流的设计方法主要有哪几个步骤?

主要有下面7个步骤:

1.复查基本系统模型

2.复查并精化数据流图

3.确定数据流图具有变换特性还是事务特性

4.确定输入流和输出流动边界,从而孤立出变换中心

5.完成“第一级分解”

6.完成“第二级分解”

7.使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

第五章详细设计

1.详细设计的任务是什么?

包括模块的算法设计、模块内的数据结构设计、模块接口设计、其它根据软件特点需要完成的设计、模块测试用例设计、设计文档编写、设计评审。

2.在对系统做详细设计时,应遵循哪些原则?

①模块的逻辑描述应清晰易读、正确可靠;

②设计的处理过程应该简明易懂;

③选择恰当的描述工具来描述模块算法。

3.简述结构化设计的特点。

①自顶向下、逐步求精;

②具有单入、单出的控制结构(取消GOTO语句)

4.结构化程序设计中有哪几种基本控制结构?分别描绘在程序流程图、盒图和PDA图中这些基本控制的图例。

(1) 顺序结构

(2) 选择结构

(3) 先判定型循环结构

(4) 后判定型循环结构

(5) 多情况选择

7.试说明ISO为什么要建议停止使用程序流程图,而推荐使用PDA图?

由于程序流程图中的GOTO语句回严重地损害程序结构,而无法实行结构化设计。PDA图则既吸取了程序流程图好学、好用、好懂,方便、灵活的优点,又保留了N-S图结构化设计的特点,很好地满足了软结构构设计图形工具的要求,以及PDA图所具有的①结构清晰,层次分明,易读;②支持逐步求精的设计思想;③容易将PAD自动转换为高级语言源程序等特点,因此,ISO要推荐使用PDA图。

9.试说明Jackson方法是一种怎么样的程序设计方法。它有哪些工作步骤?

Jackson方法是以数据结构(data structure)为基础设计每个模块的处理过程,将数据结构转化成程序结构。具体工作步骤有:

第1步:用Jackson图描述 I\O 的数据结构

第2步:在两个图中指出有直接因果关系、可以同时处理的单元

第3步:将数据结构映射到程序结构

第4步:列出所有操作条件,并分配到上幅程序结构图中

第5步:用Pseudocode 表示程序

第六章实现

1.说明什么是程序编码?为什么程序设计语言的特点和编码风格会影响到程序的可靠性、可读性、可测试性和可维护性?

所谓“编码”,就是将在低级抽象层次得到的详细设计结果,翻译成用某种程序设计语言书写的程序。是软件设计的自然结果。

而程序设计语言是否有理想的结构化、模块化机制,是否有可读性好的控制结构和数据结构等特性,以及程序设计语言提供的编译、软件工具等,再加上程序的设计风格会很深刻的影响软件的质量和可维护性、可测试性、可靠性等。

2.用户界面设计的最一般原则,即所谓“黄金规则”是什么?

1.置用户于控制之下;

2.减少用户的记忆负担;

3.保持界面一致。

3.软件界面设计包含了哪几个方面的基本内容?

界面设计包括三个方面:1.软件构件间接口;2.软件与其它系统的接口;

3.软件与操作者之间的接口,即用户界面。

4.用户界面提供系统服务的方式通常有哪两种?

命令驱动和屏幕菜单驱动

5.WIMP界面是屏幕菜单驱动用户界面的一种形式,其设计准则有哪些?

(1) 明确的动作:在屏幕上指点并操纵对象

(2) 即时反馈:操作结构即见

(3) 增量效应:图标应被拖曳连续移动,而非跳跃

(4) 可视交互:交互操作与用户概念模型匹配

(5) 剥皮式学习:学习系统功能复杂性逐层加深

(6) 可逆动作:也即应有退回操作

(7) 事先验证:只允许合法操作产生效果

6.为什么说软件界面设计的质量会直接影响到用户对软件产品的评价?

用户界面(User-interface)又称人机界面(man-computer interface),是用户和计算机联系的中间媒介,是系统中最重要、最关键的部分之一。用户界面设计的好坏,直接影响到系统设计的成败。

这是因为,如果一个界面设计的不好,也即通常所说的用户界面不友好,可以使用户在使用时感到不便,甚至制造麻烦,系统就难以发挥应有的效益,甚至可能被用户弃用。

7.什么是系统响应时间?系统响应时间有哪些重要属性?

系统响应时间指从用户完成某个控制动作,到系统给出预期响应的时间。

系统响应时间有2个重要的属性:长度和易变性。

8.在设计软件系统的用户帮助设施时,需要注意解决哪些问题?

1.在用户与系统交互期间,是否任何时候都能获得关于系统任何功能的帮助信息?

2.用户怎样请求帮助?

3.怎样显示帮助信息?

4.用户怎样返回到正常的交互方式中?

5.怎样组织帮助信息?

9.软件出错处理设计,即软件安全性设计。一个交互式出错处理程序应该具备哪些功能和属性?

1.信息应该使用用户可以理解的术语描述。

2.信息应该提供有助于从错误中恢复的建设性意见。

3.信息应该指出错误可能导致的后果。

4.信息应该伴随感官提示。

5.信息不能带有指责色彩。

10.测试的最基本目标是什么?

以尽可能小的代价,发现尽可能多的错误。

11.软件测试的原则有哪些?

①应当把“尽早和不断的测试”作为座右铭

②测试应由独立的专业测试机构来完成

③测试工作要全面,但不可能实现“穷举”

④只能尽可能查错,不能证明程序中没有错

⑤软件测试符合2-8(Pareto)原理

⑥应妥善保存测试文档

⑦制定严格、合理的测试计划

⑧错误经过修改后,相关的测试必不可少

12.软件测试的方法有哪几种?

黑盒测试和白盒测试。

13.简单说明什么是白盒测试,什么是黑盒测试。

黑盒测试是把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程的测试方法。黑盒测试又称功能测试。

白盒测试是对程序的执行细节进行测试,通过设计测试数据,验证程序模块的每个路径的执行情况。白盒测试又称结构测试。

14.简述软件测试的步骤。

(1) 单元测试——程序设计 & 代码bugs

(2) 子系统测试——模块连接

(3) 系统测试——需求确认 & 系统设计

(4) 验收测试——用户加入

(5) 平行运行——新旧系统比较运行结果

16.为什么单元测试必须由编程者自己完成?

单元测试是对程序逻辑结构的测试。而对程序结构最为熟悉的,莫过于编

程者。再者,高质量的程序模块是构造系统的基础,因此编程者必须向下一道工序提交符合质量要求的产品。

17.单元测试的主要手段有哪些?

代码审查、计算机测试等。

18.单元测试主要从哪5个方面进行?

主要测试以下五个方面:

1. 模块接口

2. 局部数据结构

3. 重要的执行通路

4. 出错处理通路

5. 边界条件

19.为什么人工代码审查十分重要?

一次审查可发现多个错误,不必改一个测一个。

20.集成测试主要有渐增式测试、非渐增式测试两种,试述两种方式的异同点。

渐增式测试:可以较早发现模块间的接口错误、出现的错误往往跟最新加入的模块有关、在不断集成的过程中使模块不断在新的条件下受到新的检测,测试更彻底,但较非渐增式测试费时。

非渐增式测试由于最后才组装,因此错误发现得晚、发现错误后难以诊断定位,但可以同时并行测试所有模块,能充分利用人力。

21.描述集成测试的两种策略,并比较它们的优缺点。

自顶向下测试和自底向上测试两种。

自顶向下测试的优点是不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,在早期发现上层模块的接口错误。主要缺点是需要存根程序,可能遇到与此相联系的测试困难,底层模块的错误发现较晚,而且对人力的使用也不利。

而自底向上测试的优缺点与自顶向下测试的优缺点正好相反。

22.什么是回归测试?回归测试的测试用例集如何确定?

回归测试是指重新执行已经做过的测试的某个子集,以保证系统在发生调试、功能变化等事项后,没有带来非预期的副作用。

回归测试的测试用例集按以下方法确定:

1.检测软件全部功能的代表性测试用例。

2.专门针对可能受修改影响的软件功能的附加测试。

3.针对被修改过的软件成分的测试。

23.什么是确认测试?确认测试的任务是什么?如何确认其范围?

验收软件的有效性(功能和性能达标)。

确认测试的工作范围主要有:

1.按合同规定审查软件配置;

2.设计测试计划,使通过测试保证软件能满足所有功能、性能要求;

3.文档与程序一致,具有维护阶段所必须的细节;

4.严格按用户手册操作,以检查手册的完整性和正确性。

24.设计测试方案的任务有哪些?

①预定要测试的功能

②设计输入的测试数据

③列出预期结果

25.什么是逻辑覆盖测试法?它主要用于什么测试?

逻辑覆盖测试是一种对程序逻辑通路进行覆盖的测试,通常适用于白盒测试。

26.什么是等价划分法?它主要用于什么测试?

是一种很常用的测试方法。其对测试数据的选择是基于对程序功能的分析,按照程序输入要求和输出要求,选择若干数据进行测试功能的过程。

等价划分法主要用于黑盒测试。

27.什么是边值分析法?它主要用于什么测试?

根据经验,在程序处理的边界最容易发生错误的地方进行测试,主要用于黑盒测试。

28.什么是错误推测法?它主要用于什么测试?

利用有经验的测试者对程序可能发生错误的位置的推测进行测试的方法,主要用于黑盒测试。

29.一个软件的测试策略应该是怎样的?

黑盒设计 白盒补充

①在任何情况下都应首先使用边界值分析的方法;

②必要时用等价划分法补充;

③必要时再用错误推测法补充;

④对照程序逻辑,检查测试方案。

30.什么是调试?调试和测试有什么不同?

测试——发现错误

调试——改正错误

调试与测试的区别在于,调试作为测试的后续工作,主要是解决和排除测试中出现的错误。

31.简单说明调试的方法和策略。

调试过程的关键不是调试技术,而是用来推断错误原因的基本策略。主要有:

①试探法:凭经验猜测。

②回溯法:由症状(symptom)最先出现的地方,沿control flow向回检查。

适用于小型程序。

③对分法:在关键点插入变量的正确值。

④归纳法:从错误症状中找出规律,推断根源。

⑤演绎法:普通 特殊

32.什么是软件的可靠性、可用性和正确性?

软件可靠性是指程序在给定的时间间隔内,按照说明书的规定,成功地运行的概率。

软件可用性是指程序在给定的时间点,按照说明书的规定,成功地运行的概率。

软件正确性是指程序的功能正确。

第七章维护

1.什么是软件维护?

在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。

2.软件维护有哪几种类型?

①改正性维护:诊断和改正错误;

②适应性维护:为了和变化了的环境(如软\硬件升级、新数据库等)适当地配合而修改软件;

③完善性维护:为了增加新功能,修改已有功能,改造界面,增加HELP等,而修改软件;

④预防性维护:为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件。

3.为什么说软件文档维护和代码维护同样重要?

这是因为,软件文档是影响软件可维护性的决定因素。

4.为什么说维护的代价很高?应该怎样做才能降低维护的代价?

一般维护的工作量占生存周期70%以上,维护成本约为开发成本的4倍(满足8-2规则)。维护代价分为:

1.有形代价:费用已上升至总预算的80%;

2.无形代价:

?占用资源以致延误开发;

?修改不及时引起用户不满;

?维护引入新错误,降低了软件质量;等等。

3.维护工作量的经验模型:M = P + K*e c-d

降低维护代价的通常认识是:提高程序的可维护性,这也是软件工程学的主要目的。

5.导致维护成本高企的原因主要有哪些?

软件开发途径不好,导致软件可维护性差,原来的开发人员没有参与维护,维护成本日益高涨等,从维护工作量的经验模型可以看到,维护工作量和成本将呈指数增加。

6.什么是软件的可维护性?

软件可维护性可定性地定义为:维护人员理解、改正、改动和改进这个软件的难易程度。

7.如何提高软件的可维护性?

可以从提高决定软件可维护性的因素着手,这些因素是:可理解性、可测试性、可修改性、可移植性、可重用性、可靠性、可使用性、效率等。

9.为什么说文档是影响软件可维护性的决定因素?

由于长期使用的软件系统在使用过程中会有多次修改的经历,而文档应该记载了这些重要的修改,所以文档比之代码更为重要。

10.什么是软件的系统文档?

系统文档是指软件系统从问题定义、需求说明、设计、实现到验收测试计划等一系列和系统实现密切相关的技术文档。

11.什么是软件的用户文档?

提供用户了解、使用、操作和安装系统的文档资料。

12.什么是可重用性?如何通过提高软件的可重用性来提高软件的可维护性?

可重用性是指同一事物不加修改或稍加修改,就可以在不同环境多次重复使用。大量使用可重用软件构件,可大幅提高软件的可维护性。主要体现在两个方面:

1.可重用构件通常都是组装成功的部件,加上每次重用又都会进一步完善部件,因此可以大幅提高软件的可靠性,而改正性维护要求会降低。

2.很容易修改可重用的软件构件,使之适应新的应用环境,因此软件中使用可重用构件越多,软件的适应性维护和完善性维护也越容易。

13.为什么要进行软件可维护性复审?

目的是提高软件的可维护性。

可维护性复审在软件开放的不同阶段有不同的重点。例如,在分析阶段的复审重点是:可靠性、可移植性、可用性。而编码阶段则主要是:可理解性、可修改性、可移植性和效率。

14.什么是软件的逆向工程和再工程?

软件逆向工程是指当维护对象缺乏必要的文档资料时,分析已有程序,寻求比源代码更高级的抽象表现形式,恢复软件原有设计的过程。换言之,是一个恢复设计的过程。

软件再工程则是以软件工程学为指导,对目标软件进行重新设计、重新编码和测试的过程。

15.逆向工程与再工程与软件的预防性维护有什么样的关系?

预防性维护是为了改进软件未来的可维护性或可靠性,或为了给软件未来的改进奠定更好的基础而修改软件的过程。

预防性维护就是对软件将来可能需要的改动,使用逆向工程与再工程方法对软件进行维护。

16.假设你的任务是对一个已有软件进行重大修改,而且只允许你从以下文档中选取两份:(a)程序的规格说明;(b)程序的详细设计结果(自然语言描述加上某种设计工具表示);(b)源程序清单(其中有适当数量的注解)。

你将选取哪两份文档?为什么这样选取?你打算如何完成这个任务?

应该选择(a)程序的规格说明和(b)程序的详细设计结果。

因为是重大修改,所以需要从修改程序规格说明和详细设计开始,对开发

文档进行重大修改,而源码也会需要重新编制。

第八章面向对象方法学引论

1.为什么要引入面向对象方法学?

1、瀑布模型的缺点:僵化

2、SA - SD - SP 技术的缺点:本质上是基于过程的设计不易被理解;且功能变化往往引起结构变化较大,稳定性不好。系统有明确的边界定义,且系统结构依赖于系统边界的定义,这样的系统不易扩充和修改。数据与操作分开处理,可能造成软构件对具体应用环境的依赖,可重用性(reusability)较差。

2.面向对象方法学有哪4个基本要素?

对象、类、继承、消息

3.面向对象方法学的优点主要有哪些?

1.以object为核心,强调对现实概念的模拟而不是算法。

2.以object模拟实体,需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相应稳定。

3.一个class所有的 instances 都可重用它的代码;由 inheritance 派生出的新的 class 可重用其父类的代码,并且可以修改、扩充而不影响其父类的使用。

4.从稳定性、Class 的独立性强、继承和多态性、容易理解、容易测试、调试等几方面改善了可维护性。

4.什么是“对象”?它与传统数据有何不同?

对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体,可以表示为:对象Object: = 身份ID + 方法Method + 属性Attribute+ 消息Message。

与传统数据相比,对象有以下特点:

①以数据为中心,不设与数据无关的操作;

② Object主动处理而不被动地等待被处理,外部只能通过message请求操作;

③具有黑盒性:外部操作时,无须知道该object内部的数据结构及算法;

④具有并行性:不同object各自独立地处理自身数据,彼此间仅通过传递message完成通信;

⑤模块独立性好:内聚强( ① )、耦合松( ③④ )

5.什么是“类”?

具有相同数据和相同操作的一组对象。

6.什么是“继承”?

子类自动共享父类的attributes 和methods ,而不必重复定义。

7.什么是模型?软件开发为什么要建立模型?

模型就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。

软件开发建立模型是为了帮助我们思考问题、定义术语、作出适当的假设,并帮助我们保持定义和假设的一致性。

对于较为复杂而不能直接理解的系统,特别需要建立模型,其目的是可以减少复杂性。

8.什么是对象模型?建立对象模型时主要使用哪些图形符号?这些符号的含义是什么?

描述系统数据结构。

对象模型具体是描述系统的静态结构。

9.什么是动态模型?建立动态模型时主要使用哪些图形符号?这些符号的含义是什么?

描述系统控制结构。

动态模型具体是表示系统瞬时的控制性质。

10.什么是功能模型?建立功能模型时主要使用哪些图形符号?

描述系统功能。

功能模型具体描述的是表明系统应该做什么。

软件工程期末考试题含答案

一、选择题 1.瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和_。 ( C ), A .详细计划 B .可行性分析 C .运行阶段 D.测试与排 错 2.在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试年勺系统测试阶段的目标( A ) A .需求分析阶段 B .详细设计阶段 C.概要设计阶段 D .可行性研究阶段, 3.软件工程的出现主要是由于(C ) , A.程序设计方法学的影响 B.其它工程科学的影响 C.软件危机的出现 D.计算机的发展, 4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实旅的主要保证是(C) A.硬件环境 B.软件开发的环境 C.软件开发工具和软件开发的环境 D.开发人员的素质 5.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B) A.相互排斥B相互补充C独立使用 D.交替使用 是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C) A.基于瀑布模型的结构化方法 B.基于需求动态定义的原型化方法 C.基于对象的面向对象的方法 D.基于数据的数据流开发方法 7.在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B) A.结构化方法B原型化方法C面向对象的方法 D.控制流方法 8.结构化分析方法是一个预先严格定义需求的方法,它在实施时强调的是分析对象的(B) A.控制流 B.数据流 C.程序流 D.指令流 9.软件开发的结构化生命周期方法将软件生命周期划分成(A) A.计划阶段.开发阶段.运行阶段 B.计划阶段.编程阶段.测试阶段 C.总体设计.详细设计.编程调试 D.需求分析.功能定义.系统设计 10.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C) A.分析阶段 B.设计阶段 C.编码阶段 D.测试阶段

软件工程考试题(带答案)..

一、选择题 1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B) A) 可行性研究,问题定义,需求分析。 B) 问题定义,可行性研究,需求分析。 C) 可行性研究,需求分析,问题定义。 D) 以上顺序都不对。 2.可行性研究主要从以下几个方面进行研究:(A) A)技术可行性,经济可行性,操作可行性。 B)技术可行性,经济可行性,系统可行性。 C)经济可行性,系统可行性,操作可行性。 D)经济可行性,系统可行性,时间可行性。 3 耦合是对软件不同模块之间互连程度的度量。各种耦合按从强到弱排列如下:(C) A) 内容耦合,控制耦合,数据耦合,公共环境耦合。 B) 内容耦合,控制耦合,公共环境耦合,数据耦合。 C) 内容耦合,公共环境耦合,控制耦合,数据耦合。 D) 控制耦合,内容耦合,数据耦合,公共环境耦合。4.在详细设计阶段所使用到的设计工具是:(A) A) 程序流程图,PAD图,N-S图,HIPO图,判定表, 判定树. B) 数据流程图,Yourdon 图,程序流程图,PAD图, N-S图,HIPO图。 C) 判定表,判定树,PDL,程序流程图,PAD图,N- S图。 D) 判定表,判定树,数据流程图,系统流程图,程序 流程图,层次图。 5 按照软件工程的原则,模块的作用域和模块的控制域之间的关系

是:(A) A)模块的作用域应在模块的控制域之内。 B)模块的控制域应在模块的作用域之内。 C)模块的控制域与模块的作用域互相独立。 D)以上说法都不对。 6在软件生命周期中,能准确确定软件系统的体系结构的功能阶段是(C) A.概要设计 B.详细设计 C.需求分析 D.可行性分析 7下面不是软件工程的3个要素的是(C) A过程 B.方法 C.环境 D.工具 8.下面不属于软件的组成的是(B) A程序 B.记录 C.文档 D.数据 9在瀑布模型中,将软件分为若干个时期,软件项目的可行性研究一般归属于(C) A.维护时期 B.运行时期 C.定义时期 D.开发时期 10.在瀑布模型中,下面(C)是其突出的缺点。 A.不适应平台的变动 B.不适应算法的变动 C.不适应用户需求的变动 D.不适应程序语言的变动 11下面不属于软件的特点的是(D)。 A软件是一种软件产品 B软件产品不会用坏,不存在磨损、消耗问题 C软件产品的生产主要是研制 D软件产品非常便宜 12 软件开发工具是协助开发人员进行软件开发活动所使用的软件或环境。下面不是软件开发工具的是(A)。

软件工程试题与答案 (6)

第一章软件工程概述 一. 填空题 1. 软件的发展过程 , , , . 2. 基于软件的工作方式,软件可以划分为 , , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境 . 4. 在计算机系统中,软件是 , 而硬件是 . 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,, . 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤 , , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型 , , , , , . 14. 软件工程面临的问题有 , , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和 . 16.基于软件的功能划分可以把软件划分为 , ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则: , ,和 , 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

软件工程期末考试题3

试卷一 中南大学考试试卷 2006--2006 学年学期时间110分钟 专业年级:总分100分,占总评成绩 100% 注:此页不作答题纸,请将答案写在答题纸上 填空题(本题20分,每小题2分) 1. 瀑布模型是以文档为驱动、适合于()软件项目的开发。 2. 需求分析的基本任务是()。 3. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是()。 4. 根据程序流程图划分的模块通常是()内聚的模块。 5. 软件的分类,按其功能可分为:系统软件、()和应用软件。 6. UML的定义包括UML语义和()两个部分。 7. 客观世界中的若干类,通常有两种主要的结构关系:即分类结构和( )。 8. IDEF1X图用来描述系统的()模型,主要有实体、联系和()三种成分,其中实体可分为独立实体和(),且一个实体只能在图中出现一次。 二、简答题(本题30分,每小题5分) 1. 什么是软件工程?软件工程和计算机科学有何区别?

2. 面向对象方法和结构化方法有何区别与联系? 3. 什么是模块的作用域和模块的控制域?为何要求模块的控制域必须在作用域内? 4. 什么是设计模式?试举例说明组合设计模式的应用。 5.什么是依赖倒置原则?它和开闭原则有何联系? 6. 软件生存期过程和软件生存期模型有何联系?瀑布模型有何特点? 三、绘图题(本题34分) 1. 某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。 (1) 如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房租文件中。 (2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。

软件工程综合练习题

《软件工程》课程练习题 第一章软件工程概述 一、选择题 1、瀑布模型本质上是一种()。 A、线性迭代模型 B、顺序迭代模型 C、线性顺序模型 D、及早见产品模型 2、计算机辅助软件工程,简称()。 A、SA B、SD C、SC D、CASE 3、以下判断正确的是()。 A、所谓软件开发就是编写程序。 B、利用软件工程的思想,已成功的解决了软件危机。 C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。 D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。 4、_____是以提高软件质量为目的的技术活动。 A.技术创新 B.测试 C.技术创造 D.技术评审 5、瀑布模型的存在问题是()。 A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 6、软件生命周期中所花费用最多的阶段是()。 A.详细设计 B.软件编码 C.软件测试 D.软件维护 7、计算机系统就是() A.主机,显示器,硬盘,软驱,打印机等。 B.CPU,存储器,控制器,I/O接口及设备。 C.计算机硬件系统和软件系统。 D.计算机及其应用系统。 8、产生软件危机的原因主要与两个方面的问题有关: A.软件在计算机中很难识别,存在磁盘中也看不到。

B.软件设计对人的智商要求很高,也要求很高的资金投入。 C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确。 D.软件很难理解,硬件也很复杂。 9、软件开发瀑布模型中的软件定义时期各个阶段依次是() A.可行性研究,问题定义,需求分析。 B.问题定义,可行性研究,需求分析。 C.可行性研究,需求分析,问题定义。 D.以上顺序都不对。 10、下列选项中()是软件开发中存在不正确的观念、方法。 A.重编程、轻需求 B.重开发,轻维护 C.重技术,轻管理 D.以上三条都是 二、填空题 1、软件工程的三个基本要素包括()、()和()。 2、一般软件应该有三部分组成:()、()和()。 3、按软件的功能可将软件分成()、()和()等三类。 4、计算机软件的生存期可以分为六个步骤,它们是()、()()、()、软件测试和运行/维护。 5、软件质量是与软件产品满足规定的和隐含的需求的能力有关的()的全体。 6、软件危机是指在()所遇到的一系列严重问题。 7、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是()。 8、喷泉模型是一种以需求分析为动力,以()为驱动的模型。 三、名词解释 1、CASE 2、软件工程 3、计算机软件 2、软件生存期 四、简答题 1、什么是软件危机?其主要表现有那些? 2、程序的可移植性 3、为什么说“CASE领域是一个应用、集成和综合的领域”?

软件工程专业基础综合

《软件工程专业基础综合》考试大纲 第一部分数据结构与算法 考试题型:问答、分析、编程 总分:60分 一、栈(Stack)、队列(Queue)和向量(Vector) 内容: 单链表,双向链表,环形链表,带哨兵节点的链表; 栈的基本概念和性质,栈ADT及其顺序,链接实现;栈的应用;栈与递归; 队列的基本概念和性质,队列ADT及其顺序,链接实现; 队列的应用; 向量基本概念和性质;向量ADT及其数组、链接实现; 二、树 内容: 树的基本概念和术语;树的前序,中序,后序,层次序遍历; 二叉树及其性质;普通树与二叉树的转换; 树的存储结构,标准形式; 完全树(complete tree)的数组形式存储; 树的应用,Huffman树的定义与应用; 三、查找(search) 内容: 查找的基本概念;对线性关系结构的查找,顺序查找,二分查找; Hash查找法,常见的Hash函数(直接定址法,随机数法), hash冲突的概念, 解决冲突的方法(开散列方法/拉链法,闭散列方法/开址定址法),二次聚集现象; BST树定义,性质,ADT及其实现,BST树查找,插入,删除算法;

平衡树 (AVL) 的定义,性质,ADT及其实现,平衡树查找,插入算法,平衡因子的概念; 优先队列与堆,堆的定义,堆的生成,调整算法;范围查询; 四、排序 内容: 排序基本概念;插入排序,希尔排序,选择排序,快速排序,合并排序,基数排序等排序算法基本思想,算法代码及 基本的时间复杂度分析 五、图 内容:图的基本概念;图的存储结构,邻接矩阵,邻接表;图的遍历,广度度优先遍历和深度优先遍历;最小生成树基本概念, Prim算法,Kruskal算法;最短路径问题,广度优先遍历算法,Dijkstra算法,Floyd算法;拓扑排序 第二部分计算机系统基础 考试题型:问答、分析、编程 总分:40分 一、处理器体系结构 内容:CPU中的时序电路、单周期处理器的设计、流水线处理器的基本原理、Data Hazard的处理、流水线设计中的其他问题 二、优化程序性能 内容:优化程序性能、优化编译器的能力和局限性以及表示程序性能、特定体系结构或应用特性的性能优化、限制因素、确认和消除性能瓶颈 三、存储器结构及虚拟存储器 内容:局部性、存储器层级结构、计算机高速缓存器原理、高速缓存对性能的影响、地址空间、虚拟存储器、虚拟内存的管理、翻译和映射、TLB、动态存储器分配和垃圾收集 四、链接、进程及并发编程

软件工程考试题库

软件工程概述 一单项选择 1.软件生命周期一般包括:软件开发期和软件运行期,下述(D )不是软件开发期所应包含的内容。 A需求分析 B 结构设计C程序编制D软件维护 2.软件是一种逻辑产品,它的开发主要是(A )。 A研制B拷贝C再生产D复制 3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是( C )。 A喷泉模型 B 增量模型C瀑布模型D螺旋模型 4.在软件生存周期中,(B )阶段必须要回答的问题是“要解决的问题是做什么?”。 A详细设计 B 可行性分析和项目开发计划C概要设计D软件测试 5.软件产品与物质产品有很大区别,软件产品是一种(C )产品 A有形 B 消耗C逻辑D文档 6.(C )把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。 A 原型模型 B 螺旋模型 C 基于知识的智能模型 D 喷泉模型 7.( B )阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。A概要设计 B 详细设计 C 编码 D 测试 8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是(A )。 A 原型模型 B 瀑布模型 C 基于知识的智能模型 D 变换模型 9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是( C )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是( D )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为(C )。 A可修改性B可靠性C可适应性 D 可重用性 12.软件特性中,一个软件能再次用于其他相关应用的程度称为(B )。 A可移植性B可重用性 C 容错性 D 可适应性 13.软件特性中,(A )是指系统具有清晰的结构,能直接反映问题的需求的程度。 A可理解性B可靠性C可适应性 D 可重用性 14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为( B )。 A可理解性 B 可维护性C可适应性 D 可重用性 15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是(C ). A可理解性B可修改性C可移植性 D 可重用性 16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是( D )。 A有效性B可适应性C正确性 D 可靠性 17.软件特性中,允许对软件进行修改而不增加其复杂性指的是(A )。 A可修改性B可适应性C可维护性 D 可移植性 18.软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是(B )。 A可理解性B可互操作性C可维护性 D 可追踪性 19.软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力指的是( C )。

软件工程考试题(含答案)

软件工程考试题 简答题 1、什么叫软件? 软件就是计算机系统中与硬件相互依存的另一部分,它就是包括程序,数据及其相关文档的完整集合 2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因就是什么? 软件危机就是指在计算机软件开发与维护过程中所遇到的一系列严重问题。包括两点: (1)如何开发软件,以满足对软件日益增长的需求; (2)如何维护数量不断膨胀的已有软件。 软件开发与维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也与软件开发与维护的方法不正确有关。具体表现如下: (1)软件就是逻辑部件而不就是物理部件。 (2)软件的规模越来越大,复杂性越来越大。 (3)轻视需求分析的重要性,轻视软件维护的错误观点与方法。 3、什么叫软件工程? 1968年在第一届NATO会议上的早期定义: “建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。 1993年IEEE的定义: “①软件工程就是:把系统的、规范的、可度量的途径应用于软件开发、运行与维护过程,也就就是把工程应用于软件;②进而研究①实现的途径”。 我们国家最近定义:软件工程就是指导计算机软件开发与维护的工程学科。它采用工程的概念、原理、技术与方法来开发与维护软件,把经过时间考验而证明正确的管理技术与当前能够得到的最好的技术方法结合起来。 4、两种软件工程方法学开发软件时要建立哪些模型? 软件工程方法学包括:传统方法学与面向对象方法学。常用的开发模型有: 瀑布模型(需求稳定,而且可以预先指定) 原型模型(需求模糊或者随时间变化) 增量模型(分析员先作出需求分析与概要设计,用户参与逐步完善) 螺旋模型(将瀑布模型与原型化模型结合起来,并加入了风险分析) 喷泉模型(使开发过程具有迭代性与无间隙性) 5、软件过程模型有哪些?简述它们的特点。 过程模型分为五大类:1、管理过程模型。2、瀑布模型(又称为生命周期模型)。3、增量过程模型:包括增量模型,,RAD模型。4、烟花过程模型:包括原型开发模型,螺旋模型,协同开发模型。5、专用过程模型:包括机遇构建的开发模型,形式化方法模型,面向方面的软件开发模型。 6、什么就是软件生命周期? 一个软件从定义,开发,使用与维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长时期称为生命周期 7、软件生命周期有哪几个阶段与步骤? 三个阶段:定义、开发、维护 八个步骤:问题定义、可行性研究、需求分析;总体设计、详细设计、编码与单元测试、综合测试;运行维护。 8、计算机软件的开发经过哪三个大阶段? 三个阶段:定义、开发、维护 9、软件开发的各阶段的任务就是什么? 定义阶段:问题定义--任务:关于规模与目标的报告书;可行性研究--任务:系统的高层逻辑模型:数据流图,成本/效益分析;需求分析--任务:系统的逻辑模型:数据流图,数据字典,算法描述。 开发阶段:总体设计--任务:系统流程图,成本/效益分析,推荐的系统结构:层次图/结构图;详细设计--任务:HIPO图或PDL 图;编码与单元测试--任务:源程序清单,单元测试方案与结果;综合测试--任务:综合测试方案,结果集成测试,验收测试,完整一致的软件配置。 维护阶段:软件维护--任务:维护记录以及改正性维护,适应性维护,完整性维护与预防性维护

软件工程考试试题(含答案)

一、填空题(每空1分,共25分) 1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、 编码、测试和____________。 2.基于软件的功能划分,软件可以划分成__________、__________、__________三种。 3.可行性研究,应从、技术可行性、运行可行性、和开 放方案可行性等方面研究。 4.系统流程图是描绘的传统工具。它的基本思想是用图形符号以 描绘系统里面的每个部件。 5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、 和。 6.结构化分析方法是面向________________进行需求分析的方法。结构化分析方法使 用________________与________________来描述。 7.是自动地共享类、子类和对象中的方法和数据的机制。 8.软件详细设计工具可分为3类,即________________、________________和 ________________。 9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、 复查和管理复审、________________。 10.大型软件测试包括、、确认测试和 四个步骤。 1、可行性研究需求分析运行与维护 2、系统软件支撑软件应用软件 3、经济可行性法律可行性 4、物理系统黑盒子形式 5、加工数据流数据存储文件 6、数据流数据流图DFD 数据字典DD 7、继承性 8、图示工具、设计语言表格工具 9、审查测试 10、单元测试集成测试系统测试 二、单项选择题(每小题2分,共20分) 1 2 3 4 5 C C C A C 6 7 8 9 10 D D A C B 1.软件设计中划分模块的一个准则是()。 A、低内聚低耦合 B、低内聚高耦合 C、高内聚低耦合 D、高内聚高耦合 2.Jackson设计方法是由英国的M. Jackson提出的,它是一种面向()的软件 设计方法。

软件工程试题及答案

综合练习一答案 一.选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末 B.60年代初C.60年代末 D.70年代初 A.运筹学B.工程学 C.软件学 D.软件学 E.数字 2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护 B.测试 C.详细设计 D.概要设计 E.编码 F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员 D。用户和软件人员的领导 10.下列叙述中,_______不属于数据字典的作用。 A、作为编码阶段的描述工具 B、为用户与开发人员之间统一认识 C、作为概要设计的依据 D、为需求分析阶段定义各类条目 11.使用结构化分析方法时,采用的基本手段是____。 A.分解和抽象 B.分解和综合C.归纳与推导D.试探与回溯12.结构化系统分析主要是通过____进行分析的。 A.算法分解B.控制结构分解 C.数据结构分解D.处理功能分解13.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的____。 总貌B.细节C.抽象D.软件的作者 13.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于____。 A.变换型 B 事务型 14.需求分析说明书不能作为______。

2016年硕士研究生《软件工程基础综合(877)》考试大纲(完)

2015硕士研究生(877) 《软件工程基础综合》考试大纲和参考书目 一、考试说明 《软件工程基础综合》的考试内容包括两部分:软件工程和数据库原理,各占50%。 二、软件工程部分: 1、参考书目:张海藩主编,软件工程导论(第六版),清华大学出版社,2013-08 2、主要内容: 第1部分:软件工程概论,包括:软件危机、软件工程、软件生命周期、软件过程等。 第2部分:可行性研究,包括:可行性研究的任务、可行性研究过程、系统流程图、数据流图、数据字典等。 第3部分:需求分析,包括:需求分析的任务、与用户沟通获取需求的方法、分析建模与规格说明、分析建模、软件需求规格说明、实体联系图、状态转换图、其他图形工具、验证软件需求等。 第4部分:总体设计,包括:设计过程、设计原理、启发规则、描绘软件结构的图形工具等。 第5部分:结构程序设计,包括:人机界面设计、过程设计的工具、面向数据结构的设计方法、程序复杂程度的定量度量等。 第6部分:实现,包括:编码、软件测试基础、单元测试、集成测试、确认测试、白盒测试技术、黑盒测试技术、调试等。 第7部分:维护,包括:软件维护的定义、软件维护的特点、软件维护过程、软件的可维护性、预防性维护等。 三、数据库原理部分: 1、参考书目:王成良、柳玲、徐玲,数据库技术与应用,清华大学出版社,2011.11 2、主要内容: 第1部分:数据库基础知识,包括:数据库技术的相关概念、数据管理的发展、数据库的体系结构、数据库管理系统。 第2部分:信息的三种世界与数据模型,包括:信息的三种世界及其描述、数据模型。 第3部分:关系模型,包括:关系数据库的结构、关系模型的基本术语、关

《软件工程》期末考试题及答案++精华版!!

《软件工程》期末考试样题 一、填空题 1.软件开发模型有(瀑布模型)(螺旋模型)第四代技术模型(原型模型)构件组装模型、混合模型。 2.可行性研究一般可以从(经济)可行性、(技术) 可行性、运行可行性、法律可行性和开发可行性等方面来研究。 3.现在向银行存款,年利率为i,若希望在n 年后从银行得到F元,现在应该存入的钱数为 (F/(1+i)n)。 4.数据流图的基本符号包括(数据输入的源 点和数据输出的汇点)、(加工)、(数据流)、(数据存储文件)。 5.Jackson图除了可以表达程序结构外,还可以 表达(数据结构),它首先要分析(数据结构),并用适当的工具来描述。 6.详细设计的工具有图形工具)、表格工具和(语言工具)。 7.IPO图由(输入)、处理和(输出)三个框组 成。这个图的特点是能够直观的显示三者之间的关系。 8.面向对象技术是一整套关于如何看待(软件系统)和(现实世界)的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。面向对象方法是一种运用(对象)、(类)、(继承)、(封装)、聚集、消息传送、多态性等概念来构造系统的软件开发方法。 二、单项选择题 1.下列( A )属于系统软件。 A.WINDOWS 2000 B.Word C.Flash D.3D MAX 2.下列哪个图是N-S图的构件( C )。 A. B.

3.对于螺旋模型,下列( D 卡尔坐标表达的活动。 A. 制定计划 B. 实施工程 C. 风险分析 D. 程序编码 三、多项选择题 1.软件危机可以表现为(ABXD A.产品不符合用户的需要 B.软件产品的质量差 C.软件的可维护性差 D.软件的价格昂贵 2.Jackson图中一般可能包括(A.表头 B.表体 C.表名 D.字段名 AD )。、内容耦合是最高程度的耦合 、应该尽量使用内容耦合 、高级语言一般设计成允许内容耦合的形式、如果一个模块有多个入口,可能发生内容.下列属于不标准的书写格式( BCD )。、书写时适当使用空格分隔 、一行写入多条语句 、嵌套结构不使用分层缩进的写法 、程序中不加注释 ,错误的) 软件生存周期是从软件开始开发到开发结束 () 系统流程图是一个典型的描述逻辑系统的传() 数据流图和数据字典共同构成系统的逻辑 A

软件工程考试题

1、(可行性研究)得目得就就是用最小代价在尽可能短得时间内确定该软件项目就是否能够开发、就是否值得开发。 2、可行性研究得目得不就是就是开发一个软件项目,而就是研究这个项目就是否(就是否做值得)。 3、可行性研究需要从(经济)可行性、(技术)可行性、(操作)可行性与(社会)可行性四个方面分析研究每种解决方案得可行性。 4、技术可行性就是对开发项目得(功能、性能、限制条件)进行分析,确定现有资源条件下,技术风险有多大,项目就是否能实现。 5、经济可行性一般要考虑得情况包括:(成本与效益)。 6、社会可行性所涉及得范围包括(合同、责任、侵权)用户组织得管理模式、范围以及其她一些技术人员常常不了解得陷阱。 7、典型得可行性研究有以下步骤:确定项目得规模与目标、(研究正在运行得系统)、(建立新系统得高层逻辑模型)、导出与评价各种方案、推荐可行得方案与编写可行性研究报告。 8、系统效益=经济效益+(社会效益)。 9、效益分有型效益与(无形)两种。 10、可行性研究得第一个步骤就是(确定项目得规模与目标)。 11、数据字典就就是用来定义数据流图中得(各个成分得具体含义)得。它与数据流图共同构成了系统得(逻辑模型),就是(需求说明书)得主要组成部分。 12、由于数据流就是流动中得数据,所以必须有(流向)。除了与(数据存储)之间得数据流命名外,数据流应该采用名词或名词短语。 七、选择题 1、研究开发资源有效性就是进行( D )可行性研究得一个方面 A、技术 B、经济 C、社会 D、操作 2、在软件可行性研究中、可以从不同得角度对软件进行研究,其中从软件得功能可行性角度考虑得就是( B )可行性 A、经济 B、技术 C、操作 D、社会 3、在遵循软件工程原则开发软件过程中,计划阶段应该依次完成( B ) A、可行性研究、需求分析、问题定义 B、问题定义、可行性研究、需求分析 C、需求分析、问题定义、可行性研究 D、可行性研究、问题定义、需求分析 4、可行性研究要进行得需求分析与设计应就是( C )。 A、详细得 B、全面得 C、简化得 D、彻底得 七、填空题 1、需求分析得基本任务就是要准确地定义(扇新系统得目标),为了满足用户需求,回答系统必须(做什么)得问题。 2、在需求分析阶段,首先进行问题识别,即双方确定对问题得综合需求,这些需求包括:(功能)需求、(性能)需求、(环境)需求、(用户界面)需求。另外还有可靠性、安全性、保密性、可移植性、可维护性等方面得需求。 3、需求分析得困难主要体现在4个方面:问题得复杂性、(交流障碍)、(不完备性与不一致性)、需求易变性。 4、在需求分析阶段进行以下几个方面得工作:识别系统综合要求、(分析系统得数据要求)、导出软件逻辑模型、(编写文档)。

软件工程试题库集及答案

综合练习一答案 选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末B.60年代初C.60年代末D.70年代初 A.运筹学B.工程学C.软件学D.软件学E.数字2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护B.测试C.详细设计D.概要设计E.编码F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员D。用户和软件人员的领导

软件工程专业基础综合

849-软件工程专业基础综合 操作系统 一、考查目标 操作系统是软件工程专业的一门核心专业基础课程,具有较强的理论性和实践性。该课程的考试内容包括引论、进程管理、内存管理、存储管理(包括文件系统与输入/输出系统)、保护与安全五部分的相关概念、设计原理和实现方法。考试的具体要求包括: 1. 了解操作系统在计算机系统中的作用、地位、发展和特点。 2. 理解操作系统的基本概念、主要功能、主要组成部分,掌握操作系统各个组成部分的设计方法和实现技术。 3. 能够运用所学的操作系统原理、方法和技术对相关问题进行分析和解决。 二、考试的内容 1.导论 1)操作系统的概念 2)计算机系统的操作、存储结构、输入输出结构和计算机系统的体系结构。 3)操作系统的结构组成、操作系统的操作及各部分的功能、高速缓冲存储器CACHE 4)操作系统的分类和运行环境 2.操作系统结构 1)操作系统提供的服务类型 2)操作系统的用户接口类型 3)系统调用及类型 4)操作系统的设计和实现方法 5)操作系统的结构分类及优缺点 6)虚拟机的基本概念和原理 3.进程 1)进程的概念、组织、控制和状态转换 2)进程调度的基本概念 3)进程的操作,包括进程的生成、终止等 4)进程通信 4.线程 1)线程的概念与动机 2)多线程模型 5.CPU调度

1)调度的基本概念 2)调度的时机、切换和过程 3)调度的基本准则 4)典型调度方法:先来先服务调度算法、最短作业优先调度算法、优先级调度算法、时间片轮转调度算法、多级队列调度算法、多级反馈队列调度算法 5)线程调度 6)调度算法的性能评估 6.进程同步 1)进程同步的基本概念 2)临界区访问的原则及实现临界区互斥的基本方法:软件实现方法和硬件实现方法3)信号量概念与基本机制 4)经典同步问题:生产者-消费者问题、读者-写者问题、哲学家就餐问题和理发师问题。 5)管程的基本概念、原理和实现 7.死锁 1)死锁的概念及条件 2)死锁的处理策略 3)死锁的预防及实现方法 4)死锁的避免:系统安全状态、资源分配图算法、银行家算法 5)死锁的检测方法和解除 8.主存 1)内存管理的基本概念:程序的装入与链接、逻辑地址与物理地址、内存保护 2)交换技术 3)内存的分配管理方法:连续分配管理方法、分页管理方法、分段管理方法、段页式管理方法。 9.虚拟内存 1)虚拟内存的基本概念 2)请求分页管理方法 3)页面置换算法:先进先出置换算法、最佳置换算法、最近最少使用置换算法、近似最近最少使用置换算法 4)帧的分配策略 5)抖动现象的原因及解决方法 6)内核内存的分配方法

最新软件工程期末考试题

41.软件是一种产品。 A.物质 B. 逻辑√ C. 工具 D. 文档 2.软件产品的生产主要___ _ _。 A. 研制√ B. 再生产 C. 开发 D. 生产 3.软件工程是一门__ _学科。 A. 工程性 B. 原理性 C. 综合性√ D. 理论性 4.类是面向对象方法中的一个重要概念,类的描述分为:名称、和操作。 A. 角色 B. 用例 C. 方法 D. 属性√ 5.下列描述中正确的是___ __。 A.软件工程的主要是解决软件开发中的技术问题 B.软件工程主要解决软件产品的生产率问题 C.软件工程的主要思想是强调在软件开发过程中需要运用工程化的原则√ D.软件工程只是解决软件项目的问题. 6.需求分析最终结果是产生。 A.项目开发计划B.可行性分析报告C.设计说明书D.需求分析说明书√7.需求分析中,开发人员要从用户那里解决最重要的问题是。 A.要让软件做什么√B.要给软件提供哪些信息 C.要求软件工作效率怎样D.要让该软件具有何种结构 8.分层DFD是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的。 A.软件的作者B.输入与输出√C.细节D.绘制的时间 9.数据字典中,一般不包括条目。 A.源点与终点√B.数据存储C.数据流D.加工 10.软件需求分析是保证软件质量的重要步骤,它的实施应该是在。 A.编码阶段B.软件设计阶段√C.软件定义过程D.软件开发全过程11.软件的主要功能和结构是在阶段确定的。 A.测试B.编程C.分析设计√D.维护 12.需求分析最终结果是产生。 A.需求分析说明书√B.可行性分析报告C.项目开发计划D.设计说明书 13.可行性研究主要从方面进行研究。 A.技术可行性,经济可行性,操作可行性B.经济可行性,系统可行性,时间可行性 C.经济可行性,系统可行性,操作可行性D.技术可行性,经济可行性,社会可行性√ 14.可行性分析研究的目的是。 A.项目值得开发与否√B.开发项目C.争取项目D.规划项目 15.需求分析中开发人员要从用户那里了解。 A.输入的信息B.用户使用界面C.软件做什么√D.软件的规模 16.需求分析阶段研究的对象是。 A.软硬件要求B.系统要求C.分析员要求D.用户需求√ 17.系统流程图用于可行性分析中的的描述。 A.目标系统B.当前逻辑模型C.当前运行系统√D.新系统 18.数据字典是用来定义中的各个成分的具体含义的。

软件工程综合习题及答案样本

软件工程综合习题( 1) 及答案 一、选择题 1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾, 这种现象称做( C) 。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 2.瀑布模型本质上是一种( A ) 模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 3.瀑布模型存在的问题是( B ) 。 A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求4.螺旋模型是一种将瀑布模型和( A) 结合起来的软件开发模型。 A.增量模型B.专家系统C.喷泉模型D.变换模型 5.原型化方法是用户和设计者之间执行的一种交互构成, 适用于( A) 系统。 A.需求不确定性高的B.需求确定的 C.管理信息D.实时 6.下列有关软件工程的标准, 属于国际标准的是(D ) A.GB B.DIN C.ISO D.IEEE 7.结构化方法是一种基于( D) 的方法。 A.数据结构 B.程序结构 C.算法 D.数据流 8.软件可行性研究实质上是要进行一次( A)需求分析、设计过程。 A、简化、压缩的 B、详细的 C、彻底的 D、深入的 9.可行性研究的目的是( D) A、分析开发系统的必要性 B、确定系统建设的方案 C、分析系统风险 D、确定是否值得开发系统 10.设年利率为i, 现存入p元, 不计复利, n年后可得钱数为( C) 。 A、 P×(1+i*n) B、 P× (i+1)*n C、 p×(1+i)n D、 p×(i+n) 11.可行性研究是在( A) 之前 A、系统开发 B、测试 C、试运行 D、集成测试 12.可行性研究需要的时间长短取决于系统的规模, 一般来说, 可行性研究的成本只是

软件工程期末试题及答案(六)

软件工程期末试题及答案(六) 选择题 1.软件测试的目的是()。 A)试验性运行软件B)发现软件错误C)证明软件正确D)找出软件中全部错误2.软件测试中白盒法是通过分析程序的()来设计测试用例的。 A)应用范围B)内部逻辑C)功能D)输入数据 3.黑盒法是根据程序的()来设计测试用例的。 A)应用范围B)内部逻辑C)功能D)输入数据 4.为了提高软件测试的效率,应该()。 A)随机地选取测试数据B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划D)选择发现错误可能性最大的数据作为测试用例5.与设计测试用例无关的文档是()。 A)项目开发计划B)需求规格说明书C)设计说明书D)源程序 6.测试的关键问题是()。 A)如何组织软件评审B)如何选择测试用例 C)如何验证程序的正确性D)如何采用综合策略 7.软件测试用例主要由输入数据和()两部分组成。 A)测试计划B)测试规则C)预期输出结果D)以往测试记录分析 8.成功的测试是指运行测试用例后()。 A)未发现程序错误B)发现了程序错误C)证明程序正确性D)改正了程序错误9.下列几种逻辑覆盖标准中,查错能力最强的是()。 A)语句覆盖B)判定覆盖C)条件覆盖D)条件组合覆盖 10.在黑盒测试中,着重检查输入条件组合的方法是()。 A)等价类划分法B)边界值分析法C)错误推测法D)因果图法 11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是()。A)系统功能B)局部数据结构C)重要的执行路径D)错误处理 12.软件测试过程中的集成测试主要是为了发现()阶段的错误。 A)需求分析B)概要设计C)详细设计D)编码 13.不属于白盒测试的技术是()。 A)路径覆盖B)判定覆盖C)循环覆盖D)边界值分析 14.集成测试时,能较早发现高层模块接口错误的测试方法为()。 A)自顶向下渐增式测试B)自底向上渐增式测试C)非渐增式测试D)系统测试15.确认测试以()文档作为测试的基础。 A)需求规格说明书B)设计说明书C)源程序D)开发计划 16.使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准。 A)程序内部逻辑B)程序的复杂度C)使用说明书D)程序的功能 17.程序的三种基本结构是()。 A)过程子、程序、分程序B)顺序、选择、循环 C)递归、堆栈、队列D)调用、返回、转移 18.结构化程序设计的一种基本方法是() A)筛选法B)递归法C)归纳法D)逐步求精法 19.软件调试的目的是() A)找出错误所在并改正之B)排除存在错误的可能性 C)对错误性质进行分类D)统计出错的次数

相关主题
相关文档 最新文档