軟件工程總結
軟件工程的定義:軟件工程是將系統化的,規范化的,可度量的方法應用于軟件的開發,運行和維護過程,即將工程化應用于軟件中的方法的研究。
軟件工程的定義2:開發運行,維護和修復軟件的工程方法。
軟檢策略思想:軟件復用,分而治之,優化折中。
軟件的生命周期:軟件生命周期是指一個計算機軟件從功能確定,設計,到開發成功投入使用,并在使用中不斷地修改,增補和完善,直到停止該軟件使用的全過程。
它包括制定計劃(可行性與計劃研究),需求分析,設計,程序編碼(實現),測試及運行維護6個階段。
軟件開發模型:瀑布模型,快速原始模型,增量模型,螺旋模型,噴泉模型,組件復用模型。
軟件開發過程:(1)定義;(2)開發;(3)驗證;(4)維護。
軟件開發的基本方法:傳統的結構化方法,面向對象的方法。
可行性研究的主要任務:
可行性研究的主要任務不是具體解決系統中的問題,而是以最小的代價在盡可能短的時間內確定問題是否值得解決,是否能夠解決。
可行性研究主要包括以下幾個方面:1,技術可行性(風險分析,資源分析和技術分析);2,經濟可行性(成本-效益分析);3,社會可行性(社會可行性是指開發后的系統能否得到社會的認可)
系統模型:物理(框圖),邏輯(流程圖);
系統流程圖在可行性分析階段使用。
成本—效益分析:
成本—效益分析的目的是從經濟角度來評價開發一個新的軟件項目是否可行。
系統的成本包括系統的開發陳本與運營成本。
系統成本包括:(1)硬件成本;(2)系統軟件成本;(3)軟件開發成本;(4)施工成本;(5)用戶培訓費用;(6)不可預見費用。
系統的運營成本是指發生在軟件生命周期內維持系統運行的費用,以每年的花費量計算。
它包括:(1)人員費用;(2)網路使用費用;(3)維修費用;(4)消耗品費用。
需求分析的任務是理解和表達用戶的需求,描述軟件的功能和性能,確定軟件設計的限制和軟件同其他系統元素的借口細節,定義軟件的其他有效性需求。
數據流圖在需求分析階段
er模型包含“實體”,“聯系”和“屬性”三個階段。
在er圖中用矩形方框代表實體
在er圖中用菱形方框代表聯系。
在er圖中用橢圓或圓角矩形表示屬性。
層次框圖是用樹形結構的一系列多層次的矩形框描述數據的層次結構。
軟件設計的原則:模塊化,抽象化,信息隱蔽,模塊獨立。
模塊化是指解決一個復雜問退時自頂向下逐層把軟件系統劃分為若干模型的過程。
抽象化是指認識復雜現象過程中使用的思維工具,即抽出事物本質的,共同的特性而暫不考慮它的細節,不考慮其它因素。
抽象化和逐步求精,模塊化的概念是一致的。
模塊獨立性的概念是模塊化,抽象化和信息隱蔽的直接產物。
模塊獨立性可用兩個定性標準來度量:內聚性和耦合性
內聚性:又稱塊內聯系,是指模塊的功能強度的度量,即一個模塊內部各個元素彼此結合的緊密程度的度量。
耦合性:又稱塊間聯系,是指軟件系統結構中各模塊間相互聯系緊密程度的一種度量。
偶然內聚:這種模塊內各部分之間沒有有意義的關系或者關系很松散。
邏輯內聚:這種模塊把幾種相關的功能組合在一起,每次被調用時,根據傳送給模塊的控制型參數來確定應執行的功能。
時間內聚:這種模塊大多為多功能模塊,但要求模塊的各個功能必須在同一時間段執行。
工程內聚:使用流程圖作為工具設計程序的時候,通過流程圖來確定模塊劃分,把流程圖中的某一部分劃出組成模塊,就是過程內聚模塊。
通信內聚:一個模塊內各功能部分都使用了相同的輸入數據,或產生了相同的輸出數據。
順序內聚:一個模塊中各個部分都是完成一項具體的功能而協同工作,緊密聯系,不可分割的。
內容耦合:如果一個模塊直接訪問另一個模塊內的內部數據,或一個模塊不能通過正常入口轉到另一個模塊內部,或兩個模塊有一部分程序代碼重疊(在匯編語言程序中可能出現),或者一個模塊有多個入口,則兩個模塊之間就發生了內容耦合。它是最高程度的耦合,應該避免。
公共耦合:如果一組模塊都訪問同一個公共數據環境,則它們之間的耦合稱為公共耦合。
外部耦合:一組模塊都訪問同一全局簡單變量而不是同一全局數據結構,而且不是通過參數表傳遞該全局變量的信息,則稱之為外部耦合。
控制耦合:如果一個模塊把控制信息傳遞給另一個模塊,對其功能進行控制,這種耦合稱為控制耦合。
標記耦合:如果一組模塊通過參數表傳遞記錄信息,這組模塊就是標記耦合。事實上這組模塊共享了某一數據結構的子結構,而不是簡單變量。