软件工程笔记1

1、什么是软件危机
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机主要有以下典型表现:
1.对软件开发成本和进度的估计常常很不准确。
2.用户对“已完成的”软件系统不满意的现象经常发生。
3.软件产品的质量往往靠不住。
4.软件常常是不可维护的。
5.软件通常没用适当的文档资料。
6.软件成本在计算机系统总成本中所占的比例逐年上升。
7.软件开发生产效率提高的速度,远远跟不上计算机应用迅速普及深 入的趋势。

2、软件危机产生的原因
用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件开发复杂度越来约高。

3、什么是软件工程
概况来说,软件工程是知道计算机软件开发和维护的一门工程学科。采用工程的概念、原理、计数、方法来开发与维护软件,把管理技术和最好的技术方案结合起来(理解为软件工程包括技术和管理两个方面),以经济地开发出高质量软件并有效的维护它。

4、软件工程的特性
1.软件工程关注于大型程序的构造
2.软件工程的中心课题是控制复杂性
3.软件经常变化
4.开发软件的效率非常重要
5.和谐地合作是开发的关键
6.软件必须有效地支持它的用户
7.在软件工程领域中通常具有一种文化背景的人替代另一种文化背景的人创造产品。

5、什么是传统方法学
传统方法学也成为声明周期方法学或结构化范型。它采用结构化技术来完成软件开发的各项人物,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。目前传统方法学仍然是人们在开发软件时使用的十分广泛的软件工程方法学。

6、什么是软件的生命周期
概括地说,软件生命周期由软件定义、软件开发、运行维护3个时期组成,
7、每个生命周期的基本任务
每个生命周期的基本任务:
1.问题定义
要解决的问题是什么
2.可行性研究
对于上一个阶段所确定的问题有可行的方法?
3.需求分析
为了解决这个问题,目标系统必须怎么做
4.总体设计
应该怎样实现目标系统
5.详细设计
应该怎样具体地实现这个系统
6.编码和单元测试
编写出正确的容易理解、容易维护的程序模块
7.综合测试
通过各种类型测试使软件达到预期的要求。
8.软件维护
通过各种必要的维护活动使系统持久地满足用户的需要。
9、什么是快速原型
所谓快速原型就是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集.
10、可行性研究注重那三个方面
可行性研究的目的是问题是否值得取解决,而不是解决问题。
1.可行性研究任务
一般来说,从3个方面解决可行性
1.技术可行性
2.经济可行性
3.操作可行性
11、什么是流程图、什么是ER图
E-R图为实体bai-联系图,提供了表示实du体型、属性和联系的方法zhi,用来描述现实世界的概念模dao型。
构成E-R图的基本要素是实体型、属性和联系,其表示方法为:
· 实体型:用矩形表示,矩形框内写明实体名;
· 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;
· 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。
系统流程图又叫事务流程图,是在计算机事务处理应用进行系统分析时常用的一种描述方法(另一个是数据流图),它描述了计算机事务处理中从数据输入开始到获得输出为止,各个处理工序的逻辑过程。
12、什么是范式,默认情况下,一般遵守第几范式
软件系统经常使用二中长期保存的信息,这些信息通常以一定方式组织并存储在数据库文件中,为了减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。叫做范式。
范式级别提高则需要访问的表增多,因此性能将下降。从实际的角度,大多数场合,选用第三范式比较恰当。
13、什么是内聚、什么耦合, 我们应该遵循哪些模块之间的依赖关系
逻辑内聚:几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。
内容耦合。当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过正常入口而转入另一个模块时,这样的耦合被称为内容耦合。内容耦合是最高程度的耦合,应该避免使用之。
14、软件测试的目的
软件测试目的
1.测试是为了发现程序中的错误而执行程序的过程。
2.好的测试方案是极可能发现迄今为止尚未发现的错误的测试方法
3.成功的测试是发现了至今为止尚未发现的错误的测试
15、什么是黑盒测试、什么是白盒测试
黑盒测试,把程序当初一个黑盒子,不考虑内部结构和处理过程。
白盒测试,按照内部逻辑代码,进行测试。
16、什么是单元测试
单元测试
1.模块接口
2.局部数据结构
3.重要的执行通路
4.出错处理通路
5.边界条件
17、什么是集成测试
1.自顶向下集成
从主控模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。
2.自底向上集成
自底向上测试从“原子”模块开始组装和测试。
18、什么是回归测试
1.检查软件全部功能的代表性测试用例
2.专门针对可能接受修改影响的软件功能的附加测试
3.针对被修改过的软件成分的测试
19、白盒测试的方法有哪些
1.逻辑覆盖
1.语句覆盖
为了暴露程序中的错误,至少每个语句应该执行一次
2.判断覆盖
每个判断的每种可能的结果都应该至少执行一次
3.条件覆盖
条件覆盖的含义是,不仅每个语句至少执行一次,而且使判定表达式中的每个条件渠道各种可能的结果。
4.判断/条件覆盖
选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也取到各种可能的结果。
5.条件组合覆盖
它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。
6.点覆盖
7.边覆盖
8.路径覆盖
选取足够多测试数据,使程序的每条可能路径都至少执行一次。
2.控制结构测试
1.基本路经测试
这种技术设计测试用例时,首先计算程序的环形复杂度,并用该复杂度为指南定义执行路径的基本集合,从该基本集合导出的测试用例可以保证程序中的每条语句至少执行一次。
2.条件测试
用条件测试技术设计出的测试用例,能够检查程序模块中包含的逻辑条件。
3.循环测试
1.简单循环
2.嵌套循环
3.串接循环
20、黑盒测试的目的。
黑盒测试着重测试软件功能,力图发现下属错误
1.功能不正确或遗漏
2.界面错误
3.数据结构错误或外部数据库访问错误
4.性能错误
5.初始化和中止错误
1.等价划分
这种技术把程序的输入域划分成若干个数据类,据此导出测试用例。
1.如果规定了输入值的范围,则可划分出一个有效的等价类,两个无效的等价类。
2.如果规定了输入数据的个数,则类似地也可以划分出一个有效的等价类和两个无效的等价类。
3.如果规定了输入数据的一组值,而且程序对不同输入值做不同处理,则每个允许的输入值是一个有效的等价类,此外还有一个无效的等价类。
4.如果规定了输入数据为整形,则应该使用空表,以及含一项获多项的表。
5.如果规定了输入数据必须遵守的规则,则可以划分出一个有效的等价类和若干个无效等价类。
6.如果程序的处理对象是表格,则应该使用空表,以及韩一项或多项的表。
根据等价类划分设计测试方案
1.设计一个新的测试方案以尽可能多地覆盖尚未被测试的有效等价类。
2.设计一个新的测试方案,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价类。
2.边界值分析
3.错误推测
21、什么是软件的可靠性
1.基本概念
1.软件可靠性的定义
软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地允许的概率。
2.软件的可用性
软件可用性是程序在给定的时间点,按照规格说明书的规定,成功允许的概率。
22、测试人员在什么阶段开始介入。
软件已经交付使用之后,为了改正错误或满足新的需求而修改软件,测试人员开始介入。
23、我们测试的依据是什么
1可理解性
2.可测试性
3.可修改性
4.可移植性
5.可重用性

你可能感兴趣的:(软件工程笔记1)