首页 > 其他分享 >软件工程 第三章 敏捷开发

软件工程 第三章 敏捷开发

时间:2024-03-19 22:11:27浏览次数:18  
标签:第三章 软件开发 Scrum DevOps 软件工程 开发 敏捷 软件

第三章 敏捷开发


全球软件发展趋势:

  • 全球软件产业正在向服务化转型
    • SaaS的诞生:Salesforce最早提出SaaS模式
    • SaaS,PaaS,IaaS三种服务模式:
      • IaaS(Infrastructure as a Service),即基础设施即服务.指把IT基础设施作为一种服务通过网络对外提供,并根据用户对资源的实际使用量或占用量进行计费的一种服务模式.
        如阿里云,腾讯云等相关服务的提供.
      • SaaS(Software as a Service)让用户能够通过互联网连接来使用基于云的应用程序.常见示例有电子邮件,日历和办公工具.它不需要用户将软件产品安装在自己的电脑或服务器上.
        如淘宝,滴滴打车这些平台的在线使用.
      • PaaS(Platform as a Service)的缩写,是指平台即服务.把服务器平台作为一种服务提供的商业模式,而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS.
        如边缘计算,云计算相关平台.
    • Office 365:作为订阅服务
    • Office 2019:一次性出售
  • *AI作为一个普遍的新的动力,AI+Science与AI+SaaS.
  • 新形势下企业面对多重挑战
    • 支付频率高,研发周期短
    • 跨地域协作多,部署发布复杂
    • 可靠性与安全要求高

华为的软件工程实践:

  • 第一阶段:软件作坊->软件危机->
  • 第二阶段:软件过程控制->IPD,重型控制->
  • 第三阶段:敏捷开发->精益开发,DevOps.

敏捷开发价值观:

  • 敏捷软件开发宣言
    • 个体和互动高于流程和工具
    • 工作的软件高于详尽的文档
    • 客户合作高于合同谈判
    • 响应变化高于遵循计划
  • 敏捷软件开发原则
    • 我们最优先的任务是通过及早和持续地交付有价值的软件来满足客户的需求
    • 欢迎即使是在开发的最后阶段也改变需求。敏捷过程可以将变更视为顾客的竞争优势。
    • 频繁地交付可工作的软件,优先考虑较短的时间尺度。
    • 业务人员和开发人员必须在整个项目期间一直协作。
    • 围绕动机驱动的人才构建项目,为他们提供所需的环境和支持,并信任他们完成工作。
    • 面对面的沟通是传达信息和团队内传递信息最有效的方式。
    • 可工作的软件是进度的主要度量
    • 敏捷过程促进可持续的开发。赞助商、开发人员和用户应该能够不断保持恒定的步伐。
    • 对技术专注以及良好的设计的持续关注增强敏捷性。
    • 简单性,即最大限度地减少工作量是至关重要的。
    • 最佳架构、需求和设计来自自组织团队。
    • 在定期间隔后,团队反思如何更有效,然后调整自己的行为。

价值驱动-敏捷与瀑布模型的区别:

  • 资源与时间固定
  • 功能与特性变化

Scrum方法:

  • Scrum方法特点:

    • "可能性的艺术":关注当下
    • 团队自组织,自管理:放权
    • 面对面沟通:每日例会
  • Scrum框架:

    • 角色:
      • 产品负责人
      • Scrum Master
      • 开发团队
    • 工件:
      • 产品待办列表
      • Sprint待办列表
      • 增量
    • 事件:
      • Sprint
      • Sprint计划会议
      • 每日Scrum站会
      • Sprint评审会议
      • Sprint回顾会议
    • 价值观
      • 承诺(commitment)
      • 勇气(courage)
      • 专注(focus)
      • 开放(openess)
      • 尊重(respect)
  • Scrum过程模型

看板方法:分层,泳道,列,价值观,在制品(WIP).风险&瓶颈,拉动式开发等核心元素

  • 源自精益生产实践与敏捷开发中的可视化管理理念

  • 看板工具的实质是:后道工序在需要时,通过看板向前道工序发出信号:请给我需要数量的输入,前道看板只有看到看板厚才按需生产.看板信号由下游向上游传递,拉动上游的生产.

  • 精益创业方法论:

    • 与传统的不同点——与传统制造业以高质量实体产品衡量不同,精益创业的发展单元为”经证实的认知“。
    • 在极不确定的进展中确定——初级阶段的企业所有功能:愿景和概念,产品开发,市场与销售,扩展规模,合作与分销,架构与组织设计。
    • 用不同方法衡量生产力——强调创业公司同时要具备快速循环运作和对顾客的认知、远大的理想,以及雄心壮志。
    • 增长引擎——引擎是发展的必要素也是加速的推进器。通过”开发-测量-认知“的反馈循环,让企业的驾驶方向及进度清晰。
    • 调整引擎及优化产品——愿景(创造改变世界的业务),战略(商业模式、产品方案计划、生态环境的应对、顾客的想法),产品是最终产物。随着公司成长,改变只是各种活动的不同组合。
    • 找出哪些假设是需要测试:"信念飞跃"式的大胆假设.(增长假设or价值假设)
    • ”颠覆性创新“是制造出新增长的源头
    • 测试最小可行性产品(MVP),以最快方式,最少精力完成"开发-测量-认知"的反馈循环
    • 转型还是坚持 - 有条理的方向性改变,用来测试新的产品,战略和增长引擎的基础假设
    • 转型列表(转型是一种特殊改变,用于测试新产品,商业模式和增长引擎的基本假设)

