軟件方法(上):業務建模和需求(第2版)

軟件方法(上):業務建模和需求(第2版) pdf epub mobi txt 電子書 下載 2025

潘加宇 著
圖書標籤:
  • 軟件工程
  • 業務建模
  • 需求分析
  • UML
  • 軟件開發
  • 係統分析
  • 建模方法
  • 需求工程
  • 軟件方法
  • 第2版
想要找書就要到 靜思書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 清華大學齣版社
ISBN:9787302497820
版次:2
商品編碼:12346402
包裝:平裝
開本:16開
齣版時間:2018-03-01
用紙:膠版紙
頁數:268
字數:285000

具體描述

産品特色

內容簡介

在軟件開發中,需求工作緻力於解決“提升銷售”的問題,設計工作緻力於解決“降低成本”的問題,二者不能相互取代。能低成本生産某個係統,不一定能保證它好賣。係統好賣,如果生産成本太高,最終還是賺不瞭多少錢。

如果需求和設計不分,利潤就會縮水。從需求直接映射設計,會得到大量重復代碼;如果從設計齣發來定義需求,會得到一堆假的“需求”。

《軟件方法(上):業務建模和需求(第2版)》在主要思想不變的前提下,結閤最近幾年的發展,從文字到圖形進行更新,每一章的內容更加細緻,道理講得更加嚴謹,例子和練習也更加豐富,希望能給讀者提供幫助。


作者簡介

潘加宇

UMLChina首席專傢

從1999年起潛心研究需求和設計技能。2002年開始對外提供UML需求和設計的技術指導和訓練服務。到2017年為止,已經上門為超過260傢的組織提供服務,覆蓋國內各個領域的領袖企業,包括通信、企業管理、電子商務、房地産、網絡遊戲、地理信息、物流、數碼設備、醫療設備、工業控製等。


目錄

目 錄

第1章 建模和UML 1

1.1 粗放經營的時代已經遠去 1

1.2 利潤=需求-設計 2

1.3 建模工作流 4

1.4 UML簡史 11

1.5 UML應用於建模工作流 14

1.6 基本共識上的溝通 16

1.7 建模和敏捷(Agile) 19

1.8 什麼樣的係統不需要建模 21

1.8.1 市場沒有小係統 21

1.8.2 你的係統不特彆 23

1.9 案例介紹 24

1.10 模型的組織 25

1.11 工具操作 28

第2章 業務建模之願景 33

2.1 什麼是願景(Vision) 33

2.2 【步驟】定位目標組織和老大 35

2.2.1 目標組織和老大的含義 35

2.2.2 定位情況1:定位目標人群和老大 37

2.2.3 定位情況2:定位機構範圍和老大 42

2.2.4 定位情況3:定位目標機構 46

2.2.5 其他一些要點 47

2.3 【步驟】提煉改進目標 53

2.3.1 改進目標不是係統功能需求 53

2.3.2 改進目標不是係統的質量需求 56

2.3.3 改進是係統帶來的 57

2.3.4 改進目標應來自老大的視角 58

2.3.5 多個目標之間的權衡 59

2.4 【案例和工具操作】願景 61

第3章業務建模之業務用例圖 65

3.1 軟件是組織的零件 65

3.2 【步驟】識彆業務執行者 68

3.2.1 業務執行者(Business Actor) 68

3.2.2 業務工人和業務實體 68

3.2.3 識彆業務執行者 71

3.3 【步驟】識彆業務用例 75

3.3.1 正確理解價值 77

3.3.2 識彆業務用例的思路和常犯錯誤 80

3.4 【案例和工具操作】業務用例圖 88

第4章業務建模之業務序列圖 95

4.1 描述業務流程的手段 95

4.1.1 文本 95

4.1.2 活動圖 96

4.1.3 序列圖 97

4.1.4 序列圖和活動圖比較 98

4.2 業務序列圖要點 101

4.2.1 消息代錶責任分配而不是數據流動 101

4.2.2 抽象級彆是係統之間的協作 102

4.2.3 隻畫核心域相關的係統 106

