標籤:主要對象 bsp lib 完全 業務需求 個數 軟體開發 定義 審核
軟體工程之專案管理
軟體項目開發是一項系統而複雜的工作,它需要一個團隊互相配合、分工協作;專案管理是在一定的約束條件下,以高效率地實現項目的目標為目的,按照項目內在的邏輯規律進行有效計劃、組織、協調、控制的系統管理活動。軟體專案管理是軟體工程和專案管理的交叉學科,是專案管理的原理和方法,在軟體工程領域的應用。
1.過程式控制制
品質管理是指一個組織在全員參與的基礎上,為滿足所受益者的品質要求而形成的一系列品質方針、目標和體系。軟體品質管理是對軟體的開發和生產過程的管理,包括軟體項目策劃、對軟體過程的跟蹤監控、軟體組態管理以及軟體品質保證等,軟體品質管理的一個側重點就是軟體品質控制,而鑒於過程式控制制對軟體品質管理的影響,對軟體品質的控制就應該注重軟體開發的過程式控制制,並以此來進行軟體品質管理。
1.1品質保證
國際標準組織ISO9000對品質的定義就是:品質是產品或服務用於滿足人們潛在或明示的需求的所有特徵和效能的總和。軟體品質管理是對軟體的開發和生產過程的管理。品質保證是為了提供信用,證明項目將會達到有關品質標準,而品質體系中開展的有計劃、有組織的工作活動。它貫穿子整個項目的始終。
品質保證通常由品質保證部門或有類似名稱的組織單位提供。品質保證過程(SQA)是指確定客觀地保證軟體產品和過程符合規定的要求以及建立的計劃所需的活動。它由方針、標準、過程和活動組成,包括:
1)品質保證過程建立:
包括建立品質目標,包括驗證、確認、測試、審計和品質測量。
2)活動:
a.執行品質保證活動的品質標準、方法、步驟和工具。
b.合約規定的評審和協調的步驟。
c.標識、收集、編寫文檔、維護和處置品質記錄的步驟。
d.執行品質保證活動的資源、時間表和責任。產品保證。
e.保證把合約所要求的全部計劃寫成文檔並執行。
f.保證軟體和有關的文檔符合合約,遵守計劃。
g.保證交付的產品和服務完全滿足合約要求。
3)過程保證:
a.保證為此項目採用的軟體生存期過程符合合約,遵守計劃。
b.保證內部軟體工程實踐、開發環境、測試環境是恰當的,並符合合約。
c.保證產品主合約的要求已交給子合約執行人,後者的產品和服務符合主。
4)合約的要求:
a.保證需方和其他各方按照合約、談判和計劃得到了所要求的支援與協作。
b.保證依照己建立的標準和步驟圓滿地完成產品和過程調試。
c.保證培訓提供了滿足項目需求所需要的技術和知識。
5)品質改進:
a.保證項目有關人員瞭解品質保證過程的需求,執行並維護這些需求。
b.收集和分析曆史資料、技術資料和評價資料。這些分析作為反饋以實現改進。
c.收集、維護和使用品質成本資料。這些資料應當說明預定成本及改正產。
d.品或服務中的缺點或不符合之處的成本。
e.品質保證工作是以品質管理計劃作為執行的標準,開展相應的組態管理、文件管理及品質評審和測試工作。
1.2組態管理
為了控制系統開發過程的往複,不至於產生重大過失和往複的泛濫,完成軟體開發的組態管理。組態管理的目的在於控制軟體開發過程中的“變化”,這種變化可能是外部引起的,如需求的變化。也可能是來自內部的變化,如早期設計的某個組件不夠完備,,需要修改等。為了控制這些變化,把變化引起的波動儘可能的控制在有限的範圍內。在許多軟體開發項目中,專案範圍管理涉及三個方面:業務需求、技術結構、投產服務。編寫哪些程式模組,實現哪些功能,部署到哪些地點,這其實都是專案範圍管理所要關注的內容,在組態管理中對應了產品的物理屬性和功能屬性以及服務的屬性,都可以通過組態管理來識別、記錄和跟蹤。只有做好軟體組態管理,才能真正把項目的範圍管理做實。
組態管理中要記錄、控制、報告各種屬性(配置項)的變化狀態,這就是組態管理中的版本管理和變更管理,有變更才有不同的版本,版本又成為變更控制的主要對象,這兩者是緊密關聯的。在專案範圍管理中,需要識別和控制項目的交付成果,要描述交付物應有的各種特性。這些交付物及其特性,就是組態管理中的配置項。從專案管理的角度,WBS只需要分解到可管理(Manageable)的程度,而組態管理則要求分解到最終可操作的程度,管理的粒度更為精細。因此,良好的組態管理機制,是專案範圍管理得到最終落實的保證。在組態管理中,每個配置項的每個狀態都可以稱為一個版本,配置項的演變過程就可以體現為一棵版本樹。而我們平時經常說的版本,實際是指軟體產品的版本,不是具體配置項的版本。一個軟體產品版本是由眾多配置項組成的,每個配置項最多隻能選取它的一個版本組成一個特定的產品版本。因此,在我們平時談到“版本”時,需要明確是配置項的版本還是軟體產品的版本,否則容易在溝通中帶來混淆。既然版本管理是組態管理中的一項內容,那麼對於在軟體產品版本管理中遇到的各種實際問題,就需要放在組態管理這個大背景中,基於組態管理的理論、方法和工具來考慮,才能逐步理清。
2.組織模式
軟體項目組的組織圖取決於整個軟體開發組織的管理風格、問題的難易程度和人員的數量及技術水平。策劃常見的組織形式:
1).封閉式範型:按照傳統的權利層次來組織小組(類似CC小組)。這種小 組在開發與過去已經做過的產品類似的軟體時十分有效,但在這種封閉式範型下難以進行創新式的工作。
2).鬆散式範型:鬆散地組織小組,並依賴於小組成員個人的主動性。當需要創新或技術上的突破時,按照這種隨機式範型組織的小組很有優勢。但當需要“有次序的執行”才能完成工作時,這種小組組織範型就會陷入困境。
3).開放式範型:試圖以一種,既具有封閉式範型的控制性,又包含隨機式範型的創新性的方式來組織小組。工作的執行結合了大量的通訊和基於小組一致意見的決策。開放式範型小組結構特別適於解決複雜問題,但可能不象其他類型小組那麼效率高。
4).同步式範型:依賴於問題的自然劃分,組織小組成員各自解決問題的片斷,他們之間沒有什麼主動的通訊需要。
從曆史角度看,最早的軟體小組是控制集權式(CC)結構,原來稱為主程式員小組。這種結構由Harlan Mills首先提出,並由Baker[BAK72]描述出來。小組的核心是由以下人員組成的:一個進階工程師(“主程式員”),負責計劃、協調和複審小組的所有技術活動;技術人員(一般2到5個人),執行分析和開發活動;以及一個後備工程師,支援進階工程師的活動,並能在項目進行過程中,以最小的代價取代進階工程師的工作。
主程式員可以由一個或多個專家(如電訊專家,資料庫設計者)、技術服務人員(如技術文檔寫作者,行政人員)和軟體資料員來擔當。資料員為多個小組服務,執行以下功能:維護和控制所有軟體配置(如文檔,來源程式,資料和磁介質);協助收集和格式化軟體生產資料;分類和索引可複用軟體模組;輔助小組進行研究、評估及文檔準備。資料員的重要性不能過分強調。資料員充當了軟體配置的控制者、協調者及潛在的評估者。不考慮小組的組織,每一個專案管理者的目標都是協助建立一個有凝聚力的小組。
3.能力評估
軟體流程能力描述了一個開發組織開發軟體開發高品質軟體產品的能力。現行的國際標準主要有兩個:ISO9000.3和CMM。
ISO9000.3是ISO9000品質體系認證中關於電腦軟體品質管理和品質保證標準部分。它從管理職責、品質體系、合約評審、設計控制、檔案和資料控制、採購、顧客提供產品的控制、產品標識和可追溯性、過程式控制制、檢驗和實驗、檢驗/測量和實驗裝置的控制、檢驗和實驗狀態、不合格品的控制、糾正和預防措施、搬運/貯存/封裝/防護和交付、品質記錄的控制、內部品質審核、培訓、服務、統計系統等二十個方面對軟體品質進行了要求。
CMM(能力成熟度等級模型)是美國卡納基梅隆大學軟體工程研究所(CMU/SEI)於1987年提出的評估和指導軟體研發專案管理的一系列方法,用5個不斷進化的層次來描述軟體流程能力。現在CMM是2.0版本。
ISO9000和CMM的共同點是二者都強調了軟體產品的品質。所不同的是,ISO9000強調的是衡量的準則,但沒有告訴軟體開發人員如何達到好的目標,如何避免差錯。CMM則提供了一整套完善的軟體研發專案管理的方法。它可告訴軟體開發組織,如果要在原有的水平上提高一個等級,應該關注哪些問題,而這正是改進軟體過程的工作。
CMM描述了五個層級的軟體過程成熟度等級(初始級,可重複級,已定義級,已定量管理級,最佳化級),成熟度等級反映了軟體流程能力的大小。
初始級特點是軟體機構缺乏對軟體過程的有效管理,軟體過程是無序的,有時甚至是混亂的,對過程幾乎沒有定義,其軟體項目的成功來源於偶爾的個人英雄主義而非群體行為,因此它不是可重複的;可重複級的特點是軟體機構的專案計劃和跟蹤穩定,項目過程可控,項目的成功是可重複的;已定義級的特點在於軟體過程已被提升成標準化過程,從而更加具有穩定性、可重複性和可控性;已定量管理級的軟體機構中軟體過程和軟體產品都有定量的目標,並被定量地管理,因而其軟體流程能力是可預測的,其生產的軟體產品是高品質的;最佳化級的特點是過程的量化反饋和先進的新思想、新技術促進過程不斷改進,技術和過程的改進改進被作為常規的商務活動加以計劃和管理。
CMM是科學評價一個軟體企業開發能力的標準,但要達到較高的層級也非常困難,根據1995年美國所做的軟體產業成熟度等級的調查,在美國的軟體產業中,CMM成熟度等級為初始級的竟佔70%,為可重複級的佔15%,為定義級的所佔比例小於10%,為管理級的所佔比例小於5%,為最佳化級的所佔比例小於l%。而國內企業的水平就更加堪優,到目前為止,只有東軟一家達到最佳化級,少數幾家能夠達到可定義級。儘快改變這種局面,科學化、正常化、高效的進行軟體開發活動,從整體提高我國軟體行業的水平,是國內軟體企業的當務之急,也是專業人員應該為自己制定的目標。如果有一天也能指揮一個數千人的龐大開發隊伍,操作Windows這樣巨型規模的軟體項目,並生產出高品質的產品,才有理由宣稱自己的軟體專案管理能力達到了一個“自主自足”的水平。
[1]蘇曉旭. (2009). 軟體項目品質保證體系的研究與應用. (Doctoral dissertation, 北京郵電大學).
[2]房潔.淺談軟體品質管理[J].現代企業教育,2009(17)
[3]http://baike.sogou.com/v3878395.htm?fromTitle=%E8%BD%AF%E4%BB%B6%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86
軟體工程之專案管理