软考-中级软件设计师-10 软件工程
2022-05-14
10 软件工程
软件开发模型
瀑布模型(SDLC)
缺陷:需求难以在项目初期明确确定
适用于:
- 需求明确
- 二次开发
- 结构化开发
其他经典模型
原型(针对需求不明确的情况):在初期先构造一个简易的系统,给用户做演示,记录用户发现的问题,再做调整。往往只用于需求分析阶段。最终变为演化模型。
增量模型:先做核心部分,给用户用;发现问题,逐步修改和继续开发剩下内容。
螺旋模型
特征:
- 多个模型组成
- 引入了风险分析
V模型
特点:
- 强调测试
- 在前半部分的过程,同时也做后半部分的测试准备
喷泉模型
特点:
- 面向对象模型
- 迭代
- 无间隙
RAD
特点:
- 快速构建应用系统
构件组装模型(CBSD)
特点:
- 提高复用性,缩短时间,减少成本,提高可靠性
统一过程(UP/RUP)
特点:
- 用例驱动
- 以架构为中心
- 多轮迭代和增量
敏捷开发方法
特点:
- 一组模型
- 比较适合(中)小型项目
信息系统开发方法
结构化方法缺点:一旦开发完,整个流程不容易改变
需求开发
需求分类与获取
结构化设计
多扇入:复用性高;少扇出:一个函数包括的职能较少
内聚与耦合
软件测试(常考)
回归测试:将之前的测试案例再测下,看会不会发现新的问题
测试用例设计
等价类划分:选出各种类的代表性数据来测
错误推测:根据经验,推测哪些容易产生问题
测试阶段
单元测试:模块级/函数级
集成测试:模块之间的衔接
确认测试:确认需求实现
McCabe复杂度(常考)
注意:分叉点是否要转为结点,复杂度公式的结果都一样。如右边结点的5和6,如果不转换,则2、3、4都指向7,计算结果一致
系统运行与维护(常考)
适应性维护:适应系统、数据环境
完善性维护:扩充功能、改善功能
软件过程改进
CMMI
阶段式:
- 已管理级:项目级
- 已定义级:文档标准化
- 定量管理级:量化管理
- 优化级:持续优化
连续式:
- 过程管理
- 项目管理
- 工程
- 支持
项目管理
甘特图:关键路径的计算
例题: