Critical Windchill and FlexPLM Security Notice

Critical new security patches are now available. Customers are urged to apply the patches immediately.

Learn More

軟體開發

協調人員、工具和最佳工作模式,快速打造出高品質的軟體。

概觀 類型 工具 資源 常見問題集
與我們聯絡

軟體開發的定義

軟體開發是在軟體的使用期限內,定義、開發、測試、部署和管理軟體變更的流程,包含建立和維護軟體產品或系統/產品內建軟體時,從概念發想、發佈到後續維護的所有相關程序。對所有銷售軟體、軟體型服務或智慧型產品的公司而言,軟體開發都是維持競爭力的核心。這個產業在全球市場的總產值達到 4,290 億美元,複合年成長率 (CAGR) 為 11.7% (2022 年至 2030 年)。

軟體開發的重要性

軟體開發是影響全球經濟的一項關鍵創新驅動力,從汽車到手機、溫控裝置和醫療設備,都利用軟體來提供與眾不同的關鍵功能。軟體在過去十年扮演了推動重大科技進展的關鍵角色,包括工業物聯網、基因定序、電腦視覺、手術用機器人以及自駕車,而軟體開發也將在未來持續推動產品和服務創新。

軟體的基本類型

系統軟體

系統軟體是用來執行電腦硬體,可為硬體上執行的應用程式提供基本服務。這類軟體包括作業系統軟體,通常是以低階電腦程式設計語言編寫,以盡可能加快運作速度和效率。

應用程式軟體

應用程式軟體為使用者提供各項功能。這類軟體包括工程軟體、個人軟體和行動應用程式等等。應用程式軟體能以高階程式設計語言編寫、從設計模型中產生,或使用預先建構的元件組裝而成。

內建軟體

內建軟體是一種特殊用途軟體,用來監控和控制飛機、汽車、溫控裝置及其他實體產品內部使用的微處理器。內建軟體通常封裝於電子控制單元 (ECU) 內部,可提供各種功能,例如透過不同 ECU 分別提供的汽車煞車、導航、安全性以及其他功能。內建軟體通常需要即時做出回應,因此必須採用即時作業系統 (RTOS) 和程式設計語言。

廣受採用的軟體開發方法

瀑布式方法

瀑布式方法是一種線性軟體開發方法,先從需求階段展開專案,並在經過完整定義並取得所有核准後才進入設計階段,最後以導入階段做終。由於從初始概念發想到最終導入會經歷很長的時間,因此瀑布式模式無法靈活因應變更。這種方法最適合需求定義明確、失敗風險低的高度嚴謹專案。

敏捷方法

敏捷方法是一種以彈性和客戶滿意度優先的專案管理方法,運用稱為「衝刺」的快速改版、協同合作規劃,以及稱為「回顧」的定期審核來持續提供價值。敏捷方法最適合需求不明或不斷變動的專案,因為能透過漸進的方式釐清使用者需求,同時提供價值。您可以套用許多架構以獲得額外的指引,包括 Scrum、Kanban 和 Scaled Agile Framework (SAFe)。

混合式方法

只要開發流程中結合多種方法的要素,都算是混合式方法,例如產品開發團隊經常採取的一種方式:設計、電子和機械工程師運用 V 模型,定期推出新的產品版本,而軟體團隊則按照敏捷工作模式,每隔三週推出一次更新版本。這兩個團隊會定期整合彼此的工作成果,並進行產品整體回顧。混合式流程能擷取每種方法的最佳要素,快速且嚴謹地開發出複雜的產品。

V 模型

V 模型是一種專案管理模型,通常用於管理涉及多種工程領域的大規模複雜專案,又稱為查核與驗證模型。「查核」代表將需求細分為設計和詳細工程規格,「驗證」則是指整合、驗證與查核每個生命週期階段。V 模型是很實用的架構,可用來管理需要以嚴謹方式開發的複雜產品。

軟體開發最佳工作模式

敏捷:迅速回應不斷演變的客戶及市場需求。敏捷工作模式能透過「衝刺」快速改版和更高的交付頻率,充分提升敏捷性。

分析:擷取和分析團隊指標,確保按照優先順序進行各項活動,並奠定持續改善的基礎。

變更管理:管理需求、程式碼和測試資產變更,將變更快速傳達給整個團隊,並分割與合併資產,以輕鬆建立變體。

持續整合與交付 (CI/CD):將程式碼變更合併到定期整合、編譯、測試和交付的共用存放庫中,加快交付軟體。

開發操作:採用可重複的自動化發行管理流程,更快為客戶提供價值。

安全性:透過稽核記錄、電子簽章及其他治理技巧,管理策略性軟體資產的監管和授權鏈。

需求管理:以漸進的方式分析和定義解決方案應用範圍,並研擬詳細規格。

測試及品質管理:在每個階段驗證和確認結果,以改善成果並降低品管成本。

發行規劃:規劃和管理對使用者的軟體經銷業務。

軟體開發工具和解決方案

Codebeamer 是新一代的應用程式生命週期管理 (ALM) 解決方案,能全面簡化複雜的軟體開發流程。這個開放式平台提供強大的敏捷軟體工程功能,可擴大 ALM 工作流程的應用範圍。Codebeamer 提供需求、風險和測試管理功能、最佳工作模式工作流程、開發工具鏈整合功能,並支援敏捷和 V 模型方法。有了 Codebeamer,團隊就能按照自己的需求自訂這項工具,並快速實現價值。您可以使用預先配置範本簡化法規遵循流程,還能享有從概念發想到產品交付的全方位可追溯性。Codebeamer 採用 Open Services for Lifecycle Collaboration (OSLC) 標準為建構基礎,可與 PTC 工程 Digital Thread 整合。

常見問題集

軟體開發流程中的不同階段

  • 需求分析
  • 設計
  • 導入
  • 測試
  • 記錄
  • 部署及維護
  • 重用

軟體開發的演變過程

軟體開發技巧一直在改變。在過去,程式設計師要從頭到尾親自編寫應用程式,今日的軟體工程師則可運用敏捷方法,快速改版以迅速提供價值。軟體工程師能從設計模型產生程式碼,或運用可重用的現有元件,以更低的成本迅速達成目標。未來 AI 輔助工程將使軟體開發效率進一步提升。

內建軟體開發流程的不同之處

內建軟體開發在許多方面與應用程式開發不同。內建軟體通常:

  • 封裝於電子控制單元 (ECU) 內部,可提供各種不同的功能,而且無法改變用途
  • 用來控制無法輕易更新的零件;在產品生命週期中,這些零件必須完美無瑕地運作
  • 極度複雜,需要多位需求、設計、開發和測試程序負責人彼此協同合作
  • 用於關鍵任務且攸關安全,必須具備最高等級的品質與可靠性
  • 使用 RTOS 和程式設計語言建構,以提升速度和效率
  • 設計為可在低耗電環境下運作

在須遵守嚴格法規的產業,軟體開發有何不同之處?

須遵守嚴格法規的產業包括航太及國防工業、醫療與製藥,以及交通運輸與汽車業。這些產業必須遵守特殊規範,以打造攸關安全的產品。這些規定要求最終產品達到一定的安全性與品質標準,也制定了嚴謹的軟體開發流程。總而言之,須遵守嚴格法規的產業在開發軟體時,必須特別注意治理能力、安全性與可稽核性的問題。