在很多項目中,需求分析人員將需求捕獲以后,就向后轉給了系統設計人員。不可否認,信息在傳遞過(guò)程中會(huì )發(fā)生丟失,當需求簡(jiǎn)單地向后傳遞給設計人員后,設計人員很有可能誤解甚至丟失需求中的重要信息。不論需求文檔寫(xiě)的如何詳細,設計人員仍有可能不能理解需求中的重點(diǎn)和難點(diǎn)是什么,從而導致設計重心的偏差。
信息的失真或許是不可能完全避免的,但我們應當盡量減低這種可能性。在實(shí)踐過(guò)程中,一種好的方法是在將需求向后傳遞之前進(jìn)行一些需求分析的工作。這些工作將由需求人員和負責系統設計人員或架構設計人員一起來(lái)完成。需求分析工作將使得需求人員和系統分析設計人員之間有機會(huì )進(jìn)行交流和溝通,共同就需求文檔中的概念、問(wèn)題的關(guān)鍵點(diǎn)達成共識,最大限度地降低信息失真的可能性。
我們進(jìn)行需求分析,可能需要完成的工作包括建立概念模型、建立業(yè)務(wù)架構和開(kāi)發(fā)系統原型。
在軟件項目過(guò)程中,當需求被確定下來(lái)之后,接下來(lái)就要進(jìn)行系統的分析和設計工作。可是,需求文檔是相當復雜和繁瑣的,需求人員曾經(jīng)為此煞費苦心整理需求,系統分析和設計人員如何才能盡快地理解需求?面對可能是海量的需求文檔,要從中快速的把握需求的精髓,我們就需要找到那個(gè)幫助我們打開(kāi)局面的支點(diǎn)。
這個(gè)支點(diǎn)就是對需求中的關(guān)鍵概念進(jìn)行分析。所謂的關(guān)鍵概念是指支撐起客戶(hù)整個(gè)業(yè)務(wù)架構的那個(gè)主線(xiàn),有的業(yè)務(wù)也可能有多條主線(xiàn),這些主線(xiàn)由一些關(guān)鍵業(yè)務(wù)構成。需求分析所要做的工作就是找到這些關(guān)鍵的業(yè)務(wù)用例,并對他們進(jìn)行分析,建立概念模型,一句概念模型搭建業(yè)務(wù)架構,然后為了驗證這個(gè)架構或者進(jìn)行技術(shù)可行性分析開(kāi)發(fā)出系統原型。
一旦這些工作得以完成,我們就找到了支點(diǎn)。我們不但架起了從需求到系統的橋梁,而且獲得了關(guān)于系統設計和開(kāi)發(fā)的大部分信息。甚至,再接下來(lái)的那些系統設計和開(kāi)發(fā)工作,都只是這些工作的細化和展開(kāi)。可見(jiàn),花時(shí)間建立概念模型、業(yè)務(wù)架構和系統原型的工作,正是花小力氣辦大事的關(guān)鍵所在。