需求工程和過程_第1頁
需求工程和過程_第2頁
需求工程和過程_第3頁
需求工程和過程_第4頁
需求工程和過程_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、需求工程和過程2.1 需求工程概述 需求工程是軟件工程的核心組成部分,是指應(yīng)用有效的技術(shù)、方法進(jìn)行需求分析,確定客戶需求,幫助分析和設(shè)計人員理解問題,并定義目標(biāo)系統(tǒng)的一門學(xué)科。 它把整個軟件需求工程研究領(lǐng)域劃分為需求開發(fā)和需求管理兩部分。2.1 需求工程概述需求開發(fā)活動內(nèi)容獲取每個用戶類的需求。確定產(chǎn)品所期望的用戶類。了解實際用戶任務(wù)和目標(biāo)以及這些任務(wù)所支持的業(yè)務(wù)需求。分析源于用戶的信息,以區(qū)別用戶任務(wù)需求、功能需求、業(yè)務(wù)規(guī)則、質(zhì)量屬性。將系統(tǒng)級的需求分為幾個子系統(tǒng),并將需求中的一部份分配給軟件組件。例了解相關(guān)質(zhì)量屬性的重要性。商討實施優(yōu)先級的劃分。例將所收集的用戶需求編寫成規(guī)格說明和模型。評

2、審需求規(guī)格說明,確保對用戶需求達(dá)到共同的理解與認(rèn)識。例用戶類用戶是可分不同類型的,舉例如下:DZ在各種論壇的地位是有目共睹的,特別是BT下載論壇和娛樂論壇,而且用戶的需求是不同的,因此,建議開發(fā)不同功能的Discuz!4.0版本,適應(yīng)不同用戶需求。建議開發(fā):1、標(biāo)準(zhǔn)版,適合一般用戶和可以自己添加修改插件等用戶。2、娛樂版,適合電影、游戲、休閑等論壇和下載論壇,可以集成更多的娛樂插件。3、插件版,適合對Discuz!不熟悉,不能自己修改添加插件、喜歡全功能的用戶。 也可以把2、3合并。需求的變化和改動笑話一則:距離史記載,沒有一個軟件的需求改動少于三次。唯一只改動需求兩次的客戶是個死人。這個可憐

3、的家伙還是在運(yùn)送第三次需求的路上被車子撞死的。 (cline 1995)問題是:如何來管理好需求呢?需求管理主要包括:建立基線、需求跟蹤、變更控制等幾個方面。需求管理活動內(nèi)容定義需求基線(迅速制定需求文檔的主體)。評審提出的需求變更、評估每項變更的可能影響從而決定是否實施它。使當(dāng)前的項目計劃與需求一致。估計變更需求所產(chǎn)生影響并在此基礎(chǔ)上協(xié)商新的承諾(約定)。讓每項需求都能與其對應(yīng)的設(shè)計、源代碼和測試用例聯(lián)系起來以實現(xiàn)跟蹤。在整個項目過程中,跟蹤需求狀態(tài)及其變更情況。需求開發(fā)與需求管理之間的界限圖2.2 軟件需求與產(chǎn)品生命周期 軟件產(chǎn)品經(jīng)歷需求、分析、設(shè)計、實現(xiàn)、部署后,軟件將被使用并進(jìn)入維護(hù)階

4、段,直到最后逐漸消亡。這樣一個過程,叫軟件生命周期模型。軟件生命周期模型一 .瀑布模型(線性模型)二. RAD(快速應(yīng)用開發(fā))模型三. 螺旋模型四. RUP(Rational United Process)五. 如何根據(jù)需求選擇生命周期模型軟件生命周期模型 瀑布模型規(guī)定了各項軟件工程活動,包括:制定開發(fā)計劃,進(jìn)行需求分析和說明,軟件設(shè)計,程序編碼,測試及運(yùn)行維護(hù),并且規(guī)定了它們自上而下,相互銜接的固定順序,如同瀑布流水,逐級下落。它是軟工中基本模型。 一. 瀑布模型(線性模型)軟件生命周期模型瀑布模型圖軟件生命周期模型傳統(tǒng)瀑布模型開發(fā)軟件的特點(diǎn)階段間具有順序性和依賴性推遲實現(xiàn)的觀點(diǎn)每個階段必須

