SCAU软件工程基础复习笔记

前言:本笔记基于某SCAU师兄笔记完善,仅供学习参考,祝大家考试顺利!

原博客:(29条消息) SCAU软件工程期末复习_Throb001的博客-CSDN博客https://blog.csdn.net/Th_rob/article/details/121986279

标注:* 表示重点关注部分; 前置 # 表示“教材上出现的主要知识点”没有加粗部分; 后置 # 表示由于复习提纲没有或者考的概率不大,可以适当忽略。

1、软件的概念

  • 计算机软件指计算机系统中的程序、文档及数据。
    • 程序是指令和数据的集合,是计算任务的处理对象和处理规则的描述。
      • 计算任务:以计算机为处理工具的任务
      • 处理对象:数据(如数据、文字、图形、图象、声音等,它们只是表示,而无含义)或信息(数据及有关的含义)
      • 处理规则:一般指处理的动作和步骤。程序必须装入计算机内才能工作
  • 文档是为了便于了解程序所需的阐明性资料

2、软件发展的3个阶段

确认需求阶段,正式开发阶段,上线运营阶段。

3、软件特点 VS 硬件

软件是程序最终的结果,硬件主要是指键盘,鼠标,显示器等等实际看得见的一些物质。在表现形式、生产方式、要求、维护上有所不同。

4、软件的分类

  1.  按功能:系统软件、支撑软件、应用软件
  2.  按工作方式:实时处理软件、分时软件、交互式软件、批处理软件
  3.  按服务对象的范围:项目软件、产品软件
  4.  按使用的频度:一次使用、频繁使用
  5.  按失效的影响:高可靠性软件、一般可靠性软件

5、软件工程的定义

软件工程是:
        ①将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程
        化应用于软件;
        ②在①中所述方法的研究。

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

软件生存周期:软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。

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

7、CMM的目的

CMM是指“能力成熟度模型”,CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标

  1.  初始级:无序、混乱,几乎所有过程未经妥善定义
  2.  可重复级制定了基本的项目管理过程,已做过的项目能够重复实现
  3.  已定义级定义了管理和工程活动的软件过程,并将之文档化和标准化
  4.  已管理级:对软件过程和产品实现了量化管理和控制
  5.  优化级:新思想和新技术、量化反馈推动软件过程不断改进

8、瀑布模型

在这里插入图片描述
1970年W.Royce提出瀑布模型,最早出现的软件开发模型,一般不单独使用,可在演化、迭代模型中应用。

特征:

  • 接受上一阶段的结果作为本阶段的输入
  • 利用这一输入实施本阶段应完成的活动
  • 对本阶段的工作进行评审
  • 将本阶段的结果作为输出,传递给下一阶段

缺点

  • 缺乏灵活性,难以适应需求不明确或需求经常变化的软件开发
  • 开发早期存在的问题往往要到交付使用时才发现,维护代价大

10、原型模型

原型(prototype)是预期系统的一个可执行版本,它反映了系统性质(如功
能、计算结果等)的一个选定的子集。

12、组成基于计算机的系统由那些元素组成

组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程(Procedure)。

13、需求工程的概念

软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望
包括功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、
资源使用需求、安全保密需求、可靠性需求、软件成本消耗与开发进度需求等,同时还要预
估计以后系统可能达到的目标


14、需求工程的六个阶段


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


15、软件需求的定义


软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通常,这些需求包括功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密需求、可靠性需求、软件成本消耗与开发进度需求等。

17、常用的需求分析方法:*

  1. 面向数据流的结构化分析方法 (SA)、
  2. 面向数据结构的分析方法、
  3. 面向对象的分析方法 (OOA)

18、需求规约的 8 条原则(1979 Balzer 和 Goldman):*

  1.  从现实中分离功能,即描述要“做什么”而不是“怎样实现”
  2.  要求使用面向处理的规约语言(或称系统定义语言),讨论来自环境的——>各种刺激可能导致系统做出什么样的功能性反应,来定义一个行为模型,——>从而得到“做什么”的规约
  3.  如果被开发软件只是一个基于计算机的系统中的一个元素,那么整个大系统也包括在规格说明的描述之中
  4.  规约必须包括系统运行环境
  5.  规约必须是一个认识模型,而不是设计或实现的模型
  6.  规约必须是可操作的,以便能够利用它决定对于任意给定的测试用例,已提出的解决方案是否都能满足规约
  7.  规约必须允许不完备性并允许扩充
  8.  规约必须局部化和松散耦合。它所包括的信息必须局部化,这样当信息被修改时,只要修改某个单个的段落(理想情况)。同时,规约应被松散地构造(即松耦合),以便能够很容易地加入和删去一些段落

19、软件设计的任务,在回答接口设计的时候,需要讲清楚3个方面的内容


接口设计主要包括三个方面:

  1. 设计软件模块间的接口
  2. 设计模块和其他非人的信息生产者和消费者(比如外部实体)之间的接口
  3. 设计人(用户)和计算机间的接口

22、软件设计的过程*

