大連理工大學軟件工程導論復習_第1頁
大連理工大學軟件工程導論復習_第2頁
大連理工大學軟件工程導論復習_第3頁
大連理工大學軟件工程導論復習_第4頁
大連理工大學軟件工程導論復習_第5頁
已閱讀5頁,還剩131頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

大連理工大學軟件工程導論復習第1頁/共136頁2023/3/272第1章基礎知識第2頁/共136頁2023/3/273什么是軟件軟件的定義—軟件由三部分組成:程序:在運行時,能提供所希望的功能和性能的指令集數(shù)據:使程序能夠正確運行的數(shù)據文檔:描述程序研制過程、方法及使用的文檔軟件處理的是信息和邏輯軟件的開發(fā),絕不僅僅是編寫程序軟件圍繞著邏輯進行軟件就是一個信息交換器產生、管理、獲取、修改、顯示或傳送信息軟件≠程序第3頁/共136頁2023/3/274什么是軟件危機軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。軟件工程(IEEE)1993年,提出軟件工程1)將系統(tǒng)化、規(guī)范化、可量化的工程原則和方法,應用于軟件的開發(fā)、運行和維護。2)對1)中方法的理論研究。第4頁/共136頁2023/3/275軟件工程基本原理(開發(fā)與維護的指導)用分階段的生命周期計劃嚴格管理堅持進行階段評審實行嚴格的產品控制采用現(xiàn)代程序設計技術結果應能清楚地審查開發(fā)小組的人員應該少而精承認不斷改進軟件工程實踐的必要性第5頁/共136頁2023/3/276軟件工程方法學把在軟件生命周期全過程中使用的一整套技術的集合稱為方法學(methodology),也稱范型(paradigm)。軟件工程方法學三個要素:方法、工具和過程。方法是完成軟件開發(fā)各項任務的技術,回答“如何做”;工具是為方法的運用提供自動或半自動軟件支撐環(huán)境,回答“用什么做”;過程是為獲得高質量的軟件要完成的一系列任務的框架,規(guī)定完成各項任務步驟,回答“如何控制、協(xié)調、保證質量”。管理方法第6頁/共136頁2023/3/277目前使用得最廣泛的軟件工程方法學。傳統(tǒng)方法學也稱為生命周期方法學或結構化范型。

當軟件規(guī)模較大,或對軟件的需求是模糊的或隨時間變化的時候,使用結構化范型開發(fā)軟件往往不成功;此外,使用傳統(tǒng)方法學開發(fā)出的軟件,維護起來通常都很困難。結構化-靜態(tài)分析,面向對象-動態(tài)分析世界萬物是變化的傳統(tǒng)方法學與面向對象方法學第7頁/共136頁2023/3/278傳統(tǒng)方法的特點生命周期模型軟件過程劃分為若干個階段每個階段有各自的任務階段之間有某種順序性第8頁/共136頁2023/3/279面向對象方法:對象作為融合數(shù)據及在數(shù)據之上的操作行為的統(tǒng)一的軟件構件。把所有對象都劃分成類(Class)。每個類都定義了一組數(shù)據和一組操作。按照父類(或稱為基類)與子類(或稱為派生類)的關系,把若干個相關類組成一個層次結構的系統(tǒng)(也稱為類等級)。在類等級中,下層派生類自動擁有上層基類中定義的數(shù)據和操作,稱為繼承。對象彼此間僅能通過發(fā)送消息互相聯(lián)系-封裝性。數(shù)據:靜態(tài)操作:動態(tài)EverythingisObject.第9頁/共136頁2023/3/27101.3軟件生命周期

軟件生命周期由軟件定義、軟件開發(fā)和運行維護三個時期組成,每個時期又可進一步劃分成若干個階段,每個階段有各自的任務。1軟件定義2軟件開發(fā)3運行維護第10頁/共136頁2023/3/2711問題定義可行性研究需求分析概要設計詳細設計編碼和單元測試綜合測試軟件維護第11頁/共136頁2023/3/2712實際的瀑布模型軟件過程模型(生命周期模型)第12頁/共136頁2023/3/2713快速原型模型第13頁/共136頁2023/3/2714增量模型瀑布模型:力求一次性給用戶完整的系統(tǒng)。增量模型:逐步增加系統(tǒng)功能。需要開放的架構設計。第14頁/共136頁2023/3/2715完整的螺旋模型第15頁/共136頁2023/3/2716噴泉模型迭代是OO開發(fā)過程的主要特性。噴泉模型是典型的面向對象生命周期模型?!皣娙斌w現(xiàn)了面向對象軟件開發(fā)過程迭代和無縫的特性。為避免噴泉模型的過分無序,把一個線性過程作為總目標。迭代

第16頁/共136頁2023/3/2717噴泉模型迭代:逐步求精階段間沒有明顯的界限-面向對象的思想保證了各個階段開發(fā)的一致性。迭代是OO開發(fā)過程的主要特性。噴泉模型是典型的面向對象生命周期模型?!皣娙斌w現(xiàn)了面向對象軟件開發(fā)過程迭代和無縫的特性。第17頁/共136頁可行性與需求分析第18頁/共136頁2023/3/2719可行性研究不是解決問題,而是確定問題是否值得去解決較高層次的系統(tǒng)分析和設計過程需求分析發(fā)現(xiàn)、求精、建模、規(guī)格說明和復審的過程反復求精多次細化,得出對目標系統(tǒng)的完整、準確和具體的要求。建立數(shù)據模型、功能模型和行為模型等三種模型。還要寫出準確的軟件需求規(guī)格說明。。第19頁/共136頁2023/3/2720系統(tǒng)流程圖系統(tǒng)流程圖概括描繪物理系統(tǒng)的傳統(tǒng)工具用圖形符號,以黑盒子形式描述組成系統(tǒng)的每個部件程序、文檔、數(shù)據庫、人工過程第20頁/共136頁2023/3/2721系統(tǒng)流程圖例子例子每個符號用黑盒子形式定義了組成系統(tǒng)的一個部件。沒有部件內部的具體工作過程箭頭確定通過系統(tǒng)的邏輯路徑(信息流動路徑)第21頁/共136頁2023/3/2722

數(shù)據流圖數(shù)據流圖(DFD)描繪信息流和數(shù)據從輸入移動到輸出的過程中所經受的變換。或或或符號含義數(shù)據的源點或終點數(shù)據流數(shù)據存儲加工(數(shù)據處理)第22頁/共136頁2023/3/2723加工中常見關系的符號表示符號含義由數(shù)據A和B共同變換為數(shù)據C由數(shù)據A變換為數(shù)據B和數(shù)據C由數(shù)據A或B,或者數(shù)據A和B共同變換為數(shù)據C由數(shù)據A變換為數(shù)據B或C,或者同時變換為數(shù)據B和C由數(shù)據A或B其中之一變換為數(shù)據C由數(shù)據A變換為數(shù)據B或C其中之一T*T*T+T+TT第23頁/共136頁2023/3/2724第24頁/共136頁2023/3/2725把處理事務的功能進一步分解后的數(shù)據流圖第25頁/共136頁2023/3/2726數(shù)據字典數(shù)據字典是關于數(shù)據的信息的集合,即對DFD圖中包含的元素的定義的集合。數(shù)據字典的用途是供人查閱不了解的條目的解釋。提供分析設計過程中關于數(shù)據的描述。數(shù)據字典與DFD相輔相成。只有DFD和對應的元素的精確定義放在一起,才能構成系統(tǒng)的規(guī)格說明。第26頁/共136頁2023/3/2727定義數(shù)據的方法=意思是等價于(或定義為);+意思是和(即,連接兩個分量);[]意思是或(即,從方括弧內列出的若干個分量中選擇一個),用“|”號分開供選擇的分量;{}意思是重復(即,重復花括弧內的分量);()意思是可選(即,圓括弧里的分量可有可無)。使用上限和下限進一步注釋表示重復的花括弧。左邊用上角標和下角標分別表明重復的上限和下限;左側標明重復的下限,在閉括弧的右側標明上限。例如:{A}和1{A}5含義相同。15第27頁/共136頁2023/3/2728數(shù)據字典的實現(xiàn)CASE工具人工卡片第28頁/共136頁2023/3/2729

實體—關系圖數(shù)據模型包含三種相互關聯(lián)的信息:數(shù)據對象、描述數(shù)據對象屬性及數(shù)據對象彼此間相互連接的關系。第29頁/共136頁2023/3/2730某校教學管理ER圖第30頁/共136頁2023/3/2731學生和課程之間的E-R模型學生和課程之間的多對多聯(lián)系E-R模型;(b)將多對多聯(lián)系轉換為一對多聯(lián)系E-R模型選課mn學號專業(yè)年級課名課號學時1n學號專業(yè)課名課號學時學號課號n1姓名課程學生姓名課程學分學生年級選課學分(a)(b)第31頁/共136頁2023/3/2732

其他圖形工具Warnier圖第32頁/共136頁2023/3/2733其他圖形工具(3)IPO圖第33頁/共136頁2023/3/2734其他圖形工具(2)IPO圖IPO圖是輸入、處理、輸出圖的簡稱左邊框中列出有關的輸入中間框中列出主要的處理右邊框中列出產生的輸出處理的順序暗示了執(zhí)行的順序箭頭指出數(shù)據通信的情況第34頁/共136頁總體設計第35頁/共136頁2023/3/2736總體設計概要設計和詳細設計。概要設計主要任務是通過仔細分析軟件規(guī)格說明,適當?shù)貙浖M行功能分解,從而把軟件劃分為模塊,并且設計出完成預定功能的模塊結構。詳細設計階段詳細地設計每個模塊,確定完成每個模塊功能所需要的算法和數(shù)據結構。第36頁/共136頁2023/3/2737模塊化:就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求??梢杂稍S多程序員分工編寫不同的模塊可以使軟件結構清晰,便于擴展使軟件容易測試和調試,因而有助于提高軟件的可靠性。模塊大小要適中,不過分細。第37頁/共136頁2023/3/2738模塊獨立模塊的獨立程度可以由兩個定性標準來度量,分別稱為內聚和耦合。耦合:衡量不同模塊彼此間互相依賴(連接)緊密程度;內聚:衡量一個模塊內部各個元素彼此結合的緊密程度。第38頁/共136頁2023/3/2739耦合是對一個軟件結構內不同模塊之間互連程度的度量。盡可能松散耦合第39頁/共136頁2023/3/2740數(shù)據耦合:特征耦合:控制耦合:外部耦合:公共耦合:內容耦合:弱強盡量使用數(shù)據耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內容耦合。第40頁/共136頁2023/3/2741內聚:標志一個模塊內各個元素彼此結合的緊密程度,它是信息隱蔽和局部化概念的自然擴展。簡單地說,理想內聚的模塊只做一件事情。第41頁/共136頁2023/3/2742功能內聚:信息內聚:通信內聚:過程內聚:時間內聚:邏輯內聚:巧合內聚:強弱設計時應該力求做到高內聚。第42頁/共136頁2023/3/2743改進軟件結構提高模塊獨立性模塊規(guī)模應該適中深度、寬度、扇出和扇入都應適當模塊的作用域應該在控制域之內力爭降低模塊接口的復雜程度設計單入口單出口的模塊模塊功能應該可以預測第43頁/共136頁2023/3/2744描繪軟件結構的圖形工具層次圖和HIPO圖結構圖第44頁/共136頁2023/3/2745正文加工系統(tǒng)的層次圖第45頁/共136頁2023/3/2746正文加工系統(tǒng)的H圖第46頁/共136頁2023/3/2747結構圖的例子—產生最佳解的一般結構第47頁/共136頁2023/3/2748軟件結構設計方法面向數(shù)據流的設計方法的目標是給出設計軟件結構的一個系統(tǒng)化的途徑。利用數(shù)據流圖中的“映射“,把數(shù)據流圖變換成軟件結構。第48頁/共136頁2023/3/2749變換流和事務流第49頁/共136頁2023/3/2750設計步驟復查基本系統(tǒng)模型。復查并精化數(shù)據流圖。確定數(shù)據流圖具有變換特性還是事務特性。確定輸入流和輸出流的邊界,從而孤立出變換中心。完成“第一級分解”。完成“第二級分解”。使用設計度量和啟發(fā)規(guī)則對第一次分割得到的軟件結構進一步精化。第50頁/共136頁2023/3/2751數(shù)字儀表板系統(tǒng)的數(shù)據流圖精化數(shù)據流圖數(shù)據流圖具有變換特性還是事務特性第51頁/共136頁2023/3/2752具有邊界的數(shù)據流圖確定輸入流和輸出流的邊界,從而孤立出變換中心第52頁/共136頁2023/3/2753第一級分解的方法第53頁/共136頁2023/3/2754數(shù)字儀表板系統(tǒng)的第一級分解完成“第一級分解”第54頁/共136頁2023/3/2755第二級分解的方法第55頁/共136頁2023/3/2756未經精化的輸入結構完成“第二級分解”第56頁/共136頁2023/3/2757精化后的數(shù)字儀表板系統(tǒng)的軟件結構軟件結構進一步精化第57頁/共136頁2023/3/2758事務分析的映射方法第58頁/共136頁詳細設計第59頁/共136頁2023/3/2760詳細設計階段主要完成界面和程序過程設計.過程設計應該在數(shù)據設計、體系結構設計和接口設計完成之后進行.程序員將根據過程設計寫出實際的程序代碼。第60頁/共136頁2023/3/2761結構程序設計的經典定義如下所述:如果一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這三種控制結構進行連接,并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結構化的。第61頁/共136頁2023/3/2762過程設計的工具程序流程圖第62頁/共136頁2023/3/2763盒圖(N-S圖)第63頁/共136頁2023/3/2764PAD圖第64頁/共136頁2023/3/2765判定表第65頁/共136頁2023/3/2766用判定樹表示計算行李費的算法判定樹第66頁/共136頁2023/3/2767偽碼第67頁/共136頁測試第68頁/共136頁2023/3/2769第69頁/共136頁2023/3/2770回歸測試(已執(zhí)行過的測試用例的子集)包括下述三種不同的測試用例。檢測軟件全部功能的代表性測試用例。專門針對可能受修改影響的軟件功能的附加測試。針對被修改過的軟件成分的測試。第70頁/共136頁2023/3/2771白盒測試技術邏輯覆蓋是設計白盒測試方案的技術。設計測試方案是測試階段的關鍵技術問題。第71頁/共136頁2023/3/2772語句覆蓋為暴露程序的錯誤,至少每個語句應該執(zhí)行一次。含義是,選擇足夠多的測試數(shù)據,使被測程序中每個語句至少執(zhí)行一次。第72頁/共136頁2023/3/2773判定覆蓋又叫分支覆蓋不僅每個語句必須至少執(zhí)行一次,而且每個判定的每種可能的結果都應該至少執(zhí)行一次,也就是每個判定的每個分支都至少執(zhí)行一次。條件覆蓋不僅每個語句至少執(zhí)行一次,而且判定表達式中每個條件都取到各種可能的結果。第73頁/共136頁2023/3/2774判定/條件覆蓋判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋,判定/條件覆蓋能同時滿足這兩種覆蓋標準。選取足夠多的測試數(shù)據,使得判定表達式中的每個條件都取到各種可能的值,而且每個判定表達式也都取到各種可能的結果。條件組合覆蓋要求選取足夠多的測試數(shù)據,使每個判定表達式中條件的各種可能組合都至少出現(xiàn)一次。第74頁/共136頁2023/3/2775路徑測試TomMcCabe提出的一種白盒測試技術。首先計算過程設計結果的邏輯復雜度,并以該復雜度為指南定義執(zhí)行路徑的基本集合,從該基本集合導出的測試用例可以保證程序中每條語句至少執(zhí)行一次,而且每個條件在執(zhí)行時都將分別取true(真)和false(假)值。第75頁/共136頁2023/3/2776求平均值過程的流圖使用基本路徑測試技術設計測試用例步驟如下。根據過程設計結果畫出相應的流圖第76頁/共136頁2023/3/2777PROCEDUREaverage;/*這個過程計算不超過100個在規(guī)定值域內的有效數(shù)字的平均值;同時計算有效數(shù)字的總和及個數(shù)。*/INTERFACERETURNSaverage,total_input,total_valid;INTERFACEACCEPTSvalue,minimum,maximum;TYPEvalue[1...100]ISSCALARARRAY;TYPEaverage,total_input,total_valid,minimum,maximum,sumISSCALAR;第77頁/共136頁2023/3/2778TYPEiISINTEGER;1:i=1;total_input=total_valid=0;sum=0;2:DOWHILEvalue[i]<>-9993: ANDtotal_input<1004: incrementtotal_inputby1;5: IFvalue[i]>=minimum6: ANDvalue[i]<=maximum7: THENincrementtotal_validby1; sum=sum+value[i];8: ENDIF incrementiby1;9:ENDDO第78頁/共136頁2023/3/277910:IFtotal_valid>011:THENaverage=sum/total_valid;12:ELSEaverage=-999;13:ENDIFENDaverage第79頁/共136頁2023/3/2780計算流圖的環(huán)形復雜度環(huán)形復雜度定量度量程序的邏輯復雜性。三種方法來計算環(huán)形復雜度。流圖中的區(qū)域數(shù)等于環(huán)形復雜度。流圖G的環(huán)形復雜度V(G)=E-N+2,其中E是流圖中邊的條數(shù),N是流圖中節(jié)點數(shù)。流圖G的環(huán)形復雜度V(G)=P+1,其中P是流圖中判定節(jié)點的數(shù)目。使用上述任何一種方法,都可以計算出流圖的環(huán)形復雜度為6。第80頁/共136頁2023/3/2781確定線性獨立路徑的基本集合對于所描述的求平均值過程來說,由于環(huán)形復雜度為6,因此共有6條獨立路徑。例如,下面列出了6條獨立路徑:路徑1:1-2-10-11-13路徑2:1-2-10-12-13路徑3:1-2-3-10-11-13路徑4:1-2-3-4-5-8-9-2-路徑5:1-2-3-4-5-6-8-9-2-路徑6:1-2-3-4-5-6-7-8-9-2-第81頁/共136頁2023/3/2782設計可強制執(zhí)行基本集合中每條路徑測試用例選取數(shù)據使得在測試每條路徑時都適當設置好了各個判定節(jié)點的條件。路徑1的測試用例:

value[k]=有效輸入值,其中k<i(i的定義在下) value[i]=-999,其中2≤i≤100

預期結果:基于k的正確平均值和總數(shù) 注意,路徑1無法獨立測試,必須作為路徑4、5和6的一部分來測試。路徑2的測試用例:

value[1]=-999

預期結果:average=-999,其他都保持初始值第82頁/共136頁2023/3/2783路徑4的測試用例:

value[i]=有效輸入值,其中i<100 value[k]<minimum,其中k<i

預期結果:其于k的正確平均值和總數(shù)路徑5的測試用例:

value[i]=有效輸入值,其中i<100 value[k]>maximum,其中k<i

預期結果:其于k的正確平均值和總數(shù)路徑6的測試用例:

value[i]=有效輸入值,其中i<100

預期結果:正確的平均值和總數(shù)第83頁/共136頁2023/3/2784黑盒測試技術黑盒測試著重測試軟件的功能需求,讓軟件工程師設計出能充分檢查程序所有功能需求的輸入條件集。黑盒測試并不能取代白盒測試技術,它是與白盒測試互補的方法,它很可能發(fā)現(xiàn)白盒測試不易發(fā)現(xiàn)的其他不同類型的錯誤。第84頁/共136頁2023/3/2785黑盒測試力圖發(fā)現(xiàn)下述類型的錯誤:①功能不正確或遺漏了功能;②界面錯誤;③數(shù)據結構錯誤或外部數(shù)據庫訪問錯誤;④性能錯誤;⑤初始化和終止錯誤。白盒測試在測試過程的早期階段進行,而黑盒測試主要用于測試過程的后期。黑盒測試故意不考慮程序的控制結構,而把注意力集中于信息域。第85頁/共136頁2023/3/2786等價劃分:確定輸入數(shù)據的有效等價類和無效等價類。邊界值分析錯誤推測第86頁/共136頁面向對象基礎第87頁/共136頁2023/3/2788什么是對象技術

基于對象概念的軟件開發(fā)方法對象包含有數(shù)據及處理數(shù)據的功能函數(shù)在分析、設計和實現(xiàn)的整個過程中只使用一個概念對象的開發(fā)方法能夠解決軟件危機中大多數(shù)問題的方法對象=數(shù)據+功能第88頁/共136頁2023/3/2789對象技術的優(yōu)勢穩(wěn)定:較小的需求變化不會導致系統(tǒng)結構大的改變舉例:某公司的銷售處理系統(tǒng)定單合同出費第89頁/共136頁2023/3/2790對象技術的優(yōu)勢

穩(wěn)定:數(shù)據和功能都打包在一起,從而改善軟件的再重用性軟件重用能提高質量,減少由于編制新的系統(tǒng)代碼而產生的成本File

MgrMacro

EditorMath

UtilitiesText

EditorPrint

UtilitiesFormat

EditorMenusString

UtilitiesSpreadsheetWordProcessorReusable-ComponentRepository第90頁/共136頁2023/3/2791對象技術的優(yōu)勢面向對象的模型更加貼切地反映了現(xiàn)實世界更加準確地描述公共數(shù)據和過程易于理解,尤其對于使用者現(xiàn)實世界LaserPrinterExternalDriveComputer對象圖第91頁/共136頁2023/3/2792對象技術的優(yōu)勢面向對象的方法支持大規(guī)模開發(fā)可以嚴格定義各個組件之間的交互減少內部的依賴關系減少集成的問題支持并行開發(fā)第92頁/共136頁2023/3/2793對象技術的優(yōu)勢幫助開發(fā)多層結構

EquipmentandCustomerspecificCodeProcessesandotherapplicationcodeMajorabstractions,classes,etc.MechanismsH/Wspecificcode,O/Sspecificcodegeneral-purposecode12345ApplicationSpecificApplicationIndependentLessReuseMoreReuse第93頁/共136頁2023/3/2794面向對象概念Object對象Class類Instance實例State狀態(tài)Behavior行為Attribute屬性Operation操作(Method方法)Inheritance繼承Subclasses子類Superclasses父類Generalization普遍化Polymorphism多態(tài)第94頁/共136頁2023/3/2795面向對象概念Abstraction抽象Encapsulation封裝Association關聯(lián)Role角色Multiplicity多重性Aggregation聚合Dependencyassociation依賴Package包UseCase用例Scenario腳本Actor第95頁/共136頁2023/3/2796什么是對象一個對象代表了一個現(xiàn)實的或虛構的實體自然實體概念實體軟件實體化學過程連接顯示第96頁/共136頁2023/3/2797對象的屬性對象是應用中具有明顯邊界和含義的概念、抽象或事物一個對象有三個重要屬性:狀態(tài)行為標識術語“實例”是“對象”的同義詞第97頁/共136頁2023/3/2798對象的狀態(tài)一個對象的狀態(tài)是它反映于現(xiàn)實世界的一系列屬性:參數(shù)的數(shù)值(也就是,與對象有關系的數(shù)據)它與其它對象的關系任一時刻的歷史狀態(tài)可能的狀態(tài): 停泊運營 著陸終止班機747第98頁/共136頁2023/3/2799對象的行為定義當其它對象發(fā)出請求時,該對象如何反應由為對象定義的一系列操作決定班機747核對出發(fā)時間(返回9:27)機票代理第99頁/共136頁2023/3/27100對象的標識

每一個對象都有一個唯一的標識,即使其狀態(tài)有可能與其它對象一樣班機747on11/10班機747on11/11班機747on11/12第100頁/共136頁2023/3/27101什么是類(Class)

類是一組具有相同結構和行為的對象的集合共同的結構通過屬性表現(xiàn)出來(i.e.數(shù)據)共同的行為通過操作表現(xiàn)出來(i.e.功能)班機747結構班機號日期分配的班機起點終點狀態(tài)行為裝載設備起飛延遲取消終止第101頁/共136頁2023/3/27102類的示例ClassEmployeeStructureNameAddressPositionSalaryStartDateEndDateBehaviorHireFirePromoteIncreaseSalaryRetire第102頁/共136頁2023/3/27103類圖:用來表達類類圖是一種主要的圖形化對象表示法類圖顯示類及類之間的關系一個類通過在類圖標中的類名(唯一的)來代表班機第103頁/共136頁2023/3/27104屬性

屬性是類的特征或特性屬性的值是某一特定對象的屬性值在類中屬性名必須是唯一的每一個類的實例都有為這個類定義的所有屬性的值例如:銀行帳戶類屬性帳號銀行名稱擁有者金額Mary的銀行帳戶屬性值12345678FirstNationalBankMarySmith$1024.48第104頁/共136頁2023/3/27105操作

對象的行為是由為此對象定義的一系列操作決定的操作訪問或修改對象的屬性值一個類可能同時存在多個實例,也可能在某一時刻沒有實例一個類的所有實例都可以使用在這個類中定義的操作第105頁/共136頁2023/3/27106屬性和操作的標記法

在類的圖標中描述屬性和操作通常只顯示最重要的屬性和操作,避免圖形混亂屬性顯示在操作上方,操作的名字后跟有()班機flightNumberdatedeparturetimestatusrelease()takeOff()屬性操作第106頁/共136頁2023/3/27107類是生成對象的模板類是生成對象的模板類的定義中包含有產生和刪除對象的操作屬性顯示在操作上方,操作的名字后跟有()一個類定義了使用哪種數(shù)據表示法來描述屬性每一個實例都采用有屬性值的數(shù)據表示法一個類通過一系列操作來定義行為這種操作能在每個實例中激活班機Flight187Flight121Flight747第107頁/共136頁2023/3/27108類和對象的關系

每一個對象都是某一個類的實例每一個類在某一時刻都有零個或更多的實類是靜態(tài)的;它們的存在、語義和關系在序執(zhí)行前就已經定義好了對象是動態(tài)的;它們在程序執(zhí)行時可以被建和刪除第108頁/共136頁2023/3/27109關系所有的系統(tǒng)都包含了大量的類和對象對象通過與其它對象的協(xié)作完成系統(tǒng)的功能行為.協(xié)作通過關系來實現(xiàn)幾種重要的關系類型:關聯(lián)聚合依賴繼承第109頁/共136頁2023/3/27110示例:關聯(lián)在一個工資系統(tǒng)中有下面兩個類:關聯(lián)表示了雙向的關系,例如:給出一個Person的實例,我們能夠知道他屬于哪家公司給出一個Company的實例,我們能夠知道在其中工作的所有人PersonCompany第110頁/共136頁2023/3/27111關聯(lián)的多重性多重性是指多個實例參與一個關聯(lián)多重性通過位于關聯(lián)線某一端的一個表達式或符號來表示對于每個關聯(lián)關系,需要做出兩個多重性的決定例如,在公司和職員的關聯(lián)中每個公司可以雇用多個職員每個職員只有一個從屬公司第111頁/共136頁2023/3/27112示例:關聯(lián)的多重性多重性決定可以揭示建模過程中隱藏的問題職員會不會失業(yè)?公司能不能沒有職員?一個職員能不能有兩份工作?職員職員雇主公司1..*1第112頁/共136頁2023/3/27113常用的多重性表示法多重性能解決兩個問題關聯(lián)是強制的(不包含零個)或隨意的(包含零個)?一個實例可以連接的其它實例的最大數(shù)目?常用的多重性表示法:1 只有一個0..* 零或更多1..* 一個或更多0..1 零或一個* 零或更多3..7 指定的范圍(3or4or5or6or7)1..3,7 結合使用(1or2or3or7)第113頁/共136頁2023/3/27114自反關聯(lián)自反關聯(lián)指同一個類中的對象的關系表示同一個類中多個對象的協(xié)作Acoursemayhave manypre-requisitesAcoursemaybeapre-requisite formanyothercoursesPre-requisiteCourse0..*0..*第114頁/共136頁2023/3/27115聚合(包含)聚合是一種特殊的關聯(lián),體現(xiàn)整體和部分的關系聚合是一種“has-a”或包含的關系同樣可以使用多重性CompanyDepartment1..*1第115頁/共136頁2023/3/27116依賴依賴表示一個對象需要其它對象為其提供服務又可稱為client-supplier關系

client使用supplier提供的服務

supplier不需要了解client(s)

單向關系ControllerDisplayItemcontrols第116頁/共136頁2023/3/27117繼承

繼承表示一個類從其它類中獲得結構和行為(子類/父類)又名普遍化交通工具是一個父類地面交通工具和空中交通工具是子類VehicleGroundVehicleAirVehicleThearrowpointstowardthesuperclass第117頁/共136頁2023/3/27118繼承繼承表示子類從父類繼承時抽象的層次單繼承:子類只從一個父類繼承多繼承:子類從多于一個的父類繼承繼承通常被稱為“is-a”或“kind-of”

一個子類的實例也“isa”父類的實例一個子類的實例是“kind-of”父類第118頁/共136頁2023/3/27119多層次ACarisakindofGroundVehiclewhichisakindofVehicleVehicleandAirVehicleareancestorsofAirplaneAirVehicleandAirplanearedescendantsofVehicleVehicleGroundVehicleAirVehicleCarTruckAirplaneHelicopter第119頁/共136頁2023/3/27120繼承的內容屬性操作關系約束繼承平衡類之間的共同之處第120頁/共136頁2023/3/27121繼承屬性屬性在繼承結構的最高一層定義所有子類的實例能夠繼承這些屬性每個子類可以增加或重新定義繼承的屬性;但在修改是要加倍注意GroundVehiclelicenseNumberweightCarTrucktonnageAtruckhasthreeattributes:licenseNumberweighttonnage第121頁/共136頁2023/3/27122繼承操作屬性在繼承結構的最高一層定義所有子類的實例能夠繼承這些操作每個子類可以增加或重新定義繼承的屬性GroundVehiclelicenseNumberweightregister()CarTrucktonnagecalculateTax()Atruckhasthreeattributes:licenseNumberweighttonnageandtwooperations:registercalculateTax第122頁/共136頁2023/3/27123繼承關系

關系也可以繼承每個子類都可以分享繼承的關系GroundVehiclelicenseNumberweightregister()AtruckhasanownerCarTrucktonnagecalculateTax()OwnerPerson1..*andacarhasanowner1第123頁/共136頁2023/3/27124對象模型化技術OMT對象模型化技術把分析時收集的信息構造在三類模型中,即對象模型、功能模型和動態(tài)模型。這個模型化的過程是一個迭代過程。第124頁/共136頁2023/3/27125基于三個模型的分析過程功能模型著重于系統(tǒng)內部數(shù)據的傳送和處理。功能模型定義“做什么”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論