4.2.4 把時間看作特殊的業務實體 107

4.2.5 為業務對象分配閤適的責任 107

4.3 【步驟】現狀業務序列圖 109

4.3.1 錯誤:把想象中的改進當成現狀 110

4.3.2 錯誤:把“現狀”誤解為“純手工” 110

4.3.3 錯誤:把“現狀”誤解為“本開發團隊未參與之前” 111

4.3.4 錯誤:把“現狀”誤解為“規範” 112

4.3.5 錯誤:“我是創新,沒有現狀” 112

4.3.6 錯誤:“我做産品,沒有現狀” 112

4.4 【案例和工具操作】現狀業務序列圖 115

4.5 【步驟】改進業務序列圖 124

4.5.1 改進模式一:物流變成信息流 125

4.5.2 改進模式二:改善信息流轉 126

4.5.3 改進模式三:封裝領域邏輯 129

4.5.4 阿布思考法 131

4.6 【案例和工具操作】改進業務序列圖 137

第5章需求之係統用例圖 145

5.1 係統執行者要點 145

5.1.1 係統是能獨立對外提供服務的整體 146

5.1.2 係統邊界是責任的邊界 147

5.1.3 係統執行者和係統有交互 149

5.1.4 交互是功能性交互 151

5.1.5 係統執行者可以是人或非人係統 152

5.2 【步驟】識彆係統執行者 154

5.3 係統用例要點 158

5.3.1 價值是買賣的平衡點 158

5.3.2 價值不等於“可以這樣做” 160

5.3.3 增刪改查用例的根源是從設計映射需求 163

5.3.4 從設計映射需求錯誤二:“復用”用例 165

5.3.5 係統用例不存在層次問題 170

5.3.6 用例的命名是動賓結構 173

5.4 【步驟】識彆係統用例 178

5.5 【案例和工具操作】係統用例圖 181

第6章需求之係統用例規約 187

6.1 用例規約的內容 187

6.1.1 前置條件和後置條件 188

6.1.2 涉眾利益 193

6.1.3 基本路徑 200

6.1.4 擴展路徑 211

6.1.5 補充約束 217

6.2 【案例和工具操作】係統用例規約 227

第7章需求啓發 245

7.1 需求啓發要點 245

7.2 需求啓發手段 249

7.2.1 研究資料 249

7.2.2 問捲調查 250

7.2.3 訪談 251

7.2.4 觀察 253

7.2.5 研究競爭對手 254

7.3 需求人員的素質培養 255

7.3.1 好奇心 256

7.3.2 探索力 257

7.3.3 溝通力 257

7.3.4 錶達力 258

7.3.5 熱情 258

書評 263


前言/序言

每當變幻時,便知時光去。

《每當變幻時》;詞:盧國沾,麯:古賀政男,唱:薰妮;1985

前 言

2013年寫的第一版前言,現在看來依然可以用,所以除瞭修改一些隨年份變化的數字之外,我把第一版前言附在後麵,本次版本的前言就盡量寫得簡短一些。

在主要思想不變的前提下,我結閤最近幾年的進展,幾乎把整《軟件方法(上):業務建模和需求(第2版)》重新寫瞭一遍,從文字到圖形基本上都換瞭。每一章的內容更細緻,道理講得更嚴謹,例子和練習也更豐富。總之,希望能給讀者帶來一本更有用的書。《軟件方法(上):業務建模和需求(第2版)》齣版之後,將繼續投入未寫完的《軟件方法(下):分析和設計》。

18年過去,彈指一揮間。我已經在這一個狹窄的領域泡瞭十八年瞭,也許纍計的時間已經超過瞭一些前輩。希望還能再研究十八年,和大傢分享更多有價值的東西。

潘加宇

2017年10月

光陰匆匆似流水,它一去不再迴。

《浪子歸》;詞:黃小茂,麯:崔健,唱:崔健;1985

前言(2013版)

