軟體工程總結

軟體工程的定義:軟體工程是將系統化的,規範化的,可度量的方法套用於軟體的開發,運行和維護過程,即將工程化套用於軟體中的方法的研究。

軟體工程的定義2:開發運行,維護和修復軟體的工程方法。

軟檢策略思想:軟體復用,分而治之,最佳化折中。

軟體的生命周期:軟體生命周期是指一個計算機軟體從功能確定,設計,到開發成功投入使用,並在使用中不斷地修改,增補和完善,直到停止該軟體使用的全過程。

它包括制定計畫(可行性與計畫研究),需求分析,設計,程式編碼(實現),測試及運行維護6個階段。

軟體開發模型:瀑布模型,快速原始模型,增量模型,螺鏇模型,噴泉模型,組件復用模型。

軟體開發過程:(1)定義;(2)開發;(3)驗證;(4)維護。

軟體開發的基本方法:傳統的結構化方法,面向對象的方法。

可行性研究的主要任務:

可行性研究的主要任務不是具體解決系統中的問題,而是以最小的代價在儘可能短的時間內確定問題是否值得解決,是否能夠解決。

可行性研究主要包括以下幾個方面:1,技術可行性(風險分析,資源分析和技術分析);2,經濟可行性(成本-效益分析);3,社會可行性(社會可行性是指開發後的系統能否得到社會的認可)

系統模型:物理(框圖),邏輯(流程圖);

系統流程圖在可行性分析階段使用。

成本—效益分析:

成本—效益分析的目的是從經濟角度來評價開發一個新的軟體項目是否可行。

系統的成本包括系統的開發陳本與運營成本。

系統成本包括:(1)硬體成本;(2)系統軟體成本;(3)軟體開發成本;(4)施工成本;(5)用戶培訓費用;(6)不可預見費用。

系統的運營成本是指發生在軟體生命周期內維持系統運行的費用,以每年的花費量計算。

它包括:(1)人員費用;(2)網路使用費用;(3)維修費用;(4)消耗品費用。

需求分析的任務是理解和表達用戶的需求,描述軟體的功能和性能,確定軟體設計的限制和軟體同其他系統元素的藉口細節,定義軟體的其他有效性需求。

數據流圖在需求分析階段

er模型包含“實體”,“聯繫”和“屬性”三個階段。

在er圖中用矩形方框代表實體

在er圖中用菱形方框代表聯繫。

在er圖中用橢圓或圓角矩形表示屬性。

層次框圖是用樹形結構的一系列多層次的矩形框描述數據的層次結構。

軟體設計的原則:模組化,抽象化,信息隱蔽,模組獨立。

模組化是指解決一個複雜問退時自頂向下逐層把軟體系統劃分為若干模型的過程。

抽象化是指認識複雜現象過程中使用的思維工具,即抽出事物本質的,共同的特性而暫不考慮它的細節,不考慮其它因素。

抽象化和逐步求精,模組化的概念是一致的。

模組獨立性的概念是模組化,抽象化和信息隱蔽的直接產物。

模組獨立性可用兩個定性標準來度量:內聚性和耦合性

內聚性:又稱塊內聯繫,是指模組的功能強度的度量,即一個模組內部各個元素彼此結合的緊密程度的度量。

耦合性:又稱塊間聯繫,是指軟體系統結構中各模組間相互聯繫緊密程度的一種度量。

偶然內聚:這種模組內各部分之間沒有有意義的關係或者關係很鬆散。

邏輯內聚:這種模組把幾種相關的功能組合在一起,每次被調用時,根據傳送給模組的控制型參數來確定應執行的功能。

時間內聚:這種模組大多為多功能模組,但要求模組的各個功能必須在同一時間段執行。

工程內聚:使用流程圖作為工具設計程式的時候,通過流程圖來確定模組劃分,把流程圖中的某一部分劃出組成模組,就是過程內聚模組。

通信內聚:一個模組內各功能部分都使用了相同的輸入數據,或產生了相同的輸出數據。

順序內聚:一個模組中各個部分都是完成一項具體的功能而協同工作,緊密聯繫,不可分割的。

內容耦合:如果一個模組直接訪問另一個模組內的內部數據,或一個模組不能通過正常入口轉到另一個模組內部,或兩個模組有一部分程式代碼重疊(在彙編語言程式中可能出現),或者一個模組有多個入口,則兩個模組之間就發生了內容耦合。它是最高程度的耦合,應該避免。

公共耦合:如果一組模組都訪問同一個公共數據環境,則它們之間的耦合稱為公共耦合。

外部耦合:一組模組都訪問同一全局簡單變數而不是同一全局數據結構,而且不是通過參數表傳遞該全局變數的信息,則稱之為外部耦合。

控制耦合:如果一個模組把控制信息傳遞給另一個模組,對其功能進行控制,這種耦合稱為控制耦合。

標記耦合:如果一組模組通過參數表傳遞記錄信息,這組模組就是標記耦合。事實上這組模組共享了某一數據結構的子結構,而不是簡單變數。