做軟件項(xiàng)目需求最重要就是分解用例場(chǎng)景,沒有用例就不是需求。軟件工程這類書要學(xué),不過軟件工程軟件項(xiàng)目需求最關(guān)鍵就是用例場(chǎng)景的合理建立,這條,好象沒有什么大學(xué)教科書談到,仿佛中國(guó)的大學(xué)計(jì)算機(jī)科學(xué)系教師統(tǒng)統(tǒng)沒有做過軟件項(xiàng)目的,完全沒有這個(gè)概念。所謂的軟件項(xiàng)目需求,如果不是變成走不通的偽代碼,就是用不上的美工方案,程序員對(duì)此除了干瞪眼是沒輒的。
其中最大的原因就是從事網(wǎng)站或者類似的軟件項(xiàng)目需求的許多人都不懂真正的軟件項(xiàng)目需求是什么東西,包括我處理過的SAP/ERP項(xiàng)目這類都是同樣的問題,盡管那不是網(wǎng)站;他們犯的一般共同的錯(cuò)誤就是把網(wǎng)頁(yè)表現(xiàn)形式(那其實(shí)是美工的工作),以及內(nèi)容的采排看作是需求,完全沒有一個(gè)用例的觀念。
用例,usecase,目前多見于UML下的對(duì)面向?qū)ο蟪绦蛑械膶?duì)象行為的表達(dá);不過,這不是它的源泉;它之所以被看作是這類語(yǔ)言的標(biāo)準(zhǔn)URL描述手段,是因?yàn)槊嫦驅(qū)ο蟊旧砭褪窃谔摂M程序中模擬真實(shí)世界那樣地工作;而真實(shí)世界,就是圍繞著用例展開的。用例的觀念其實(shí)也不能算是一個(gè)軟件概念,只不過在軟件領(lǐng)域定義得最為精確而已,今天從每個(gè)人的生老病死,婚姻嫁娶,其實(shí)都是一個(gè)個(gè)的用例的描述和實(shí)施。用例,顧名思意,就是假如(假設(shè))出現(xiàn)某種情況,采取什么樣的行動(dòng);可能會(huì)有什么樣的結(jié)果;然后,根據(jù)這個(gè)結(jié)果,再采取什么樣的行動(dòng)……直到得到希望的某個(gè)最終結(jié)局。
用例也叫場(chǎng)景,軟件,實(shí)際上就是對(duì)場(chǎng)景操作過程的描述,而不是一堆版面框架網(wǎng)頁(yè)的集成。沒有用例支持就不叫軟件,更加不叫項(xiàng)目——連垃圾都算不上。很多時(shí)侯我們說需求不明確,其實(shí)就是說這個(gè)用例不清晰;在電子商務(wù)網(wǎng)站中,除了人員素質(zhì)導(dǎo)致對(duì)基本概念方法不明白外,最可能的導(dǎo)因就是商業(yè)模式不明確,或者不成立。這個(gè)成立與否,實(shí)際上可以從上面的假如如何那般的推導(dǎo)中進(jìn)行初步的可行性推演。所以,程序員實(shí)際上有兩個(gè)層次,一個(gè)是你說什么他做什么,但永遠(yuǎn)沒有結(jié)果的。他卻的確實(shí)現(xiàn)了你(需求人員)提出的所有要求,但這個(gè)項(xiàng)目卻必然是永遠(yuǎn)沒有結(jié)果的,因?yàn)?,它本身只是把這個(gè)程序員當(dāng)成網(wǎng)頁(yè)編輯用了,項(xiàng)目沒有基本用例的支持。我想90%的程序員是這類程序員,沒有用例明確定義也就沒有軟件能力的評(píng)估,因?yàn)檐浖藛T不是美工。另一種程序員則可以從上訴推演中發(fā)現(xiàn)整個(gè)項(xiàng)目本身有沒有用例,以及用例是否合理(理論上沒有明顯的邏輯障礙);雖然程序員一般不應(yīng)該關(guān)心商業(yè)模式是否合理,但實(shí)際上他有這個(gè)能力,常常是第一個(gè)發(fā)現(xiàn)商業(yè)模式的問題,假如他也關(guān)心的話。
可惜大部分用戶需求人員不明白這個(gè)道理,反而可能會(huì)以為程序員是在推卸責(zé)任,或者是刁難需求;也正因?yàn)檫@個(gè)原因,需求人員和實(shí)現(xiàn)人員的沖突在項(xiàng)目中屢見不鮮,倒不是個(gè)人矛盾的沖突,而是由于雙方?jīng)]能有一個(gè)基本的立足點(diǎn)。我見過這樣的項(xiàng)目,需求人員建一個(gè)大型網(wǎng)站的需求就是一大籮的每個(gè)網(wǎng)頁(yè)的非常詳細(xì)的描述,到每個(gè)字每個(gè)連接……直至每個(gè)網(wǎng)頁(yè)出現(xiàn)的次序,項(xiàng)目經(jīng)理說一個(gè)笑話:萬(wàn)一他摔一跤,這籮子?xùn)|西鬼才能再撿回原來的模樣。的確,負(fù)責(zé)需求的客戶方副老總和一幫企業(yè)需求編輯辛苦做了兩個(gè)月,但其實(shí)這不是需求,而是使用這個(gè)項(xiàng)目軟件的具體編輯排版的安排;根本不是程序員要看的東西。程序員需要的是使用這個(gè)網(wǎng)站時(shí)需要有那幾種用例邏輯,然后抽象出其中的對(duì)象,根據(jù)對(duì)象建立存儲(chǔ)方式(象數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu))和內(nèi)容采摘方式。那大籮東東,實(shí)際上什么用處也沒有的。開發(fā)軟件如同建房子,旁觀者可能問一句:建房子啊就拍手說明白了,但對(duì)于開發(fā)員來說,如果得不到準(zhǔn)確的房子細(xì)到磚磚瓦瓦的準(zhǔn)確設(shè)計(jì)(需求定義);要知道建小平房和建金茂大夏都是建房子,建賓館還是建殯儀館也是建房子,到底客戶要的是什么
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來測(cè)測(cè)你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html