软件工程入门
软件工程与开发模型
瀑布、增量、螺旋、敏捷等开发模型的选择依据,以及需求工程的基本活动。
开发模型不是优劣问题
不同开发模型对应不同的不确定性水平。需求稳定、变更代价高时,计划驱动的模型更合适;需求模糊、需要快速验证时,迭代与增量方式更合适。
- 瀑布模型:阶段顺序清晰,适合需求稳定且文档要求高的项目;缺点是变更代价大
- 增量模型:分批交付可用功能,能较早获得反馈;需要良好的模块切分
- 螺旋模型:以风险驱动,每轮都包含风险分析;适合大型高风险项目
- 敏捷方法:强调小批量、频繁交付与面对面沟通;依赖团队自组织能力
- 统一过程:以用例驱动、架构为中心、迭代增量展开
需求工程的基本活动
需求工程包括需求获取、需求分析、需求定义、需求验证与需求管理。考试常考的是"需求变更如何处理",答案要点是:建立变更控制流程、评估变更对范围与架构的影响、保留可追溯关系。
与架构设计的关系
开发模型决定了架构演进的节奏。采用增量交付时,架构必须预留扩展点;采用敏捷迭代时,架构需要保持可修改性,避免一次性做过多预测性设计。