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

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

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

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

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

 分析人員或客戶理解有誤

  有個外星人間諜潛伏到地球刺探情報,它給上司寫了一份報告:“主宰地球的是車。它們喝汽油,靠四個輪子滾動前進。嗓門極大,在夜里雙眼能射出強光。……有趣的是,車里住著一種叫作‘人’的寄生蟲,這些寄生蟲完全控制了車。”

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

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

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

  為什么軟件系統(tǒng)分析員的工資要比普通程序員高?是因為需求分析困難嘛。

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

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

 應(yīng)該了解什么

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

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

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

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

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

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

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

 通過什么方式去了解

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

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

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

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

。ㄎ澹┬ 結(jié)

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

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

  所以我們要認真地做好可行性分析和需求分析。

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