軟件工程(一)需求工程在軟件工程的第一課中,我們要學(xué)習(xí)的就是需求。需求這個東西太重要了,因?yàn)樵诖蟛糠质〉捻?xiàng)目中,需求有誤都是最主要的一個失敗原因。具體的需求問題可能包含方方面面,可能是客戶都搞不清楚他們想要什么,也可能是開發(fā)團(tuán)隊(duì)的理解有誤,也有可能是技術(shù)實(shí)現(xiàn)問題。總之,需求非常重要。傳統(tǒng)的軟件工程中,需求都是非常重要的一個章節(jié)。不過在現(xiàn)在的真實(shí)業(yè)務(wù)開發(fā)中,需求這一塊更多是由 產(chǎn)品經(jīng)理 來把控,項(xiàng)目經(jīng)理或者技術(shù)人員往往是和產(chǎn)品經(jīng)理來進(jìn)行溝通的。雖說可能需求分析對于現(xiàn)在的我們來說接觸得比較少了,但是,對于軟件工程這個學(xué)科來說,依然是一個核心的內(nèi)容。因此,今天整篇文章的內(nèi)容都是重點(diǎn)! 我們先來看一下需求的定義: 軟件需求是指用戶對新系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其他正式規(guī)定文檔所需具有的條件或能力。 這個定義還是比較官方的,不過考試可不就是考這種官方的內(nèi)容嘛。同樣的,需要記住定義中的中間那幾個關(guān)鍵點(diǎn)。 需求的層次說完定義,我們就來看看需求的層次。需求是多層次的,包括:
這張圖和上述的概念定義務(wù)必記住,沒有為什么,考試重點(diǎn),不考試的嘛,了解一下咯,對于我們真實(shí)的業(yè)務(wù)開發(fā)也是很有用的。比如說我們就可以區(qū)分出哪些需求是功能性的,哪些是非功能性的,在開發(fā)過程中可以根據(jù)這些區(qū)分進(jìn)行更好的需求排序和安排。 質(zhì)量功能部署質(zhì)量功能部署(Quality Function Deployment,QFD)是一種將用戶要求轉(zhuǎn)化成軟件需求的技術(shù),其目的是最大限度地提升軟件工程過程中的用戶滿意度。為了達(dá)到這個目標(biāo),QFD將軟件需求分為三類,分別是常規(guī)需求、期望需求和意外需求。 如果學(xué)習(xí)過之前我的敏捷系列的文章,一定會記得有一個 Kano 分析。QFD 跟這個 Kano 分析 基本上是一個意思,大家可以過去看看哦!【敏捷3.3】價值的優(yōu)先級https://mp.weixin.qq.com/s/E0kayc8pFbZDGuRpzyH18w 需求開發(fā)需求工程最主要的就是 需求開發(fā) 和 需求管理 兩個方面。需求管理其實(shí)沒有太多好說的,就是持續(xù)追蹤 需求開發(fā) 中生成的 需求規(guī)格說明書(SRS) 里面的需求情況。因此,我們重點(diǎn)要看的就是 需求開發(fā) 相關(guān)的內(nèi)容。它包含下面這四個步驟。 需求獲取需求獲取是一個確定和理解不同的項(xiàng)目干系人的需求和約束的過程。主要的獲取方法包括用戶訪談、問卷調(diào)查、采樣、情節(jié)串聯(lián)板、聯(lián)合需求計(jì)劃、現(xiàn)場觀察、歷史文檔等等。需求獲取是一件看起來簡單但做起來很難的事情,需要與用戶進(jìn)行有效的合作才能成功。 需求分析我們通過需求獲取拿到的用戶需求是很雜亂的,是用戶對系統(tǒng)的期望和要求,這些要求有重復(fù)或者矛盾的地方,是不能作為軟件設(shè)計(jì)的基礎(chǔ)的。因此,我們就需要需求分析的步驟,用來獲取完整、一致、可測試、確定、必要的需求,這個過程就是需求分析。一般會使用實(shí)例關(guān)系圖(E-R圖)表示數(shù)據(jù)模型,描述實(shí)體、屬性;數(shù)據(jù)流圖(Data Flow Diagram,DFD)表示功能模型,描述系統(tǒng)內(nèi)各個部件的功能和數(shù)據(jù)傳遞情況;用狀態(tài)轉(zhuǎn)換圖(State Transform Diagram,STD)表示行為模型,描述系統(tǒng)的狀態(tài)和引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件行為。這三個圖中,大家要記住 數(shù)據(jù)流圖 是在需求分析中使用的就可以了,有興趣的同學(xué)可以自己去搜一下這三種圖長什么樣子的。 需求分析最主要的作用包括:
需求定義需求定義最主要的工作就是要編制一個 軟件需求規(guī)格說明書(Software Requirement Specification,SRS),這個是需求開發(fā)活動的產(chǎn)物,讓所有相關(guān)方對需求都有一個一致的理解,并且這個 SRS 會成為整個開發(fā)工作的基礎(chǔ)。SRS 也是我們前面提到的 需求管理 的依據(jù)。 根據(jù)國家標(biāo)準(zhǔn) GB/T 8567-2006 標(biāo)準(zhǔn),SRS 應(yīng)該包括:范圍、引用文件、需求、合格性規(guī)定、需求可追蹤性、尚未解決的問題、注解、附錄等方面的內(nèi)容。至于我們的實(shí)際業(yè)務(wù)中,還是看組織、公司和團(tuán)隊(duì)的具體情況吧,適合自己的才是最好的。 需求驗(yàn)證最后就是需求驗(yàn)證,在這一步中,最主要的就是 需求評審 和 需求測試 這兩個工作。需求評審就是對 SRS 進(jìn)行技術(shù)評審,消除有問題的二義性需求。需求測試則是查漏補(bǔ)缺,及早發(fā)現(xiàn)問題的過程。 總結(jié)在課程文章的開頭我們就已經(jīng)說過,今天的內(nèi)容全部都是重點(diǎn)。所以就不要抱僥幸心理了,都記下來吧。最核心的其實(shí)是需求的層次,也就是需求的分類,另外還有需求開發(fā)的四個步驟,我們可以用 “獲分定驗(yàn)” 來快速記憶。同時,也可以借助下面這個思維導(dǎo)圖來記住需求開發(fā)的重點(diǎn)。 參考資料: 《信息系統(tǒng)項(xiàng)目管理師教程》 《某機(jī)構(gòu)培訓(xùn)資料》 |
|