2020年秋 华南农业大学 软件工程 主要考点摘抄

2021/01/16 11:44
阅读数 68

                                                                                                     

注意:木有例子,详细的还得看ppt

以下内容要求全文背诵

 

1.软件的概念

计算机软件指计算机系统中的程序及其文档

程序是计算任务的处理对象和处理规则的描述(形式上是source, binary)

文档是为了便于了解程序所需的阐明性资料

5. 软件工程的定义

 IEEE:软件工程是:

①将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;

②在①中所述方法的研究( 若考试,必须回答 IEEE1993这个定义)

 

6. 软件生存周期的概念及若干个阶段

软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期

软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护

 

12. 组成基于计算机的系统由哪些元素组成

主要有:软件、硬件、人员、数据库、文档和规程(Procedure)

软件—指计算机程序、数据结构和相关的工作产品,它们被用于实现所需的逻辑方法、规程或控制

硬件—指提供计算能力的电子设备、使能数据流动的互连设备(如网络交换器、电信设备)和提供外部世界功能的电子机械设备(如传感器、马达等)

人员—指硬件和软件的用户和操作者

数据库 —指通过软件访问并持久存储的大型的有组织的信息集合

文档 —指描绘系统的使用和/或操作的描述性信息(如模型、规格说明、硬复制手册联机帮助文件、Web站点)

规程(procedures) —指定义每个系统元素或其外部相关流程的具体使用步骤

 

 

13. 需求工程的概念(1/14 15:50更新)

需求工程是一个不断反复的需求定义、文档记录、需求演进的过程,并最终在验证的基础上冻结需求。

本书将软件需求工程细分为:需求获取、需求分析与协商、系统建模、需求规约、需求验证和需求管理六个阶段 。

 

 

15. 软件需求的定义

软件需求是指用户对目标软件系统在功能,行为,性能,设计约束等方面的期望

 

24. 模块的概念

模块是数据说明、可执行语句等程序对象的集合,它是单独命名的,并且可以通过名字来访问

– 例如,过程。函数、子程序、宏等

模块化,即把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联

的部件,实际上是系统分解和抽象的过程。

 

26. 内聚与耦合的概念

• 内聚(cohesion)是一个模块内部各个元素彼此结合的紧密程度的度量

• 耦合(coupling)是模块之间的相对独立性(互相连接的紧密程度)的度量

 

30. 部件级设计阶段的主要工作

(1) 为每个部件确定采用的算法,选择某种适当的工具表达算法的过程,编写部件的详细过程性描述;

(2) 确定每一部件内部使用的数据结构;

(3) 在部件级设计结束时,应该把上述结果写入部件级设计说明书,并且通过复审形成

正式文档,作为下一阶段(编码阶段)的工作依据。

 

32. 设计规约主要包含哪些内容

 

39. 标识符命名需要注意的问题

 

(1)选择含义明确的名字,使其能正确提示标识符所代表的实体

         例如,表示总量的变量名用 Total ,表示平均值的用 Average 等

(2)名字不要太长,太长会增加打字量,且易出错。必要时可使用缩写

(3)不用相似的名字,相似的名字容易混淆,不易发现错误

         如 cm,cn,cmn,cnm,cnn,cmm

(4)不用关键字作标识符

(5)同一个名字不要有多个含义

(6)名字中避免使用易混淆的字符。

        如数字0与字母O;数字1与字母I或l;数字2与字母z等

 

41. 书写功能性注释需要主要哪些问题

(1)注解要正确,错误的注解比没有注解更坏;

(2)为程序段作注解,而不是为每一个语句作注解;

(3)用缩进和空行,使程序与注释容易区分;

(4)注解应提供一些从程序本身难以得到的信息,而不是语句的重复。

 

 

42. 编写程序时,对数据说明应该注意哪些问题

(1)数据说明的次序应当规范化

(2)说明语句中变量安排有序化

(3)使用注解说明复杂数据结构

 

 

