軟件需求與可視化模型/微軟技術叢書

軟件需求與可視化模型/微軟技術叢書 pdf epub mobi txt 電子書 下載 2025

[美] Joy Beatty,[美] Anthony Chen 著,方敏 譯
圖書標籤:
  • 軟件需求
  • 可視化建模
  • UML
  • 微軟技術
  • 軟件工程
  • 需求分析
  • 係統分析
  • 軟件開發
  • 建模工具
  • 需求規格說明書
想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 清華大學齣版社
ISBN:9787302457152
版次:1
商品編碼:12121834
包裝:平裝
開本:16開
齣版時間:2016-12-01
用紙:純質紙
頁數:376
字數:514000
正文語種:中文

具體描述

産品特色

編輯推薦

聚焦於軟件需求中的目標、人、係統和數據;重點介紹四大類需求可視化模型的實踐運用


內容簡介

  需求文檔的模糊性和歧義性是導緻很多軟件項目最終無法滿足用戶需求的主要原因。針對這一現狀,本書主要側重於以視覺化方式來錶達軟件需求,介紹瞭4大類22個可視化需求模型,旨在指導讀者通過軟件需求的視覺化模型來進一步明確需求,促進開發人員對需求的理解,從而進一步推動軟件項目的成功。
  本書取自需求領域兩位專傢十多年的實踐經驗,具有重要的指導和參考意義,可以幫助讀者準確理解需求,開發齣滿足用戶需求和可以幫助用戶達成任務目標的軟件産品。

作者簡介

  Anthony Chen(安東尼·陳),Seilevel聯閤創始人兼總裁。在過去十幾年間,Anthony與財富500強許多公司有廣泛的閤作。他是Seilevel的戰略負責人和軟件需求創新技術的開發負責人。他針對軟件需求技術、用戶體驗和需求分析思路寫過很多文章。
  他擁有伊利諾大學電子工程和微生物學雙學士學位,德州農工大學微生物和免疫學碩士學位。

  Joy Beatty(喬伊·貝迪),軟件需求社區的領袖,Seilevel公司副總裁,認證以業務分析師(CBAP)。經過15年的專業經驗積纍,Joy找到瞭如何運用*佳實踐來改進需求收集和建模。她協助財富500強很多企業建立瞭卓越業務分析中心。她培訓過的業務分析師數以韆計。
  Joy畢業於普渡大學,擁有計算機科學與數學雙學士學位。工作之餘,Joy還熱愛劃船、遊泳、外齣野炊。

  方敏,微軟公司前資深軟件架構師,早期微軟美國華人協會聯閤創始人。他具有豐富的技術和管理經驗和廣泛的人生閱曆,他高度重視用戶對軟件的需求,非常熟悉敏捷軟件開發和經典軟件管理,注重團隊的優勢和創新。他已與清華大學齣版社翻譯齣版瞭幾本價值極高的軟件工程書籍。
  赴美之前,他在中國航天部計算中心從事過微機開發工作。他擁有清華大學電子工程學士和碩士學位,美國新墨西哥州礦業技術學院計算機科學碩士學位。
  方敏領導和參與和很多優秀書籍的翻譯,包括《敏捷文化》、《Windows 程序設計》、《探索性軟件測試》和《遊戲創造世界:矽榖創新遊戲練習》等。

  硃嶸,在英國航空電子係統公司擔任質量工程師期間,主要負責空客A320、空客A340、波音737、波音747等飛機機型的關鍵質量分析和故障維修,具有豐富的專業經驗。
  赴美之前,她在中國航天部二院擔任工程師,負責紅七地對空導彈通信係統的研發。她擁有哈爾濱工業大學無綫電工程學士學位。

內頁插圖

目錄

第Ⅰ部分 需求模型介紹
第1章 需求建模語言入門 3
第2章 模型分類 12
第Ⅱ部分 對象模型
第3章 業務目標模型 23
第4章 目標鏈 40
第5章 關鍵績效指標模型 57
第6章 特性樹 67
第7章 需求映射矩陣 78
第Ⅲ部分 人員模型
第8章 組織結構圖 95
第9章 處理流程 109
第10章 用例 125
第11章 角色權限矩陣 143
第Ⅳ部分 係統模型
第12章 生態係統圖 159
第13章 係統流程 171
第14章 用戶界麵流程 182
第15章 顯示-動作-響應 195
第16章 決策錶 210
第17章 決策樹 221
第18章 係統界麵錶 233
第Ⅴ部分 數據模型
第19章 業務數據圖 243
第20章 數據流圖 258
第21章 數據字典 268
第22章 狀態錶 283
第23章 狀態圖 293
第24章 報告錶 303
第Ⅵ部分 大局圖中的模型
第25章 項目模型的選擇 317
第26章 模型的綜閤應用 336
第Ⅲ部分 附錄
附錄A 快速查找模型錶格 355
附錄B 一般性模型指南 357
附錄C 練習答案 359

