|
根據(jù)現(xiàn)有單位進(jìn)行軟件管理的經(jīng)驗(yàn),詳細(xì)整理了企業(yè)中軟件開發(fā)的過程和階段,以及相應(yīng)管理規(guī)范。 . 軟件項(xiàng)目管理概述 軟件項(xiàng)目管理是軟件工程和項(xiàng)目管理的交叉學(xué)科,軟件項(xiàng)目管理的概念涵蓋了管理軟件產(chǎn)品開發(fā)所必須的知識、技術(shù)及工具。根據(jù)美國項(xiàng)目管理協(xié)會(huì)PMI對項(xiàng)目管理的定義可以將軟件項(xiàng)目管理定義為:在軟件項(xiàng)目活動(dòng)中運(yùn)用一系列知識、技能、工具和技術(shù),以滿足軟件需求方的整體要求。 軟件項(xiàng)目管理是為了使軟件項(xiàng)目能夠按照預(yù)定的成本、進(jìn)度、質(zhì)量順利完成,而對成本、人員、進(jìn)度、質(zhì)量、風(fēng)險(xiǎn)等進(jìn)行分析和管理的活動(dòng)。實(shí)際上,軟件項(xiàng)目管理的意義不僅僅如此,進(jìn)行軟件項(xiàng)目管理有利于將開發(fā)人員的個(gè)人開發(fā)能力轉(zhuǎn)化成企業(yè)的開發(fā)能力,企業(yè)的軟件開發(fā)能力越高,表明這個(gè)企業(yè)的軟件生產(chǎn)越趨向于成熟,企業(yè)越能夠穩(wěn)定發(fā)展。 軟件生存周期包括可行性分析與項(xiàng)目開發(fā)計(jì)劃、需求分析、設(shè)計(jì)(概要設(shè)計(jì)和詳細(xì)設(shè)計(jì))、編碼、測試、維護(hù)等活動(dòng),所有這些活動(dòng)都必須進(jìn)行管理,在每個(gè)階段都存在著權(quán)限角色控制、文檔管理、版本控制、管理工具等,軟件項(xiàng)目管理貫穿于軟件生命的演化過程之中。 . 軟件項(xiàng)目管理過程 為保證軟件項(xiàng)目獲得成功,必須對軟件開發(fā)項(xiàng)目的工作范圍、要完成的任務(wù)、需要的資源、需要的工作量、進(jìn)度的安排、可能遇到的風(fēng)險(xiǎn)等做到心中有數(shù)。軟件項(xiàng)目的管理工作開始于技術(shù)工作開始之前,在軟件從概念到實(shí)現(xiàn)的過程中持續(xù)進(jìn)行,最后終止于軟件開發(fā)工作結(jié)束。 根據(jù)公司的實(shí)際情況,結(jié)合軟件工程及軟件過程標(biāo)準(zhǔn)等,特制定我公司軟件項(xiàng)目管理流程如下: 軟件項(xiàng)目管理規(guī)范流程圖 注:帶書名號《》的為項(xiàng)目開發(fā)過程中需提交的文檔。 項(xiàng)目管理的過程分為如下幾個(gè)步驟: (1) 啟動(dòng)軟件項(xiàng)目 啟動(dòng)軟件項(xiàng)目是指必須明確項(xiàng)目的目標(biāo)和范圍、考慮可能的解決方案以及技術(shù)和管理上的要求等,這些信息是軟件項(xiàng)目運(yùn)行和管理的基礎(chǔ)。 (2) 制定項(xiàng)目計(jì)劃 項(xiàng)目計(jì)劃在項(xiàng)目開始的時(shí)候制定,并隨著項(xiàng)目的進(jìn)展不斷發(fā)展,項(xiàng)目計(jì)劃為管理者提供了根據(jù)計(jì)劃定期評審和跟蹤項(xiàng)目進(jìn)展的基礎(chǔ)。計(jì)劃的制定以下面的活動(dòng)為依據(jù): 估算項(xiàng)目所需要的工作量 估算項(xiàng)目所需要的資源 根據(jù)工作量制定進(jìn)度計(jì)劃,繼而進(jìn)行資源分配 做出配置管理計(jì)劃 (3) 跟蹤及控制項(xiàng)目計(jì)劃 在軟件項(xiàng)目進(jìn)行過程中,嚴(yán)格遵守項(xiàng)目計(jì)劃,對于一些不可避免的變更,要進(jìn)行適當(dāng)?shù)目刂坪驼{(diào)整,但要確保計(jì)劃的完整性和一致性。 (4) 評審項(xiàng)目計(jì)劃 對項(xiàng)目計(jì)劃的完成程序進(jìn)行評審,并對項(xiàng)目的執(zhí)行情況進(jìn)行評價(jià)。 (5) 編寫管理文檔 項(xiàng)目管理人員根據(jù)軟件合同確定軟件項(xiàng)目是否完成。項(xiàng)目一旦完成,則檢查項(xiàng)目完成的結(jié)果和中間記錄文檔,并把所有的結(jié)果記錄下來形成文檔而保存。 . 軟件項(xiàng)目管理內(nèi)容 .1. 需求階段管理 需求分析是軟件生命周期中相當(dāng)重要的一個(gè)階段,是軟件設(shè)計(jì)的基礎(chǔ),也是用戶和軟件工程人員之間的橋梁。簡單地說,軟件需求就是確定系統(tǒng)需要做什么,嚴(yán)格意義上,軟件需求是系統(tǒng)或軟件必須達(dá)到的目標(biāo)與能力。 目標(biāo) 需求管理是一種獲取、組織并記錄軟件需求的系統(tǒng)化方案,同時(shí)也是一個(gè)使客戶與項(xiàng)目開發(fā)組對不斷變更的軟件需求達(dá)成并保持一致的過程。在需求管理中,軟件工程組的工作是采取適當(dāng)?shù)拇胧﹣肀WC分配的需求,即要將分配的需求文檔化,控制需求的變化,負(fù)責(zé)項(xiàng)目實(shí)施過程中需求的實(shí)現(xiàn)情況。 需求管理的目的是在客戶和處理客戶需求的軟件項(xiàng)目組之間建立對客戶需求的共同理解。需求管理的目標(biāo)有兩個(gè): 使軟件需求受控,并建立供軟件工程和管理使用的需求基線。 使軟件計(jì)劃、產(chǎn)品和活動(dòng)與軟件需求保持一致。 在需求管理過程中,為實(shí)現(xiàn)第一個(gè)目標(biāo),必須控制需求基線的變動(dòng),按照變更控制的標(biāo)準(zhǔn)和規(guī)范的過程進(jìn)行需求變更控制和版本控制;為實(shí)現(xiàn)第二個(gè)目標(biāo),必須就變更和軟件項(xiàng)目各小組達(dá)成共識,對軟件項(xiàng)目計(jì)劃做出調(diào)整,其中包括人員的安排、用戶的溝通、成本的調(diào)整、進(jìn)度的調(diào)整等。 需求管理是一個(gè)對系統(tǒng)需求變更了解和控制的過程,它貫穿于整個(gè)軟件項(xiàng)目過程,在軟件項(xiàng)目進(jìn)行的過程中,無論正處于哪個(gè)階段,一旦有需求錯(cuò)誤出現(xiàn)或任何有關(guān)需求的變更出現(xiàn),都需要需求管理活動(dòng)來解決,提交《需求變更控制報(bào)告》。 原則 為進(jìn)行有效的需求管理,一般要遵循如下五條原則: 需求一定要分類管理 需求必須分優(yōu)先級 需求必須文檔化 需求一旦變化,就必須對需求變更的影響進(jìn)行評估 需求管理必須與需求工程的其他活動(dòng)緊密整合 主要工作 需求階段分為系統(tǒng)需求和系統(tǒng)分析兩個(gè)階段。 系統(tǒng)需求階段的主要工作是: 調(diào)研用戶需求及用戶環(huán)境 論證項(xiàng)目可行性 制定項(xiàng)目初步計(jì)劃 系統(tǒng)分析階段的主要工作是: 確定系統(tǒng)運(yùn)行環(huán)境 建立系統(tǒng)邏輯模型 確定系統(tǒng)功能及性能要求 編寫需求規(guī)格說明、測試計(jì)劃 確認(rèn)項(xiàng)目開發(fā)計(jì)劃 完成文檔 需求規(guī)格說明書、項(xiàng)目開發(fā)計(jì)劃、測試計(jì)劃 .2. 設(shè)計(jì)階段管理 主要工作 軟件的設(shè)計(jì)階段可分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。 概要設(shè)計(jì)的主要工作: 建立系統(tǒng)總體結(jié)構(gòu),劃分功能模塊 定義各功能模塊接口 數(shù)據(jù)庫設(shè)計(jì)(如果需要) 詳細(xì)設(shè)計(jì)的主要工作: 設(shè)計(jì)各模塊具體實(shí)現(xiàn)算法 確定模塊間詳細(xì)接口 完成文檔 概要設(shè)計(jì)完成文檔 概要設(shè)計(jì)說明書 數(shù)據(jù)庫設(shè)計(jì)說明書(如果有) 詳細(xì)設(shè)計(jì)完成文檔: 詳細(xì)設(shè)計(jì)說明書 .3. 開發(fā)階段管理 主要工作 編寫程序源代碼 進(jìn)行模塊測試和調(diào)試 編寫測試方案 編寫測試用例 編寫用戶手冊 完成文檔 系統(tǒng)源程序清單 測試用例 測試方案 .4. 測試階段管理 主要工作 執(zhí)行測試 測試整個(gè)軟件系統(tǒng)(健壯性測試) 完善用戶手冊 編寫開發(fā)總結(jié)報(bào) 完成文檔 測試報(bào)告 用戶手冊 開發(fā)工作總結(jié) .5. 維護(hù)階段管理 主要工作 為糾正錯(cuò)誤,完善應(yīng)用而進(jìn)行修改 對修改進(jìn)行配置管理 編寫故障報(bào)告和修改報(bào)告 修訂用戶手冊 完成文檔 故障報(bào)告 修改報(bào)告 .6. 工具管理 開發(fā)工具管理 Visual Studio 2005/2008開發(fā)環(huán)境 VSS版本管理 測試工具管理 缺陷管理工具(暫定bugfree) Loadrunner8.1性能測試工具 .7. 軟件項(xiàng)目估算與進(jìn)度管理 .7.1. 軟件項(xiàng)目估算 軟件項(xiàng)目估算包括工作量估算和成本估算兩個(gè)方面。軟件估算作為軟件項(xiàng)目管理的一項(xiàng)重要內(nèi)容,是確保軟件項(xiàng)目成功的關(guān)鍵因素。估算是指通過預(yù)測構(gòu)造軟件項(xiàng)目所需要的工作量的過程。初步的估算用于確定軟件項(xiàng)目的可行性,詳細(xì)的估算用于指導(dǎo)項(xiàng)目計(jì)劃的制定。 3.7.1.1. 軟件規(guī)模 對軟件項(xiàng)目進(jìn)行估算遇到的第一個(gè)問題就是軟件規(guī)模,即軟件的程序量。軟件規(guī)模是軟件工作量的主要影響因素。軟件項(xiàng)目的設(shè)計(jì)有一個(gè)分層結(jié)構(gòu),這一分層結(jié)構(gòu)就對應(yīng)著工作分解結(jié)構(gòu)(WBS,Work Breakdown Structure),它將軟件過程和軟件產(chǎn)品結(jié)構(gòu)聯(lián)系起來。下圖是一個(gè)典型的WBS結(jié)構(gòu): 有了工作分解結(jié)構(gòu)之后,必須定義度量標(biāo)準(zhǔn)用以對軟件規(guī)模進(jìn)行估計(jì)。常用的軟件規(guī)模度量標(biāo)準(zhǔn)有兩種:代碼行LOC(Lines Of Code)和功能點(diǎn)FP(Function Points)。 代碼行 代碼行LOC是常用的源代碼程序長度的度量標(biāo)準(zhǔn),指源代碼的總行數(shù)。源代碼中除了可執(zhí)行語句外,還有幫助理解的注釋語句。 功能點(diǎn) 功能點(diǎn)度量是在需求分析階段基于系統(tǒng)功能的一種規(guī)模估計(jì)方法,該方法通過已經(jīng)初始應(yīng)用需求來確定各種輸入、輸出、查詢、外部文件和內(nèi)部文件的數(shù)目,從而確定功能點(diǎn)數(shù)量。 .7.1.2. 成本估算 成本估算是對完成軟件項(xiàng)目所需費(fèi)用的估計(jì)和計(jì)劃,是軟件項(xiàng)目計(jì)劃中的一個(gè)重要組成部分。 3.7.2. 進(jìn)度安排 在確定了項(xiàng)目資源(總成本、人員、時(shí)間等),把其分配到各個(gè)項(xiàng)目開發(fā)階段中,即確定項(xiàng)目的進(jìn)度。進(jìn)度的合理安排是如期完成軟件項(xiàng)目的重要保證,也是合理分配資源的重要依據(jù),建議進(jìn)度安排使用Gantt圖(甘特圖)。 項(xiàng)目整體進(jìn)度安排的過程如下: 1) 根據(jù)項(xiàng)目總體進(jìn)度目標(biāo),編制人員計(jì)劃。 2) 將各階段所需要的資源和可以取得的資源進(jìn)行比較,確定各階段的初步進(jìn)度,然后確定整個(gè)項(xiàng)目的初步進(jìn)度。 3) 對初步進(jìn)度計(jì)劃進(jìn)行評審,確保該計(jì)劃滿足要求,否則就重復(fù)上面的步驟。 進(jìn)度安排的詳細(xì)程度取決于相應(yīng)工作分解結(jié)構(gòu)的詳細(xì)程度,而工作分解結(jié)構(gòu)又取決于項(xiàng)目當(dāng)前所處階段與歷史經(jīng)驗(yàn),進(jìn)度安排計(jì)劃隨著項(xiàng)目的進(jìn)展而動(dòng)態(tài)調(diào)整,逐漸趨于更加詳細(xì)準(zhǔn)確。 在軟件項(xiàng)目進(jìn)行過程中,要及時(shí)更新項(xiàng)目進(jìn)度,以使管理者及時(shí)了解項(xiàng)目進(jìn)展情況。
信息發(fā)布:廣州名易軟件有限公司 http://m.jetlc.com
|