[导航目录] 记录今日份学习内容,同时开始使用markdown方式记录--2020-05-17
1.软件开发流程
- 需求分析
- 概要设计
- 详细设计
- 编码
- 测试
- 软件交付
- 验收
- 维护
2.软件开发流程的演变
2.1 传统瀑布模型
项目计划 =》需求分析 =》软件设计 =》程序开发 =》软件测试 =》集成维护
2.2 敏捷开发模型
- 更强调程序员团队与业务专家之间的紧密协作
- 面对面的沟通
- 频繁交付新的软件版本
- 紧凑而自我组织型的团队
- 能够很好的适应需求变化的代码编写和团队组织方法
- 更注重软件开发过程中人的作用
2.2.1 XP - 极限编程
XP是一种近螺旋式的开发方法,它将复杂的开发过程分解成一个个相对比较简单的小周期;通过积极的交流反馈等方法,可以清楚开发进度、变化、待解决问题和潜在困难等,可以及时调整开发过程
[图片上传中...(image.png-304ee9-1589682743432-0)]
2.2.2. SCRUM
Scrum是用于开发、交付和持续支持复杂产品的一个框架,是一个增量的、迭代的开发过程
- 3个角色:产品负责人(Product Owner)、Scrum Master、开发团队
- 3个工件:产品Backlog、SprintBacklog、产品增量(Increment)
- 5个事件:Sprint:Sprint计划会议(Sprint Planning Meeting)、每日站会(Daily Scrum Meeting)、Sprint评审会议(Sprint Review Meeting)、Sprint回顾会议(Sprint Retrospective Meeting)
- 5个价值:承诺、专注、开放、尊重、勇气
- 三大支柱:透明性(Transparency)、检验(Inspection)、适应(Adaptation)
-
XP与Scrum区别
迭代长度:1-2周/2-4周
是否允许修改需求:未实现的可以/不可以
是否严格优先级:必须/可优先被依赖需求
是否严格的工程方法:严格规定/自觉保证
2.3 DevOps开发模型
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。
需求频繁变化、开发需要敏捷、测试需要敏捷;
-
减少变更范围、加强发布协调、自动化
持续开发:
计划:jira
编码:Git、SVN
打包:Ant、Maven、Grade持续测试:
自动化测试工具:Selenium、Appium、Pytest、TestNG等
可以使用Docker容器实时模拟测试环境-
持续集成:
新功能代码与现有代码集成的阶段:Jenkins
image.png 持续部署:
将代码部署到生产环境的阶段:配置管理工具、容器化工具持续监控:
非常关键的阶段:使用监控工具密切监视系统的运行状态
2.4 CI/CD
CI 持续集成(Continuous integration)
CD 持续交付(Continuous delivery)