软件工程概念.原理

第一部分 《传统软件开发方法》重点内容

1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2、软件危机包含下述两方面的问题:①如何开发软件,以满足对软件日益增长的需求;②如何维护数量不

断膨胀的已有软件。

3、软件危机产生的原因

一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。

体现在:

(1) 软件缺乏“可见性”,软件开发过程的进展情况较难衡量、质量也较难评价。

(2) 软件不会被“用坏”,维护困难。

(3) 软件规模越来越大,结构越来越复杂。

(4) 软件开发方法和技术落后。

4、软件生命周期

一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为软件生命周期。

5、消除软件危机的途径

(1)彻底消除 “软件就是程序”的错误观念。

(2)必须充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

6、软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把正确的管理技术和最好的技术方法结合起来,以经济地开发出高质量的软件并有效地进行维护,这就是软件工程。

7、面向对象方法学具有下述4个要点。

(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。

(2)把所有对象都划分成类(class)。

(3)按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也

称为类等级)。

(4)对象彼此间仅能通过发送消息互相联系。

8、(1)瀑布模型的特点:

·阶段间具有顺序性和依赖性

·推迟实现的观点

·质量保证的观点

(2)瀑布模型优点:

·可强迫开发人员采用规范的方法(如结构化技术);

·严格地规定了每个阶段必须提交的文档;

·要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

(3)瀑布模型缺点:

·最主要的是“瀑布模型是由文档驱动的”,在文档方面花费了在量的人力与物力。

9、可行性研究的任务?

(1) 进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;

(2) 从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性,为以后的行动提出建

议;

(3) 如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较好的解决方案,

并为工程制定一个初步的计划。

10、可行性研究的目的是确定问题是否值得去解决。至少应该从下述三方面研究其可行性:

⑴ 技术可行性使用现有的技术能实现这个系统吗?

⑵ 经济可行性这个系统的经济效益能超过它的开发成本吗?

⑶ 操作可行性系统的操作方式在这个用户组织内行得通吗?

⑷ 必要时还应该从法律、社会效益等方面作进一步的研究。

一般说来,可行性研究的成本只是预期的工程总成本的5%~10%。

11、可行性研究有几个步骤?

⑴复查系统的规模和目标;

⑵研究目前正在使用的系统;

⑶导出新系统的高层逻辑模型;

⑷进一步定义问题;

⑸导出和评价供选择的解法;

⑹推荐行动方针;

⑺草拟开发计划;

⑻书写文档提交审查。

12、数据流图是一种图形化技术,它对系统的逻辑功能进行描绘,图中没有任何具体的物理元素,只是描

绘数据在软件中流动和被处理的逻辑过程。

13、画数据流图有几个步骤?要注意哪些事项?

步骤:

⑴ 首先画系统的输入/输出,即先画顶层数据流图。

⑵ 画系统内部,即画下层数据流图。

注意事项:

①数据流、处理要命名,处理要编号;

②每个处理(加工)至少有一个输入和输出数据流;

③画数据流而不是控制流;

④父图与子图的平衡;

⑤局部数据存储;

⑥可理解性。

14、数据字典是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合。

数据字典由下列4类元素组成:

(1) 数据流

(2) 数据项(即数据元素):组成数据流和数据存储的最小元素。

(3) 数据存储

(4) 处理

15、有哪些验证软件需求的方法?

(1)验证需求的一致性:审查软件需求规格说明书是否丰在冗余、遗漏、不一致等问题。

(2)验证需求的现实性:分析利用现有的软、硬件技术实现目标系统的可能性。

(3)验证需求的完整性和有效性:审查软件需求规格说明书是否完整、准确地描述目标系统的需求。

16、总体设计基本目的就是回答“系统应该如何实现?”这个问题。这个阶段有两个任务:

①划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等;

②设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

17、总体设计过程一般有几个步骤?

⑴设想供选择的方案

⑵选取合理的方案

⑶推荐最佳方案

⑷功能分解

⑸设计软件结构

⑹设计数据库

⑺制定测试计划

⑻书写文档

⑼审查和复审

18、模块是数据说明,可执行语句等程序对象的集合,它是构成程序的基本构件。

模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把若干模块构成一个整体,完成用户需求。

模块化的目的是使一个复杂的大型软件简单化。

19、什么是模块独立性?写出模块独立性重要的理由。

模块独立性是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单。 模块独立性重要的理由主要有两条:

第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。

第二,独立的模块比较容易测试和维护。

20、耦合是对一个软件结构内不同模块之间互连程度的度量。

