应用程序生命周期管理 (ALM)

利用敏捷工程功能统一需求、风险和测试管理,加快高质量软件的交付。

什么是应用程序生命周期管理 (ALM)?

应用程序生命周期管理 (ALM) 是对软件或产品生命周期(从最初的构思一直到设计、开发、测试、部署和停用)进行管理的战略流程。ALM 使软件工程团队能够利用经过验证的敏捷实践和可信的最新信息,高效地开展项目协同工作。它是产品、团队和公司取得成功的必要条件。

overlaycontent

ALM 为什么很重要?

应用程序生命周期管理可帮助团队管理现代软件开发的固有复杂性。如今,产品价值越来越多地通过软件来实现。例如,多数汽车都包含运行超过 1 亿行代码的微处理器。ALM 将人员、流程和工具联系起来,围绕共同目标协调各个团队、加快软件交付并简化监管合规性。

应用程序生命周期管理的好处

提高了可见性

提供对最新需求、风险和测试数据的全局透明访问,确保团队正确构建合适的软件。

提供对最新需求、风险和测试数据的全局透明访问,确保团队正确构建合适的软件。

增强了合规性

在整个生命周期中控制和监控成熟流程的使用。端到端追溯能力可简化对注重安全的法规、指导方针和质量标准的遵从。

在整个生命周期中控制和监控成熟流程的使用。端到端追溯能力可简化对注重安全的法规、指导方针和质量标准的遵从。

加快部署速度

利用可简化需求、风险和测试管理的敏捷开发实践加快软件交付。使用通用、可重复的流程来协调开发与运营团队。

利用可简化需求、风险和测试管理的敏捷开发实践加快软件交付。使用通用、可重复的流程来协调开发与运营团队。

高质量产品

满怀信心地交付产品。ALM 在整个产品生命周期中集成了质量管理,以提高产品质量、安全性和可靠性。

满怀信心地交付产品。ALM 在整个产品生命周期中集成了质量管理,以提高产品质量、安全性和可靠性。

降低了开发成本

自动执行个人和团队任务、实现重复使用、提高专注度、控制复杂性并大幅度减少返工,从而降低高品质软件的成本。

自动执行个人和团队任务、实现重复使用、提高专注度、控制复杂性并大幅度减少返工,从而降低高品质软件的成本。

ALM 的关键领域

监管

为软件开发建立一个透明、有据可查的管理框架。ALM 使组织能够建立透明的决策过程,并改进对项目和软件系统的监督和问责。

应用程序开发

管理现代敏捷软件开发固有的复杂性。与几年前的前辈相比,当今的软件工程师的工作效率要高得多。而且这种出色的效率是在复杂性增加的情况下实现的。ALM 为软件开发提供单一数据来源和端到端追溯能力,涵盖了需求管理、测试管理和项目管理,可助力实现现代软件开发。

维护

据估计,维护消耗了软件生命周期成本的 40-70%。要修正错误、保持竞争优势和响应不断变化的客户需求,持续的软件维护是必不可少的。应用程序生命周期管理使团队能够在产品的整个生命周期内高效地跟踪和管理变更和既定产品发布,从而使组织能够在初始部署后的很长一段时间内履行其产品承诺。

应用程序生命周期管理框架

ALM 阶段因组织不同而异,但通常包括以下几个阶段:

需求定义

有关各方分析问题并定义解决方案的大致范围。经过多次迭代,需求得到优化和细化。

设计

软件架构师和设计工程师反复定义解决方案的结构,确定解决方案的组件、行为和关系。

软件开发

由分析师、设计师、开发人员、测试人员和领导者组成的软件工程团队协同工作,开发一个又一个的软件版本。

测试和质量保证

每个人都需要对质量负责。QA 和风险管理是每次迭代的一部分,通过测试确保交付的软件满足初始需求。

部署

此阶段包括软件交付的准备、安装和运行任务。

维护

产品发布后,支持团队就需要收集增强功能请求和缺陷。新版本发布提供了修复错误和进行软件更新的机会。

ALM 关键功能

要实现卓越的应用程序生命周期管理,需要具备以下条件:

需求管理 — 收集市场洞察和业务需求,以指导软件工程设计,并围绕共同愿景协调团队成员之间的工作。 软件开发 — 协同工作和自动执行任务,以快速构建高品质软件。 质量保证和测试 — 检验和验证每个生命周期阶段的结果,以改进成果并降低质量成本。 敏捷项目管理 — 采用优先考虑灵活性、协同和持续改进的软件工程卓越实践。
开发操作 — 创建高效、可重复的流程,以成功部署和操作软件。规划和监控软件发布。 风险管理 — 通过关注重要的主题,来识别、分析和减少内部和外部威胁。 软件设计 — 跨学科协同,以设计创新型高品质软件。 协同 — 提供对最新项目信息的无缝、透明访问,并支持远程和并行工作流。
监管合规性 — 遵循软件开发管理的监管标准。 分析 — 深入了解软件质量、使用情况和团队速度,以持续改进软件工程流程和可预测性。 源代码管理 — 与代码编辑工具集成,以跟踪和管理变更,并轻松将源代码与需求、风险和测试数据相关联。

