-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
軟件工程與設計模式 版權信息
- ISBN:9787302457145
- 條形碼:9787302457145 ; 978-7-302-45714-5
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
軟件工程與設計模式 本書特色
軟件工程是軟件開發組織根據所要開發的軟件特點及項目自身的特點,選擇適合的軟件設計模式,把各種軟件工程學原理的特性和軟件設計模式有機地結合起來,充分利用它們的優點,回避缺陷,有效地提高軟件質量的過程。 本書是軟件開發方法體系的完整體現,有別于傳統軟件工程學,增加了許多實際軟件開發過程中需要的實用方法技術,填補了傳統軟件工程的設計薄弱環節。
軟件工程與設計模式 內容簡介
本書是作者在多年從事軟件工程、軟件設計模式課程教學實踐基礎上編寫的。全書共分為8章,通過大量的實例,介紹了實用軟件工程學的原理及設計模式的相關知識,根據軟件開發“工程化”思想,系統地講授了軟件工程學、軟件設計過程、23種先進的設計模式、軟件測試方法、軟件項目管理、應用技術和實用工具等相關知識。全書采用社會所需實際案例為基線,以案例、項目式教學思路貫穿始終,根據需要安排了多個任務和子任務,讀者可以通過實踐掌握課程所學內容。書后配有適量的思考題和練習題,使讀者能夠在學習過程中提高操作能力和實際應用能力。 本書可作為高等院校學生學習軟件工程、軟件設計模式、軟件體系結構設計等課程的教材,也可以作為讀者自學的參考書。
軟件工程與設計模式 目錄
目錄
項目1 軟件工程概述 1
任務1 問題的提出 3
任務2 軟件工程概述 8
任務3 面向對象的幾個基本原則 11
任務4 軟件項目的生命周期 13
任務5 軟件項目的開發模型 15
任務6 軟件工程學的基本原則 24
上機實訓:機票預訂系統 26
項目小結 27
習題 27
項目2 軟件設計過程 29
任務1 洞悉軟件設計過程 30
任務2 面向對象軟件設計工具UML 32
任務3 軟件設計過程管理 54
上機實訓:商品銷售系統 60
項目小結 61
習題 61
項目3 軟件設計模式 63
任務1 創建型模式 64
任務2 結構型模式 92
任務3 行為型模式 135
上機實訓:小動物模式的應用 212
項目小結 213
習題 213
項目4 設計模式案例 217
任務1 命令模式 218
任務2 觀察者模式 220
任務3 裝飾模式 224
任務4 策略模式 226
任務5 適配器模式 229
任務6 責任鏈模式 231
任務7 外觀模式 234
任務8 迭代器模式 236
任務9 中介者模式 238
任務10 工廠方法模式 241
任務11 抽象工廠模式 244
任務12 生成器模式 248
任務13 原型模式 251
任務14 單件模式 254
任務15 組合模式 255
任務16 橋接模式 259
任務17 狀態模式 261
任務18 模板方法模式 264
任務19 代理模式 266
任務20 享元模式 268
任務21 訪問者模式 271
任務22 備忘錄模式 274
任務23 解釋器模式 278
上機實訓:工廠方法模式的應用 283
項目小結 283
習題 283
項目5 面向對象技術概述 287
任務1 傳統方法學 288
任務2 面向對象方法學 296
任務3 面向對象程序設計語言 301
上機實訓:學校運動會模型 307
項目小結 308
習題 309
項目6 軟件測試方法 311
任務1 軟件測試概述 312
任務2 軟件測試方法 316
任務3 軟件測試管理 331
任務4 測試工具簡介 338
上機實訓:軟件測試方法 345
項目小結 346
習題 347
項目7 設計模式的原則和分類 349
任務1 設計模式的原則 350
任務2 設計模式的分類 351
上機實訓:觀察者模式 355
項目小結 356
習題 356
項目8 軟件項目管理 357
任務1 軟件項目管理導論 358
任務2 項目管理流程及方法 362
上機實訓:項目管理工具Project 2010的
應用 376
項目小結 380
習題 380
參考文獻 385
軟件工程與設計模式 節選
項目2 軟件設計過程 項目導入 軟件工程是一種建模活動和解決問題的活動,也是一種知識獲取的活動。在對應用域和解決方案域進行建模時,軟件工程師收集數據,將這些數據轉化為信息,并將這些信息形式化為知識。對知識的獲取不是線性的,因為單個多余數據就能讓整個模型變得無效。軟件開發分為分析、設計、實現三個環節,分析就是獲取項目需求,設計就是根據整理后的項目需求進行合理、準確、完善的項目設計,實現就是使用軟件開發工具實現軟件設計方案等。 項目分析 本項目以先進的面向對象方法學為開發基線,講解了軟件設計過程的基本原理、軟件設計建模工具UML(統一建模語言)及其操作工具PowerDesigner、Violet的安裝使用方式等,*后通過飲料自動售貨機系統的設計,總結了軟件設計全過程。 任務1 洞悉軟件設計過程 任務要求 根據軟件工程生命周期及項目內容確定軟件設計過程原理,介紹軟件設計過程中需遵守的規則及相關概念。 知識儲備 軟件工程是一種建模活動。軟件工程師通過建模來處理復雜性,以做到每次只專注于相關聯的細節而忽略其他一切因素。在開發過程中,軟件工程師要構建許多不同的系統模型以及應用域模型。 軟件工程是一種解決問題的活動。模型用于尋找一種可接受的解決問題的方法,而這種尋找方法受實驗的驅動。軟件工程師沒有無限可用的資源,并且會受到預算的限制和提交的*后期限的限制。由于缺乏基本理論,他們通常得依靠實驗方法來評價各種可選方案的優劣。 軟件工程是一種知識獲取的活動。在對應用域和解決方案域進行建模時,軟件工程師收集數據,將這些數據轉化為信息,并將這些信息形式化為知識。 軟件工程的傳統方法將結構化分析和結構化設計人為地分離成兩個獨立的部分,將描述數據對象和描述作用于數據上的操作看成兩個獨立的部分分別進行處理。實際上,數據和對數據的處理是密切相關、不可分割的,分別處理會增加軟件開發和維護的難度。 面向對象方法是1979年以后發展起來的,是當前軟件工程方法的主要方向,也是目前*有效、*實用和*流行的軟件開發方法之一。面向對象方法是在汲取結構化方法的思想和優點的基礎上發展起來的,是對結構化方法的進一步發展和擴充。 面向對象方法是一種將數據和處理相結合的方法。面向對象的設計(英文縮寫為OOD)與結構化設計有很大的不同,面向對象的設計是在面向對象的分析(英文縮寫為OOA)的基礎上,對OOA模型逐漸擴充的過程。OOD和OOA采用相同的符號表示,OOD和OOA沒有明顯的分界線,它們往往反復迭代地進行。 在面向對象的設計(OOD)時,主要解決系統如何做,因此需要在面向對象的分析(OOA)的模型中為系統的實現補充一些新的類,或在原有類中補充一些屬性和操作。OOD時應能從類中導出對象,以及知道這些對象如何互相關聯,還要描述對象間的關系、行為以及知道對象間的通信如何實現的等。 任務實施 在面向對象的軟件開發過程中,面向對象的設計往往要經歷三個階段:需求分析、系統分析和系統設計等。 1. 需求分析 需求分析階段所需要解決的問題是從"用戶"的角度說明系統即將"做什么"。 軟件開發是一個專業領域的人(軟件開發人員)在為另一個專業領域的人(行業用戶)服務的活動行為。用戶了解他們所面對的問題,知道必須做什么,但是通常不能完整準確地表達出他們的要求,更不知道怎樣利用計算機解決他們的問題。軟件開發人員知道怎樣用軟件實現客戶的要求,但是對特定用戶的具體要求并不完全清楚。因此,系統分析員在需求分析階段必須和用戶密切配合,充分交流信息,與用戶達成共識。 需求分析階段的兩個任務是捕獲需求和分析整理需求,需求分析階段確定的系統模型是以后設計和實現目標系統的基礎,必須準確完整地體現用戶的要求。這個階段的一項重要任務是用正式文檔準確地記錄對目標系統的需求,即規格說明書。需求分析是否準確對軟件項目的成敗將會產生重要影響。 2. 系統分析 系統分析階段所需要解決的問題是從"開發者"的角度來描述系統需要"做什么"。它從系統的角度來看待軟件應該為用戶提供的服務,進行邏輯上的分析,獨立于具體的程序語言,得到相應的邏輯模型即系統分析模型。 3. 系統設計 系統設計階段所需要解決的問題是從"開發者"的角度來描述系統需要"怎么做"。因此,需要考慮具體的實施方式,包括技術方案的選擇、軟件的部署、模式的運用、框架的使用等。 面向對象的系統設計又分為總體設計和詳細設計兩個子階段。在總體設計子階段主要重點放在解決系統高層次問題上,如將系統分析模型如何劃分成子系統、選擇構造系統的策略等,通常在面向對象的設計中把它稱為系統總體設計階段。在詳細設計階段主要解決系統的一些細節問題,如類、關聯、接口的形式及實現服務的算法等,通常在面向對象的設計中把它稱為系統對象設計階段。 任務2 面向對象軟件設計工具UML 任務要求 掌握面向對象軟件設計過程的原理及相關概念,熟練掌握統一建模語言UML,并且能夠自行設計UML模型。 知識儲備 統一建模語言(Unified Modeling Language,UML)是由Jim Rumbaugh、Grady Booch、Ivar Jacobson 提出的一種定義良好、易于表達、功能強大且普遍適用的建模語言。它是一種構建軟件系統和文檔的通用可視化建模語言。UML能與所有的開發方法一同使用,可用于軟件開發的整個生命周期。 UML能表達系統的靜態結構和動態信息,并能管理復雜的系統模型,便于軟件團隊之間的合作開發。UML不是編程語言,但支持UML語言的工具可以提供從UML到各種編程語言的代碼生成,也可以提供從現有程序逆向構建UML模型等。UML并不是萬能的,它是一種離散的建模語言,對于特定的領域,比如GUI、VLSI電路設計或基于規則的人工智能,用特定的語言和工具可能更合適。 UML不是完整的開發方法,它不包括逐步的開發流程,但它提供所有必要的概念,具備足夠的表達能力,UML的目標是能盡量簡潔地表達系統的模型。 1. UML的歷史 UML是在多種面向對象建模方法的基礎上發展起來的建模語言,它的演化可以劃分為以下四個階段,*初的階段是專家的聯合行動,由三位OO(面向對象)方法學家Grady Booch、Jim Rumbaugh和Ivar Jacobson將他們各自的方法結合在一起,形成UML0.9;第二階段是公司的聯合行動,由十幾家公司組成的"UML伙伴組織"將各自的意見加入UML,形成UML1.0和UML 1.1,并作為向OMG(對象管理組織)申請成為建模語言規范的提案;第三階段是在OMG控制下的修訂與改進,出臺UML1.1作為建模語言規范;第四階段是做出重大修訂后于2003年推出UML2.0,此時UML得到了廣泛認可和使用。UML是許多人共同努力的結果,是集體智慧的結晶。 2. UML的特點 統一建模語言UML的特點如下。 (1) 易于使用,表達能力強,能夠進行可視化建模。 (2) 與具體的軟件開發過程無關,可應用于任何軟件開發的過程。 (3) 使用簡單、可擴展。擴展無須對核心概念進行修改。 (4) 為面向對象的設計和開發過程中涌現出的高級概念(例如協作、框架、組件)提供支持。 (5) 吸收當代*好的軟件工程實踐經驗。 (6) 工具可以升級,具有廣闊的適用性和可用性。 (7) 有利于面向對象工具的市場成長。 3. UML概念的范圍 UML概念的范圍可以劃分為以下八個方面。 (1) 系統需求:又稱用例視圖,它是從外部用戶的角度來描述系統的行為,它將系統功能劃分為對用戶有意義的事務,這些事務被稱為用例,用戶被稱為執行者,用例視圖也就是描述活動者在各個用例中的參與情況,它指導所有的行為視圖。 (2) 靜態結構:又稱靜態視圖,定義各種事物的內部特征和相互之間的關系,應用概念建模成類,類描述事物的屬性和操作,類之間可以存在不同的關系,比如泛化(繼承)、關聯和依賴等。靜態視圖表示成類圖,靜態視圖在某一時刻的快照稱為對象圖。 (3) 動態行為:使用狀態機視圖或活動視圖來表示系統對象的動態行為。其中的狀態機視圖,通過對每個類的對象的生命周期進行建模,描述單個對象在時間上的動態行為和移動狀態。狀態機是由狀態和遷移組成的圖,狀態機通常附屬于類,描述類實例對接受事件的響應。活動視圖是利用狀態機對運算和工作流進行建模的特殊形式。活動視圖的狀態代表了運算執行的狀態,而非一般對象的狀態,活動視圖和流程圖很相似,不同之處是活動視圖支持并發行為。 (4) 交互行為:又稱交互視圖,它通過對象間協作來進行建模,協作具有結構和行為兩個方面,結構包含一系列角色和關系,行為包含綁定于角色對象間的一系列交換的消息等,這些消息在協作中稱為交互,消息序列可用兩種圖來表示:順序圖(重點在消息的時間順序)和協作圖(重點在交換消息的對象間的關系)。 (5) 物理實現:又稱物理視圖,許多系統模型獨立于*終的實現,在實現方面,必須充分考慮系統的重用性。UML有兩種視圖來表示系統的實現,分別是實現視圖和部署視圖,實現視圖將可重用的系統片段打包成組件,部署視圖描述系統運行時資源的物理分布情況。 (6) 各種視圖之間的關系:靜態視圖(類圖、對象圖)和物理視圖(實現視圖、部署視圖)是描述系統的靜態結構的,用例視圖是描述系統的外部視圖的,活動視圖是描述系統的外部/內部視圖結構的,交互視圖(順序圖、協作圖)是描述系統的內部視圖結構的,而狀態機視圖描述單個類的動態行為等。 (7) 模型組織:任何大系統都必須劃分為較小的單元,以使人們能在某一時刻只接觸有限的信息,而不影響團隊間的并行工作。模型是利用包和包的依賴來進行管理的。包是UML模型中通用的層次組織結構,包上的依賴總結了包內容的依賴關系。 (8) 擴展機制:UML能滿足絕大部分系統建模的需要,但任何語言都不是萬能的,它必須考慮一定的擴展機制,UML的擴展機制包括約束、標簽值和原型等。這些擴展機制可以用來為特定領域剪裁UML的配置,使得設計人員根據自身需要來選取建模語言。 在面向對象的系統開發過程中,每個階段都要建造不同的模型。需求分析階段建造的模型用來捕獲系統需求信息;設計階段的模型是分析模型的擴充,為實現階段作指導性和技術性的解決方案;實現階段的模型是真正的源代碼及編譯后的組件;發布階段是描述系統物理上的架構等。 4. UML的內容 統一建模語言UML包含三方面的內容 (1) UML基本圖素:它是構成UML模型圖的基本元素。 (2) UML模型圖:它是由UML基本圖素按照UML建模規則構成的若干種圖。 (3) UML建模規則:UML模型圖必須按特定的規則組合,從而構成一個有機的、完整的UML模型圖。 一個模型必須首先定義各種事物的內部特征和相互之間的關系,下面詳細介紹UML的模型圖素。 1) 基本圖素--角色 角色是與系統、子系統或類交互的外部人員、進程或事務,符號如圖2-1所示。在運行時,具體人員會充當系統的多個執行者,不同用戶可能會成為一個執行者。 2) 基本圖素--用例 用例是系統提供的外部可感知的功能單元,用例的目的是定義清晰的系統行為,但不解釋系統的內部結構。 用例可以與角色關聯,也可以參與其他的多種關系,比如擴展、泛化和包含等關系。 用例用橢圓來表示,符號如圖2-2所示,用例名標在橢圓的下方或內部,用實線與自身通信的角色相連。 3) 基本圖素--系統 系統也叫作系統邊界,用于界定系統功能范圍。它用一個矩形框表示,符號如圖2-3所示。描述該系統功能的用例都置于其中,而描述的內容與系統交互的角色都置于其外。 注:系統(邊界)常常省略不畫。
- >
【精裝繪本】畫給孩子的中國神話
- >
伯納黛特,你要去哪(2021新版)
- >
我與地壇
- >
名家帶你讀魯迅:朝花夕拾
- >
上帝之肋:男人的真實旅程
- >
伊索寓言-世界文學名著典藏-全譯本
- >
自卑與超越
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)