軟體工程小記——概述
因為快期末考試了,這裡整理了一下軟體工程這門課的一些知識點。
其實整理這些軟體工程的知識點並不只是為了考試,我真正的目的是讓自己真正學到一些東西。
1.軟體工程採用:系統工程學和管理學。
2.軟體工程的基本目標:高質量和高生產力。
高質量:最大限度地滿足客戶需求、幫助客戶獲得成功。
高生產力:以最小的成本獲得最好的收益。
3.軟體工程的產生:軟體危機。
4.軟體生命週期3個時期:軟體定義、軟體開發、執行維護。
5.軟體開發的兩種思想和方法:面向過程和麵向物件。
6.軟體工程的定義:軟體工程是開發、執行、維護和修復軟體的系統方法。
7.軟體工程的7個基本原理:
8.軟體工程學的發展分為4個時期:
程式設計時期、軟體時期、軟體工程時期、後軟體工程時期。
9.為了解決軟體危機,既要有技術措施(包括方法和工具),又要有必要的組織管理措施。
10.軟體工程需要從管理和技術兩方面開發和維護軟體。
11.軟體工程發展的四個重要階段:
第一代:傳統的軟體工程
第二代:物件工程
第三代:過程工程
第四代:構件工程
第三節 軟體開發技術
1.軟體開發技術包括:
軟體生存期模型、軟體開發方法、軟體開發工具和環境、軟體管理技術
2.軟體生存期模型(軟體生命週期模型):描述軟體開發過程中各種活動如何執行的模型。
2.1瀑布模型:也稱軟體生存週期模型或線性順序過程模型
包括:問題定義:
可行性研究:
需求分析:
概要設計:
詳細設計:
編碼:
測試和維護:
2.2增量模型;也稱漸增模型
該模型融合了線性順序模型的基本成分和原型實現模型的迭代特徵。
2.3螺旋模型:
螺旋模型是一個演化軟體過程模型,它將原型實現的迭代特徵和線性順序模型中控制
的和系統化的方面結合起來,是的軟體的增量版本的快速開發稱為可能。
螺旋模型將瀑布模型和增量模型結合起來,並加入了風險分析。
2.4噴泉模型;噴泉模型是一種以使用者需求為動力,以物件為驅動的模型,主要採用物件技術的軟體
開發專案。
該模型認為軟體開發過程自下而上週期的各階段是相互迭代和無間隙的特性。
相互迭代即軟體的某個部分常常被重複工作多次,相關物件在每次迭代中隨之加入漸進的軟體成分。
無間隙是指在各項活動之間無明顯邊界。
2.5變換模型:是基於形式化規格說明語言及程式變換的軟體開發模型。
主要用於軟體的形式化開發方法,對形式化的軟體規格說明進行一系列自動或半自動的程式變換,
最後對映成系統的目標程式。
2.6原型化模型:
3.軟體開發方法:面向過程的開發方法、面向物件的開發方法、基於構件的開發方法。
4.典型的軟體開發方法:
4.1 結構化開發方法:面向資料流的開發方法,是現有的軟體開發方法中最成熟、應用最廣泛的方法,特點是快速、自然和方便。
結構化開發方法總的指導思想是:自頂向下、逐步求精。
以資料流、資料的封閉性準成來逐層分解。
結構化開發方法的基本原則是功能的分解和抽象。
4.2 Jackson方法:
面向資料結構的設計方法,強調程式結構與問題結構相對應。
4.3 原型化方法:又稱速成原型法,反映系統的最終系統的部分重要特性。
原型化方法的基本思想是花費少量代價建立一個可執行的系統,使使用者及早獲得學習的機會。
強調軟體開發人員與使用者的不斷互動,通過原型的演進不斷適應使用者任務改變的需求。
4.4 HIPO方法:
按功能層次結構分析法。又稱HIPO圖。
HIPO圖是以功能、功能完備性準側逐層分解的,由直觀目錄表(H圖)、概要HIPO圖、詳細IPO圖組成。
5.軟體構件:以分散式物件為基礎的構件實現技術日趨成熟。