内聚指模块功能强度的度量,即一个模块内部各个元素彼此结合的紧密程序的度量。

数据耦合:指两模块之间有调用关系,传递的是简单的数据值。

功能内聚:指模块内所有元素共同完成一个功能,缺一不可。

21、结构程序设计有哪些好处?

⑴ 开发出的程序结构层次清晰;

⑵ 不使用GOTO语句,程序的静态和动态结构情况比较一致;

⑶ 控制结构有确定的逻辑模式;

⑷ 可重用的代码量大;

⑸ 程序的逻辑结构清晰,有利于程序正确性证明。

22、程序流程图的主要优点是:对控制流程的描绘很直观,便于初学者掌握。

程序流程图的主要缺点如下:

⑴程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。

⑵程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。

⑶程序流程图不易表示数据结构。

23、N-S图的特点:

⑴功能域(即控制结构)明确,可以从盒图上一眼就看出来。

⑵不可能任意转移控制。

⑶很容易确定局部和全程数据的作用域。

⑷很容易表现嵌套关系,也可以表示模块的层次结构。

24、PAD图的主要优点如下:

⑴ 使用PAD图设计出来的程序必然是结构化程序。

⑵ PAD图所描绘的程序结构十分清晰。

⑶ 用PAD图表现程序逻辑,易读、易懂、易记。

⑷ 容易将PAD图转换成高级语言源程序。

⑸ PAD图的符号支持自顶向下、逐步求精方法的使用。

25、PDL具有的特点:

⑴ 提供结构化控制结构、数据说明和模块化的特点;

⑵ 自然语言的自由语法;

⑶ 数据说明包括简单和复杂的数据结构;

⑷ 提供模块定义和模块调用的各种接口描述模块。

PDL具有的优点:

⑴ 可作为注释直接插在程序中间;

⑵ PDL的编辑和书可用普遍的正文编辑程序或文字处理系统;

⑶ PDL可以经自动处理程序,生成程序源代码。

26、Jackson图有哪些结构?它又有哪些优点?

Jackson图有三种结构:顺序结构、选择结构和重复结构。

它有下面优点:

⑴便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;

⑵形象直观可读性好;

⑶既能表示数据结构也能表示程序结构。

27、定量度量程序复杂程度的方法有哪三方面价值?

⑴把程序的复杂程度乘以适当常数即可估算出软件中错误的数量,以及软件开发需要的工作量。 ⑵定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;

⑶程序的定量的复杂程度可以作为模块规模的精确限度。

28、选择程序设计语言的理想标准是:

⑴应该有理想的模块化机制,以及可读性好的控制结构和数据结构;

⑵应该使编译程序能够尽可能多地发现程序中的错误;

⑶应该有良好的独立编译机制。

29、G.Myers给出的关于测试的一些规则:

(1)测试是为了发现程序中的错误而执行程序的过程;

(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;

(3)成功的测试是发现了至今为止尚未发现的错误的测试。

30、软件测试准则有几条?

(1)所有测试都应该能追溯到用户需求。

(2)应该远在测试开始之前就制定出测试计划。

(3)把Pareto原理应用到软件测试中。

(4)应该从“小规模”测试开始,并逐步进行“大规模”测试。

(5)穷举测试是不可能的。

(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。

31、软件测试是软件测试人员设计出一系列测试方案,竭力发现程序中存在的错误。

测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。

软件测试方法有两种:黑盒测试和白盒测试。

(1) 黑盒测试法把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒

测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常工作。黑盒测试又称为功能测试。

(2) 白盒测试法把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种

方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试又称为结构测试。

32、单元测试着重从哪几个方面对模块进行测试?

⑴模块接口

⑵局部数据结构

⑶重要的执行通路

⑷出错处理通路

⑸边界条件

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

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

第二部分 《面向对象软件开发方法》重点内容

1、对象的定义主要有下面几种形式:

⑴定义1:对象是具有相同状态的一组操作的集合。

⑵定义2:对象是对属性值和操作的封装。

2、对象的特点

(1)以数据为中心

(2)对象是主动的

(3)实现了数据封装

(4)本质上具有并行性

(5)模块独立性好

3、类就是对具有相同数据和相同操作的一组相似对象的定义。也就是说,类是对具有相同属性和行为的一个或多个对象的描述。

4、实例就是由某个特定的类所描述的一个具体的对象。

5、消息就是某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,一个消息由下述3部分组成:

·接收消息的对象;

·消息选择符(也称为消息名);

·零个或多个变元。

6、方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法。

7、属性就是类中所定义的数据,它是对客观实体所具有的性质的抽象。

8、什么是用例?用例具有哪些特征?

用例是系统完成的一系列动作,这些动作除了完成系统内部功能外,还包括与行为者的通信。用例具有下述特征:

(1)代表某些用户可见的功能,实现一个具体的用户目标;

(2)总是被行为者启动,并向行为者提供可识别的值;

(3)必须是完整的。

9、行为者是指与系统交互的人或其他系统,它代表外部实体。

10、建立动态模型的步骤有:

⑴编写典型交互行为的脚本;

⑵从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象;

⑶排列事件发生次序,确定每个对象可能的状态及状态间的转换,并用状态图描绘它们。

11、重用也叫再用或复用,是指同一软件元素不作修改或稍改动就可多次重复使用。广义地说,软件重用

可分为以下3个层次:

⑴知识重用(如:软件工程知识的重用)。

⑵方法和标准的重用(如:面向对象方法或国家制定的软件开发规范的重用)。

⑶软件成分的重用。

12、继承是指能够直接获得已有的性质和特征,而不必重复定义它们。继承是子类自动地共享基类中定义

的数据和方法的机制。

13、多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类

对象。

14、在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。

部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失,则该聚集称为组合聚集。

15、什么是封装?写出对象具有封装性的条件。

封装就是把数据和实现操作的代码集中起来放在对象内部。

对象具有封装性的条件如下:

(1)有一个清晰的边界

(2)有确定的接口(即协议)

(3)受保护的内部实现

16、类图描述类及类与类之间的静态关系。类图是一种静态模型,它是创建其他UML图的基础。

17、用面向对象方法学开发软件过程有哪些启发规则?

⑴设计结果应该清晰易懂

⑵一般-特殊结构的深度应适当

⑶设计简单的类

⑷使用简单的协议

⑸使用简单的服务

⑹把设计变动减至最小

18、选择面向对象语言应该着重考虑哪些因素?

⑴将来能否占主导地位

⑵可重用性

⑶类库和开发环境

⑷其他因素

①对用户学习面向对象分析、设计和编码技术所能提供的培训服务;

②在使用这个面向对象语言期间能提供的技术支持;

③能提供给开发人员使用的开发工具、开发平台,对机器性能和内容的需求。

19、提高可重用性的主要准则:

⑴提高方法的内聚;

⑵减小方法的规模;

⑶保持方法的一致性;

⑷把策略与实现分开;

⑸全面覆盖各种条件组合,写出所有组合方法;

⑹尽量不使用全局信息;

⑺利用继承机制。

20、提高健壮性应遵守的准则:

⑴预防用户的操作错误

⑵检查参数的合法性

⑶不要预先确定限制条件

⑷先测试后优化

第一部分 《传统软件开发方法》重点内容

1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2、软件危机包含下述两方面的问题:①如何开发软件,以满足对软件日益增长的需求;②如何维护数量不

断膨胀的已有软件。

3、软件危机产生的原因

一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。

体现在:

(1) 软件缺乏“可见性”,软件开发过程的进展情况较难衡量、质量也较难评价。

(2) 软件不会被“用坏”,维护困难。

(3) 软件规模越来越大,结构越来越复杂。

(4) 软件开发方法和技术落后。

4、软件生命周期

一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为软件生命周期。

5、消除软件危机的途径

(1)彻底消除 “软件就是程序”的错误观念。

(2)必须充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

6、软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把正确的管理技术和最好的技术方法结合起来,以经济地开发出高质量的软件并有效地进行维护,这就是软件工程。

7、面向对象方法学具有下述4个要点。

(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。

(2)把所有对象都划分成类(class)。

(3)按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也

称为类等级)。

(4)对象彼此间仅能通过发送消息互相联系。

8、(1)瀑布模型的特点:

·阶段间具有顺序性和依赖性

·推迟实现的观点

·质量保证的观点

(2)瀑布模型优点:

·可强迫开发人员采用规范的方法(如结构化技术);

·严格地规定了每个阶段必须提交的文档;

·要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

(3)瀑布模型缺点:

·最主要的是“瀑布模型是由文档驱动的”,在文档方面花费了在量的人力与物力。

9、可行性研究的任务?

(1) 进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;

(2) 从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性,为以后的行动提出建

议;

(3) 如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较好的解决方案,

并为工程制定一个初步的计划。

10、可行性研究的目的是确定问题是否值得去解决。至少应该从下述三方面研究其可行性:

⑴ 技术可行性使用现有的技术能实现这个系统吗?

⑵ 经济可行性这个系统的经济效益能超过它的开发成本吗?

⑶ 操作可行性系统的操作方式在这个用户组织内行得通吗?

⑷ 必要时还应该从法律、社会效益等方面作进一步的研究。

一般说来,可行性研究的成本只是预期的工程总成本的5%~10%。

11、可行性研究有几个步骤?

⑴复查系统的规模和目标;

⑵研究目前正在使用的系统;

⑶导出新系统的高层逻辑模型;

⑷进一步定义问题;

⑸导出和评价供选择的解法;

⑹推荐行动方针;

⑺草拟开发计划;

⑻书写文档提交审查。

12、数据流图是一种图形化技术,它对系统的逻辑功能进行描绘,图中没有任何具体的物理元素,只是描

绘数据在软件中流动和被处理的逻辑过程。

13、画数据流图有几个步骤?要注意哪些事项?

步骤:

⑴ 首先画系统的输入/输出,即先画顶层数据流图。

⑵ 画系统内部,即画下层数据流图。

注意事项:

①数据流、处理要命名,处理要编号;

②每个处理(加工)至少有一个输入和输出数据流;

③画数据流而不是控制流;

④父图与子图的平衡;

⑤局部数据存储;

⑥可理解性。

14、数据字典是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合。

数据字典由下列4类元素组成:

(1) 数据流

(2) 数据项(即数据元素):组成数据流和数据存储的最小元素。

(3) 数据存储

(4) 处理

15、有哪些验证软件需求的方法?

(1)验证需求的一致性:审查软件需求规格说明书是否丰在冗余、遗漏、不一致等问题。

(2)验证需求的现实性:分析利用现有的软、硬件技术实现目标系统的可能性。

(3)验证需求的完整性和有效性:审查软件需求规格说明书是否完整、准确地描述目标系统的需求。

16、总体设计基本目的就是回答“系统应该如何实现?”这个问题。这个阶段有两个任务:

①划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等;

②设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

17、总体设计过程一般有几个步骤?

⑴设想供选择的方案

⑵选取合理的方案

⑶推荐最佳方案

⑷功能分解

⑸设计软件结构

⑹设计数据库

⑺制定测试计划

⑻书写文档

⑼审查和复审

18、模块是数据说明,可执行语句等程序对象的集合,它是构成程序的基本构件。

模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把若干模块构成一个整体,完成用户需求。

模块化的目的是使一个复杂的大型软件简单化。

19、什么是模块独立性?写出模块独立性重要的理由。

模块独立性是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单。 模块独立性重要的理由主要有两条:

第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。

第二,独立的模块比较容易测试和维护。

20、耦合是对一个软件结构内不同模块之间互连程度的度量。

内聚指模块功能强度的度量,即一个模块内部各个元素彼此结合的紧密程序的度量。

数据耦合:指两模块之间有调用关系,传递的是简单的数据值。

功能内聚:指模块内所有元素共同完成一个功能,缺一不可。

21、结构程序设计有哪些好处?

⑴ 开发出的程序结构层次清晰;

⑵ 不使用GOTO语句,程序的静态和动态结构情况比较一致;

⑶ 控制结构有确定的逻辑模式;

⑷ 可重用的代码量大;

⑸ 程序的逻辑结构清晰,有利于程序正确性证明。

22、程序流程图的主要优点是:对控制流程的描绘很直观,便于初学者掌握。

程序流程图的主要缺点如下:

⑴程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。

⑵程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。

⑶程序流程图不易表示数据结构。

23、N-S图的特点:

⑴功能域(即控制结构)明确,可以从盒图上一眼就看出来。

⑵不可能任意转移控制。

⑶很容易确定局部和全程数据的作用域。

⑷很容易表现嵌套关系,也可以表示模块的层次结构。

24、PAD图的主要优点如下:

⑴ 使用PAD图设计出来的程序必然是结构化程序。

⑵ PAD图所描绘的程序结构十分清晰。

⑶ 用PAD图表现程序逻辑,易读、易懂、易记。

⑷ 容易将PAD图转换成高级语言源程序。

⑸ PAD图的符号支持自顶向下、逐步求精方法的使用。

25、PDL具有的特点:

⑴ 提供结构化控制结构、数据说明和模块化的特点;

⑵ 自然语言的自由语法;

⑶ 数据说明包括简单和复杂的数据结构;

⑷ 提供模块定义和模块调用的各种接口描述模块。

PDL具有的优点:

⑴ 可作为注释直接插在程序中间;

⑵ PDL的编辑和书可用普遍的正文编辑程序或文字处理系统;

⑶ PDL可以经自动处理程序,生成程序源代码。

26、Jackson图有哪些结构?它又有哪些优点?

Jackson图有三种结构:顺序结构、选择结构和重复结构。

它有下面优点:

⑴便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;

⑵形象直观可读性好;

⑶既能表示数据结构也能表示程序结构。

27、定量度量程序复杂程度的方法有哪三方面价值?

⑴把程序的复杂程度乘以适当常数即可估算出软件中错误的数量,以及软件开发需要的工作量。 ⑵定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;

⑶程序的定量的复杂程度可以作为模块规模的精确限度。

28、选择程序设计语言的理想标准是:

⑴应该有理想的模块化机制,以及可读性好的控制结构和数据结构;

⑵应该使编译程序能够尽可能多地发现程序中的错误;

⑶应该有良好的独立编译机制。

29、G.Myers给出的关于测试的一些规则:

(1)测试是为了发现程序中的错误而执行程序的过程;

(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;

(3)成功的测试是发现了至今为止尚未发现的错误的测试。

30、软件测试准则有几条?

(1)所有测试都应该能追溯到用户需求。

(2)应该远在测试开始之前就制定出测试计划。

(3)把Pareto原理应用到软件测试中。

(4)应该从“小规模”测试开始,并逐步进行“大规模”测试。

(5)穷举测试是不可能的。

(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。

31、软件测试是软件测试人员设计出一系列测试方案,竭力发现程序中存在的错误。

测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。

软件测试方法有两种:黑盒测试和白盒测试。

(1) 黑盒测试法把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒

测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常工作。黑盒测试又称为功能测试。

(2) 白盒测试法把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种

方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试又称为结构测试。

32、单元测试着重从哪几个方面对模块进行测试?

⑴模块接口

⑵局部数据结构

⑶重要的执行通路

⑷出错处理通路

⑸边界条件

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

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

第二部分 《面向对象软件开发方法》重点内容

1、对象的定义主要有下面几种形式:

⑴定义1:对象是具有相同状态的一组操作的集合。

⑵定义2:对象是对属性值和操作的封装。

2、对象的特点

(1)以数据为中心

(2)对象是主动的

(3)实现了数据封装

(4)本质上具有并行性

(5)模块独立性好

3、类就是对具有相同数据和相同操作的一组相似对象的定义。也就是说,类是对具有相同属性和行为的一个或多个对象的描述。

4、实例就是由某个特定的类所描述的一个具体的对象。

5、消息就是某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,一个消息由下述3部分组成:

·接收消息的对象;

·消息选择符(也称为消息名);

·零个或多个变元。

6、方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法。

7、属性就是类中所定义的数据,它是对客观实体所具有的性质的抽象。

8、什么是用例?用例具有哪些特征?

用例是系统完成的一系列动作,这些动作除了完成系统内部功能外,还包括与行为者的通信。用例具有下述特征:

(1)代表某些用户可见的功能,实现一个具体的用户目标;

(2)总是被行为者启动,并向行为者提供可识别的值;

(3)必须是完整的。

9、行为者是指与系统交互的人或其他系统,它代表外部实体。

10、建立动态模型的步骤有:

⑴编写典型交互行为的脚本;

⑵从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象;

⑶排列事件发生次序,确定每个对象可能的状态及状态间的转换,并用状态图描绘它们。

11、重用也叫再用或复用,是指同一软件元素不作修改或稍改动就可多次重复使用。广义地说,软件重用

可分为以下3个层次:

⑴知识重用(如:软件工程知识的重用)。

⑵方法和标准的重用(如:面向对象方法或国家制定的软件开发规范的重用)。

⑶软件成分的重用。

12、继承是指能够直接获得已有的性质和特征,而不必重复定义它们。继承是子类自动地共享基类中定义

的数据和方法的机制。

13、多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类

对象。

14、在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。

部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失,则该聚集称为组合聚集。

15、什么是封装?写出对象具有封装性的条件。

封装就是把数据和实现操作的代码集中起来放在对象内部。

对象具有封装性的条件如下:

(1)有一个清晰的边界

(2)有确定的接口(即协议)

(3)受保护的内部实现

16、类图描述类及类与类之间的静态关系。类图是一种静态模型,它是创建其他UML图的基础。

17、用面向对象方法学开发软件过程有哪些启发规则?

⑴设计结果应该清晰易懂

⑵一般-特殊结构的深度应适当

⑶设计简单的类

⑷使用简单的协议

⑸使用简单的服务

⑹把设计变动减至最小

18、选择面向对象语言应该着重考虑哪些因素?

⑴将来能否占主导地位

⑵可重用性

⑶类库和开发环境

⑷其他因素

①对用户学习面向对象分析、设计和编码技术所能提供的培训服务;

②在使用这个面向对象语言期间能提供的技术支持;

③能提供给开发人员使用的开发工具、开发平台,对机器性能和内容的需求。

19、提高可重用性的主要准则:

⑴提高方法的内聚;

⑵减小方法的规模;

⑶保持方法的一致性;

⑷把策略与实现分开;

⑸全面覆盖各种条件组合,写出所有组合方法;

⑹尽量不使用全局信息;

⑺利用继承机制。

20、提高健壮性应遵守的准则:

⑴预防用户的操作错误

⑵检查参数的合法性

⑶不要预先确定限制条件

⑷先测试后优化


    相关文章

    1250052生态工程学教学大纲doc

    <生态工程学>教学大纲 一.基本信息 二.教学目标及任务 <生态工程学>课程是生态学专业的专业核心课.通过<生态工程学>课程的教学,使学生系统地掌握生态工程学的基本理论(生态工程学概论,生态工程学原理,生 ...

    电气工程师考纲

    2011电气工程师考试(发输变电)基础考试大纲,敬请关注! 一.高等数学 1.1 空间解析几何 向量代数 直线 平面 柱面 旋转曲面 二次曲面 空间曲线 1.2 微分学 极限 连续 导数 微分 偏导数 全微分 导数与微分的应用 1.3 积分 ...

    注册电气工程师(发输电)基础考试大纲

    注册电气工程师(发输变电)执业资格考试基础考试大纲 一.高等数学 1.1 空间解析几何 向量代数 直线 平面 柱面 旋转曲面 二次曲面 空间曲线 1.2 微分学 极限 连续 导数 微分 偏导数 全微分 导数与微分的应用 1.3 积分学 不定 ...

    注电考试内容

    注册电气工程师考试在9月17.18日举行,报名在每年的六.七月份,报名费几百元这样吧.题型有单选也有多选 考试内容: 公共基础:高等数学.普通物理.普通化学.理论力学.材料力学.流体力学.计算机基础.电工电子技术.工程经济.信号与信息.工程 ...

    热工基础教学大纲

    课程编号:241123 总学分:2 热 工 基 础 (Basis of Heat Energy Engineering) 课程性质:专业基础课/选修 适用专业:车辆工程 学时分配:课程总学时:32 学时,其中:理论课学时: 32 学时 先行 ...

    2013公路试验员考试大纲考试大纲

    公路试验检测员考试大纲 第一章 科目1 <材料试验> 一.土工试验 (一) 考试目的与要求 本科目主要是为了测评考生了解.熟悉和掌握公路工程.桥梁工程及隧道工程中有关土工测试方面专业知识的熟悉程度,以及对于常用土工测试的实际操作 ...

    注册电气工程师供配电基础考试的报考条件

    注册电气工程师 供配电基础考试的报考条件 基础类.专业类考试大纲 注册电气工程师有两个方向,供配电和发输变电 凡中华人民共和国公民,遵守国家法律.法规,恪守职业道德,并具备相应专业教育和职业实践条件者,均可申请参加考试. 考试分为基础考试和 ...

    2013计算机软件水平考试网络管理员级考试大纲

    一.考试说明 1.考试目标 本考试的合格人员能够进行小型网络系统的设计.构建.安装和调试,中小型局域网的运行维护和日常管理:根据应用部门的需求,构建和维护Web网站,进行网页制作:具有助理工程师(或技术员)的实际工作能力和业务水平. 2.考 ...

    注册电气工程师基础考试复习大纲

    一.高等数学 1.1 空间解析几何 向量代数 直线 平面 柱面 旋转曲面 二次曲面 空间曲线1.2 微分学 极限 连续 导数 微分 偏导数 全微分 导数与微分的应用1.3 积分学 不定积分 定积分 广义积分 二重积分 三重积分 平面曲线积分 ...

    机电一体化专业课程大纲总汇

    机电一体化专业课程教学大纲 目 录 <机械制图与计算机绘图>教学大纲 .............................................. 2 <机械制图与计算机绘图>教学大纲 ....... ...