系統(tǒng)分析與設計:敏捷迭代方法(原書第6版)
定 價:79 元
叢書名:計算機科學叢書
- 作者:[美]約翰 W. 薩茨辛格
- 出版時間:2017/1/1
- ISBN:9787111556411
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:G202
- 頁碼:310
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書是系統(tǒng)分析與設計的入門教材,以信息系統(tǒng)開發(fā)生命周期為主線,以貫穿系統(tǒng)開發(fā)始終的完整案例為引導,全面涵蓋面向對象方法和UML,強調系統(tǒng)結構、用戶界面和系統(tǒng)界面。在此基礎上,還重點講解了項目計劃和項目管理方法。書中知識點巧妙融于實際案例,內容由淺入深,并配有大量習題,十分易于教學。本書適合作為高等院校計算機、信息管理與信息系統(tǒng)等相關專業(yè)的本科生教材,也可作為系統(tǒng)開發(fā)或管理人員的參考書。
前 言Introduction to Systems Analysis and Design: An Agile, Iterative Approach, Sixth Edition當我們撰寫本教材的第1版時,系統(tǒng)開發(fā)正處于一個重要的轉變過程中從結構化方法到面向對象方法。在同類教材中,我們較早地系統(tǒng)性引進面向對象方法,第6版在講解面向對象技術時將繼續(xù)保持這一領先優(yōu)勢。 然而世界變化不斷。如今,大量創(chuàng)新成果和技術已經(jīng)牢牢嵌入系統(tǒng)開發(fā)領域。首先是無處不在的全球互聯(lián)網(wǎng)。這導致了大規(guī)模的連通性,并且意味著當今的項目團隊將分散于世界各地。此外,技術供應商巨頭(比如微軟)以及一些零散的小供應商為我們提供了功能豐富、多種多樣的軟件開發(fā)環(huán)境。 為了管理當今系統(tǒng)開發(fā)團隊的廣分布、快節(jié)奏、強連接及千變萬化的環(huán)境,軟件開發(fā)技術在不斷升級,項目管理方法也在不斷發(fā)展;诨A項目管理原則,新的途徑和理念提供了類似迭代、增量式開發(fā)等更新潮、更易成功的方法論。而這些都在本書中有所體現(xiàn)。 盡管本書全面涵蓋了各種主題(如用例、面向對象建模、綜合項目管理、統(tǒng)一建模語言以及敏捷技術)且在領域內持續(xù)領先,但也是時候采取新的教材設計了。第6版使用創(chuàng)新方法來講授系統(tǒng)分析與設計,并利用了新興的教學工具和技術。因此,本書不但使學生更易于學習系統(tǒng)分析與設計,而且使教學工作能夠更順利地進行,為學生和老師都提供了極大的便利。 在這一版本中,我們主要做了三個方面的更新。首先,我們講授系統(tǒng)開發(fā)的基本規(guī)則,這些規(guī)則必須緊跟今天普遍連接的環(huán)境。其次,我們講授并解釋由于廣泛互聯(lián)而在當今獲得使用的新興方法和技術。最后,我們重新組織并修訂了書中內容,使得它能更好地用新的方法傳授新的概念。 例如,第1章介紹了一個新系統(tǒng)開發(fā)中的完整迭代方法。學生可以在學習抽象的原理或記憶專業(yè)術語前,從頭到尾(通過實驗和測試)看到完整的迭代方法。我們對這種新的方法感到興奮,這些更新使新的教學素材和工具更適合系統(tǒng)分析與設計課程的教學。教師會發(fā)現(xiàn)這本書直觀、豐富且易用。學生則會在本書中有更好的參與感和主動權。通過上課和教師提供的指導,學生可以自學書中呈現(xiàn)的大多數(shù)理論。這本書將會給老師和學生帶來非凡的講授和學習體驗。 更新這一版在許多方面做了更新,包括從傳統(tǒng)方法到面向對象方法的重要概念,涉及用例驅動的面向對象方法(通過UML建模使其更詳細且有深度),強調敏捷和迭代開發(fā),并在項目管理中采用了新的概念。同時,材料的重組為學生學習系統(tǒng)分析與設計提供了更好的支持。 涵蓋面向對象和傳統(tǒng)的分析與設計本書的一大特點是整合了一些重要的系統(tǒng)建模概念,這些概念在傳統(tǒng)的結構化分析方法和面向對象的分析方法中都會涉及基于用戶目標和事件而建立的系統(tǒng)用例,加上對象/實體,這些都是系統(tǒng)問題域的一部分。我們用一章來介紹如何確定用例,再用一章介紹如何對關鍵的對象/實體建模,包括實體-聯(lián)系圖,同時強調UML域模型類圖。與傳統(tǒng)方法有所不同的是,本書先假定學生從一開始就了解面向對象的關鍵概念,包括結構化概念,因為近年來許多教師更強調面向對象方法的教學。 全面涵蓋UML和面向對象方法本書中呈現(xiàn)的面向對象方法基于OMG(對象管理組織)的統(tǒng)一建模語言(UML 2.0),它是由Grady Booch、James Rumbaugh和Ivar Jacobson發(fā)明的。模型驅動方法首先分析用例和場景,然后定義涉及用戶工作的問題域類。需求建模包含用例圖、領域建模、用例描述、活動圖和系統(tǒng)順序圖。FURPS 模型就是用來強調功能性和非功能性需求的。 本書深入討論了設計原理和設計模式,通過使用UML組件圖和包圖來建立系統(tǒng)體系結構的模型。特別關注使用CRC卡、順序圖和類圖設計來實現(xiàn)用例,并詳細地討論了模型的細節(jié)設計。 涵蓋項目管理許多本科課程需要系統(tǒng)分析與設計這門課程所講授的項目管理知識。為滿足這一需要,我們通過雙管齊下的方法來學習項目管理。第一,項目管理技術和任務在本書中得到了突出體現(xiàn),我們將講解系統(tǒng)開發(fā)生命周期的各種活動(包括迭代開發(fā))該如何使用特定的項目管理方法。第二,用獨立的一章完整地介紹了項目的計劃和管理。 重組內容以實現(xiàn)高效學習第6版的結構煥然一新,它從一個貫穿系統(tǒng)開發(fā)始末的完整例子開始,使學生快速了解系統(tǒng)分析模型和技術,然后介紹系統(tǒng)設計的概念,強調系統(tǒng)結構、用戶界面和系統(tǒng)界面。學生會在前7章中了解許多有關分析和設計的知識。接下來,在學生理解了系統(tǒng)開發(fā)真正包含的內容后,就會明白本書理論知識的重點是管理系統(tǒng)開發(fā)項目,包括敏捷開發(fā)。最后,本書覆蓋了詳細的設計主題與部署主題,從而幫助學生更深入地了解現(xiàn)代方法,如統(tǒng)一過程(UP)、極限編程(XP)和Scrum開發(fā)方法。 篇章結構和用書建議本書包含了很多簡潔、現(xiàn)代和集中的主題,這些主題對信息系統(tǒng)開發(fā)者來說是必不可少且非常重要的。 本書中涉及三個主要的課程領域:系統(tǒng)分析、系統(tǒng)設計和項目管理。其他沒有那么重要的領域則不會深入講解,比如系統(tǒng)的安裝、啟用、測試和調整。除此之外,我們也采用了一些與其他書籍不一樣的方法。因為學生已經(jīng)在第1章中對系統(tǒng)分析與設計有了基本了解,所以我們加深了關于系統(tǒng)分析與設計的概念,并在以后的章節(jié)中增加了項目管理的主題。這使得學生在理解系統(tǒng)分析與設計的元素之后能更好地學習項目管理的概念。我們認為這對于學生學習此門課程是很有意義的。 第一部分:系統(tǒng)開發(fā)導論第一部分即第1章,主要內容是系統(tǒng)開發(fā)的概述。第1章開篇清晰地解釋了系統(tǒng)分析與設計的目標,然后用一個詳細、具體的例子來闡述在典型的軟件開發(fā)項目中都需要什么。很多參加編程課程的學生認為編程就是必須會開發(fā)軟件和調試系統(tǒng),本章和本書中的其他內容會消除這個誤解。 第二部分:系統(tǒng)分析活動第2~5章詳細闡述了系統(tǒng)分析。第2章討論的是搜集某個商業(yè)問題的信息所需要的系統(tǒng)需求、分析活動和技術。只有充分理解問題所在,才有可能開發(fā)出相對適合的系統(tǒng)。第2章同時闡述了怎樣確定利益相關者并使其參與進來,還介紹了模型和建模的概念。第3章和第4章講述了以一種有用的方式捕獲詳細系統(tǒng)需求的建模技術。當我們提到信息系統(tǒng)時,兩個核心概念是很有用的:一個是用例,它能正確定義出最終用戶需要系統(tǒng)做什么;另一個是數(shù)據(jù)實體/域類,用戶以此來完成他們的工作任務。這兩個概念用例和數(shù)據(jù)實體/域類在任何一種系統(tǒng)開發(fā)方法中都是很重要的。第5章出現(xiàn)了更多深層次的需求模型,例如用例描述、用例圖、系統(tǒng)順序圖以及狀態(tài)機圖。 這些建模技能使得分析員可以對用戶需求進行深度分析并撰寫需求說明。再次重申一下,系統(tǒng)分析的目的就是完全理解和說明用戶需求。 第三部分:系統(tǒng)設計的要點第6章和第7章的主要內容是系統(tǒng)設計和設計用戶體驗的基本概念。第6章全面介紹了系統(tǒng)設計和結構化設計的重要原則。這一章不但是各種設計原則的概述,而且為后續(xù)章節(jié)中所要學習的設計技術、任務、技巧和模型打下了基礎。 第7章講述了有關設計用戶界面和系統(tǒng)界面的其他一些設計原則。設計用戶界面是分析和設計的結合。與分析有關是因為它需要很多用戶的參與,包括說明用戶活動和期望。另一方面,這也是一個設計活動,因為它能創(chuàng)造出特殊的組件,這些組件會對編程結果的產(chǎn)生起到促進作用。必須精確設計界面,記錄和其他用戶的互動,這樣才能作為最終系統(tǒng)的一部分而進行編程。當一個信息系統(tǒng)與另一個信息系統(tǒng)在沒有人為干擾的情況下產(chǎn)生了交流和交互時,就需要設計系統(tǒng)界面。系統(tǒng)界面因為網(wǎng)站服務和云計算而變得越來越重要。 第四部分:項目和項目管理通過這一部分,學生會對系統(tǒng)開發(fā)的所有組成元素有一個基本了解。第四部分會通過解釋更多有關組織和管理開發(fā)項目的過程而將所有概念結合到一起。第8章描述了在當前環(huán)境下用不同方法進行的系統(tǒng)開發(fā),包括幾種重要的系統(tǒng)開發(fā)生命周期模型和敏捷開發(fā)。這是一個重要的章節(jié),它能幫助你理解項目是怎樣得以執(zhí)行的。 第9章通過講解項目計劃和項目管理的基本原理擴充了這些概念。每個系統(tǒng)分析員都會參與到組織、協(xié)調和管理軟件開發(fā)項目的過程中。除此以外,大多數(shù)優(yōu)秀的學生最終會成為團隊領導和項目管理者。第9章中呈現(xiàn)的這些原理對于一項成功的事業(yè)來說是必需的。 第五部分:高級設計和部署概念第五部分會更深入地談到系統(tǒng)設計、數(shù)據(jù)庫設計,以及其他重要的有關有效且成功的系統(tǒng)開發(fā)和部署的論題。 第10章和第11章詳細解釋了用來設計軟件系統(tǒng)的模型、技巧和技術。正像之前提到的,系統(tǒng)設計是一個相當復雜的活動,尤其是要把它做得很正確。這兩章的任務是教會學生從簡到難的各種技術,這些技術可以用來進行有效的軟件系統(tǒng)設計。第12章描述了系統(tǒng)開發(fā)的最終元素:最終測試、部署、維護和版本控制。 分析與設計課程的教學建議分析與設計課程的教學方法有很多種,并且各個大學中教授這門課程的目的也不一樣。在一些學院的信息系統(tǒng)專業(yè),分析與設計課程是一門頂級課程,學生要將之前在數(shù)據(jù)庫、電子信息和編程課程中學習到的知識運用到一個真實的分析與設計項目中。在其他的信息系統(tǒng)專業(yè),分析與設計會作為系統(tǒng)開發(fā)領域的導論課,先于其他專業(yè)課。還有一些信息系統(tǒng)專業(yè)開設兩門課程,第一個學期強調的是分析,而第二個學期則注重設計和應用。另外一些信息系統(tǒng)專業(yè)僅僅開設一門課程,同時講授分析與設計。 由于要在強調傳統(tǒng)結構的方法和面向對象方法中進行選擇,所以這門課程的設計變得更加困難,這也使得它要依靠學校自身課程設置的優(yōu)先順序。此外,越來越多的迭代方法在開發(fā)中得到應用,這使得順序排列分析與設計課題難上加難。例如,若采用迭代開發(fā),則兩門課程就不能輕易地分為分析和設計。 這些目標、課程內容、任務和項目會不斷變化,我們所能提供的是使用這本書教授這門課程的一些建議。 面向對象分析與設計課程面向對象設計在本書中得到了詳細介紹。這門課程包括面向對象的分析和設計、用戶和系統(tǒng)界面設計、數(shù)據(jù)庫設計、控制和安全以及應用和測試。我們通常假設項目采用定制開發(fā),包括Web開發(fā)。本課程強調迭代開發(fā)方法,包括三層結構、項目管理、信息收集和管理報告。為了學生學習的完整性,一學期制課程通常僅僅達到完成用戶界面原型設計的目標。有時,這門課
John Satzinger 美國密蘇里州立大學計算機信息系統(tǒng)學院教授,他同時擁有加州州立理工大學的MBA學位和克萊蒙研究大學的博士學位,并具有15年以上的CIS和MIS大學課程教學和研究經(jīng)驗,他的研究興趣和專長包括:系統(tǒng)分析與設計、圖形用戶界面設計、面向對象的開發(fā)、數(shù)據(jù)庫和客戶-服務器系統(tǒng)開發(fā)。Robert Jackson 美國楊百翰大學計算機科學專業(yè)博士,之后在該校信息系統(tǒng)學院任教多年,現(xiàn)在已退休。他已經(jīng)發(fā)表了大量有關面向對象系統(tǒng)開發(fā)、電子商務、WEB系統(tǒng)、項目管理以及信息系統(tǒng)教育方面的論文和著作。目前,他自己開創(chuàng)了幾個新的電子商務業(yè)務,并將積累的分析、設計和商業(yè)實踐經(jīng)驗融入他編寫的教材中。Stephen Burd 美國新墨西哥大學副教授,從1984年開始在此校從事管理信息系統(tǒng)、網(wǎng)絡、數(shù)據(jù)庫、硬件/軟件課程的教學。他分別在美國巴爾的摩大學獲得學士和碩士學位、普度大學獲得博士學位。
目 錄Introduction to Systems Analysis and Design: An Agile, Iterative Approach, Sixth Edition出版者的話譯者序前言第一部分 系統(tǒng)開發(fā)導論第1章 從始至終系統(tǒng)分析與設計概述 21.1 軟件開發(fā)以及系統(tǒng)分析與設計 21.2 系統(tǒng)開發(fā)生命周期 41.3 落基山運動用品(RMO)介紹 41.4 迭代開發(fā) 61.5 RMO貿(mào)易展覽系統(tǒng)的開發(fā) 71.5.1 項目開始前的準備工作 71.5.2 第一天的工作活動 81.5.3 第二天的工作活動 111.5.4 第三天的工作活動 131.5.5 第四天的工作活動 151.5.6 第五天的工作活動 191.5.7 第六天的工作活動 191.5.8 第一次迭代回顧 211.6 后續(xù)內容導讀 211.6.1 第一部分:系統(tǒng)開發(fā)導論 211.6.2 第二部分:系統(tǒng)分析活動 221.6.3 第三部分:系統(tǒng)設計的要點 221.6.4 第四部分:項目和項目管理 221.6.5 第五部分:高級設計和部署概念 22本章小結 23復習題 23第二部分 系統(tǒng)分析活動第2章 系統(tǒng)需求調查 262.1 引言 272.2 RMO綜合銷售和市場營銷系統(tǒng)項目 272.2.1 現(xiàn)有的RMO信息系統(tǒng)與架構 272.2.2 新綜合銷售和市場營銷系統(tǒng) 282.3 系統(tǒng)分析活動 302.3.1 收集細節(jié)信息 302.3.2 定義需求 312.3.3 需求的優(yōu)先級劃分 312.3.4 開發(fā)用戶界面對話框 312.3.5 與用戶一起評估需求 312.4 什么是需求 322.5 模型和建模 332.6 利益相關者 352.7 信息收集技術 382.7.1 與用戶和其他利益相關者進行訪談 382.7.2 分發(fā)和收集調查問卷 412.7.3 檢查輸入、輸出和流程 422.7.4 觀察和記錄業(yè)務流程 432.7.5 研究供應商的解決方案 442.7.6 收集活躍的用戶評論和建議 442.8 用活動圖記錄工作流 44本章小結 47復習題 48問題和練習 48擴展資源 49第3章 用例 503.1 引言 513.2 用例和用戶目標 513.3 用例和事件分解 523.3.1 事件分解技術 533.3.2 事件類型 543.3.3 定義事件 553.3.4 使用事件分解技術 573.4 用例和CRUD 583.5 RMO案例中的用例 593.6 用例圖 603.6.1 用例、參與者和符號 613.6.2 開發(fā)用例圖 63本章小結 64復習題 65問題和練習 66擴展資源 67第4章 域建模 684.1 引言 684.2 問題域中的事物 694.2.1 頭腦風暴法 694.2.2 名詞技術 704.2.3 事物的屬性 714.2.4 事物間的關系 724.3 實體-聯(lián)系圖 734.4 域模型類圖 764.4.1 域模型類圖符號 764.4.2 有關對象類的更復雜的問題 794.4.3 RMO案例的域模型類圖 81本章小結 86復習題 86問題和練習 87擴展資源 88第5章 需求模型的延伸 895.1 引言 905.2 用例描述 905.2.1 簡單的用例描述 915.2.2 完全展開的用例描述 915.3 用例活動圖 935.4 系統(tǒng)順序圖確定輸入和輸出 945.4.1 系統(tǒng)順序圖符號 945.4.2 開發(fā)系統(tǒng)順序圖 975.5 狀態(tài)機圖確定對象行為 1005.5.1 復合狀態(tài)和并發(fā)性 1015.5.2 開發(fā)狀態(tài)機圖的規(guī)則 1035.5.3 開發(fā)RMO狀態(tài)機圖 1045.6 需求模型的集成 107本章小結 108復習題 108問題和練習 109擴展資源 111第三部分 系統(tǒng)設計的要點第6章 設計與設計活動的基本要素 1146.1 引言 1156.2 設計要素 1156.2.1 什么是系統(tǒng)設計 1166.2.2 設計的主要組件和層次 1166.3 系統(tǒng)設計的輸入和輸出 1186.4 設計活動 1206.4.1 設計環(huán)境 1216.4.2 設計應用程序結構和軟件 1226.4.3 設計用戶界面 1226.4.4 設計系統(tǒng)界面 1236.4.5 設計數(shù)據(jù)庫 1246.4.6 設計安全和系統(tǒng)控制 1256.5 如何設計環(huán)境 1256.5.1 設計內部部署 1266.5.2 設計外部部署 1286.5.3 設計遠程和分散的環(huán)境 1346.5.4 RMO的企業(yè)技術結構 135本章小結 136復習題 137問題和練習 137擴展資源 138第7章 設計用戶界面和系統(tǒng)界面 1397.1 引言 1407.2 用戶界面和系統(tǒng)界面 1407.3 理解用戶界面 1417.4 用戶界面的設計概念 1447.4.1 提示性與可視性 1447.4.2 一致性 1457.4.3 快捷方式 1467.4.4 反饋 1467.4.5 完整的對話 1467.4.6 錯誤處理 1467.4.7 撤銷動作 1477.4.8 減輕短期記憶負擔 1477.5 從分析到用戶界面設計的轉換 1477.5.1 用例和菜單層次 1487.5.2 對話和故事板 1507.6 用戶界面設計 1527.6.1 設計窗體和格式的指導原則 1527.6.2 網(wǎng)頁瀏覽器用戶界面的附加指導原則 1547.6.3 手持設備的附加指導原則 1577.7 確定系統(tǒng)界面 1587.8 設計系統(tǒng)輸入 1607.8.1 自動化輸入設備 1607.8.2 定義系統(tǒng)輸入的細節(jié) 1607.9 設計系統(tǒng)輸出 161本章小結 167復習題 167問題和練習 168擴展資源 168第四部分 項目和項目管理第8章 系統(tǒng)開發(fā)方法 1708.1 引言 1718.2 系統(tǒng)開發(fā)生命周期 1718.