軟件項目管理精華解析
軟件項目管理的定義
軟件工程的活動包括問題定義、可行性研究、需求分析、設計、實現、確認、支持等,所有這些活動都必須進行管理,軟件項目管理貫穿于軟件工程的演化過程之中,如圖1所示。
軟件項目管理的過程
管理的過程分為如下幾個步驟:
?。?)啟動軟件項目
啟動軟件項目是指必須明確項目的目標和范圍、考慮可能的解決方案以及技術和管理上的要求等,這些信息是軟件項目運行和管理的基礎。
?。?)制定項目計劃
軟件項目一旦啟動,就必須制定項目計劃。計劃的制定以下面的活動為依據。
估算項目所需要的工作量
估算項目所需要的資源
根據工作量制定進度計劃,繼而進行資源分配
做出配置管理計劃
?。?)跟蹤及控制項目計劃
在軟件項目進行過程中,嚴格遵守項目計劃,對于一些不可避免的變更,要進行適當的控制和調整,但要確保計劃的完整性和一致性。
?。?)評審項目計劃
對項目計劃的完成程度進行評審。并對項目的執行情況進行評價。
?。?)編寫管理文檔
項目管理人員根據軟件合同確定軟件項目是否完成。項目一旦完成,則檢查項目完成的結果和中間記錄文檔,并把所有的結果記錄下來形成文檔而保存。
軟件項目管理的內容
軟件項目管理的內容涉及上述軟件項目管理過程的方方面面,概括起來主要有如下幾項。
1、目標
需求管理的目的是在客戶和處理客戶需求的軟件項目組之間建立對客戶需求的共同理解。需求管理的目標有兩個:
使軟件需求受控,并建立供軟件工程和管理使用的需求基線。
使軟件計劃、產品和活動與軟件需求保持一致。
2、原則
為進行有效的需求管理,一般要遵循如下五條原則:
需求一定要分類管理:進行軟件項目管理的時候,一定要將軟件需求分出層次。不同層次需求的側重點、描述方式、管理方式是不同的。
需求必須分優先級:在軟件項目中,如果出現過多的需求,通常會導致項目超出預算和預定進度,最終導致軟件項目的失敗,因而需求的優先級可能比需求本身更加重要。
需求必須文檔化:需求必須有文檔記錄。該文檔必須是正確的、最新的、可管理的、可理解的,是經過驗證的,是在受控的狀態下變更的。
需求一旦變化,就必須對需求變更的影響進行評估無論需求變化的程度如何,只要需求變化了就必須進行評估,這是基本的原則。
需求管理必須與需求工程的其他活動緊密整合進行需求管理一定不能脫離需求工程,需求工程包括了需求獲取、需求分析、需求描述、需求驗證、需求管理,因而需求管理必須與前面的幾個需求階段保持密切相關。
3、需求管理活動
需求管理是一個對系統需求變更了解和控制的過程。初始需求導出的同時就啟動了需求管理規劃,一旦形成了需求文檔的草稿版本,需求活動就開始了。
軟件項目估算與進度管理
1、軟件項目估算
軟件項目估算包括工作量估算和成本估算兩個方面。軟件估算作為軟件項目管理的一項重要內容,是確保軟件項目成功的關鍵因素。估算是指通過預測構造軟件項目所需要的工作量的過程。初步的估算用于確定軟件項目的可行性,詳細的估算用于指導項目計劃的制定。
2、軟件規?!ぷ鞣纸饨Y構
對軟件項目進行估算遇到的第一個問題就是軟件規模,即軟件的程序量。軟件規模是軟件工作量的主要影響因素。軟件項目的設計有一個分層結構,這一分層結構就對應著工作分解結構(WBS,Work Breakdown Structure),它將軟件過程和軟件產品結構聯系起來。圖2是一個典型的WBS結構。
3、軟件項目成本估算
成本估算是對完成軟件項目所需費用的估計和計劃,是軟件項目計劃中的一個重要組成部分。成本估算步驟如下:
建立目標-----規劃需要的數據和資源------確定軟件需求------擬定可行的細節------運用多種獨立的技術和原始資料------比較并迭代各個估算值------隨訪跟蹤。
4、軟件項目進度管理
制定項目計劃:項目計劃在項目開始的時候制定,并隨著項目的進展不斷發展。軟件項目計劃的要素包括目標、合理的概念設計、工作分解結構、規模設計、工作量估計和項目進度安排。項目計劃為管理者提供了根據計劃定期評審和跟蹤項目進展的基礎。
進度安排:在確定了項目的資源(總成本及時間等)后,把其分配到各個項目開發階段中,即確定項目的進度。項目各階段的工作量可以參考表2
軟件開發過程
我們用瀑布模型來描述一個軟件開發的生命周期,如圖3所示:
生命周期階段與文檔、角色間的關系
軟件開發生命周期與文檔、角色之間的關系見表3:
項目角色職能
項目經理:
管理整個項目過程。包括制定計劃、項目跟蹤、項目成員的角色分配、協調、管理,軟件配置管理,文擋標準制定,文擋審查等。
技術經理:
對項目的技術及方案總體把握,配合系統分析員做一些大的工作,審查系統分析員做好的各種設計,對系統分析員提出的問題一起去解決。
系統分析員:
和項目經理一起參與需求分析,形成需求規格說明文檔。根據需求規格說明文擋做概要設計,形成概要設計文擋。根據概要設計文擋做詳細設計文擋。在編碼及測試階段協助程序員、測試人員編碼和測試。
程序員:
根據詳細設計文檔進行編碼,并對自己的代碼模塊進行單元測試,形成單元測試報告。
測試員:
在編碼完成后,做系統測試,形成測試報告,通知項目經理測試結果。
文檔管理員:
對所有項目文檔進行管理,保持所有文擋的同步與一致。
項目成員結構
項目實施階段
整個項目分為三個階段:開始階段、實施階段、收尾階段。
1、項目開始階段
確定項目組成員
確定組織結構
確定項目組成員在項目中的具體角色及其工作職責。
2、項目實施階段
項目經理制定項目開發計劃。
準備基礎設施(軟件、文檔摸板、工具)。
按照項目開發計劃由項目經理組織實施。
每周定期召開項目組全體成員會議。會議內容包括:階段總結、當前項目開發進度、下階段計劃安排、當前遇到的各種困難(技術上的、或組織上的或人力上的等等)。
項目組成員每周撰寫周計劃、周總結。
項目所有相關文檔、代碼要保持同步更新及版本一致。
項目組成員在每天開始工作前,下載所有最新文檔與代碼。在每天工作結束后上傳所有自己更新的文檔與代碼。
3、項目收尾階段
總結
文件存檔