的溝通將成為一個(gè)大問(wèn)題,這意味著客戶(hù)在開(kāi)發(fā)軟件之前必須先進(jìn)行形式化語(yǔ)言培訓(xùn),這是不現(xiàn)實(shí)的)。自然語(yǔ)言對(duì)需求分析最大的弊病就是它的二義性。所以我們不得不對(duì)需求分析中采用的語(yǔ)言做某些限制。例如盡量采用主語(yǔ)+動(dòng)作的簡(jiǎn)單表達(dá)方式。說(shuō)白了,需求分析中的描述讓人看上去像是剛學(xué)習(xí)寫(xiě)作的小孩子就對(duì)了,千萬(wàn)不要采用疑問(wèn)句、修飾這些華麗的表達(dá)方式。
除了語(yǔ)言的二義性之外,主意不要使用行話,就是計(jì)算機(jī)術(shù)語(yǔ)。需求分析最重要的是和用戶(hù)溝通,可是用戶(hù)多半不是計(jì)算機(jī)的專(zhuān)業(yè)人士,如果在需求分析中使用了行話,就會(huì)造成用戶(hù)理解上的困難。
打個(gè)比方,如果你要做一個(gè)銀行的信用卡系統(tǒng),你就可以這樣描述軟件需求:銀行的卡部管理信用卡,每張信用卡只屬于一個(gè)帳戶(hù)。信用卡有卡號(hào)、余額。一張信用卡有多筆的交易記錄。
完整:再也沒(méi)有什么比軟件開(kāi)發(fā)接近完成是發(fā)現(xiàn)遺漏了一項(xiàng)需求更糟的事情了。需求的完整性是非常非常重要的,想象一下遺漏需求而不得不返工,這簡(jiǎn)直就是惡夢(mèng)??墒橇钊诉z憾的是,需求的遺漏是很經(jīng)常發(fā)生的事情,不僅僅是你的問(wèn)題,更多的問(wèn)題發(fā)生在用戶(hù)那里,他們不知道該做些什么。要做到需求的完整性是很艱難的一件事情,它涉及到需求分析過(guò)程的各方各面,貫穿了整個(gè)過(guò)程,從最初的計(jì)劃制定到最后的需求評(píng)審。至于完整性的詳細(xì)討論,我們會(huì)在下面的章節(jié)中討論,現(xiàn)在你只需要拼命的想象缺乏完整性的壞處,直到你出了一身的冷汗。出了嗎?好,那我們繼續(xù)。
一致:一致性也是一個(gè)比較大的概念,很難用幾句話講清楚。還記得我們?cè)陂_(kāi)始的時(shí)候提到的需求的層次嗎?簡(jiǎn)單的來(lái)說(shuō),就是用戶(hù)需求必須和業(yè)務(wù)需求一致,功能需求必須和用戶(hù)需求一致。嚴(yán)格的遵守不同層次間的一致性關(guān)系,就可以保證最后開(kāi)發(fā)出來(lái)的軟件系統(tǒng)不會(huì)偏離最初的實(shí)現(xiàn)目標(biāo)。在實(shí)現(xiàn)過(guò)程中,我們還必須把一致性關(guān)系細(xì)化。比如說(shuō)用戶(hù)需求不能超出先前指定的范圍。
可測(cè)試:大家覺(jué)得一個(gè)項(xiàng)目的測(cè)試從什么時(shí)候開(kāi)始呢?有人說(shuō)從編碼完成后開(kāi)始。更清楚一點(diǎn)的說(shuō)是編碼的時(shí)候同時(shí)進(jìn)行單元測(cè)試,編碼完成后進(jìn)行系統(tǒng)測(cè)試。這些都沒(méi)有錯(cuò)。但是實(shí)際上測(cè)試是從需求分析過(guò)程就開(kāi)始了。需求分析是測(cè)試計(jì)劃的輸入和參照。這就要求需求分析是可測(cè)試的。什么是可測(cè)試呢?“我們要用新的系統(tǒng)完成報(bào)表自動(dòng)化處理”,你覺(jué)得這個(gè)需求是可測(cè)試的嗎?當(dāng)然不是,報(bào)表包括哪些?自動(dòng)化處理的標(biāo)準(zhǔn)是什么?這些在需求中都沒(méi)有說(shuō)明。因此這項(xiàng)需求是無(wú)法測(cè)試的,就是不具有可測(cè)試性。說(shuō)到這里,大家可能就會(huì)明白之前的需求的幾項(xiàng)標(biāo)準(zhǔn)都是為了保證需求的可測(cè)試性的。事實(shí)就是這樣,只有系統(tǒng)的所有需求是可以被測(cè)試的,才能夠保證軟件始終圍繞著用戶(hù)的需要,保證軟件系統(tǒng)是成功的。
五、軟件需求過(guò)程
軟件需求工程主要包括兩個(gè)方面:需求開(kāi)發(fā)和需求管理。
需求開(kāi)發(fā)可進(jìn)一步分為:需求獲取、需求分析、編寫(xiě)需求規(guī)格和需求驗(yàn)證四個(gè)階段。各階段說(shuō)明如下:
需求獲取階段:
這一階段的核心任務(wù)就是確定三個(gè)層次的需求,對(duì)于業(yè)務(wù)層要強(qiáng)調(diào)明確業(yè)務(wù)總目標(biāo)及使用范圍,對(duì)于用戶(hù)層,要強(qiáng)調(diào)明晰用戶(hù)工作流程,對(duì)于功能層還要收集系統(tǒng)運(yùn)行環(huán)境的限制等非功能性需求。不同的時(shí)間、不同的用戶(hù)會(huì)由于不同的業(yè)務(wù)目標(biāo)及使用范圍而提出不盡相同的需求,同時(shí)由于沒(méi)有約定提出方式也會(huì)有各不相同的表現(xiàn)形式。針對(duì)上述問(wèn)題,首先要確定用戶(hù)代表并對(duì)其在需求中的主次地位于以劃分;其次要確定需求的整個(gè)開(kāi)發(fā)過(guò)程,最后還要明確不同層次的需求要以約定的形式出具文檔,以備雙方的交流及問(wèn)題檢查。
需求分析階段:
這一階段的核心任務(wù)就是確定并完善需求。初期階段所獲得的大量需求往往是不系統(tǒng)、不完整甚至個(gè)別需求是錯(cuò)誤的、不必要的,只有通過(guò)提煉、分析和仔細(xì)審查需求
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://m.vanceur.cn/pmqhd/index.html