1. 程式人生 > >《軟體專案管理》課程知識總結

《軟體專案管理》課程知識總結

這篇文章是結合《軟體專案管理》課程知識進行的總結,我也不知道自己為什麼要總結這篇文章,很多事情沒有原因就做了,希望對大家有所幫助,尤其是上這門課的同學吧!有時候也在想寫這樣的文章到底有沒有用,估計用處不大,但沒辦法興趣使然~
    ——吾亦無他,唯心向尓
    (By:Eastmount 2014-11-25 下午5點 


一. 什麼是專案管理?

    隨著軟體危機(Software Crisis)帶來軟體代價高、難於控制開發進度、軟體質量低、維護困難等,提出來了兩種解決辦法:
    (1).技術方面通過新的程式設計思想、設計方法和設計模式
    (2).管理方面通過專案管理

    這門課程主要講述軟體專案管理相關內容,推薦IBM設計師Brooks《人月神話》.那麼什麼是專案呢?什麼又是專案管理呢?
    專案是指為了創造一個唯一的產品或提供一個唯一的服務而進行的臨時性的努力;它具有明確的目標性、時限性、一次性、成本約束、管理變更等.
    專案管理是一系列伴隨專案進行而採取的、以確保專案能達到期望結果為目標的管理行為.按照美國專案管理協會(PMI)定義,專案管理知識體系(Project Management Body of Knowledge,PMBOK)包括9大知識領域和5大標準化過程.

    (1).9大知識領域:範圍管理、時間管理、成本管理、質量管理、人力資源管理、溝通管理、採購管理、風險管理和綜合管理,如下所示.
    其中核心知識領域是:
    a.專案範圍管理(Scope):確定和管理專案為成功完成專案所需全部工作;
    b.專案時間管理(Time):專案所需時間估算,確定醒目及時完工;
    c.專案成本管理(Cost):專案預算的準備和管理;
    d.專案質量管理(Quality):確保專案滿足各方需求.

    (2).PMBOK的5個標準化過程
    專案9大知識領域和5大標準化過程相互關聯的.同時在軟體專案管理中通常會遇到需求不明確、變化較多、工作量估低、團隊水平不足、計劃不充分等問題,通過一些管理原則可以完善,如90/90表示專案完成90%後還有90%要做、80/20原則等.


二. 專案綜合管理

    專案綜合管理指在整個生命週期中,協調所有其他專案管理知識領域,確保專案所有分項計劃在正確的時間組合在一起,以成功地完成專案.它是整個專案成功的關鍵.它具有綜合性、全域性性、系統性.
    由上圖可見,專案綜合管理與其他八個知識領域息息相關.同時專案綜合管理內容分為專案綜合管理計劃制定、專案綜合管理計劃執行和綜合變更控制.下表表示9大知識領域與5個標準過程每階段實施內容.
   在總綜合管理中計劃的編制過程如下圖所示:

三. 專案範圍管理

    專案範圍管理指對專案從立項到結束的整個生命週期中有關專案的[工作範圍]進行管理和控制的過程和活動.專案範圍管理是專案管理知識領域中最關鍵、重要的內容,是專案管理的綱領性檔案,確定專案其他因素的前提.
    專案範圍管理包含內容包括範圍規劃、範圍定義、範圍核實和範圍控制.
    範圍是指把專案的主要可交付成果劃分為較小的、更易管理的單位,即形成工作分解結構(WBS).
    工作分解結構(WBS,Work Breakdown Structure)是專案管理中最有價值的工具,制定專案進度計劃、成本計劃等多個計劃的基礎,按照工作性質和內在結構劃分把專案可交付成果分解為子專案,子專案再分解為更小的、更易管理的工作單元或工作包.




四. 專案進度管理(時間)

    專案進度管理(時間)為確保專案按期完成所需要的管理過程,目的是在給定條件下,以最短的時間、最低的成本、最小的風險、按質按量完成專案的規定任務.
    合理的並行性活動安排是專案按期完成的重要保證,進度問題是產生專案衝突的主要原因.專案進度管理內容如下:
   
專案進度管理的重點是專案歷時估計演算法:

    1.關鍵路徑演算法(CPM Critical Path Method):包括窮舉法求CP、正逆推法求CP
根據活動網路圖中活動間的邏輯關係計算和確定每個活動的最早和最遲開始、完成時間,計算浮動時間,計算網路圖中最長路徑(關鍵路徑),確定專案完成時間.基本概念如下:
    最早開始時間(Early Start)
    最晚開始時間(Late Start)
    最早完成時間(Early Finish)
    最晚完成時間(Late Finish)
    自由浮動時間(Free Float):在不影響後置活動最早開始時間情況下,本活動可以延遲的時間.
    總浮動時間(Total Float):在不影響專案最早完成時間情況下,本活動可以延遲的時間.TF=LS-ES=LF-EF.
關鍵路徑(Critical Path):網路圖中最長的路徑(窮舉法),由時間浮動為0的活動組成的路徑(正逆推導法,關鍵活動),CP決定專案完成時間,CP可能不止一條.

    考試中就遇到該題,需要注意的是在使用窮舉法判斷關鍵路徑是路徑長度最大的為CP.
    如下圖所示已知專案PDM網路圖,專案最早開工日期是第0天,活動估計工期已給出,計算各值及關鍵路徑.

   1).首先確定採用正推過程從左到右計算ES與EF(上層資料),當一個後置活動出現多個前置活動時,選擇最大的EF作為後置活動的ES,如Task C選擇Task B和Task E中EF=12的最大值.(多>1)
    2).然後採用逆推過程,建立專案最後一個活動的LF,從右到左計算每個活動的LF和LS(LS=LF-活動估計工期),當一個前置活動有多個後置活動時,選擇其中最小的LS作為前置活動的LF.如Task E選擇Task C和Task F中較小LS值=12作為其LF.(1<多)
    3).最後關鍵路徑CP為浮動時間為0路徑,TF(F)為Task F中LF-EF=24-20(或LS-ES),FF(F)為Task G的ES減去Task E的EF值.

