在信息系統項目管理師的知識體系中,軟件開發是常規信息系統集成技術的核心組成部分之一。它不僅是構建信息系統的基礎,也是項目管理成功與否的關鍵。本節將圍繞軟件開發的主要技術要點,結合2019年考試大綱的要求,進行系統性的梳理與分析。
一、軟件開發模型與方法論
軟件開發模型決定了項目的組織方式與流程。掌握主流模型的特點及適用場景至關重要。
- 瀑布模型:經典的線性順序模型,階段劃分明確,適用于需求明確、變更較少的項目。但靈活性差,后期變更成本高。
- 迭代模型與增量模型:將整個項目分解為一系列小的迭代或增量,每次迭代都產生一個可運行版本。能較早獲得用戶反饋,降低風險。Rational統一過程(RUP)是典型的迭代模型。
- 螺旋模型:強調風險分析,每個迭代周期都包含制定計劃、風險分析、實施工程和客戶評估四個階段。適用于大型、高風險項目。
- 敏捷開發模型:以人為核心、迭代、循序漸進的開發方法。強調快速交付、持續改進和響應變化。Scrum和極限編程(XP)是其中最具代表性的框架。在當前的軟件開發實踐中占據主流地位。
項目管理師需根據項目特點(如需求明確度、技術風險、團隊規模)選擇合適的模型,并能在項目過程中進行裁剪和調整。
二、軟件需求工程
需求是項目的基石。需求工程包括需求獲取、分析、規格說明、驗證和管理。
- 需求獲取:通過訪談、問卷、原型等方法,從用戶、干系人處收集需求。
- 需求分析:結構化分析(如數據流圖、數據字典)與面向對象分析(如用例圖、類圖)是兩大主流技術。目標是建立清晰、無歧義的需求模型。
- 需求管理:涉及需求跟蹤、變更控制、版本管理。使用需求跟蹤矩陣(RTM)是確保需求不被遺漏、驗證覆蓋的有效工具。
三、軟件設計
設計階段將需求轉化為系統的藍圖,分為總體設計(架構設計)和詳細設計。
- 軟件架構設計:決定系統的高層結構、組件及其關系。常見的架構風格包括分層架構、客戶端-服務器架構、事件驅動架構、微服務架構等。架構設計需關注性能、安全性、可擴展性、可維護性等質量屬性。
- 詳細設計:定義每個模塊/類的內部實現細節,包括算法、數據結構、接口等。常用工具包括程序流程圖、盒圖(N-S圖)、PAD圖、類圖、時序圖等。
- 設計原則與模式:遵循高內聚、低耦合等基本原則。熟悉常用的設計模式(如工廠模式、單例模式、觀察者模式等),能提高代碼的復用性和可維護性。
四、軟件實現(編碼)與測試
- 軟件實現:
- 編程語言與范式:了解主流語言(如Java, C#, Python, JavaScript)及其適用的領域。理解面向過程、面向對象、函數式等編程范式。
- 編碼規范:統一的編碼規范是保證團隊協作和代碼質量的基礎。
- 集成策略:包括一次性集成(Big Bang)、自上而下、自下而上、三明治集成等,需根據項目情況選擇。
- 軟件測試:
- 測試級別:單元測試、集成測試、系統測試、驗收測試。
- 測試類型:功能測試、性能測試、安全測試、兼容性測試、用戶界面測試等。
- 測試方法:黑盒測試(等價類劃分、邊界值分析等)與白盒測試(邏輯覆蓋、路徑測試等)。
- 自動化測試:是提高測試效率、支持持續集成/持續部署(CI/CD)的關鍵。
五、軟件維護與配置管理
- 軟件維護:包括改正性維護、適應性維護、完善性維護和預防性維護。維護成本通常遠高于開發成本,因此設計時的可維護性至關重要。
- 軟件配置管理(SCM):貫穿整個生命周期,管理軟件的變更。核心活動包括配置標識、版本控制、變更控制、配置審計和狀態報告。Git、SVN等是常用的版本控制工具。
六、新興技術與趨勢(2019年視角)
在2019年的技術背景下,以下趨勢值得關注:
- DevOps與持續交付:強調開發與運維的緊密協作,通過自動化工具鏈實現軟件的快速、可靠構建、測試與發布。
- 微服務架構:將單體應用拆分為一組小型、松耦合的服務,每個服務獨立開發、部署和擴展。
- 容器化技術:以Docker為代表的容器技術,提供了輕量級、一致性的運行環境,極大促進了微服務和DevOps的落地。
- 低代碼/無代碼開發平臺:通過可視化方式快速構建應用,提升開發效率,應對業務快速變化。
###
對于信息系統項目管理師而言,深入理解軟件開發的技術要點,不僅是為了應對考試,更是為了在實際項目中做出正確的技術決策、有效管理開發團隊、控制項目風險和質量。在集成項目中,軟件開發必須與網絡、數據庫、中間件等其他技術有效協同,共同構建穩定、高效的信息系統。因此,項目管理師需具備將軟件開發技術與管理實踐相結合的系統性思維。