您的位置:軟件測(cè)試 > 軟件項(xiàng)目管理 > 項(xiàng)目管理綜合 >
軟件項(xiàng)目可行性分析和需求分析
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/6/19 16:10:01 ] 推薦標(biāo)簽:

。ㄈ 需求分析為什么困難

 有幾種原因使需求分析變得困難:(1)客戶說不清楚需求;(2)需求自身經(jīng)常變動(dòng);(3)分析人員或客戶理解有誤。

 客戶說不清楚需求
  有些客戶對(duì)需求只有朦朧的感覺,當(dāng)然說不清楚具體的需求。例如各地的很多政府機(jī)構(gòu)在搞網(wǎng)絡(luò)建設(shè),這些單位的領(lǐng)導(dǎo)和辦公人員大多不清楚計(jì)算機(jī)網(wǎng)絡(luò)有什么用,反而要軟件系統(tǒng)分析人員替他們?cè)O(shè)想需求。這類工程的需求是如此的主觀,以致產(chǎn)生很多貪污腐敗現(xiàn)象。
  有些客戶心里非常清楚想要什么,但卻說不明白。讀者可能很不以為然。舉日常生活的事例吧,比如說買鞋子。我們非常了解自已的腳,但沒法說清楚腳的大小和形狀。只能拿鞋子去試,試穿時(shí)感覺到舒服才會(huì)買鞋(居然也有神通廣大的售貨員,看一眼客戶的手,知道應(yīng)該穿什么樣的鞋)。
  如果客戶本身懂軟件開發(fā),能把需求說得清清楚楚,這樣的需求分析將會(huì)非常輕松、愉快。如果客戶全不懂軟件,但信任軟件開發(fā)方,這事也好辦。分析人員可以引導(dǎo)客戶,先闡述常規(guī)的需求,再由客戶否定不需要的,終確定客戶真正的需求。怕的是“不懂裝懂”或者“半懂充內(nèi)行”的客戶,他們會(huì)提出不切實(shí)際的需求。如果這些客戶甚至覺得自己是上帝的爸爸,那么溝通和協(xié)商都會(huì)很困難。

 需求自身經(jīng)常變動(dòng)
  唐僧曾說:“妖要是有了仁慈之心,不再是妖,是人妖。”(《大話西游之大圣娶親》)
  連妖都會(huì)變心,別說人了。所以喜新厭舊乃人之常情,世界也因此變得多姿多彩。
  軟件的需求會(huì)變化嗎?
  答:據(jù)歷史記載,沒有一個(gè)軟件的需求改動(dòng)少于三次。只改動(dòng)需求兩次的客戶是個(gè)死人。這個(gè)可憐的家伙還是在運(yùn)送第三次需求的路上被車子撞死的。[Cline 1995]
  讓我們先接受“需求會(huì)變動(dòng)”這個(gè)事實(shí)吧,免得在需求變動(dòng)時(shí)驚慌失措。明白“需求會(huì)變動(dòng)”這個(gè)道理后,在進(jìn)行需求分析時(shí)要留點(diǎn)神:
  (1)盡可能地分析清楚哪些是穩(wěn)定的需求,哪些是易變的需求。以便在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),將軟件的核心建筑在穩(wěn)定的需求上,否則將會(huì)吃盡苦頭。
  (2)在合同中一定要說清楚“做什么”和“不做什么”。如果合同含含糊糊,日后扯皮的事情多。要防止象韓復(fù)渠那樣,在別人請(qǐng)他喝酒吃飯時(shí)他什么都點(diǎn)頭(人家更加獻(xiàn)殷勤),吃完了他宣布剛才答應(yīng)的事都不算數(shù),便揚(yáng)長(zhǎng)而去。

 分析人員或客戶理解有誤

  有個(gè)外星人間諜潛伏到地球刺探情報(bào),它給上司寫了一份報(bào)告:“主宰地球的是車。它們喝汽油,靠四個(gè)輪子滾動(dòng)前進(jìn)。嗓門極大,在夜里雙眼能射出強(qiáng)光。……有趣的是,車?yán)镒≈环N叫作‘人’的寄生蟲,這些寄生蟲完全控制了車。”

  軟件系統(tǒng)分析人員不可能都是全才?蛻舯磉_(dá)的需求,不同的分析人員可能有不同的理解。如果分析人員理解錯(cuò)了,可能會(huì)導(dǎo)致開發(fā)人員白干活,吃力不討好。我讀中學(xué)時(shí)候怕寫作文逃題,如果逃題了,不管作文寫得多長(zhǎng),總是零分。所以分析人員寫好需求說明書后,要請(qǐng)客戶方的各個(gè)代表驗(yàn)證。如果問題很復(fù)雜,雙方都不太明白,有必要請(qǐng)開發(fā)人員快速構(gòu)造軟件的原型,雙方再次論證需求說明書是否正確。

  由于客戶大多不懂軟件,他們可能覺得軟件是的,會(huì)提出一些無法實(shí)現(xiàn)的需求。有時(shí)客戶還會(huì)把軟件系統(tǒng)分析人員的建議或答復(fù)給想歪了。

  有一個(gè)軟件人員滔滔不絕地向客戶講解在“信息高速公路上做廣告”的種種好處,客戶聽得津津有味。后,心動(dòng)的客戶對(duì)軟件人員說:“好得很,讓我們馬上行動(dòng)起來吧。請(qǐng)您決定廣告牌的尺寸和放在哪條高速公路上,我立即派人去做。”

  為什么軟件系統(tǒng)分析員的工資要比普通程序員高?是因?yàn)樾枨蠓治隼щy嘛。

