您好,欢迎来到吉趣旅游网。
搜索
您的当前位置:首页软件工程的简答和名词解释

软件工程的简答和名词解释

来源:吉趣旅游网
简答和名词解释:

1、可行性研究的内容(四个方面): 1. 技术可行性

使用现有的技术能实现这个系统吗?分析技术冒险的各种因素,例如有关的技术是否已进步到足以支持该系统?能否有胜任开发该系统的熟练技术人员?为开发项目的所有硬、软件资源是否能按期得到? 2.经济可行性

这个系统的经济效益能超过它的开发成本吗?主要进行成本/效益分析.估算项目的开发成本会否高于预期的利润,以确定是否值得投资开发,同时还要分析对其他产品所带来的经济影响。 3.操作可行性

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

确定由于开发软件项目是否会侵犯他人、集体或国家的利益,是否会违反国家的法律,并由此承担法律责任。 2、模块化和信息隐藏 模块化

“模块”,又称“构件”,一般指用一个名字可调用的一段程序。类似于高级语言中的procedure(过程)、function(函数)、subroutine(子程序)、section(节)、block(块)等。设计中可以选择其它程序已编写好的模块,其本身也可供其它程序使用。它一般具有如下四个基本属性: ①接口:指模块的输入与输出。

②功能:指模块实现的功能。注意这里所说的模块功能,应该是模块本身的功能加上它所调用的所有子模块的功能。

③逻辑:描述内部如何实现要求的功能及所需的数据。 ④状态:该模块的运行环境,即模块的调用与被调用关系。 模块化:

就是对一个复杂的问题,自顶向下、逐层把软件系统划分成若干模块的过程。每个模块完成一个子功能,再按某种方法把这些模块组装起来,成为一个整体,即可完成指定的系统功能,满足问题要求的过程。 3、扇入扇出

扇出是对由某一模块直接控制的模块数目的度量。 扇入指出有多少个模块直接控制一个给定的模块。

 扇出 = 一个模块直接调用、控制的模块数。 3  fan-out  9

 扇入 = 直接调用该模块的模块数在不破坏独立性的前提下,fan-in 大的比较好。  深度 = 分层的层数。过大表示分工过细。

 宽度 = 同一层上模块数的最大值。过大表示系统复杂度大。 4、软件工程和软件

软件工程定义:

软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来——即软件工程。 什么是软件?

软件:计算机程序及其说明程序的各种文档

 软件定义: 软件=程序+数据+文档 5、类和对象

(1) 对象:是人们要进行研究的任何事物。不仅能表示具体的事物,还能表示抽象的规则、计划或事件。描述属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体就是对象。

(2)类: 具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。

• 类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。

• 类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

6、白盒、黑盒

(1).黑盒测试[B1ack—box testing)

黑盒测试着眼于程序的外部特征,而不考虑程序的内部结构。测试时、测试者把被测程序看作是一个黑盒,仅以程序的功能为依据,看其是否满足功能要求。因为黑盒测试着重于检查程序的功能,所以又叫功能测试。

黑盒测试的内容包括:是否符合功能要求;输入数据是否能被正确地接收;输出结果是否正确;外部信息(如数据文件)是否能保证完整性等。

(2) 白盒测试(White-box testing)

白盒测试着眼于程序的内部结构。测试者对程序的内部逻辑与处理过程了如指掌,并依据程序的逻辑结构,对程序的所有逻辑路径进行测试,确定其实际状态与预期的状态是否一致。

出于被测程序的结构对测试者来说是透明的,因此这类测试又叫结构测试或玻璃盒测试

7、内聚、耦合 内聚

 内聚标志一个模块内各个元素被此结合的紧密程度,它是信息隐蔽和局部化概

念的自然扩展。内聚性就越高,其独立性也就越强。

 一般模块的内聚性有7种:功能内聚、信息内聚、通信内聚、过程内聚、时间

内聚、逻辑内聚和巧合内聚。

耦合

 耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模

块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。  分类:1.非直接耦合2.数据耦合3.标记耦合4.控制耦合 5.外部耦合6.公共耦

合7. 内容耦合

模块耦合性:

模块内聚性:

8、逻辑覆盖和路径覆盖(属于白盒测试范畴) 1、逻辑覆盖:

逻辑覆盖测试重点考察的是程序流程图中的判定框(菱形框)。从覆盖源程序语句的详尽程度分析,逻辑覆盖测试大致有以下一些不同的覆盖标准。为便于理解,使用如下所示的程序,下图所示的是其流程图。变量A、B、X是需要输入的测试数据。 (1)语句覆盖

