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