學(xué)習(xí)啦 > 論文大全 > 畢業(yè)論文 > 計(jì)算機(jī)論文 > 計(jì)算機(jī)理論 >

淺析計(jì)算機(jī)軟件項(xiàng)目管理中的需求分析

時(shí)間: 詹紅雨1 分享
論文關(guān)鍵詞:需求分析 用戶方干系人 項(xiàng)目經(jīng)理 需求分析員
  論文摘要:計(jì)算機(jī)軟件項(xiàng)目管理中的需求分析是提高軟件質(zhì)量的基礎(chǔ)也是決定一個(gè)軟件項(xiàng)目成敗的關(guān)鍵。本文介紹了在需求分析研究中探索出的一些有效措施。
  眾觀國內(nèi)計(jì)算機(jī)軟件業(yè)的發(fā)展,除遠(yuǎn)不如歐美等西方發(fā)達(dá)國家外,與人均GDP不及我國的印度相比也相距甚遠(yuǎn),軟件業(yè)的劣勢正嚴(yán)重制約著我國IT業(yè)的發(fā)展。我國軟件業(yè)的劣勢表現(xiàn)在自主開發(fā)的成熟軟件不多,而開發(fā)的大量軟件工程項(xiàng)目(如ERP等)存在缺陷或完全開發(fā)失敗。目前,國家正在加大對(duì)軟件工程的研究和對(duì)軟件工程人才的培養(yǎng)。根據(jù)資料顯示,屬于需求分析造成軟件設(shè)計(jì)的錯(cuò)誤和缺陷約占軟件失敗的6400,而屬于程序代碼的錯(cuò)誤僅占軟件失敗的360a,數(shù)據(jù)表明需求分析是提高軟件質(zhì)量的基礎(chǔ)也是決定一個(gè)軟件項(xiàng)目成敗的關(guān)鍵。通過對(duì)軟件項(xiàng)目管理知識(shí)的系統(tǒng)學(xué)習(xí)并結(jié)合近年來自己參與部分軟件項(xiàng)目實(shí)施的經(jīng)驗(yàn),介紹在需求分析研究中探索出的一些有效措施。
  1盡快熟悉項(xiàng)目用戶方干系人全貌
項(xiàng)目用戶方干系人,指所有可能受到項(xiàng)目結(jié)果重大影響的人,即項(xiàng)目的風(fēng)險(xiǎn)承擔(dān)者,他可能是項(xiàng)目的受益者,也可能是項(xiàng)目的受害者。因此,應(yīng)當(dāng)從項(xiàng)目的啟動(dòng)開始,需求分析員及其項(xiàng)目成員就要分清項(xiàng)目用戶方干系人包含哪些人和組織,通過溝通協(xié)調(diào)對(duì)他們施加影響,驅(qū)動(dòng)他們對(duì)項(xiàng)目的支持,調(diào)查并明確他們的需求和愿望,減小其對(duì)項(xiàng)目的阻力,以確保項(xiàng)目獲得成功。
有些項(xiàng)目在做需求調(diào)查時(shí),由于受進(jìn)度要求等客觀因素影響,需求分析員與建設(shè)單位的技術(shù)部門交流較多,向業(yè)務(wù)管理部門和實(shí)際使用者調(diào)查不夠深入,造成軟件試用后不得不再對(duì)需求做較大調(diào)整,“從頭再來”的部分比例很高,大大超過進(jìn)度要求時(shí)間。因此,熟悉項(xiàng)目用戶方干系人全貌是進(jìn)行需求調(diào)查的第一步,也是需求調(diào)查的基礎(chǔ)。在定制開發(fā)項(xiàng)目的項(xiàng)目用戶方干系人中,最重要的是建設(shè)單位中的人事組織、業(yè)務(wù)關(guān)系。最好是能夠用組織結(jié)構(gòu)圖畫出相關(guān)單位的組織結(jié)構(gòu);還應(yīng)當(dāng)在相關(guān)單位組織結(jié)構(gòu)圖基礎(chǔ)上畫出全體項(xiàng)目用戶方干系人結(jié)構(gòu)圖,以便更好更全面地進(jìn)行需求調(diào)研分析;用責(zé)任矩陣確定各部分的調(diào)研對(duì)象;建立調(diào)研對(duì)象通訊錄以保證調(diào)研及分析期間及時(shí)的溝通。
  2采取正確的需求獲取方法