Codebeamer

PTC Modeler

PTC RV&S

pure::variants

Windchill PLM 软件

Codebeamer Codebeamer 大规模简化了产品和软件工程,利用敏捷方法统一了需求、风险和测试管理,并基于 OSLC 而构建,以实现 PTC 数字主线集成。 PTC Modeler PTC Modeler 与 PTC 工程数字主线集成,能够针对自动生成和同步源代码的高质量模型应用和扩展 OSLC。 PTC RV&S PTC RV&S 提供内置的软件变更和配置管理,以及与 PTC 工程数字主线的基于 OSLC 标准的集成。 pure::variants pure::variants enables systematic reuse of assets across entire product portfolios, optimizing the development process, reducing time to market, and improving product quality. Windchill PLM 软件 利用全面的核心 PDM 和高级 PLM 应用程序产品组合中的标准化预设功能,快速实现价值。

应用程序生命周期管理案例研究

 

Veoneer
Medtronic
LeddarTech
cs-navya-1550x827

Veoneer 提高汽车安全性

了解低调有为的全球知名汽车品牌合作伙伴 Veoneer 如何借助 Codebeamer 提高汽车安全性。

Veoneer 案例研究

Medtronic 实施敏捷开发

了解这家全球医疗技术领导者如何在组织中扩展敏捷方法,同时始终遵循医疗法规。

Medtronic 案例研究

专注于遵守 ISO 26262 标准的 ALM

了解 LeddarTech 选择 Codebeamer 为自动驾驶汽车提供尖端环境传感解决方案的原因。

Leddartech 案例研究

开发未来的自动驾驶系统

Navya 率先推出了商用自动驾驶班车。了解他们如何对开发工具集进行现代化改造。

Navya 案例研究

ALM 的未来

软件工程师应用敏捷技术自动生成代码并利用可重用的现成组件,从而可节省时间和成本。AI 辅助工程有望掀起下一波提升产品开发效率的浪潮。即使软件工程不断发展,ALM 功能也始终是必不可少的,因为它支持透明、监管和协同的基本原则。

overlaycontent

常见问题解答

ALM 的用途是什么?

应用程序生命周期管理 (ALM) 是一门学科,它适用于需要协调人员、工具和流程的各种软件产品或项目。ALM 支持软件、组件或库等的开发工作。

ALM 如何支持受监管的行业?

受监管行业(包括航空航天和国防、医疗和制药、运输和汽车)对制造安全关键型产品提出了特殊要求。这些要求既规定了最终产品的安全性和质量,也规定了软件开发流程本身的严格性和可审计性。因为 ALM 能够提供全面的管理框架,所以它可帮助支持受监管行业的软件开发。专业的 ALM 功能可以支持 IEC 82304-1、IEC 62304、ISO 14971、FDA 21 CFR 第 11 和 820 部分、ISO 26262、ISO 13485、Automotive SPICE、CMMI 以及其他标准和法规。

ALM 与 PLM 软件有何不同?

ALM 与 PLM 软件可协同工作,实现数字化转型。ALM 擅长在整个软件生命周期中管理软件需求、测试资产和软件发布。PLM 则擅长管理产品、设计文档、产品平台和变型。组织可结合使用 ALM 与 PLM 来管理完整的产品组合。

ALM 支持哪些软件开发流程?

应用程序生命周期管理作为一门学科与流程无关,可用于实施各种软件开发流程。但是,特定的 ALM 工具可能会限制您对流程的选择。因此,选择一个可支持并帮助自动执行您偏好的工作方式的 ALM 平台非常重要,无论是 Scrum、SAFe、V 模型亦或是其他敏捷或混合流程,均是如此。

What is the difference between SDLC and ALM?

Application Lifecycle Management (ALM) is the governance of software development throughout its lifecycle, whereas software development lifecycle (SDLC) is more precisely the initial development phase of the software itself, or the process used to define and execute a software build and implementation. While SDLC focuses on the technical aspects of development, ALM covers all activities from planning to retirement. SDLC is under the larger ALM canopy.

What is the difference between ALM and DevOps?

ALM encompasses the entire lifecycle from inception through retirement, including requirements management, design, development, testing, deployment, and maintenance, to provide a centralized platform for managing these processes and enable collaboration among different teams and stakeholders. DevOps is a software delivery approach to eliminate barriers between existing development and operations teams that evolved from agile practices requiring more harmony between development and operations teams. DevOps practices emphasize continuous integration and delivery, automation of infrastructure, and monitoring with the goal of increasing software delivery speed, reliability, and quality.

Is ALM only for waterfall teams?

While ALM methodologies were originally developed to support traditional waterfall development processes, they are adaptable to various development methodologies, including agile, iterative, and hybrid approaches. Codebeamer is custom-built to help teams go agile. Teams that prefer waterfall can continue to use that methodology, or if they seek to mix both methodologies on their road to agile adoption, they can leverage the agile-waterfall hybrid features in Codebeamer. ALM’s primary goal is to provide a centralized platform for managing the entire lifecycle of an application, regardless of the specific development methodology being used.