软件工程知识点整理_张海藩

时间:2024.4.21

软件危机:计算机软件的开发和维护过程中所遇到的一系列严重问题。包含下述两方面的问题:1.如何开发软件,以满足对软件日益增长的需求;2.如何维护数量不断膨胀的已有软件。

软件工程:指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济的开发出高质量的软件并有效的维护它。

软件生命周期:由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。P11软件定义时期:a.问题定义 b.可行性研究 c.需求分析;软件开发时期:a.总体设计 b.详细设计 c.编码和单元测试 d.综合测试;运行维护时期; 可行性研究:确定问题是否值得去解决。通过分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后能带来的效益是否大到值得投资开发这个系统的程度。可行性研究实质上是要进行一次大大压缩建华了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。

P35

性能需求:系统必须满足的定时约束或容量约束,通常包括速度、信息量速率、主存容量、磁盘容量、安全性等方面的需求。P56

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

数据耦合:两个模块彼此之间通过参数交换信息,且交换的信息仅仅是数据。

详细设计:确定应该怎样具体地实现所要求的系统。通过一个阶段的设计工作,得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。P117

等价类划分:一种黑盒测试技术,通过把程序的输入域划分成若干个数据类,据此导出测试用例。P172

多态性:有许多形态。在类等级的不同层级中可以共享一个行为的名字,然而不同层次中的每个类却各自按自己的需求来实现这个行为。 P214 继承:能够直接获得已有的性质特征,而不必重复定义他们。

回归测试:重新执行已经做过的测试的某个子集,以保证程序的变化没有带来非预期的副作用。P160

渐增型测试:把下一个要测试的模块同已经测试好的模块结合起来进行测试的每次增加一个模块的方法P157

增量模型:也称为渐增模型。把软件产品作为一系列的增量构建来设计、编码、集成和测试,分批的逐步向用户提交产品。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。

P17

内聚:一个模块内各个元素彼此结合的紧密程度,是信息隐藏和局部化的自然扩展。P98 功能内聚:模块内所有处理元素属于一个整体,完成一个单一的功能。 白盒测试法:根据程序的控制结构设计测试数据。

黑盒测试法:着重测试软件功能,是与白盒测试互补的测试方法,很可能发现白盒测试不容易发现的其他类型的错误。P171

可移植性:把程序从一种计算环境转移到另一种计算环境的难易程度。

软件可靠性:程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率。 信息隐藏:一个模块内包含的信息(模块的实现细节)对于不需要这些信息的模块来说是不能访问的。P96

完善性维护:为了满足在使用软件的过程中用户提出的增加新功能、修改已有功能或一般性的改进意见进行的维护,通常占软件维护工作的大部分。 调试:在测试发现错误之后排除错误的过程。P176

模块独立性:模块具有独立功能且和其他模块之间没有过多的相互作用。

模块化:把程序划分成独立命名且可以独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 抽象:抽出事物的本质特性而暂时不考虑它们的细节。

共享聚集:在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成。 组合聚集:部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失。

1. 软件工程有哪些本质特征? 1) 软件工程关注于大型程序的构造 2) 软件工程的中心课题是控制复杂性 3) 软件经常化

4) 开发软件的效率非常重要 5) 和谐地合作是开发软件的关键 6) 软件必须有效地支持它的用户

7)

在软件工程领域中是由一种文化背景的人替具有另一种文化背景的人创造产品

2. 软件生命周期包括哪些阶段?每个阶段又包含什么小阶段?

由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。 1) 软件定义时期:a.问题定义 b.可行性研究 c.需求分析

2)

软件开发时期:a.总体设计 b.详细设计 c.编码和单元测试 d.综合测试

3)

运行维护时期

3. 软件过程中瀑布模型的优缺点

优点:可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;;

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

缺点:几乎完全依赖书面的规格说明,很可能导致最终开发出的软件产品不能真

正满足用户的需要。 4.

可行性研究的任务是什么?一般可以从哪些方面研究可行性? 1)

可行性研究实质上是要进行一次大大压缩建华了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。可行性研究最根本的任务是对以后的行动方针提出建议。

2)

技术、经济、操作、法律、社会效益等

5.