軟件開發(fā)項(xiàng)目的目的就是要實(shí)現(xiàn)項(xiàng)目用戶方的需求,項(xiàng)目用戶方的需求包含明確的和隱含的,也可以分為NEED, WANT, WISH等不同的層次。如果對(duì)項(xiàng)目所有用戶方干系人沒有進(jìn)行足夠的溝通和影響,使其盡可能地參與項(xiàng)目,則會(huì)出現(xiàn)客戶方相關(guān)責(zé)任人不明確或?qū)Ψ秶托枨筘?zé)任心不強(qiáng),提出的需求具有隨意性,項(xiàng)目前期對(duì)需求的確認(rèn)不夠積極,或者是多個(gè)用戶代表各說各話、昨是今非,項(xiàng)目后期需求變化隨意等現(xiàn)象,這就會(huì)造成項(xiàng)目范圍的蔓延,進(jìn)度的拖延,成本的擴(kuò)大,甚至項(xiàng)目的完全失敗。
各種用戶對(duì)系統(tǒng)具有不同的要求,如一個(gè)沒有經(jīng)驗(yàn)的用戶關(guān)心系統(tǒng)是否簡單易用,對(duì)于高級(jí)用戶則關(guān)心產(chǎn)品的易用性和高效性。因而需要對(duì)用戶進(jìn)行分類,每一個(gè)用戶類將有自己的一系列功能和非功能要求。在項(xiàng)目中,要盡早為產(chǎn)品確定并描述不同的用戶類,這樣就能從每一個(gè)重要的用戶類代表中獲取不同的需求。
項(xiàng)目需求具有雙面性(用戶與開發(fā)商)和多面性(項(xiàng)目中各干系人),因此,項(xiàng)目經(jīng)理和系統(tǒng)集成者應(yīng)了解用戶干系人需求,用戶干系人也應(yīng)了解技術(shù)方面的需求,兩者缺一不可。正確的需求獲取需要了解需求的來源、用戶的分類、用戶的代表性、用戶需求誰說了算數(shù)等因素。開發(fā)人員和項(xiàng)目經(jīng)理要有足夠的耐心聆聽用戶的講述,要足夠詳細(xì)地了解每一個(gè)細(xì)節(jié)。項(xiàng)目管理者要善于將需求分類、歸類,善于將需求文檔化,并有所查詢標(biāo)記。
  3可視化需求調(diào)研,引導(dǎo)各種客戶挖掘他們的需求
有的客戶因?yàn)樽约喝狈τ?jì)算機(jī)知識(shí),無法提出完整準(zhǔn)確、隱含的或潛在的需求。若這些需求不能滿足將導(dǎo)致用戶的不滿。因此需求調(diào)研分析人員應(yīng)善于想用戶所想,不但要確定明確的需求,還要善于用啟發(fā)的方式與用戶探討隱含的或潛在的需求,并結(jié)合各種調(diào)研分析技術(shù)挖掘超出客戶期望的令人興奮的需求。這就要求需求調(diào)研分析員要盡快完整地熟悉相關(guān)業(yè)務(wù),從而能夠站在用戶的立場看待軟件需求,想用戶所想,做好業(yè)務(wù)與計(jì)算機(jī)之間的橋梁。利用可視化需求調(diào)研的方法可以很好地啟發(fā)用戶深人挖掘潛在的需求??梢暬枨笳{(diào)研就是使用圖表等工具來啟發(fā)引導(dǎo)用戶清楚地?cái)⑹鲂枨螅⑶沂剐枨蟾尤嫱晟啤?br/> 對(duì)于高層領(lǐng)導(dǎo),可以提供系統(tǒng)總體框架圖;對(duì)于業(yè)務(wù)管理人員,可以用業(yè)務(wù)流程圖來描述新舊系統(tǒng)的業(yè)務(wù)流程;對(duì)于客戶中的技術(shù)人員,可以用數(shù)據(jù)流圖、實(shí)體關(guān)系圖或UMI中的各種圖形對(duì)系統(tǒng)進(jìn)行各種角度的描述;而對(duì)于業(yè)務(wù)管理人員、客戶中的技術(shù)人員、以及各層次各流程中的用戶,畫出用戶界面圖來進(jìn)行需求挖掘,是個(gè)比較有效的溝通方式。
這里特別說明一下用戶界面的重要性。用戶界面的設(shè)計(jì)按理來說是軟件設(shè)計(jì)的責(zé)任,當(dāng)然客戶自己對(duì)界面有特別提出要求的除外。但是,如果把它提前到需求調(diào)研時(shí)與客戶進(jìn)行討論,則可以大大改善需求調(diào)研的效果。因?yàn)檫@時(shí)客戶對(duì)于將來的系統(tǒng)還沒有一個(gè)形象上的概念,或者有一個(gè)模糊的預(yù)想的概念需要表述、驗(yàn)證、明晰化、完善化,以筆者的經(jīng)驗(yàn),畫出用戶界面草圖與客戶進(jìn)行討論,可以大大激發(fā)他們提供更為準(zhǔn)確全面的需求。原來收集資料,描述業(yè)務(wù),說明系統(tǒng)模型到了山窮水盡的時(shí)候,這種方法可以達(dá)到柳暗花明又一村的效果。
  4詳細(xì)描述各項(xiàng)業(yè)務(wù),以便讓所有客戶確認(rèn)
