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