




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上第1章 、軟件工程學概述軟件危機:是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。軟件危機包含下述兩個方面的問題:1.如何開發軟件,以滿足對軟件日益增長的需求。2. 如何維護數量不斷膨脹的已有軟件。具體的說,軟件危機主要有以下一些典型表現:1.對軟件開發成本的進度的估計常常很不準確。2.用戶對“已完成的”軟件系統不滿意的現象經常發生3.軟件產品的質量往往靠不住。4.軟件常常是不可維護的。5.軟件通常沒有適當的文檔材料。6.軟件成本在計算機系統總成本中所占的比例逐年上升。7.軟件開發生產率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢。軟件生命周期:一個軟
2、件從定義、開發、使用和維護,知道最終被廢棄,要經歷一個漫長的時期,通常把軟件經歷的這個漫長的時期稱為生命周期。軟件配置:程序、文檔和數據。軟件工程學的一個重要的目標:就是提高軟件的可維護性,減少軟件維護的代價。軟件:是程序、數據及相關文檔的集合。程序:是能夠完成預定功能和性能的可執行的指令序列。數據:是使程序能夠適當地處理信息的數據結構。文檔:是開發、使用和維護程序所需要的圖文資料。軟件工程:指導計算機軟件開發和維護的一門工程學科。軟件工程具有下屬的本質特性:1.軟件工程關注于大型程序的構造。2.軟件工程的中心課題是控制復雜性。3.軟件經常變化。4.開發軟件的效率非常重要。5.和諧地合作是開發
3、軟件的關鍵。6.軟件必須有效地支持它的用戶。7.在軟件工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創造產品。軟件工程的7條基本原理:1.用分階段的生命周期計劃嚴格管理。2.堅持進行階段評審。3.實行嚴格的產品控制4.采用現代程序設計技術。5.結構應能清楚的審查。6.開發小組的人員應該少而精。7.承認不斷改進軟件工程實踐的必要性。軟件工程:包括技術和管理兩方面的內容,是技術與管理緊密結合所形成的工程學科。通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱為泛型。軟件工程方法學(包括傳統方法學、面向對象方法學)包含三個要素:方法、工具和過程。方法:是完成軟件開發
4、的各項任務的技術方法,回答“怎樣做”的問題。工具:是為運用方法而提供的自動的或半自動的軟件工程支撐環境。工程:是為了獲得高質量的軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。面向對象方法學:把數據和行為看成是同等重要的,它是一種以數據為主線,把數據和對數據的操作緊密地結合起來的方法。面向對象方法學具有下述四個要點:1.把對象作為融合了數據及在數據上的操作行為的統一的軟件構件。2. 把所有對象都劃分成類。3. 按照父類與子類的關系,把若干個相關類組成一個層次結構的系統。4. 對象彼此間僅能通過發送消息互相聯系。面向對象方法學的優點:降低了軟件產品的復雜性,提高了軟件的可理解性
5、,簡化了軟件的開發和維護工作。軟件生命周期:軟件定義、軟件開發和運行維護。軟件定義:問題定義、可行性研究和需求分析。軟件開發:總體設計,詳細設計,編碼和單元測試,綜合測試。1.問題定義:問題定義階段必須回答的關鍵問題是:“要解決的問題是什么?”。2.可行性研究:這個階段回答的關鍵問題是:“對于上一個階段所確定的問題有行得通的解決辦法嗎?”3.需求分析:確定目標系統必須具備哪些功能。4.總體設計:這個階段必須回答的關鍵問題是:“概括地說,應該怎樣實現目標系統?”總體設計又稱為概要設計。5.詳細設計:這個階段應回答的關鍵問題是:“應該怎樣具體地實現這個系統呢?”6.編碼和單元測試:這個階段的關鍵任
6、務是寫出正確的容易理解、容易維護的程序模塊。7.綜合測試:這個階段的關鍵任務是通過各種類型的測試使軟件達到預定的要求。8.軟件維護:關鍵任務是通過各種必要的維護活動使系統持久地滿足用戶的需要。軟件工程過程:是為了獲得高質量軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。生命周期模型:規定了把生命周期劃分成哪些階段及各個階段的執行順序,因此,也稱為過程模型。生命周期模型包括:瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、瀑布模型的特點:1.階段間具有順序性和依賴性。 2.推遲實現的觀點。3.質量保證的觀點。快速原型:是快速建立起來的可以在計算機上運行的程序,它所能完成的
7、功能往往是最終產品能完成功能的一個子集。增量模型:它分批地逐步向用戶提交產品,整個軟件產品被分解成許多個增量構件,開發人員一個構件一個構件地向用戶提交產品。螺旋模型:基本思想是使用原型及其他方法來盡量降低風險。理解這種模型的一個簡單方法,是把它看作在每個階段之前都增加了風險分析過程的快速原型模型。(使用于內部開發的大規模軟件項目)噴泉模型:是典型的面向對象的軟件過程模型之一。面向對象方法學的四個要點: 面向對象方法 = 對象 + 類 + 繼承 + 用消息通信第2章 、可行性研究可行性研究的目的:就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。必須記住,可行性研究的目的不是解決問題,而是
8、確定問題是否值得去解決。對每種解法都應該仔細研究它的可行性,一般說來,至少應該從下述3個方面研究每種解法的可行性:1) 技術可行性 2)經濟可行性 3)操作可行性可行性研究最根本的任務:是對以后的行動方針提出建議。典型的可行性研究有下述一些步驟:1.復查系統規模和目標。2.研究目前正在使用的系統3.導出新系統的高層邏輯模型4.進一步定義問題 5.導出和評價供選擇的解法 6.推薦行動方針 7.草擬開發計劃 8.書寫文檔提交審查。系統流程圖:是概括性地描繪物理系統的傳統工具,它的基本思想是用圖形符號以黑盒子形式描繪組成系統的每個部件。系統流程圖表達的是數據在系統各部件之間流動的情況,而不是對數據進
9、行加工處理的控制過程,因此盡管系統流程圖的某些符號和程序流程圖的符號形式相同,但是它卻是物理數據流圖而不是程序流程圖。數據流圖:是一種圖形化技術,它描繪信息流和數據從輸入移動到輸出的過程中所經受的變幻。數據存儲是處于靜止狀態的數據,數據流是處于運動中的數據。數據流圖的基本要點:是描繪“做什么”,而不考慮“怎么做”。為數據流命名:1)名字應代表整個數據流的內容,而不是僅僅反映它的某些成分。 2)不要使用空洞的、缺乏具體含義的名字。 3)如果在為某個數據流起名字時遇到了困難,則很可能是因為對數據流圖分解不恰當造成的,應該試 試重新分解,看是否能克服這個困難。畫數據流圖的基本目的是利用它作為交流通信
10、的工具。數據字典:是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。數據字典的作用:在軟件分析和設計的過程中給人提供關于數據的描述信息。系統的邏輯模型:由數據流圖和數據字典共同構成,沒有數據字典,數據流圖就不嚴格,然而沒有數據流圖,數據字典也難于發揮作用。數據字典應該由對下列4類元素的定義組成:數據流、數據流分量、數據存儲和處理。由數據元素組成數據的方式只有下述3種基本類型:順序、選擇、重復和可選。數據字典最主要的用途:就是作為分析階段的工具。成本/效益分析的目標:正式要從經濟角度分析開發一個特定的新系統是否劃算,從而幫助客戶組織的負責人正確地做出是否投資于這項開發工程的決
11、定。系統流程圖:實質上是物理流程圖,它描繪組成系統的主要物理元素以及信息在這些元素間流動和處理的情況。第3章 、需求分析需求分析的任務是:準確地回答“系統必須做什么”這個問題。需求分析方法應遵循的準則:1.必須理解并描述問題的信息域,根據這條準則應該建立數據模型。 2.必須定義軟件應完成的功能,這條準則要求建立功能模型。 3.必須描述作為外部事件結果的軟件行為,這條準則要求建立行為模型。 4.必須對描述信息、功能和行為的模型進行分解,用層次的方式展示細節。通常對軟件系統有以下幾方面的綜合要求:1.功能需求 2.性能需求 3.可靠性和可用性需求 4.出錯處理需求 5.接口需求6.約束 7.逆向需
12、求 8.將來可能提出的要求軟件系統本質上是信息處理系統,而任何信息處理系統的基本功能都是把輸入數據轉變成需要的輸出信息。需求分析的目標之一:就是把數據流和數據存儲定義到元素級。快速建立軟件原型是最準確、最有效、最強大的需求分析技術。快速原型就是快速建立起來的旨在演示目標系統主要功能的可運行的程序。快速原型應該具備的特性:1.快速 2.容易修改模型:就是為了理解事務而對事務做出的一種抽象,是對事務的一種無歧義的書面描述。通常,模型由一組圖形符號和組織這些符號的規則組成。需求分析過程應該建立三種模型:數據模型(實體-聯系圖)、功能模型(數據流圖)和行為模型(狀態轉換圖)。概念數據模型:是一種面向問
13、題的數據模型,是按照用戶的觀點對數據建立的模型。它描述了從用戶角度看到的數據,它反應了用戶的現實環境,而且與在軟件系統中的實現方法無關。數據模型中包含3中相互關聯的信息:數據對象、數據對象的屬性及數據對象彼此間相互連接的關系。數據對象:是對軟件必須理解的復合信息的抽象。復合信息:是指具有一系列不同性質或屬性的事物,僅有單個值的事物不是數據對象。屬性:定義了數據對象的性質。聯系:數據對象彼此之間相互連接的方式稱為聯系,也稱為關系。聯系可分為以下三種類型:一對一,一對多和多對多。第一范式:每個屬性值都必須是原子值,即僅僅是一個簡單值而不含內部結構。第二范式:滿足第一范式條件,而且每個非關鍵字屬性都
14、由整個關鍵字決定。第三范式:符合第二范式的條件,每個非關鍵字屬性都僅由關鍵字決定,而且一個非關鍵字屬性不能僅僅是對另一個非關鍵字屬性的進一步描述。狀態轉換圖:通過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統的行為。事件:是在某個特定時刻發生的事情,它是對引起系統做動作或從一個狀態轉換到另一個狀態的外界事件的抽象。IPO圖:是輸入、處理、輸出圖的簡稱,能方便地描繪輸入數據、對數據的處理和輸出數據之間的關系。模塊:在程序中是數據說明、可執行語句等程序對象的集合,或者是單獨命名和編址的元素,在軟件的體系結構中,模塊是可組合、分解和更換的單元。第四章、形式化說明技術按照形式化的程度,可以把軟件工
15、程使用的方法劃分成:非形式化、半形式化和形式化3類形式化方法:是描述系統性質的基于數學的技術,也就是說,如果一種方法有堅實的數學基礎,那么它就是形式化的。矛盾:指一組相互沖突的陳述。二義性:是指讀者可以用不同方式理解的陳述。不完整性:可能是在系統規格說明中最常遇到的問題之一。形式化規格說明技術的優點:形式化的規格說明技術可以用數學方法研究、驗證。此外,形式化的規格說明消除了二義性,而且它鼓勵軟件開發工程過程的早期階段使用更嚴格的方法,從而可以減少差錯。第5章 、總體設計總體設計的基本目的:就是回答“概括地說,系統應該如何實現”這個問題,因此總體設計又稱為概要設計或者初步設計。總體設計的另一項重
16、要任務是:設計軟件的結構,也就是要確定系統中每個程序是由哪些模塊組成的,以及這些模塊相互間的關系。在詳細設計之前先進行總體設計的必要性:可以站在全局高度上,花較少成本,從較抽象的層次上分析對比多種可能的系統實現方案和軟件結構,從中選出最佳方案和最合理的軟件結構,從而用較低成本開發較高質量的軟件系統。總體設計過程通常由兩個主要階段組成:系統設計階段,確定系統的具體實現方案;結構設計階段,確定軟件結構。 典型的總體設計過程包括下述9個步驟:1.設想供選擇的方案 2.選取合理的方案 3.推薦最佳方案 4.功能分解 5.設計軟件結構 6.設計數據庫 7.制定測試計劃 8.書寫文檔 9.審查和復審模塊:
17、是由邊界元素限定的相鄰程序元素的序列,而且有一個總體標識符代表它。模塊化:就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來夠成一個整體,可以完成指定的功能滿足用戶的需求。抽象:抽出事物的本質特性而暫時不考慮它們的細節。逐步求精:為了能集中精力解決主要問題而盡量推遲對問題細節的考慮。為什么模塊獨立很重要呢?主要有兩條理由:第一,有效的模塊化的軟件比較容易開發出來。第二,獨立的模塊比較容易測試和維護。模塊的獨立程度可以由兩個定性標準度量,這兩個標準分別稱為內聚和耦合。耦合:是對一個軟件結構內不同模塊之間互連程度的度量。耦合強弱取決于模塊間接口的復雜程度,進入或
18、訪問一個模塊的點,以及通過接口的數據。數據耦合:如果兩個模塊彼此間通過參數交換信息,而且交換的信息僅僅是數據,那么這種耦合稱為數據耦合。控制耦合:如果傳遞的信息中有控制信息,則這種耦合稱為控制耦合。數據耦合是低耦合。控制耦合是中等程度的耦合,它增加了系統的復雜程度。特征耦合:當把整個數據結構作為參數傳遞而被調用的模塊只需要使用其中一部分數據元素時,就出現了特征耦合。最高程度的耦合是內容耦合,如果出現下列情況之一,兩個模塊間就發生了內容耦合。1. 一個模塊訪問另一個模塊的內部數據。2. 一個模塊不通過正常入口而轉到另一個模塊的內部。3. 兩個模塊有一部分程序代碼重疊。4. 一個模塊有多個入口。應
19、該采用下述設計原則:盡量使用數據耦合,少用控制耦合和特征耦合,限制公共環境耦合的范圍,完全不用內容耦合。內聚:標志著一個模塊內各個元素彼此結合的緊密程度,它是信息隱藏和局部化概念的自然擴展。低內聚有如下幾類:偶然內聚:如果一個模塊完成一組任務,這些任務彼此間即使有關系,關系也是很松散的,就叫做偶然內聚。邏輯內聚:如果一個模塊完成的任務在邏輯上屬于相同或相似的一類,則稱為邏輯內聚。時間內聚:如果一個模塊包含的任務必須在同一段時間內執行,就叫時間內聚。中內聚主要有以下兩類:過程內聚:如果一個模塊內的處理元素時相關的,而且必須以特定次序執行,則稱為過程內聚。通信內聚:如果模塊中所有元素都使用同一個輸
20、入數據和產生同一個輸出數據,則稱為通信內聚。高內聚也有兩類:順序內聚:如果一個模塊內的處理元素和同一個功能密切相關,而且這些處理必須順序執行,則稱為順序內聚。功能內聚:如果模塊內所有處理元素屬于一個整體,完成一個單一的功能,則稱為功能內聚。功能內聚是最高程度的內聚。面向數據流的設計方法的目標:是給出設計軟件結構的一個系統化的途徑。信息流有下述兩種類型:變換流和事務流。第六章、詳細設計詳細設計的根本目標:是確定應該怎樣具體地實現所要求的系統,也就是說,經過這個階段的設計工作,應該得出對目標系統的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設計語言書寫的程序。詳細設計階段的任務還不是
21、具體地編寫程序,而是要設計出程序的“藍圖”,以后程序員將根據這個“藍圖”寫出實際的程序代碼。三種基本的控制結構:順序、選擇和循環。結構程序設計的經典定義如下所述:“如果一個程序的代碼塊僅僅通過順序、選擇和循環這三種基本控制結構進行連接,并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結構化的。”在設計人機界面的過程中,幾乎總會遇到下述4個問題:系統響應時間、用戶幫助設施、出錯信息處理和命令交互。系統響應時間是指:從用戶完成某個控制動作,到軟件給出預期響應之間的這段時間。系統響應時間有兩個重要屬性:長度和易變。3類人際界面設計指南:一般交互指南、信息顯示指南和數據輸入指南。描繪程序處理過程的
22、工具稱為過程設計的工具,它們可以分為圖形、表格和語言3類。圖形:程序流程圖、盒圖、PAD圖。表格:判定表、判定樹。語言:過程設計語言。面向數據結構的設計方法的最終目標是:得出對程序處理過程的描述。最著名的兩個面向數據結構的設計方法:Jockson和Warnier方法。Jockson方法的邏輯關系包括:順序、選擇和重復。程序復雜度的定量度量:McCabe方法和Halstead方法McCade方法:根據程序控制流的復雜程度定量度量程序的復雜程度,這樣度量出的結果稱為程序的環形復雜度。Halstead方法:是一個著名的方法,它根據程序中運算符和操作數的總數來度量程序的復雜程度。第七章、實現通常把編碼
23、和測試統稱為實現。所謂編碼:就是把軟件設計結果翻譯成用某種程序設計語言書寫的程序。測試的目的:就是在軟件投入生產性運行之前,盡可能多地發現軟件中的錯誤。軟件工程的根本目標:是開發出高質量的完全符合用戶需要的軟件,因此,通過測試發現錯誤之后還必須診斷并改正錯誤,這就是調試的目的。源程序代碼的邏輯簡明清晰、易讀易懂是好程序的一個重要標準,為了做到這一點,應該遵循下列規則:1.程序內部的文檔 2.數據說明 3.語句構造 4.輸入輸出 5.效率 程序內部的文檔:包括恰當的標識符、適當的注解和程序的視覺組織等。效率:主要指處理機時間和存儲器容量兩個方面。測試階段的根本目標是:盡可能多地發現并排除軟件中潛
24、藏的錯誤,最終把一個高質量的軟件系統交給用戶使用。軟件的目標或定義: 1)測試是為了發現程序中的錯誤而執行程序的過程。2) 好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案。3) 成功的測試是發現了至今為止尚未發現的錯誤的測試。測試的正確定義是“為了發現程序中的錯誤而執行程序的過程”。軟件測試的準則:1) 所有測試都應該能追溯到用戶需求。2) 應該遠在測試開始之前就制定出測試計劃。3) 把Pareto原理應用到軟件測試中。4) 應該從“小規模”測試開始,并逐步進行“大規模”測試。5) 窮舉測試是不可能的。6) 為了達到最佳的測試效果,應該由獨立的第三方從事測試工作。測試任何產品都有兩種
25、方法:黑盒測試(功能測試,在測試過程的早期進行):如果已經知道了產品應該具有的功能,可以通過測試來檢查是否每個功能都能正常使用。白盒測試(結構測試,主要用于測試過程的后期):如果知道產品的內部工作過程,可以通過測試來檢驗產品內部動作是否按照規格說明書的規定正常進行。設計白盒測試方案的技術主要有,邏輯覆蓋和控制結構測試;設計黑盒測試方案的技術主要有,等價劃分、邊界值分析和錯誤推測。大型軟件系統的測試過程基本上由下述幾個步驟組成:1.模塊測試:模塊測試的目的是保證每個模塊作為一個單元能正確運行,所以模塊測試通常又稱為單元測試。2.子系統測試:子系統測試是把經過單元測試的模塊放在一起形成一個子系統來
26、測試。模塊相互間的協調和通信是這個測試過程中的主要問題,因此,這個步驟著重測試模塊的接口。3.系統測試:是把經過測試的子系統裝配成一個完整的系統來測試。4.驗收測試:把軟件系統作為單一的實體進行測試,測試內容與系統測試基本類似,但是它是用戶積極參與下進行的,而且可能主要使用實際數據進行測試。驗收測試的目的是驗證系統確實能夠滿足用戶的需要,在這個測試步驟中發現的往往是系統需求說明書的錯誤。驗收測試也稱為確認測試。5.平行運行:就是同時運行新開發出來的系統和將被它取代的舊系統,以便比較新舊兩個系統的處理結果。單元測試集中檢測軟件設計的最小單元模塊。可以應用人工測試和計算機測試這樣兩種不同類型的測試
27、方法,完成單元測試工作。通常,單元測試主要使用白盒測試技術,而且對多個模塊的測試可以并行地進行。在單元測試期間著重從下述5個方面對模塊進行測試:1)模塊接口 2)局部數據結構 3)重要的執行通路 4)出錯處理通路 5)邊界條件集成測試:是測試和組裝軟件的系統化技術 ,主要目標是發現與接口有關的問題。由模塊組裝成程序時有兩種方法:1) 非漸增式測試方法:先分別測試每個模塊,再把所有模塊按設計要求放在一起結合成所要的程序。2) 漸增式測試:把下一個要測試的模塊同已經測試好的那些模塊結合起來進行測試,測試完以后再把下一個應該測試的模塊結合進來測試。當使用漸增方式把模塊結合到程序中去時,有自頂向下和自
28、底向上兩種集成策略。回歸測試:是指重新執行已經做過的測試的某個子集,以保證上述這些變化沒有帶來非預期的副作用。回歸測試就是用于保證由于調試或其他原因引起的變化,不會導致非預期的軟件行為或額外錯誤的測試活動。確認測試也稱為驗收測試,它的目標是驗證軟件的有效性。通常,驗證指的是保證軟件正確地實現了某個特定要求的一系列活動,而確認指的是為了保證軟件確實滿足了用戶需求而進行的一系列活動。軟件有效性的一個簡單定義是:如果軟件的功能和性能如同用戶所合理期待的那樣,軟件就是有效的。需求分析階段產生的軟件需求規格說明書,準確地描述了用戶對軟件的合理期望,因此是軟件有效性的標準,也是進行確認測試的基礎。確認測試
29、通常使用黑盒測試法。復查的目的是:保證軟件配置的所有成分都齊全,質量符合要求,文檔與程序完全一致,具有完成軟件維護所必須的細節,而且已經編好目錄。測試用例:把測試數據和預期的輸出結果稱為測試用例。一般說來,有下列3種調試途徑可以采用:1.蠻干法 2.回溯法 3.原因排除法測試的根本目標是:消除錯誤,保證軟件的可靠性。軟件的可靠性是:程序在給定的時間間隔內,按照規格說明書的規定成功地運行的概率。軟件可用性的一個定義是:軟件可用性是程序在給定的時間點,按照規格說明書的規定,成功地運行的概率。第八章、維護維護階段的基本任務是:保證軟件在一個相當長的時期能夠正常運行。軟件工程的主要目的:就是要提高軟件
30、的可維護性,減少軟件維護所需要的工作量,降低軟件系統的總成本。軟件維護:就是在軟件已經交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。改正性維護:為了糾正在使用過程中暴露出來的錯誤。適應性維護:為了適應外部環境的變化。完善性維護:為了改進原有的軟件。預防性維護:為了改進將來的可維護性和可靠性。它實質上是軟件再工程。可以把軟件的可維護性定性的定義為:維護人員理解、改正、改動或改進這個軟件的難易程度。決定軟件可維護性的因素主要有下述5個:可理解性、可測試性、可修改性、可移植性和可重用性。文檔是影響軟件可維護性的決定因素。文檔類型:1.用戶文檔,主要描述系統功能和使用方法,并不關心這些功能
31、是怎樣實現的 2.系統文檔,描述系統設計、實現和測試等各方面的內容。總地來說,軟件文檔應該滿足下述要求:1) 必須描述如何使用這個系統,沒有這種描述時即使是最簡單的系統也無法使用。2) 必須描述怎樣安裝和管理這個系統。3) 必須描述系統需求和設計。4) 必須描述系統的實現和測試,以便使系統稱為可維護的。用戶文檔應該至少包括下述5個方面的內容:1.功能描述 2.安裝文檔 3.使用手冊 4.參考手冊 5.操作員指南下述3類活動有可能成為預防性維護的對象:1.預定將使用多年的程序 2.當前正在成功地使用著的程序 3.在最近的將來可能要做重大修改或增強的程序。典型的軟件再工程過程模型定義了庫存目錄分析
32、、文檔重構、逆向工程、代碼重構、數據重構和正向工程6類活動。第九章、面向對象方法學引論人們把客觀世界中的實體抽象為問題域中的對象。與傳統的方法相反,面向對象方法是一種以數據或信息為主線,把數據和處理相結合的方法。面向對象方法把對象作為由數據及可以施加在這些數據上的操作所構成的統一體。面向對象 = 對象 + 類 + 繼承 + 對象之間僅能通過傳遞消息實現彼此通信面向對象方法學的優點:1.與人類習慣的思維方法一致 2 .穩定性好 3.可重用性好 4.較易開發大型軟件產品 5.可 維護性好。面向對象的設計方法的基本原理是:使用現實世界的概念抽象地思考問題從而自然地解決問題。面向對象方法學的基本原則是
33、:按照人類習慣的思維方法建立問題域的模型,開發出盡可能直觀、自然地表現求解方 法的軟件系統。對象是對問題域中某個實體的抽象,設立某個對象就反映了軟件系統具有保存有關的信息并且與它進行交互的能力。對象:是封裝了數據結構及可以施加在這些數據結構上的操作的封裝體,這個封裝體有可以唯一地標識它的名字,而且向外界提供一組服務。對象有如下一些基本特點:1.以數據為中心 2.對象是主動的 3.實現了數據封裝 4.本質上具有并行性 5.模塊獨立性好類:是對具有相同屬性和行為的一個或多個對象的描述,通常在這種描述中也包括對怎樣創建該類的新對象的說明。類是支持繼承的抽象數據類型,而對象就是類的實例。實例就是由某個
34、特定的類所描述的一個具體的對象。類是具有相同屬性和行為的一組相似的對象的抽象,類在現實世界中并不能真正存在。消息:就是要求某個對象執行在定義它的那個類中所定義的某個操作的規格說明。通常,一個消息由下述3部分組成:1.接收消息的對象 2.消息選擇符 3.零個或多個變元方法:就是對象所能執行的操作,也就是類中所定義的服務。屬性:就是類中所定義的數據,它是對客觀世界實體所具有的性質的抽象。封裝:就是把某個事物包起來,使外界不知道該事物的具體內容。對象具有封裝性的條件如下:1.有一個清晰的邊界 2.有確定的接口 3.受保護的內部實現繼承:是指能夠直接獲得已有的性質和特征,而不必重復定義它們。在面向對象
35、的軟件技術中,繼承是子類自動地共享基類中定義的數據和方法的機制。多態性:是指子類對象可以像父類對象那樣使用,同樣的消息既可以發送給父類對象也可以發送給子類對象。動態聯編:虛函數機制使得程序員能在一個類等級中使用相同函數的多個不同版本,在運行時刻才根據接收消息的對象所屬于的類,決定到底執行哪個特定的版本,這稱為動態聯編,也叫滯后聯編。函數重載:是指在同一作用域內的若干個參數特征不同的函數可以使用相同的函數名字。運算符重載:是指同一個遠算符可以施加于不同類型的操作數上面。模型:就是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述。建模的目的主要是為了減少復雜性。用面向對象方法開發
36、軟件,通常需要建立3種形式的模型,它們分別是描述系統數據結構的對象模型,描述系統控制結構的動態模型和描述系統功能的功能模型。對象模型始終都是最重要、最基本、最核心的。為類命名時應該遵守以下幾條準則:1.使用標準屬于 2.使用具有確切含義的名詞 3.必要時用名詞短語做名字動態模型:表示瞬時的、行為化的系統的“控制”性質,它規定了對象模型中的對象的合法變化序列。所謂狀態,是對對象屬性值的一種抽象。功能模型:表示變化的系統的“功能”性質,它指明了系統應該“做什么”,因此更直接地反映了用戶對目標系統的需求。功能模型指明了系統應該“做什么”;動態模型明確規定了什么時候做;對象模型則定義了做事情的實體。統
37、一建模語言UML是國際對象管理組織OMG批準的基于面向對象技術的標準建模語言。通常,使用UML的類圖來建立對象模型,使用UML的狀態圖來建立動態模型,使用數據流圖或UML的用例圖來建立功能模型。第九章、面向對象分析分析就是提取系統需求并建立問題域精確模型的過程,它包括理解、表達和驗證3項主要工作內容。分析過程得出的最重要的文檔資料是軟件需求規格說明(在面向對象分析中,主要由對象模型、動態模型和功能模型組成)。面向對象分析:就是抽取和整理用戶需求并建立問題域精確模型的過程。面向對象建模得到的模型包含系統的3個要素:即靜態結構(對象模型)、交互次序(動態模型)和數據變換(功能模型)。復雜問題的對象
38、模型通常由下述5個層次組成:主體層、類與對象層、結構層、屬性層和服務層。上述5個層次對應著在面向對象分析過程中建立對戲那個模型的5項主要活動:找出類與對象,識別結構,識別主題,定義屬性,定義服務。在概念上可以認為,面向對象分析大體上按照下列順序進行:尋找類與對象,識別結構,識別主題,定義屬性,建立動態模型,建立功能模型,定義服務。需求陳述應該闡明“做什么”而不是“怎樣做”。它應該描述用戶的需求而不是提出解決問題的方法。絕大多數需求陳述都是有二義性的、不完整的、甚至不一致的。對象模型描述了現實世界中的“類與對象”以及它們之間的關系,表示了目標系統的靜態結構。對象是對問題域中有意義的事物的抽象,它
39、們既可能是物理實體,也可能是抽象概念。關聯:兩個或多個對象之間的相互依賴、相互作用的關系就是關聯。一般說來,可以使用兩種方式建立繼承關系:1)自底向上:抽象出現有類的共同性質泛化出父類,這個過程實質上模擬了人類歸納思維過程。2)自頂向下:把現有類細化成更具體的子類,這模擬了人類的演繹思維過程。建立動態模型:第一步,是編寫典型交互行為的腳本。第二步,從腳本中提取出事件,確定觸發每個事件的動作對象以及接受時間的目標對象。第三步,排列事件發生的次序,確定每個對象可能有的狀態及狀態間的轉換關系,并用狀態圖描繪它們。最后,比較各個對象的狀態圖,檢查它們之間的一致性,確保事件之間的匹配。腳本:是指系統在某
40、一執行期間內出現的一系列事件。編寫腳本的目的:是保證不遺漏重要的交互步驟,它有助于確保整個交互過程的正確性和清晰性。功能模型:表明了系統中數據之間的依賴關系,以及有關的數據處理功能,它由一組數據流圖組成。其中的處理功能可以用IPO圖(或表)、偽碼等多種方式進一步描述。通常在建立了對象模型和動態模型之后再建立功能模型。第十一章、面向對象的設計設計則是把分析階段得到的需求轉變成符合成本和質量要求的、抽象的系統實現方案的過程。面向對象的設計就是用面向對象觀點建立求解域模型的過程。可以把面向對象設計再細分為系統設計和對象設計。系統設計:確定實現系統的策略和目標系統的高層結構。對象設計:確定解空間中的類、關聯、接口形成及實現服務的算法。面向對象設計的準則:模塊化、抽象、信息隱藏、弱耦合、強內聚、可重用。耦合:是指一個軟件結構內不同模塊之間互連的緊密程度。包括交互耦合和繼承耦合。內聚:衡量一個模塊內各個元素彼此結合的緊密程度。包括服務內聚、類內聚、一般
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程項目可視化管理試題及答案
- 中級經濟師學員分享經驗試題及答案
- 2025年工程經濟復習方法總結試題及答案
- 2025商場店鋪裝修設計合同
- 經濟法概論考試全貌與試題及答案提供
- 2025年買賣房產中介合同模板
- 2025關于吉林省非全日制用工勞動的合同范本
- 綜合考評與答題技巧試題及答案
- 建筑廢棄物的市政利用研究試題及答案
- 2025年市政工程考點梳理試題及答案
- 2023年湖南省長沙市中考語文真題試卷【含答案】
- 2022北京西城區初一期末(下)道法試卷及答案
- 2023年被告民事訴訟答辯狀
- (2020)中國兒童阻塞性睡眠呼吸暫停診斷與治療指南
- 監獄圍欄施工組織設計方案范本
- SB/T 10029-2012新鮮蔬菜分類與代碼
- GB/T 6075.3-2001在非旋轉部件上測量和評價機器的機械振動第3部分:額定功率大于15kW額定轉速在120r/min至15000r/min之間的在現場測量的工業機器
- GB/T 2410-2008透明塑料透光率和霧度的測定
- GB 21670-2008乘用車制動系統技術要求及試驗方法
- GA/T 1275-2015石油儲罐火災撲救行動指南
- 家務服務員理論考試試題題庫及答案
評論
0/150
提交評論