盡可能全面詳細(xì)地調(diào)查并且描述原有系統(tǒng)和用戶希望將來系統(tǒng)具有的各項(xiàng)業(yè)務(wù)的流程,并將這些業(yè)務(wù)流程文檔化后與客戶進(jìn)行討論,對(duì)描述錯(cuò)誤或不準(zhǔn)確不精確的進(jìn)行修改,最終讓客戶進(jìn)行確認(rèn)。從近年來開發(fā)的軟件看,對(duì)業(yè)務(wù)處理過程了解的完整性和準(zhǔn)確性非常重要。雖然對(duì)數(shù)據(jù)來說都是SIDUT(查增刪改傳),但具體業(yè)務(wù)都是分為若干步驟,每個(gè)步驟都有其業(yè)務(wù)名稱,同一步驟可能對(duì)多個(gè)數(shù)據(jù)集進(jìn)行不同操作,需要調(diào)查了解清楚才能設(shè)計(jì)出適合用戶業(yè)務(wù)特點(diǎn)和習(xí)慣的軟件,使開發(fā)出來的軟件更受歡迎。當(dāng)然在進(jìn)行軟件概要設(shè)計(jì)時(shí),要盡量排除業(yè)務(wù)流程的制約,即把流程中的各項(xiàng)業(yè)務(wù)節(jié)點(diǎn)工作作為獨(dú)立的對(duì)象,充分考慮他們與其他各種業(yè)務(wù)對(duì)象的接口,在流程之間通過業(yè)務(wù)對(duì)象的相互調(diào)用實(shí)現(xiàn)其業(yè)務(wù)流程,這樣,在業(yè)務(wù)流程發(fā)生有限的變化時(shí),就能夠比較方便地修改系統(tǒng)程序而實(shí)現(xiàn)新的需求。
對(duì)于各項(xiàng)業(yè)務(wù)的調(diào)查可以通過對(duì)以下資料的收集整理分析來完成,這些資料來自各種各樣的項(xiàng)目用戶方干系人:遵循的標(biāo)準(zhǔn)、組織發(fā)放的工作手冊(cè)、作業(yè)流程、有關(guān)業(yè)務(wù)的上級(jí)通知、有關(guān)業(yè)務(wù)的辦事指南、辦理業(yè)務(wù)時(shí)需要填寫的登記表、各種相關(guān)的統(tǒng)計(jì)報(bào)表及通過其他途徑收集的類似系統(tǒng)的介紹、技術(shù)資料等等。
  5對(duì)項(xiàng)目用戶方干系人的愿望進(jìn)行平衡
不同的項(xiàng)目用戶方干系人其愿望和追求的目標(biāo)往往相差甚遠(yuǎn),因此對(duì)項(xiàng)目用戶方干系人的愿望進(jìn)行平衡可能是非常重要而又相當(dāng)困難的事情。例如:我曾在參與的某醫(yī)院計(jì)算機(jī)管理系統(tǒng)項(xiàng)目中,遇到醫(yī)院管理層希望能夠采集盡可能多的信息項(xiàng)以便對(duì)數(shù)據(jù)進(jìn)行多種多樣的統(tǒng)計(jì)分析,同時(shí)為了對(duì)信息進(jìn)行有效控制而增加一些審批流程;而門診、藥房等對(duì)外辦公的基層窗口則因?yàn)榭土魉俣鹊膲毫οM麥p少信息項(xiàng)的輸人量;甚至有些不良的基層部門由于害怕建立透明度高的信息系統(tǒng)會(huì)影響他們的利益而消極地應(yīng)付,即所謂反需求;而客戶的客戶(就診的病人)則希望相關(guān)機(jī)構(gòu)能夠簡化工作流程,加快辦事速度,增加診斷情況和就診費(fèi)用的透明度;甚至項(xiàng)目組本身因?yàn)榧夹g(shù)、資源、進(jìn)度等原因,需要對(duì)一些功能進(jìn)行優(yōu)先級(jí)排序和取舍。雖然不是所有人的需求都是可以滿足的,特別是消極的反需求是不能接受的,但他們的需求都是應(yīng)當(dāng)考慮全面并進(jìn)行平衡的。
如果不同的用戶方干系人有不一致的需求,那么必須決策出滿足哪一類用戶方干系人的需求更為重要。了解可能使用產(chǎn)品的客戶種類的信息和他們的用法與產(chǎn)品的業(yè)務(wù)目標(biāo)的關(guān)系如何,將有助于決定哪一個(gè)用戶類所占份額更大。如果系統(tǒng)分析人員提出的需求與開發(fā)者所想要開發(fā)的系統(tǒng)發(fā)生沖突時(shí),通常由于系統(tǒng)分析人員作為客戶的代理人,市場需求具有更重的分量,但是,系統(tǒng)分析人員不能一味地遷就客戶需求。
不同的用戶方干系人可能都要求產(chǎn)品按照他們各自的喜好來設(shè)計(jì)。運(yùn)用項(xiàng)目的業(yè)務(wù)目標(biāo)來決定哪些是你最關(guān)心的客戶,非核心客戶的需求可以安排在下一個(gè)版本中開發(fā)。當(dāng)開發(fā)者想像的產(chǎn)品與客戶需求沖突時(shí),通常應(yīng)該由客戶作出決策,然而,不要陷人“客戶總是對(duì)的”的陷阱中去,現(xiàn)實(shí)中,客戶并不總是對(duì)的。
  6強(qiáng)調(diào)實(shí)現(xiàn)項(xiàng)目需求的層次遞進(jìn)性