可行性研究有哪些步骤? 1) 复查系统规模和目标 2) 研究目前正在使用的系统 3) 导出新系统的高层逻辑模型 4) 进一步定义问题 5) 导出和评价供选择的解法 6) 推荐行动方针 7) 草拟开发计划 8)

书写文档提交审查

6. 需求分析阶段的基本任务是什么?

需求分析阶段的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。本阶段要进行以下几方面的工作:问题识别;分析与综合,导出软件的逻辑模型;编写文档。

7. 对软件系统通常有哪些需求?

功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、

逆向需求、将来可能提出的需求 8.

与用户沟通获取需求的方法有哪些?

访谈、面向数据流自顶向下求精、简易的应用规格说明技术、快速建立软件原型

9. 典型的总体设计的过程包括哪些步骤?

设想供选择的方案 2.选取合理的方案 3.推荐最佳方案 4.功能分解 5.设计软件结构 6.设计数据库 7.制定测试计划 8.书写文档 9.审查和复审 10.

模块的内聚性、耦合性包括哪些类型,给出名称和简单定义? 1)

内聚

偶然内聚:一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的

逻辑内聚:一个模块完成的任务在逻辑上属于相同或相似的一类 时间内聚:一个模块包含的任务必须在同一段时间内执行

过程内聚:一个模块内的处理元素是相关的,而且必须以特定次序执行 通信内聚:模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据

顺序内聚:一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行

功能内聚:模块内所有处理元素属于一个整体,完成一个单一的功能。

2)

耦合

数据耦合:两个模块彼此之间通过参数交换信息,且交换的信息仅仅是数据

控制耦合:两个模块之间传递的信息中有控制信息

特征耦合:把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素

公共环境耦合:两个或两个以上的模块通过一个公共数据环境相互作用

内容耦合:当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过正常入口而转入另一个模块时的耦合 11.

在软件总体设计时,可借鉴的启发式规则有哪些? 1) 改进软件结构提高模块独立性 2) 模块规模应该适中

3) 深度,宽度,扇出和扇入都应该适当 4) 模块的作用域应该在控制域之内 5) 力争降低模块接口的复杂程度 6) 设计单入口单出口的模块 7)

模块功能应该可以预测

12.

详细设计的任务是什么?详细设计阶段过程设计的工具有哪些? 1)

确定应该怎样具体地实现所要求的系统。通过一个阶段的设计工作,得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

2)

程序流程图、盒图、PAD图、判定表、判定树、过程设计语言

13.

请描述Jackson结构程序设计方法的步骤? 1)

分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。

2) 找出输入数据结构和输出数据结构中有对应关系的数据单元。 3) 从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。 4) 列出所有操作和条件,并且把它们分配到程序结构图的适当位置。 5)

用伪码表示程序。

14.

简述软件测试的准则是什么?大型软件系统测试步骤? 1)

软件测试的准则: a) b) c) d) e) f)

所有的测试都应追溯到用户需求 应该远在测试开始之前就制定出测试计划 把Pareto原理应用到软件测试中

应该从“小规模”测试开始,并逐步进行“大规模”测试 穷举测试是不可能的

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

20.

每个程序、每种语言、每种维护类类所做的程序 变动类;维护过程中增加工删除一个源语句平均花费的人时数 ; 维护每种语言平均花费的人时数; 一张维护要求表的平均周转时间; 不同维护类型所占的百分比。

简述建立对象模型的过程

(1)确定类:标出来自问题域的相关对象类。

(2)准备数据字典:为所有建模实体准备一个数据字典,准确描述各对象类的精确含义,2)

大型软件系统测试步骤: a)模块测试

b)子系统测试 c)系统测试 d)验收测试

e)

平行运行

15.

单元测试的测试重点是什么? 1)模块接口 2)局部数据结构 3)重要的执行通路 4)出错处理通路

5)

边界条件

16.

黑盒测试主要是为了发现哪几类错误? 1)功能不正确或遗漏; 2)界面错误;

3)数据结构错误或外部数据库访问错误; 4)性能错误; 5)初始化和终止错误

17.

调试的目的是什么?调试有哪些途径? 1) 目的:在测试发现错误之后排除错误

2)

