|
優(yōu)秀需求具有的特性-需求陳述的特征 1. 完整性 2. 正確性 3. 可行性 4. 必要性 5. 劃分優(yōu)先級 6. 無二義性 7. 可驗(yàn)證性 8.一致性 9.可修改性 10.可跟蹤性
推薦的編寫需求文檔的指南 定義標(biāo)準(zhǔn)的文檔結(jié)構(gòu) 說明如何使用文檔 包含一個需求概要 構(gòu)造系統(tǒng)的業(yè)務(wù)案例 定義專業(yè)術(shù)語 安排好文檔的版面使文檔易讀 幫助讀者查找信息 使文檔易于變更 推薦的需求描述指南 定義描述需求的標(biāo)準(zhǔn)模板 使用淺顯、一致、簡明的語言 適當(dāng)?shù)厥褂脠D解 其他需求描述輔助自然語言 定量說明需求 惟一地標(biāo)識每個需求 記錄需求源 需求的理由 1.定義標(biāo)準(zhǔn)的文檔結(jié)構(gòu) 為需求確定恰當(dāng)?shù)慕Y(jié)構(gòu)可有助于: – 有利于讀者閱讀 – 最小化需求的總量; – 理解大量信息; – 找出與具體問題有關(guān)的需求集合; – 發(fā)現(xiàn)遺漏和重復(fù); – 消除需求之間的矛盾; – 管理迭代(例如延遲提出的需求); – 拒絕差的需求; – 評估需求; – 在多個項(xiàng)目中重用需求。 – 開發(fā)軟件來支持符合通用標(biāo)準(zhǔn)的需求文檔產(chǎn)品 定義標(biāo)準(zhǔn)的文檔結(jié)構(gòu) 文檔一般是分層的,對于多個層次采用節(jié)和小節(jié)來組織。文檔層次是分類的有用結(jié)構(gòu),確定需求文檔結(jié)構(gòu)的一種方式,是使用通過標(biāo)題結(jié)構(gòu)能夠?qū)π枨笳Z句編目的節(jié)。采用這種方式,需求語句在文檔中的位置代表其一級分類。(二級分類可以通過指向其它節(jié)的鏈或通過屬性給出。 文檔結(jié)構(gòu)-IEEE/ANSI1830-1993 a.引言 a.1目的 a.2文檔約定 a.3預(yù)期的讀者和閱讀建議 a.4產(chǎn)品的范圍 a.5參考文獻(xiàn) b.綜合描述 b.1產(chǎn)品的前景 b.2產(chǎn)品的功能 b.3用戶類和特征 b.4運(yùn)行環(huán)境 b.5設(shè)計(jì)和實(shí)現(xiàn)上的限制 b.6假設(shè)和依賴 c.外部接口需求 c.1用戶界面 c.2硬件接口 c.3軟件接口 c.4通信接口 d.系統(tǒng)特性 d.1說明和優(yōu)先級 d.2激勵/響應(yīng)序列 d.3功能需求 e.其它非功能需求 e.1性能需求 e.2安全設(shè)施需求 e.3安全性需求 e.4軟件質(zhì)量屬性 e.5業(yè)務(wù)規(guī)則 e.6用戶文檔 f.其它需求 附錄A:詞匯表 附錄B:分析模型 附錄C:待確定問題的列表 文檔結(jié)構(gòu)-組織特殊信息 系統(tǒng)的概述和開發(fā)該系統(tǒng)的效益 解釋所使用的技術(shù)術(shù)語的術(shù)語表 系統(tǒng)服務(wù)或功能需求的定義 系統(tǒng)特性或如可靠性、安全性等非功能性需求的定義 系統(tǒng)操作和系統(tǒng)開發(fā)過程的約束 系統(tǒng)的操作環(huán)境和該環(huán)境可能變更的定義 詳細(xì)的系統(tǒng)規(guī)格說明,它被表示成表示系統(tǒng)組件之間關(guān)系的系統(tǒng)模型。 2.說明如何使用文檔 效益 – 減少閱讀的成本 – 明確知識要求 實(shí)施 – 明確所針對不同類型的讀者 – 明確理解文檔所需要的專業(yè)知識和技術(shù)背景 – 指向概述部分的指示器 – 明確第一次閱讀進(jìn)可以路過的部分 – 描述閱讀各部分的相關(guān)順序 3.包含一個需求概要 效益-更易于理解的需求文檔 – 幫助理解概要 – 關(guān)注關(guān)鍵需求,有利于建立需求的優(yōu)先級 – 作為文檔中的需求的映射,有助于讀者發(fā)現(xiàn)感興趣的需求 實(shí)施 – 是重要的需求用編號的列表來表示 – 基于某種分類結(jié)構(gòu),在表格中列出不同需求 – 通過把每個主要需求表示成圖上的一個結(jié)點(diǎn),可以產(chǎn)生需求的圖形化視點(diǎn) 4.構(gòu)造系統(tǒng)的業(yè)務(wù)案例 效益-提供系統(tǒng)需求的一個理由 – 幫助評估需求變更 – 幫助理解包含特殊需求的原因 實(shí)施 – 放在需求文檔引言的單獨(dú)章節(jié)中 – 列出業(yè)務(wù)目標(biāo) – 給出目標(biāo)系統(tǒng)有助于這些業(yè)務(wù)理由 5.定義專業(yè)術(shù)語 效益-避免需求文檔的讀者與作者之間的誤解 – 幫助讀者理解需求文檔 – 幫助不同作者使用相同的術(shù)語 – 減少混淆 實(shí)施 – 定義一個標(biāo)準(zhǔn)的術(shù)語表 – 根據(jù)術(shù)語表修改需求文檔 – 例如: 詞匯表 6.安排好文檔版面使文檔易讀 效益--使文檔易讀 – 讀的次數(shù)比寫的次數(shù)多,因此…… – 易于評審時(shí)發(fā)現(xiàn)更好的問題 實(shí)施 – 使用寬的頁邊空白來使文本 – 節(jié)和小節(jié)的標(biāo)題采用一致的格式 – 少用著重號,一致地使用著重號 – 使用表格、標(biāo)號列表或數(shù)字列表來表示相關(guān)信息項(xiàng)的集合。 – 當(dāng)許多信息項(xiàng)必須表示成穩(wěn)定和變化兩部分時(shí),使用表格來顯示共同點(diǎn)和不同點(diǎn)。 – 使用空白把方程式和文本分開,并使用不同字體來表示它們。 – 如果要描述一系列事件或一個順序的過程,使用圖表來顯示過程的各個步驟。 – 不用使用復(fù)雜的圖表 7.幫助讀者查找信息 效益-易于用做系統(tǒng)參考 – 索引和目錄容易使需求規(guī)格說明作為參考文檔 – 索引幫助讀者評審文檔 實(shí)施 – 生成索引和目錄 – 出現(xiàn)在索引中的術(shù)語應(yīng)在正文中標(biāo)明 – 可以使用字處理系統(tǒng)中的自動化工具來創(chuàng)建索引 8.使用文檔易于變更 效益-減少需求變更的成本 – 制作和分發(fā)新的需求文檔既昂貴又耗時(shí),易于變更的文檔可以改變這種情況 – 有利于及時(shí)驗(yàn)證文檔 實(shí)施(結(jié)合“安排好文檔的版面使文檔易讀”一起實(shí)施) – 把文檔做成活頁 – 利用字處理系統(tǒng)的修訂模式 – 寫文檔時(shí),避免引用文檔中的其他頁碼 – 確保所有圖表都有標(biāo)簽,始終使用標(biāo)簽引用圖表 – 保持章簡短以便整章可以被用戶替換 – 在單獨(dú)的頁上開始新的一章 – 始終根據(jù)章給頁編號 – 如果有的話,使用使用字處理系統(tǒng)中制作圖、表等的相對引用的功能。以便能夠自動變更引用。 9.定義描述需求的標(biāo)準(zhǔn)模板 效益--需求前后一致,更加易懂 – 標(biāo)準(zhǔn)使得需求易于閱讀 – 標(biāo)準(zhǔn)使得需求易于收集 – 標(biāo)準(zhǔn)使得需求易于書寫 實(shí)施 – 針對不同業(yè)務(wù)領(lǐng)域和技術(shù)使用不共的需求模板 – 對模板的使用進(jìn)行詳細(xì)說明(注釋) – 提供樣本以供參考 10.使用淺顯、一致、簡明的語言 效益--需求更加易讀易懂 – 使用淺顯的語言書寫的需求易于閱讀和理解 – 使用淺顯的語言書寫的需求有利于讓更多的人理解需求 實(shí)施-書寫規(guī)則 – 用短句 – 一個句子表達(dá)一項(xiàng)需求 – 不要使用術(shù)語和縮略語,除非完全確信文檔的所有讀者都能夠明白。 – 用短段。(一個段落不應(yīng)該多于七個句子) – 盡可能使用列表或者表格來表達(dá)信息序列。 – 術(shù)語一致 – 使用“必須”、“應(yīng)該”、“將”時(shí)注意它們詞義的前后一致。 – 不要使用嵌套的條件從句表達(dá)需求。 – 使用主動語氣而不是被動語氣 – 不要試圖在自然語言描述中表達(dá)復(fù)雜的關(guān)系(用圖) – 不用使用匿名引用。 – 注意拼寫和語法 10.使用淺顯、一致、簡明的語言 除了語言之外,還有一些需求語句應(yīng)該滿足的特定準(zhǔn)則。這些準(zhǔn)則歸納如下: 原子性:每個語句都只攜帶單個可跟蹤元素; 唯一性:每個語句都可以被惟一地標(biāo)識; 可行性:在成本和進(jìn)度限度內(nèi),在技術(shù)上是可行的; 合法性:在法律上是可行的; 清晰性:每個語句都可以被清晰地理解; 準(zhǔn)確性:每個語句都是準(zhǔn)確、精確的; 可檢驗(yàn)性:每個語句都是可檢驗(yàn)的,并知道如何檢驗(yàn); 抽象性:不強(qiáng)迫針對下層的特定的設(shè)計(jì)解決方案。
11.適當(dāng)?shù)厥褂脠D解 效益--圖解最適于記錄需求關(guān)系 – 圖解在表示關(guān)系時(shí)比文本有效得多 – 圖解將大段的文本分為更小的、更易于閱讀的片段 – 圖解可能在對客戶展示需求時(shí)重用 實(shí)施-時(shí)機(jī) – 當(dāng)某個對象由多個模塊和組件組成,而你希望闡明它們之間的關(guān)系時(shí) – 當(dāng)需要表達(dá)一個系列的行為,而每個行為都有一些輸入輸出時(shí)。圖解可以用來表述行為序列,以及在哪些地方這些行為可以并行發(fā)生。 – 當(dāng)需要說明空間組織,如控制板時(shí) – 當(dāng)需要使用一些分解結(jié)構(gòu),如組織結(jié)構(gòu)圖 使用圖解的原則 盡可能簡單 避免使用意義不清的圖標(biāo) 應(yīng)該用顏色或陰影來區(qū)分圖解的不同部分或者起強(qiáng)調(diào)作用 不用亂用圖解
12.用其他需求描述輔助自然語言 效益--更加簡明、無二義的需求描述 – 特殊符號的描述不太可能引起誤解 – 對于對符號熟悉的專家更易發(fā)現(xiàn)問題 實(shí)施 – 決策樹 – 編程語言或程序設(shè)計(jì)語言 – 代數(shù) – 數(shù)據(jù)流圖 – 時(shí)序圖 – 系統(tǒng)模型 13.定量說明需求 效益--無二義的表達(dá)需求 – 簡明的交流方式 – 可能作為系統(tǒng)驗(yàn)收測試的基準(zhǔn) 實(shí)施 – 定義表達(dá)這些屬性的合適的度量 – 為屬性決定一個合適的值 非功能需求可能使用的度量 14.惟一地標(biāo)識每個需求 效益-方便引用、利于管理 – 可以用來指向相關(guān)的需求和構(gòu)造可跟蹤性表 – 有利于放到數(shù)據(jù)庫中統(tǒng)一管理 – 有利于需求版本的管理 實(shí)施 – 最常用的方法是根據(jù)需求文檔中包含的章節(jié)分配數(shù)字 字處理系統(tǒng)可以自動處理 臨時(shí)的標(biāo)識符解決需求無法確認(rèn)的問題 15. 記錄需求源 效益-需求可跟蹤性 – 有利于分析和變更需求 – 有助于理解該需求存在的原因 實(shí)施 – 需求收集表中記錄需求源 – 在需求數(shù)據(jù)庫中也可以記錄 – 不要放在需求規(guī)格說明書中 低成本需求文檔編寫規(guī)則 以上15種需求文檔編寫指南為低成本引入的方法。 16.需求的理由 效益-提高對需求的理解 – 使讀者更易于理解和評估需求變更的影響 – 問題專家可以使用該理由檢驗(yàn)需求是否與正在解決的問題一致。 實(shí)施 – 需求收集表中記錄需求源 – 在需求數(shù)據(jù)庫中也可以記錄 – 不要放在需求規(guī)格說明書中 寫文檔的總的原則 一開始就定義提綱結(jié)構(gòu),最好是層次式的,并隨著工作的深入不斷改進(jìn)。 盡可能快地寫下需求,即使這些需求并不完備。 提前確定用于為文本描述分類與詳細(xì)描述的屬性是什么。 快速產(chǎn)生一個初始版本,以便立即得到反饋。 隨著工作的輸入不斷完善需求,去掉重復(fù)部分、難以保證的設(shè)計(jì)和不一致性。 不斷集思廣益并進(jìn)行非正式評審,快速改進(jìn)版本。 向用戶請教要比由“專家”分析好得多。
|