5、完成規(guī)定的文檔和成果每個階段結(jié)束前完成文檔審查, 盡早改正錯誤軟件生命周期模型 快速應(yīng)用開發(fā)模型強(qiáng)調(diào)極短的開發(fā)周期,是線性順序模型的一個“高速”變種,通過使用基于構(gòu)件的建造方法贏得了快速開發(fā)。如果需求理解得很好且約束了項目范圍,它的過程使得隊伍在很短時間內(nèi)創(chuàng)建出“功能完善的系統(tǒng)”。二.RAD(快速應(yīng)用開發(fā))模型軟件生存周期模型一. 需求計劃 采用聯(lián)合需求計劃技術(shù)來收集需求信息,以結(jié)構(gòu)化方式(自頂向下、逐步求精、模塊化設(shè)計 )討論現(xiàn)有業(yè)務(wù)問題。二. 用戶描述 采用聯(lián)合應(yīng)用設(shè)計來管理用戶的參與,開發(fā)團(tuán)隊快速捕捉系統(tǒng)非技術(shù)設(shè)計階段的用戶信息。三. 構(gòu)建 包括詳細(xì)設(shè)計、創(chuàng)建(編碼和測試)以及在某時間內(nèi)

6、發(fā)布給客戶。四. 結(jié)束 用戶驗收測試、系統(tǒng)安裝和用戶培訓(xùn)。 RAD模型的階段軟件生存周期模型RAD(快速應(yīng)用開發(fā))模型圖60-90天需求計劃用戶描述構(gòu)建結(jié)束開發(fā)工作量RAD使用模型的條件系統(tǒng)可基于構(gòu)件開發(fā)和可縮放。用戶能參與到整個生命周期中。項目開發(fā)周期短。項目團(tuán)隊熟悉應(yīng)用領(lǐng)域,能熟練使用開發(fā)工具。舉例:某集團(tuán)公司的OA系統(tǒng),煙草公司的資金結(jié)算系統(tǒng)等等。軟件生存周期模型三.螺旋模型 對于復(fù)雜的大型軟件,開發(fā)一個原型往往達(dá)不到要求。螺旋模型加入了風(fēng)險分析。 螺旋模型沿著螺線旋轉(zhuǎn),在笛卡爾坐標(biāo)的四個象限上分別表達(dá)了四個方面的活動,即:1.制定方案確定軟件目標(biāo),選定實施方案,弄清項目開 發(fā)的限制條件

7、。2.風(fēng)險分析分析所選方案,考慮如何識別和消除風(fēng)險3.實施工程實施軟件開發(fā)4.評估評價開發(fā)工作,提出修正建議和相應(yīng)計劃 沿螺線自內(nèi)向外每旋轉(zhuǎn)一圈便開發(fā)出更為完善的一個新的軟件版本。 軟件生命周期模型螺旋模型圖 評估舉例:某集團(tuán)公司的ERP系統(tǒng)建設(shè)RUP簡介 Rational Unified Process(簡稱RUP)是一套軟件工程過程,它又是文檔化的軟件工程產(chǎn)品,由Rational公司開發(fā)、維護(hù)并銷售。 RUP又是一套軟件工程方法的框架,各個組織可根據(jù)自身的實際情況,以及項目規(guī)模對RUP進(jìn)行裁剪和修改,以制定出合乎需要的軟件工程過程。RUP簡介 RUP吸收了多種開發(fā)模型的優(yōu)點(diǎn),具有很好的可操

