領域分析--認識領域分析
軟件分析的開端一般是需求分析。但是在實踐中,發(fā)現(xiàn)了很多的問題。
1 用戶的需求并不是有用戶提出。在和用戶或軟件的風險承擔者交談后,會常發(fā)現(xiàn),他們對自己想要的
軟件并不是很清楚,會提出一些籠統(tǒng)的要求。在開發(fā)出一個原型后,他們會修正或更改,甚至推翻他們
的需求。你會發(fā)現(xiàn)是你在不斷的提出、完善需求,用戶或風險承擔者只是在裁決你的需求。而這樣下去
你的軟件要不斷的改,好像遙遙無期。
2 需求多是一種功能的集合。軟件出來后,如果有了改動,或在新的項目中去復用以前的軟件會發(fā)現(xiàn)很
難。對每個需求,你不得不從頭開始。
領域分析和需求分析不同,它不是面向功能的。而是面向問題的。這有些像考試中解題。針對特定的問
題,來提供解決方案,并在這個方案的直接指導下解出題目。這個直接指導很有意義,應為直接指導表
示解題的方案將被應用到解題的過程中(即是可實現(xiàn)的)。
領域分析不是對要構造的軟件進行全面的分析。而是對軟件涉及到的特定的領域進行分析(如寫多媒體
軟件,你要對音視頻領域進行分析)。而領域是與特定的知識相關聯(lián)的(如音視頻領域中關于音頻、視
頻編解碼知識,領域分析要搞清楚這個領域中的知識,找出各知識點中的關系,并對它們進行抽象,形
成模型。領域分析強調(diào)的是問題域。這就是說它面對的是一個相對確定的范圍。軟件要解決的是一個相
對確定的范圍。也有利于測試軟件。
領域分析不能代替需求分析,但是可以脫離需求來對特定的領域進行分析。領域分析后產(chǎn)生的設計要直
接指導實現(xiàn),可以映射到軟件中。由于領域分析是面對問題的,它產(chǎn)生的軟件不一定能滿足需求,可能
根本就對應不上需求。但是它是特定問題的解決方案,可以作為一個機制來支持需求的實現(xiàn)。而且特定
的問題或著說這種反應某個領域中的知識關系的軟件其對應的是一種穩(wěn)定的需求,比較容易復用、測試
和發(fā)展。
面對需求分析得到是一種應用的要求。而根據(jù)軟件涉及的領域進行分析,得到的是它的基本機制。應用
是多樣的,而機制其實就只有那么幾個。根據(jù)應用的要求來組合這些機制。這樣需求的變化,并不會去
過多的沖擊你通過領域分析得到的模型和實現(xiàn)。你要做的是對他們進行組合。
posted on 2007-07-11 15:54
walkspeed 閱讀(2804)
評論(3) 編輯 收藏 引用 所屬分類:
C++語言 、
設計