2.時間壓縮法:趕工(Crash)
在不改變專案範圍的前提下縮短專案工期的數學分析方法,主要措施是趕工,一般選擇壓縮關鍵路徑上的關鍵活動的工期.
    壓縮工程中進度與成本並不是總成正比關係,同時單位壓縮成本如下所示,如活動A正常進度7周,成本5萬,壓縮5周成本6.2萬,則單位壓縮成本=(6.2-5)/(7-5)=6000元/周.


    例題如下將工期壓縮到17周,16周,15周時的應該壓縮的活動和最後成本?
    首先計算A-D的單位壓縮成本,然後判斷可壓縮工期,A+B活動16周,C+D活動18周可壓縮,選擇壓縮成本低的C進行壓縮.如下圖壓縮至17周:
   同理壓縮至16、15周顯示結果如下:(15周選擇可壓縮不太明白)

3.計劃評審技術(PERT,彼特圖)
    以網路圖的形式制定計劃,求得計劃最優方案.適合估算事先不能完全肯定時,適用於不可預知因素較多、從未做過的新專案和複雜專案.PERT對各個專案活動完成時間有三種不同的情況估計:
 樂觀時間(Optimistic time):任何事情順利完成,完成工作時間
    最可能時間(Most likely time):正常情況完成工作時間
    悲觀時間(Pessimistic time):最不利情況完成工作時間

   其中活動期望時間Te=(O+4M+P)/6 標準差δ=(P-O)/6 方差=標準差平方


    進度管理工具用於制定進度計劃,其工具包括
    1.網路圖
    箭線法(ADM)使用箭頭表示活動,結點表示事件;前導圖法(PDM)使用結點表示活動,箭頭表示活動間關係.

    2.甘特圖
    用以表示各活動開始時間和結束時間,明確活動工期與進度計劃.

    3.里程碑圖

五. 專案成本管理

    專案成本是指為實現專案目標所耗用資源的成本費用綜合,專案成本管理指在批准的預算條件下確保專案保質按期完成.成本管理內容主要包括:資源計劃編制、成本估計、成本預算和成本控制.
    成本估算方法有:
    (1).由上而下的估計法(類比估演算法):由於專案初期或資訊不足時採用該方法,將類似專案的實際成本歷史資料作為估算依據.
    (2).由下而上的估計法(工料清單發):存在管理博弈過程,先估計各個獨立的活動費用,下層可能過分誇大自己估算,故上層管理者一般不會相信估算的結果.
    (3).引數模型法:利用程式碼行技術和功能點技術估算.

    專案成本預算是進行專案成本控制的基礎,專案成功的關鍵因素,它是在成本估算基礎上進行的.中心任務是估計專案各活動的資源需要量,將成本預算分配到專案各活動上.
    專案成本控制需要與範圍管理、進度控制、質量控制相協調,不能脫離技術進度單獨存在,要在成本、技術、費用三者間綜合平衡.主要採用掙值法對專案進度和費用進行綜合控制.它相關的3個基本引數和4個評價指標如下:
    BCWS(預算 PV):計劃工作量的預算費用
    ACWP(成本 AC):已完成工作量的實際費用
    BCWP(收益 EV):已完成工作量的預算成本
    CV(費用偏差)=BCWP-ACWP=收益-成本
       
