探索軟件項(xiàng)目管理
時(shí)間:2022-04-18 11:25:00
導(dǎo)語:探索軟件項(xiàng)目管理一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
開發(fā)軟件項(xiàng)目需要一定的人力、財(cái)力、時(shí)間,也需要一定的技術(shù)和工具。為了使項(xiàng)目能夠按照預(yù)定成本、進(jìn)度、質(zhì)量順利完成,需要對(duì)成本、人員、進(jìn)度、質(zhì)量等多方面進(jìn)行分析與管理。軟件是邏輯產(chǎn)品而不是物理產(chǎn)品,在開發(fā)、生產(chǎn)、維護(hù)和使用等方面與硬件相比均存在明顯差異,它更依賴于開發(fā)人員的業(yè)務(wù)素質(zhì)、智力及人員的組織、合作和管理。
一、軟件的概念
系統(tǒng)軟件是負(fù)責(zé)管理計(jì)算機(jī)系統(tǒng)中各種獨(dú)立的硬件,使得它們可以協(xié)調(diào)工作。系統(tǒng)軟件使得計(jì)算機(jī)使用者和其他軟件將計(jì)算機(jī)當(dāng)作一個(gè)整體而不需要顧及到底層每個(gè)硬件是如何工作的。但是系統(tǒng)軟件并不針對(duì)某一特定應(yīng)用領(lǐng)域。而應(yīng)用軟件則相反,不同的應(yīng)用軟件根據(jù)用戶和所服務(wù)的領(lǐng)域提供不同的功能。應(yīng)用軟件是為了某種特定的用途而被開發(fā)的軟件。它可以是一個(gè)特定的程序,比如一個(gè)圖像瀏覽器。也可以是一組功能聯(lián)系緊密,可以互相協(xié)作的程序的集合,比如微軟的Office軟件。也可以是一個(gè)由眾多獨(dú)立程序組成的龐大的軟件系統(tǒng),比如數(shù)據(jù)庫管理系統(tǒng)。
二、軟件的度量
任何工程項(xiàng)目都必須采用定量的描述手段,軟件工程項(xiàng)日也例外。例如,不能定量地描述軟件工程項(xiàng)目的規(guī)模就無法估算軟件項(xiàng)目的成本以及所需的人力和時(shí)間,而這個(gè)問題是軟件項(xiàng)目管理人員和客戶都非常關(guān)心的。軟件工程的定量描述離不開度量、測(cè)量、估算等3個(gè)基本方面。度量具有數(shù)字特征,軟件工程范圍內(nèi)的度量是軟件產(chǎn)品、軟件開發(fā)過程或資源簡單屬性的定量描述。如程序規(guī)模、操作符個(gè)數(shù)、程序中錯(cuò)誤的個(gè)數(shù)等。測(cè)量和估算是簡單屬性度量的函數(shù),如軟件成本、軟件質(zhì)量等。測(cè)量用于事后或?qū)崟r(shí)狀態(tài)。他涉及測(cè)量的方法、過程、工具和數(shù)值結(jié)果。估算是對(duì)軟件產(chǎn)品、過程、資源進(jìn)行預(yù)測(cè),可以采用經(jīng)驗(yàn)公式,也可以參考?xì)v史資料。估算一般用于簽訂合同、立項(xiàng)、制訂工作計(jì)劃等。這里的產(chǎn)品指軟件開發(fā)過程生成的文檔和程序,例如規(guī)格說明、設(shè)計(jì)文檔、源代碼及測(cè)試策略文檔等。
過程指與軟件有關(guān)的活動(dòng),如軟件開發(fā)計(jì)劃、開發(fā)活動(dòng)、管理活動(dòng)等。軟件開發(fā)資源指軟件開發(fā)過程中需要的各種支持,如人力、經(jīng)費(fèi)、硬件環(huán)境等。軟件工程的產(chǎn)品、過程、資源都具有外部屬性和內(nèi)部屬性。外部屬性體現(xiàn)了產(chǎn)品、過程、資源與環(huán)境的關(guān)系,如成本、效益、程序員的生產(chǎn)率以及軟件產(chǎn)品的可靠性、可用性、可維護(hù)性、可移植性等。軟件項(xiàng)目管理人員和顧客非常關(guān)心產(chǎn)品、過程和資源的外部屬性,因此外部屬性也可以說是面向管理者和用戶的屬性。軟件的內(nèi)部屬性指軟件產(chǎn)品、過程和資源本身的屬性,如軟件產(chǎn)品的結(jié)構(gòu)、模塊化程度、復(fù)雜性、程序長度等。軟件外部屬性在軟件開發(fā)過程中很難測(cè)量和控制,但它是由軟件的內(nèi)部屬性決定的。
因此,人們不得不研究軟件的內(nèi)部屬性及與外部屬性之間的關(guān)系,并試圖通過軟件內(nèi)部屬性度量解決軟件某些外部屬性的度量問題,進(jìn)而逐步建立軟件工程度量系統(tǒng)。該系統(tǒng)的軟件度量分為兩類,第一類包括面向規(guī)模的度量、面向功能的度量和面向人的度量,第二類包括生產(chǎn)率度量、質(zhì)量度量和技術(shù)度量。軟件測(cè)量又分為直接測(cè)量和間接測(cè)量兩種,不依賴于其他屬性的簡單屬性可以直接測(cè)量,如程序代碼行數(shù)、操作符的個(gè)數(shù)。設(shè)計(jì)一個(gè)或若干個(gè)其他屬性的軟件要數(shù)、準(zhǔn)則或?qū)傩裕枰捎瞄g接測(cè)量,如軟件復(fù)雜性、模塊性。間接測(cè)量必須建立一定的測(cè)量方法或模型。在基于計(jì)算機(jī)的系統(tǒng)中,軟件開發(fā)成本占總成本的比例很大。在軟件項(xiàng)目立項(xiàng)和軟件項(xiàng)目管理工作中,客戶和項(xiàng)目管理人員都非常重視軟件項(xiàng)目的成本估算。然而,由于軟件是邏輯產(chǎn)品,成本估算涉及人、技術(shù)、環(huán)境、政策等多種因素,因此,在項(xiàng)目完成之前,很難精確的估算出項(xiàng)目的開銷。為了實(shí)現(xiàn)軟件項(xiàng)目估算,實(shí)踐中開發(fā)了大量的軟件項(xiàng)目自動(dòng)估算工具,用以支持軟件工作量或成本估算。
三、軟件開發(fā)過程管理
大型軟件項(xiàng)目需要很多人的通力合作,花費(fèi)一年或數(shù)年的時(shí)間才能完成。為了提高工作效率,保證工程質(zhì)量,軟件項(xiàng)目開發(fā)人員的組織、分工與管理是一項(xiàng)十分重要和復(fù)雜的工作,它直接影響到軟件項(xiàng)自的成功與失敗。首先,由于軟件開發(fā)人員的個(gè)人素質(zhì)與能力差異很大,因此對(duì)軟件開發(fā)人員的選擇、分工十分關(guān)鍵。其次,因?yàn)檐浖a(chǎn)品不易理解、不易維護(hù),因此軟件人員的組織方式十分關(guān)鍵。一個(gè)重要的原則是,軟件開發(fā)人員的組織結(jié)構(gòu)與軟件項(xiàng)目開發(fā)模式和軟件產(chǎn)品的結(jié)構(gòu)相對(duì)應(yīng),這樣可以達(dá)到軟件開發(fā)方法、工具與人的統(tǒng)一從而降低管理系統(tǒng)的復(fù)雜性,有利于軟件開發(fā)過程的管理與質(zhì)量控制,按樹形結(jié)構(gòu)組織軟件開發(fā)人員是一個(gè)比較成功的經(jīng)驗(yàn)。樹的根是軟件項(xiàng)目經(jīng)理和項(xiàng)目總的技術(shù)負(fù)責(zé)人。理想的情況是,項(xiàng)目經(jīng)理和技術(shù)負(fù)責(zé)人由一個(gè)人或一個(gè)小組擔(dān)任。樹的節(jié)點(diǎn)是程序員小組,為了減少系統(tǒng)的復(fù)雜性,便于項(xiàng)目管理,樹的節(jié)點(diǎn)每層不要超過7個(gè),在此基礎(chǔ)上盡量降低樹的層數(shù)。