[摘 要] 對(duì)軟件開發(fā)中的需求變更的產(chǎn)生原因及對(duì)項(xiàng)目的影響做了分析和討論,介紹和研究了不同方法學(xué)中對(duì)于需求變更管理的要求和處理過程,并對(duì)這些主流的方法學(xué)中的變更管理過程做了一些總結(jié)和比較。
[關(guān)鍵詞]軟件工程 需求分析 系統(tǒng)分析
軟件工程 (Software Engineering,簡(jiǎn)稱為SE)是一門研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的和高質(zhì)量的軟件的學(xué)科。它涉及到程序設(shè)計(jì)語(yǔ)言,數(shù)據(jù)庫(kù),軟件開發(fā)工具,系統(tǒng)平臺(tái),標(biāo)準(zhǔn),設(shè)計(jì)模式等方面。在現(xiàn)代社會(huì)中,軟件應(yīng)用于多個(gè)方面。典型的軟件比如有電子郵件,嵌入式系統(tǒng),人機(jī)界面,辦公套件,操作系統(tǒng),編譯器,數(shù)據(jù)庫(kù),游戲等。同時(shí),各個(gè)行業(yè)幾乎都有計(jì)算機(jī)軟件的應(yīng)用,比如工業(yè),農(nóng)業(yè),銀行,航空,政府部門等。這些應(yīng)用促進(jìn)了經(jīng)濟(jì)和社會(huì)的發(fā)展,使得人們的工作更加高效,同時(shí)提高了生活質(zhì)量。
一、軟件工程系統(tǒng)需求分析
需求分析包括提煉、分析和仔細(xì)審查已收集到的需求,以確保所有的風(fēng)險(xiǎn)承擔(dān)者都明白其含義并找出其中的錯(cuò)誤、遺漏或其它不足的地方。分析員通過評(píng)價(jià)來確定是否所有的需求和軟件需求規(guī)格說明都達(dá)到了優(yōu)秀需求說明的要求。分析的目的在于開發(fā)出高質(zhì)量的需求,這樣就能做出實(shí)用的項(xiàng)目估算并可以進(jìn)行設(shè)計(jì)、構(gòu)造和測(cè)試。通常,把需求中的一部分用多種形式來描述,如同時(shí)用文本和圖形來描述。分析這些不同的視圖將揭示出一些更深的問題,這是單一視圖無(wú)法提供的。分析還包括與客戶的交流以澄清某些混淆,并明確哪些需求是更為重要的。其目的是確保所有風(fēng)險(xiǎn)承擔(dān)者盡早地對(duì)項(xiàng)目達(dá)成共識(shí)并對(duì)將來的產(chǎn)品有個(gè)相同而清晰的認(rèn)識(shí)。
二、軟件開發(fā)工程中需求分析的重要性
作為一個(gè)整體工程,軟件生命周期的各個(gè)時(shí)期和階段是無(wú)法區(qū)分重要性的大小。在這里,針對(duì)上述一些錯(cuò)誤觀念,只想闡述一下軟件開發(fā)工程中需求分析的重要性。軟件需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。通過對(duì)應(yīng)問題及其環(huán)境的理解與分析,為問題涉及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化、完全化,最終形成需求規(guī)格說明,這一系列的活動(dòng)即構(gòu)成軟件開發(fā)生命周期的需求分析階段。其在整個(gè)軟件開發(fā)過程中的重要性主要表現(xiàn)在以下3點(diǎn):
1. 需求分析是獲得用戶需求的有效途徑
開發(fā)軟件是為用戶服務(wù)的。為了開發(fā)出真正滿足用戶需求的軟件產(chǎn)品.首先必須知道用戶的需求。對(duì)軟件需求的深入理解是軟件開發(fā)工作獲得成功的前提條件,不論軟件開發(fā)工作者把設(shè)計(jì)和編碼工作做得如何出色.不能真正滿足用戶需求的程序只能是偏離軟件開發(fā)的正確方向,只會(huì)使用戶失望,給開發(fā)者帶來煩惱。
2. 需求分析是決定項(xiàng)目成功的關(guān)鍵因素
需求分析是一個(gè)項(xiàng)目的開端,也是項(xiàng)目建設(shè)的基石。在以往的建設(shè)失敗的項(xiàng)目中80%的是由于需求分析的不明確而造成的。因此一個(gè)項(xiàng)目成功的關(guān)鍵因素之一,就是對(duì)需求分析的把握程度,項(xiàng)目的整體風(fēng)險(xiǎn)具體就表現(xiàn)在需求分析不明確、業(yè)務(wù)流程不合理上,用戶不習(xí)慣或者不愿意去用承建方的軟件,或者很難去用,從而造成了項(xiàng)目失敗。
3. 需求分析是系統(tǒng)分析和軟件設(shè)計(jì)的橋梁
需求分析過程是確定顧客需求的過程。而一個(gè)項(xiàng)目的軟件工程師與他們的顧客往往使用不同的詞匯:顧客知道自己的需要,卻不懂得如何用計(jì)算機(jī)技術(shù)實(shí)現(xiàn);而軟件設(shè)計(jì)人員和程序員往往缺乏理解實(shí)際事物的運(yùn)行過程和商業(yè)過程的技巧。那么使用通過專門訓(xùn)練的專業(yè)的作業(yè)或系統(tǒng)分析員,就填補(bǔ)了商業(yè)和電腦世界之間的鴻溝。他們從持有關(guān)鍵信息的用戶獲得可用的信息,并把這些用戶信息轉(zhuǎn)化為清晰的和完整的形式。這些能被軟件工