編輯推薦
在企業信息係統的開發中,強有力的分析和設計對成功開發都是非常重要的。《需求分析與係統設計(原書第3版)》講解設計大型麵嚮對象係統所需的基礎理論,以及如何將這些理論付諸實踐。《需求分析與係統設計(原書第3版)》作者非常注重實踐,提供瞭大量實例、練習和問題,使讀者快速掌握理論知識,提高開發水平。
《需求分析與係統設計(原書第3版)》主要特點
圍繞七個實例研究(大學注冊、音像商店、關係管理、電話銷售、廣告支齣、時間記錄和貨幣兌換)展開實例教學,每個實例都具有自身的特點和教學價值。
特彆關注設計階段,並不是將設計看成分析的直接轉換,而是充分考慮大型企業信息係統開發的睏難和復雜性。
通過大量的練習-答案和問題-解決方案鞏固所學的知識。
使用可視化係統建模的標準——UML,討論使用Web技術和數據庫技術進行開發。
新增瞭解決方案管理框架(ITIL和COBIT)和係統集成、業務過程建模、Web GUI設計。
內容簡介
《需求分析與係統設計(原書第3版)》論述軟件分析與設計的原理、方法和技術,並特彆關注設計階段,對軟件體係結構的內容進行瞭很大的擴充。《需求分析與係統設計(原書第3版)》強調對象技術及統一建模語言(UML)在企業信息係統開發中的應用,並討論瞭使用Web技術和數據庫技術進行開發的方法。
《需求分析與係統設計(原書第3版)》是大學本科生學習係統分析與設計、軟件工程、軟件項目管理、數據庫和對象技術的理想教材和參考書;對於軟件工程技術人員來說,《需求分析與係統設計(原書第3版)》也是很好的參考資料。
內頁插圖
目錄
譯者序
前言
第1章 軟件過程
1.1 軟件開發的本質
1.1.1 軟件開發的不變事實
1.1.2 軟件開發的“意外事件”
1.1.3 開發還是集成
復習小測驗1.1
1.2 係統規劃
1.2.1 SWOT方法
1.2.2 VCM方法
1.2.3 BPR方法
1.2.4 ISA方法
復習小測驗1.2
1.3 三級管理係統
1.3.1 事務處理係統
1.3.2 分析處理係統
1.3.3 知識處理係統
復習小測驗1.3
1.4 軟件開發生命周期
1.4.1 開發方法
1.4.2 生命周期的階段
1.4.3 跨越生命周期的活動
復習小測驗1.4
1.5 開發模型與方法
1.5.1 螺鏇模型
1.5.2 IBM Rational統一過程
1.5.3 模型驅動的體係結構
1.5.4 敏捷軟件開發
1.5.5 麵嚮方麵的軟件開發
復習小測驗1.5
1.6 實例研究的問題陳述
1.6.1 大學注冊
1.6.2 音像商店
1.6.3 關係管理
1.6.4 電話銷售
1.6.5 廣告支齣
1.6.6 時間記錄
1.6.7 貨幣兌換
小結
關鍵術語
選擇題
問題
復習小測驗答案
選擇題答案
奇數編號問題的答案
第2章 需求確定
2.1 從業務過程到解決方案構想
2.1.1 過程層次建模
2.1.2 業務過程建模
2.1.3 解決方案構想
復習小測驗2.1
2.2 需求引導
2.2.1 係統需求
2.2.2 需求引導的傳統方法
2.2.3 需求引導的現代方法
復習小測驗2.2
2.3 需求協商與確認
2.3.1 超齣範圍的需求
2.3.2 需求依賴矩陣
2.3.3 需求風險和優先級
復習小測驗2.3
2.4 需求管理
2.4.1 需求標識與分類
2.4.2 需求層次
2.4.3 變更管理
2.4.4 需求可跟蹤性
復習小測驗2.4
2.5 需求業務模型
2.5.1 係統範圍模型
2.5.2 業務用例模型
2.5.3 業務詞匯錶
2.5.4 業務類模型
復習小測驗2.5
2.6 需求文檔
2.6.1 文檔模闆
2.6.2 項目準備
2.6.3 係統服務
2.6.4 係統約束
2.6.5 項目的其他問題
2.6.6 附錄
復習小測驗2.6
小結
關鍵術語
選擇題
問題
練習:廣告支齣
練習:時間記錄
復習小測驗答案
選擇題答案
奇數編號問題的答案
練習的解決方案:AE
第3章 可視化建模基礎
3.1 用例視圖
3.1.1 參與者
3.1.2 用例
3.1.3 用例圖
3.1.4 用例文檔化
復習小測驗3.1
3.2 活動視圖
3.2.1 動作
3.2.2 活動圖
復習小測驗3.2
3.3 結構視圖
3.3.1 類
3.3.2 屬性
3.3.3 關聯
3.3.4 聚閤
3.3.5 泛化
3.3.6 類圖
復習小測驗3.3
3.4 交互視圖
3.4.1 順序圖
3.4.2 通信圖
3.4.3 類方法
復習小測驗3.4
3.5 狀態機視圖
3.5.1 狀態和轉換
3.5.2 狀態機圖
復習小測驗3.5
3.6 實現視圖
3.6.1 子係統和包
3.6.2 構件和構件圖
3.6.3 節點和部署圖
復習小測驗3.6
小結
關鍵術語
選擇題
問題
練習
練習:音像商店
復習小測驗答案
選擇題答案
奇數編號問題的答案
奇數編號練習的解決方案
奇數編號練習的解決方案:音像商店
第4章 需求規格說明
4.1 體係結構優先權
4.1.1 模型-視圖-控製器
4.1.2 J2EE的核心體係結構
4.1.3 錶示-控製器-bean-中介者-實體-資源
復習小測驗4.1
4.2 狀態規格說明
4.2.1 類建模
4.2.2 關聯建模
4.2.3 聚閤及復閤關係建模
4.2.4 泛化關係建模
4.2.5 接口建模
4.2.6 對象建模
復習小測驗4.2
4.3 行為規格說明
4.3.1 用例建模
4.3.2 活動建模
4.3.3 交互建模
4.3.4 操作建模
復習小測驗4.3
4.4 狀態變化規格說明
4.4.1 對象狀態建模
復習小測驗4.4
小結
關鍵術語
選擇題
問題
練習:音像商店
練習:關係管理
練習:大學注冊
復習小測驗答案
選擇題答案
奇數編號問題的答案
練習的解決方案:大學注冊
第5章 從分析到設計
5.1 高級類建模
5.1.1 擴展機製
5.1.2 可見性與封裝
5.1.3 導齣信息
5.1.4 限定關聯
5.1.5 關聯類與具體化類
復習小測驗5.1
5.2 高級泛化與繼承建模
5.2.1 泛化和可替換性
5.2.2 繼承與封裝
5.2.3 接口繼承
5.2.4 實現繼承
復習小測驗5.2
5.3 高級聚閤與委托建模
5.3.1 給聚閤增加更多的語義
5.3.2 作為泛化的可選方案的聚閤
5.3.3 聚閤與整體構件-一些僅供
思考的材料
復習小測驗5.3
5.4 高級交互建模
5.4.1 生命綫和消息
5.4.2 片段
5.4.3 交互使用
復習小測驗5.4
小結
關鍵術語
選擇題
問題
練習
練習:時間記錄
練習:廣告支齣
復習小測驗答案
選擇題答案
奇數編號問題的答案
奇數編號練習的解決方案
練習的解決方案:時間記錄
第6章 係統體係結構與程序設計
6.1 分布式物理體係結構
6.1.1 對等體係結構
6.1.2 分層體係結構
6.1.3 數據庫為中心的體係結構
復習小測驗6.1
6.2 多層邏輯體係結構
6.2.1 體係結構的復雜性
6.2.2 體係結構模式
復習小測驗6.2
6.3 體係結構建模
6.3.1 包
6.3.2 構件
6.3.3 結點
復習小測驗6.3
6.4 程序設計與復用原則
6.4.1 類的內聚與耦閤
6.4.2 復用策略
復習小測驗6.4
6.5 協作建模
6.5.1 協作
6.5.2 復閤結構
6.5.3 從用例到復閤協作
6.5.4 從協作到交互
6.5.5 從交互到復閤結構
復習小測驗6.5
小結
關鍵術語
選擇題
問題
練習:音像商店
練習:廣告支齣
復習小測驗答案
選擇題答案
奇數編號問題的答案
練習的解決方案:廣告支齣
第7章 圖形用戶界麵設計
7.1 GUI設計原則
7.1.1 從GUI原型到實現
7.1.2 良好GUI設計指南
復習小測驗7.1
7.2 桌麵GUI設計
7.2.1 主窗口
7.2.2 輔窗口
7.2.3 菜單和工具欄
7.2.4 按鈕及其他控件
復習小測驗7.2
7.3 WebGUI設計
7.3.1 Web應用係統的使能技術
7.3.2 內容設計
7.3.3 導航設計
7.3.4 利用GUI框架支持Web設計
復習小測驗7.3
7.4 GUI導航建模
7.4.1 用戶體驗故事情節
7.4.2 UX元素建模
7.4.3 行為性UX協作
7.4.4 結構性UX協作
復習小測驗7.4
小結
關鍵術語
選擇題
問題
練習:關係管理
練習:電話銷售
復習小測驗答案
選擇題答案
奇數編號問題的答案
練習的解決方案:關係管理
第8章 持久性與數據庫設計
8.1 業務對象和持久性
8.1.1 數據庫管理係統
8.1.2 數據模型的層次
8.1.3 集成應用係統與數據庫建模
8.1.4 對象-數據庫映射基礎
復習小測驗8.1
8.2 關係數據庫模型
8.2.1 列.域和規則
8.2.2 錶
8.2.3 引用完整性
8.2.4 觸發器
8.2.5 存儲過程
8.2.6 視圖
8.2.7 範式
復習小測驗8.2
8.3 對象-關係映射
8.3.1 映射實體類
8.3.2 映射關聯
8.3.3 映射聚閤
8.3.4 映射泛化
復習小測驗8.3
8.4 管理持久對象的模式
8.4.1 檢索持久對象
8.4.2 裝載持久對象
8.4.3 釋放持久對象
復習小測驗8.4
8.5 設計數據庫訪問和事務
8.5.1 SQL程序設計的層次
8.5.2 設計業務事務
復習小測驗8.5
小結
關鍵術語
選擇題
問題
練習:關係管理
練習:電話銷售
復習小測驗答案
選擇題答案
奇數編號問題的答案
練習的解決方案:關係管理
第9章 質量與變更管理
9.1 質量管理
9.1.1 質量保證
9.1.2 質量控製
復習小測驗9.1
9.2 變更管理
9.2.1 工具與管理變更請求
9.2.2 可追蹤性
復習小測驗9.2
小結
關鍵術語
選擇題
問題
復習小測驗答案
選擇題答案
奇數編號問題的答案
第10章 復習鞏固指南
10.1 用例建模
10.1.1 參與者
10.1.2 用例
10.1.3 用例圖
10.1.4 編寫用例文檔
10.2 活動建模
10.2.1 動作
10.2.2 活動圖
10.3 類建模
10.3.1 類
10.3.2 屬性
10.3.3 關聯
10.3.4 聚閤
10.3.5 泛化
10.3.6 類圖
10.4 交互建模
10.4.1 順序圖
10.4.2 通信圖
10.5 狀態機建模
10.5.1 狀態和轉換
10.5.2 狀態機圖
10.6 實現模型
10.6.1 子係統
10.6.2 包
10.6.3 構件
10.6.4 注釋
10.7 對象協作設計
10.7.1 用例設計規格說明
10.7.2 用戶界麵原型
10.7.3 順序圖
10.7.4 設計層類圖
10.8 窗口導航設計
10.8.1 用戶體驗元素
10.8.2 行為性UX協作
10.8.3 結構性UX協作
10.9 數據庫設計
10.9.1 對象-關係映射
10.9.2 引用完整性設計
小結
練習:在綫購物
附錄A對象技術基礎
參考文獻
前言/序言
信息係統(informationsystem,IS)的開發(從開始計劃到部署給利益相關者)包括三個迭代增量式階段:分析、設計和實現。本書論述瞭分析和設計階段使用的方法和技術。實現方麵的問題(包括代碼實例)隻在設計階段需要考慮時纔講解,質量與變更管理在第9章單獨討論。
本書集中在麵嚮對象軟件開發上。統一建模語言(UnifiedModelingLanguage,UML)用於捕捉建模的人工製品,主要論述用逐步細化的方式進行開發,並且在整個開發生命周期中都使用UML這種建模語言、係統分析師、設計師和程序員使用同一種語言和工具,但有時也會使用一些語言中的方言(配置文件)來滿足各自的需要。
對象技術的早期應用主要針對圖形用戶界麵(GUI),並關注開發新係統的速度和程序執行的速度.而在本書中,作者強調對象技術在企業信息係統(enterpriseinformationsystem,EIS)開發中的應用。其中的挑戰是數據量大,數據結構復雜,許多並發用戶對信息進行共享式訪問,事務處理,需求變更等.對象技術在EIS開發中的主要優勢在於可以提高係統的適應性(可理解性、可維護性和可伸縮性)。
開發企業信息係統與進行大規模的分析和設計是同步的。如果不遵循嚴格的開發過程,不理解基本的軟件體係結構,EIS項目就不可能成功。這種開發是大型的、麵嚮對象的、迭代增量式的。
本書提齣瞭用UML進行企業信息係統分析和設計的詳細方法,確定瞭以下幾方麵的解決方法:
分析和建模業務過程。
控製大型係統模型的復雜性。
改進軟件體係結構。
提高係統的適應性。
處理詳細的設計問題。
理解圖形用戶界麵。
瞭解數據庫的重要性。
管理質量.管理變更等。
本書特點
本書的最大特點是“實例教學”。主要的討論圍繞七個實例研究和學習指導形式的復習鞏固章節進行。這些例子是從七個應用領域抽取的,每個例子都有各自的特點和教學價值。涉及的領域有大學注冊、音像商店、關係管理、電話銷售、廣告支齣、時間記錄和貨幣兌換。學習指導涉及在Internet上購買計算機的在綫購物應用係統。
為瞭便於自學,本書用問題-答案及練習-解決方案的形式闡述瞭實例研究和學習指導。通過每章末給齣的問題和練習,實踐材料得到瞭進一步擴充和豐富、選擇題(或練習)都提供瞭答案(或解決方案)。每章都包含帶有答案的復習小測驗和選擇題,並且都給齣瞭關鍵術語的定義。
《軟件工程導論:核心概念與實踐方法》 內容簡介 本書旨在為讀者構建一套堅實的軟件工程理論基礎,並結閤前沿的實踐方法,深入剖析軟件開發生命周期的各個環節。我們不直接探討具體的需求獲取技巧或詳盡的係統架構模式,而是聚焦於軟件工程領域的核心概念、指導原則以及在不同開發場景下通用的思考框架。本書的目標是幫助讀者建立起一種“工程思維”,理解軟件開發為何需要係統性的方法,以及這些方法如何指導我們創造齣高質量、可維護且滿足用戶期望的軟件産品。 第一部分:軟件工程的基石——理解軟件開發的本質 在這一部分,我們將首先探討軟件工程的定義及其在現代技術發展中的重要地位。我們不會糾結於“需求”與“設計”這兩個詞匯本身,而是深入理解“為什麼我們需要如此細緻地規劃和構建軟件”。我們將從軟件的特性入手,分析其與傳統工程學科的異同,從而引齣軟件工程作為一門學科的必要性。 軟件的特殊性與挑戰: 軟件並非物理實體,其無形性帶來瞭獨特的挑戰,例如難以可視化、易於修改但也容易引入缺陷、以及規模龐大時帶來的復雜性管理問題。我們將分析這些內在特性如何促使我們需要一套嚴謹的工程方法來駕馭。 軟件工程的宗旨與價值: 軟件工程不僅僅是編寫代碼,它是一門關於如何係統地、高效地、經濟地開發和維護軟件的學科。我們將闡述軟件工程的核心目標:提高軟件質量、縮短開發周期、降低開發成本、提升軟件的可信度和可維護性。本書將強調,理解這些根本目標,是掌握任何具體工程技術的前提。 軟件生命周期模型: 我們將概述經典的軟件生命周期模型,如瀑布模型、迭代模型、螺鏇模型等,並分析它們各自的演進思路和適用場景。重點不在於詳細描述每一步的活動,而是理解不同模型背後的哲學思想——如何管理復雜性、如何應對不確定性、以及如何在不同階段進行權衡。我們將討論為什麼單一的、綫性的流程難以適應現代軟件開發的快速變化。 第二部分:規劃與構建——從概念到藍圖的演進 在這一部分,我們將探討在軟件開發過程中,如何將模糊的設想轉化為清晰的、可執行的計劃。我們將聚焦於“過程”和“模型”的概念,而不是具體的“需求文檔”或“設計圖”。 建模的思想: 建模是理解復雜係統的關鍵。我們將討論不同類型的模型在軟件工程中的作用,例如概念模型、邏輯模型和物理模型。我們將強調,無論是在理解問題領域還是在描述解決方案時,構建抽象模型都能幫助我們聚焦核心要素,忽略不必要細節。我們不會提供具體的建模語言(如UML),但會講解建模背後的原理和價值。 抽象與分解: 軟件的復雜性可以通過抽象和分解來管理。我們將探討如何通過抽象來屏蔽細節,關注更高級彆的概念,以及如何通過分解將大型問題拆分成更小、更易於管理的部分。這是一種通用的工程思維,適用於任何復雜係統的設計。 結構與組織: 軟件係統的結構至關重要。我們將討論軟件設計的原則,如模塊化、內聚性、耦閤性。這些原則是構建易於理解、易於修改和易於擴展的軟件的基礎。我們將解釋為什麼一個良好的軟件結構能夠極大地影響其長期可維護性。 約束與權衡: 任何工程項目都存在資源、時間和質量的約束。我們將分析在軟件開發過程中,這些約束如何影響我們的決策,以及如何在不同的目標之間進行權衡。例如,是追求極緻的性能,還是優先考慮快速上綫?這些都是工程實踐中必須麵對的權衡。 第三部分:質量保障與持續改進——軟件工程的生命綫 軟件的成功不僅僅在於完成開發,更在於其交付後的錶現和長期的生命周期。這一部分將關注如何確保軟件的質量,以及如何在軟件生命周期中不斷進行改進。 驗證與確認的哲學: 我們將區分“驗證”(是否正確地構建瞭係統?)和“確認”(是否構建瞭正確的係統?)。理解這兩者的區彆,是構建高質量軟件的關鍵。我們將討論不同層麵的驗證與確認活動,但不會深入到具體的測試技術(如單元測試、集成測試)。 風險管理: 軟件開發充滿瞭不確定性和風險。我們將探討識彆、評估和應對潛在風險的方法,以最小化項目失敗的可能性。這是一種前瞻性的思維模式,幫助我們在問題發生前就采取預防措施。 過程改進: 軟件工程並非一成不變,它是一個不斷發展的領域。我們將討論軟件過程改進的理念,以及如何通過度量和反思來不斷優化開發流程。這強調瞭一種持續學習和適應的態度。 軟件可維護性: 軟件的生命周期遠不止開發階段。我們將探討軟件可維護性的重要性,以及在設計和開發過程中如何考慮未來的修改和演進。良好的可維護性是軟件能夠長期服務於用戶的基石。 第四部分:軟件工程的實踐視角 在這一部分,我們將從更宏觀的視角審視軟件工程在實際項目中的應用。我們將關注項目管理、團隊協作以及如何將理論轉化為可操作的實踐。 項目管理基礎: 軟件項目管理是確保項目按時、按預算、高質量完成的關鍵。我們將概述項目管理的核心要素,如範圍、時間和成本管理,以及如何有效地組織和協調開發團隊。 團隊協作與溝通: 軟件開發通常是團隊協作的産物。我們將強調有效的溝通和協作在軟件項目中的重要性,以及如何建立一個高效的開發團隊。 軟件工程在不同環境中的適應性: 不同的項目規模、團隊組成和業務需求,都需要不同的軟件工程方法。我們將討論如何根據實際情況調整和應用軟件工程的原則和實踐,而不是機械地套用某種模型。 麵嚮未來的軟件工程: 隨著技術的發展,軟件工程也在不斷演進。我們將展望軟件工程的未來趨勢,如敏捷方法論的哲學思想(但不深入具體方法)、DevOps的理念以及人工智能在軟件工程中的潛在作用。 總結 《軟件工程導論:核心概念與實踐方法》緻力於為讀者提供一個全麵而深入的軟件工程視野。本書的核心在於傳遞一種“工程化”的思維模式,強調係統性、嚴謹性和持續改進。通過理解軟件工程的本質、規劃與構建的原則、質量保障的機製以及實踐中的考量,讀者將能夠更好地理解如何構建健壯、可靠且有價值的軟件係統,並為未來深入學習具體的軟件工程技術打下堅實的基礎。本書的內容不局限於特定的開發階段或技術棧,而是聚焦於那些跨越時間、適用於任何軟件開發項目的核心理念。