软件开发流程与项目管理
软件开发流程的演变
瀑布模型
- 定义:软件开发的各项活动严格按照线性方式进行
- 理解:需求分析-设计-编码-实现-软件测试-完成-维护
- 优点:开发的各个阶段比较清晰
强调早期计划及需求调查
适合需求稳定的产品开发 - 缺点:由于开发模型是线性的,增加了开发的风险
早期错误可能要等到开发后期阶段才能发现
敏捷开发模型(增量迭代+小步快跑)
XP-极限编程
- 定义:近螺旋式的,对开发/测试要求较高
SCRUM
- 理解:产品BACKLOG-SPRINT计划会议-SPRINT BACKLOG-
每日站会-2-4周SPRINT-潜在可交付产品增量
DevOps
- 持续开发-持续测试-持续集成-持续部署-持续监控
- DevOps对发布的影响:
减少变更范围
加强发布协调
自动化 - 持续集成:缩写为CI
持续交付:缩写为CD - 持续交付(CD)与DevOps的关系:
1/DevOps范围更广,是软件交付过程中涉及的多个团队之间的合作,并将软件交付的过程自动化。
2/持续交付是一种自动化交付的手段。
3/ DevOps可以是持续交付下的一个产物,持续交付的成果直接汇入DevOps模型。