精彩書摘

  第1章 需求建模語言入門
  離節假日旺季還有九個月,一傢著名的網上零售商確定要在其網站上添加一組重要的新功能,這將大大增強消費體驗,直接增加銷售額,同時減少好幾個國傢的客戶電話服務量。據估計,這些新功能會為公司每年增加1400萬美元的收入,而實現這些功能的費用卻不到200萬美元。産品經理確定這些功能的要求和業務規則,開發團隊和項目管理團隊預估可以在節假日旺季節到來時輕鬆地完成項目。為瞭能按期交付産品,開發團隊努力趕工,晚上和周末經常加班加點。
  八個月之後,該團隊進入最後的測試階段,感覺良好。他們完成瞭一長串功能增強以求獲得高額的迴報。然而,一位測試人員發現稅收的計算是不正確的。不幸的是,這些計算錯誤隻是冰山一角,因為團隊忽略瞭和稅收團隊交流。實際上,他們當時沒有意識到必須這樣做。如果與稅收團隊交流,他們會發現在有些國傢營業時要遵守的稅務規則極為復雜,必須與管理稅收規則的第三方軟件進行集成。項目被推遲,那個旺季1400萬美元的迴報也成泡影。項目經理被解雇,産品經理被調往其他小項目。
  項目經常因為需求的缺失、不完整或者不明確而受到睏擾(The Standish Group 2009)。錯誤的需求實踐普遍存在,所以大部分項目注定會失敗(Ellis, Keith. 2008)。需求沒做好是許多項目失敗的根源,令人失望的是在過去20年中軟件需求水平並沒有顯著提高。盡管學術界一直在穩步改善需求技術和工程方法,但是業務實踐行為在很大程度上並沒有什麼變化。軟件編程技術已經相當成熟,創造齣各種新的技術,開發齣豐富的工具,但是在寫需求時,人們還是常常使用一長串的“應該”語句,把語句存在電子錶格中。使用敏捷方法的項目也沒有多少改進,還是經常把産品工作清單和用戶故事作為一長串列錶存在電子錶格或其他工具中。
  定義RML
  RML(需求建模語言)是為建立需求視覺模型而專門設計的語言,它便於企業管理、業務和技術等項目乾係人使用。RML不是一種學術上的建模語言。在開發RML期間,我們改進瞭現有模型的易用性,創建新的模型來彌補功能上的缺失。結果就有瞭一套完整的模型,是專門為軟件需求建模而設計的,對於那些常常搞不懂復雜模型的項目乾係人來說,更容易接受。我們已經在許多大型軟件開發項目上成功使用瞭這些需求模型。
  傳統軟件需求實踐的挑戰
  傳統的做法不得不使用幾韆行“係統應該”這樣的需求描述句,其繁復程度如圖1-1所示。這些需求通常是通過與企業項目乾係人麵談或者舉行工作會議之後産生的。因為一般人都受米勒魔數的製約(參見下一節“人腦的限製”),下麵的事情幾乎是不可能發生的:人們在閱讀瞭數以韆計的需求條款後,突然確信項目的需求是全麵的。此外,另一個較大的問題是需求規模會逐漸變化。等你有瞭上韆個需求,如果沒有某種方法把這些需求與價值聯係起來,力求在解決方案層麵上進行比較,將很難決定應該砍掉哪些需求。團隊經常把需求進行邏輯分組,但這些分組通常還是過大,無法得到有效的處理。
  敏捷方法,如Scrum,有産品工作清單、用戶故事和驗收標準。許多Scrum布道者說,産品工作清單應該是非嵌套的故事列錶,這種做法比傳統的需求列錶好不瞭多少。驗收標準也要求列齣來,有時就列在便條卡的某一麵上。做過大型係統的人都知道,在可能會有幾百個項目乾係人參加的項目上,這種缺乏信息組織結構的做法是行不通的。
  人腦的限製
  使用傳統實踐來創建軟件需求的業務分析師在分析、組織和使用需求上會遇到同樣的問題。傳統的做法使用冗長列錶來列齣需求的文字描述,其形式是“應該”語句、用例、最近又增加的用戶故事和産品工作清單。受限於人類的基本認知能力,冗長的清單列錶使用起來都很睏難。在20世紀50年代,認知心理學傢喬治?米勒發現,人類隻能記住和處理7加或減2項內容(Miller, George A. 1956),這通常稱為“米勒魔數”。
  7 +/-2
  後來的證據錶明基數甚至可能少到3或4(Cowan, Nelson. 2001)。這個數字代錶大腦“暫存器”解決問題時所能保存的信息容量。無論實際數目是多少,如果要求普通人同時考慮大約15件事情,實際上最多隻能記住和處理其中9件(可能更少)。如果要求處理的事情更多,一次隻有幾件可以同時處理,其他的會被快速切入或切齣暫存器。想想去雜貨店購買15件東西,如果沒有一份寫好的購物清單,你很可能漏掉東西或者買迴的東西數量不正確。同樣的道理,如果需求列錶或産品工作清單中的事項成百上韆,那麼你的大腦根本沒有辦法處理這種復雜性,除非把它分解成更小的結構化分組。
  需求文件
  REQ001係統應該有姓、中間名首字母和名等字段。
  REQ002係統應該顯示名字如果存儲的個人資料中已有一個。
  REQ003係統應該要求姓名是完整的。
  REQ004係統應該有職位或頭銜字段。
  REQ005係統應該要求頭銜是完整的。
  REQ006係統應該顯示職位或頭銜如果存儲的個人資料中已有一個。
  REQ007係統應該有電子郵件地址字段。
  REQ008係統應該有備用的電子郵件地址字段。
  REQ009係統應該顯示電子郵件地址如果存儲的個人資料中已有一個。
  REQ010係統應該顯示備用電子郵件地址如果存儲的個人資料中已有一個。
  REQ011係統應該要求電子郵件地址是完整的。
  REQ012係統應該要求備用的電子郵件地址是完整的。
  REQ013係統應該具有白天電話號碼的字段。
  REQ014係統應該顯示電話號碼如果存儲的個人資料已有一個。
  REQ015係統應該要求電話號碼是完整的。
  REQ016係統應該在驗證電話號碼字段中所有字符是數字當用戶退齣該字段時。
  REQ017係統應該顯示錯誤消息如果在電話號碼字段不是所有字符都是數字。
  REQ018係統應該有傳真號碼的字段。
  REQ019係統應該要求傳真號碼是完整的。
  REQ020係統應該顯示傳真號碼如果存儲的個人資料已有一個。
  REQ021係統應該驗證在傳真號碼字段中的所有字符是數字當用戶退齣該字段時。
  REQ022係統應該顯示錯誤信息如果在傳真號碼字段裏不是所有字符都是數字。
  REQ023係統應該有街道地址的兩個字段。
  REQ024係統應該要求街道地址字段是完整的。
  REQ025係統應該顯示地址如果存儲的個人資料已有一個。
  REQ026係統應該有城市的字段。
  REQ027係統應該要求城市字段是完整的。
  REQ028係統應該顯示城市如果存儲的個人資料已有一個。
  REQ029係統應該有狀態的字段。
  REQ030係統應該顯示狀態如果存儲的個人資料已有一個。
  REQ031係統應該要求狀態字段是完整的。
  REQ032係統應該有郵政編碼的字段。
  REQ033係統應該顯示郵政編碼如果存儲的個人資料已有一個。
  REQ034係統應該要求郵政編碼字段是完整的。
  圖1-1 冗長的需求列錶
  圖比文字更容易理解
  如何解決原始哺乳動物大腦的基本限製呢?有句話說得好:“一圖勝韆言。”模型是信息的視覺錶現方式(圖形),它描述瞭流程、數據和解決方案內部和環境的互動。你可能每天都在使用視覺模型但可能沒有意識到這一點。
  最近我齣差,參加一個在賭場酒店舉辦的會議,我在前颱登記後領到瞭房間的鑰匙,前颱女服務員給我指路,告訴我怎麼去我的房間。她說瞭類似這樣的話:“你從這裏沿著右邊走齣去,然後沿著路嚮左行,穿過一個酒吧,路過幾颱老虎機,在噴泉附近嚮右轉,走過一傢餐廳,再走過一傢餐廳,然後你會走到一個大廳,在那裏嚮左轉走過一條商業街,在路的盡頭你會發現遊泳池入口處有一個電梯。”
  我茫然地盯著她。那一刻我能想起的就隻有我剛剛從齣租車走到前颱時所看到的很多老虎機和賭桌。我假設在去房間的路上會走過更多的老虎機和賭颱,女服務員剛纔講的已經記不清楚,反而把我搞得更糊塗。後來她給瞭我一點兒希望:“這張圖畫瞭怎麼去那裏。”她畫齣從前颱到電梯的路綫圖,如圖1-2所示。我鬆瞭一口氣,因為我隻記住瞭她所說的前幾步,其他記不住,但現在我有瞭一個模型,我糊塗的時候可以參考。一張圖!總而言之,當人類解釋信息時,圖比文字更容易理解。
  圖1-2 一張穿過賭場的地圖,對應於女服務員所說的路綫
  需求模型
  需求模型組織和展示瞭大量信息,幫助你發現缺失的信息,並給齣上下文細節(Gottesdiener, Ellen. 2002)。最重要的是模型可以從視覺上進行分組,使你能夠通過短期記憶能力快速分析大量截然不同的信息。在有幾韆條“係統應該”句式的需求文檔中,閱讀、解釋並找齣差異是很睏難的,而視覺模型能夠提供幫助。
  想象在你麵前零亂擺放的字母(如圖1-3所示),要你找齣字母錶中哪些字母沒有齣現。
  圖1-3 零亂擺放的字母中,缺瞭哪個字母
  如果你隻是盯著混亂的字母或甚至把字母無序地排成一行,是很難發現缺瞭哪個字母的(事實上,你可能剛剛試著把它們按順序排列起來)。如果按字母順序排列(如圖1-4所示),瞬間就會發現缺失的字母。
  要找到缺失的需求,關鍵是利用一個事實,每一個需求與其他需求都有著某種聯係。當你得到一長串“係統應該”的需求條款時,要想保證其完整性是極其睏難的,但如果重新組織需求就可以利用這種聯係,每次隻在較小的分組裏分析信息從而大大簡化任務。
  需求模型用於項目的整個生命周期。這些模型可用於多種場閤,有助於分析需求,有助於嚮項目乾係人提齣需求和驗證需求,有助於與開發人員和測試人員溝通需求。
  圖1-4 排列已有字母,找齣缺失的字母
  為什麼不用UML
  一個直接的問題齣現瞭:“為什麼不使用統一建模語言(UML)?”|UML是一種專門用於以可視化方式設計軟件係統的語言(請參閱文獻Object Management Group. 2007)。UML為需求建模奠定瞭閤理基礎,但它不滿足需求建模的全部要求,因為它缺少有關需求與業務價值的模型,缺少從最終用戶的角度展示係統結構的模型。此外,它在技術上過於復雜使得業務項目乾係人難以掌握,因為它的模型側重於軟件係統的架構建模。最後,UML用於描述係統的技術設計和結構,頂多在建模方麵對UML進行翻新改造以支持業務收益、用戶操作和業務規則。
  當一個模型隻聚集於解決問題的一個或兩個方麵時,它是最有用的。如果一個模型具有許多類型的信息或者模型的語法規則過於復雜和難於理解,項目乾係人絕對不會用。事實上,我們的經驗說明,模型的復雜性是造成大型企業不用一些現有建模語言的主要原因之一。
  RML模型是用最簡單的語法設計齣來的,還可以傳達必要的信息。RML的目的是提供一緻的語法和語義結構供業務乾係人分析和理解項目模型。設計該語言的目的是讓整個團隊容易學習和使用,包括但又不局限於業務項目乾係人、開發人員和測試人員。模型簡化到隻有最基本的符號和格式,但還能保證在需求方麵取得預期的結果。RML不隻針對軟件開發方法,也可以容易適應於與任何開發方法或工具套件結閤使用。
  需求與設計
  許多RML模型在業務分析師看來通常屬於設計領域。例如,顯示-操作-響應模型使用綫框或屏幕截圖來描述用戶如何與屏幕元素交互,用戶界麵流模型展示用戶如何瀏覽各種用戶界麵。
  有一句關於需求的諺語:“需求關注的是要建什麼,設計關注的則是它如何起作用。”需求和設計之間的區彆很重要,因為很多人強調任何設計都不應該和需求混在一起,設計文檔不應該由業務分析師來寫。遺憾的是,這種嚴格的定義存在一個問題:“一個層麵的需求是對另一個層麵的設計。”
  一個層麵的需求是對另一個層麵的設計
  在自上而下的解決方案中有不同的概念層麵,如果考慮一個層麵是有關“什麼”的,那麼它的下一層麵將是有關“如何作用”於它的。因此,基於這種“什麼”與“如何作用”的定義,如果一個層麵是需求,那麼下麵的層麵就應該是對需求的設計。
  例如,項目乾係人可能需要降低網站的購物車放棄率。在下麵的細節層麵,産品經理可能會提齣幾個不同的解決方案力求降低購物車放棄率。例如,該團隊可以減少結賬過程中的步驟,可以提供保留購物車內容的功能方便顧客下次購買,或者可以提供免費送貨服務。提齣的每一個解決方案都是有關“如何作用”(即“設計”)的,滿足的是“什麼”需求(即降低購物車放棄率)。此外,最初的“什麼”(即改進係統降低購物車放棄率)可能同樣也是“如何作用”(即試圖改進整個網站轉化率)。
  不要用“什麼”與“如何作用”的關係來區彆“需求”和“設計”。這種方式不好。
  確定業務的實際需要
  另一個常見的定義是,任何有關實際解決方案的都屬於設計而不是需求,例如算法的使用、外觀和感覺、用戶界麵元素等。但是,在有些情況下,特定的請求有時可能是需求,而有時可能是設計。例如,在某些行業中,一個産品為瞭競爭的需要必須使用專門的加密算法,因此它是一種需求。對於另一個應用程序,它完全不關心使用專門的加密算法,唯一重要的是應用程序必須使用某種算法來加密信用卡號碼。
  用戶要求是不是需求,關鍵要看業務項目乾係人是否真正需要它。我們都知道,項目乾係人實際上並不需要他們宣稱自己想要所有的特徵,所以要對請求作齣判斷,它是否真正是需求,用戶是否真的需要。
  定義需求
  需求是企業需要在解決方案中實現的。因此需求可以包括功能性需求、非功能性需求、業務規則,甚至包括許多人傳統上所稱的設計。可以使用模型方法幫助項目乾係人真正明白需要什麼,而不是告訴他們允許他們選擇什麼類型的需求。
  本節定義一些用於全書的需求術語。功能性需求是一個解決方案所提供的行為或功能而不加任何限定詞。業務規則錶示在修改功能性需求時必須滿足的條件語句,包括但不限於什麼時候該功能可以用以及允許誰執行該功能。業務規則包含諸如“如果”“何時”和“然後”等詞匯。非功能性需求是任何不屬於功能性的需求(包括業務規則)。特性是一個功能區域的簡短描述,解決方案將最終實現該特性以達到業務目標。特性是需求的集閤,用來清楚描述和組織需求。錶1-1給齣瞭幾個例子。
  錶1-1 需求的例子
  需求 類彆
  係統應該能夠自動批準或駁迴信用申請 功能性需求
  當信用指標高於750,係統應該自動批準信用申請 業務規則
  對於信用指標低於750,當自動決定是否批準信用申請時,係統應該使用下列算法:[算法將加在這裏] 業務規則
  審批過程應該在30秒內返迴給用戶 非功能性需求
  假設是做決策時所依據的真實陳述。假設包括對未來的任何預測或預報。假設對於需求非常關鍵,因為這些假設會不斷被引用,但很少有人理解或能夠有人講清楚。事實上,如果讓業務分析師寫下自己的假設,他們通常寫下一些瑣碎的小事,既不具有影響力又缺乏重要性。如果這些例子中的假設被證明是不正確的,可能會導緻業務目標無法實現。
  很多人都願意在網上搜索以解決他們的技術問題。
  當遇到技術問題時,50%的人願意等待以後再試。
  90%的業務客戶都在上網進行。
  待解決的問題中有些問題可以由客戶自行解決。
  需求模型不等於遊戲的結束
  需求模型的使用並沒有完全取消寫需求。雖然模型提供上下文又創建瞭有關需求的完整圖形,但是模型還不是係統開發人員和測試人員最終使用的形式,必須采取額外的步驟從模型中提煉齣需求。就像按照貨架走道來組織購物清單一樣,要為開發項目的團隊産生需求清單。模型的價值在於以某種方式幫助組織所有的需求,以便很容易看齣需求有缺失、無關或不正確的情況。
  創建的所有模型都應該納入項目的全部需求中。文字需求和可視化需求共同描繪齣待建的解決方案的全景(Wiegers, Karl E. 2003)。
  在項目中使用RML
  可以把這本書中介紹的RML模型想象成軟件項目的模型模闆工具箱。通常情況下,建議綜閤使用多個模型,有些常用的方法定義瞭在整個開發周期中何時使用特定的模型。把需求模型應用到項目時,可以和許多開發方法一起使用,例如敏捷方法、迭代方法和瀑布方法(參見第25章)。
  其他資源
  “業務分析師的RML快速參考指南”,兩頁篇幅的模型相關摘要:http://www.seilevel.com/wp-content/uploads/RML-Language-for-Modeling-Software-Requirements.pdf
  《軟件需求》(第2版)第11章係統介紹瞭模型的價值(Wiegers, Karl E. 2003)
  參考文獻
  Chen, Anthony. 2010. “What vs. How – BRD vs. User Requirements vs. Functional Requirements”: http://requirements.seilevel.com/blog/2010/04/ what-vs-how-brd-vs-user-requirements-vs-functional-requirements.html.
  Cowan, Nelson. 2001. “The Magical Number 4 in Short-Term Memory: A Reconsideration of Mental Storage Capacity.” Behavioral and Brain Sciences 24, 87-114.
  Ellis, Keith. 2008. “Business Analysis Benchmark Report.“ IAG Consulting. http://www.iag.biz/images/resources/iag%20business% 20analysis%20benchmark%20-%20executive%20summary.pdf.
  Gottesdiener, Ellen. 2002. Requirements by Collaboration: Workshops for Defining Needs. Boston, MA: Addison-Wesley Professional.
  Miller, George A. 1956. “The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information.” Psychological Review 63, 81-97.
  Object Management Group. 2007. “OMG Unified Modeling Language Specification.” http://www.uml.org/#UML2.0.
  The Standish Group. 2009. “CHAOS Summary 2009.” West Yarmouth, MA: The Standish Group International, Inc.
  Wiegers, Karl E. 2003. Software Requirements, Second Edition. Redmond, WA: Microsoft Press.
  ……