了解該系統(tǒng)或者該項(xiàng)目用戶所能夠提供的最小的工程費(fèi)用。當(dāng)預(yù)計(jì)經(jīng)費(fèi)不能支持時(shí),應(yīng)當(dāng)考慮將項(xiàng)目分期實(shí)施。在系統(tǒng)上、技術(shù)上對(duì)用戶進(jìn)行引導(dǎo)性建議,使用戶了解集成商所要進(jìn)行的工作,了解集成商是為了幫助用戶實(shí)現(xiàn)他的需要、達(dá)到用戶的目的,而不僅僅是為了賺錢,用戶更了解集成商,也更了解自己的系統(tǒng),有利于以后的項(xiàng)目合作、工程實(shí)施和系統(tǒng)維護(hù)。
分析用戶曾用系統(tǒng)模式、數(shù)據(jù)結(jié)構(gòu)和庫模式,看是否保持、共用、轉(zhuǎn)換,這涉及保護(hù)用戶投資的問題。根據(jù)現(xiàn)在工作業(yè)務(wù)流情況確定現(xiàn)有的工作模式,還應(yīng)兼顧將來可能會(huì)發(fā)生的變化、擴(kuò)展、新規(guī)定,及與同國際接軌可能的帶來的變化??疾楣こ虒?shí)施環(huán)境是否有保證,尤其是網(wǎng)絡(luò)工程,必須在需求調(diào)查時(shí)充分了解用戶領(lǐng)域的實(shí)施環(huán)境,當(dāng)不具有實(shí)施環(huán)境時(shí),要求進(jìn)行配套設(shè)計(jì)和環(huán)境改造。
  7編寫需求文擋和進(jìn)行需求評(píng)審與其他項(xiàng)目小組成員協(xié)作完善系統(tǒng)需求
文檔資料是集成商重要的財(cái)富,貫穿于系統(tǒng)集成和項(xiàng)目開發(fā)的整個(gè)過程,其中包括法律文檔、技術(shù)文檔、資料文擋。文擋要求完整性、一致性、可修改性、可跟蹤性。
以原來的需求為基礎(chǔ)的工作完成后,要修補(bǔ)需求錯(cuò)誤需要大量的工作,研究表明:比起在需求開發(fā)階段由客戶發(fā)現(xiàn)的一個(gè)錯(cuò)誤,然后更正這一錯(cuò)誤需要多花到倍的時(shí)間。因此,需要進(jìn)行需求評(píng)審。需求審查結(jié)束的標(biāo)準(zhǔn)為:已經(jīng)明確闡述了審查員提出的所有問題、已經(jīng)正確修改了文檔、修訂過的文檔已經(jīng)進(jìn)行了語法檢查、所有TBD問題都已經(jīng)解決、文檔歸檔。
需求文檔完成之后,并不是把它扔給后面的設(shè)計(jì)人員就了事了。作為項(xiàng)目組其他成員,對(duì)需求的有效性也起到某種程度的驗(yàn)證作用。雖然軟件項(xiàng)目的生命周期按照各種開發(fā)模型有不同階段的劃分,但每個(gè)階段的結(jié)束不是簡單地把階段工作成果塞給下一階段的成員就可以了。特別是高科技的軟件開發(fā)項(xiàng)目,上一階段的工作成果往往要通過多次的溝通才能更為清晰地被下一階段成員接受,其有效性、合理性也要被下一階段的工作所檢驗(yàn),通過檢驗(yàn)有時(shí)也有必要對(duì)上一階段的工作結(jié)果進(jìn)行相應(yīng)的調(diào)整,需求分析也是如此。因此,無論是同一階段不同人員之間,或是不同階段人員之間都應(yīng)根據(jù)需要相互協(xié)作,相互配合,共同完成軟件開發(fā)任務(wù)。
20700