<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    談談如何應對軟件開發中的需求變更

     令人煩惱的需求變更

      在軟件開發中,大家都會遇到過這樣的問題:客戶的一個新想法,就推翻了之前與客戶經過再三討論而確認定下來的需求。如果是功能性需求變更還會讓人容易接受一些,畢竟功能性需求不實現的話,是會大大影響到軟件產品的質量。但是一些非功能性的變更會讓人很頭疼,許多是看起來無關痛癢的、雞毛蒜皮的變更,卻是極為令人無語和無奈,甚至是煩惱和厭惡的。

      (1)什么是軟件需求?

      在IEEE中,軟件需求的定義是:用戶解決問題或達到目標所需的條件或功能。一般包含業務需求、用戶需求、功能需求、行業隱含需求和一些非功能性需求。業務需求反映了客戶對系統、產品高層次的目標要求;功能需求定義了開發人員必須實現的軟件功能。所謂非功能性需求,是指為滿足用戶業務需求而必須具有除功能需求以外的特性。包括系統性能、可靠性、可維護性、易用性和對技術和對業務適應性等。其中最常見的是軟件界面、操作方便等一系列要求。

      (2)非功能性需求變更的特點

      讓我們從客戶角度和開發人員角度去看看非功能性需求的特點。首先,有些非功能性小需求從客戶角度看起來工作量不大,但是實際上開發人員要耗費比較長的時間去完成這些小功能。其次,許多非功能性需求,如界面美觀、操作方便等都是客戶頭腦一熱、或領導一拍腦袋就部署下去的需求,往往是原來在需求分析階段所沒有注意的內容。

      其實,非功能性需求是常常被輕視,甚至被忽視的。原因是非功能性需求描述很困難,它很難像功能性需求那樣,可以通過結構化和量化的詞語來描述清楚。在描述這類需求時候,我們經常采用軟件性能要好、操作要方便、軟件界面要美觀大方等較模糊的描述詞語。例如,易用性就同時涉及到美工和UI界面、人機工程、交互式設計、心理學、用戶行為模式等內容。這類描述詞語都是脫離了軟件的執行環境,是對人和相關的場景的描述,因此很難體現到軟件架構設計和具體的實現中。

      國內的很多軟件公司,對于這種情況趨之若鶩,認為是負擔,影響軟件公司的工作安排,工作量以及工作進度,直接導致了軟件公司的效益,幾乎是很多軟件公司的最大隱患,因此我們如何認識、對待這個普遍存在的問題就成了軟件公司以及員工需要解決的問題;

      1)首先,要從心理上徹底根除對需求變更的恐懼,從認識上明確需求變更是軟件開發過程中不可缺少的部分,從方針上明確需求變更的存在性和必然性;

        a)從軟件公司角度,認清自身存在的不足, 客觀面對需求的變更

        b)從職員角度,提高本身的業務和技術能力

      2)從技術角度上使需求變更的處理簡單化,明確化,增加可維護性;

        a)使用更好的技術手段,設計更靈活以用來適應更多變的需求;

        b)使用更完善的軟件工程的理念,讓軟件各個步驟細化,更易維護和修改;

        c)使用完善的測試流程,最大的降低需求變更帶來的軟件風險;

      3)對需求變更進行有效的管理,讓需求變更可以規范化管理,做到有效的處理需求的變更,用有限的資源獲得最大的效益;

        a)軟件的初期,就要考慮最大限度的減少將來可能存在的需求變更

        b)需求的控制,減少需求的來源,過濾不合理的需求

        c)文檔化管理,有備可查,有據可依;

        d)合適的公司體制和運作,找到一條適合自己公司發展的運作體制和管理模式;

      可能大家覺得上面說的話有些空,那么我就從技術角度上再具體的談談。

      就像剛才說過的,需求變更是必然存在的。從技術的角度來降低或避免需求變更給我們帶來的影響就顯得極為重要。

      1、設計之初,充分理解需求,更好對需求進行整理和規劃,預測可能變更的需求。

      需求難做,業務難做,非功能性的需求變更更是難做。所以當我們在收集了用戶需求后,不僅僅是簡單的分類,然后按部就班的開發,而是要深入挖掘需求,一些看似固定業務的需求,可能由于業務的變更而使得你的系統不能使用。我們要做的就是拆分需求,把一些可能會發生變化的需求拆開,改成工作流程可配置的。就像面向過程轉向面向對象的那樣,面向過程是死的,而面向對象重新組合后,就特別簡單。

      就說說我們剛做的這個收銀系統吧,用戶要求結賬時,要打印小票,并自動打開錢箱。這就是最最原始的需求。但是我們最終把它做成了這樣:打印機是外部設備,可以增刪和配置;打印次數可配置;打印樣式可配置;打印時,要判斷打印機狀態,非正常狀態要給出各種提示(不一一列舉);錢箱可以自動打開,也可以手動打開。另外還設定了許多功能配置:如禁用/啟用全部打印機,禁用/啟用某個打印機,是否打印訂單小票,是否自動打開錢箱,是否顯示錯誤提示信息等等(如圖)。

      我們把這個固定的需求,拆分成可配置的,這樣就把這個需求可能的變更已經分析的差不多了。不論它怎么變化,我們的應對都會變得從容。就在前2天部署的時候出現問題了,打印機是新買的,不只是什么原因,在打印多個換行之后,就會失敗,不能繼續打印。這個問題是我們所料不及的,因為我們測的我們這里的所有打印機,都完美打印,而新買的也是同品牌,同型號的打印機。最終分析出這個問題后,我們不用更改系統,只要修改一下小票樣式配置,就可以完美打印了。

      小票樣式設定(圖):

      硬件設置(圖):

      單個打印機設置(圖):

      功能設置(圖):

      2、系統完成之后,客戶再提新需求后,要分析這個需求的深層次含義,分析客戶要的到底是什么。對于一些需求,如果適合于大部分客戶,而且改動很少,就可以完成,那么可以在下個升級版本中集成。而對于某些非功能性的需求,改動太大,或者基本的核心功能都需要更改的話,那么就不要先去急著實現,而是放置起來,等待系統需要進行大的升級或者重構時,再考慮添加。而且要防止客戶濫用提需求的權力,對于一些不合理的需求,還要去引導客戶,讓他們理解這個功能的不合理的地方,從而重新修改需求或者放棄。


    posted on 2013-05-15 10:17 順其自然EVO 閱讀(310) 評論(0)  編輯  收藏 所屬分類: requirement and analysis

    <2013年5月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费国产污网站在线观看| 亚洲成在人线av| 最近免费视频中文字幕大全| 免费观看亚洲人成网站| 亚洲欧洲国产综合| 亚洲精品自产拍在线观看| 国产精品成人无码免费| 国产精品成人免费福利| 大地资源中文在线观看免费版| 亚洲aⅴ无码专区在线观看春色| 亚洲成aⅴ人片在线观| 国产精品亚洲精品日韩已满| 深夜国产福利99亚洲视频| 好大好硬好爽免费视频| 国产一卡2卡3卡4卡2021免费观看| 日韩视频在线观看免费| 中文在线免费视频| 久久99久久成人免费播放| 免费亚洲视频在线观看| 亚洲AV日韩综合一区| 亚洲性无码AV中文字幕| 亚洲xxxx18| 亚洲高清中文字幕免费| 亚洲av永久无码精品天堂久久 | 国产亚洲综合一区二区三区| 最新亚洲春色Av无码专区| 亚洲国产精品一区二区久| 激情内射亚洲一区二区三区| 亚洲AV日韩AV鸥美在线观看| 亚洲欧洲无码AV电影在线观看| 久久精品国产亚洲7777| 亚洲午夜福利精品无码| 国产自偷亚洲精品页65页| 久久久久亚洲AV成人网人人软件| 亚洲视频在线免费| 久久久久一级精品亚洲国产成人综合AV区 | 国产传媒在线观看视频免费观看| 免费观看男人免费桶女人视频 | 亚洲综合国产成人丁香五月激情 | 1000部啪啪未满十八勿入免费| 永久看日本大片免费35分钟 |