前言/序言

  可視化需求模型是確認軟件需求最有效的方法之一。這些模型幫助市場分析師確認,所有的項目利益相關者能夠理解提齣的解決方案,這些人士包括領域專傢、商業利益相關者、高層管理人員和技術團隊。可視化方式讓項目利益相關者對項目更感興趣,更樂於參與,其目的是找齣需求方麵是否存在差異。更重要的是,可視化創造瞭圖形化的解決方案,幫助項目利益相關者理解解決方案交付什麼結果和不包括什麼。雖然可視化有這些優點,許多市場分析師和産品經理還是使用非可視化的電子錶格或文本列齣數韆行條款。這些大量的文檔讓人吃不消,審查起來很枯燥,極不容易發現缺失的需求。這種實際狀況反映當前需求專業培訓有哪些問題癥狀,培訓往往注重如何寫齣每條好的需求,而不注重如何分析整個解決方案。
  這本書將幫助市場分析師、産品經理以及部門其他成員使用可視化模型捕獲需求、建立模型和理解需求。本書描述瞭一種簡潔而完整的語言RML(Requirements Modeling Language,需求建模語言),它用於建立軟件需求的可視化模型,收集和規範瞭工業界中普遍使用的最佳實踐模型。
  誰應該讀這本書
  雖然這本書主要針對市場分析師和産品經理,但是我們認為項目經理、開發人員、架構師和測試人員也可以從這本書中獲得巨大的價值,因為它可以幫助他們學習必要的信息標準,使他們的工作更容易。這本書通常把實際做工作的人稱為“市場分析師”,在不同的部門裏這個角色有著許多不同的職稱。當提到“你”,我們也是指“市場分析師”。
  事先告訴大傢,我們的經驗主要基於在現有基礎架構上建設軟件的項目,例如麵嚮內部的信息技術係統(IT)、麵嚮消費者的作為軟件即服務(SaaS)的大型軟件係統以及雲係統。雖然我們已經在獨立的軟件包和嵌入式係統中使用瞭RML,但是這些類型的項目都不是我們的主打領域。根據我們對這些係統的有限經驗,認為做這些係統工作的讀者也會發現RML提供瞭令人難以置信的價值,我們期待著收到他們提齣的改進意見。
  本書的假設
  本書假設你已具有編寫軟件需求的基礎知識,因此不提供需求工作的基本信息。本書希望你對軟件開發過程有些基本瞭解,例如,迭代方法、瀑布方法、和敏捷方法,知道它們是如何處理軟件需求的。
  誰不必讀這本書
  如果你剛剛開始做市場分析師,我們建議你在讀這本書之前先閱讀卡爾·魏格斯所寫的《軟件需求》一書,瞭解需求領域的全麵概況。如果你正在開發獨立包裝齣售的軟件,書裏的一些概念還是有意義的,不過你可能會發現商業定位不同。如果你是一個産品經理,側重於軟件産品的戰略和營銷而不是開發軟件,這本書可能對你不閤適,因為它重點集中於如何設計軟件功能使其受到高端用戶的認可。
  本書的結構
  我們組織這本書的目的是將它作為參考指南。
  第Ⅰ部分先介紹一般模型的情況,然後討論RML語言和四類模型:目標模型、人員模型、係統模型和數據模型(OPSD)。
  第Ⅱ部分到第Ⅴ部分的各章討論全部RML模型,各章有相同的結構,其中包括:
  有關模型的真實故事
  模型的定義
  模型的模闆
  建議創建模型的工具
  虛構的例子
  解釋如何創建和使用模型
  學習使用模型的練習
  所有這些章的練習都圍繞著一個樣品項目而設計。
  第Ⅵ部分解釋如何選擇模型以及如何使用模型來産生軟件需求。
  附錄A包含兩個快速模型查找錶作為模型選擇指導,附錄B建議創建模型的一般準則,包括所有的模型元數據和模闆提示,附錄C給齣書中所有練習的答案。還有一個詞匯錶定義本書用過的術語。
  閱讀本書的最佳切入點
  可以直接閱讀全書,但對有些人來說,在深入每個模型的細節之前,從第Ⅵ部分開始閱讀會更好地理解上下文。下錶提供瞭更多的指導。
  讀者對象 建議步驟
  總體上不熟悉需求建模或可視化建模 可以從前到後地閱讀本書,看看需求模型的介紹,
  瞭解每個模型的內容,最後把它們聯係起來使用
  熟悉可視化需求建模或者 建議瀏覽所有的章節,瞭解RML在可視化建模上與
  是使用過類似模型的市場分析師 其他建模語言有什麼不同。但是可能從第Ⅵ部分
  開始瞭解更高級的內容更有幫助,如何選擇模型
  以及如何在項目中把多個模型一起使用。當項目
  需要時,可以參考相關模型的章節
  建模快速入門
  這本書包含學習需求建模的大量信息。前景是美好的,為此我們開發瞭一種方法,使用盡可能少的模型但能為項目創造明顯的價值。這種快速啓動的方法適用於大多數IT項目。下麵的流程圖總結瞭這種方法。
  如圖所示,首先創建業務流程。接下來,根據流程步驟創建需求映射矩陣(RMM)。然後為流程步驟的截屏創建對應的顯示-操作-響應(DAR)模型,將它們映射到業務流程步驟上。最後創建數據字典確保所有字段都包括,確認字段的驗證規則。
  雖然這張圖沒有提到很多其他有價值的模型,但給齣瞭一係列讀者容易理解的主要步驟。最後結果是,項目的需求將按照流程步驟來組織,截屏也將映射到流程步驟,以確保用戶界麵滿足關鍵流程的需要。
  本書約定和功能
  本書使用專門的約定確保信息易於理解,易於遵循。
  每章開始處用斜體字嚮讀者講述一個非軟件的故事作為引子。
  整本書中所有RML模型名稱都大寫。用非RML的其他建模語言建的模型名稱不大寫。
  RML模型的模塊稱為元素,這些模型元素名稱沒有大寫,以免與模型名稱混淆。
  這本書結尾處的詞匯錶列齣我們認為重要的RML術語。這些術語以斜體字貫穿全書。
  每個模型的模闆提供工具提示的讀者幫助,建議使用何種工具創建該模型。
  配套內容
  如果項目需要創建本書的模型時,歡迎你下載使用RML模型模闆。RML模型的全套模闆下載網址
  壓縮文件中的使用說明介紹瞭如何使用模闆。簡單步驟如下:下載壓縮文件,還原文件內容放到方便的地方。每個模型有一個模闆,Visio文件格式的模型包括一個模闆和一個模闆文件,模闆正常工作需要這兩個部分。其餘模闆均為Excel格式或Word格式。快速模型查找錶也在壓縮文件中。
  緻謝
  從我們Seilevel公司的團隊到在世界各地做需求工作的同事,再到多年來一直支持和幫助我們改進RML的客戶,沒有你們的閤作,這本書是不可能齣版的。
  非常感謝Seilevel公司的員工幫助研究、審閱、寫作、編輯和起草模型,提齣很難迴答的好問題,他們是喬伊斯·格雷普斯、詹姆·哈爾根、貝琪斯·托剋代爾、邁剋爾·劉、坎達絲·霍卡鬆、傑裏·高爾、巴拉吉·維賈揚、馬剋·塔爾博特、馬特·奧佛斯、阿賈伊·巴德裏、傑森·菲爾德、傑拉爾丁·濛戈爾德、凱爾·康登、剋林特·格雷厄姆、大衛·萊因哈特、韋斯·埃德森、阿蔔杜勒·馬瑟、剋裏斯·蒂森索、羅布·斯巴剋斯和洛瑞·威策爾。
  我們誠摯地感謝許多審閱人員,他們花時間閱讀書稿,給齣他們的想法和批評,幫助改進本書。他們是喬伊·斯塔茲、肯特·麥當勞、莎拉·格雷戈裏、列爾卡·彆烏斯-杜奇、瑪麗·戈若斯、卡爾·魏格斯、埃倫·戈特斯蒂訥、斯科特·賽爾豪斯特、埃維·鬍剋斯和安妮·哈特利。特彆感謝卡爾·魏格斯和伊恩·亞曆山大,他們兩人提供寫作指導並和我們切磋關於模型的想法。
  我們衷心感謝勤奮工作和富有情趣的編輯團隊,他們把這本書變成瞭現實。同時感謝組稿和策劃編輯德文郡·馬斯格雷夫和項目編輯卡羅爾·迪靈漢,他們兩人都在微軟齣版社工作。我們還要感謝項目經理和文稿編輯凱西·剋勞斯,排版人員吉恩·特雷納裏、校對海梅·奧德爾、美編珍妮·剋雷沃和索引人員揚·巴德納茲剋。
  最後,要感謝我們的傢人一起忍受漫長的寫作過程。喬伊感謝她的丈夫托尼·漢密爾頓,在整個過程中幫助她保持幽默感;感謝她的女兒斯凱,她齣生在這本書的寫作期間,當我們完成寫作時她已經學會瞭一覺睡到天明。事實證明,寫一本書就像有一個孩子:許多月的孕育、準備、和喂養。安東尼感謝他的妻子格洛麗亞對他的支持,還有他的女兒梅森,她可以自己愉快地玩耍讓爸爸工作,但在電話會議時她變得非常安靜。最後,安東尼想感謝喬伊,如果沒有她全力以赴地推動這本書的寫作,此書永遠不會齣版。
  勘誤和支持
  我們已經盡瞭一切努力來確保本書和配套內容的準確性。這本書齣版之後所報告的任何錯誤都會列在我們的微軟齣版社網站
  如果發現沒有列齣的錯誤,可以通過這個網址嚮我們報告。
  如果需要額外的支持,發電子郵件到微軟齣版社的書籍支持。
  請注意,微軟的軟件産品支持不是通過上麵地址提供的。
  我們期待著你的意見
  在微軟齣版社,你的滿意是我們的首要任務,你的反饋是我們最寶貴的財富。請通過下麵的網址告訴我們你對這本書的看法:
  這項調查很簡短。我們會閱讀每一條意見和建議,提前謝謝你的輸入。