8、作性和實用性、從它一推出市場,憑借Rational在業(yè)界的領(lǐng)導(dǎo)地位、以及與統(tǒng)一建模語言(Unified Model Language,以下簡稱UML)的良好集成、多種CASE工具的支持、不斷的升級與維護(hù),迅速得到業(yè)界廣泛的認(rèn)同,越來越多的組織(如IBM、Microsoft、Sun)以它作為軟件開發(fā)模型框架。RUP簡介 RUP二維開發(fā)模型RUP可以用二維坐標(biāo)來描述。橫軸通過時間組織,是過程展開的生命周期特征,體現(xiàn)開發(fā)過程的動態(tài)結(jié)構(gòu),用來描述它的術(shù)語主要包括周期、階段、迭代和里程碑;縱軸以內(nèi)容來組織為自然的邏輯活動,體現(xiàn)開發(fā)過程的靜態(tài)結(jié)構(gòu),用來描述它的術(shù)語主要包括活動、產(chǎn)物、工作者和工作流。 RU

9、P簡介 RUP中的軟件生命周期在時間上被分解為四個順序的階段,分別是:初始階段、細(xì)化階段、構(gòu)造階段和交付階段。每個階段結(jié)束于一個主要的里程碑;每個階段本質(zhì)上是兩個里程碑之間的時間跨度。在每個階段的結(jié)尾執(zhí)行一次評估以確定這個階段的目標(biāo)是否已經(jīng)滿足。如果評估結(jié)果令人滿意的話,可以允許項目進(jìn)入下一個階段。 RUP開發(fā)過程中的各個階段和里程碑RUP簡介 RUP中的每個階段可以進(jìn)一步分解為迭代。一個迭代是一個完整的開發(fā)循環(huán),產(chǎn)生一個可執(zhí)行的產(chǎn)品版本,是最終產(chǎn)品的一個子集,它增量式地發(fā)展,從一個迭代過程到另一個迭代過程到成為最終的系統(tǒng)。RUP的迭代開發(fā)模式圖RUP簡介 1.開發(fā)復(fù)用。減少開發(fā)人員的工作量,

10、保證軟件質(zhì)量 2. 可降低風(fēng)險 3.對需求進(jìn)行有效管理 4.可視化建模(使用ROSE工具) 5.使用組件體系結(jié)構(gòu),使軟件體系架構(gòu)更具彈性 6.貫穿整個開發(fā)周期的質(zhì)量核查 7.對軟件開發(fā)的變更控制 RUP的特點(diǎn)選擇生命周期模型的總結(jié) 需求情況 瀑布 模型 螺旋模型 RAD 迭代模型需求容易定義或明確嗎?是否是否能在早期確定需求嗎?是否是是周期中需求經(jīng)常變化嗎?否是是是基于需求特點(diǎn)選擇生命周期模型需求工程過程被認(rèn)為是建立軟件系統(tǒng)最重要的方面之一,在項目中,它涵蓋了與需求相關(guān)的所有活動。需求的開發(fā)過程Pressman的需求工程過程Boehm的需求工程過程 2.3 需求開發(fā)過程 2.3.1 需求開發(fā)過

11、程(1)需求開發(fā)是一個迭代的過程 2.3.1 需求開發(fā)過程(2)需求開發(fā)過程框架Pressman的需求工程過程需求獲取需求分析需求規(guī)格說明系統(tǒng)建模需求確認(rèn)需求管理使用在怎樣的需求環(huán)境中?Boehm的需求工程過程確定重要的涉眾確定滿足涉眾要求的條件確定2中的沖突因素協(xié)商滿足各方面要求的高層協(xié)議列出互相滿足要求的選項研究折中選項預(yù)期管理將協(xié)議融入SRS和計劃中重復(fù)1-8,直到完全開發(fā)完成面臨和解決新的風(fēng)險項目12345678910使用在哪些場合或項目中?需求工程的方法需求工程方法分成四類:1.面向過程,注重輸入輸出,如傳統(tǒng)的結(jié)構(gòu)化分析。2.面向數(shù)據(jù),強(qiáng)調(diào)數(shù)據(jù)結(jié)構(gòu),如E-R模型,DD描述。3.面向控

