需求规格说明书RUP版
曾經(jīng)有項(xiàng)目組拿著用戶編寫的原始需求就開始開發(fā),隨后狀況不斷,一次令人崩潰的研發(fā)過程。拿著用戶編寫的原始需求,編寫我們自己的需求規(guī)格說明書,之所以重要,就在于用戶編寫的原始需求,是脫離了技術(shù)實(shí)現(xiàn),編寫的一份十分理想的業(yè)務(wù)需求。理想與現(xiàn)實(shí)總是有差距,我們之所以要編寫自己的需求規(guī)格說明書,就是要本著實(shí)事求是、切實(shí)可行的態(tài)度,去描述用戶的業(yè)務(wù)需求。那些不可行的需求被摒棄,或者換成更加可行的解決方案。這就是需求規(guī)格說明書的重要作用。?
從理論上講,需求規(guī)格說明書(Requirement Specification)分為用戶需求規(guī)格說明書和產(chǎn)品需求規(guī)格說明書。用戶需求規(guī)格說明書是站在用戶角度描述的系統(tǒng)業(yè)務(wù)需求,是用于與用戶簽字確認(rèn)業(yè)務(wù)需求;產(chǎn)品需求規(guī)格說明書是站在開發(fā)人員角度描述的系統(tǒng)業(yè)務(wù)需求,是指導(dǎo)開發(fā)人員完成設(shè)計(jì)與開發(fā)的技術(shù)性文檔。但是,我認(rèn)為,用戶需求規(guī)格說明書與產(chǎn)品需求規(guī)格說明書的差別并不大。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)所提倡的就是要讓用戶、需求分析員、開發(fā)人員站在一個(gè)平臺(tái),使用統(tǒng)一的語言(一種混合語言),來表達(dá)大家都清楚明白的概念。從這個(gè)角度將,需求規(guī)格說明書就應(yīng)當(dāng)是一個(gè),不區(qū)分用戶需求規(guī)格說明書和產(chǎn)品需求規(guī)格說明書。?
那么需求規(guī)格說明書怎么寫呢?不同的公司、不同的人、不同的項(xiàng)目,特別是在需求分析中采用不同的方法,寫出來的需求規(guī)格說明書格式都是不一樣的。在這里,我給大家一個(gè),采用RUP統(tǒng)一建模的方式分析需求,編寫需求規(guī)格說明書的模板,供大家參考。?
1.引言?
1.1 編寫目的?
如題,描述你編寫這篇文檔的目的和作用。但最關(guān)鍵的是,詳細(xì)說明哪些人可以使用這篇文檔,做什么。需求規(guī)格說明書是用來做什么的?毫無疑問,首先供用戶與開發(fā)公司確認(rèn)軟件開發(fā)的業(yè)務(wù)需求、功能范圍。其次呢,當(dāng)然就是指導(dǎo)設(shè)計(jì)與開發(fā)人員設(shè)計(jì)開發(fā)系統(tǒng)。當(dāng)然,還包括測試人員設(shè)計(jì)測試,技服人員編寫用戶手冊(cè),以及其它相關(guān)人員熟悉系統(tǒng)。描述這些,可以幫助讀者確定,閱讀這篇文檔是否可以從中獲得幫助。?
1.2 業(yè)務(wù)背景?
描述業(yè)務(wù)背景,是為了讀者了解與該文檔相關(guān)的人與事。你可以羅列與文檔相關(guān)的各種事件,也可以描寫與項(xiàng)目相關(guān)的企業(yè)現(xiàn)狀、問題分析與解決思路,以及觸發(fā)開發(fā)該項(xiàng)目的大背景、政策法規(guī),等等。?
1.3 項(xiàng)目目標(biāo)(或任務(wù)概述)?
就是項(xiàng)目能為用戶帶來什么利益,解決用戶什么問題,或者說怎樣才算項(xiàng)目成功。前面提到過,這部分對(duì)項(xiàng)目成功作用巨大。?
1.4 參考資料?
參考資料的名稱、作者、版本、編寫日期。?
1.5 名詞定義?
沒啥可說的,就是文檔中可能使用的各種術(shù)語或名詞的定義與約定,大家可以根據(jù)需要?jiǎng)h減。?
2.整體概述?
這部分是對(duì)系統(tǒng)整體框架性地進(jìn)行描述。?
2.1 整體流程分析?
繪制的整體行動(dòng)圖,及其對(duì)它的說明。?
2.2 整體用例分析?
繪制的整體用例圖,以及對(duì)每個(gè)用例的用例說明。如果項(xiàng)目比較大,存在多個(gè)子系統(tǒng),可以將用例圖改為構(gòu)件圖,詳細(xì)描述每個(gè)子系統(tǒng)及其相互的接口調(diào)用。?
2.3 角色分析?
一個(gè)用例圖,描述系統(tǒng)中所有的角色及其相互關(guān)系。在隨后的說明中,詳細(xì)說明每個(gè)角色的定義及其作用。?
這部分還可以根據(jù)項(xiàng)目需要編寫其它的內(nèi)容,如部署方案、網(wǎng)絡(luò)設(shè)備、功能結(jié)構(gòu)、軟件架構(gòu)、關(guān)鍵點(diǎn)難點(diǎn)技術(shù)方案,等等。?
3.功能需求?
3.1 功能模塊(子系統(tǒng))?
一個(gè)一個(gè)描述系統(tǒng)中的每個(gè)功能模塊(或子系統(tǒng)),即整體用例分析中的每個(gè)用例。這部分是需求規(guī)格說明書最主要的部分。?
3.1.1 用例圖?
繪制該模塊的用例圖(詳見《功能角色分析與用例圖》)。?
3.1.2 用例說明?
對(duì)用例圖中的每個(gè)用例編寫用例說明(詳見《用例說明》)。?
3.1.3 領(lǐng)域模型?
為用例繪制領(lǐng)域模型,并編寫領(lǐng)域模型說明,對(duì)每個(gè)實(shí)體進(jìn)行說明。對(duì)實(shí)體的說明包括對(duì)實(shí)體的定義、屬性說明、行為說明、實(shí)體關(guān)系說明等等。如果實(shí)體間關(guān)系復(fù)雜,還要使用對(duì)象圖說明實(shí)體關(guān)系的所有情況(如《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》中的描述)。?
4.非功能需求?
這里描述的是軟件對(duì)非功能需求的一般要求,即整體設(shè)計(jì)原則。那些與具體功能相關(guān)的非功能需求應(yīng)該放在用例說明的“非功能需求”部分(詳見《非功能需求》)。?
5.接口需求?
如果項(xiàng)目涉及到與外部系統(tǒng)的接口,則編寫這部分需求。?
5.1 接口方案?
詳細(xì)描述采用什么體系結(jié)構(gòu)與外部系統(tǒng)的接口。?
5.2 接口定義?
接口的中文名、英文名、功能描述、參數(shù)、返回值、使用者、使用頻率,等等。?
我們應(yīng)當(dāng)怎樣做需求分析?
我們應(yīng)當(dāng)怎樣做需求調(diào)研:初識(shí)?
我們應(yīng)當(dāng)怎樣做需求調(diào)研:拜訪?
我們應(yīng)當(dāng)怎樣做需求調(diào)研:研討會(huì)?
我們應(yīng)當(dāng)怎樣做需求調(diào)研:需求研討?
我們應(yīng)當(dāng)怎樣做需求調(diào)研:迭代?
我們應(yīng)當(dāng)怎樣做需求調(diào)研:需求捕獲(上)?
我們應(yīng)當(dāng)怎樣做需求調(diào)研:需求捕獲(下)?
我們應(yīng)當(dāng)怎樣做需求分析:功能角色分析與用例圖?
我們應(yīng)當(dāng)怎樣做需求分析:業(yè)務(wù)流程分析(上)?
我們應(yīng)當(dāng)怎樣做需求分析:業(yè)務(wù)流程分析(下)?
我們應(yīng)當(dāng)怎樣做需求分析:用例說明?
我們應(yīng)當(dāng)怎樣做需求分析:查詢報(bào)表分析?
我們應(yīng)當(dāng)怎樣做需求分析:子用例與擴(kuò)展用例?
我們應(yīng)當(dāng)怎樣做需求分析:行動(dòng)圖和狀態(tài)圖?
我們應(yīng)當(dāng)怎樣做需求分析:業(yè)務(wù)領(lǐng)域分析?
我們應(yīng)當(dāng)怎樣做需求分析:原文分析法?
我們應(yīng)當(dāng)怎樣做需求分析:領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)?
我們應(yīng)當(dāng)怎樣做需求分析:非功能需求?
我們應(yīng)當(dāng)怎樣做需求確認(rèn):需求列表?
我們應(yīng)當(dāng)怎樣做需求確認(rèn):一個(gè)需求列表的實(shí)例?
我們應(yīng)當(dāng)怎樣做需求確認(rèn):快速原型法?
我們應(yīng)當(dāng)怎樣做需求確認(rèn):需求規(guī)格說明書?
我們應(yīng)當(dāng)怎樣做需求確認(rèn):評(píng)審與簽字確認(rèn)會(huì)?
?
-------------------------------
實(shí)例:
網(wǎng)上教學(xué)系統(tǒng)RUP需求規(guī)格說明書
?
總結(jié)
以上是生活随笔為你收集整理的需求规格说明书RUP版的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新一配:对等网络的软件类型和技术标准【转
- 下一篇: python PIL 将两个图片合成一张