1999年還是一名程序員時,我創建瞭UMLChina,從那時開始關注軟件工程各方麵的進展。2001年12月,阿裏巴巴的吳泳銘來email詢問是否有UML方麵的訓練,我開始準備訓練材料。2002年3月,我去杭州給阿裏巴巴做瞭這個訓練。雖然與後來我給阿裏集團各公司做的許多次訓練相比,這第一次講課從內容到形式都算是糟透瞭,但是我現在還記得當時的心情——邁齣自己事業第一步的心情。

截至2013年7月,我已經上門為超過190傢軟件組織提供需求和設計技能的訓練和谘詢服務(2017年注:2017年10月的數字為超過260傢)。訓練結束後,學員們常會問:“潘老師,上完課後我們應該看什麼書?”我總是迴答:“先不用看雜七雜八的書,還是要復習我們留下的資料,那些幻燈片、練習題、模型就已經是最好的書瞭,按照改進指南先用一點點在具體項目上,帶著齣現的具體睏惑和我討論。”雖然一再這樣強調,有的學員還是情不自禁地拿著一本《***UML***》之類的書來問我問題,不管書上說得對不對。看來寫在正式齣版物上的效果就是不一樣。

其實現在齣書也不難,UMLChina一直在和齣版社閤作推介國外優秀的軟件工程書籍,目前UMLChina的標記已經齣現在三十多本軟件工程書籍上。不過我一直沒有自己寫一《軟件方法(上):業務建模和需求(第2版)》,主要原因還是覺得積纍不夠,思考的深度也不夠,對軟件開發的認識還在不斷變化。如果沒有自己成形的東西,不能站在彆人的肩膀上看得更遠,隻是摘抄彆人的觀點,這樣的書有什麼意義呢?

另外一個原因是,UMLChina後來采取瞭“隱形、關門”的策略,秉持“內外有彆”的原則。我關閉瞭已經有4萬多人的Smiling電子小組(也是為瞭降低某些風險),網站不再有公開的社區,在網站上也找不到“客戶名單”,所有更細緻的服務以非公開的方式對會員提供。在這種情況下,齣一《軟件方法(上):業務建模和需求(第2版)》也不是那麼迫切。

現在距離第一次提供服務已經超過10年(2017年注:已經超過15年瞭),也有瞭一些積纍,所以硬著頭皮也要開始寫書瞭。在這些年的服務過程中,和開發團隊談到改進時,我發現一個有趣的現象:很多開發團隊(不是每個團隊)或多或少都會有人(不是每個人)或明或暗地錶達齣這樣的觀點——自己團隊的難處與眾不同,奇特的睏難降臨在他們身上,偏偏彆人得以幸免。

盡管UMLChina一直強調自己的服務是“聚焦最後一公裏”,堅信每一個開發團隊都會在細節上和其他團隊有所不同,而且也應該有所不同,但很多時候,我還是感覺到,開發團隊高估瞭自己的“個性”,低估瞭“共性”。《軟件方法(上):業務建模和需求(第2版)》就是歸納這樣一些“共性”,作為我的一傢之言,供大傢參考。感謝曾經選擇我的服務的夥伴們。他們一次次地給我機會來實踐、發展和錘煉技藝,纔有瞭這《軟件方法(上):業務建模和需求(第2版)》。

《軟件方法(上):業務建模和需求(第2版)》中所講述的技能集閤也是我本人身體力行的。例如,您可能已經注意到,為《軟件方法(上):業務建模和需求(第2版)》寫推薦序的正是《軟件方法(上):業務建模和需求(第2版)》的“老大”,他不是什麼大師專傢名人,而是一名經曆瞭入職、升職和創業,不斷成長的軟件開發人員。

一些書籍作者喜歡在書中每一章的開頭放上和該章內容相關的一幅畫或一句名人名言,我也效仿一下,不過沒那麼“高雅”——每章的開頭放上和該章內容相關的一句歌詞。

書中的模型圖,如果是我為瞭講解知識而畫的,用的建模工具是Enterprise Architect 9(2017年注:改為Enterprise Architect 13);如果是截取真實模型的圖片,可能會涉及各種工具。我不像Robert C. Martin那樣,女兒已經長大到可以幫畫插圖,所以書中的手繪插圖,我都自己用Wacom 筆來畫,可能醜瞭一些,請見諒。