语句覆盖的含义是:选择足够多的测试数据,使被测程序中每条语句至少执行一次。 (2) 判定覆盖

比语句覆盖稍强的覆盖标准是判定覆盖。按判定覆盖准则进行测试是指,设计足够多的测试用例,运行被测程序,使得程序中每个判断至少都获得一次“真”值和“假”值,或者说,使得程序中的每一个取“真”分支和取“假”分支至少经历一次,即判断的真假值均曾被满足。判定覆盖又称为分支覆盖 (3) 条件覆盖

条件覆盖的含义是:设计足够多的测试用例,执行被测程序后,使得每一判定

语句中每个逻辑条件的可能取值至少满足一次。 (4)判定/条件覆盖

判定/条件覆盖的含义是:设计足够的测试用例,使得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次 (5) 条件组合覆盖

条件组合覆盖(Condition Coverage)是设计足够的测试用例,使得每个判定表达式中条件的各种可能组合都至少出现一次。条件组合覆盖率的公式如下: 条件组合覆盖率=(条件组合被评价的数量)/(条件组合的总数) 六种覆盖的比较:

语句覆盖 每条语句至少执行一次

判定覆盖 每个判定的每个分支至少执行一次 条件覆盖 每个判定的每个条件应取到各种可能的值 判定/条件覆盖 同时满足判定覆盖和条件覆盖

条件组合覆盖 每个判定中各条件的每一种组合至少出现一次 路径覆盖 使程序中每一条可能的路径至少执行一次 发现错误能力由弱到强 2、基本路径测试

基本路径测试的基本思想是,以软件过程性描述为基础(例如,程序流程图或源代码),通过分析它的控制流程计算复杂度,导出基本路径集合,并设计一组测试用例,确保程序中的每个语句至少执行一次,每一条路径都通过一次。

基本路径测试的主要步骤是:首先根据详细设计或源程序代码导出控制流图,然后计算环路复杂性,接着参照环路复杂性确定线性独立的基本路径集,最后依据所需覆盖的路径集设计合适的测试用例。 ①画出程序的控制流图 ②计算程序环路复杂度 ③确定独立路径的基本集合 ④设计测试用例

9、等价类划分法,边界值法(属于黑盒测试范畴) 1、等价类划分:

等价类:指某个输入域的子集合,在该集合中,各个输入数据对暴露程序中的错误是等效的。即如果使用某个等价类中的一个输入条件,作为测试数据检测出了错误,则用这一等价类中的其它数据进行测试会发现同样的错误,反之亦然。

等价类划分的含义:将输入数据域按有效的或无效的(或称合理的或不合理的)划分成若干类,通过测试每个类的代表值,进行测试。如果某个等价类中任选一个测试用例,未发现程序错误,则该类中的其他测试用例,也不会发现程序错误。这样用少量有代表性的例子可代替大量测试目的相同的例子,有效地提高测试效率。 步骤:

⑴划分等价类

有效等价类:对程序规格来说是正确的,有意义的数据; 无效等价类:对程序规格来说是错误的,无意义的数据。

⑵确定测试用例 ,选取的原则:

1)为每个等价类规定一个唯一的编号;

2)设计一个测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复此步骤,直到所有的有效等价类均被覆盖为止;

3)为每一个无效等价类设计一个测试用例,直到所有的无效等价类均被覆盖为止; 2、边界值分析:

边界值分析也是一种黑盒测试法,是对等价类划分法的补充。

实践经验表明,程序往往在处理边界情况时发生错误。边界情况指输入等价类、输出等价类边界上的情况。检查边界情况的测试用例是比较高效的,可以查出更多的错误。

选取刚好等于、刚好大于、刚好小于边界的值作为测试用例。

边界值分析方法可以单独设计测试用例,也可以作为等价类划分方法的补充,即在各个等价类中主要是选择边界上及其左右的值。 10、维护及其分类

软件维护的定义:在软件运行/维护阶段对软件产品所进行的修改就是维护。

软件维护的内容很广泛,根据要求维护的原因,维护的活动可分为4种: 1、改正性维护:为改正软件系统中潜藏的错误而进行的活动

在软件测试过程中,没有发现的错误,带到维护阶段,这些隐含的错误在某些特定的环境下会暴露出来。为识别和纠正这些错误,修改软件性能上的缺陷,进行的确定和修改错误的过程称为改正性维护。

