背书答案
四大本质困难
| 困难 | 含义 | 答题关键词 |
|---|---|---|
| 复杂性 | 软件实体数量多、关系复杂、状态空间巨大 | 非线性、状态爆炸、难以穷举 |
| 不可见性 | 软件是逻辑实体,没有物理形态 | 看不见、沟通困难、进度难观察 |
| 可变性 | 软件经常要随需求、业务、硬件、环境变化 | 需求变更、演化、回归错误 |
| 一致性 | 软件必须适配外部接口、规则、历史系统 | 兼容、约束、人为规则 |
软件发展三大阶段
| 阶段 | 典型特征 | 主流方法 |
|---|---|---|
| 软硬件一体化 | 软件支持硬件完成计算任务,功能单一,复杂度有限,几乎不需要需求变更 | 非常线性的软件过程 / 硬件开发流程思想、Measure twice, cut once、Code and Fix |
| 软件成为独立产品 | 摆脱了硬件束缚(OS),功能强大,规模和复杂度剧增;个人电脑出现,普通人成为软件用户;需求多变,兼容性要求,来自市场的压力 | 形式化方法、结构化程序设计和瀑布模型、成熟度模型 |
| 网络化和服务化 | 功能更复杂,规模更大;用户数量急剧增加;快速演化和需求不确定;分发方式的变化(SaaS) | 迭代式开发、敏捷宣言、XP、Scrum、Kanban、开源软件开发方法、DevOps |
软件过程和生命周期的区别和联系
软件过程是为了实现一个或多个事先定义的目标而建立起来的一组实践的集合。这组实践通常有一定先后顺序,并作为整体实现目标
区别
- 生命周期模型是对一个软件开发过程的人为划分
- 生命周期模型是软件开发过程的主框架,是对软件开发过程的一种粗粒度划分
- 生命周期模型往往不包括技术实践
软件项目管理与软件过程管理
软件项目管理:应用方法、工具、技术以及人员能力来完成软件项目、实现项目目标的过程
软件过程管理:为了让软件过程在开发效率、质量等方面有着更好性能绩效
管理的三大要素
- 目标
- 状态
- 纠偏
软件项目管理典型的三大目标
- 成本
- 质量
- 工期