系列索引: 《軟件工程與實踐》第三版 軟件工程課程知識梳理
目錄
本章重難點:
● 掌握軟件工程新技術的概念、特點及應用
● 掌握能力成熟度集成模型CMMI及評估方法
● 理解IBM Rational、微軟MSF、敏捷等現代軟件工程體系
● 瞭解形式化方法及其軟件工程體系
9.1 軟件工程新技術
9.1.1 面向服務的計算
1.面向服務的計算概述
以Web服務爲中心的新的計算模式則稱爲面向服務的計算,或簡稱服務計算,以服務爲基本單元。
構件技術提供了構件級的複用,使軟件的生產可以採用“搭積木”的方式進行,有效縮短了軟件的開發週期、降低了開發成本。
服務計算主要用途:
①構建需要跨平臺的異構軟件;
②實現跨平臺、異構軟件間的互操作及快速集成;
③以服務組合的方式支持業務敏捷性。
2. 面向服務的架構和設計原則
軟件架構 (Software Architecture) 是軟件系統的藍圖,描述了構成軟件系統的抽象構件及構件之間的關係。
面向服務的架構 (Service-Oriented Architecture, SOA) 即是採用面向服務計算模式進行軟件開發的軟件架構,代表了一種開放的、松耦合的、可組合的軟件設計範型。
SOC軟件開發包含兩個方面:服務提供者進行Web服務開發併發布、服務請求者查找服務併發出Web服務請求。
Web服務開發包括3個階段:開發、部署和發佈
從調用方式看,服務調用可以分爲兩種:靜態調用和動態調用。
從服務組裝方式看,服務請求可以分爲:
① 在程序中直接調用;
② 通過服務組合進行調用
服務組合是實現SOA的重要技術基礎
9.1.2雲計算技術
1. 雲計算技術概述
雲計算是一種計算模型,一種按使用量付費的彈性商業模式,一種一體化的共享服務平臺
虛擬化技術是實現雲計算最重要的技術基石,IT資源的邏輯抽象和統一表示的實現,使雲計算平臺可以提供彈性的虛擬化資源並可計量
並行計算和分佈式計算技術讓雲計算具有在大規模機器羣上實現快速的大數據處理的能力。
IaaS(基礎設計及服務)共享應用平臺和數據庫,SaaS(軟件及服務)過網絡平臺服務進行開發與託管,促進了雲計算商業模式趨於成熟。
雲計算的主要特點:
雲計算基礎架構層是雲計算平臺的基礎,也是核心
B/C模式
C/S (Client/Server)模式,引入了服務器端和分層的思想,使系統可以分層管理,簡化了軟件開發、降低了維護成本並增強了可擴展性;而開發和管理工作向服務器端轉移,使分佈的數據處理成爲可能。
隨着互聯網的發展及HTML的出現,Web發展爲主流的信息交互方式,更多的信息獲取與分享通過瀏覽器進行,即B/S (Browser/Server)模式。
B/S模式在互聯網環境下,其處理速度和數據安全性不如C/S模式。
9.1.3 大數據技術
沒有大數據,就不需要雲計算?NO
大數據核心技術包括: 分佈式存儲和分佈式並行計算
9.1.4 人工智能技術概述
核心特徵是 獲得知識的能力,以及有效處理不確定性和概率信息的能力。
其研究內容包括:如何用計算機去模擬、延伸和擴展人的智能;如何使計算機變得更加聰明、更加能幹;如何設計和製造具有更高智能水平的計算機的理論、方法、技術及應用系統。
綜合來講主要研究: 1. 機器思維 2. 機器感知 3. 機器行爲
人工智能技術的幾個典型的研究和應用。
(1)自然語言理解。(2)數據庫的智能檢索。(3)專家系統。(4)機器博弈。
9.2 能力成熟度集成模型
9.2.1 CMMI概述
CMMI(Capacity Maturity Model Integrated,能力成熟度集成模型)是美國國防部規定的一種衡量軟件企業或組織開發能力的度量標準。
CMMI有兩種表示方法: (1) 連續模型。 (2) 階段模型。
9.2.2 CMMI能力成熟度級別
9.3 軟件工程新體系
9.3.1 IBM Rational軟件工程體系、
RUP準則
IBM Rational將軟件工程最佳實踐概括爲統一過程RUP,遵循6條準則:
(1) 重視架構。(2)迭代開發。 (3) 用例驅動。 (4) 圖形建模。(5) 逐步求精。 (6) 控制變更。
Rational團隊
每個角色都規定了具體的任務、業務範圍和職責
軟件架構視圖與交付平臺
RUP採用 4+1視圖方法實現軟件架構
Rational 軟件交付平臺下圖所示,從軟件工程的角度針對軟件開發的各個方面提供全方位的支持。
9.3.2 微軟軟件工程體系
MSF過程模型
將瀑布模型中基於里程碑的規劃優勢與螺旋模型中增量迭代的長處結合在一起,形成構思、計劃、開發 、穩定和發佈5個階段迭代改進、螺旋上升的流程
9.3.3 敏捷軟件工程體系
敏捷宣言及原則
極限編程實踐
極限編程是敏捷軟件工程體系中最著名且最重要的一個方法。主要由以下一些互相依賴的簡單實踐組成,其實踐構成了敏捷過程的主要方面:
(1) 團隊組織。 (2) 計劃策略 (3) 客戶測試。 (4) 速度可持續。
*9.4 形式化方法及其軟件工程體系
9.4.1 形式化方法
軟件工程中的形式化方法是指將軟件工程建立在數學概念和語言的基礎上,以使語義準確、清晰且無歧義,並可用自動化或半自動化的工具對開發過程各階段的成果進行檢查和分析。
形式化開發過程
(1) 階段1:獲取抽象模型。 (2) 階段2:獲取具體模型。 (3) 階段3:獲取可執行代碼。
9.4.2 淨室軟件工程體系
淨室軟件工程體系採用形式化方法,主要基於數學和統計學,面向工作組,追求以經濟的方式生產高質量軟件。
9.5 本章小結