潘加宇

2013年10月



軟件方法(上):業務建模和需求(第2版) 內容概述 《軟件方法(上):業務建模和需求(第2版)》深入探討瞭軟件開發生命周期中至關重要的早期階段——業務建模和需求工程。本書並非對具體編程語言或技術框架的入門指南,而是聚焦於理解、分析和定義“做什麼”的問題,為後續的軟件設計和實現奠定堅實基礎。它旨在幫助讀者掌握從模糊的業務願景到清晰、可執行的軟件需求規範的轉化過程。 全書圍繞軟件開發的核心挑戰展開:如何確保構建的軟件真正解決用戶的實際問題,並為業務帶來價值。作者們以清晰的邏輯和豐富的實踐案例,係統地闡述瞭業務建模和需求分析的原理、方法和技術。讀者將學習如何構建能夠準確反映業務流程、組織結構和用戶交互的抽象模型,並在此基礎上提煉齣明確、完整、一緻且可驗證的軟件需求。 核心內容與章節解析 本書的上篇,即“業務建模和需求”部分,共分為若乾章節,每個章節都圍繞一個核心主題展開,並輔以大量的插圖、圖錶和實例,力求讓抽象的概念變得直觀易懂。 引言與軟件工程基礎: 章節伊始,本書會首先界定軟件工程的範疇,闡述需求在整個軟件開發過程中的關鍵作用。它會強調,缺乏清晰的需求是導緻項目失敗、成本超支和用戶不滿的主要原因之一。通過引入各種軟件開發模型(如瀑布模型、迭代模型、敏捷模型等),幫助讀者理解需求在不同模型中的定位和重要性。此部分將帶領讀者初步認識到,成功的軟件項目始於對問題域的深刻理解。 理解業務和問題域: 在進入具體的需求建模之前,本書會花費大量篇幅講解如何深入理解業務。這包括識彆項目的目標、利益相關者(stakeholders)及其各自的需求和期望。讀者將學習各種訪談技巧、問捲調查方法、觀察方法以及文獻研究等信息收集技術,以確保能夠全麵、準確地把握業務的復雜性。此外,還會介紹如何構建領域模型(domain models),即對業務中核心概念、實體、關係和規則的抽象錶示,為後續的需求規格說明打下基礎。 用例建模(Use Case Modeling): 用例建模是本書的核心內容之一。讀者將學習如何識彆係統中的用戶角色(actors)以及他們與係統進行交互的各種方式——即用例(use cases)。本書將詳細介紹如何編寫標準的用例描述,包括用例的名稱、目標、前置條件、後置條件、基本流程、備選流程和異常流程。通過大量的實例,讀者將掌握如何構建一套完整且具有指導意義的用例模型,這套模型能夠直觀地展示係統的功能邊界以及用戶與係統之間的交互邏輯,是溝通業務需求與技術實現的有效橋梁。 活動圖(Activity Diagrams)與流程建模: 緊隨用例建模之後,本書將深入講解活動圖。活動圖是一種強大的工具,用於可視化業務流程或係統功能的動態行為。讀者將學習如何使用活動圖來描繪一係列活動、決策點、並發執行的分支以及活動之間的順序和控製流。通過對業務流程的活動圖建模,可以清晰地發現流程中的瓶頸、冗餘和潛在的改進點,為優化業務流程和定義係統功能提供依據。 狀態機建模(State Machine Modeling): 對於具有復雜行為或狀態變化的係統,狀態機建模是一種至關重要的技術。本書將介紹如何構建狀態機模型,用於描述對象或係統的不同狀態以及在不同事件觸發下狀態之間的轉移。這對於理解和定義那些需要精確控製行為和狀態的軟件組件(如用戶界麵、工作流引擎等)具有重要意義。 類圖(Class Diagrams)與概念建模: 雖然類圖更多地被視為設計階段的工具,但在需求分析階段,它也扮演著重要角色,主要用於概念建模。本書將引導讀者學習如何構建領域類圖,以識彆業務中的關鍵概念、它們的屬性以及它們之間的關聯關係。這有助於在早期就建立起對業務領域結構的共識,並為後續的麵嚮對象設計提供堅實的概念基礎。 需求規格說明(Requirements Specification): 在完成各種建模工作之後,本書將重點講解如何將分析的結果轉化為正式的需求規格說明。這包括結構化需求文檔的編寫,如軟件需求規格說明書(SRS)。本書將介紹不同類型需求的錶達方式,如功能需求(functional requirements)和非功能需求(non-functional requirements),後者包括性能、安全性、可用性、可維護性等方麵的要求。同時,還會探討需求驗證(validation)和確認(verification)的重要性,確保需求準確無誤地反映瞭用戶的真實意圖。 需求管理(Requirements Management): 需求是動態變化的,因此需求管理成為項目成功不可或缺的一環。本書將介紹需求變更控製、需求跟蹤(traceability)以及如何管理需求之間的依賴關係。讀者將瞭解為何要建立一個係統的需求管理流程,以應對需求變化帶來的挑戰,並確保項目始終沿著正確的方嚮前進。 本書的價值與讀者對象 《軟件方法(上):業務建模和需求(第2版)》並非一本淺嘗輒止的書籍,它提供瞭一套係統化的方法論和實踐指南,幫助讀者在軟件開發的起點就掌握主動權。 本書適閤的讀者群體非常廣泛: 軟件工程師和開發人員: 無論經驗水平如何,掌握良好的需求分析能力都能顯著提升工作效率和項目成功率。本書將幫助他們更好地理解業務背景,與業務分析師和客戶進行有效溝通,並編寫更準確的需求規格。 業務分析師(Business Analysts): 這是本書的核心目標讀者。本書提供瞭他們所需的理論框架、方法論和工具,幫助他們係統地收集、分析、建模和溝通業務需求。 項目經理(Project Managers): 清晰的需求是項目計劃、風險管理和成本估算的基礎。項目經理可以通過本書深入理解需求過程,從而更好地管理項目。 産品經理(Product Managers): 理解用戶需求和業務價值是産品經理的核心職責。本書將幫助他們將模糊的産品願景轉化為可落地的軟件需求。 學生和教育工作者: 對於計算機科學、軟件工程以及相關專業的學生而言,本書是學習軟件工程基礎知識的理想教材,能幫助他們建立紮實的理論基礎和實踐能力。 總而言之,《軟件方法(上):業務建模和需求(第2版)》是一本不可多得的經典著作,它以係統、嚴謹且實用的方式,帶領讀者穿越軟件開發最關鍵的起點,掌握構建高質量軟件的基石。它強調的是“理解”和“定義”,而非“構建”本身,旨在確保我們構建的軟件“做正確的事”,而非僅僅“正確地做事”。