途径:蛮干法、回溯法、原因排除法(对分查找法、归纳法、演绎法)

18.

常见的维护类型和定义 1) 改正性维护:诊断和改正错误

2) 适应性维护:为了和变化的环境适当地匹配而修改软件

3)

完善性维护:为了满足在使用软件的过程中用户提出的增加新功能、修改已有功能或一般性的改进意见进行的维护,通常占软件维护工作的大部分

4)

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

19. 决定软件可维护性的主要因素有哪些,请详细描述;如果已有维护记录,从哪些方面评价度量维护活动? 1)

决定软件可维护性的主要因素: a)

可理解性:外来读者理解软件的结构、功能、接口和内部处理过程的难易程度

b) 可测试性:诊断和测试的容易程度 c) 可修改性:软件容易修改的程度

d)

可移植性:把程序从一种计算环境转移到另一种计算环境的难易程度

e)

可重用性:同一事物不做修改或稍加改动就在不同环境中多次重复使用

2)

评价度量维护活动:

每次程序运行平均失效的次数;用于每一类维护活动的总人时数 ;平均

描述当前问题中的类的范围,包括对类的成员、用法方面的假设或限制;

(3)确定关联:确定二个或多个类之间的相互依赖; (4)确定属性:只考虑与具体应用直接相关的属性 ;

(5)使用继承来细化类:使用继承来共享公共结构,以此来重新组织类

21.

面向对象设计的准则 a)

模块化。对象就是模块,它是把数据结构和操作这些数据的方法紧密结合在一起所构成的模块。

b)

抽象。类实际是一种抽象数据类型,它对外开放的公共接口构成类的规格说明(即协议)。

c)

信息隐藏。它是通过对象的封装性实现,类结构分离了接口与实现,从而支持了信息隐藏。

d) 弱耦合。降低对象之间的交互耦合,提高继承耦合。 e) 强内聚。多利用服务内聚、类内聚和一般—特殊内聚。

f)

可重用。有两个含义,一是尽量使用已有的类,二是在创建新类时,应该考虑将来的可重复使用性。

22.

简述对象模型、动态模型、功能模型之间的关系

(1) 针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。 (2) 状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应。

(3) 功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。 (4) 数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。 (5) 数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。

(6) 用例图中的行为者,可能是对象模型中的对象。

(7) 功能模型中的处理(或用例)可能产生动态模型中的事件。

(8) 对象模型描述了数据流图中的数据流、数据存储以及数据源点/终点的结构。


第二篇:软件工程(第五版 张海籓)全书知识点整理


第一章 软件工程概述

1、19xx年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,在这次会议上正式提出并使用了“软件工程”这个名词,一门新兴的工程学科就此诞生了。

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

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

4、产生危机的原因

①与软件本身的特点有关

②与软件开发与维护的方法不正确有关。

5、软件的生命周期:一个软件从定义、开发、使用、维护,直到被废弃,要经历一个漫长的时期,这就如同人要经过胎儿、儿童、青年、中年、老年,直到最终死亡的漫长周期一样。通常把软件经历的这个漫长的时期称为生命周期。

6、软件工程定义:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件。把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效的维护它,这就是软件工程。

7、软件工程7个本质特征:

①软件工程关注与大型程序的构造

②软件工程的中心课题是控制复杂性

③软件经常变化

④开发软件的效率非常重要

⑤和谐地合作是开发软件的关键

⑥软件必须有效的支持它的用户

⑦在软件工程领域中通常由具有一种文化背景的人替另一种文化背景的人创造产品

8、软件工程的7条基本原理:

①用分阶段的生命周期计划严格管理

②坚持进行阶段评审

③实行严格的产品控制

④采用现代程序设计技术

⑤结果应能清楚的审查

⑥开发小组的人员应该少而精

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

9、通常把软件周期全过程中使用的一整套技术方法的集合称为方法学,也成为范型。

10、软件工程的方法包含3个要素:方法、工具和过程。其中方法是完成软件开发的各项任务的技术方法回答“怎样做”的问题;工具是为运用方法而提供的自动或半自动的软件工程支撑环境;过程是为了获得质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

11、软件的生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干阶段。

