一.引言
隨著軟體需求的日益增長和系統功能的日益增強,過去乙個人開發軟體的歷史已不復存在,現在軟體的開發一般需要乙個或多個小組合作才能完成。因此軟體的專案管理也越來越被個人和企業所重視。人們逐漸意識到,雖然目前好的專案管理還不能保證軟體開發的成功,但是不適當的軟體管理卻一定會導致軟體開發的失敗——軟體交付使用的日期將大大拖後,成本可能比預計的高幾倍,而且最終開發出來的軟體很難維護。
從概念上講,管理是通過計畫、組織、控制等一系列活動,合理地配置和使用各種資源,以達到既定目標的過程。然而軟體開發不同於其他產品的製造,軟體的整個過程都是設計過程(沒有製造過程);另外,軟體開發不需要使用大量的物質資源,而主要是人力資源;並且,軟體開發的產品只是程式**和技術檔案,並沒有其他的物質結果。基於上述特點,軟體專案管理與其他專案管理相比,有很大的獨特性。
對軟體專案而言,最關鍵的因素是人。軟體工程師可以按照不同的小組結構來組織,從傳統的控制層次到「開放式范型」的小組。專案的管理者必須合理的組織專案組,使專案組有較高的生產率。「最佳的」小組結構取決於管理風格、小組裡的人員數目和他們的技術水平,以及所承擔的專案的難易程度。
所謂軟體專案管理就是為了使軟體專案能夠按照預定的成本、進度、質量順利完成,而對人員(people)、產品(product)、過程(process)和專案(project)進行分析和管理的活動。軟體專案管理先於任何技術活動之前開始,並且貫穿於軟體的整個生命週期。按照roger s. pres**an的劃分,專案管理活動包含測度和度量、估算、風險分析、進度安排和跟蹤、質量保證、配置管理等環節。下面我們對一些主要方面進行**。
二.軟體專案的計畫
軟體專案計畫是乙個軟體專案進入系統實施的啟動階段,主要進行的工作包括:確定詳細的專案實施範圍、定義遞交的工作成果、評估實施過程中主要的風險、制定專案實施的時間計畫、成本和預算計畫、人力資源計畫等。
軟體專案管理過程從專案計畫活動開始,而第一項計畫活動就是估算:需要多長時間、需要多少工作量、以及需要多少人員。此外,我們還必須估算所需要的資源(硬體及軟體)和可能涉及到的風險。
為了估算軟體專案的工作量和完成期限,首先需要**軟體規模。度量軟體規模的常用方法有直接的方法——loc(**行),間接的方法——fp(功能點)。這兩種方法各有優缺點,應該根據軟體專案的特點擊擇適用的軟體規模度量方法。
根據專案的規模可以估算出完成專案所需的工作量,我們可以使用一種或多種技術進行估算,這些技術主要分為兩大類:分解和經驗建模。分解技術需要劃分出主要的軟體功能,接著估算實現每乙個功能所需的程式規模或人月數。經驗技術的使用是根據經驗匯出的公式來**工作量和時間。可以使用自動工具來實現某一特定的經驗模型。
精確的專案估算一般至少會用到上述技術中的兩種。通過比較和協調使用不同技術匯出的估算值,我們可能得到更精確的估算。軟體專案估算永遠不會是一門精確的科學,但將良好的歷史資料與系統化的技術結合起來能夠提高估算的精確度。
當對軟體專案給予較高期望時,一般都會進行風險分析。在標識、分析和管理風險上花費的時間和人力可以從多個方面得到回報:更加平穩的專案進展過程;更高的跟蹤和控制專案的能力;由於在問題發生之前已經做了周密計畫而產生的信心。
對於乙個專案管理者,他的目標是定義所有的專案任務,識別出關鍵任務,跟蹤關鍵任務的進展情況,以保證能夠及時發現拖延進度的情況。為此,專案管理者必須制定乙個足夠詳細的進度表,以便監督專案進度並控制整個專案。
常用的制定進度計畫的工具主要有gantt圖和工程網路兩種。gantt圖具有悠久歷史、直觀簡明、容易學習、容易繪製等優點,但是,它不能明顯地表示各項任務彼此間的依賴關係,也不能明顯地表示關鍵路徑和關鍵任務,進度計畫中的關鍵部分不明確。因此,在管理大型軟體專案時,僅用gantt圖是不夠的,不僅難於做出既節省資源又保證進度的計畫,而且還容易發生差錯。
工程網路不僅能描繪任務分解情況及每項作業的開始時間和結束時間,而且還能清楚地表示各個作業彼此間的依賴關係。從工程網路圖中容易識別出關鍵路徑和關鍵任務。因此,工程網路圖是制定進度計畫的強有力的工具。通常,聯合使用gantt圖和工程網路這兩種工具來制定和管理進度計畫,使它們互相補充、取長補短。
進度安排是軟體專案計畫的首要任務,而專案計畫則是軟體專案管理的首要組成部分。與估算方法和風險分析相結合,進度安排將為專案管理者建立起一張計畫圖。
三.軟體專案的控制
對於軟體開發專案而言,控制是十分重要的管理活動。下面介紹軟體工程控制活動中的質量保證和配置管理。其實上面所提到的風險分析也可以算是軟體工程控制活動的一類。而進度跟蹤則起到連線軟體專案計畫和控制的作用。
軟體質量保證(sqa,software quality insurance)是在軟體過程中的每一步都進行的「保護性活動」。sqa主要有基於非執行的測試(也稱為評審)、基於執行的測試(即通常所說的測試)和程式正確性證明。
軟體評審是最為重要的sqa活動之一。它的作用是,在發現及改正錯誤的成本相對較小時就及時發現併排除錯誤。審查和走查是進行正式技術評審的兩類具體方法。審查過程不僅步數比走審多,而且每個步驟都是正規的。由於在開發大型軟體過程中所犯的錯誤絕大數是規格說明錯誤或設計錯誤,而正式的技術評審發現這兩類錯誤的有效性高達75%,因此是非常有效的軟體質量保證方法。
軟體配置管理(scm,software configuration management)是應用於整個軟體過程中的保護性活動,它是在軟體整個生命週期內管理變化的一組活動。
軟體配置由一組相互關聯的物件組成,這些物件也稱為軟體配置項,它們是作為某些軟體工程活動的結果而產生的。除了文件、程式和資料這些軟體配置項之外,用於開發軟體的開發環境也可置於配置控制之下。
一旦乙個配置物件已被開發出來並且通過了評審,它就變成了基線。對基線物件的修改導致建立該物件的版本。版本控制是用於管理這些物件而使用的一組規程和工具。
變更控制是一種規程活動,它能夠在對配置物件進行修改時保證質量和一致性。配置審計是一項軟體質量保證活動,它有助於確保在進行修改時仍然保持質量。狀態報告向需要知道關於變化的資訊的人,提供有關每項變化的資訊。
四.國際標準
1. ieee1058.1軟體專案管理計畫標準
在ieee標準1058.1中給出了軟體專案管理計畫的框架,它實質上是乙個通用的結構,不論承擔何種軟體專案,在制定專案管理計畫時都可以參考它。
2. iso9000質量標準
iso9000是一族標準,其中iso9000-3是使iso9001標準適用於軟體開發、**維護的指南,它為軟體開發過程各階段提供保證質量的質量體系,由質量體系框架、質量體系的生命週期活動和質量體系的支援活動等三部分構成。文件在iso9000-3標準中占有十分重要的地位。
3. iso/iec 12207軟體生命週期過程標準
iso/iec 12207軟體生命週期過程標準,是指導軟體過程實施的乙個標準,它從多個角度說明了軟體生命週期各個過程中的活動,對規範軟體開發過程,協調各類人員之間的關係,都具有指導作用。
4. iso/iec tr 15504軟體過程評估標準
iso/iec tr 15504軟體過程評估標準,是從過程評估角度對軟體過程進行規範的標準。該標準具有兩維的結構,其中一維是過程維,另一維是能力維。
5. 能力成熟度模型
能力成熟度模型(cmm,capability maturity model for software),是改進軟體過程的一種策略。它的基本思想是,因為問題是管理軟體過程的方法不恰當引起的,所以運用新軟體技術並不會自動提高軟體生產率和軟體質量,應當下大力氣改進對軟體過程的管理。對軟體過程的改進不可能一蹴而就,因此,cmm以增量方式逐步引入變化,它明確的定義了5個不同的成熟度等級,乙個軟體開發組織可用一系列小的改良性步驟邁入更高的成熟度等級。
總之,軟體專案管理涵蓋了技術和管理等多方面的知識,對軟體專案開發的成敗有著非常重要的意義,它是乙個軟體專案成功與否的關鍵因素之一。在軟體開發過程中,要樹立既要注重技術,又要注重管理的意識,努力提高軟體專案的水平。
專案管理 軟體文件分類簡介
如今,軟體開發越來越複雜,軟體功能也越來越豐富。而幾乎所有成熟的商業軟體,都是靠乙個開發團隊齊心協力的血汗結晶。羅馬不是一天建成的 當我們震撼於microsoft windows的驚世巨著的同時,也道聽途說了微軟公司軟體工程是如何的完善規範。的確,集數百名員工幾年的共同努力之大成,軟體專案管理的成敗...
專案管理簡介
在專案開發中,如果專案經理管理得當,會按時甚至提前完成開發任務,否則,則有可能延誤開發任務。我認為在專案開發中應該注意一下幾點 1 規範 專案組在開始時候,應該制定一套程式設計規範,所有成員必須按照程式設計規範進行編碼。2 使用成熟的技術 使用新技術可能會提高開發進度,但是新技術會有較高的風險,專案...
軟體專案估算簡介
軟體專案預估。軟體專案預估涉及人,技術,環境等多種因素,因此很難在專案完成前精準的估算出開發軟體所需的成本,持續時間和工作量。因此需要一些方法和技術來支援專案的估算,常用的估算方法。有下面三種 1.基於已經完成的類似專案進行估算,這是一種常用的,也是最有效的估算方法。2.基於分解技術進行估算。分解技...