在具體的研究需求分析之前,我們先了解一下軟件工程這個(gè)概念。軟件工程分為三個(gè)層次,過(guò)程層、方法層、工具層。在最基礎(chǔ)的過(guò)程層,最重要的就是一組被稱為關(guān)鍵過(guò)程區(qū)域(KPAs)的框架(KPA的概念在討論CMM的書(shū)中有詳細(xì)的概念說(shuō)明)。關(guān)鍵過(guò)程區(qū)域構(gòu)成了軟件項(xiàng)目的管理控制的基礎(chǔ),并且確立了上下文各區(qū)域的關(guān)系,其中規(guī)定了技術(shù)方法的采用、工程產(chǎn)品的,模型、文檔、數(shù)據(jù)、報(bào)告、表格等,等的產(chǎn)生、里程碑的建立、質(zhì)量的保證及變化的適當(dāng)管理。方法層主要是過(guò)程在技術(shù)上的實(shí)現(xiàn)。它解決的問(wèn)題是如何做。軟件工程方法涵蓋了一系列的任務(wù):需求分析、設(shè)計(jì)、編程、測(cè)試、維護(hù)。同時(shí)他還包括了一組基本原則,控制了每一個(gè)的關(guān)鍵過(guò)程區(qū)域。工具層就很好理解了,他對(duì)過(guò)程層和方法層提供了自動(dòng)和半
可以看到需求分析的位置,但是事實(shí)上需求分析是跨越了軟件工程的三個(gè)層次的。這一點(diǎn)是和其他的過(guò)程是一樣的。當(dāng)然我們這里比較重點(diǎn)強(qiáng)調(diào)的是在軟件工程的方法層,同時(shí)也涉及到一些過(guò)程層的思想,至于工具層則不再我們的討論之列,但是會(huì)提到一些很適合在需求分析時(shí)應(yīng)用的工具,諸如Word、Excel、Visio等。
方法
需求分析都包括了哪些方法呢?這里列舉出在《需求分析》一書(shū)中推薦的一些方法,
1) 繪制系統(tǒng)關(guān)聯(lián)圖,這種關(guān)聯(lián)圖是用于定義系統(tǒng)與系統(tǒng)外部實(shí)體間的界限和接口的簡(jiǎn)單模型。同時(shí)它也明確了通過(guò)接口的信息流和物質(zhì)流。
2) 創(chuàng)建用戶接口原型,當(dāng)開(kāi)發(fā)人員或用戶不能確定需求時(shí),開(kāi)發(fā)一個(gè)用戶接口原型—一個(gè)可能的局部實(shí)現(xiàn)—這樣使得許多概念和可能發(fā)生的事更為直觀明了。用戶通過(guò)評(píng)價(jià)原型將使項(xiàng)目參與者能更好地相互理解所要解決的問(wèn)題。注意要找出需求文檔與原型之間所有的沖突之處。
3) 分析需求可行性,在允許的成本、性能要求下,分析每項(xiàng)需求實(shí)施的可行性,明確與每項(xiàng)需求實(shí)現(xiàn)相聯(lián)系的風(fēng)險(xiǎn),包括與其它需求的沖突,對(duì)外界因素的依賴和技術(shù)障礙。
4) 確定需求的優(yōu)先級(jí)別,應(yīng)用分析方法來(lái)確定使用實(shí)例、產(chǎn)品特性或單項(xiàng)需求實(shí)現(xiàn)的優(yōu)先級(jí)別。以優(yōu)先級(jí)為基礎(chǔ)確定產(chǎn)品版本將包括哪些特性或哪類(lèi)需求。當(dāng)允許需求變更時(shí),在特定的版本中加入每一項(xiàng)變更,并在那個(gè)版本計(jì)劃中作出需要的變更。
5) 為需求建立模型,需求的圖形分析模型是軟件需求規(guī)格說(shuō)明極好的補(bǔ)充說(shuō)明。它們能提供不同的信息與關(guān)系以有助于找到不正確的、不一致的、遺漏的和冗余的需求。這樣的模型包括數(shù)據(jù)流圖、實(shí)體關(guān)系圖、狀態(tài)變換圖、對(duì)話框圖、對(duì)象類(lèi)及交互作用圖。
6) 創(chuàng)建數(shù)據(jù)字典,數(shù)據(jù)字典是對(duì)系統(tǒng)用到的所有數(shù)據(jù)項(xiàng)和結(jié)構(gòu)的定義,以確保開(kāi)發(fā)人員使用統(tǒng)一的數(shù)據(jù)定義。在需求階段,數(shù)據(jù)字典至少應(yīng)定義客戶數(shù)據(jù)項(xiàng)以確??蛻襞c開(kāi)發(fā)小組是使用一致的定義和術(shù)語(yǔ)。分析和設(shè)計(jì)工具通常包括數(shù)據(jù)字典組件。
7) 使用質(zhì)量功能調(diào)配,(QFD)是一種高級(jí)系統(tǒng)技術(shù),它將產(chǎn)品特性、屬性與對(duì)客戶的重要性聯(lián)系起來(lái)。該技術(shù)提供了一種分析方法以明確那些是客戶最為關(guān)注的特性。QFD將需求分為三類(lèi):期望需求,即客戶或許并未提及,但如若缺少會(huì)讓他們感到不滿意;普通需求;興奮需求,即實(shí)現(xiàn)了會(huì)給客戶帶去驚喜,但若未實(shí)現(xiàn)也不會(huì)受到責(zé)備(Zultner 1993;Pardee 1996)。
記住一點(diǎn),不要試圖在你的項(xiàng)目中把這些方法都用上去,四個(gè)現(xiàn)代化并不是一夜就可以實(shí)現(xiàn)的。同樣,嘗試著使用你認(rèn)為對(duì)你很有幫助的方法,確實(shí)收到效果之后,在考慮繼續(xù)學(xué)習(xí)方法。因?yàn)樯厦嫣岬降亩际切枨蠓治龅拇蠓椒?,事?shí)上還有很多很多的方法可以采用,例如,采用SRS模板、指明需求的來(lái)源、為每項(xiàng)需求注上標(biāo)號(hào)、記錄業(yè)務(wù)規(guī)范、創(chuàng)建需求跟蹤能力矩陣、審查需求文檔、以需求為依據(jù)編寫(xiě)測(cè)試用例、編寫(xiě)用戶手冊(cè)、確