DevOps:

  • DevOps的定义: 自vvikipedla以来,ieee百科全书devops是软件开发和IT行业的一种方法论。
    作为一组实践和工具,DevOps集成并自动化了软件开发(Dev)和IT运营(Ops)的工作,作为改进和缩短系统开发生命周期的一种手段。
    uistor rdevops是软件开发和IT行业中的一种方法。作为一组实践和工具,DevOps集成并自动化了软件开发(Dev)和IT操作(Ops)的工作,作为改进和缩短系统开发生命周期的一种手段。

运维费用一般占比:软件设计约33%,运维费用约10~20%.

DevOps生命周期过程

DevOps的特征:

  • 将软件开发与软件运维相紧密结合,打破了开发和运维间的孤岛
  • 持续集成
    • 持续集成(Continuous Integration),缩写为CI,为一项软件工程实践
  • 持续交付
    • 持续交付(Continuous D),缩写为CD,同样为一项软件工程实践
  • DevOps本地部署
  • 生命周期:计划-需求-设计-策划-管理-运维
  • 敏捷开发
    • 拥抱变化
    • 快速迭代

标签:第三章,软件开发,Scrum,DevOps,软件工程,开发,敏捷,软件
From: https://www.cnblogs.com/mesonoxian/p/18084101

相关文章

  • 软件工程 第二章 过程模型
    软件工程第二章过程模型通用过程模型通用过程框架:框架活动:沟通,策划,建模,构建,部署普适性活动:项目跟踪控制,风向管理,质量保证,配置管理,技术评审等常见的过程流(processflow):线性过程流(linearprocessflow)迭代过程流(iterativeprocessflow)演化过程流(e......
  • 第三章总结
    盒子模型在css中,一个独立的盒子模型由内容(content)、内边距(padding)、边框(border)、和外边距(margin)4个部分组成。 此外,对padding、border、和margin可以进一步细化为上、下、左、右四个部分,在css中可以分别进行设置。块级元素块级元素默认占一行高度,一行内通常只有一个块......
  • 面对 Nvidia 的主导地位:非大型科技公司的敏捷机器学习开发策略(在供应和成本挑战中)
    在真正的大玩家中建立游戏业务从来都不是一件容易的事。2023年,在真正令人费解的突破的推动下,人工智能领域的竞争达到了前所未有的高度。OpenAI的发布GPT-4,整合与Bing聊天GPT,谷歌推出诗人,以及Meta备受争议的“开源”骆驼2发布。听起来像是一长串大人物的名......
  • 第三章:数据建模与模型评估
    #1.数据建模importpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt#python绘图库可以与numpy一起使用importseabornassns#基于python的图形可视化库,更加方便快捷fromIPython.displayimportImagedata=pd.read_csv('clear_data.csv')#清洗后的数......
  • 软件工程日报010
     第10天第二天第三天第四天第五天所花时间(包括上课) 2h    代码量(行) 1000    博客园(篇) 1    所学知识 JAVA语法    ......
  • 软件工程-论文查重
    第一次个人编程作业这个作业属于哪个课程<软件工程2024-双学位>这个作业要求在哪里<软件工程第一次个人编程作业>这个作业的目标完成编码任务PSP表格PSP2.1PersenonalSoftwareProcessStages预计耗时(分钟)实际耗时(分钟)Planning计划3030Esti......
  • 第三章页面布局总结
    目录一.盒子模型 二.块级元素与行内元素1.块级元素​ 2.行内元素​3.行内块元素三.浮动与定位 1.元素浮动与清除​2.元素定位四.flex布局 1.容器属性(1)display(2)flex-direction(3)flex-wrap(4)flex-flow(5)justify-content(6).align-items(7).align-con......
  • 2024年智能通信、大数据与软件工程国际会议(ICICBDSE 2024)
    2024年智能通信、大数据与软件工程国际会议(ICICBDSE2024)2024InternationalConferenceonIntelligentCommunication,BigDataandSoftwareEngineering会议简介:在大数据时代背景下,计算机软件技术的开发情况值得关注。特别是在进行通信和传输的过程中,信息通信系统是最......
  • 微信小程序第三章作业
    目录一、分析下列代码,实现如图页面布局。         主要分为2部分,wxml文件和wxss文件代码如下: 运行结果如下:​编辑二、 分析页面结构,实现如图效果。         wxml和wxss文件代码如下:    运行结果如下:一、分析下列代码,实现如图页面布局。......
  • 第三章作业
    一、分析题实现如下图的页面布局indexwxml//index.wxml<viewclass="content"><viewclass="layout-top"><viewclass="screen">168</view></view><viewclass="layout-bottom"><viewcla......