Base 软件开发流程

瀑布模型

  1. 需求分析
  2. 设计
  3. 编码
  4. 实现
  5. 软件测试
  6. 完成
  7. 维护
  • 优点

    • 开发的各个阶段比较清晰
    • 强调早期计划和需求调查
    • 适合需求稳定的产品开发
  • 缺点

    • 由于开发模型是线性的,增加了开发的风险
    • 早期的错误可能要等到开发的后期的阶段才能发现

敏捷模型(增量迭代,小步快跑)

  • XP(极限编程)

    • 编程方法
      • 简单设计:要求用最简单的办法设计实现客户当下的需求
      • 结对编程:代码可以由两个人一起完成,一个人主要考虑代码细节,另一个人关注代码整体结构
      • 测试驱动开发
      • 重构
    • 小组实践
      • 代码集体所有
      • 编码标准
      • 稳定高速的步伐
      • 隐喻:帮助团队里的每一个人理解客户需求
      • 持续集成
    • 交付和管理
      • 小规模发布
      • 计划游戏:预测在小规模发布的交付日期到来之前我们要完成那些工作
      • 完整的团队:项目中所有的成员,包含现场客户
      • 现场客户
  • SCRUM

    • 产品BACKLOG:管理产品需求,按照商业价值将需求作为列表排序
    • SPRINT计划会议
    • SPRINT BACKLOG

DevOps(Development Operations)

  1. 持续开发
  2. 持续测试
  3. 持续集成
  4. 持续部署
  5. 持续监控
  • DevOps对发布的影响
    • 减少变更范围
    • 加强发布协调
    • 自动化