用戶評價

評分

這本書我早就聽說過瞭,一直想找時間好好看看,總算是拿到手瞭,這裝幀設計就挺不錯的,拿在手裏沉甸甸的,讓人感覺很有分量。我尤其喜歡這種硬殼精裝的版本,平時放在書架上顯得特彆大氣,而且也比較耐用,翻閱的時候不容易損壞。拿到書的第一感覺就是內容一定很紮實,從封麵設計到字體印刷,都透著一股嚴謹認真的學術氣息。我之前接觸過一些關於軟件開發的入門書籍,但總覺得內容有些淺顯,不夠係統,這次入手這本《軟件方法(上):業務建模和需求(第2版)》,就是希望能夠更深入地理解軟件開發的全貌,特彆是早期階段的業務建模和需求分析。我平時工作接觸到一些項目,感覺很多時候失敗的原因都在於前期需求不明確或者業務理解有偏差,所以這本書對我來說,簡直是雪中送炭。我迫不及待地想翻開看看,相信它一定能給我帶來很多啓發和幫助,讓我對軟件開發過程有一個更深刻、更全麵的認識。

評分

說實話,我拿到這本書的時候,第一反應是它的厚度。這絕對是一本“大部頭”,但這份厚重也讓我對其中內容的豐富性和深度充滿瞭期待。我最近在工作中遇到瞭一個棘手的項目,涉及到復雜的業務邏輯梳理和用戶需求提取,感覺自己在這方麵總是抓不住重點,經常陷入各種細節卻迷失瞭方嚮。我希望通過閱讀這本書,能夠係統地學習到如何有效地進行業務建模,如何準確地捕捉和定義需求,以及如何避免常見的誤區。我一直覺得,一個成功的軟件項目,其根基在於清晰的業務理解和明確的需求定義,如果這部分齣瞭問題,後續的開發工作就會變得異常艱難,甚至功虧一簣。這本書的書名就直接點齣瞭核心主題,而且是“第2版”,這說明它經過瞭市場的檢驗和內容的更新迭代,應該更加成熟和完善。我已經開始想象,在未來的日子裏,我將如何沉浸在這本書的海洋中,汲取知識,提升能力,期待著能為我的工作帶來實質性的改變。

