A. 軟體系統規模估算方法論介紹——功能點分析法
眾所周知,軟體系統復雜性極高,評估其規模對項目成本、資源需求、工期及報價至關重要。當前主要評估方法分為技術視角與業務視角兩大類。技術視角方法側重開發者角度,如源代碼行數、資料庫表及函數數量;業務視角方法則從用戶角度出發,與技術無關,如功能點、故事點、用例點及對象點等。專家估演算法基於技術視角,適用於內部團隊,但標准難以量化,差異性大,難以達成一致。在與外部組織商討關鍵項目目標時,業務視角更為必要。功能點分析法,一種基於業務視角的國際標准方法論,能客觀度量用戶需求及功能,提供不依賴特定技術的規模評估手段,適合不同項目與組織間的度量一致性。此方法簡便、相對客觀,使用行業標准數據,易於被接受。
功能點分析法的核心在於度量用戶需求及功能,採用五個基本要素進行量化:內部邏輯文件(ILF)、外部介面文件(EIF)、外部輸入(EI)、外部輸出(EO)及外部查詢(EQ)。簡而言之,業務實體為ILF,外部系統介面為EIF,新增、刪除、修改操作為EI,查詢操作為EQ,介面或報表為EO。ILF與EIF為靜態數據,而EI、EO及EQ為動態數據。
快速功能點法(2點法)以需求分析及可研報告為基礎,評估項目中涉及的ILF與EIF數量,通過公式FP = ∑(35 * ILF + 15 * EIF)進行計算。初步功能點法(5點法)在設計階段引入更細的評估粒度,使用公式FP = ∑(15 * ILF + 10 * EIF + 4 * EI + 5 * EO + 4 * EQ),納入更多要素,提供更准確的評估。標准功能點法則引入功能復雜度、DET(欄位數量)與RET(表數量)等控制因子,進行更精細的衡量,以求更准確的評估結果。
計算方法的延伸是將功能點數量轉換為實際工作量、成本及工期。通過功能點法得到功能點數量後,結合每個功能點所需工時進行計算,通常軟體公司會有自己的經驗數據。若無積累,則可參考權威數據報告,如《中國軟體行業基準數據報告》,該報告提供了生產率、維護生產率、缺陷密度、工作量分布及人員費率等基礎數據,用於進一步的計算與分析。
功能點分析法的優點包括基於良好計算標准,易於理解和接受,適用於新項目、升級項目及維護項目,與技術無關,計算簡便且一致性高,利於不同組織間比較。然而,其缺點在於僅考慮可見部分的復雜度,忽視了系統內部復雜性,功能復雜度劃分相對粗略,對復雜功能的統計誤差較大。
綜上所述,功能點分析法作為評估軟體規模的優秀方法論,特別適用於業務視角,有助於優化成本、增強競爭力。對於採用成熟開發平台或二次開發的產品,能顯著降低成本,提升市場競爭力。
B. 軟體需求分析4個步驟
一、需求分析理論
軟體需求涉及功能性問題非常廣,我們用抽象化理論分析,可以劃分各個功能域,用不同的數字代替,軟體——S,功能域——A1、A2……An
S={A1、A2、……An}
但是功能域B又存在若干問題P1、P2……Pm組成,並且每個功能對應於子系統中的一個軟構件,可以表示為-B={P1、P2、……Pm}
功能G有若干個行為F1、F2、……Fj,每個行為對應於軟體構件中的實現方法
G={F1、F2……Fj}
一個軟體包含了所有功能的集合,同時包含了實現所以功能的所有方法和演算法描述。需求分析是依據用戶動機,經過需求問題識別,進行分析、消除分馳和綜合,編寫用戶故事,評審;形成用戶需求與設計同步,設計滿足用戶需求目標。
需求開發方法貫穿這個產品生命周期,利用不同的開發方法論進行挖掘需求,幫助用戶找到問題,梳理問題,判斷產品實現功能的正確性、一致性和完整性,促使用戶在軟體設計啟動之前進行周密的、全面的思考軟體產品功能,用商業化行為解決需求與現實中存在的矛盾,解決用戶需求與商業化產品功能融合,解決規范和個性化需求。
二、軟體需求開發的目標
1、對實現的軟體做一個全面的描述,幫助用戶找到問題矛盾解決用戶場景痛點,幫助用戶在進行產品規劃時做到周密,全面產品定位需求
2、了解和描述軟體實現所需的全部信息,為產品設計、確認和驗證提供一個基準
3、為軟體產品管理人員進行軟體產品成本評估和編輯軟體開發計劃書提供保障
需求開發-軟體功能需求、軟硬介面、非功能性需求、設計約束、反向需求、閱讀支持信息。
軟體需求分析盡量提供軟體實現功能需求的全部信息,使軟體設計人員和測試人員不在需要和需求方進行接觸,保證需求分析的一致性和完整性。
三、軟體功能需求
描述軟體功能實現注意——
1、功能需求的完整性和一致性
2、功能描述的無異議和可追蹤
3、功能描述清洗和功能可測試
四、軟硬介面
1、人機介面
2、硬體介面
3、軟體介面
4、通訊介面
五、非功能性需求
1、運行環境
2、時間需求
3、處理容限、精度、異常處理機制等
4、可靠性要求、可維護性、安全性
C. 淺談需求分析方法論
需求分析方法論是一個系統性的過程,主要包括收集需求、評估需求和精煉需求三個關鍵階段。
1. 收集需求階段
2. 評估需求階段
3. 精煉需求階段
遵循這一需求分析方法論,團隊能夠更系統地理解、評估和管理需求,從而提升項目執行效率和產品質量。同時,實踐這一方法論時,需要持續反思、調整和優化,以適應不斷變化的業務環境和用戶需求。