內容簡介
本書是係統分析與設計的入門教材,以信息係統開發生命周期為主綫,以貫穿係統開發始終的完整案例為引導,全麵涵蓋麵嚮對象方法和UML,強調係統結構、用戶界麵和係統界麵。在此基礎上,還重點講解瞭項目計劃和項目管理方法。書中知識點巧妙融於實際案例,內容由淺入深,並配有大量習題,十分易於教學。本書適閤作為高等院校計算機、信息管理與信息係統等相關專業的本科生教材,也可作為係統開發或管理人員的參考書。
目錄
Introduction to Systems Analysis and Design: An Agile, Iterative Approach, Sixth Edition
齣版者的話
譯者序
前言
第一部分 係統開發導論
第1章 從始至終——係統分析與設計概述 2
1.1 軟件開發以及係統分析與設計 2
1.2 係統開發生命周期 4
1.3 落基山運動用品(RMO)介紹 4
1.4 迭代開發 6
1.5 RMO貿易展覽係統的開發 7
1.5.1 項目開始前的準備工作 7
1.5.2 第一天的工作活動 8
1.5.3 第二天的工作活動 11
1.5.4 第三天的工作活動 13
1.5.5 第四天的工作活動 15
1.5.6 第五天的工作活動 19
1.5.7 第六天的工作活動 19
1.5.8 第一次迭代迴顧 21
1.6 後續內容導讀 21
1.6.1 第一部分:係統開發導論 21
1.6.2 第二部分:係統分析活動 22
1.6.3 第三部分:係統設計的要點 22
1.6.4 第四部分:項目和項目管理 22
1.6.5 第五部分:高級設計和部署概念 22
本章小結 23
復習題 23
第二部分 係統分析活動
第2章 係統需求調查 26
2.1 引言 27
2.2 RMO綜閤銷售和市場營銷係統項目 27
2.2.1 現有的RMO信息係統與架構 27
2.2.2 新綜閤銷售和市場營銷係統 28
2.3 係統分析活動 30
2.3.1 收集細節信息 30
2.3.2 定義需求 31
2.3.3 需求的優先級劃分 31
2.3.4 開發用戶界麵對話框 31
2.3.5 與用戶一起評估需求 31
2.4 什麼是需求 32
2.5 模型和建模 33
2.6 利益相關者 35
2.7 信息收集技術 38
2.7.1 與用戶和其他利益相關者進行訪談 38
2.7.2 分發和收集調查問捲 41
2.7.3 檢查輸入、輸齣和流程 42
2.7.4 觀察和記錄業務流程 43
2.7.5 研究供應商的解決方案 44
2.7.6 收集活躍的用戶評論和建議 44
2.8 用活動圖記錄工作流 44
本章小結 47
復習題 48
問題和練習 48
擴展資源 49
第3章 用例 50
3.1 引言 51
3.2 用例和用戶目標 51
3.3 用例和事件分解 52
3.3.1 事件分解技術 53
3.3.2 事件類型 54
3.3.3 定義事件 55
3.3.4 使用事件分解技術 57
3.4 用例和CRUD 58
3.5 RMO案例中的用例 59
3.6 用例圖 60
3.6.1 用例、參與者和符號 61
3.6.2 開發用例圖 63
本章小結 64
復習題 65
問題和練習 66
擴展資源 67
第4章 域建模 68
4.1 引言 68
4.2 問題域中的“事物” 69
4.2.1 頭腦風暴法 69
4.2.2 名詞技術 70
4.2.3 事物的屬性 71
4.2.4 事物間的關係 72
4.3 實體-聯係圖 73
4.4 域模型類圖 76
4.4.1 域模型類圖符號 76
4.4.2 有關對象類的更復雜的問題 79
4.4.3 RMO案例的域模型類圖 81
本章小結 86
復習題 86
問題和練習 87
擴展資源 88
第5章 需求模型的延伸 89
5.1 引言 90
5.2 用例描述 90
5.2.1 簡單的用例描述 91
5.2.2 完全展開的用例描述 91
5.3 用例活動圖 93
5.4 係統順序圖——確定輸入和輸齣 94
5.4.1 係統順序圖符號 94
5.4.2 開發係統順序圖 97
5.5 狀態機圖——確定對象行為 100
5.5.1 復閤狀態和並發性 101
5.5.2 開發狀態機圖的規則 103
5.5.3 開發RMO狀態機圖 104
5.6 需求模型的集成 107
本章小結 108
復習題 108
問題和練習 109
擴展資源 111
第三部分 係統設計的要點
第6章 設計與設計活動的基本要素 114
6.1 引言 115
6.2 設計要素 115
6.2.1 什麼是係統設計 116
6.2.2 設計的主要組件和層次 116
6.3 係統設計的輸入和輸齣 118
6.4 設計活動 120
6.4.1 設計環境 121
6.4.2 設計應用程序結構和軟件 122
6.4.3 設計用戶界麵 122
6.4.4 設計係統界麵 123
6.4.5 設計數據庫 124
6.4.6 設計安全和係統控製 125
6.5 如何設計環境 125
6.5.1 設計內部部署 126
6.5.2 設計外部部署 128
6.5.3 設計遠程和分散的環境 134
6.5.4 RMO的企業技術結構 135
本章小結 136
復習題 137
問題和練習 137
擴展資源 138
第7章 設計用戶界麵和係統界麵 139
7.1 引言 140
7.2 用戶界麵和係統界麵 140
7.3 理解用戶界麵 141
7.4 用戶界麵的設計概念 144
7.4.1 提示性與可視性 144
7.4.2 一緻性 145
7.4.3 快捷方式 146
7.4.4 反饋 146
7.4.5 完整的對話 146
7.4.6 錯誤處理 146
7.4.7 撤銷動作 147
7.4.8 減輕短期記憶負擔 147
7.5 從分析到用戶界麵設計的轉換 147
7.5.1 用例和菜單層次 148
7.5.2 對話和故事闆 150
7.6 用戶界麵設計 152
7.6.1 設計窗體和格式的指導原則 152
7.6.2 網頁瀏覽器用戶界麵的附加指導原則 154
7.6.3 手持設備的附加指導原則 157
7.7 確定係統界麵 158
7.8 設計係統輸入 160
7.8.1 自動化輸入設備 160
7.8.2 定義係統輸入的細節 160
7.9 設計係統輸齣 161
本章小結 167
復習題 167
問題和練習 168
擴展資源 168
第四部分 項目和項目管理
第8章 係統開發方法 170
8.1 引言 171
8.2 係統開發生命周期 171
……
前言/序言
Introduction to Systems Analysis and Design: An Agile, Iterative Approach, Sixth Edition當我們撰寫本教材的第1版時,係統開發正處於一個重要的轉變過程中——從結構化方法到麵嚮對象方法。在同類教材中,我們較早地係統性引進麵嚮對象方法,第6版在講解麵嚮對象技術時將繼續保持這一領先優勢。
然而世界變化不斷。如今,大量創新成果和技術已經牢牢嵌入係統開發領域。首先是無處不在的全球互聯網。這導緻瞭大規模的連通性,並且意味著當今的項目團隊將分散於世界各地。此外,技術供應商巨頭(比如微軟)以及一些零散的小供應商為我們提供瞭功能豐富、多種多樣的軟件開發環境。
為瞭管理當今係統開發團隊的廣分布、快節奏、強連接及韆變萬化的環境,軟件開發技術在不斷升級,項目管理方法也在不斷發展。基於基礎項目管理原則,新的途徑和理念提供瞭類似迭代、增量式開發等更新潮、更易成功的方法論。而這些都在本書中有所體現。
盡管本書全麵涵蓋瞭各種主題(如用例、麵嚮對象建模、綜閤項目管理、統一建模語言以及敏捷技術)且在領域內持續領先,但也是時候采取新的教材設計瞭。第6版使用創新方法來講授係統分析與設計,並利用瞭新興的教學工具和技術。因此,本書不但使學生更易於學習係統分析與設計,而且使教學工作能夠更順利地進行,為學生和老師都提供瞭極大的便利。
在這一版本中,我們主要做瞭三個方麵的更新。首先,我們講授係統開發的基本規則,這些規則必須緊跟今天普遍連接的環境。其次,我們講授並解釋由於廣泛互聯而在當今獲得使用的新興方法和技術。最後,我們重新組織並修訂瞭書中內容,使得它能更好地用新的方法傳授新的概念。
例如,第1章介紹瞭一個新係統開發中的完整迭代方法。學生可以在學習抽象的原理或記憶專業術語前,從頭到尾(通過實驗和測試)看到完整的迭代方法。我們對這種新的方法感到興奮,這些更新使新的教學素材和工具更適閤係統分析與設計課程的教學。教師會發現這本書直觀、豐富且易用。學生則會在本書中有更好的參與感和主動權。通過上課和教師提供的指導,學生可以自學書中呈現的大多數理論。這本書將會給老師和學生帶來非凡的講授和學習體驗。
更新這一版在許多方麵做瞭更新,包括從傳統方法到麵嚮對象方法的重要概念,涉及用例驅動的麵嚮對象方法(通過UML建模使其更詳細且有深度),強調敏捷和迭代開發,並在項目管理中采用瞭新的概念。同時,材料的重組為學生學習係統分析與設計提供瞭更好的支持。
涵蓋麵嚮對象和傳統的分析與設計本書的一大特點是整閤瞭一些重要的係統建模概念,這些概念在傳統的結構化分析方法和麵嚮對象的分析方法中都會涉及——基於用戶目標和事件而建立的係統用例,加上對象/實體,這些都是係統問題域的一部分。我們用一章來介紹如何確定用例,再用一章介紹如何對關鍵的對象/實體建模,包括實體-聯係圖,同時強調UML域模型類圖。與傳統方法有所不同的是,本書先假定學生從一開始就瞭解麵嚮對象的關鍵概念,包括結構化概念,因為近年來許多教師更強調麵嚮對象方法的教學。
全麵涵蓋UML和麵嚮對象方法本書中呈現的麵嚮對象方法基於OMG(對象管理組織)的統一建模語言(UML 2.0),它是由Grady Booch、James Rumbaugh和Ivar Jacobson發明的。模型驅動方法首先分析用例和場景,然後定義涉及用戶工作的問題域類。需求建模包含用例圖、領域建模、用例描述、活動圖和係統順序圖。FURPS+模型就是用來強調功能性和非功能性需求的。
本書深入討論瞭設計原理和設計模式,通過使用UML組件圖和包圖來建立係統體係結構的模型。特彆關注使用CRC卡、順序圖和類圖設計來實現用例,並詳細地討論瞭模型的細節設計。
涵蓋項目管理許多本科課程需要係統分析與設計這門課程所講授的項目管理知識。為滿足這一需要,我們通過“雙管齊下”的方法來學習項目管理。第一,項目管理技術和任務在本書中得到瞭突齣體現,我們將講解係統開發生命周期的各種活動(包括迭代開發)該如何使用特定的項目管理方法。第二,用獨立的一章完整地介紹瞭項目的計劃和管理。
重組內容以實現高效學習第6版的結構煥然一新,它從一個貫穿係統開發始末的完整例子開始,使學生快速瞭解係統分析模型和技術,然後介紹係統設計的概念,強調係統結構、用戶界麵和係統界麵。學生會在前7章中瞭解許多有關分析和設計的知識。接下來,在學生理解瞭係統開發真正包含的內容後,就會明白本書理論知識的重點是管理係統開發項目,包括敏捷開發。最後,本書覆蓋瞭詳細的設計主題與部署主題,從而幫助學生更深入地瞭解現代方法,如統一過程(UP)、極限編程(XP)和Scrum開發方法。
篇章結構和用書建議本書包含瞭很多簡潔、現代和集中的主題,這些主題對信息係統開發者來說是必不可少且非常重要的。
本書中涉及三個主要的課程領域:係統分析、係統設計和項目管理。其他沒有那麼重要的領域則不會深入講解,比如係統的安裝、啓用、測試和調整。除此之外,我們也采用瞭一些與其他書籍不一樣的方法。因為學生已經在第1章中對係統分析與設計有瞭基本瞭解,所以我們加深瞭關於係統分析與設計的概念,並在以後的章節中增加瞭項目管理的主題。這使得學生在理解係統分析與設計的元素之後能更好地學習項目管理的概念。我們認為這對於學生學習此門課程是很有意義的。
第一部分:係統開發導論第一部分即第1章,主要內容是係統開發的概述。第1章開篇清晰地解釋瞭係統分析與設計的目標,然後用一個詳細、具體的例子來闡述在典型的軟件開發項目中都需要什麼。很多參加編程課程的學生認為編程就是必須會開發軟件和調試係統,本章和本書中的其他內容會消除這個誤解。
第二部分:係統分析活動第2~5章詳細闡述瞭係統分析。第2章討論的是搜集某個商業問題的信息所需要的係統需求、分析活動和技術。隻有充分理解問題所在,纔有可能開發齣相對適閤的係統。第2章同時闡述瞭怎樣確定利益相關者並使其參與進來,還介紹瞭模型和建模的概念。第3章和第4章講述瞭以一種有用的方式捕獲詳細係統需求的建模技術。當我們提到信息係統時,兩個核心概念是很有用的:一個是用例,它能正確定義齣最終用戶需要係統做什麼;另一個是數據實體/域類,用戶以此來完成他們的工作任務。這兩個概念——用例和數據實體/域類——在任何一種係統開發方法中都是很重要的。第5章齣現瞭更多深層次的需求模型,例如用例描述、用例圖、係統順序圖以及狀態機圖。
這些建模技能使得分析員可以對用戶需求進行深度分析並撰寫需求說明。再次重申一下,係統分析的目的就是完全理解和說明用戶需求。
第三部分:係統設計的要點第6章和第7章的主要內容是係統設計和設計用戶體驗的基本概念。第6章全麵介紹瞭係統設計和結構化設計的重要原則。這一章不但是各種設計原則的概述,而且為後續章節中所要學習的設計技術、任務、技巧和模型打下瞭基礎。
第7章講述瞭有關設計用戶界麵和係統界麵的其他一些設計原則。設計用戶界麵是分析和設計的結閤。與分析有關是因為它需要很多用戶的參與,包括說明用戶活動和期望。另一方麵,這也是一個設計活動,因為它能創造齣特殊的組件,這些組件會對編程結果的産生起到促進作用。必須精確設計界麵,記錄和其他用戶的互動,這樣纔能作為最終係統的一部分而進行編程。當一個信息係統與另一個信息係統在沒有人為乾擾的情況下産生瞭交流和交互時,就需要設計係統界麵。係統界麵因為網站服務和雲計算而變得越來越重要。
第四部分:項目和項目管理通過這一部分,學生會對係統開發的所有組成元素有一個基本瞭解。第四部分會通過解釋更多有關組織和管理開發項目的過程而將所有概念結閤到一起。第8章描述瞭在當前環境下用不同方法進行的係統開發,包括幾種重要的係統開發生命周期模型和敏捷開發。這是一個重要的章節,它能幫助你理解項目是怎樣得以執行的。
第9章通過講解項目計劃和項目管理的基本原理擴充瞭這些概念。每個係統分析員都會參與到組織、協調和管理軟件開發項目的過程中。除此以外,大多數優秀的學生最終會成為團隊領導和項目管理者。第9章中呈現的這些原理對於一項成功的事業來說是必需的。
第五部分:高級設計和部署概念第五部分會更深入地談到係統設計、數據庫設計,以及其他重要的有關有效且成功的係統開發和部署的論題。
第10章和第11章詳細解釋瞭用來設計軟件係統的模型、技巧和技術。正像之前提到的,係統設計是一個相當復雜的活動,尤其是要把它做得很正確。這兩章的任務是教會學生從簡到難的各種技術,這些技術可以用來進行有效的軟件係統設計。第12章描述瞭係統開發的最終元素:最終測試、部署、維護和版本控製。
分析與設計課程的教學建議分析與設計課程的教學方法有很多種,並且各個大學中教授這門課程的目的也不一樣。在一些學院的信息係統專業,分析與設計課程是一門頂級課程,學生要將之前在數據庫、電子信息和編程課程中學習到的知識運用到一個真實的分析與設計項目中。在其他的信息係統專業,分析與設計會作為係統開發領域的導論課,先於其他專業課。還有一些信息係統專業開設兩門課程,第一個學期強調的是分析,而第二個學期則注重設計和應用。另外一些信息係統專業僅僅開設一門課程,同時講授分析與設計。
由於要在強調傳統結構的方法和麵嚮對象方法中進行選擇,所以這門課程的設計變得更加睏難,這也使得它要依靠學校自身課程設置的優先順序。此外,越來越多的迭代方法在開發中得到應用,這使得順序排列分析與設計課題難上加難。例如,若采用迭代開發,則兩門課程就不能輕易地分為分析和設計。
這些目標、課程內容、任務和項目會不斷變化,我們所能提供的是使用這本書教授這門課程的一些建議。
麵嚮對象分析與設計課程麵嚮對象設計在本書中得到瞭詳細介紹。這門課程包括麵嚮對象的分析和設計、用戶和係統界麵設計、數據庫設計、控製和安全以及應用和測試。我們通常假設項目采用定製開發,包括Web開發。本課程強調迭代開發方法,包括三層結構、項目管理、信息收集和管理報告。為瞭學生學習的完整性,一學期製課程通常僅僅達到完成用戶界麵原型設計的目標。
係統分析與設計:敏捷迭代方法(原書第6版) 下載 mobi epub pdf txt 電子書 格式