評分

這本書吸引我的地方在於它的“方法”二字。我一直認為,好的軟件開發不僅僅是技術的堆砌,更重要的是有條理、有章法的方法論作為支撐。我曾經參加過一些培訓,學習過一些敏捷開發的方法,但感覺在業務建模和需求分析這塊,總是欠缺一些係統性的指導。我希望通過閱讀《軟件方法(上):業務建模和需求(第2版)》,能夠深入理解其中的核心概念、原則和實踐。我期待這本書能夠提供一套完整的流程,從業務的理解、分析,到需求的收集、定義、管理,能夠有清晰的指導。我更希望書中能夠包含一些實際案例,讓我能夠更好地理解這些方法論是如何在實際項目中應用的。我已經迫不及待地想開始閱讀,希望能從中學習到實用的技巧和經驗,提升自己在軟件項目早期階段的決策能力和執行力。

評分

我購買這本書,主要是基於我最近在軟件開發領域遇到的瓶頸。我發現自己雖然能熟練掌握一些編程技術,但在項目初期,尤其是與客戶溝通、理解業務需求、進行係統設計的階段,總是顯得力不從心。我希望能通過這本書,學習到更科學、更係統的方法論,來提升我在業務建模和需求分析方麵的能力。我希望這本書能夠提供一些清晰的框架和實用的工具,讓我能夠更好地理解業務的本質,更準確地把握用戶的真實需求,並將其轉化為可執行的開發任務。我對手邊的這本《軟件方法(上):業務建模和需求(第2版)》寄予厚望,希望它能幫助我建立起一套紮實的理論基礎和一套行之有效的方法論,從而在未來的工作中更加遊刃有餘,能夠更好地與客戶溝通,更準確地理解項目目標,最終交付齣更優質的軟件産品。

評分

一直以來,我都對軟件開發過程中的“軟實力”非常關注,尤其是業務建模和需求分析這兩個環節。我相信,很多項目的成敗,往往取決於前期這兩個階段的質量。我之前讀過一些零散的文章和資料,但總感覺不夠係統,缺乏一個完整的知識體係。這次入手《軟件方法(上):業務建模和需求(第2版)》,就是希望能填補這一領域的知識空白。我希望這本書能夠提供一種“道”的指引,讓我理解為什麼要做這些事情,以及背後的邏輯是什麼。我更期待它能給我一套“術”的工具,讓我知道具體該怎麼做。我喜歡這種帶有“上”和“下”區分的書名,意味著它是一個係統性的整體,而上冊又專注於最核心、最基礎的環節,這正是我目前最需要的。我希望能通過這本書,能夠建立起對業務建模和需求分析的深刻理解,並將其應用到我的實際工作中,從而提高項目成功的概率。

評分

非常不錯的書籍!!!

評分

對於需求方麵講的還挺有藉鑒意義

評分

朋友推薦的,買來看看

評分

對於需求方麵講的還挺有藉鑒意義

評分

何彬和男男男男**

評分

幫朋友買的,應該不錯的,還沒有反饋

評分

何彬和男男男男**

評分

上一次用挺好的,不用電動的瞭

評分

上一次用挺好的,不用電動的瞭

相關圖書

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有