我在某市一家通信公司工作,作為一名技術(shù)骨于,受領(lǐng)導(dǎo)委托,參與了開(kāi)發(fā)本公司的業(yè)務(wù)報(bào)表系統(tǒng),我擔(dān)任系統(tǒng)的需求分析、總體設(shè)計(jì)和部分代碼的編寫(xiě)工作。
我所在的企業(yè)作為一家通信運(yùn)營(yíng)公司,分為總部、省級(jí)公司和地市級(jí)分公司三級(jí),各級(jí)公司之間都有數(shù)據(jù)報(bào)表的要求。但是,每一個(gè)地市分公司因所處的地方不同,經(jīng)營(yíng)環(huán)境不同,所面臨的問(wèn)題也不一樣,因此形成了各具特色的數(shù)據(jù)報(bào)表(除地市分公司向省公司匯報(bào)的之外)。公司又分設(shè)了許多部門(mén),這些部門(mén)也都會(huì)需要數(shù)據(jù),作為分析決策的依據(jù)。因此,了解各個(gè)部門(mén)的需求就成了業(yè)務(wù)報(bào)表系統(tǒng)的關(guān)鍵。
在調(diào)研的過(guò)程中,我選用了一種工具叫Play CASE,可以從網(wǎng)上免費(fèi)下載,有很強(qiáng)的功能。下面就介紹一下,在需求分析階段,我是如何使用這一工具的。
第一步,了解業(yè)務(wù)組織結(jié)構(gòu)。公司內(nèi)部的數(shù)據(jù)實(shí)際上是在部門(mén)之間流動(dòng)的。業(yè)務(wù)部門(mén)需要知道在本地覆蓋區(qū)內(nèi)各基站的話(huà)務(wù)量、當(dāng)天的話(huà)務(wù)量(即話(huà)務(wù)量的時(shí)空分布)。財(cái)務(wù)部門(mén)需要知道本月各類(lèi)用戶(hù)的話(huà)費(fèi)收入、預(yù)交款收入、與其他電信運(yùn)營(yíng)商的網(wǎng)間結(jié)算等。計(jì)劃部門(mén)需要各部門(mén)的分析數(shù)據(jù)。計(jì)費(fèi)部門(mén)需要提供本月的賬革統(tǒng)計(jì)數(shù)據(jù)、話(huà)單統(tǒng)計(jì)數(shù)據(jù)分布(比如分別按照基站分布、時(shí)段分布以及按用戶(hù)類(lèi)別分布)、預(yù)交款統(tǒng)計(jì)數(shù)據(jù)、當(dāng)前的欠費(fèi)總額分布、催繳情況等等。這些部門(mén)時(shí)常為了數(shù)據(jù)而產(chǎn)生了大量無(wú)謂的爭(zhēng)議。在使用Play CASE工具時(shí),先要將這些部門(mén)錄入到Play CASE的“業(yè)務(wù)部門(mén)”中.構(gòu)成了一個(gè)信息源的接收點(diǎn)(或發(fā)送點(diǎn));而Play CASE通過(guò)圖示表示了這些部門(mén)的關(guān)系,并轉(zhuǎn)換成了相應(yīng)的軟件結(jié)構(gòu)。實(shí)際上,這是一種系統(tǒng)建模的方法,即把業(yè)務(wù)系統(tǒng)中的各個(gè)組織轉(zhuǎn)變?yōu)檐浖δ苤械母鱾(gè)結(jié)構(gòu)。這樣,在需求分析階段,明確哪些部門(mén)需要數(shù)據(jù),從而保證了需求分析對(duì)整個(gè)公司的全面性,而不會(huì)忽略掉某一個(gè)部門(mén),導(dǎo)致需求分析的不完整。
第二步,了解各個(gè)業(yè)務(wù)部門(mén)中的業(yè)務(wù)流程,使之通過(guò)Play CASE轉(zhuǎn)換成軟件的運(yùn)行過(guò)程,這是一種動(dòng)態(tài)建模的方法。在上一步的基礎(chǔ)上,追蹤各個(gè)部門(mén)的行為,錄入到Play CASE中,并以形式化的語(yǔ)言描述各過(guò)程。對(duì)于復(fù)雜的過(guò)程,該工具還提供了進(jìn)一步細(xì)化的方法,并且形成了業(yè)務(wù)流程圖和業(yè)務(wù)狀態(tài)圖。根據(jù)這些流程圖、狀態(tài)圖與實(shí)際業(yè)務(wù)部門(mén)的業(yè)務(wù)相結(jié)合比較,還是較為吻合的。在此步的實(shí)施過(guò)程中,運(yùn)用了動(dòng)態(tài)建模技術(shù),使各部門(mén)業(yè)務(wù)流程的情況在軟件的運(yùn)行過(guò)程反映出來(lái),從而保證了需求分析階段中運(yùn)行過(guò)程的描述能真實(shí)地反映實(shí)際情況,防止在后繼的程序編寫(xiě)過(guò)程中,可能會(huì)經(jīng)常發(fā)生的一類(lèi)情況:程序員因?yàn)闆](méi)有理解業(yè)務(wù)流程而出現(xiàn)“閉門(mén)造車(chē)”的現(xiàn)象,從軟件的功能角度上保證了軟件的正確性。