正值預算節餘,工作效率高;負值預算超支,執行效果不佳
SV(進度偏差)=BCWP-BCWS=收益-預算
正值進度提前,負值進度延誤,0實際進度與計劃進度一致
    CPI(費用執行指標)=BCWP/ACWP=收益/成本
       
CPI>1節餘,CPI<1超支,CPI=1成本與預算相符
    SPI(進度執行指標)=BCWP/BCWS=收益/預算
       
SPI>1提前,SPI<1延誤,SPI=1進度相同

    例:某專案由四項活動組成,各項活動的時間和成本如下表所示,總工時4周,總成本1萬元,以下是第3週末的狀態.求CV、SV、CPI、SPI,該指標說明了什麼?

   解: BCWS=2000+2000+3000=7000元
        ACWP=2000+2500+2200=6700元
        BCWP=2000+2000+1500=5500元
        CV=BCWP-ACWP=5500-6700=-1200元
        SV=BCWP-BCWS=5500-7000=-1500元
        CPI=BCWP/ACWP=5500/6700=0.82
        SPI=BCWP/BCWS=5500/7000=0.79
        SV<0,CV<0說明工作效率低,進度慢,投入延後,建議增加骨幹和高效人員.
    下圖是三種掙值引數綜合分析中形態1的方法:


六. 專案質量管理

    什麼樣的專案質量是好的呢?滿足以下要求:滿足規範要求、達到專案目的、滿足使用者要求、讓客戶滿意.專案質量包括產品質量、過程質量和體系質量.其中軟體專案質量管理的核心是構建質量體系(Quality System),這裡主要講述CMM軟體質量管理模型.
    CMM(Capability Maturity Model for Software,能力成熟度模型):是指一個軟體過程被明確定義、管理、度量和控制的有效程度,是一種幫助軟體開發組織改進軟體過程的策略.它是卡內基·梅隆大學軟體工程研究所提出.
    CMM包括5個成熟級別,每一級都由若干個關鍵過程域(KPA)組成:
          I級 初始級
         II級 可重複級 
        III級 已確定級
         IV級 已管理級
          V級 優化級

其中CMM關鍵過程域如下所示:初始級是無序狀態.

   另一種軟體質量管理模型,主要包括制定質量計劃、技術評審、軟體測試、過程檢查及軟體改進.軟體測試包括黑盒測試、白盒測試;程式碼測試(單元測試)、整合測試、系統測試和驗收測試.
    最後需要知道——質量保證(Sofeware Quality Assurance,SQA):質量管理中致力於對確保產品達到質量要求而提供信任的工作,質量保證!=保證質量,保證質量是質量控制的任務,質量保證是以保證質量為目標進一步提供信任,質量保證強調實施過程的質量.    

七. 專案風險管理

    專案風險是指由於專案所處環境和條件的不確定性,專案最終結果與專案干係人的期望產生背離,並給專案干係人帶來損失的可能性.專案風險主要由專案的不確定性造成.風險管理主要過程如下圖所示:
    軟體專案風險主要體現在四個方面:需求、技術、成本和進度.該章重點是講述決策樹法去評估風險.
    決策樹法指將損益期望值中各個方案的情況用一個概率樹來表示,模擬樹木生長過程,從出發點開始不斷分支來表示所分析問題的各種發展可能性,並以各分支的損益期望值中最大作為選擇依據.如下圖所示:


   下面是個決策樹法的例題.

   建立決策樹如下圖所示:
        狀態節點1=180萬元*60%+(-100)萬元*40%=68萬元
        狀態節點2=200萬元*60%+(-140)萬元*40%=64萬元
        決策節點0=max{68-55,64-60}=13萬元,所以投資甲產品.

    專案風險應對方法包括:迴避風險、轉移風險、減輕風險和接受風險.
    本文總結至此,還有溝通管理、採購管理和人力資源管理非重點,不在敘述,希望對大家有所幫助吧!