12、制,強(qiáng)調(diào)同步、并發(fā),如DFD圖。4.面向?qū)ο螅⒃趯ο箝g的交互基礎(chǔ)上,對對象模型、動態(tài)模型和功能模型三個方面對問題進(jìn)行描述,如以UML為基礎(chǔ)的Rose的建模工具。結(jié)構(gòu)化分析即使沒有明確指定,軟件項目組中也會有某個人會擔(dān)當(dāng)需求分析員的角色。企業(yè)的IS組織中,行使這一職責(zé)的專家被稱為業(yè)務(wù)分析員。對需求分析員的不同稱謂還包括系統(tǒng)分析員、需求工程師、需求經(jīng)理,也有簡稱分析員的。2.4 需求工程的角色系統(tǒng)分析員2.4.1 需求分析員的職責(zé)與要求需求分析員是對項目涉眾的需求進(jìn)行收集 、分析、記錄和驗證等職責(zé)的主要承擔(dān)者。如圖所示,需求分析員是用戶群體與軟件開發(fā)團(tuán)隊間進(jìn)行需求溝通的主要渠道。注意:不要指

13、望優(yōu)秀的開發(fā)人員或知識淵博的用戶可以自動成為優(yōu)秀的業(yè)務(wù)分析員,而不需要為他們提供培訓(xùn)、鍛煉、學(xué)習(xí)資料和指導(dǎo)。崗位職責(zé):1.收集、整理、分析、提煉、跟蹤、控制用戶的產(chǎn)品需求;2.編寫產(chǎn)品需求說明書,準(zhǔn)確描述和解釋業(yè)務(wù)需求;3.編寫設(shè)計文檔,引導(dǎo)UI設(shè)計師制作產(chǎn)品原型(可選);4.編寫詳細(xì)產(chǎn)品需求分析書,提供給軟件開發(fā)工程師,測試工程師。職位要求:1. 大學(xué)本科及以上學(xué)歷,專業(yè)不限;2. 具備N年以上軟件產(chǎn)品需求分析的工作經(jīng)驗;3. 具備較強(qiáng)的溝通和協(xié)調(diào)能力,引導(dǎo)用戶提出需求;4. 具備較強(qiáng)的需求分析能力,進(jìn)行業(yè)務(wù)需求整理、分析;5. 具有較強(qiáng)的領(lǐng)悟能力和學(xué)習(xí)能力,能迅速了解行業(yè)知識;6. 有較強(qiáng)

14、的語言和文字表達(dá)能力;規(guī)范的文檔寫作能力;(從畢設(shè)開始)7. 熟悉UML語言,能使用軟件工具進(jìn)行建模。2.4.1 需求分析員的職責(zé)與要求需求分析員 職位要求描述舉例計算機(jī)或相關(guān)專業(yè)畢業(yè),本科以上學(xué)歷,3年以上開發(fā)經(jīng)驗;熟悉面向?qū)ο蟮姆治?,設(shè)計和開發(fā)方法;熟悉UML,Rose,PowerDesigner等軟件工程建模工具;能夠進(jìn)行需求分析,編寫分析文檔及規(guī)格說明書;能夠熟練閱讀MSDN等英文資料;熟悉Windows操作系統(tǒng),熟悉Windows平臺下編程;熟悉C#,VC+或JAVA;熟悉系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)庫編程;熟悉測試方法,錯誤分析定位;有大型系統(tǒng)開發(fā)經(jīng)驗者優(yōu)先;一、 業(yè)務(wù)方面的二 、計算機(jī)方面的

