應用程式生命週期管理 (ALM)

使用敏捷工程功能統合需求、風險和測試管理,更快交付高品質的軟體。

應用程式生命週期管理 (ALM) 的定義

應用程式生命週期管理 (ALM) 是一種策略流程,用於管理從初期概念發想、設計、開發、測試、部署一直到壽命終止的整段軟體或產品生命週期。ALM 能協助軟體工程團隊運用經實證有效的敏捷工作模式和值得信賴的最新資訊,高效率地協同合作處理專案,是產品、團隊和公司掌握成功的基礎工作項目。

overlaycontent

ALM 的重要性

應用程式生命週期管理可協助團隊管理現代軟體開發的固有複雜度。現在產品價值越來越常透過軟體提供,例如一般的汽車是由許多微處理器組成,執行的程式碼超過 1 億行。ALM 能連結人員、流程和工具,可協助各團隊採用一致的目標、加快軟體交付,並簡化法規遵循。

應用程式生命週期管理的好處

提升可見度

為全球團隊提供最新需求、風險和測試資料的透明存取權,確保團隊正確建構適合的軟體。

為全球團隊提供最新需求、風險和測試資料的透明存取權,確保團隊正確建構適合的軟體。

強化的法規遵循功能

在整個生命週期中控管和監控成熟流程的使用過程。端對端可追溯性功能提供攸關安全性的法規、指引和品質標準,有助簡化法規遵循流程。

在整個生命週期中控管和監控成熟流程的使用過程。端對端可追溯性功能提供攸關安全性的法規、指引和品質標準,有助簡化法規遵循流程。

加快部署速度

使用 Agile 工作模式簡化需求、風險和測試管理,加快軟體交付速度。使用可重複的共同流程,協調開發和營運團隊的步調。

使用 Agile 工作模式簡化需求、風險和測試管理,加快軟體交付速度。使用可重複的共同流程,協調開發和營運團隊的步調。

更高品質的產品

更有信心地交付產品。ALM 將品質管理整合至產品生命週期,來提高產品品質、安全性及可靠性。

更有信心地交付產品。ALM 將品質管理整合至產品生命週期,來提高產品品質、安全性及可靠性。

較低的開發成本

將個別任務和團隊任務自動化,以提升重用率、集中工作心力、降低複雜度並盡量避免重工,有助於降低開發高品質軟體的成本。

將個別任務和團隊任務自動化,以提升重用率、集中工作心力、降低複雜度並盡量避免重工,有助於降低開發高品質軟體的成本。

ALM 的重要領域

治理

建立透明、記錄詳盡的軟體開發治理架構。ALM 能協助組織打造透明的決策流程,並改善專案與軟體系統的監督與問責工作。

應用程式開發

管理現代敏捷軟體開發的固有複雜度。今日軟體工程師的生產力比幾年前高出許多。考量到複雜度大增的背景條件,這樣的成就相當了不起。ALM 能為軟體開發工作提供單一資料來源和端對端可追溯性,並涵蓋需求管理、測試管理與專案管理,因此有助於推動現代化的軟體開發。

維護

根據估計,在整個軟體生命週期中,維護成本就佔了總成本的 40 到 70%。組織必須持續進行軟體維護,才能修正錯誤、維持競爭優勢,並回應不斷演變的客戶需求。應用程式生命週期管理能協助團隊在整個產品效期內,有效追蹤及管理變更與產品發行時程,如此在初次部署後很長一段時間內,組織還是能持續提供所承諾的產品功能。

應用程式生命週期管理架構

不同組織採用的 ALM 階段也各有差異,不過通常都包含下列要素:

需求定義

利害關係人分析問題,並定義解決方案的高階範圍。需求在經歷多個版次後,會一再修改和增添細節。

設計

軟體結構設計師和設計工程師會反覆定義解決方案結構,指定解決方案的元件、行為和關係。

軟體開發

軟體工程團隊包含分析師、設計師、開發人員、測試人員和主管,大家協同合作開發軟體的後續版本。

測試及品質管制

品質是每個人的責任。每個版次的產品都要進行品管和風險管理,並利用測試來確保所交付的軟體符合原始需求。

部署

這個階段涵蓋準備與安裝軟體,以及使軟體交付物可操作化的工作。

維護

產品發行後,支援團隊就會開始收集強化功能要求和瑕疵報告。組織可以把握新產品發行的機會,修正錯誤並提供軟體更新。

主要 ALM 功能

如果要充分發揮應用程式生命週期管理的優勢,就必須深入了解:

