软件工程复习要点
作者:互联网
第一章 软件工程学概述
- 软件危机的定义
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 - 软件工程方法学的种类
传统方法学和面向对象方法学 - 理解瀑布模型、增量模型、螺旋模型等不同软件开发模型
瀑布模型:阶段间具有顺序性和依赖性、保证质量、保证前面没有错误
增量模型:先把初始产品给用户,让用户的反馈去驱动下一步的产品优化
螺旋模型:使用原型及其他方法来降低风险,风险驱动规模与进度
- 软件生命周期的基本阶段
三个时期:软件定义、软件开发、运行维护
软件定义分为:问题定义、可行性研究、需求分析
软件开发分为:总体设计、详细设计、编码和单元测试、综合测试
问题定义、可行性研究、需求分析、开发阶段、维护
第二章 可行性研究
- 数据流图的定义
一种图形化技术,描述数据从输入移动到输出过程中经受的变化 - 数据字典的定义
对数据流图中包含的所有元素的定义的集合 - 能够写出给定例子的数据字典(结合课件PPT)
用户定义的标识符是长度不超过8个字符的字符串,其中第一个字符是字母,随后的字符可以是字母也可以是数字
第三章 需求分析
- 需求分析的基本任务
确定系统的综合要求
分析系统的数据要求
导出系统的逻辑模型(用数据流图等)
修正系统开发计划 - 需求规格说明书的作用
需求规格是是需求分析阶段得出的最主要的文档
便于用户、开发人员进行理解和交流。
反映出用户问题的结构,可以作为软件开发工作的基础和依据。
作为确认测试和验收的依据。
第五章 总体设计
- 耦合、内聚的不同类型
耦合:不同模块之间彼此依赖紧密程度
内聚:一个模块内部各元素彼此结合的紧密程度
耦合分为:数据耦合、控制耦合、公共环境耦合、内容耦合
设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合
内聚分为:
要高内聚、低耦合 - 启发规则都有哪些
改进软件结构提高模块独立性
模块规模要适中
深度、宽度、扇入、扇出要适中
模块作用域要在控制域范围中
降低模块接口的复杂程度
设计单入口单出口的模块
模块功能应可预测
第六章 详细设计
- 程序的基本控制结构
顺序结构、分支结构、循环结构
- 详细设计和结构程序设计的目标
详细设计的目标:得出对目标系统的精确描述,在编码阶段可以直接根据这个描述翻译成某个程序设计语言写的程序
结构程序设计的目标:提高程序执行效率、提高可靠性、使程序结构简单清晰,增加可读性 - 过程设计的工具。理解和区分6.3.1-6.3.6不同工具的特点。会画PAD图
程序流程图: 历史悠久、容易掌握,但不易表示数据结构,随意转移,不能逐步求精
盒图: 不能随意转移,功能域明确,局部和全局数据作用域明确,容易表示模块的层次结构
PAD图⭐⭐:用二维树形结构表示程序控制流,翻译成代码比较方便
PAD符号
流程图转换为PAD图:
判定表: 能清晰表示复杂的条件组合和对应动作之间的关系
判定树: 用树形表示判定表,更加清晰,但不如判定表简洁
过程设计语言: 伪代码 - 程序复杂度的度量
第七章 实现
- 实现的定义
编码和测试 - 白盒测试方法的种类;会画流图、计算环形复杂度
软件测试层次:
单元测试:模块是否有错误(白盒)
集成测试:总体结构是否有错误(黑盒)
确认测试:是否满足用户需求(黑盒)
流图、环形复杂度见上面六.4 - 软件测试的目标
发现软件中的错误,提高软件质量 - 黑盒测试中的边界值分析与等价类划分
- 等价类划分
是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。 - 边界值分析
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
- 单元测试的测试重点
模块接口、局部数据结构、重要的执行通路、出错处理通路、边界条件 - ⭐⭐理解白盒测试中不同的逻辑覆盖标准,能按不同标准选择出测试用例
- 语句覆盖:每个语句至少执行一次,是很弱的逻辑覆盖
- 判定覆盖:不仅每个语句至少执行一次,每个判断取真、取假都至少执行一次
- 条件覆盖:不仅每个语句至少执行一次,判定表达式的每个条件都要取到各种可能的结果
- 判定/条件覆盖:同时满足这两种条件的覆盖
- 条件组合覆盖:每个判定表达式中各种条件的组合都至少出现一次(最强的逻辑覆盖)
- 路径覆盖:覆盖程序中所有可能执行的路径
举例:
语句覆盖:a=2,b=2,c=2
判定覆盖:a=2,b=2,c=2(覆盖12345) a=0,b=0,c=0(覆盖135)
条件覆盖:a=2,b=2,c=4(覆盖a>0,b>0,a>1,c>1) a=-1,b=0,c=-1(覆盖a<=0,b<=0,a<=1,c<=1)
判定条件覆盖:a=2,b=2,c=4(覆盖a>0,b>0,a>1,c>1, 取值均为T) a=-1,b=0,c=-1(覆盖a<=0,b<=0,a<=1,c<=1,取值均为F)
- 7.5.3Alpha和Beta测试
alpha测试由用户在开发者的场所进行,在开发者的指导下进行
beta测试由用户自己进行,开发者不会在现场
第八章 维护
- 软件维护的定义
在软件交付使用之后,为了改正错误或满足新的需要而修改软件的过程 - 软件维护的不同类型和占比
第九章 面向对象方法学引论
- 用例图的画法(结合课件PPT中的用例图部分)
用例图:从用户观点对系统行为的描述
例
第十三章 软件项目管理
- 13.3.1
估算开发时间P312
标签:复习,覆盖,耦合,软件工程,判定,模块,要点,软件,定义 来源: https://www.cnblogs.com/Hfolsvh/p/15756530.html