返回知识库
软件工程入门

软件工程与开发模型

瀑布、增量、螺旋、敏捷等开发模型的选择依据,以及需求工程的基本活动。

开发模型不是优劣问题

不同开发模型对应不同的不确定性水平。需求稳定、变更代价高时,计划驱动的模型更合适;需求模糊、需要快速验证时,迭代与增量方式更合适。

  • 瀑布模型:阶段顺序清晰,适合需求稳定且文档要求高的项目;缺点是变更代价大
  • 增量模型:分批交付可用功能,能较早获得反馈;需要良好的模块切分
  • 螺旋模型:以风险驱动,每轮都包含风险分析;适合大型高风险项目
  • 敏捷方法:强调小批量、频繁交付与面对面沟通;依赖团队自组织能力
  • 统一过程:以用例驱动、架构为中心、迭代增量展开

需求工程的基本活动

需求工程包括需求获取、需求分析、需求定义、需求验证与需求管理。考试常考的是"需求变更如何处理",答案要点是:建立变更控制流程、评估变更对范围与架构的影响、保留可追溯关系。

与架构设计的关系

开发模型决定了架构演进的节奏。采用增量交付时,架构必须预留扩展点;采用敏捷迭代时,架构需要保持可修改性,避免一次性做过多预测性设计。