內(nèi)容簡介
需求文檔的模糊性和歧義性是導(dǎo)致很多軟件項目最終無法滿足用戶需求的主要原因。針對這一現(xiàn)狀,本書主要側(cè)重于以視覺化方式來表達軟件需求,介紹了4大類22個可視化需求模型,旨在指導(dǎo)讀者通過軟件需求的視覺化模型來進一步明確需求,促進開發(fā)人員對需求的理解,從而進一步推動軟件項目的成功。
本書取自需求領(lǐng)域兩位專家十多年的實踐經(jīng)驗,具有重要的指導(dǎo)和參考意義,可以幫助讀者準確理解需求,開發(fā)出滿足用戶需求和可以幫助用戶達成任務(wù)目標的軟件產(chǎn)品。
前 言
可視化需求模型是確認軟件需求最有效的方法之一。這些模型幫助市場分析師確認,所有的項目利益相關(guān)者能夠理解提出的解決方案,這些人士包括領(lǐng)域?qū)<摇⑸虡I(yè)利益相關(guān)者、高層管理人員和技術(shù)團隊。可視化方式讓項目利益相關(guān)者對項目更感興趣,更樂于參與,其目的是找出需求方面是否存在差異。更重要的是,可視化創(chuàng)造了圖形化的解決方案,幫助項目利益相關(guān)者理解解決方案交付什么結(jié)果和不包括什么。雖然可視化有這些優(yōu)點,許多市場分析師和產(chǎn)品經(jīng)理還是使用非可視化的電子表格或文本列出數(shù)千行條款。這些大量的文檔讓人吃不消,審查起來很枯燥,極不容易發(fā)現(xiàn)缺失的需求。這種實際狀況反映當前需求專業(yè)培訓(xùn)有哪些問題癥狀,培訓(xùn)往往注重如何寫出每條好的需求,而不注重如何分析整個解決方案。
這本書將幫助市場分析師、產(chǎn)品經(jīng)理以及部門其他成員使用可視化模型捕獲需求、建立模型和理解需求。本書描述了一種簡潔而完整的語言RML(Requirements Modeling Language,需求建模語言),它用于建立軟件需求的可視化模型,收集和規(guī)范了工業(yè)界中普遍使用的最佳實踐模型。
誰應(yīng)該讀這本書
雖然這本書主要針對市場分析師和產(chǎn)品經(jīng)理,但是我們認為項目經(jīng)理、開發(fā)人員、架構(gòu)師和測試人員也可以從這本書中獲得巨大的價值,因為它可以幫助他們學(xué)習(xí)必要的信息標準,使他們的工作更容易。這本書通常把實際做工作的人稱為“市場分析師”,在不同的部門里這個角色有著許多不同的職稱。當提到“你”,我們也是指“市場分析師”。
事先告訴大家,我們的經(jīng)驗主要基于在現(xiàn)有基礎(chǔ)架構(gòu)上建設(shè)軟件的項目,例如面向內(nèi)部的信息技術(shù)系統(tǒng)(IT)、面向消費者的作為軟件即服務(wù)(SaaS)的大型軟件系統(tǒng)以及云系統(tǒng)。雖然我們已經(jīng)在獨立的軟件包和嵌入式系統(tǒng)中使用了RML,但是這些類型的項目都不是我們的主打領(lǐng)域。根據(jù)我們對這些系統(tǒng)的有限經(jīng)驗,認為做這些系統(tǒng)工作的讀者也會發(fā)現(xiàn)RML提供了令人難以置信的價值,我們期待著收到他們提出的改進意見。
本書的假設(shè)
本書假設(shè)你已具有編寫軟件需求的基礎(chǔ)知識,因此不提供需求工作的基本信息。本書希望你對軟件開發(fā)過程有些基本了解,例如,迭代方法、瀑布方法、和敏捷方法,知道它們是如何處理軟件需求的。
誰不必讀這本書
如果你剛剛開始做市場分析師,我們建議你在讀這本書之前先閱讀卡爾•魏格斯所寫的《軟件需求》一書,了解需求領(lǐng)域的全面概況。如果你正在開發(fā)獨立包裝出售的軟件,書里的一些概念還是有意義的,不過你可能會發(fā)現(xiàn)商業(yè)定位不同。如果你是一個產(chǎn)品經(jīng)理,側(cè)重于軟件產(chǎn)品的戰(zhàn)略和營銷而不是開發(fā)軟件,這本書可能對你不合適,因為它重點集中于如何設(shè)計軟件功能使其受到高端用戶的認可。
本書的結(jié)構(gòu)
我們組織這本書的目的是將它作為參考指南。
第Ⅰ部分先介紹一般模型的情況,然后討論RML語言和四類模型:目標模型、人員模型、系統(tǒng)模型和數(shù)據(jù)模型(OPSD)。
第Ⅱ部分到第Ⅴ部分的各章討論全部RML模型,各章有相同的結(jié)構(gòu),其中包括:
有關(guān)模型的真實故事
模型的定義
模型的模板
建議創(chuàng)建模型的工具
虛構(gòu)的例子
解釋如何創(chuàng)建和使用模型
學(xué)習(xí)使用模型的練習(xí)
所有這些章的練習(xí)都圍繞著一個樣品項目而設(shè)計。
第Ⅵ部分解釋如何選擇模型以及如何使用模型來產(chǎn)生軟件需求。
附錄A包含兩個快速模型查找表作為模型選擇指導(dǎo),附錄B建議創(chuàng)建模型的一般準則,包括所有的模型元數(shù)據(jù)和模板提示,附錄C給出書中所有練習(xí)的答案。還有一個詞匯表定義本書用過的術(shù)語。
閱讀本書的最佳切入點
可以直接閱讀全書,但對有些人來說,在深入每個模型的細節(jié)之前,從第Ⅵ部分開始閱讀會更好地理解上下文。下表提供了更多的指導(dǎo)。
讀者對象 建議步驟
總體上不熟悉需求建模或可視化建模 可以從前到后地閱讀本書,看看需求模型的介紹,
了解每個模型的內(nèi)容,最后把它們聯(lián)系起來使用
熟悉可視化需求建模或者 建議瀏覽所有的章節(jié),了解RML在可視化建模上與
是使用過類似模型的市場分析師 其他建模語言有什么不同。但是可能從第Ⅵ部分
開始了解更高級的內(nèi)容更有幫助,如何選擇模型
以及如何在項目中把多個模型一起使用。當項目
需要時,可以參考相關(guān)模型的章節(jié)
建模快速入門
這本書包含學(xué)習(xí)需求建模的大量信息。前景是美好的,為此我們開發(fā)了一種方法,使用盡可能少的模型但能為項目創(chuàng)造明顯的價值。這種快速啟動的方法適用于大多數(shù)IT項目。下面的流程圖總結(jié)了這種方法。
如圖所示,首先創(chuàng)建業(yè)務(wù)流程。接下來,根據(jù)流程步驟創(chuàng)建需求映射矩陣(RMM)。然后為流程步驟的截屏創(chuàng)建對應(yīng)的顯示-操作-響應(yīng)(DAR)模型,將它們映射到業(yè)務(wù)流程步驟上。最后創(chuàng)建數(shù)據(jù)字典確保所有字段都包括,確認字段的驗證規(guī)則。
雖然這張圖沒有提到很多其他有價值的模型,但給出了一系列讀者容易理解的主要步驟。最后結(jié)果是,項目的需求將按照流程步驟來組織,截屏也將映射到流程步驟,以確保用戶界面滿足關(guān)鍵流程的需要。
本書約定和功能
本書使用專門的約定確保信息易于理解,易于遵循。
每章開始處用斜體字向讀者講述一個非軟件的故事作為引子。
整本書中所有RML模型名稱都大寫。用非RML的其他建模語言建的模型名稱不大寫。
RML模型的模塊稱為元素,這些模型元素名稱沒有大寫,以免與模型名稱混淆。
這本書結(jié)尾處的詞匯表列出我們認為重要的RML術(shù)語。這些術(shù)語以斜體字貫穿全書。
每個模型的模板提供工具提示的讀者幫助,建議使用何種工具創(chuàng)建該模型。
配套內(nèi)容
如果項目需要創(chuàng)建本書的模型時,歡迎你下載使用RML模型模板。RML模型的全套模板下載網(wǎng)址如下:
http://go.microsoft.com/FWLink/?Linkid=253518
壓縮文件中的使用說明介紹了如何使用模板。簡單步驟如下:下載壓縮文件,還原文件內(nèi)容放到方便的地方。每個模型有一個模板,Visio文件格式的模型包括一個模板和一個模板文件,模板正常工作需要這兩個部分。其余模板均為Excel格式或Word格式。快速模型查找表也在壓縮文件中。
致謝
從我們Seilevel公司的團隊到在世界各地做需求工作的同事,再到多年來一直支持和幫助我們改進RML的客戶,沒有你們的合作,這本書是不可能出版的。
非常感謝Seilevel公司的員工幫助研究、審閱、寫作、編輯和起草模型,提出很難回答的好問題,他們是喬伊斯•格雷普斯、詹姆•哈爾根、貝琪斯•托克代爾、邁克爾•劉、坎達絲•霍卡松、杰里•高爾、巴拉吉•維賈揚、馬克•塔爾博特、馬特•奧佛斯、阿賈伊•巴德里、杰森•菲爾德、杰拉爾丁•蒙戈爾德、凱爾•康登、克林特•格雷厄姆、大衛(wèi)•萊因哈特、韋斯•埃德森、阿卜杜勒•馬瑟、克里斯•蒂森索、羅布•斯巴克斯和洛瑞•威策爾。
我們誠摯地感謝許多審閱人員,他們花時間閱讀書稿,給出他們的想法和批評,幫助改進本書。他們是喬伊•斯塔茲、肯特•麥當勞、莎拉•格雷戈里、列爾卡•別烏斯-杜奇、瑪麗•戈若斯、卡爾•魏格斯、埃倫•戈特斯蒂訥、斯科特•賽爾豪斯特、埃維•胡克斯和安妮•哈特利。特別感謝卡爾•魏格斯和伊恩•亞歷山大,他們兩人提供寫作指導(dǎo)并和我們切磋關(guān)于模型的想法。
我們衷心感謝勤奮工作和富有情趣的編輯團隊,他們把這本書變成了現(xiàn)實。同時感謝組稿和策劃編輯德文郡•馬斯格雷夫和項目編輯卡羅爾•迪靈漢,他們兩人都在微軟出版社工作。我們還要感謝項目經(jīng)理和文稿編輯凱西•克勞斯,排版人員吉恩•特雷納里、校對海梅•奧德爾、美編珍妮•克雷沃和索引人員揚•巴德納茲克。
最后,要感謝我們的家人一起忍受漫長的寫作過程。喬伊感謝她的丈夫托尼•漢密爾頓,在整個過程中幫助她保持幽默感;感謝她的女兒斯凱,她出生在這本書的寫作期間,當我們完成寫作時她已經(jīng)學(xué)會了一覺睡到天明。事實證明,寫一本書就像有一個孩子:許多月的孕育、準備、和喂養(yǎng)。安東尼感謝他的妻子格洛麗亞對他的支持,還有他的女兒梅森,她可以自己愉快地玩耍讓爸爸工作,但在電話會議時她變得非常安靜。最后,安東尼想感謝喬伊,如果沒有她全力以赴地推動這本書的寫作,此書永遠不會出版。
勘誤和支持
我們已經(jīng)盡了一切努力來確保本書和配套內(nèi)容的準確性。這本書出版之后所報告的任何錯誤都會列在我們的微軟出版社網(wǎng)站:
http://go.microsoft.com/FWLink/?Linkid=253517
如果發(fā)現(xiàn)沒有列出的錯誤,可以通過這個網(wǎng)址向我們報告。
如果需要額外的支持,發(fā)電子郵件到微軟出版社的書籍支持:mspinput@microsoft.com。
請注意,微軟的軟件產(chǎn)品支持不是通過上面地址提供的。
我們期待著你的意見
在微軟出版社,你的滿意是我們的首要任務(wù),你的反饋是我們最寶貴的財富。請通過下面的網(wǎng)址告訴我們你對這本書的看法:
http://www.microsoft.com/learning/booksurvey
這項調(diào)查很簡短。我們會閱讀每一條意見和建議,提前謝謝你的輸入。
目 錄
第Ⅰ部分 需求模型介紹第1章 需求建模語言入門 3定義RML 3傳統(tǒng)軟件需求實踐的挑戰(zhàn) 4人腦的限制 4圖比文字更容易理解 5需求模型 6為什么不用UML 7需求與設(shè)計 8一個層面的需求是對另一個層面的設(shè)計 8確定業(yè)務(wù)的實際需要 9定義需求 9需求模型不等于游戲的結(jié)束 10在項目中使用RML 10其他資源 10參考文獻 11第2章 模型分類 12目標、人員、系統(tǒng)和數(shù)據(jù)模型 13目標模型 15人員模型 16系統(tǒng)模型 17數(shù)據(jù)模型 18參考文獻 19第Ⅱ部分 對象模型第3章 業(yè)務(wù)目標模型 23業(yè)務(wù)目標模型模板 24例子 26創(chuàng)建業(yè)務(wù)目標模型 28使用業(yè)務(wù)目標模型 33常見錯誤 36相關(guān)的模型 37練習(xí) 37其他資源 38參考文獻 38第4章 目標鏈 40目標鏈模板 41例子 42創(chuàng)建目標鏈 45使用目標鏈 52常見錯誤 55相關(guān)模型 55練習(xí) 55其他資源 56參考文獻 56第5章 關(guān)鍵績效指標模型 57KPIM模板 58例子 59創(chuàng)建KPIM 60使用KPIM 62常見錯誤 64相關(guān)的模型 65練習(xí) 65其他資源 66第6章 特性樹 67特性樹模板 68例子 70創(chuàng)建特性樹 71使用特性樹 73常見錯誤 75相關(guān)的模型 76練習(xí) 76其他資源 77參考文獻 77第7章 需求映射矩陣 78RMM模板 79例子 81創(chuàng)建RMM 82使用RMM 87識別無關(guān)的需求或缺失的步驟 88常見錯誤 89相關(guān)模型 90練習(xí) 90其他資源 91參考文獻 92第Ⅲ部分 人員模型第8章 組織結(jié)構(gòu)圖 95組織結(jié)構(gòu)圖模板 96例子 98創(chuàng)建組織結(jié)構(gòu)圖 99使用組織結(jié)構(gòu)圖 102常見錯誤 105相關(guān)模型 106練習(xí) 106場景 106其他資源 107參考文獻 107第9章 處理流程 109處理流程模板 110例子 113創(chuàng)建處理流程 115使用處理流程 119常見錯誤 121相關(guān)模型 122練習(xí) 123其他資源 124參考文獻 124第10章 用例 125用例模板 126創(chuàng)建用例 129寫主要路徑 133寫替代路徑 134使用用例 135常見錯誤 139相關(guān)模型 140其他資源 141參考文獻 142第11章 角色權(quán)限矩陣 143角色權(quán)限矩陣模板 144例子 145創(chuàng)建角色權(quán)限矩陣 146使用角色權(quán)限矩陣 151常見錯誤 154相關(guān)模型 154練習(xí) 154其他資源 155第Ⅳ部分 系統(tǒng)模型第12章 生態(tài)系統(tǒng)圖 159生態(tài)系統(tǒng)圖模板 160例子 162創(chuàng)建生態(tài)系統(tǒng)圖 164確認系統(tǒng) 164使用生態(tài)系統(tǒng)圖 166常見錯誤 167相關(guān)模型 168練習(xí) 169其他資源 169參考文獻 170第13章 系統(tǒng)流程 171系統(tǒng)流程模板 172例子 174創(chuàng)建系統(tǒng)流程 175使用系統(tǒng)流程 178推導(dǎo)需求 178常見錯誤 180相關(guān)模型 180練習(xí) 180其他資源 181第14章 用戶界面流程 182UI流程模板 183例子 184創(chuàng)建UI流程 185決定屏幕的范圍 186使用UI流程 190常見錯誤 192相關(guān)模型 192練習(xí) 193其他資源 193參考文獻 193第15章 顯示-動作-響應(yīng) 195DAR模型模板 196例子 198創(chuàng)建DAR模型 201使用DAR 204常見錯誤 206相關(guān)模型 207練習(xí) 207其他資源 208參考文獻 208第16章 決策表 210決策表模板 211例子 212創(chuàng)建決策表 213使用決策表 217常見錯誤 218相關(guān)模型 219練習(xí) 219其他資源 220參考文獻 220第17章 決策樹 221決策樹模板 222例子 224創(chuàng)建決策樹 225常見錯誤 230相關(guān)模型 230練習(xí) 231其他資源 231參考文獻 231第18章 系統(tǒng)界面表 233系統(tǒng)界面表的模板 234例子 234創(chuàng)建系統(tǒng)界面表 235使用系統(tǒng)界面表 237常見錯誤 238相關(guān)模型 238練習(xí) 239第Ⅴ部分 數(shù)據(jù)模型第19章 業(yè)務(wù)數(shù)據(jù)圖 243BDD模板 244例子 247創(chuàng)建BDD 248常見錯誤 255相關(guān)模型 255練習(xí) 256其他資源 256參考文獻 256第20章 數(shù)據(jù)流圖 258DFD模板 259例子 259創(chuàng)建DFD 260使用DFD 262常見錯誤 265相關(guān)模型 266練習(xí) 266其他資源 267參考文獻 267第21章 數(shù)據(jù)字典 268例子 274創(chuàng)建數(shù)據(jù)字典 276相關(guān)模型 280練習(xí) 281其他資源 281參考文獻 282第22章 狀態(tài)表 283例子 285使用狀態(tài)表 287常見問題 290相關(guān)模型 291練習(xí) 291其他資源 292參考文獻 292第23章 狀態(tài)圖 293狀態(tài)圖模板 294例子 295創(chuàng)建狀態(tài)圖 296常見問題 299相關(guān)模型 300練習(xí) 300其他資源 301參考文獻 302第24章 報告表 303報告表模板 304例子 306創(chuàng)建報表 308確定報告 308常見錯誤 312相關(guān)模型 312練習(xí) 313第Ⅵ部分 大局圖中的模型第25章 項目模型的選擇 317根據(jù)項目階段選擇模型 317根據(jù)項目特點選擇模型 321關(guān)于讀者的思考 333修改模型 334練習(xí) 335第26章 模型的綜合應(yīng)用 336很多不同的視圖 336使用多個模型 337需求架構(gòu) 338模型計劃 340相關(guān)模型 341練習(xí) 352第Ⅲ部分 附錄附錄A 快速查找模型表格 355附錄B 一般性模型指南 357附錄C 練習(xí)答案 359