15、1. 客戶不懂計算機(jī),不知道如何用計算機(jī)術(shù)語表達(dá)自己的業(yè)務(wù)需求。 2. 程序員不懂業(yè)務(wù),不知道代碼和業(yè)務(wù)類需求之間聯(lián)系。3. 只有系統(tǒng)分析員,既明白客戶的業(yè)務(wù)需求,也理解程序員的計算機(jī)術(shù)語,因此,他通過需求調(diào)研獲取用戶需求,然后編寫需求規(guī)格說明書,告訴程序員做什么。 系統(tǒng)分析員必須具有兩方面的知識2.4.2 需求分析員知識與技能下面列出需求分析員的技能:傾聽的技巧 交談和提問的技巧 大部分需求是通過討論得到的,因此,需求分析員必須能夠與不同的個人或小組就需求展開討論。分析能力 優(yōu)秀的需求分析員能夠以不同的方式思考問題。2.4.2 需求分析員知識與技能舉例:廈門某中心的調(diào)研協(xié)調(diào)能力 需求獲取過程

16、中,對相關(guān)人員進(jìn)行協(xié)調(diào)也是需求分析員必備的一項能力。觀察能力 觀察力敏銳的需求分析員能夠從不經(jīng)意的閑談中發(fā)現(xiàn)重要的信息。寫作能力 需求開發(fā)提交的主要結(jié)果是書面的需求規(guī)格說明,用于在客戶、營銷人員、管理人員和技術(shù)人員之間傳遞信息。組織信息能力 需求分析員需要處理獲取和分析過程中收集到的大量雜亂的信息。2.4.2 需求分析員知識與技能人際交往能力 需求分析員應(yīng)具備讓彼此利益競爭的人們進(jìn)行合作的能力。建模能力 每個需求分析員都應(yīng)該掌握從傳統(tǒng)的流程圖到結(jié)構(gòu)化的分析模型(數(shù)據(jù)流圖、實體關(guān)系圖等),直至當(dāng)今的統(tǒng)一建模語言(UML)等多種分析工具。2.4.2 需求分析員知識與技能能力的培養(yǎng)環(huán)境:實際項目 2

17、.4.3 需求分析員的工作 需求分析員是客戶與開發(fā)人員交流的中間人,負(fù)責(zé)將客戶對產(chǎn)品的初步想法轉(zhuǎn)化為明確的需求說明,用來指導(dǎo)開發(fā)工作。定義業(yè)務(wù)需求 需求分析員的第一項工作是幫助業(yè)務(wù)管理人、產(chǎn)品經(jīng)理或銷售經(jīng)理定義項目的業(yè)務(wù)需求(某大公司SAP上線的原因)。確定項目涉眾和用戶類別 前景和范圍文檔可幫助需求分析員分辨出產(chǎn)品的重要用戶群和其他涉眾。獲取需求需求分析員可能要用到下列信息收集方法:交談、需求討論會、文檔分析、調(diào)查、現(xiàn)場訪問客戶、業(yè)務(wù)流程分析、工作流程分析和任務(wù)分析、同類產(chǎn)品分析、根據(jù)現(xiàn)有系統(tǒng)導(dǎo)出需求、回顧以往項目。 2.4.3 需求分析員的工作分析需求 需求分析員還要對收集到的需求進(jìn)行分析,找出那些客戶沒有明確說明的需求。編寫需求規(guī)格說明 需求開發(fā)的作用是各方對用于解決客戶問題的系統(tǒng)形成了一致的理解。需求分析員負(fù)責(zé)編寫條理清晰的需求規(guī)格說明,從而清楚地表述出這種理解。為需求建模 需求分析員應(yīng)該適時地選用文字以外的方式來表達(dá)需求。 2.4.3 需求分析員的工作主持對需求的驗證 分析員可主持需求驗證會,還要對設(shè)計、代碼和測試用例(源于需求說明)進(jìn)行檢查。引導(dǎo)對需求的優(yōu)先級劃分 需求分析員安排不同用戶群與開發(fā)人員進(jìn)行合作與協(xié)商,以保證他們進(jìn)行合理

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論