分享
GJB5000B二级与敏捷实践的融合技术_林阳涛.pdf
下载文档

ID:304971

大小:1.40MB

页数:5页

格式:PDF

时间:2023-03-20

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
GJB5000B 二级 敏捷 实践 融合 技术 林阳涛
59软件开发与应用Software Development&Application电子技术与软件工程Electronic Technology&Software Engineering软件定义一切(Software Define Anything)概念的提出了已经有了近 10 年的时间,经过多年的理论创新与实践运用,在各行各业都产生了深远的影响,在军工领域,由于软件在现代化武器装备中的规模占比急剧提升,“软件定义装备”已成为世界军事强国公认的新的装备发展模式。如图 1所示。美国防部于 2019 年发布了“以相应的速度提供弹性软件能力”为愿景的国防部软件现代化战略,其中的流程改革、基于 DSO 模式的软件工厂等都与敏捷技术的运用有着紧密的联系,这一战略的落地将对美军装备信息化能力的提升发挥巨大的促进作用。军用软件能力成熟度模型(GJB5000)是软件工程化理论在军用软件研制领域的最佳实践,也是目前国内各军工集团事实上遵循的军用软件研发标准。继 2003 年总装备部发布了GJB5000-2003、2008年进行修订并发布GJB5000A之后,2021 年发布了最新的 GJB5000B1。但实施过程中往往存在管理效率降低、管理成本居高不下等问题,如何在研制周期短、需求变化多的情况下保证进度和质量,是军用软件研发所面临的重要挑战2。自 20 世纪 90 年代开始,各种敏捷方法相继问世以来,由于其在应对需求的快速变化、缩短研发周期等方面的显著效果在商业软件领域取得了极大的成功,2018 年发布的CMMI2.0 版相关实践域中增加了敏捷的要求3,2021 年发布的 GJB5000B 也提出了对敏捷的支持。本文通过对 GJB5000B、敏捷方法的核心要素、融合意义、融合方法开展研究,提出基于 Scrum 方法的需求开发与管理、项目策划、项目监控等基于 GJB5000B 二级的敏捷实践。将 GJB5000B 的严谨与敏捷的灵活有效融合,使其更容易融入实际项目研发过程、为研发人员所接受,同时带来管理效能和产品质量的提升。1 敏捷研发模式1.1 基于Scrum的软件研制流程在软件工程领域,经典的瀑布型开发流程在一定时期、一定范围内成功的解决了大量软件项目的开发质量问题,有效应对了“软件危机”,但随着软件开发所面临的需求变化越来越快、高度竞争环境下的交付周期越来越短,“瀑布模型”的“僵化和机械”在很多领域和项目中也遭遇到了大GJB5000B 二级与敏捷实践的融合技术林阳涛(中国航空研究院研究生院 江苏省扬州市 225000)摘要:本文以 GJB5000B 与敏捷技术的融合为切入点,对两者融合的可行性、目标和方法进行了探索和研究,并给出了在需求开发与管理、项目策划、项目监控实践域的敏捷实践。关键词:GJB5000;敏捷技术;软件开发;Scrum;软件工厂;DSO;软件工程图 1:航空电子软件中软件源代码行(SLOC)的增长情况60软件开发与应用Software Development&Application电子技术与软件工程Electronic Technology&Software Engineering量的挑战,包括交付周期长、返工风险高、实施工作量大等典型问题。在此背景之下,敏捷软件开发(Agile software development)作为软件工程领域的重要创新应运而生,并于 2001 年美国的雪鸟城会议上被正式提出,敏捷十二原则作为核心理念被发布出来用以指导敏捷实践。敏捷十二原则:(1)客户为先:通过持续不断的及早交付有价值的软件使客户满意;(2)拥抱变化:欣然面对需求变化,为了客户的竞争优势,敏结过程掌控变化;(3)短迭代交付:经常交付可工作的软件,相隔几个星期或一两个月,倾向于采取较短的周期;(4)业务参与:业务人员和开发人员相互合作、持续开展;(5)以人为本:激发个体斗志,以人为核心实施项目;(6)面对面沟通:不论团队内外,传递信息效果最好、效率最高的方式是面对面的交谈;(7)成果导向:可工作的软件是进度的首要度量标准;(8)保持节奏:敏结过程倡导可持续开发,责任人、开发人员和用户要能够共同维持其步调稳定延续;(9)追求卓越:坚持不懈地追求技术卓越和良好设计;(10)简单务实:以简洁为本,它是极力减少不必要工作量的艺术;(11)团队自组织:最好的架构、需求和设计出自自组织团队;(12)持续改进:团队定期地反思如何能提高成效,并依次调整自身的举止表现。敏捷软件开发有不同的模式和方法4,包括极限编程XP(Extreme Programming)、Scrum5、动 态 系 统 开 发 方 法DSDM(Dynamic System Development Method)、特性驱动开发(Feature-driven development)、测试驱动开发(Test-drive development)等,其中 Scrum(迭代式增量软件研发过程)是使用最为广泛的敏捷方法,在敏捷开发项目中被采用的占比超过 75%。Scrum 实施框架如图 2 所示。Scrum 适用于需求难以预测的复杂产品的开发,它定义了一个可以帮助研发团队向客户快速、持续交付的活动,专注于如何在最短的时间内是西安最有价值的部分。Scrum 包括 3 个角色、3 个工件、5 个活动。3 个角色包含:(1)Scrum Master(项目负责人、项目经理),他会负责指导团队在通用的 Scrum 框架上遵循正确的敏捷过程,保护团队不受外界干扰,是团队的领导和推进者,负责提升 Scrum 团队的工作效率,控制 Scrum 中的“检视和适应”周期过程。与 Product Owner 一起将投资产出最大化,他确保所有的利益相关者都可以理解敏捷和尊重敏捷的理念。(2)Team(开发人员、测试人员、美工设计、DBA 等全职能性团队),团队负责交付产品并对其质量负责,团队与所有提出产品需求的人一起工作,包括客户和最终用户,并共同创建 Product Backlog。团队按照大家的共识来创建功能设计、测试 Backlog 条目交付产品。(3)Product Owner(产品负责人、产品经理、运营人员),从业务角度驱动项目,传播产品的明确愿景,并定义其主要特性。Product Owner 的主要职责是确保团队只开发对于组织最重要的 Backlog 条目,在 Sprint 中帮助团队完成自己的工作,不干扰团队成员,并迅速提供团队需要的所有信息。3 个工件包括:(1)PRODUCT BACKLOG(产品待办事项列表),他是一个排序的列表,包含所有产品需要的东西,也是产品需求变动的唯一来源。产品负责人负责产品待办事项列表的内容、可用性和优先级。图 2:Scrum 实施框架61软件开发与应用Software Development&Application电子技术与软件工程Electronic Technology&Software Engineering(2)SPRINT BACKLOG(SPRINT 代办事项列表),是一组为当前 Sprint 选出的产品代办事项列表条目,外加交付产品增量和实现 Sprint 目标的计划。Sprint 代办事项列表是开发团队对于哪些功能要包含在下个增量中,以及交付那些功能所需工作的预计。(3)PRODUCT INCREMENT(产品增量),他是一个 Sprint 完成的所有产品待办列表项的总和,以及之前所有 Sprint 所产生的增量的价值总和。在 Sprint 的最后,新的增量必须是“完成”的,这意味着它必须可用并且达到了 Scrum 团队“完成”的定义的标准。增量是在 Sprint 结束时支持经验主义的可检视的和已完成的产品组成部分。增量是迈向愿景或目标的一步。无论产品负责人是否决定发布它,增量必须可用。5 个活动包括:(1)Sprint 计划会议(Sprint Planning Meeting)(2)每日站会(Daily Scrum Meeting)(3)Sprint 评审会议(Sprint Review Meeting)(4)Sprint 回顾会议(Sprint Retrospective Meeting)(5)产品Backlog梳理会议(Product Backlog Refinement)Scrum 实施过程如表 1 所示。1.2 敏捷的核心要素无论是 Scrum 还是其他敏捷方法都遵从敏捷软件开发宣言中定义的价值观:(1)个体与交互高于过程与工具;(2)可用的软件高于复杂的文档;(3)客户协作高于客户谈判;(4)响应变化胜于遵循计划。通过这些价值观,可以加深我们对敏捷本质的理解:敏捷是以高技能团队为基础的简化,是使必要工作最小化的艺术。首先,敏捷的前提是高水平的人,只有精通技术、熟悉流程、了解业务的高水平研发人员才能驾驭功能重要性评估、结对编程等敏捷活动;其次,所实施的活动是最小化的,由于人的高能力和用户的深度参与,研发团队更专注于软件产品本身,对过程记录等文档的关注度相对较弱。2 军用软件能力成熟度模型(GJB5000B)2.1 GJB5000B二级的实践域构成GJB5000B 二级共有十一个实践域,从组织管理、项目管理、工程活动、支持活动四个方面对软件研制过程中需开展的活动进行了规范,如表 2 所示。表 2:GJB5000B 二级实践域分类类别实践域名称规范级组织管理类LD 领导作用II 实施基础项目管理类PP 项目策划PMC 项目监控ESM 外部供方管理工程类DEM 立项论证RDM 需求开发与管理VV 验证与确认MT 运行维护支持类CM 配置管理QA 质量保证MPM 测量与绩效管理其中,RDM 需求开发与管理、验证与确认是二级工程活动中的核心实践域,PP 项目策划和 PMC 项目监控是二级管理活动中的核心实践域。表 1:Scrum 实施过程Scrum 实施过程1.Scrum 的前提确认是 Scrum 适合项目的特征;开发团队必须对自己的软件生产率有一定认知;产品负责人用可靠的发布日期来创建产品路线图。2.明确迭代开发的基本需求迭代要有固定的时长;在每一次迭代的结尾,代码都必须经过测试,确保能够正常工作。3.准备 Sprint 计划产品 Backlog 必须存在;只能有一个产品 Backlog 和一个产品负责人;所有条目都已经进行过重要度评分。4.制定 Sprint 计划1.Sprint 目标;2.团队成员名单;3.Sprint Backlog;4.确定每日会议的时间、地点和目标;5.Sprint 计划会议制定出 Sprint 目标和既定产品的 Backlog。6.Scrum 每日站会讨论进展及遇到的问题。7.Sprint 评审会议进展交流、增量功能验证。8.Sprint 回顾会议1.总结本 Sprint 得失;2.制定改进计划。62软件开发与应用Software Development&Application电子技术与软件工程Electronic Technology&Software Engineering2.2 GJB5000B的核心要素由于军用软件对高可靠性、高安全性等质量特性的特殊要求,GJB5000 标准对研发过程进行了严格的定义,总体上呈现以下几个核心特点:过程化:GJB5000 与 CMMI 一脉相承,其核心理念是好的产品需要好的过程来支撑;准则化:作为重量级的软件研发框架,去除模糊、操作级别形成明确的准则是 GJB5000 所追求的重要目标;证据化:军用软件大多属于对可靠性、安全性要求较高的关键软件系统,因此,GJB5000 对研发过程中的各种工作产品有着严格、甚至是苛刻的要求,凡事讲证据、强调可追溯;计划性:无论是工程类、管理类还是支持类,各类活动都要有明确的计划,以确保团队目标明确、步调一致;可监控:基于计划,贯穿项目全生命周期的监控协调是确保项目顺利完成的关键活动;可度量:有据可循、数据支撑是上述一切活动实施的基础,因此,进度、质量、成本等关键指标的量化与数据积累是对项目研发过程影响巨大的重要支撑。3 GJB50

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开