软件设计是一个把软件需求变换成软件表示的过程,分为如下 6 个步骤:

  1.  制订规范
  2.  体系结构和接口设计
  3.  数据/类设计
  4.  部件级(过程)设计
  5.  编写设计文档
  6.  设计评审

24、模块化的概念*

模块化:从逻辑上将软件划分为完成特定功能或子功能的部件。

25、信息隐蔽的概念#

  1. 每个模块的实现细节对于其它模块来说应该是隐蔽的
  2. 块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用
  3. 通过信息隐蔽,则可定义和实施对模块的过程细节和局部数据结构的存取限制

26、内聚与耦合的概念

耦合与内聚都是功能独立性的定性标准,都反映功能独立性的良好程度,但耦合是直接的主导因素,内聚则辅助耦合共同对功能独立性进行衡量。

27、功能内聚的概念

功能内聚:指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割

28、数据耦合的概念

数据耦合:指两个模块之间仅通过参数表传递简单数据。

31、程序流程图、判定表

  • 判定表能清晰地表达复杂的条件组合与应做动作之间的对应关系。
  • 程序流程图独立于任何一种程序设计语言,比较直观、清晰、易于学习掌握。

为使用流程图描述结构化程序,必须限制流程图只能使用五种基本控制结构

在这里插入图片描述

控制结构相互组合和嵌套的实例

在这里插入图片描述

33、结构化分析与设计

结构化方法:

  • 结构方法分为:结构化分析、结构化设计和结构化程序设计
  • 结构方法是一种以数据流为中心的软件分析模型和设计模型
  • 结构化方法采用自顶而下、逐层分解的思想进行分析建模

测试题:结构化的软件需求规格说明书包含哪 4 个内容?
答:软件需求是指包含用户对软件系统在功能、性能、行为、设计约束等方面的期望。
结构化的软件需求规格说明书包含一套分层的数据流图、一本数据字典(包括实体-关系图)、
一组加工规约及其他补充材料(如非功能性需求等
)。

#34、结构化分析模型有哪些

  •  数据字典:模型核心,描述软件使用和产生的所有数据
  •  数据流图:功能建模,描述系统的输入数据如何经过加工,一步一步变成输出数据
  •  实体-关系图(E-R 图):数据建模,描述数据字典中数据的关系
  •  状态转换图:行为建模,描述系统接收哪些外部事件,以及外部事件的作用下系统状态的迁移。

#37、人机界面设计的黄金原则是什么

  1. 让用户拥有控制权
  2. 减少用户的记忆负担
  3. 保持界面一致

38、可用性与可用性测试 #

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

41、书写功能性注释需要注意哪些问题

  1. 注解要正确,错误的注解比没有注解更坏;
  2. 为程序段作注解,而不是为每一个语句作注解;
  3. 用缩进和空行,使程序与注释容易区分;
  4. 注解应提供一些从程序本身难以得到的信息,而不是语句的重复。

45、白盒测试和黑盒测试的概念 #

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

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

46、白盒测试用例设计与黑盒测试用例设计 #


白盒测试主要用于对模块的测试,包括:

  • 程序模块中的所有独立路径至少执行一次
  • 对所有逻辑判定的取值(“真”与“假”)都至少测试一次
  • 在上下边界及可操作范围内运行所有循环
  • 测试内部数据结构的有效性等

黑盒测试可用于各种测试,它试图发现以下类型的错误:

  • 不正确或遗漏的功能
  • 接口错误,如输入/输出参数的个数、类型等
  • 数据结构错误或外部信息(如外部数据库)访问错误
  • 性能错误
  • 初始化和终止错误

47、各种逻辑覆盖准则之间的关系 *

  • 白盒逻辑覆盖标准
    • 语句覆盖
    • 判定覆盖
    • 条件覆盖
    • 判定-条件覆盖
    • 条件组合覆盖
    • 路径覆盖
  • 覆盖准则覆盖逻辑强度依次增强,为语句覆盖 < 判定覆盖 < 条件覆盖 < 判断/条件覆盖 < 多重条件覆盖。(后者满足则前者(包括前者的前者)满足除了条件覆盖>判定覆盖之外,例如满足判定覆盖,那一定满足语句覆盖)

49、等价类的概念


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


50、V模型中四类测试的对象、依据和任务分别是什么

在这里插入图片描述

  • 单元测试根据设计描述,对重要的控制路径进行测试,以发现构件或模块内部的错误
  • 集成测试针对集成的软件系统,主要揭露设计阶段产生的错误
  • 确认测试是根据软件需求规约对集成的软件进行确认,主要揭露不符合需求规约的错误
  • 对于基于计算机系统中的软件,还需将它集成到基于计算机的系统中,并进行系统测试,以揭露不符合系统工程中对软件要求的错误

53、压力测试与性能测试 #

58、纠错性维护 #

59、适应性维护 *

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

60、改善性维护 #

62、提高可维护性的方法 #

  1. 建立明确的软件质量目标;
  2. 利用先进的软件开发技术和工具;
  3. 建立明确的质量保证工作;
  4. 选择可维护的程序设计语言;
  5. 改进程序文档。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值