女人久久久www免费人成看片,国内自拍偷拍网,国产一区二区三区免费在线观看,欧美精品三区四区,91久久国产综合久久91,欧美成人精品第一区二区三区 ,美女成人在线观看

專業(yè)信息系統(tǒng)項目管理師網站|培訓機構|服務商(2021信息系統(tǒng)項目管理師學習QQ群:89253946,客服QQ:800184589)

軟題庫 培訓課程
當前位置:信管網 >> 信息系統(tǒng)項目管理師 >> 其它資料 >> 文章內容
需求管理論文:軟件項目中要勇于直面需求變更
來源:信管網 2011年05月31日 【所有評論 分享到微信
    摘要:作者針對當前軟件系統(tǒng)建設中普遍存在的需求變更問題提出了自己的見解,并提出除了從客觀上采取加強培訓和代價分析等方法外,更重要的是通過采用合理的分析設計方法,進行可擴展性設計可以有效地降低需求變更引起的風險和維護代價,并給出了可擴展性設計的一個具體例子。軟件系統(tǒng)開發(fā)過程中的需求變更問題作為軟件開發(fā)人員或者軟件系統(tǒng)客戶,相信我們都遭遇過因為需求變更而需要修改系統(tǒng)的情況,一般說來客戶會要求改變界面,改變操作方式,甚至改變業(yè)務,說,當時我是那樣要求的,不過現(xiàn)在我們的業(yè)務調整了…這時需要中斷正在進行的工作,需要查證以往的資料,需要修正計劃,需要…
  需求包括業(yè)務需求、用戶需求和功能需求。業(yè)務需求(Business Requirement )反映了組織機構或客戶對系統(tǒng)、產品高層次的目標要求,用戶需求(User Requirement )描述了用戶使用產品必須完成的任務,功能需求(Functional Requirement )定義了開發(fā)人員必須實現(xiàn)的軟件功能。在軟件系統(tǒng)開發(fā)過程中,有很多問題都是由于在需求分析階段沒有正確地收集、編寫、協(xié)商、修改產品真實需求而產生的,造成這樣的狀況有幾方面的原因:
    對需求的理解分歧當客戶向需求分析人員提出需求的時候往往是通過自然語言來表達的,這樣的表達對于真實的需求來說是一種描述(甚至只是某個角度的描述),遠遠不能保證這樣的描述可以得到百分之百的正確理解,也許在同客戶交流的第一時刻就埋下了理解分歧的種子,打一個比方說客戶說我要的是大象,身子象一堵墻,耳朵象扇子,四條腿象四根柱子,尾巴象繩子,分析人員想,哦,墻、扇子、柱子、繩子這些我都知道,但是真的畫出來的時候客戶當然會跳起來了!這是理解分歧的問題,一般跟分析員的知識、背景,還有客戶表述的標準程度、雙方的交流情況有關;系統(tǒng)實施時間過長一個大中型系統(tǒng)的建設可能要延續(xù)一段時間,當客戶提出要求之后,他當時并不能看到系統(tǒng)的運行情況,當雙方認為理解大概沒有分歧的時候(事實上還會有個Deadline ),開發(fā)方就開始工作了。當客戶拿到差不多可以試用的產品時他可以實際操作,這時候他就會對系統(tǒng)的界面、操作、功能、性能等有一些切身的體會,有可能提出需求變更要求;客戶具體情況不一當前客戶的情況不一,有可能客戶行業(yè)的競爭度高,需要隨時作出調整和反應,那么他們自然會經常提出需求變更的要求;也有可能客戶所在的行業(yè)操作不規(guī)范,本身存在很多人為因素,這時候開發(fā)方更是需要隨時準備應變;開發(fā)本身要求有可能是來自開發(fā)方自身版本升級或性能改進、設計修正的要求出現(xiàn)需求變更,這時更是無法繞開這個問題的了!所以說就算分析人員和客戶之間不存在理解分歧,客戶對于實際的系統(tǒng)還是會提出一些個人意見,就算沒有個人意見,他們自己的業(yè)務會變化或環(huán)境發(fā)生變化,這些都是無法避免的,所以不要夢想那么理想的需求分析,當你開始一個項目的時候就應該意識到,客戶需求變更一定會有的,那么對于這樣的現(xiàn)狀,我們該怎么辦呢?客戶是上帝,難道我們就象以前一樣,跟著客戶的需求不停地修改軟件,到最后工期延長,員工疲憊,成本成倍增長,客戶滿意度降低,原來的設計也會改變得支離破碎,系統(tǒng)難以維護?客觀面對需求變更如果需求一定會變化,如果我們不得不面對,如果我們已經痛定思痛,想要變革,那么還有什么辦法可以改善我們的現(xiàn)狀答案是有的。加強人員培訓從客觀方面可以采取的措施來說,首先,我想不容置疑的是加強對需求分析人員的培訓,盡可能增強軟件系統(tǒng)、行業(yè)的背景知識,提高與客戶的溝通能力,增強服務意識和責任感,因為將要開發(fā)的系統(tǒng)直接建立在需求分析的基礎上;同時規(guī)范需求分析人員和客戶溝通的方式,以及規(guī)范需求說明的格式,如果可能的話,盡量采取象XP 的UserStory ,或者用戶可以理解的用例圖來對需求進行標準、規(guī)范的描述,保證雙方在工具的協(xié)助下對需求達到共同的認識,這一點是老生常談,就不多說。
    確定文檔的有效性(Validity )順便要提的一句是關于文檔,需求文檔是相當重要的,可是目前存在一種奇怪的現(xiàn)象,本來說必須要有文檔,而且是按照某種特定的格式,當然這沒有錯,但接下來,卻沒有人關心文檔的真正內容是否正確,格式是否真的合理,是否實用(而且很多情況下是在幾天時間里趕出來或補上去的),例如我遇到一個例子,需要在原來的需求基礎上進行后續(xù)開發(fā),文檔找到了,完全符合格式的要求,但是我在里面找到的線索是有限的,結果是自己花幾天的時間查找數(shù)據表結構、甚至查看數(shù)據表的內容,詢問當時的開發(fā)人員,才分析到所要的關系,這種情況在設計文檔里也存在,所以同時提一提,希望我們的開發(fā)人員、PM 以及各級領導可以注意文檔的有效性和有用性問題,甚至對文檔的格式進行一下合理性檢查。建立代價估算(Cost Estimate )概念這一點對開發(fā)方和客戶同樣重要,因為如果出現(xiàn)需求變更,不可避免將帶來成本的增加、開發(fā)時間延長等不良后果,這樣的影響是雙方的。這時候需要區(qū)分需求變更的原因,是客戶方必要/不必要的要求,還是由于開發(fā)方的工作失誤,還是雙方都有原因,然后對現(xiàn)實情況進行分析,得出雙方實現(xiàn)變更需求的需要的成本,包括時間,人力,資源等等方面,再與客戶商討是否必要進行變更和如何在最小代價下實現(xiàn)變更。當客戶看到實際的代價估算,他們也會再一次慎重地考慮需求變更問題,也會更容易理解系統(tǒng)建設中的進行狀況,自然開發(fā)方也不用負擔所有的需求變更成本,所以進行成本分攤還是有其積極意義的。當然還有建立需求變更版本控制等等專業(yè)的需求管理,在這里不做專門論述。從軟件分析和設計著手前面說了面對需求變更的幾種策略,那么從軟件系統(tǒng)分析和設計的角度來看,通過采用合理的分析設計方法,進行可擴展性設計可以有效地降低需求變更引起的風險和維護代價。
    采用OO 技術
    采用OO 技術可以建立易于改變和加強可重用性的軟件系統(tǒng)。
    對于OO 技術,我想現(xiàn)在已經不是什么陌生的概念:
  1 封裝(Encapsulation )可以把問題影響的范圍縮小,外部的變化要求對系統(tǒng)的影響可以限定到某個類層次或某些類層次中,從而改變系統(tǒng)的一部分相對簡單;
  2 繼承(Inheritance )可以使改變基于原有技術基礎,很大程度上減少重復開發(fā)工作;
  3 多態(tài)(Polymorphism )的應用可以使開發(fā)和設計人員在相對統(tǒng)一的接口下更改系統(tǒng)的實現(xiàn)細節(jié),從而改變系統(tǒng)的行為;
  4 而且由于對OO 的類體系結構業(yè)界有非常清楚明晰的描述方式,就是目前規(guī)范的描述語言-UML ,非常易于被開發(fā)組的理解并達成共識,促進開發(fā)組成員之間的合作以及加強軟件開發(fā)工作的可延續(xù)性;可見本身即是一種增強軟件可維護性、健壯性以及保持設計穩(wěn)定性的一種分析和設計方法,本身可以在一定程度上快速對需求變更進行反應,并可相對減少需求變更需要的成本。(OO 的意義在于分析和設計軟件系統(tǒng)的思考方式,以及建立對象庫以后的軟件重用將給軟件系統(tǒng)的開發(fā)帶來質的改變,但是在建立OO 開發(fā)體系之前的過程,一定會是一段荊棘遍布的路,需要付出加倍的努力以及達成思想的轉變。這里還有一個誤區(qū)需要澄清的是很多人以為用了C++,PB ,VB ,DELPHI 就是面向對象的開發(fā)了,其實只是用了一些面向對象的工具,骨子里仍然是結構化的分析和設計方法,套上一層OOP 的外殼而已。)可擴展性設計(Extensible-Design )
  其次,從我們可以控制的軟件設計來說,怎樣進行合適的設計才能最大程度減少需求變更帶來的代價?
  許有人說,我的設計極為靈活,我已經預計了客戶可能提出的要求,并設計幾種應對的方式,到時候客戶提出來,呵呵,我已經解決了。這樣的想法不錯,至少比僵硬的設計強,但是誰可以保證設計者可以預知以后的需求變化?而同時為了達到這種靈活(萬能/多能?)的設計,設計將變得復雜,而且可能那些多余的設計從來不會被用到?復雜的設計將增加實現(xiàn)的難度和提高成本,并有可能帶來潛在的Bug ,使得系統(tǒng)難以維護。
設計的思想應該有一些小小的轉變,那就是,設計確實要靈活,但是要體現(xiàn)在可擴展性上面,也就是說,設計可以簡單,但是一定要易于轉變,需要給出便于改變的接口,這一點很重要。
結論
  可見,在面對需求變更時,除了客觀上可以通過人員培訓、代價分析等管理方式進行有效的需求管理外,從分析和設計的角度可以通過采用合理的分析和設計方法,還有改變我們設計的意識,可以做到對需求變更的靈活應對,至少可以在一定程度上降低維護代價和提高用戶滿意度。軟件需求的管理和控制是非常專業(yè)的學問,作者在這里結合自己的實踐提出一些粗淺的認識,只是想起到一個拋磚引玉的作用,希望大家可以一起來面對和想辦法解決我們在系統(tǒng)開發(fā)過程中的實際問題,我想那樣才是我真正想達到的目的。
 
掃碼關注公眾號

溫馨提示:因考試政策、內容不斷變化與調整,信管網網站提供的以上信息僅供參考,如有異議,請以權威部門公布的內容為準!

信管網致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。

信管網軟考課程由信管網依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。

相關內容

發(fā)表評論  查看完整評論  

推薦文章