前言:本笔记基于某SCAU师兄笔记完善,仅供学习参考,祝大家考试顺利!
原博客:(29条消息) SCAU软件工程期末复习_Throb001的博客-CSDN博客https://blog.csdn.net/Th_rob/article/details/121986279
标注:* 表示重点关注部分; 前置 # 表示“教材上出现的主要知识点”没有加粗部分; 后置 # 表示由于复习提纲没有或者考的概率不大,可以适当忽略。
1、软件的概念
- 计算机软件指计算机系统中的程序、文档及数据。
- 程序是指令和数据的集合,是计算任务的处理对象和处理规则的描述。
- 计算任务:以计算机为处理工具的任务
- 处理对象:数据(如数据、文字、图形、图象、声音等,它们只是表示,而无含义)或信息(数据及有关的含义)
- 处理规则:一般指处理的动作和步骤。程序必须装入计算机内才能工作
- 程序是指令和数据的集合,是计算任务的处理对象和处理规则的描述。
- 文档是为了便于了解程序所需的阐明性资料
2、软件发展的3个阶段:
确认需求阶段,正式开发阶段,上线运营阶段。
3、软件特点 VS 硬件:
软件是程序最终的结果,硬件主要是指键盘,鼠标,显示器等等实际看得见的一些物质。在表现形式、生产方式、要求、维护上有所不同。
4、软件的分类:
- 按功能:系统软件、支撑软件、应用软件
- 按工作方式:实时处理软件、分时软件、交互式软件、批处理软件
- 按服务对象的范围:项目软件、产品软件
- 按使用的频度:一次使用、频繁使用
- 按失效的影响:高可靠性软件、一般可靠性软件
5、软件工程的定义
软件工程是:
①将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程
化应用于软件;
②在①中所述方法的研究。
6、软件生存周期的概念及若干个阶段
软件生存周期:软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。
软件生存周期大体可分为如下六个活动:计算机系统工程、需求分析、
设计、编码、测试、运行和维护。
7、CMM的目的
CMM是指“能力成熟度模型”,CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
- 初始级:无序、混乱,几乎所有过程未经妥善定义
- 可重复级:制定了基本的项目管理过程,已做过的项目能够重复实现
- 已定义级:定义了管理和工程活动的软件过程,并将之文档化和标准化
- 已管理级:对软件过程和产品实现了量化管理和控制
- 优化级:新思想和新技术、量化反馈推动软件过程不断改进
8、瀑布模型
1970年W.Royce提出瀑布模型,最早出现的软件开发模型,一般不单独使用,可在演化、迭代模型中应用。
特征:
- 接受上一阶段的结果作为本阶段的输入
- 利用这一输入实施本阶段应完成的活动
- 对本阶段的工作进行评审
- 将本阶段的结果作为输出,传递给下一阶段
缺点
- 缺乏灵活性,难以适应需求不明确或需求经常变化的软件开发
- 开发早期存在的问题往往要到交付使用时才发现,维护代价大
10、原型模型
原型(prototype)是预期系统的一个可执行版本,它反映了系统性质(如功
能、计算结果等)的一个选定的子集。
12、组成基于计算机的系统由那些元素组成
组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程(Procedure)。
13、需求工程的概念
软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望,
包括功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、
资源使用需求、安全保密需求、可靠性需求、软件成本消耗与开发进度需求等,同时还要预
估计以后系统可能达到的目标。
14、需求工程的六个阶段
本书将软件需求工程细分为:需求获取、需求分析与协商、系统建模、需求规约、需求验证和需求管理六个阶段。
15、软件需求的定义
软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通常,这些需求包括功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密需求、可靠性需求、软件成本消耗与开发进度需求等。
17、常用的需求分析方法:*
- 面向数据流的结构化分析方法 (SA)、
- 面向数据结构的分析方法、
- 面向对象的分析方法 (OOA)
18、需求规约的 8 条原则(1979 Balzer 和 Goldman):*
- 从现实中分离功能,即描述要“做什么”而不是“怎样实现”
- 要求使用面向处理的规约语言(或称系统定义语言),讨论来自环境的——>各种刺激可能导致系统做出什么样的功能性反应,来定义一个行为模型,——>从而得到“做什么”的规约
- 如果被开发软件只是一个基于计算机的系统中的一个元素,那么整个大系统也包括在规格说明的描述之中
- 规约必须包括系统运行环境
- 规约必须是一个认识模型,而不是设计或实现的模型
- 规约必须是可操作的,以便能够利用它决定对于任意给定的测试用例,已提出的解决方案是否都能满足规约
- 规约必须允许不完备性并允许扩充
- 规约必须局部化和松散耦合。它所包括的信息必须局部化,这样当信息被修改时,只要修改某个单个的段落(理想情况)。同时,规约应被松散地构造(即松耦合),以便能够很容易地加入和删去一些段落
19、软件设计的任务,在回答接口设计的时候,需要讲清楚3个方面的内容
接口设计主要包括三个方面:
- 设计软件模块间的接口
- 设计模块和其他非人的信息生产者和消费者(比如外部实体)之间的接口
- 设计人(用户)和计算机间的接口
22、软件设计的过程*
软件设计是一个把软件需求变换成软件表示的过程,分为如下 6 个步骤:
- 制订规范
- 体系结构和接口设计
- 数据/类设计
- 部件级(过程)设计
- 编写设计文档
- 设计评审
24、模块化的概念*
模块化:从逻辑上将软件划分为完成特定功能或子功能的部件。
25、信息隐蔽的概念#
- 每个模块的实现细节对于其它模块来说应该是隐蔽的
- 块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用
- 通过信息隐蔽,则可定义和实施对模块的过程细节和局部数据结构的存取限制
26、内聚与耦合的概念
耦合与内聚都是功能独立性的定性标准,都反映功能独立性的良好程度,但耦合是直接的主导因素,内聚则辅助耦合共同对功能独立性进行衡量。
27、功能内聚的概念
功能内聚:指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割。
28、数据耦合的概念
数据耦合:指两个模块之间仅通过参数表传递简单数据。
31、程序流程图、判定表
- 判定表能清晰地表达复杂的条件组合与应做动作之间的对应关系。
- 程序流程图独立于任何一种程序设计语言,比较直观、清晰、易于学习掌握。
为使用流程图描述结构化程序,必须限制流程图只能使用五种基本控制结构
控制结构相互组合和嵌套的实例
33、结构化分析与设计
结构化方法:
- 结构方法分为:结构化分析、结构化设计和结构化程序设计
- 结构方法是一种以数据流为中心的软件分析模型和设计模型
- 结构化方法采用自顶而下、逐层分解的思想进行分析建模
测试题:结构化的软件需求规格说明书包含哪 4 个内容?
答:软件需求是指包含用户对软件系统在功能、性能、行为、设计约束等方面的期望。
结构化的软件需求规格说明书包含一套分层的数据流图、一本数据字典(包括实体-关系图)、
一组加工规约及其他补充材料(如非功能性需求等)。
#34、结构化分析模型有哪些
- 数据字典:模型核心,描述软件使用和产生的所有数据
- 数据流图:功能建模,描述系统的输入数据如何经过加工,一步一步变成输出数据
- 实体-关系图(E-R 图):数据建模,描述数据字典中数据的关系
- 状态转换图:行为建模,描述系统接收哪些外部事件,以及外部事件的作用下系统状态的迁移。
#37、人机界面设计的黄金原则是什么
- 让用户拥有控制权
- 减少用户的记忆负担
- 保持界面一致
38、可用性与可用性测试 #
39、标识符命名需要注意的问题
41、书写功能性注释需要注意哪些问题
- 注解要正确,错误的注解比没有注解更坏;
- 为程序段作注解,而不是为每一个语句作注解;
- 用缩进和空行,使程序与注释容易区分;
- 注解应提供一些从程序本身难以得到的信息,而不是语句的重复。
45、白盒测试和黑盒测试的概念 #
白盒测试(又称为结构测试)把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作
黑盒测试(又称行为测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求
46、白盒测试用例设计与黑盒测试用例设计 #
白盒测试主要用于对模块的测试,包括:
- 程序模块中的所有独立路径至少执行一次
- 对所有逻辑判定的取值(“真”与“假”)都至少测试一次
- 在上下边界及可操作范围内运行所有循环
- 测试内部数据结构的有效性等
黑盒测试可用于各种测试,它试图发现以下类型的错误:
- 不正确或遗漏的功能
- 接口错误,如输入/输出参数的个数、类型等
- 数据结构错误或外部信息(如外部数据库)访问错误
- 性能错误
- 初始化和终止错误
47、各种逻辑覆盖准则之间的关系 *
- 白盒逻辑覆盖标准
- 语句覆盖
- 判定覆盖
- 条件覆盖
- 判定-条件覆盖
- 条件组合覆盖
- 路径覆盖
- 覆盖准则覆盖逻辑强度依次增强,为语句覆盖 < 判定覆盖 < 条件覆盖 < 判断/条件覆盖 < 多重条件覆盖。(后者满足则前者(包括前者的前者)满足除了条件覆盖>判定覆盖之外,例如满足判定覆盖,那一定满足语句覆盖)
49、等价类的概念
等价类是指输入域的某个子集,该子集中的每个输入数据对揭露软件中的错误都是等效的,测试等价类的某个代表值就等价于对这一类其他值的测试。
50、V模型中四类测试的对象、依据和任务分别是什么
- 单元测试根据设计描述,对重要的控制路径进行测试,以发现构件或模块内部的错误
- 集成测试针对集成的软件系统,主要揭露设计阶段产生的错误
- 确认测试是根据软件需求规约对集成的软件进行确认,主要揭露不符合需求规约的错误
- 对于基于计算机系统中的软件,还需将它集成到基于计算机的系统中,并进行系统测试,以揭露不符合系统工程中对软件要求的错误
53、压力测试与性能测试 #
58、纠错性维护 #
59、适应性维护 *
- 适应性维护:为了使软件适应内部或外部环境变化,而去修改软件的过程
60、改善性维护 #
62、提高可维护性的方法 #
- 建立明确的软件质量目标;
- 利用先进的软件开发技术和工具;
- 建立明确的质量保证工作;
- 选择可维护的程序设计语言;
- 改进程序文档。