。ㄋ模┤绾芜M(jìn)行需求分析
  上一節(jié)訴說了需求分析的困難,本節(jié)要知難而進(jìn)。

  進(jìn)行需求分析不象情人之間的浪漫做法——“讓我摸摸你的頭發(fā),感覺它是什么顏色。”我們要圍繞兩個(gè)核心問題開展需求分析:(1)應(yīng)該了解什么?(2)通過什么方式去了解?

 應(yīng)該了解什么

  那怕是天下無能的市長(zhǎng)或書記,都知道在作報(bào)告時(shí)要先從宏觀上講一、二、三、四、五,再從細(xì)節(jié)上講A、B、C、D、E。需求分析不象偵探推理那樣從蛛絲馬跡著手。應(yīng)該先了解宏觀的問題,再了解細(xì)節(jié)的問題

 行為(功能) 對(duì)應(yīng)于軟構(gòu)件的接口

 一個(gè)軟件系統(tǒng)(記為 S)的涉及面可能很廣,可以按不同的問題域(記為D)分類,每個(gè)問題域?qū)?yīng)于一個(gè)軟件子系統(tǒng)。

S = { D1,D2,D3,… Dn }
問題域Di 由若干個(gè)問題(記為P)組成,每個(gè)問題對(duì)應(yīng)于子系統(tǒng)中的一個(gè)軟構(gòu)件。

Di = { P1,P2,P3,… Pm }
問題Pj有若干個(gè)行為(或功能,記為F),每個(gè)行為對(duì)應(yīng)于軟構(gòu)件中的接口。

Pj = { F1,F(xiàn)2,F(xiàn)3,… Fk }
  按圖4.1結(jié)構(gòu)寫成的需求說明書,對(duì)于那些只想了解宏觀需求的領(lǐng)導(dǎo),和需要了解細(xì)節(jié)的技術(shù)員都合適。在寫需求說明書時(shí)還應(yīng)該注意兩個(gè)問題:

 。1)好為每個(gè)需求注釋“為什么”,這樣可讓程序員了解需求的本質(zhì),以便選用合適的技術(shù)來實(shí)現(xiàn)此需求。
 。2)需求說明不可有二義性,更不能前后相矛盾。如果有二義性或前后相矛盾,則要重新分析此需求。

 通過什么方式去了解

  了解需求的方式有好幾種:

 。1)直接與客戶交談。如果分析人員生有足球評(píng)論員的那張“大嘴”,非常容易侃出需求。

  (2)有些需求客戶講不清楚,分析人員又猜不透,這時(shí)要請(qǐng)教行家。有些高手真的很厲害,你還沒有開始問,他能講出前因后果。讓你感到“聽君一席言,勝讀十年書。”

 。3)有很多需求可能客戶與分析人員想都沒有想過,或者想得太幼稚。要經(jīng)常分析的和蹩腳的同類軟件,看到了優(yōu)點(diǎn)盡量吸取,看到了缺點(diǎn)引以為戒。前人既然付了學(xué)費(fèi),后人不要拒絕坐享其成。

 (五)小 結(jié)

 為了闡述可行性分析的四個(gè)要素:經(jīng)濟(jì)、技術(shù)、社會(huì)環(huán)境和人,本章講了幾個(gè)令人垂頭喪氣的案例。如果您學(xué)會(huì)了客觀、科學(xué)的可行性分析,在作決策時(shí)要果斷,要學(xué)習(xí)熱戀中的這個(gè)年青人——“倒底行還是不行?行結(jié)婚,不行離婚。”

  本章并沒有鼓吹需求分析的難度,不是在嚇唬人。如果需求分析搞錯(cuò)了,麻煩大哩。幾十年前,我們偉大的毛主席說了一聲“人多力量大”,導(dǎo)致現(xiàn)在中國人口蹦到13億。他老人家輝煌地走了,后人卻付出了沉重的代價(jià)。

  所以我們要認(rèn)真地做好可行性分析和需求分析。

上一頁123456下一頁
關(guān)鍵詞閱讀
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd