




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1.1 軟件危機軟件危機的表現軟件危機是指在計算機軟件的開發、使用和維護過程中遇到的一系列嚴重問題。1)成本難以估計、成本高。2)軟件開發進度估計不準確,項目延期比比皆是。3)軟件質量得不到保證(功能和性能)。4)用戶對“已完成的”軟件系統不滿意的現象經常發生。5)維護非常困難(多樣性 、復雜性、 副作用)。6)軟件通常沒有適當的文檔。7)軟件產品供不應求,跟不上計算機普及速度。產生軟件危機的原因(1)與軟件本身的特點有關 (邏輯復雜,成本高,風險大,難于維護)。(2)與軟件開發與維護的方法不正確有關:軟件程序(軟件是程序、數據及相關文檔的完整集合)急于求成=拔苗助長(軟件從定義、開發、使用和
2、維護、廢棄要經歷一個漫長的生命周期)各自為陣無方法學(應要組織良好、管理嚴密、各類人員協作共同完成的工程項目)1.2 軟件工程定義軟件工程是應用計算機科學、數學、心理學及管理科學等原理開發軟件的工程。它借鑒傳統工程的原則、方法,以提高質量、降低成本和提高效率為目的。軟件工程包括技術和管理兩方面的內容,是技術與管理緊密結合所形成的工程學科。軟件工程的特性:1. 軟件工程關注于大型程序的構造(傳統的程序設計技術和工具是支持小型程序設計的)2. 軟件工程的中心課題是控制復雜性(問題分解)3. 軟件經常變化(考慮將來要發生的變化)4. 開發軟件的效率非常重要(尋求更好、更有效的工具)5. 和諧地合作是
3、開發軟件的關鍵(運用標準和規程)6. 軟件必須有效地支持它的用戶(軟件要服務于用戶)7. 在軟件工程領域中通常是由具有一種文化背景的人替具有另一種文化背景的人創造產品軟件工程的7條基本原理1.用分階段的生命周期計劃嚴格管理2.堅持進行階段評審3.實行嚴格的產品控制4.采用現代程序設計技術5.結果應能清楚地審查6.開發小組的人員應該少而精7.承認不斷改進軟件工程實踐的必要性軟件工程方法學 通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學(methodology),也稱為范型(paradigm)。目前使用得最廣泛的軟件工程方法學,分別是傳統方法學和面向對象方法學。軟件工程方法學包含
4、3個要素:方法、工具和過程。1.3 軟件生命周期每階段的基本任務:1. 問題定義2. 可行性研究3. 需求分析4. 總體設計5. 詳細設計6. 編碼和單元測試7. 綜合測試8. 軟件維護1.4 軟件過程軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。通常包括四種基本的過程活動: ()軟件規格說明;()軟件開發;()軟件確認;()軟件演進軟件過程模型: 軟件開發程模型是軟件開發全部過程、活動和任務的結構框架。它能直觀表達軟件開發全過程,明確規定要完成的主要活動、任務和開發策略。幾種典型的模型:瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、RUP等
5、。軟件過程模型的選擇基于項目和應用的性質、采用的方法工具以及需要的控制和交付的產品。瀑布模型(Waterfall Model ):傳統瀑布模型:規定了各項軟件工程活動,包括:制定開發計劃、需求分析和說明、軟件設計、程序編碼、測試、運行維護。并且規定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。特點:1、階段間具有順序性和依賴性。2、推遲實現。3、質量保證。優點:1、可強迫開發人員采用規范的方法(例如,結構化技術); 嚴格地規定了每個階段必須提交的文檔;要求每個階段交出的所有產品都必須經過質量保證小組的仔細驗證。2、瀑布模型的成功在很大程度上是由于它基本上是一種文檔驅動的模型。3、
6、瀑布模型適合于用戶需求明確、完整、無重大變化的軟件項目開發!問題:1、不適應需求經常發生變更的環境:在項目的開發過程中,變更可能會引起混亂。所以,有人形象地把采用線性模型進行商業軟件工程稱之為“在沙灘上蓋樓房”。(適合于用戶需求明確、完整、無重大變化的軟件項目開發)2、線性順序模型每一步的工作都必須以前一階段的輸出為輸入,這種特征會導致工作中發生“阻塞”狀態。3、由于瀑布模型幾乎完全依賴于書面的規格說明,很可能導致最終開發出的軟件產品不能真正滿足用戶的需要。 4、是一種整體開發模型,程序的物理實現集中在開發階段的后期,用戶在最后才能看到自己的產品。在可運行的軟件產品交付給用戶之前,用戶只能通過
7、文檔來了解產品是什么樣的??焖僭湍P停≧apid Prototype Model)步驟:第一步進行試驗開發,得出產品的“原型”,其目的在于弄清軟件需求并探索可行性;第二步在原型的基礎上開發出較為滿意的軟件產品。該模型克服了瀑布模型的部分缺陷,減少了軟件需求不明確給開發工作帶來的風險。前提:(1)是用戶必須積極參與原型的建造,建造原型僅僅是為了定義需求,之后就必須被全部拋棄(至少是部分拋棄),實際的軟件必須在充分考慮到軟件質量和可維護性之后才被開發。從這個意義上說,原型模型又往往被稱為“拋棄原型模型”。(2)是必須有快速開發工具可供使用。 增量模型 (Incremental Model)是一種
8、漸進地開發逐步完善的軟件版本的模型,該模型一般首先開發產品的基本部,然后再逐步開發產品的附加部分。整個軟件產品被分解成許多個增量構件。每個構件由多個相互作用的功能模塊構成,并能夠完成特定的功能。該增量模型表明:必須在開始實現各個構件之前就全部完成需求分析、規格說明和概要設計,因此風險較小。優點:是十分有用的一種模型。在克服瀑布模型缺點、減少由于軟件需求不明確而給開發工作帶來風險方面,確有顯著的效果;縮短產品提交時間都能夠起到良好的作用。困難:1、在把每個新的增量構件集成到現有軟件體系結構中時,必須不破壞原來已經開發出的產品。此外,必須把軟件的體系結構設計得便于按這種方式進行擴充,向現有產品中加
9、入新構件的過程必須簡單、方便,也就是說,軟件體系結構必須是開放的。2、開發人員既要把軟件系統看作整體。又要看成可獨立的構件,因此相互矛盾。除非開發人員有足夠的技術能力協調好。3、多個構件并行開發,具有無法集成的風險螺旋模型 (Spiral Model)優點:對于高風險的大型軟件,螺旋模型是一個理想的開發方法。缺點:風險驅動,需要相當豐富的風險評估經驗和專門知識,否則風險更大。適合場合:主要適用于內部開發的大規模軟件項目,隨著過程的進展演化,開發者和用戶能夠更好地識別和對待每一個演化級別上的風險。只有內部開發的項目,才能在風險過大時方便地中止項目。如果進行風險分析的費用接近整個項目的經費預算,則
10、風險分析是不可行的。噴泉模型 (Fountain Model)特點:噴泉模型的各階段均采用了“對象”這一統一范式,整個過程看起來像噴泉從噴出到落下再噴出的周而復始過程產生的光滑水柱,體現了軟件創建所固有的迭代和無間隙的特征。適合場合:噴泉模型主要用于面向對象的軟件項目,軟件的某個部分通常被重復多次,相關對象在每次迭代中隨之加入漸進的軟件成分。Rational統一軟件開發過程RUP軟件開發生命周期是一個二維的軟件開發模型。橫軸代表時間,體現生命周期特征;縱軸代表工作流,體現了開發過程的靜態結構。RUP中的軟件生命周期在時間上被分解為四個順序的階段:初始、細化、構造和移交。每個階段圍繞著9個核心工
11、作流分別迭代。適合場合:可開發或大或小、分布在各個領域的項目,表明了RUP的多功能性和廣泛適應性。適合于需求不穩定、不全面的軟件項目開發。1.5 小結軟件 =程序+數據+文檔軟件危機: 原因,現象,辦法 (軟件工程學)軟件工程:指導計算機軟件開發和維護的一門工程科學軟件工程3個要素:方法、工具和過程。軟件生命周期:定義,開發,運行維護軟件過程: 瀑布模型,快速原型模型、增量模型、螺旋模型、噴泉模型、RUP等2.1 可行性研究目的:用最小的代價在盡可能短的時間內確定問題是否能夠解決。2.2 可行性研究的主要內容(1) 技術可行性(2) 經濟可行性(3) 操作可行性(4) 法律可行性(5) 社會可
12、行性2.3 數據流圖1、一種圖形化技術,它描繪信息流和數據從輸入移動到輸出的過程中所經受的變換。2、它只是描繪數據在軟件中流動和被處理的邏輯過程,是系統邏輯功能的圖形表示。3、設計數據流圖時只需考慮系統必須完成的基本邏輯功能,完全不需要考慮怎樣具體地實現這些功能。畫數據流圖的方法:1、自頂向下,逐步求精2、先畫頂層DFD,描繪系統的整體邏輯概貌;頂層流圖僅包含一個加工,它代表被開發系統。它的輸入流是該系統的輸入數據,輸出流是系統所輸出數據。3、其次畫中間層流圖:對上層父圖的處理的細化,形成子圖。底層流圖是指其加工不需要在做分解的數據流圖,它處在最底層。注意:數據流圖應該分層,并且在把功能級數據
13、流圖細化后得到的處理超過9個時,應該采用畫分圖的辦法。當把一個處理分解為一系列處理時,分解前和分解后的輸入輸出數據流必須相同!數據流圖用途:1、畫數據流圖的基本目的是利用它作為交流信息的工具。2、分析員把他對現有系統的認識或對目標系統的設想用數據流圖描繪出來,供有關人員審查確認。3、由于在數據流圖中通常僅僅使用4種基本符號,而且不包含任何有關物理實現的細節,因此,絕大多數用戶都可以理解和評價它。4、數據流圖著重描繪系統所完成的功能,其另一個主要用途是作為輔助物理系統的分析和設計的工具。2.4 小結1、可行性研究的任務: 技術, 經濟,社會2、可行性研究過程: 8 步驟3、數據流圖: 源點或終點
14、,處理,數據存儲和數據流4、數據字典: 是分析階段的工具,包括流,元素,存儲,處理4類元素組成。5、成本/效益分析:從經濟角度判斷是否繼續投資于這項工程的主要依據。3.1 需求分析的具體任務確定對系統的綜合要求:1、功能需求2、性能需求3、可靠性和可用性需求4、出錯處理需求5、接口需求6、約束7、 逆向需求8、將來可能提出的要求分析系統的數據要求:建立數據模型,用圖形化的工具描述數據結構(如層次方框圖和warnier圖)。導出系統的邏輯模型數據流圖、實體聯系圖、狀態轉換圖、數據字典等。修正系統開發計劃:由分析過程準確地估計系統的成本和進度,修正以前制定的開發計劃。3.2 與用戶溝通獲取需求的方
15、法1、訪談2、面向數據流自頂向下逐步求精3、簡易的應用規格說明技術4、快速建立軟件原型(它應該實現用戶看得見的功能,原型要具有快速并容易修改的特點)3.3 數據規范化規范化的目的是:1、消除數據冗余,即消除表格中數據的重復;2、消除多義性,使關系中的屬性含義清楚、單一;3、使關系的“概念”單一化,讓每個數據項只是一個簡單的數或字符串,而不是一個組項或重復組;4、方便操作。使數據的插入、刪除與修改操作可行并方便;5、使關系模式更靈活,易于實現接近自然語言的查詢方式。3.4 狀態轉換圖(狀態圖)通過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統的行為。狀 態1、狀態規定了系統對事件的響應方式。
16、2、系統對事件的響應,既可以是做一個(或一系列)動作,也可以是僅僅改變系統本身的狀態,還可以是既改變狀態又做動作。3、可分為:初態(初始狀態);終態(最終狀態);中間狀態4、一張狀態圖中只能有一個初態,而終態則可以有0至多個。事 件 事件就是引起系統做動作或(和)轉換狀態的控制信息。符 號1、初態用實心圓表示,終態用一對同心圓(內圓為實心圓)表示2、中間狀態用圓角矩形表示,分成上、中、下3個部分。3、 活動表的語法格式:事件名(參數表)/動作表達式(1)“事件名”可以是任何事件的名稱。在活動表中經常使用下述3種標準事件:entry,exit和do。(2) entry事件指定進入該狀態的動作,e
17、xit事件指定退出該狀態的動作,而do事件則指定在該狀態下的動作。需要時可以為事件指定參數表。(3) 動作表達式描述應做的具體動作。4、事件表達式的語法:事件說明守衛條件/動作表達式(1) 事件說明:事件名(參數表)(2) 動作表達式:當狀態轉換開始時執行該表達式。(3) 守衛條件是一個布爾表達式,如果既有事件說明又有守衛條件,則當事件發生且守衛條件為真是狀態轉換才發生,如果只有守衛條件沒有事件說明,則守衛條件為真時,發生狀態轉換。5.1 設計過程1. 設想供選擇的方案;2. 選取合理的方案;3. 推薦最佳方案;4.功能分解;5. 設計軟件結構;6. 設計數據庫;7. 制定測試計劃;8. 書寫
18、文檔;9. 審查和復審5.2 設計原理模塊化1、把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,這些模塊集成起來構成一個整體,可以完成指定的功能以滿足用戶的需求。2、模塊是由邊界元素限定的相鄰程序元素的序列,而且有一個總體標識符代表它。模塊是構成程序的基本構件。3、過程、函數、子程序和宏等,都可作為模塊。4、面向對象方法學中的對象是模塊,對象內的方法(或稱為服務)也是模塊。模塊化的好處: 1、可以降低軟件開發的難度;2、可以使程序結構清晰,增加易讀性和易修改性;3、模塊化還有利于提高代碼的可重用性及團隊合作開發大型軟件的可行性。抽象抽象是人類在解決復雜問題時經常采用的一種思維方
19、式,它是指將現實世界中具有共性的一類事物的相似的、本質的方面集中概括起來,而暫時忽略它們之間的細節差異。結構化程序中自頂向下、逐步求精的模塊劃分思想正是人類思維中運用抽象方法解決復雜問題的體現。逐步求精定義:為了能集中精力解決主要問題而盡量推遲對問題細節的考慮。好處:1、降低了軟件開發中每個階段的工作難度;2、簡化了軟件的設計和實現過程;3、有助于提高軟件的可讀性、可測試性和可維護性;4、在程序設計中運用抽象的方法還能夠提高代碼的可重用性。信息隱藏和局部化1、信息隱藏:設計和確定模塊,使得一個模塊內包含的信息(過程和數據)對于不需要這些信息的模塊來說,是不能訪問的。目的:主要是為了提高模塊的獨
20、立性,減少將一個模塊中的錯誤擴散到其他模塊的機會。模塊之間的信息傳遞只能通過合法的調用接口來實現。信息隱蔽對提高軟件的可讀性和可維護性都是非常重要的。2、局部化:是指把一些關系密切的軟件元素物理地放得彼此靠近。如模塊中的局部數據元素是局部化的一個例子。3、局部化和信息隱藏概念是密切相關的,局部化有助于信息隱藏模塊獨立模塊的獨立性是指軟件系統中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統中其他模塊的接口是簡單的。1、耦合:不同模塊之間互連程度的度量。2、內聚:模塊功能強度的度量。3、模塊獨立是模塊化、抽象、信息隱藏和局部化概念的直接結果。3、優點:比較容易開發出有效模塊化(即具有獨立的模塊
21、)的軟件;獨立的模塊比較容易測試和維護。4、耦合:(1) 數據耦合:若兩個模塊之間僅通過模塊參數交換信息,且交換的信息全部為簡單數據,則稱這種耦合為數據耦合。耦合性最低。(2) 控制耦合:若模塊之間交換的信息中包含有控制信息(盡管有時控制信息是以數據的形式出現的),則稱這種耦合為控制耦合??刂岂詈鲜侵械瘸潭鹊鸟詈希鼤黾映绦虻膹碗s性。(3) 特征耦合:當把整個數據結構作為參數傳遞而被調用的模塊只需要使用其中一部分數據元素。(4) 公共環境耦合:若兩個或多個模塊通過引用公共數據相互聯系。(5) 內容耦合:一個模塊訪問另一個模塊的內部數據;一個模塊不通過正常入口而轉到另一個模塊的內部;兩個模塊有
22、一部分程序代碼重疊;一個模塊有多個入口(這意味著一個模塊有幾種功能)。(6) 盡量使用數據耦合,少用控制耦合和特征耦合,限制公共環境耦合的范圍,完全不用內容耦合。5、內聚:低內聚:偶然內聚,邏輯內聚,時間內聚中內聚:過程內聚,通信內聚高內聚:順序內聚,功能內聚6、高內聚,低耦合6.1 結構程序設計1、結構程序設計技術:是實現質量要求的基本保證,是詳細設計的邏輯基礎。2、結構程序設計定義: 一個程序的代碼塊僅僅通過順序、選擇和循環這三種基本的控制結構進行連接;并且每個代碼塊只有一個入口和一個出口。- 3、只用三種基本的控制結構(順序,選擇,循環)就能實現任何單入口單出口的程序。從而實現結構程序設
23、計。4、三種基本結構的共同特點:(1) 只有一個入口; (2) 只有一個出口;(3) 結構內的每一部分都有機會被執行到;(4) 結構內不存在“死循環”(無終止的循環)。 5、結構程序設計的特點:(1) 由三種基本結構順序組成的,可以解決任何復雜的問題。(2) 程序內不存在無規律的轉向,只在基本結構內才允許存在分支和向前或向后的跳轉。6.2 過程設計的工具(1)過程設計是設計模塊的詳細步驟(算法),是詳細設計階段應完成的主要工作。 (2)過程設計的工具描述程序處理過程的工具。程序流程圖的優缺點:主要優點:對控制流程的描繪很簡明直觀、易于理解,便于初學者掌握。主要缺點:(1) 本質上不是逐步求精的
24、好工具。 -改進:PAD圖(2) 用箭頭代表控制流,描述程序時可以隨意跳轉。 -改進:N-S圖(3) 不易表示數據結構。 -改進:PAD圖(4) 嵌套的條件選擇表示不清。 -改進:判定樹、判定表PAD圖(問題分析圖)PAD圖的特點:(1) 能展現算法的層次結構;(2) 表示形式直觀易懂;(3) 既可用于表示程序邏輯,又可用于描述數據結構;(4) 支持自頂向下,逐步求精的過程。判定表當算法中包含多重嵌套的條件選擇時,用程序流程圖、盒圖、PAD圖等都不易清楚地描述,然而,判定表能夠清晰地表示復雜的條件組合與應做的動作之間的對應關系。判定表的優缺點:優點:判定表能夠簡潔而無歧義地描述處理規則??梢詫?/p>
25、判定表進行校驗或化簡。缺點:并不適于作為一種通用的設計工具,直觀性不夠。判定樹判定樹是用來表達加工邏輯的一種工具。比判定表更直觀,是一種常用的系統分析和設計工具。判定樹的優缺點:優點:比判定表更直觀。缺點: (1) 不夠簡潔,數據元素重復多次地寫。 (2) 畫判定樹時分枝的次序對簡潔程序有影響。PDL程序設計語言(1) 是一種非形式化、比較靈活的混雜語言。也稱為偽碼。(2) 用于描述模塊內部過程的具體算法,以便在開發人員之間比較精確的進行交流。PDL的優缺點:優點:(1)可以作為注釋直接插入到源程序中。有利于PDL和源程序保持一致性。(2) PDL編寫方便。(3)可以由自動處理程序將PDL生成
26、程序代碼。缺點:(1) 不如圖形工具形象直觀。(2) 描述復雜的條件組合與動作間的對應關系時,不如判定表清晰簡單。6.5 程序復雜程度的定量度量McCabe方法基本原理:根據程序控制流的復雜程度定量度量程序的復雜程度(稱為程序的環形復雜度)。采用“流圖”:僅描繪程序的控制流程,完全不表現對數據的具體操作及分支或循環的具體條件。基本步驟:(1) 將程序流程圖或PDL等映射為流圖。(2) 基于流圖計算環形復雜度,以定量度量程序的復雜程度。 流圖定義: 僅僅描繪程序的控制流程基本符號: 圓:表示結點,代表一條或多條語句。 箭頭線:邊 區域:由邊和圓圍成的面積基本原則:合并原則:順序處理框和菱形判定框
27、、順序處理框序列分別合并映射成流圖中的一個結點。分解原則:復合條件分解為若干個簡單條件,每個簡單條件映射成流圖中一個結點。其他情況下的框映射成流圖中的一個結點。計算環形復雜度的方法:(1) 流圖中的環形復雜度V(G)=區域數。(2) 流圖G的環形復雜度V(G)=E-N+2,其中,E是流圖中邊的條數,N是結點數。(3) 流圖G的環形復雜度V(G)=P+1,其中,P是流圖中判定結點的數目。環形復雜度的用途:(1) 可以用于比較兩個算法的優劣。對測試難度的一種定量度量。(2) 作為模塊規模的精確限度。環形復雜度高的程序往往是最困難、最容易出問題的程序。實踐表明,模塊規模以V(G)10為宜。7.1 軟
28、件測試基礎根本目標盡可能多地發現并排除軟件中潛藏的錯誤,最終把一個高質量的軟件系統交給用戶使用。軟件測試準則(1) 所有測試都應該能追溯到用戶需求。(2) 應該遠在測試開始之前就制定出測試計劃。(3) 把Pareto原理應用到軟件測試中。(測試發現的錯誤中的80%很可能是由程序中20%的模塊造成的。)(4) 應該從“小規?!睖y試開始,并逐步進行“大規模”測試(5) 窮舉測試是不可能的。(6) 為了達到最佳的測試效果,應該由獨立的第三方從事測試工作。測試方法測試步驟(1) 模塊測試;(2) 子系統測試;(3) 系統測試;(4) 驗收測試;(5) 平行運行7.2 白盒測試技術邏輯覆蓋 以程序的邏輯
29、結構為基礎設計測試用例的技術。(1)語句覆蓋 使程序中每個語句至少執行一次。(2)判定覆蓋 使每個判定的真假分支都至少執行一次。(3)條件覆蓋 使每個判定的每個條件的可能取值至少執行一次。(4)判定/條件覆蓋 每個條件的所有可能取值至少執行一次;使每個判定的真假分支都至少執行一次。(5)條件組合覆蓋 所有可能的條件取值組合至少執行一次。滿足條件組合覆蓋的測試數據,也一定滿足判定覆蓋、條件覆蓋和判定/條件覆蓋標準。覆蓋標準相對較強,但是也不意味著所有的路徑都能被執行到。(6)路徑覆蓋 使程序中每條可能路徑都至少執行一次。控制結構測試基本路徑測試(常用)第1步:畫出程序流圖 第2步:計算程序的環形
30、復雜度P (表示程序基本路徑集中的獨立路徑數的上限)第3步:確定獨立路徑的基本集合第4步:從該基本集合導出測試用例第5步:執行測試用例第6步:寫測試報告條件測試 條件成分的類型包括布爾算符、布爾變量、布爾括?。ɡㄗ『唵螚l件或復合條件)、關系算符及算術表達式。循環測試 (1)簡單循環;(2)嵌套循環;(3)串接循環7.3 黑盒測試技術黑盒測試著重測試軟件功能。黑盒測試并不能取代白盒測試,它是與白盒測試互補的測試方法,它很可能發現白盒測試不易發現的其他類型的錯誤。黑盒測試力圖發現下述類型的錯誤: 功能不正確或遺漏了功能; 界面錯誤; 數據結構錯誤或外部數據庫訪問錯誤;性能錯誤; 初始化和終止錯誤。
31、黑盒測試技術:(1)等價劃分法:把程序的輸入域劃分成若干個數據類,據數據類導出測試用例。(2)邊界值分析法。(3)錯誤推測法。(4)因果圖法等9.1 面向對象的概念1)對象 對象是封裝了數據和行為的通信單位。2)類 類是對具有相同數據和相同操作的一組對象的定義,即類是對具有相同屬性和行為的對象的描述。3)消息 對象之間進行通信的構造或結構。消息分為請求消息和完成消息兩種 (由消息模式描述)。消息模式:發送對象、接收對象、內容4)封裝 面向對象的一個重要原則。封裝是指在面向對象的程序中,把數據和實現操作的代碼集中起來放在對象內部。5)繼承 面向對象描述類之間相似性的重要機制,子類自動地共享基類中
32、定義的數據和方法的機制。6)多態性 允許每個對象以自己最合適的方式去響應共同的消息,從而增強軟件的靈活性和可復用性。7)重載 函數重載是指在同一作用域內具有多個同名的函數,這些函數具有若干個不同的參數特征;運算符重載是指同一個運算符可以施加于不同類型的操作數上。9.4 對象模型對象模型表示靜態的、結構化的系統的“數據”性質。它是對模擬客觀世界實體的對象以及對象彼此間的關系的映射,描述了系統的靜態結構。類圖的基本符號1. 定義類UML中類的圖形符號為長方形,分成上、中、下3個區域(下面兩個區域可省略),分別放類的名字、屬性和服務。類名應該是富于描述性的、簡潔的而且無二義性的。2. 定義屬性UML
33、描述屬性的語法格式如下:可見性 屬性名: 類型名=初值 性質串屬性的可見性(即訪問性):共有的(public)、私有的(private)和保護的(protected),分別用加號(+)、減號(-)和井號(#)表示。3. 定義服務服務也就是操作,UML描述操作的語法格式如下:可見性 操作名(參數表): 返回值類型性質串參數表是用逗號分隔的形式參數的序列。描述一個參數的語法: 參數名:類型名=默認值表示關系的符號1. 關聯 關聯表示兩個類的對象之間存在某種語義上的聯系。1)普通關聯:類與類之間存在連接關系就可以用普通關聯表示。2)關聯的角色:在任何關聯中都會涉及到參與此關聯的對象所扮演的角色(即起
34、的作用),如果沒有顯式標出角色名,則意味著用類名作為角色名。3)限定關聯:通常用在一對多或多對多的關聯關系中,可以把模型中的重數從一對多變成一對一,或從多對多簡化成多對一。4)關聯類:說明關聯的性質可能需要一些附加信息。關聯類通過一條虛線與關聯連接。關聯類與一般類一樣,也有屬性、操作和關聯。關聯中的每個連接與關聯類的一個對象相聯系。2. 聚集 也稱為聚合,是關聯的特例。聚集表示類與類之間的關系是整體與部分的關系1)共享聚集:在聚集關系中處于部分方的對象可同時參與多個處于整體方對象的構成。一般聚集和共享聚集的圖示符號,都是在表示關聯關系的直線末端緊挨著整體類的地方畫一個空心菱形。2)組合聚集:如
35、果部分類完全隸屬于整體類,部分與整體共存,整體不存在了部分也會隨之消失(或失去存在價值了),則該聚集稱為組合聚集(簡稱為組成)。組成關系用實心菱形表示。3. 泛化 就是通常所說的繼承關系,它是通用元素和具體元素之間的一種分類關系。具體元素完全擁有通用元素的信息,并且還可以附加一些其他信息。用一端為空心三角形的連線表示泛化關系,三角形的頂角緊挨著通用元素。1)普通泛化:普通泛化與繼承基本相同。沒有具體對象的類稱為抽象類。抽象類通常作為父類,用于描述其他類(子類)的公共屬性和行為。圖示抽象類時,在類名下方附加一個標記值abstract。2)受限泛化:給泛化關系附加約束條件,以進一步說明該泛化關系的使用方法或擴充方法。3)多重繼承:一個子類可以同時多次繼承同一個上層基類。9.5 動態模型動態模型表示瞬時的、行為化的系統的“控制”性質,它規定了對象模型中的對象的合法變化序列。9.6 功能模型用例圖 一幅用例圖包含的模型元素有系統、行為者、用例及用例之間的關系。1)用例:表示系統提供的服務,主要刻畫系統如何被參與者使用。Use Cas
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學校水井房管理制度
- 學??p紉室管理制度
- 學校防暴雨管理制度
- 學生托管班管理制度
- 學院樓門衛管理制度
- 安康碼項目管理制度
- 安監房衛生管理制度
- 官渡區臺賬管理制度
- 實施部日志管理制度
- 寵物寄存室管理制度
- 五年級英語質量調研卷答題卡
- 二年級下冊語文試題 河南省商丘市永城市 第二學期二年級語文期末試題(圖片版無答案)部編版
- 新蘇教版牛津英語 英語四年級下冊期末試卷
- 生產異常停線管理規范標準
- DB32∕T 4064-2021 江蘇省城鎮燃氣安全檢查標準
- 四川省瀘州市瀘縣2021-2022學年八年級下學期期末數學試題(word版只含選擇填空題答案)
- 國際匯款查詢查復業務培訓3
- 高中信息技術會考試題(必修部分)附答案
- 設備保全點檢表(TPM推行必看)
- 市質監站工程竣工驗收工作流程圖
- 新世紀大學英語綜合教程4 Unit1
評論
0/150
提交評論