⑴软件定义时期:①问题定义②可行性研究③需求分析。

⑵开发时期:①总体设计②详细设计③编码和单元测试④综合测试

⑶维护时期:主要任务是是软件持久地满足用户的需要。

12、瀑布模型的特点:①阶段间具有顺序性和依赖性②推迟实现的观点③质量保证的观点

第二章 可行性研究

1、可行性研究方面:

①技术可行性:使用现有的技术是否能实现这个系统。

②经济可行性:这个系统的经济效益能否超过它的开发成本。

③操作可行性:这个系统的操作方式在这个用户组织内是否可行。

可行性研究步骤:①复查系统规模和目标②研究目前正在使用的系统③导出新系统的高层逻辑模型④进一步定义问题⑤导出和评价供选择的解法⑥推荐行动方针⑦草拟开发计划⑧书写文档提交审查。

2、数据流图(会画)

3、数据流图(DFD):是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。

4、数据流图4种基本符号:正方形(或立方体)表示数据的源点或终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头表示数据流,即特定数据的流动方向。

5、数据字典(P47):数据字典是关于数据的信息的集合,也就是对数据流图中包含的缩影元素的定义的集合。

6、数据字典的内容:由四类元素的定义组成

①数据流;

②数据流分量(即数据元素);

③数据存储;

④处理。

7、~由数据元素组成数据的方式只有下述三种基本类型:

①顺序:以确定次序连接两个或多个分量。

②选择:从两个或多个可能的元素中选取一个。

③重复:把指定的分量重复零次或多次。

④可选

第三章 需求分析

1、系统的综合要求:

①功能需求: 这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能