43. 测试用例的概念(测试用例具体还会给流程图考输入输出等应用,类似实验)

一个测试用例由测试输入数据和预期结果组成,测试时通过输入数据,运行被测程序,如果运行的实际输出与预期结果不一致,则表明发现了程序中的错误。

 

45. 白盒测试与黑盒测试的概念

白盒测试 (又称为结构测试) 把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作

黑盒测试 (又称行为测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求

47. 各种逻辑覆盖准则之间的关系(具体例子可看第7个ppt第16页)

 

(1)语句覆盖    

         指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个可执行语句都至少执行一次

(2)判定覆盖    

         是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定的所有可能结果都至少执行一次(即判定的每个分支至少经过一次)

         判定覆盖将每个判定的所有可能结果都至少执行一次,所以,程序中的所有语句也必定都至少执行一次。因此,满足判定覆盖标准的测试用例也一定满足语句覆盖标准

(3)条件覆盖    

         指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定中的每个条件的所有可能结果都至少出现一次

         条件覆盖通常比 判定覆盖强,但有时虽然每个条件的所有可能结果都出现过,但判定表达式的某些可能结果并未出现。

(4)判定-条件覆盖

   指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定的所有可能结果都至少执行一次,并且,每个判定中的每个条件的所有可能结果都至少出现一次

   显然,满足判定/ 条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖、语句覆盖标准

(5)条件组合覆盖    

指选择足够的测试用例,使得运行这些测试用例时,被测程序的 每个判定中 条件结果的所有可能组合都至少出现一次

显然,满足条件组合覆盖标准的测试用例一定也满足判定覆盖、条件覆盖、判定/ 条件覆盖、语句覆盖标准

条件组合覆盖是上述五种覆盖标准中最强的一种,然而,条件组合覆盖仍不能保证程序中所有可能的路径都被覆盖。

(6)路径覆盖    

       指选择足够的测试用例,使得运行这些测试用例时,被测程序的每条可能执行到的路径都至少经过一次(如果程序中包含环路,则要求每条环路至少经过一次)

       路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,但它未必能覆盖判定中条件结果的各种可能情况。因此,它是一种比较强的覆盖标准,但不能替代条件覆盖和条件组合覆盖标准

 

49. 等价类的概念

等价类是指输入域的某个子集,该子集中的每个输入数据对揭露软件中的错误都是等效的,测试等价类的某个代表值就等价于对这一类其他值的测试。

也就是说,如果该子集中的某个输入数据能检测出某个错误,那么该子集中的其他输入数据也能检测出同样的错误;

反之,如果该子集中的某个输入数据不能检测出错误,那么该子集中的其他输入数据也不能检测出错误

50. V 模型中四类测试的对象、依据和任务分别是什么(找不到依据在哪)

V 模型:描述软件开发各阶段与测试策略之间的对应关系

 

•  单元测试 是针对程序中的模块或构件,主要揭露编码阶段产生的错误(根据设计描述)

•  集成测试 针对集成的软件系统,主要揭露设计阶段产生的错误

•  确认测试 是根据软件需求规约对集成的软件进行确认,主要揭露不符合需求规约的错误

•  系统测试 对于基于计算机系统中的软件,还需将它集成到基于计算机系统中,并进行 系统测试 ,以揭露不符合系统工程中对软件要求的错误

 

 

57. 软件维护的定义

软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程

  国标GB/T 11457-2006 给出如下定义

–  在一软件产品交付使用后对其进行修改,以纠正故障;

–  在一软件产品交付使用后对其进行修改,以纠正故障、改进其性能和其它属性,或使产品适应改变了的环境

 

以下三选一(可能会考具体怎么用?)

58. 纠错性维护

为了改正软件系统中的错误,使软件能够满足预期的正常运行状态的要求而进行的维护

59. 适应性维护

为了使软件适应内部或外部环境变化,而去修改软件的过程

61. 预防性维护

为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础而修改软件的活动

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部