1-1 软件开发流程与项目管理

[导航目录] 记录今日份学习内容,同时开始使用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)


image.png

[导航目录]

你可能感兴趣的:(1-1 软件开发流程与项目管理)