IM卡發(fā)給營(yíng)業(yè)員,用戶入網(wǎng)的時(shí)候,選擇一個(gè)號(hào)碼,然后付錢。營(yíng)業(yè)員把SIM卡號(hào)碼和電話號(hào)碼輸入系統(tǒng),在交換網(wǎng)絡(luò)上進(jìn)行注冊(cè),這個(gè)SIM卡就可以通話了。然后各種費(fèi)用記入各人帳戶,合同歸檔。
2:SIM卡在下發(fā)給營(yíng)業(yè)員之前,先在交換網(wǎng)絡(luò)上和注冊(cè),并且已經(jīng)預(yù)先設(shè)置了一定的話費(fèi)。用戶選擇了這個(gè)號(hào)碼,付錢之后直接SIM卡拿走就可以打電話了。營(yíng)業(yè)員事后再輸入用戶的合同資料,費(fèi)用計(jì)入各人帳戶,合同歸檔。
這兩種方案在實(shí)現(xiàn)過程上是不同的,因此具有不同的功能點(diǎn)。比如第二種方案中的SIM卡在出售之前是可以進(jìn)行通話的,所以必須對(duì)這樣的號(hào)碼的通話費(fèi)用進(jìn)行監(jiān)控,這個(gè)功能在第一種方案中是根本不需要的。并且兩種方案在帳目的核對(duì)方式上區(qū)別也是比較大的。這兩種方案是不同的功能點(diǎn)的集合,他們完成的是同一個(gè)業(yè)務(wù)需求。
系統(tǒng)在開發(fā)階段如果沒有保留用戶的業(yè)務(wù)需求情況,而是只留下一個(gè)功能點(diǎn)的列表,會(huì)給維護(hù)人員帶來成很大的困難。維護(hù)人員無法從這樣一堆功能點(diǎn)中發(fā)現(xiàn)最初的需求是什么樣子。各位可以試試,假設(shè)我們忘記上面的四個(gè)需求要素,只看下面的某個(gè)實(shí)現(xiàn)方案,從這個(gè)復(fù)雜的實(shí)現(xiàn)過程中,我們很難知道用戶現(xiàn)在的需求到底是什么。一旦需求發(fā)生了變化,這些功能點(diǎn)就會(huì)出錯(cuò),或者是功能點(diǎn)的時(shí)序發(fā)生意料不到的錯(cuò)誤,也許帳目核對(duì)不上了,也許是用戶拿走的SIM卡不能打電話了。
看不見需求在哪里,不知道手里這段代碼會(huì)觸動(dòng)需求的哪根神經(jīng)。維護(hù)人員的痛苦大部分來源于此。
“不要緊,客戶記得自己的需求?!钡强蛻敉ǔ2欢夹g(shù),即使他們懂技術(shù),他們也不知道系統(tǒng)是如何實(shí)現(xiàn)的。如果開發(fā)人員依靠客戶提出新需求的解決方案,結(jié)果就是讓軟件工程變成“生物工程”。到最后是錢基本花光,人基本累死,甲乙雙方感情基本破裂。
軟件開發(fā)必須劃分成幾個(gè)過程,但是各個(gè)步驟應(yīng)該有一個(gè)統(tǒng)一的核心——業(yè)務(wù)需求。
在需求調(diào)查階段要搞清楚用戶的業(yè)務(wù)需求,為了達(dá)到這個(gè)目的,可以提問回答,可以對(duì)用戶進(jìn)行跟蹤采訪,或者做一個(gè)demo給用戶看看,最終的目的是為了搞清楚用戶在做什么事,遇到了什么問題,程序應(yīng)該去解決什么問題,這就是這一階段的工作。
然后開始進(jìn)行設(shè)計(jì),設(shè)計(jì)系統(tǒng)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu),邏輯結(jié)構(gòu)要符合需求的概念,各個(gè)對(duì)象互相調(diào)用要能夠?qū)崿F(xiàn)需求中的業(yè)務(wù)過程,同時(shí)物理結(jié)構(gòu)劃分合理,符合實(shí)際的分布狀況,可以達(dá)到要求的的性能,業(yè)務(wù)過程的物理運(yùn)行方式合理高效。這一階段仍然是以業(yè)務(wù)需求為核心。
接下來是編碼。首先是編寫一些基礎(chǔ)設(shè)施,比如網(wǎng)絡(luò)通信、數(shù)據(jù)庫(kù)、文件的讀寫、分布式計(jì)算,這些基礎(chǔ)設(shè)施和業(yè)務(wù)需求沒有什么關(guān)系,有很多現(xiàn)成的框架,借助這些框架我們可以盡快度過這個(gè)黑暗的階段。然后編寫業(yè)務(wù)對(duì)象,這時(shí)候業(yè)務(wù)需求中的一些概念逐步出現(xiàn)在代碼中,比如上面說的那個(gè)例子,“用戶”、“號(hào)碼”、“合同”、“入網(wǎng)”、“SIM卡資源”這樣的業(yè)務(wù)要素逐漸出現(xiàn),這些對(duì)象所擁有的屬性、可以運(yùn)行的行為也和現(xiàn)實(shí)的需求一樣。接著這些業(yè)務(wù)對(duì)象串接起來,實(shí)現(xiàn)業(yè)務(wù)過程,現(xiàn)在業(yè)務(wù)需求又回到了人們的視野當(dāng)中。業(yè)務(wù)需求是什么,如何實(shí)現(xiàn),在這里一目了然。最后將這些過程在UI或者接口中調(diào)用,將功能提供給用戶或者別的系統(tǒng)。
測(cè)試更是要圍繞著業(yè)務(wù)需求來進(jìn)行,正常的業(yè)務(wù)流程應(yīng)該產(chǎn)生正常的結(jié)果,如果缺少某個(gè)資源,或者輸入了不合適的數(shù)據(jù),應(yīng)該出現(xiàn)業(yè)務(wù)含義明確的異常。并且系統(tǒng)的業(yè)務(wù)對(duì)象是處在一個(gè)獨(dú)立的層次上,與UI和基礎(chǔ)設(shè)施沒有很大的關(guān)聯(lián),這樣可以方便的采用自動(dòng)化的測(cè)試方法。
這樣的系統(tǒng)維護(hù)起來一定少很多痛苦。
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來測(cè)測(cè)你排多少名吧~
http://www.vanceur.cn/pmqhd/index.html