《軟件需求與可視化模型》 聚焦軟件開發的核心:需求分析與設計的藝術 在信息技術飛速發展的今天,軟件已滲透到我們生活的方方麵麵,從日常通訊到工業生産,無處不在。然而,一款成功的軟件並非憑空而生,其背後蘊含的是嚴謹的需求分析、精巧的設計以及高效的開發流程。本書,《軟件需求與可視化模型》,正是聚焦於軟件開發過程中至關重要的兩個環節:需求獲取與建模,以及如何有效地將其轉化為可視化的模型。我們旨在為讀者提供一套係統性的理論框架和實用的方法論,幫助開發者、分析師、項目經理以及任何參與軟件開發過程的人員,深刻理解並掌握如何準確把握用戶需求,並將其轉化為清晰、可理解、易於溝通的軟件設計藍圖。 本書並非一本簡單的工具手冊,而是深入探討軟件需求與模型設計的本質。我們將從最基礎的“為什麼”開始,解釋為何需求分析是軟件項目成功的基石,以及為何可視化模型是連接需求與實現的橋梁。您將瞭解到,一個模糊不清或片麵的需求,往往是導緻項目延期、成本超支甚至最終失敗的罪魁禍首。同樣,缺乏直觀、有效的模型,將導緻團隊溝通障礙,設計偏差,以及最終産品與用戶期望的脫節。 第一篇:軟件需求的基石——理解與獲取 在本書的第一篇中,我們將帶領您深入探索軟件需求的本質。我們將首先定義什麼是“需求”,它不僅僅是用戶想要的功能列錶,更是用戶在特定場景下為解決特定問題所期望達到的目標。我們將區分不同類型的需求,包括: 業務需求(Business Requirements): 從更高層麵的戰略目標齣發,描述項目希望實現的業務價值和商業目標。例如,“提高客戶滿意度10%”,“降低運營成本5%”。 用戶需求(User Requirements): 描述用戶在使用係統時需要完成的任務和能夠達到的目標。這些需求通常以用戶故事(User Stories)或用例(Use Cases)的形式來錶達。例如,“用戶能夠通過搜索功能快速找到所需産品”,“用戶能夠在綫完成訂單支付”。 係統需求(System Requirements): 描述係統本身應該具備的功能、性能、接口、約束等方麵的要求。這些需求是用戶需求和業務需求的具體實現。例如,“係統應能在2秒內返迴搜索結果”,“係統應支持多種支付方式”。 非功能性需求(Non-functional Requirements): 描述係統在運行過程中應該具備的質量屬性,如性能、可靠性、安全性、易用性、可維護性等。這些需求往往對用戶體驗和係統質量至關重要,但卻不容易直接被用戶描述齣來。例如,“係統應具備99.9%的可用性”,“用戶數據傳輸應加密保護”。 理解這些需求的層次和關係,是進行有效需求分析的前提。接下來,我們將聚焦於需求獲取這一至關重要的環節。我們將詳細介紹多種經典的、被業界廣泛應用的需求獲取技術,並分析其各自的優缺點和適用場景: 訪談(Interviews): 這是最常用、最直接的需求獲取方式。我們將探討如何設計有效的訪談問題,如何引導訪談對象,如何傾聽和記錄,以及如何處理訪談中的挑戰,如信息不足、溝通障礙等。我們將提供不同類型的訪談技巧,包括結構化訪談、半結構化訪談和非結構化訪談。 問捲調查(Questionnaires/Surveys): 當需要從大量用戶那裏收集信息時,問捲調查是一個高效的工具。我們將講解如何設計清晰、簡潔、有針對性的問捲,如何選擇閤適的發布渠道,以及如何分析問捲結果。 焦點小組(Focus Groups): 通過組織一小群代錶性的用戶進行集中討論,可以深入挖掘用戶的需求和偏好。我們將介紹如何組織和引導焦點小組,如何收集和分析小組討論的反饋。 原型法(Prototyping): 構建一個初步的、可交互的原型,讓用戶能夠實際體驗,從而幫助他們更清晰地錶達需求,並及時發現潛在的問題。我們將探討不同類型的原型(如低保真原型、高保真原型),以及如何有效地利用原型進行需求驗證。 情景分析(Scenarios): 通過描述用戶在特定情境下如何與係統交互來理解需求。我們將講解如何構建引人入勝的情景,以及如何從中提煉齣關鍵需求。 觀察法(Observation): 直接觀察用戶在真實工作環境中如何操作,瞭解他們的行為模式和遇到的睏難。這將幫助我們發現用戶自己可能都沒有意識到的需求。 文檔分析(Document Analysis): 研究現有的相關文檔,如用戶手冊、業務流程圖、競爭對手的産品文檔等,可以為需求分析提供有價值的背景信息。 在掌握瞭這些需求獲取技術之後,我們還將深入探討需求分析與管理的核心原則。這包括: 需求衝突的識彆與解決: 在項目過程中,不同用戶、不同部門之間可能存在需求的衝突。我們將探討如何識彆這些衝突,並提供解決衝突的策略和方法。 需求優先級排序: 資源總是有限的,因此對需求進行優先級排序至關重要。我們將介紹多種需求優先級排序技術,如MoSCoW(Must have, Should have, Could have, Won't have)、Kano模型等,幫助團隊做齣明智的決策。 需求變更管理: 軟件開發過程中,需求變更幾乎是不可避免的。我們將強調建立健全的需求變更管理流程,如何評估變更的影響,以及如何進行有效的溝通和決策。 需求文檔的編寫: 如何將抽象的需求轉化為清晰、準確、易於理解的文檔是至關重要的。我們將講解不同類型需求文檔的編寫規範,如需求規格說明書(SRS)、用戶故事列錶、用例圖等。 第二篇:可視化的力量——模型驅動的設計 當需求被清晰地理解和記錄後,下一步便是將這些需求轉化為可視化模型,從而指導軟件的設計與開發。本書的第二篇將專注於軟件建模的藝術與實踐。我們將引入模型驅動設計(Model-Driven Design, MDD)的理念,強調通過建立一係列抽象的模型來描述係統的不同方麵,並最終生成可執行的代碼。 我們將重點介紹幾種被廣泛應用且行之有效的建模語言和方法: 統一建模語言(Unified Modeling Language, UML): UML是軟件建模的“通用語言”,它提供瞭一套標準化的圖形符號和約定,用於可視化、規格化、構建和文檔化軟件係統的各個方麵。我們將詳細講解UML的核心圖示,包括: 結構圖(Structure Diagrams): 類圖(Class Diagrams): 描述係統的靜態結構,展示類、接口、它們之間的關係(關聯、繼承、聚閤、組閤)以及它們的屬性和操作。我們將深入理解如何根據需求信息設計齣閤理的類結構。 對象圖(Object Diagrams): 展示類圖在特定時間點的實例快照,幫助理解對象之間的關係。 組件圖(Component Diagrams): 描述係統的物理結構,展示組件以及它們之間的依賴關係。 部署圖(Deployment Diagrams): 描述係統的硬件和軟件配置,展示軟件組件如何在物理節點上部署。 包圖(Package Diagrams): 用於組織和管理UML模型中的各種元素,將相關的模型元素分組。 行為圖(Behavior Diagrams): 用例圖(Use Case Diagrams): 描繪係統與外部參與者(用戶或外部係統)之間的交互,展示係統的功能性需求。我們將學習如何從用戶需求中提煉齣清晰的用例。 活動圖(Activity Diagrams): 描述係統的業務流程或操作流程,展示一係列活動的順序、分支和閤並。 狀態機圖(State Machine Diagrams): 描述一個對象在其生命周期中的狀態變化以及觸發這些變化的事件。 順序圖(Sequence Diagrams): 強調對象之間消息傳遞的時間順序,展示對象之間如何協同工作。 協作圖(Collaboration Diagrams,也稱通信圖): 強調對象之間的交互關係,展示對象如何通過消息進行通信。 時序圖(Timing Diagrams): 側重於對象之間交互的時間限製。 交互概覽圖(Interaction Overview Diagrams): 是一種混閤圖,結閤瞭活動圖和順序圖。 通信圖(Communication Diagrams): 類似於順序圖,但更側重於對象之間的連接和消息的傳遞。 協議轉換圖(Protocol Transition Diagrams): 用於描述對象在遵循特定協議時的狀態轉換。 UML的其他重要圖示: 我們還將觸及UML中其他用於特定目的的圖示,確保您能夠全麵掌握UML的強大能力。 業務流程建模(Business Process Modeling): 除瞭軟件本身的設計,理解和建模業務流程同樣重要。我們將介紹如何使用諸如BPMN(Business Process Model and Notation)等標準來清晰地描繪業務流程,從而確保軟件設計能夠與實際業務緊密結閤。 數據建模(Data Modeling): 無論是關係型數據庫還是NoSQL數據庫,數據的結構和關係是軟件設計的核心。我們將探討概念數據模型、邏輯數據模型和物理數據模型,以及如何使用實體-關係圖(ER Diagram)等工具進行數據建模。 領域驅動設計(Domain-Driven Design, DDD)與模型的關係: 我們將引入DDD的思想,強調將軟件設計與業務領域緊密結閤,構建“領域模型”。理解DDD的核心概念,如限界上下文、聚閤、實體、值對象等,將幫助您設計齣更具內聚性、更易於維護的軟件係統。 在學習瞭各種建模技術之後,本書還將探討模型在軟件開發生命周期中的作用: 模型作為溝通工具: 可視化模型是團隊成員之間、團隊與客戶之間溝通的有效橋梁,能夠減少誤解,促進協作。 模型作為設計依據: 模型提供瞭軟件結構和行為的藍圖,指導開發人員進行編碼。 模型作為文檔: 模型本身就是一種重要的軟件文檔,能夠幫助理解係統的設計和演進。 模型驅動的開發(MDD)與代碼生成: 我們將探討如何利用模型自動生成部分代碼,提高開發效率,減少手動編碼錯誤。 第三篇:實踐的升華——從模型到落地 理論知識固然重要,但將其轉化為實際的開發成果纔是最終目的。本書的第三篇將聚焦於如何將可視化模型有效地應用於實際的軟件開發過程。 模型與敏捷開發: 我們將探討如何在敏捷開發框架(如Scrum)中融入需求獲取和建模的實踐。如何持續地獲取需求、不斷地迭代模型,以及如何平衡模型的精確性與開發的靈活性。 模型驗證與評審: 如何通過模型評審、原型演示等方式,確保模型準確地反映瞭需求,並得到團隊和客戶的認可。 模型與自動化測試: 模型可以為自動化測試提供輸入和指導,提高測試的效率和覆蓋率。 模型在不同開發環境下的應用: 探討在Web應用、移動應用、桌麵應用等不同類型的軟件開發項目中,如何靈活運用需求與可視化模型。 經典案例分析: 我們將選取一些真實的軟件項目案例,剖析其中需求獲取、模型設計與開發過程中的關鍵環節,讓讀者從中汲取經驗教訓,掌握實戰技巧。 工具與技術的前沿展望: 簡要介紹當前業界在需求管理和建模領域的一些熱門工具和技術,例如支持UML建模的IDE插件、模型驅動開發平颱等,並對未來的發展趨勢進行展望。 本書的價值與讀者收益 閱讀本書,您將獲得: 對軟件需求本質的深刻理解: 掌握準確、全麵地識彆、獲取和管理軟件需求的方法。 強大的可視化建模能力: 熟練運用UML等建模語言,將抽象需求轉化為清晰、可執行的設計模型。 提升團隊溝通效率: 通過統一的語言和模型,消除信息壁壘,促進團隊協作。 提高軟件質量與可靠性: 規範化的需求分析與設計,能夠有效規避潛在風險,提升産品質量。 優化開發流程,降低項目成本: 精準的需求和良好的設計,有助於減少返工,縮短開發周期。 為深入學習軟件工程打下堅實基礎: 本書內容涵蓋瞭軟件工程的核心領域,為讀者進一步探索高級主題提供指引。 無論您是初入軟件開發領域的學生,還是經驗豐富的架構師,亦或是項目管理的關鍵人物,《軟件需求與可視化模型》都將是您案頭不可或缺的參考書。我們將以嚴謹的理論、豐富的實踐指導和清晰的圖文並茂,引導您在軟件開發的世界中,構建齣更優秀、更成功的軟件産品。讓我們一起,用清晰的需求,構建美好的軟件未來!

用戶評價

評分

我最近剛入手一本關於軟件需求與可視化模型的書,它的副標題是“微軟技術叢書”,這讓我對它的專業性和實踐性有瞭很高的期待。讀下來之後,這本書確實沒有讓我失望,甚至可以說給瞭我不少驚喜。 首先,它深入淺齣地剖析瞭軟件需求的重要性,讓我重新認識到需求是軟件成功的基石。過去,我總是把重心放在編碼和技術實現上,而忽略瞭需求階段的細緻打磨。這本書讓我明白,一個模糊不清或不準確的需求,無論多麼精湛的技術,都可能導緻項目最終的失敗。它從多個角度闡述瞭需求分析的各種方法,包括訪談、問捲、原型設計等,並且詳細講解瞭每種方法的優缺點以及適用場景。 其次,這本書對於“可視化模型”的講解,是我覺得最有價值的部分。作者們用大量的圖例和實際案例,生動地展示瞭如何將抽象的需求轉化為可視化的模型。我尤其欣賞它對用例圖、活動圖、狀態圖等UML圖的詳細介紹,它們就像是軟件的“建築藍圖”,能夠清晰地展現係統的功能、交互和流程。通過學習,我學會瞭如何運用這些模型來溝通需求,減少誤解,並有效地指導開發過程。 更重要的是,這本書非常注重實踐操作。它提供瞭許多可供參考的模闆和流程,甚至還分享瞭一些在實際項目中可能遇到的陷阱和規避方法。作者們並沒有迴避問題的復雜性,而是提供瞭切實可行的解決方案。我感覺自己不僅僅是在讀書,更像是在參加一個高質量的軟件工程培訓。 此外,本書的語言錶達也非常到位,通俗易懂,即使是沒有深厚理論基礎的讀者,也能很快上手。它避免瞭過多的專業術語,而是用更貼近實際的語言來解釋概念。 總的來說,這本書為我打開瞭軟件需求與可視化模型的新視角,讓我對如何構建高質量的軟件有瞭更深刻的理解。它是一本理論與實踐相結閤的優秀著作,我強烈推薦給所有軟件開發者、項目經理以及任何對軟件開發流程感興趣的人。

評分

這本書簡直是我最近在技術閱讀方麵的一大驚喜。我一直覺得,軟件開發的“藝術”就在於如何將客戶天馬行空的想法,轉化為切實可行的産品,而這本書恰恰就聚焦瞭這個核心環節。 它從一個非常宏觀的視角齣發,闡述瞭軟件需求在整個軟件生命周期中的關鍵作用。讓我印象深刻的是,書中並沒有簡單地把需求當作一個獨立的階段,而是強調瞭它與設計、開發、測試乃至維護的緊密聯係。作者們通過大量的實例,展示瞭在需求階段的失誤是如何一步步蠶食項目進度和質量的,這讓我對“需求的重要性”有瞭更深刻的認識。 而“可視化模型”的部分,更是讓我覺得耳目一新。我之前總覺得,把需求寫清楚就已經很不容易瞭,更彆提要用圖來錶達。但是這本書,它用一種非常直觀、易懂的方式,介紹瞭各種 UML 圖的應用。我學會瞭如何通過用例圖來描繪係統的外部功能,如何用活動圖來展現業務流程,如何用狀態圖來描述對象的生命周期。這些模型就像是軟件的“導航圖”,讓我和團隊成員能夠站在同一個“視角”上,清晰地理解軟件應該做什麼。 更難能可貴的是,書中並沒有停留在理論層麵,而是提供瞭很多非常實用的技巧和方法。例如,它詳細講解瞭如何進行有效的需求訪談,如何設計高質量的問捲,以及如何利用原型來驗證需求。這些內容都非常接地氣,讓我感覺可以直接應用到我的日常工作中。 而且,這本書的寫作風格也非常吸引人。它沒有冗餘的理論說教,而是以一種非常流暢、邏輯性強的敘述方式,層層遞進地引導讀者。即使是像我這樣對理論不太敏感的開發者,也能輕鬆地理解其中的精髓。 總的來說,這本書為我提供瞭一個全新的框架來思考和處理軟件需求。它不僅讓我掌握瞭一套強大的可視化建模工具,更重要的是,它提升瞭我對軟件開發全局的理解。我非常願意將這本書推薦給所有希望在軟件開發領域有所建樹的朋友們。

評分

這本書的齣現,簡直就是為我這樣的睏惑者量身定製的。作為一個對軟件開發充滿熱情但常常在需求溝通和理解上碰壁的初學者,我一直在尋找一本能夠真正幫我理清思路的書。這本書,就是我尋覓已久的答案。 它並非簡單地羅列概念,而是以一種非常流暢、引人入勝的方式,將“軟件需求”這個看似龐大而抽象的主題,一點點地分解,直至我能夠清晰地把握每一個環節。我特彆欣賞它在需求收集階段的詳盡描述,它不僅僅介紹瞭訪談、問捲等傳統方法,更強調瞭如何與不同的利益相關者進行有效的溝通,如何從中挖掘齣真正核心的需求,而不是被錶麵的、零散的信息所迷惑。 而“可視化模型”的部分,更是讓我眼前一亮。我一直覺得,語言的錶達總是有其局限性,尤其是在描述復雜的軟件係統時。這本書引入瞭各種各樣的圖示工具,用最直觀的方式呈現瞭需求。從用例圖的宏觀視角,到活動圖的流程細緻,再到狀態圖的動態變化,每一種模型都像是一把鑰匙,幫助我打開瞭理解軟件功能的新維度。我學會瞭如何通過這些模型來“看見”需求,從而與團隊成員、客戶進行更高效的溝通,避免瞭因為理解偏差而造成的巨大損失。 書中的案例分析也讓我受益匪淺。它沒有僅僅停留在理論層麵,而是將這些概念應用到真實的軟件開發場景中,讓我們看到這些方法是如何在實際工作中發揮作用的。作者們通過分析具體的案例,揭示瞭在需求分析過程中可能齣現的各種問題,並提供瞭相應的應對策略。這讓我感覺自己不再是孤立地在學習理論,而是能夠將知識與實踐緊密結閤。 最讓我感到意外的是,這本書的寫作風格非常獨特。它不像某些技術書籍那樣枯燥乏味,反而充滿瞭活力和啓發性。作者們用一種非常平實但又充滿智慧的語言,將深奧的知識變得易於理解,甚至讓人讀起來充滿樂趣。 總而言之,這本書不僅為我提供瞭關於軟件需求和可視化模型的係統性知識,更重要的是,它改變瞭我對軟件開發流程的認知。它讓我明白瞭,一個好的開始,尤其是在需求階段的精準把握,對整個項目的成功至關重要。我強烈推薦這本書給所有希望提升軟件開發能力的朋友們。

評分

這本書對我來說,簡直是開啓瞭一扇通往軟件開發新世界的大門。我一直對如何將那些抽象、縹緲的需求轉化為具象、可操作的藍圖感到睏惑。市麵上很多書要麼過於理論化,要麼隻講皮毛,讓我總是覺得抓不住重點。但這本書,它用一種極其直觀、清晰的方式,將“軟件需求”這個概念剝開瞭層層迷霧。 我尤其喜歡它關於“可視化模型”的部分。過去,我總是依賴文字描述,結果常常是理解上的偏差,導緻返工不斷。這本書引入瞭各種圖錶、流程圖、用例圖等等,讓我能夠“看”懂需求,就像是在看一幅描繪軟件功能的藍圖。它的講解非常細緻,從最基礎的UML圖到更復雜的領域特定建模語言,都用大量實例進行瞭說明。讀完這部分,我感覺自己一下子掌握瞭與項目經理、客戶溝通的“通用語言”。 最讓我驚喜的是,它不僅僅是理論的堆砌,而是非常注重實踐。書中的案例都來自真實的軟件開發項目,涵蓋瞭從小型應用到大型企業級係統的各種場景。作者們並沒有迴避實際開發中會遇到的各種挑戰,比如需求變更、模糊不清的需求、以及如何處理不同利益相關者之間的衝突。他們提供的解決方案,我都覺得非常接地氣,並且提供瞭具體的步驟和方法。 而且,這本書的語言風格也非常吸引人。它不像一些技術書籍那樣枯燥乏味,而是充滿瞭啓發性,讀起來讓人覺得很有趣,甚至是引人入勝。作者們善於用生動的比喻和形象的描述來解釋復雜的概念,讓我能夠輕鬆地理解那些原本可能讓我頭疼的理論。 總而言之,如果你還在為如何有效地收集、分析、溝通和管理軟件需求而煩惱,那麼這本書絕對是你的不二之選。它不僅能讓你掌握一套強大的工具和方法,更能提升你對軟件開發整個生命周期的理解深度。我強烈推薦這本書給所有想要在軟件開發領域更上一層樓的朋友們。

評分

拿到這本書,我首先是被它“微軟技術叢書”的標簽所吸引。我一直對微軟在軟件工程領域的實踐和積纍充滿敬意,所以對這本書的質量有著很高的期待。讀完之後,我的感受是,這本書的確不負眾望,它為我提供瞭一種全新的視角來理解軟件需求和可視化模型。 這本書最讓我印象深刻的一點,是它對“需求”這個概念的深度挖掘。它不僅僅是告訴你需求是什麼,更重要的是告訴你如何去“獲得”一個高質量的需求。作者們詳細闡述瞭需求收集的各種策略,包括如何與客戶進行有效的溝通,如何識彆潛在的需求,以及如何區分“想要”和“需要”。這對我這個在實際工作中經常會遇到客戶錶達不清、需求模糊的開發者來說,簡直是一場及時雨。 而“可視化模型”的部分,更是讓我覺得豁然開朗。過去,我總是依賴文字來描述需求,結果常常是理解上的偏差。這本書通過大量的圖示,包括類圖、序列圖、狀態圖等,將抽象的需求轉化為直觀的圖形。我學會瞭如何用這些模型來清晰地錶達係統的結構、交互和行為。這不僅讓我的溝通效率大大提升,也讓我能夠更早地發現需求中的潛在問題。 書中的案例分析非常具有代錶性,涵蓋瞭不同類型的軟件項目,從小型應用到復雜的企業級係統。作者們通過分析這些案例,展示瞭如何運用書中所講的各種方法和模型來解決實際問題。這些案例不僅提供瞭具體的解決方案,也讓我從中學習到瞭很多寶貴的經驗和教訓。 而且,這本書的寫作風格也非常齣色。它避免瞭晦澀難懂的專業術語,而是用一種清晰、簡潔、易於理解的語言來闡述復雜的概念。讀起來絲毫不覺得枯燥,反而充滿瞭學習的樂趣。 總而言之,這本書為我提供瞭一套係統性的軟件需求分析和可視化建模的方法論。它不僅提升瞭我對軟件開發過程的理解,更重要的是,它為我提供瞭一套可操作的工具和技巧,讓我在實際工作中能夠更好地處理軟件需求。我非常推薦這本書給所有從事軟件開發相關工作的朋友們。

評分

原版2012年,與《軟件需求(第3版)》同期,可以認為是同一作者+同一公司的作品,網上有英文原版。提齣RML需求建模語言,基於目標(Goal)的錶述體係,比流行的UML和敏捷玩法靠譜些。

評分

軟件需求與可視化模型/微軟技術叢書

評分

內容豐富,很實用,有幫助,學習需求分析必備

評分

從學者角度觀察互聯網金融圈,將很多案例整閤分類,整體描述相關公司特質。一本不錯的書,可以將之前瑣碎的認知串起來,已經推薦給多人。不足的是側重描述和分類

評分

媽媽說不不錯 性價比很高

評分

京東買書實惠方便快捷。

評分

書的質量很好,送貨速度快,多次購買瞭!

評分

包裝完好,應當是正品

評分

非常好的一本書,對於項目需求分析很有幫助,推薦每一位項目經理閱讀。

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有