摘 要: 項(xiàng)目管理方法通常用于PC系統(tǒng)的大型軟件開(kāi)發(fā)" title="軟件開(kāi)發(fā)">軟件開(kāi)發(fā)中。本文以項(xiàng)目時(shí)間管理" title="時(shí)間管理">時(shí)間管理為例,把軟件項(xiàng)目管理方法引入嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng)的開(kāi)發(fā)之中。以嵌入式USB主機(jī)為例,建立工作分解結(jié)構(gòu),利用網(wǎng)絡(luò)圖" title="網(wǎng)絡(luò)圖">網(wǎng)絡(luò)圖技術(shù)分析項(xiàng)目的關(guān)鍵路徑,從而合理分配了嵌入式USB主機(jī)項(xiàng)目的設(shè)計(jì)開(kāi)發(fā)時(shí)間,控制進(jìn)度。
關(guān)鍵詞: 項(xiàng)目管理 嵌入式系統(tǒng) 網(wǎng)絡(luò)圖 工作分解結(jié)構(gòu) 關(guān)鍵路徑
傳統(tǒng)的嵌入式系統(tǒng)開(kāi)發(fā)往往被歸類于硬件開(kāi)發(fā),而采用匯編語(yǔ)言控制硬件CPU的方法被嚴(yán)格區(qū)分于面向過(guò)程、面向?qū)ο蟮腜C平臺(tái)軟件的開(kāi)發(fā)。但是隨著嵌入式處理器和控制器、嵌入式實(shí)時(shí)操作系統(tǒng)等的發(fā)展,嵌入式系統(tǒng)的軟件開(kāi)發(fā)工作已越來(lái)越多的采用高級(jí)語(yǔ)言來(lái)進(jìn)行,匯編語(yǔ)言則只應(yīng)用在部分需要高效率的模塊中并且嵌入在高級(jí)語(yǔ)言中。面向嵌入式CPU的軟件編譯器的特性也越來(lái)越接近于純PC的軟件編譯環(huán)境。
在建立了硬件開(kāi)發(fā)平臺(tái)(包括嵌入式CPU選型、外圍電路設(shè)計(jì)、功能模塊設(shè)計(jì)、PCB電路板制作等)之后,嵌入式系統(tǒng)軟件的開(kāi)發(fā)工作對(duì)于整個(gè)系統(tǒng)的成功與否至關(guān)重要。其從算法設(shè)計(jì)、代碼實(shí)現(xiàn)、流程控制到代碼重用性、可靠性的提高等,都接近于PC平臺(tái)的軟件設(shè)計(jì)" title="軟件設(shè)計(jì)">軟件設(shè)計(jì)。二者都可以利用軟件工程的方法來(lái)優(yōu)化軟件質(zhì)量,通過(guò)軟件項(xiàng)目管理來(lái)控制整個(gè)開(kāi)發(fā)過(guò)程,使得每個(gè)項(xiàng)目能夠有序、高效、高質(zhì)量、按時(shí)的完成。二者的異同如圖1所示。在嵌入式系統(tǒng)的開(kāi)發(fā)中,同樣應(yīng)該利用軟件項(xiàng)目管理方法來(lái)規(guī)劃、控制整個(gè)項(xiàng)目的進(jìn)行。
1 在嵌入式系統(tǒng)項(xiàng)目開(kāi)發(fā)中進(jìn)行軟件項(xiàng)目時(shí)間管理的必要性
軟件項(xiàng)目管理就是以項(xiàng)目管理的體系、融合軟件開(kāi)發(fā)的具體特點(diǎn)、為適應(yīng)軟件開(kāi)發(fā)項(xiàng)目的需要,揭示最常見(jiàn)的、困擾軟件項(xiàng)目的主要問(wèn)題,提出較好的實(shí)踐方法和解決方案。軟件項(xiàng)目管理包括9大領(lǐng)域:項(xiàng)目整體、范圍、時(shí)間、成本、質(zhì)量、人力資源、溝通、風(fēng)險(xiǎn)和采購(gòu)管理。范圍、時(shí)間、成本和質(zhì)量管理是軟件項(xiàng)目管理的核心內(nèi)容。而范圍、時(shí)間、成本是項(xiàng)目管理的3要素,相互約束著執(zhí)行,成功的項(xiàng)目應(yīng)該是同時(shí)實(shí)現(xiàn)這3個(gè)方面的。
據(jù)美國(guó)國(guó)防部19世紀(jì)70年代立項(xiàng)研究軟件項(xiàng)目做不好的原因,結(jié)果發(fā)現(xiàn)70%的項(xiàng)目問(wèn)題是由于管理不善引起的,而不是因?yàn)榧夹g(shù)能力不夠;1995年,Standish Group研究表明,所有的開(kāi)發(fā)項(xiàng)目中有32%的項(xiàng)目在它們結(jié)束之前被中止,此外多于一半的軟件項(xiàng)目花費(fèi)的成本相當(dāng)于原來(lái)預(yù)算的2倍;只有42%的軟件項(xiàng)目完成時(shí)達(dá)到了預(yù)期的范圍和功能??梢?jiàn),時(shí)間對(duì)于一個(gè)項(xiàng)目的成功是至關(guān)重要的。
本文以嵌入式USB主機(jī)項(xiàng)目為例,把軟件項(xiàng)目時(shí)間管理的理念和方法引入其中。
2 嵌入式USB主機(jī)功能描述
有關(guān)嵌入式USB主機(jī)的內(nèi)容可參見(jiàn)參考文獻(xiàn)[5]。簡(jiǎn)而言之,嵌入式USB主機(jī)就是將PC上的USB主機(jī)功能嵌入式化。該系統(tǒng)由6大模塊組成:MC68HC912D60A模塊;SL811HS模塊;CAN總線模塊;鍵盤(pán)輸入模塊;LCD顯示模塊;SCI通信模塊。
3 創(chuàng)建工作分解結(jié)構(gòu)WBS
工作分解結(jié)構(gòu)WBS(Work Breakdown Structure)是將項(xiàng)目按照其內(nèi)在結(jié)構(gòu)或?qū)嵤┻^(guò)程的順序逐層分解而形成的結(jié)構(gòu)示意圖。WBS是實(shí)施項(xiàng)目、創(chuàng)造最終產(chǎn)品或服務(wù)所必須進(jìn)行的全部活動(dòng)的一張清單,也是進(jìn)度計(jì)劃、人員分配和預(yù)算計(jì)劃的基礎(chǔ)。
根據(jù)分析,嵌入式USB主機(jī)項(xiàng)目的工作分解結(jié)構(gòu)WBS如圖2所示。
4 制定項(xiàng)目進(jìn)度計(jì)劃
關(guān)鍵路徑法CPM(Critical Path Method)和計(jì)劃評(píng)審技術(shù)PERT(Program Evaluation and Review Technique)在網(wǎng)絡(luò)圖的畫(huà)法上基本相同,基本原理是用網(wǎng)絡(luò)圖來(lái)表達(dá)項(xiàng)目中各項(xiàng)活動(dòng)的進(jìn)度及其之間的相互關(guān)系,并在此基礎(chǔ)上進(jìn)行網(wǎng)絡(luò)分析,計(jì)算網(wǎng)絡(luò)中各項(xiàng)時(shí)間參數(shù),確定關(guān)鍵活動(dòng)與關(guān)鍵路線,利用時(shí)差不斷地調(diào)整與優(yōu)化網(wǎng)絡(luò),以求得最短工期,又叫做網(wǎng)絡(luò)圖技術(shù)。本文采用網(wǎng)絡(luò)圖技術(shù),為嵌入式USB主機(jī)項(xiàng)目制定進(jìn)度計(jì)劃。
4.1 制定項(xiàng)目的活動(dòng)表
在嵌入式USB主機(jī)項(xiàng)目的工作分解結(jié)構(gòu)WBS的基礎(chǔ)上,經(jīng)過(guò)分析每一項(xiàng)任務(wù)的工作量和前后關(guān)系,可制定出如表1所示的項(xiàng)目活動(dòng)表。
4.2 繪制前導(dǎo)圖
以項(xiàng)目活動(dòng)表為基礎(chǔ),前導(dǎo)圖的繪制規(guī)則是:無(wú)先行活動(dòng)的活動(dòng)從開(kāi)始結(jié)點(diǎn)發(fā)出,有的活動(dòng)是并行的,有的活動(dòng)是有先后順序的,根據(jù)活動(dòng)表中的關(guān)系,畫(huà)出網(wǎng)絡(luò)圖。繪制的嵌入式USB主機(jī)項(xiàng)目的前導(dǎo)圖如圖3所示。其中無(wú)后繼活動(dòng)的活動(dòng)匯聚于結(jié)束結(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)的結(jié)構(gòu)為,其中A代表節(jié)點(diǎn)活動(dòng)編號(hào);B代表最遲結(jié)束時(shí)間;C代表活動(dòng)浮動(dòng)時(shí)間;D代表最早結(jié)束時(shí)間。
4.3 前向路徑計(jì)算活動(dòng)最早開(kāi)始時(shí)間TES和最早結(jié)束時(shí)間TEF
根據(jù)圖3所示的前導(dǎo)圖,求出每個(gè)項(xiàng)目活動(dòng)的最早開(kāi)始時(shí)間TES和最早結(jié)束時(shí)間TEF,結(jié)果如表2所示。計(jì)算順序是前向從節(jié)點(diǎn)1往后計(jì)算,直至計(jì)算到節(jié)點(diǎn)9。
每一項(xiàng)活動(dòng)的最早開(kāi)始時(shí)間,均需要按照前導(dǎo)圖的前后關(guān)系逐漸累加計(jì)算。需要說(shuō)明的是,活動(dòng)I是由F、G、H共3項(xiàng)活動(dòng)匯聚而成的,因此I的最早開(kāi)始時(shí)間TES等于這3個(gè)活動(dòng)的最早結(jié)束時(shí)間的最大值,即如表2所示,I的最早開(kāi)始時(shí)間
TES-I=max{18,13,10}=18
下一步,從表3中選取每一個(gè)節(jié)點(diǎn)的最早結(jié)束時(shí)間,填入前導(dǎo)圖中,如圖4所示。
需要特殊說(shuō)明的是節(jié)點(diǎn)9的最早開(kāi)始時(shí)間就是活動(dòng)J的最早結(jié)束時(shí)間,即21。
?
4.4 后向路徑計(jì)算活動(dòng)最遲開(kāi)始時(shí)間TLS和最遲結(jié)束時(shí)間TLF
這里,需要計(jì)算的是在不影響整個(gè)項(xiàng)目按期完成的前提下,本活動(dòng)必須開(kāi)始和完成的最遲時(shí)間。反向計(jì)算各活動(dòng)的最遲結(jié)束時(shí)間時(shí),要以結(jié)束結(jié)點(diǎn)的最遲結(jié)束時(shí)間等于最早開(kāi)始時(shí)間為準(zhǔn)。若一個(gè)結(jié)點(diǎn)有幾個(gè)活動(dòng)發(fā)出,則該結(jié)點(diǎn)(事件)的最遲開(kāi)始時(shí)間取各活動(dòng)最遲開(kāi)始時(shí)間的小者。計(jì)算結(jié)果如表3所示。計(jì)算順序是后向從節(jié)點(diǎn)9開(kāi)始往前算。
最后,將每一個(gè)節(jié)點(diǎn)的最遲結(jié)束時(shí)間填入前導(dǎo)圖,如圖5所示。
?
4.5 確定關(guān)鍵活動(dòng)及關(guān)鍵路徑
(1)確定關(guān)鍵節(jié)點(diǎn)
總浮動(dòng)時(shí)間是最遲開(kāi)始時(shí)間和最遲結(jié)束時(shí)間的差,首先將計(jì)算后的各活動(dòng)的總浮動(dòng)時(shí)間填入表3,并將節(jié)點(diǎn)總浮動(dòng)數(shù)填入前導(dǎo)圖,如圖6所示。
最早時(shí)間與最遲時(shí)間相等的點(diǎn),也就是總浮動(dòng)時(shí)間為0的節(jié)點(diǎn)是關(guān)鍵節(jié)點(diǎn)。因此,由圖6可知,嵌入式USB主機(jī)項(xiàng)目的所有節(jié)點(diǎn)1、2、3、4、5、6、7、8、9均為關(guān)鍵節(jié)點(diǎn)。這是本項(xiàng)目的特殊之處。
(2)確定關(guān)鍵路徑
由以上分析,以及表1可知,嵌入式USB主機(jī)項(xiàng)目的關(guān)鍵路徑是1-2-3-4-5-6-7-8-9,而相應(yīng)的關(guān)鍵活動(dòng)是A、B、C、D、E、F、I、J。
這條關(guān)鍵路徑在時(shí)間上沒(méi)有回旋余地,即每個(gè)關(guān)鍵活動(dòng)應(yīng)滿足最早開(kāi)始時(shí)間等于最遲開(kāi)始時(shí)間,而非關(guān)鍵活動(dòng)則有富裕時(shí)間。這使得人們?cè)趯?shí)施嵌入式USB主機(jī)項(xiàng)目計(jì)劃時(shí)做到心中有數(shù),項(xiàng)目的關(guān)鍵活動(dòng)工作包括:
項(xiàng)目需求分析(A);系統(tǒng)總體設(shè)計(jì)(B);系統(tǒng)硬件設(shè)計(jì)(C);初始化及用戶交互界面軟件設(shè)計(jì)(D);單片機(jī)與接口芯片通信軟件設(shè)計(jì)(E);USB主機(jī)系統(tǒng)軟件設(shè)計(jì)(F);系統(tǒng)聯(lián)調(diào)測(cè)試(I);項(xiàng)目結(jié)題報(bào)告(J)。
要嚴(yán)格控制按預(yù)定工作時(shí)間進(jìn)行,否則就會(huì)拖長(zhǎng)整個(gè)任務(wù)的工期,延誤項(xiàng)目的按時(shí)完成。相對(duì)來(lái)說(shuō),作為非關(guān)鍵工作的MS 設(shè)備類協(xié)議軟件設(shè)計(jì)和FAT 文件系統(tǒng)軟件設(shè)計(jì)由于有浮動(dòng)時(shí)間存在,在資源或人力不足時(shí),可適當(dāng)調(diào)整這些工作的耗費(fèi)時(shí)間和開(kāi)始時(shí)間,不會(huì)影響總工期。
參考文獻(xiàn)
1 殷人昆.清華大學(xué)《軟件項(xiàng)目管理》課程講義.2005,
2 Schwalbe K.IT項(xiàng)目管理(英文版,第2版).北京:機(jī)械工業(yè)出版社,2003
3 鄭人杰.實(shí)用軟件工程.北京:清華大學(xué)出版社,1997
4 Jalote P著,施平安譯.軟件項(xiàng)目管理實(shí)踐.北京:清華大學(xué)出版社,2003
5 馬 偉.計(jì)算機(jī)USB系統(tǒng)原理及其主/從機(jī)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,2004
6 金振華.面向?qū)ο蠓椒ㄔ谄嚺欧艤y(cè)試系統(tǒng)軟件開(kāi)發(fā)中的應(yīng)用.電子技術(shù)應(yīng)用,2001;(4)