2、适应性维护:随着计算机的发展,计算机硬件和软件环境、数据环境都在不断地发生变化,为使软件适应这种变化而进行的软件修改过程称为适应性维护。

3、完善性维护:在软件使用过程中,用户往往会对软件提出新的功能要求与性能要求,为满足这些新的要求,扩充软件原有的功能、改善性能而进行的软件维护活动称为完善性维护。

4、预防性维护:为提高软件的可维护性和可靠性,为以后进一步改进软件奠定良好基础而对软件进行的修改称为预防性维护。 4种维护的活动占总维护工作量的比例:

11、生命周期及其划分

软件生命期(Life cycle):

一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程称为软件生存期或叫生命期。 软件定义时期:1、可行性研究。

2、需求分析。

软件开发时期:1、概要设计

2、详细设计

3、编码实现 4、测试

软件运行和维护时期:

 软件的维护就是为了延长软件的寿命而对软件产品进行修改或对软件需求变化

做出响应的过程。软件的维护是软件生命周期中时间最长的阶段,软件维护的工作量可能占了软件生命周期全部工作量的70% 以上

 软件的退役即软件的停止使用。退役意味着软件生存周期的结束,表明软件系

统已不再具有维护价值。

12、软件危机及其表现 软件危机定义:

计算机软件的开发和维护过程所遇到的一系列严重问题。 表现:

 对软件开发成本和进度的估算很不准确  用户对“已完成的”软件系统不满意  软件质量往往靠不住

 没有适当的文档,软件常常是不可维护的  软件成本比重上升

 供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势

13、数据流图及其符号 数据流图

1、组成元素:四种基本图形符号 语命名;

圆框:表示从输入到输出的数据流中的一个加工,在框内注明加工的名称; 方框:表示数据的源点或数据的汇点,即外部实体,在框内注明实体的名称; 箭头:表示被加工数据的路径和流向,即数据流,可用名词和或名词性短

双杠:表示数据存储,可以是一个记录或一个数据文件,可用名词和或名词

性短语命名。 数据流图的符号:

数据流图有时也用附加符号: Λ “与”,即同时输入/出; ν “或”,即至少一项输入/出; ⊕ “异或”,即非同时输入/出 14、软件及其特点 什么是软件?

软件:计算机程序及其说明程序的各种文档

 软件定义: 软件=程序+数据+文档

 在运行中能提供所希望的功能和性能的指令集(即程序)  使程序能够正确运行的数据  描述程序研制过程和方法使用的文档 2、软件的特点

软件是一种抽象的 逻辑产品。软件的形态不可见,必须通过观察、分析、思考、判断来了解其功能、性能和其它特性。

软件是人脑思维的产物,其生产过程与硬件不同,没有明显的制造过程,主要是思维,具有不可见性,带有个人色彩。如何控制开发过程的质量,如何保护软件产品的版权,都是不同于硬件的。

软件的开发和运行受硬件、环境的限制--软件移植问题。 软件的开发技术落后,手工开发方式仍占统治地位,开发效率低。 软件产品没有硬件那样的机械磨损、老化问题。软件的失效率与硬件不同。 软件的复杂性越来越高,对软件人员的要求越来越高,出现了软件复杂性与软件技术发展的不适应现象。

软件的开发研制成本高,自80年代以来,已大大超过硬件成本。

相当多的软件工作涉及社会因素,如机构、体制、管理方式等,包括人的观念及心理,都直接影响软件工作的成败。 15、动静态测试

软件测试的分类

按照测试过程是否在实际应用环境中运行来分类,软件测试方法一般可以分成静态测试和动态测试。其中,动态测试又可分为白盒法和黑盒法。

静态测试:采用人工检测和计算机辅助静态分析的方法对程序进行检测 动态测试:事先设计好一组测试用例,然后通过运行程序来发现错误 结合上边总结的白盒、黑盒测试一起看。 16、测试定义及目的 什么是软件测试:

软件测试的定义:软件测试是为了发现错误而运行程序的过程。是根据软件开发各阶段的规格说明和程序内部结构精心设计一批测试用例,并利用这些用例去运行程序,以发现程序中的错误。 软件测试的目的:

1、软件测试是为了发现错误而运行程序的过程。

2、一个好的测试用例能够发现至今尚未发现的错误。 3、一个成功的测试是发现了至今尚未发现的错误的测试。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务