②性能需求: 性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(相应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求

③可靠性和可用性需求: 可靠性需求定量地指定系统的可靠性

④出错处理需求:这类需求说明系统对环境错误应该怎样响应

⑤接口需求:描述应用系统与它的环境通信的格式

⑥约束:设计约束或实现约束描述在设计或实现应用系统时鹰遵守的限制条件 ⑦逆向需求:说明软件系统不应该做什么

⑧将来可能提出的要求:在设计过程中对系统将来可能的扩充和修改预做准备以便一旦确实需要时能比较容易的进行这种扩充和修改

2、~分析系统的数据要求:通常采用建立数据模型的方法

3、~导出系统的逻辑模型: 综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。

4、~获取需求的方法:①访谈 ②面向数据流自顶向下求精 ③简易的应用规格说明

技术 ④快速建立软件原型

5、~分析建模:需求分析过程应建立模型:数据模型、功能模型、行为模型

6、~①实体-联系图,描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。 ②数据流图,描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,因此,数据流图是建立功能模型的基础。

③状态转换图(状态图),指明了作为外部事件结果的系统行为。为此,状态转换图描绘了系统的各种行为模式(状态)和在不同状态间转换的方式。状态转换图是行为建模的基础。

7、从哪些方面验证软件需求的正确性

①一致性:所有需求必须是一致的,任何一条需求不能喝其他需求互相矛盾。

②完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。 ③现实性:指定的需求应该是现有的硬件技术和软件技术基本上可实现的。对硬件技术的进步可以做些预测,对软件技术则很难做出预测,只能从现有技术水平出发判断需求的现实性。

④有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。

第五章 总体设计

1、总体设计过程通常有两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。

2、典型总体设计过程包括下面9个步骤:

①设想供选择的方案。

②选取合理的方案。

③推荐最佳方案

④功能分解

⑤设计软件结构

⑥设计数据库

⑦制定测试计划

⑧书写文档(系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果) ⑨审核和复审

3、设计原理

①模块化(P94):模块是由边界元素限定的相邻程序元素的序列,而且有一个总体

标识符代表它。模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求

②抽象:人类在认识复杂现象的过程中使用的最强有力的思维工具。人们在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面(共性)。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节

③逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。

逐步求精之所以如此重要,是因为人类认知过程遵循Miller法则:一个人任何时候只能把注意力集中在(7+2)个知识块上。

④信息隐藏和局部化:

⑤模块独立:模块独立的概念是模块化/抽象/信息隐藏和局部化概念的直接结果。 开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。

★模块独立程度可以有两个定性标准度量:内聚和耦合。耦合衡量不同模块彼此间相互依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。

★★耦合★★

【数据耦合】:两个模块间彼此通过参数交换信息,而且交换带信息仅仅是数据。(数据耦合是低耦合,系统中必须存在这种耦合)

【控制耦合】:传递的信息中有控制信息(控制耦合是中度耦合,它增加了系统的复杂程度,它往往是多余的)

【特征耦合】:当把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素是,就出现了特征耦合。

【公共环境耦合】:当两个或多个模块通过一个公共数据环境互相作用时,它们之间的耦合称为公共耦合。

【内容耦合】:最高程度耦合是内容耦合。出现下列情况之一就出现了内容耦合 ①一个模块访问另一个模块的内部数据。

②一个模块不通过正常入口而转到另一个模块内部。

③两个模块有一部分程序代码重叠(只可能出现在汇编中)

④一个模块有多个入口(意味着一个模块有多种功能)

★★内聚★★

实践证明,内聚比耦合更重要。

【偶然内聚】:如果一个模块完成一组人物,这些人物彼此间即使有关系,关系也是松散的,这就是偶然内聚。

【逻辑内聚】:如果一个模块完成的人物在逻辑上属于相同或类似的一类,则称为逻辑内聚。

【时间内聚】:如果一个模块包含的人物必须在同一段时间内执行,则。。

★中内聚主要有两类:如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为【过程内聚】;使用流程图作为工具设计软件时,常常通过研究流程图确定模块的划分,这样得到的往往是过程内聚的模块。如果模块中的所有元素都使用同一个输入数据和(或)产生同一个输出数据,则称为【通信内聚】

★高内聚也分为两类:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,则称为【顺序内聚】。根据数据流图划分模块时,通常得到顺序内聚的模块,这种模块彼此间的链接往往比较简单。如果模块内所有处理元素属于一个整体,完成一个单一的功能,则称为【功能内聚】。功能内聚是最高程度的内聚。

4、启发式规则:

①改进软件结构提高模块的独立性。

②模块规模应该适中。

③深度、宽度、扇出、扇入都应适当。

④模块作用域应该在控制域之内

⑤力争降低模块接口的复杂程度

⑥设计单入口单出口的模块

⑦模块功能可以预测

5、~描绘软件结构的图形工具: 层次图 、HIPO图 、结构图

6、~向数据流的设计步骤:(信息流的类型:变换流 、事务流)步骤:① 复查基本系统模型 ②复查并精化数据流图 ③确定数据流图具有变换特性还是事务特性 ④确定输入流和输出流的边界,从而孤立出变换中心 ⑤完成“第一级分解”。变换型数据流图被映射成一个输入、变换和输出的信息处理过程 ⑥完成“第二级分解”。把

数据流图中的每个处理映射成软件结构中一个适当的模块 ⑦使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。

第六章 详细设计

1、详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统。

2、过程设计的工具(会画图P124)

【程序流程图】

【盒图】特点:①功能域明确,可以从盒图一眼看出②不可能任意转移控制③很容易确定局部和全程数据的作用域④很容易表现嵌套关系,也可以表示模块的层次结构

【PAD图】问题分析图。优点:P126

【判定表】能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。

【判定树】优点在于,它的形式简单到不需任何说明,一眼就可以看出其含义,因此易于掌握和使用。

第七章 实现

1、软件测试的目标

①测试是为力发现程序中的错误而执行程序的过程。

②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。

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

2、软件测试准则

①所有测试都应该能追溯到用户的需求。

②应该远在测试开始之前就制定出测试计划

③把Prareto原理应用到软件测试中

④应该从“小规模”测试开始,并逐步进行“大规模”测试

⑤穷举测试是不可能的

3、软件测试方法

黑盒测试是把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。黑盒测试又称为功能测试。

白盒测试正好相反,它的前提是可以把程序看成装在一个透明的白盒子里,测试者

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

4、软件测试步骤

①模块测试

②子系统测试

③系统测试

④验收测试

⑤平行运行

5、单元测试的五个方面

①模块接口

②局部数据结构

③重要的执行通路

④出错处理通路

⑤边界条件

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

第八章 维护

1、软件维护(四项活动)

①把诊断和改正错误的过程称为【改正性维护】。

②【适应性维护】,也就是为了和变化了的环境适当地配合而进行的修改软件的活动,是既必要又经常的活动

③当一个软件系统顺利地运行时,常常出现第三项活动:在使用软件过程中用户往往提出增加新功能货修改已有功能的建议,还可能提出一般性的改进意见。为了满足这类要求,需要进行【完善性维护】。这项为何活动通常占软件维护工作的大部分。 ④当为了改进为了的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件时,出现了第四项维护工作【预防性维护】,目前相对较少。

2、软件的可维护性:

①可理解性

②可测试性

③可修改性

④可移植性 ⑤可重用性

更多相关推荐:
软件工程知识点总结(科大)

1.计算机软件是一种特殊的逻辑产品,其为在计算机上运行的各种程序、数据及其说明程序的各种文档。2.软件承担着双重角色,软件是一个产品,同时又是产品交付使用的载体。3.软件测试目的,就是在系统交付客户之前能够发现…

软件工程知识点总结

第二章软件生命周期和过程模型2.1软件生命周期是什么?分为哪几个阶段?每个阶段干什么?2.2.1瀑布模型1、软件生命周期是指软件产品从考虑其概念开始到交付使用,直至最终退役为止的整个过程。软件生命周期可以划分为…

软件工程知识点总结

软件工程知识点总结1.软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。2.软件危机产生的原因:1.软件本身的复杂性、难衡量的特点;2.软件开发与维护的方法不正确。3.软件的定义:计算机程序、方…

软件工程导论知识点总结(整理)

软件工程导论课后习题答案第一章软件工程概论1什么是软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题这些问题表现在以下几个方面1用户对开发出的软件很难满意2软件产品的质量往往靠不住3一般软...

软件工程知识总结

1软件是能够完成预定功能和性能的可执行指令使得程序能够适当的操作信息的数据结构描述程序的操作和使用的文档软件的特点是逻辑产品非物理产品由开发或工程化而形成无明显的制造过程存在退化问题必须维护软件2软件发展历史程...

软件工程知识点总结

一软件工程概述1软件特点软件计算机程序方法规则相关的文档资料以及计算机程序运行时所需要的数据软件是计算机系统中的逻辑成分具有无形性其主要内容包括程序配置文件系统文档用户文档等2软件分类1按功能划分系统软件支撑软...

软件工程基础知识点整理

软件工程基础知识点整理1109070211朱染晅土建112一软件工程基本概念1软件定义是计算机系统中与硬件相互依存的另一部分是包括程序数据以及相关文档的完整集合1程序是软件开发人员根据用户需求开发的用程序设计语...

软件工程重要知识点1

1软件工程的定义将系统的规范的可度量的工程化方法应用于软件开发运行和维护的全过程及上述方法的研究软件工程包括3个要素即方法工具和过程2软件工程原则抽象信息隐藏模块化局部化一致性完整性和可验证性3软件工程开发模型...

安徽大学软件工程导论期末复习考点试卷汇总

第1章软件工程概述1什么是软件工程为什么会出现软件工程软件工程是把系统的规范的可度量的途径应用于软件开发运行和维护过程也就是把工程应用于软件研究中提到的途径软件工作者在20世纪60年代后期开始认真研究消除软件危...

武汉大学软件工程复习重点总结

软件工程复习一概论1软件的组成程序文档数据软件的特点更依赖于人开发成本进度难以估计正确性难保证维护困难不磨损老化可长期使用软件开发的三个时期程序设计语言兴起时期结构化程序设计时期软件工程与软件开发环境时期2软件...

软件工程复习知识点

第一章概论1软件的特点1软件是一种逻辑实体而不是有形的系统元件其开发成本和进度难以准确地估算2软件是被开发的或被设计的没有明显的制造过程一旦开发成功只需复制即可但其维护的工作量大3软件的使用没有硬件那样的机械磨...

软件工程知识总结

一关于软件工程1软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件学科软件工程技术管理2软件过程为一个为建造高质量软件所需完成的任务的框架即形成软件产品的一些列步骤包括中间产品资源角色及过程中采...

软件工程知识点总结(30篇)