需求管理:收集市場深入分析資料和業務需求,以做為軟體工程的指引,並讓所有團隊成員朝共同的願景努力。 軟體開發:透過協同合作與自動化的方式,快速建構高品質的軟體。 品質管制及測試:在生命週期中的每個階段驗證和確認結果,以改善成果並降低品管成本。 敏捷專案管理:採用軟體工程最佳工作模式,將彈性、協同合作與持續改善列為首要之務。
開發操作:建立可重複的有效流程,以利成功部署和操作軟體,同時規劃和監控軟體發行版本。 風險管理:著重於最重要的主題,以利辨識、分析和降低內部和外部威脅。 軟體設計:跨部門協同合作,設計出創新的高品質軟體。 協同合作:提供順暢透明的存取權,方便團隊成員存取最新專案資訊,並執行遠端同步工作流程。
法規遵循:遵守相關法規標準,達成軟體開發治理目標。 分析:深入了解軟體品質和團隊工作速度,持續改善軟體工程流程及可預測性。 原始碼管理:整合程式碼編輯工具,以利追蹤和管理變更,將原始碼輕鬆關聯到需求、風險和測試資料。

ALM 工具

Codebeamer

PTC Modeler

PTC RV&S

Windchill PLM 軟體

Codebeamer Codebeamer 能全面簡化產品和軟體工程,使用敏捷方法統合需求、風險和測試管理功能,並以 OSLC 技術為建構基礎來整合 PTC Digital Thread。 PTC Modeler PTC Modeler 能整合 PTC 工程 Digital Thread,套用和延伸 OSLC 技術建構高品質模型,以自動產生並同步處理原始碼。 PTC RV&S PTC RV&S 提供內建軟體變更與組態管理,以及 OSLC 標準化 PTC 工程 Digital Thread 整合功能。 Windchill PLM 軟體 運用全方位的核心 PDM 與進階 PLM 應用程式組合所提供的立即可用標準化功能,快速實現價值。

應用程式生命週期管理案例研究

 

Veoneer
Medtronic
LeddarTech
cs-navya-1550x827

Veoneer 提升汽車安全性

Veoneer 公司雖然行事低調,卻是全球各大高階車款製造商背後強大的合作夥伴。歡迎了解這家公司如何運用 Codebeamer 提升汽車安全性。

Veoneer 案例研究

Medtronic 導入敏捷開發方法

了解這家醫療技術領域的頂尖跨國製造商如何在自家組織中擴大實施敏捷方法,同時仍持續遵守相關醫療法規。

Medtronic 案例研究

Laser 著重於有助遵守 ISO 26262 的 ALM

了解 LeddarTech 為何選擇 Codebeamer,為自駕車提供最先進的環境感應解決方案。

LeddarTech 案例研究

開發未來的自動駕駛系統

Navya 是全球第一家推出商用自駕接駁車的公司。了解該公司如何打造現代化的開發工具組。

Navya 案例研究

ALM 的未來發展

軟體工程師採用敏捷開發技巧自動產生程式碼,並運用可重用的現有元件,以便節省時間和成本。AI 輔助工程可協助進一步提升產品開發效率。軟體工程再怎麼演進,都還是需要使用 ALM 功能,因為如此才有助於遵守透明度、治理和協同合作等基本原則。

overlaycontent

常見問題集

ALM 有何用途?

應用程式生命週期管理 (ALM) 適用於需要協調人員、工具和流程的任何軟體產品或專案,能為軟體、元件或資料庫等的開發工作提供支援。

ALM 為須遵守嚴格法規的產業提供的支援

須遵守嚴格法規的產業包括航太及國防工業、醫療與製藥,以及交通運輸與汽車業。這些產業必須遵守特殊規範,以打造攸關安全的產品。這些規定要求最終產品達到一定的安全性與品質標準,也制定了嚴謹且可稽核的軟體開發流程。由於 ALM 提供全方位的治理架構,因此在須遵守嚴格法規的產業最適合用來支援軟體開發工作。專業 ALM 功能可支援 IEC 82304-1、IEC 62304、ISO 14971、FDA 21 CFR Part 11 和 Part 820、ISO 26262、ISO 13485、Automotive SPICE、CMMI 及其他標準和法規。

ALM 與 PLM 軟體有什麼不同?

ALM 和 PLM 軟體能彼此搭配運作,推動數位轉型。ALM 適合用來管理整個軟體生命週期中的軟體需求、測試資產和軟體發行版本,PLM 則適合用來管理產品、設計文件、產品平台及變體。只要搭配運用 ALM 和 PLM,組織就能有效管理整個產品組合。

ALM 支援的軟體開發流程

應用程式生命週期管理不受流程約束,可用於導入任何軟體開發流程。不過,如果您需要使用特定 ALM 工具,可選擇的流程可能會受限。因此請務必選擇支援並有助自動執行您偏好工作方法的 ALM 平台,這些方法包括 Scrum、SAFe、V-Model 或其他敏捷/混合流程。

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.