



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.復(fù)習(xí)提綱第一章軟件工程概述1、分析 60 年代末出現(xiàn)的軟件危機的原因。如何理解“越早潛伏的錯誤越晚發(fā)現(xiàn),越晚發(fā)現(xiàn)的錯誤,修正的費用越高”。答:軟件危機是指在軟件開發(fā)過程中遇到的一系列嚴重問題,如:開發(fā)周期延長,成本增加,可靠性降低等。開發(fā)大型軟件與編制小程序主要有以下區(qū)別:人員:小程序從確定要求、設(shè)計、編制、使用,直到維護通常由一個人完成;大型軟件則由用戶、項目負責人、分析員、程序員、資料員、操作員等組成一支開發(fā)隊伍來協(xié)同完成。文檔:小程序很少有書面文檔;大型軟件則是集體勞動的“產(chǎn)物”,必須有規(guī)化的文檔,便于開發(fā)和維護。產(chǎn)品。小程序工作量小,如果需作大的修改,可舍棄舊程序而重新編寫;但大型軟
2、件的開發(fā)耗費了大量的人力與物力, 一般不會輕易拋棄, 而總是在舊軟件的基礎(chǔ)上一再改動,以延長它的使用期,因此“版本”在不斷升級。大型軟件的開發(fā)提出了許多新的問題,而開發(fā)方法卻還停留在編制小程序的方法上,經(jīng)驗和技巧已不能滿足開發(fā)大型軟件的需要, 導(dǎo)致軟件開發(fā)過程混亂; 使用的開發(fā)方法和技術(shù)不當, 沒有適當?shù)奈臋n, 不易交流, 維護困難, 開發(fā)成本高, 軟件質(zhì)量低等,這些問題是造成軟件危機的主要原因。2、軟件復(fù)用的概念及兩類軟件復(fù)用技術(shù):合成技術(shù)和生成技術(shù)。答:軟件復(fù)用是指在構(gòu)造新的軟件系統(tǒng)過程中,對已存在的軟件產(chǎn)品(設(shè)計結(jié)構(gòu)、源代碼、文檔等 )重復(fù)使用的技術(shù)。(1)合成技術(shù)利用部件 (compo
3、nent,組件,構(gòu)件 )合成軟件系統(tǒng)的技術(shù)。部件是可復(fù)用的一小段軟件(可為二進制形式) ,可以是對某一函數(shù)、過程、子程序、數(shù)據(jù)類型、算法等可復(fù)用軟件成分的抽象,封裝了功能細節(jié)和數(shù)據(jù)結(jié)構(gòu),有詳細的接口。(2) 生成技術(shù)利用可復(fù)用的模式, 通過生成程序產(chǎn)生一個新的程序或程序段, 產(chǎn)生的程序可以看成是模式的實例??蓮?fù)用的模式有兩種:代碼模式和規(guī)則模式。代碼模式可復(fù)用的代碼模式存在于應(yīng)用生成器中, 通過特定的參數(shù)替換, 生成抽象軟件模塊的具體實體。各種程序生成器。Word 資料.規(guī)則模式利用程序變換系統(tǒng), 把用超高級規(guī)格說明語言編寫的程序轉(zhuǎn)化成某種可執(zhí)行語言的程序。 IDL CORBA 的接口定義語言
4、。第二章 需求分析工程3、簡述需求分析工程的重要性。答: (1)在軟件生命周期中,一個錯誤發(fā)現(xiàn)越晚,修復(fù)錯誤的費用越高。(2) 許多錯誤是潛伏的,且在錯誤產(chǎn)生后很長一段時間才被檢測出。(3) 需求分析中會產(chǎn)生大量錯誤。(4) 需求分析中的錯誤多為疏忽、不一致和二義性。(5) 需求錯誤是可以被檢測出來的。4、掌握和分析 Petri 網(wǎng)的有關(guān)問題;會用可達樹分析死鎖問題。分析餓死現(xiàn)象并改進 。答: Petri 網(wǎng)的局限性1、令牌缺乏表示信息容的能力令牌只是表示動作控制的流向,無法表達信息的容。2、缺乏描述選擇“使能”變遷的策略3、 Petri 網(wǎng)不能描述有定時要求的計算問題,而很多系統(tǒng)的定時問題則
5、很重要。用可達樹分析死鎖問題:若出現(xiàn)葉結(jié)點,則系統(tǒng)中有死鎖。Word 資料.分析餓死現(xiàn)象并改進:P1P2t 1t 2P3P4tP6tP5t 43P75t 6圖中存在激發(fā)序列 <t1,t3,t5> 無限循環(huán),而 <t2,t4,t6> 被“餓死”,原因是 Petri 網(wǎng)不能描述選擇策略。修改 Petri 網(wǎng),強制它使用一種選擇策略,避免了t3 在 t4 激發(fā)之前激發(fā)兩次。如下圖:Word 資料.5、分析、理解電梯運動的Petri 網(wǎng)。PPT 第二章 49按下tmin (C)=0.05tmax (C)=0.05t min =0.1Word 資料.Word 資料.第三章軟件開發(fā)
6、的結(jié)構(gòu)化方法6、傳統(tǒng)的瀑布模型將軟件開發(fā)分為幾個步驟,每一步得到什么結(jié)果。問題定義可行性研究需求分析總體設(shè)計詳細設(shè)計編碼單元測試綜合測試軟件維護圖1-1瀑布模問題定義的結(jié)果: 問題目標和規(guī)模報告書可行性研究的結(jié)果:可行性研究報告 。需求分析的結(jié)果: 需求規(guī)格說明書7、簡述結(jié)構(gòu)化方法需求分析的綜合要求。答:需求分析階段的任務(wù)主要是確定目標系統(tǒng)必須具備哪些功能。結(jié)構(gòu)化需求分析的綜合要求: 功能要求:指系統(tǒng)必須完成的所有功能。 性能要求:如聯(lián)機系統(tǒng)的響應(yīng)時間,系統(tǒng)的存儲容量、健壯性和安全性等方面的要求。 運行要求:指系統(tǒng)運行所需要的軟硬件環(huán)境。Word 資料. 未來要求:指系統(tǒng)將來可能的擴充要求。
7、數(shù)據(jù)要求:指系統(tǒng)所要處理的數(shù)據(jù)以及它們之間的聯(lián)系。需求分析的結(jié)果: 需求規(guī)格說明書8、能繪制 DFD,并能將 DFD 映射為軟件結(jié)構(gòu)圖。PPT 第三章 18例子:某工廠采購部門每天要開出定貨清單,清單中包括訂購部件的部件號、部件名、規(guī)格、說明、訂購量、當前價格、主要供應(yīng)商和輔助供應(yīng)商。部件入庫或出庫稱為業(yè)務(wù),通過倉庫中的終端把業(yè)務(wù)報告給定貨系統(tǒng),處理庫存業(yè)務(wù)。當某種部件的庫存量少于標準線以下時,倉庫管理員就應(yīng)該及時通知定貨系統(tǒng)開出定貨清單,交由采購員采購。根據(jù)畫數(shù)據(jù)流圖的步驟畫出定貨系統(tǒng)的數(shù)據(jù)流圖。(不需要答 )(1)從系統(tǒng)的簡述中提取數(shù)據(jù)流圖的四個成分;1) 源點和匯點。倉庫管理員視為源點,
8、采購員視為匯點2) 處理。處理通常是系統(tǒng)簡述中的動詞短語,如產(chǎn)生定貨清單,處理庫存業(yè)務(wù)等。3) 數(shù)據(jù)流。從系統(tǒng)的源點流出和流入?yún)R點的數(shù)據(jù)流即是系統(tǒng)的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流。4) 數(shù)據(jù)存儲。 確定哪些數(shù)據(jù)應(yīng)保存在數(shù)據(jù)存儲中。庫存業(yè)務(wù)一旦產(chǎn)生就立即被處理,所以不必保存。定貨清單一天只產(chǎn)生一次,故需要保存產(chǎn)生定貨清單的數(shù)據(jù)。有關(guān)庫存零部件的信息包括定貨標準線也應(yīng)作為數(shù)據(jù)存儲,統(tǒng)稱為庫存數(shù)據(jù)。(2 )定貨系統(tǒng)數(shù)據(jù)流圖的基本成分源點 / 匯點處理數(shù)據(jù)流數(shù)據(jù)存儲管理員產(chǎn)生定貨清單定貨清單定貨數(shù)據(jù)采購員處理庫存業(yè)務(wù)庫存業(yè)務(wù)庫存數(shù)據(jù)(3) 畫出系統(tǒng)的高層數(shù)據(jù)流圖 ;圖在 PPT 第三章 28、 29將 DFD
9、 映射為軟件結(jié)構(gòu)圖圖在 PPT 第三章 909、簡述軟件測試的三個步驟、黑盒和白盒測試方法。聚、耦合類型分析。Word 資料.(1)單元測試:又稱模塊測試測試對象是軟件設(shè)計中最小的單元 模塊,其目的是發(fā)現(xiàn)模塊部存在的錯誤。單元測試發(fā)現(xiàn)編碼階段的錯誤。測試容 :(a) 模塊間的接口 ;(b) 模塊的局部數(shù)據(jù)結(jié)構(gòu)(c) 模塊的重要通路尤其是錯誤處理的通路和影響上述各方面的邊界條件。(2) 集成測試:又稱組裝測試或聯(lián)合測試集成測試發(fā)現(xiàn)軟件設(shè)計階段的錯誤。在單元測試的基礎(chǔ)上, 需要將所有模塊按設(shè)計要求組裝成系統(tǒng)。在經(jīng)過單元測試未發(fā)現(xiàn)錯誤的模塊,組裝之后仍可能出現(xiàn)各種問題。集成測試的基本方法:邊組裝邊測
10、試。有自頂向下或自底向上兩種方法。(a) 自頂向下測試從主控模塊開始, 沿著模塊層次, 邊組裝邊測試已組裝部分的功能,直到全部組裝完畢,系統(tǒng)達到設(shè)計的功能和性能要求為止。 為保證測試的進行, 必須提供保證測試條件的樁模塊。樁模塊:用來模擬被測模塊的下層模塊的模塊。再用實際的下層模塊代替樁模塊,并進行回歸測試?;貧w測試是相對于原始測試而言的,它部分或全部地重復(fù)前面進行過的測試工作。(b) 自底向上測試與自頂向下測試相反,它先組裝最低層模塊,向上逐步組裝。每組裝一個模塊,便測試由此模塊及其下層模塊組成的子功能。 直到全部裝配完畢, 達到系統(tǒng)設(shè)計的功能和性能要求為止。為保證測試的進行,必須提供保證測
11、試條件的“驅(qū)動程序 ”。用實際的上層模塊代替該驅(qū)動程序。(3) 確認測試:又稱有效性測試或驗收測試確認測試檢查系統(tǒng)的功能和性能是否達到系統(tǒng)分析說明書提出的設(shè)計指標,即是否滿足用戶要求,檢查文檔是否齊全等。確認測試發(fā)現(xiàn)軟件分析階段的錯誤。黑盒測試法是根據(jù)程序的功能和性能進行測試的方法。它把被測程序看成一個黑盒子,完全不考慮程序部的數(shù)據(jù)結(jié)構(gòu)和邏輯通路。也就是說, 黑盒測試是在程序接口進行的測試,它只檢查程序功能和性能是否滿足預(yù)期需要,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出數(shù)據(jù),并保持外部信息的完整性。產(chǎn)生黑盒測試的測試用例的方法有如下幾種:等價類劃分法邊界值分析法、因果圖法、錯誤推測法白盒測試
12、法是根據(jù)程序的邏輯結(jié)構(gòu)進行測試的方法。 它把程序看成是裝在一個透明的白盒中,也就是完全了解程序部的結(jié)構(gòu)和處理過程。 這種方法按程序部的邏輯來測試程序,檢驗程序的每條通路是否都能按規(guī)定要求正確工作。Word 資料.產(chǎn)生白盒測試用例的方法有如下幾種:語句覆蓋、判定覆蓋、條件覆蓋、判定/ 條件覆蓋、條件組合覆蓋。一般而言,測試時以黑盒測試法為主,白盒測試法為輔。模塊間的耦合程度按從低到高分類如下:無耦合。 如果兩模塊之間沒有任何聯(lián)系, 每一個都能獨立地工作而不需要另一模塊的存在,是彼此完全獨立的,則這兩個模塊間屬于無耦合的情況。數(shù)據(jù)耦合。 如果兩個模塊是通過參數(shù)表僅傳遞數(shù)據(jù)型信息,則這種耦合稱為數(shù)據(jù)
13、耦合。數(shù)據(jù)耦合是松散的耦合,模塊間的獨立性較強。軟件結(jié)構(gòu)中至少有這種耦合。特征耦合。 若兩個模塊通過參數(shù)表傳遞的是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡單變量,這就是特征耦合。是數(shù)據(jù)耦合的一種變種。增加出錯的機會,不易改動(數(shù)據(jù)結(jié)構(gòu)變化時)。將該數(shù)據(jù)結(jié)構(gòu)上的操作全部集中在一個模塊中,就可消除這種耦合??刂岂詈稀H绻麄鬟f控制型信息,這就是控制耦合。對被控制的模塊做任何修改,都會影響到控制模塊,降低模塊的獨立性。公共耦合。若一組模塊使用了公共數(shù)據(jù),則它們之間的耦合稱為公共耦合。公共數(shù)據(jù)包括全程變量、共享的通信區(qū)、存的公共覆蓋區(qū)等。公共數(shù)據(jù)的使用,必然降低軟件的可讀性、可修改性和可靠性。容耦合。如果發(fā)生下列
14、情況之一,兩個模塊間就是容耦合:? 一個模塊直接訪問另一個模塊的部數(shù)據(jù);? 一個模塊通過不正常入口直接轉(zhuǎn)入另一模塊部;? 一個模塊有多個入口;? 兩模塊有一部分代碼重疊 ( 只在匯編語言中出現(xiàn) );容耦合是耦合性最高的耦合, 即是模塊間最壞的聯(lián)系方式, 現(xiàn)在大多數(shù)高級程序設(shè)計語言中已經(jīng)不會出現(xiàn)這種耦合。在進行設(shè)計時應(yīng)該采取以下原則:以數(shù)據(jù)耦合為主,特征耦合為輔,少用控制耦合,限制公共耦合,杜絕容耦合。模塊的聚性按從低到高分類如下:偶然聚。 如果模塊中各組成成分間彼此沒有實質(zhì)聯(lián)系,即使有聯(lián)系也是很松散的,模塊功能模糊,則稱為偶然聚。例如有時寫完一段程序后,發(fā)現(xiàn)一組語句在程序中多處出現(xiàn),便將其組織
15、在一個模塊以節(jié)省存,就出現(xiàn)了偶然聚的模塊。在模塊設(shè)計時,如果發(fā)覺一個模塊難以命名,就應(yīng)考慮是否出現(xiàn)偶然聚。邏輯聚。如果一個模塊完成的是邏輯上相同或相似的一組功能,則稱為邏輯聚。例如,設(shè)計一個模塊打印各種報表,如固定資產(chǎn)報表、產(chǎn)品成本報表、利潤報表等,打印何種報表靠傳遞控制參數(shù)調(diào)用。由于不同功能在一個模塊中,通常在設(shè)計模塊時會出現(xiàn)幾種功能共用部分代碼,從而使得修改、添加或去掉功能都很困難。時間聚。若一個模塊中包含的任務(wù)必須在同一時間執(zhí)行, 而這些任務(wù)的次序無關(guān)緊要,則叫時間聚。例如各種初始化工作由初始化模塊完成,而各種結(jié)束工作被組合到結(jié)束模塊中,這樣它的執(zhí)行將涉及到其它許多模塊。Word 資料.
16、過程聚。 如果一個模塊的處理成分間是相關(guān)的, 而且必須以特定順序執(zhí)行, 則稱為過程聚。例如把程序流程圖中的循環(huán)、判斷和計算分成三個模塊,則這三個模塊就是過程聚的模塊。通信聚。模塊的所有成分都通過公共數(shù)據(jù)而發(fā)生關(guān)系的聚就是通訊聚。例如對同一文件進行輸入、修改、輸出操作。模塊中各成分經(jīng)模塊的局部的公共數(shù)據(jù)進行通信。順序聚。 若模塊中每個處理成分對應(yīng)一個功能, 且這些處理必須按順序執(zhí)行, 則稱為順序聚。例如一個處理成分的輸出是下一個處理成分的輸入的模塊就是順序聚。功能聚。模塊中各處理成分屬于一個整體,都為了完成同一功能,很難分割,這就是功能聚。這種模塊通常有明確表達模塊功能的名稱。第四章軟件開發(fā)的面
17、向?qū)ο蠓椒?0、與 OO 方法相比,傳統(tǒng)方法存在哪些問題。OO 方法有哪些優(yōu)點。答: 傳統(tǒng)方法存在下列問題:(1)對現(xiàn)實世界的認識與編程之間存在理解上的鴻溝;功能與數(shù)據(jù)相分離造成。(2) 修改困難;系統(tǒng)是圍繞如何實現(xiàn)一定的行為進行,當需求變化時,數(shù)據(jù)常常發(fā)生變化,最終導(dǎo)致數(shù)據(jù)的結(jié)構(gòu)變化,難于修改。(3) 維護困難;為了得到“好的軟件結(jié)構(gòu)” ,使作用域在控制域之中,導(dǎo)致系統(tǒng)總體結(jié)構(gòu)混亂,難于維護。(4) 自頂向下功能分解的分析方法限制了軟件的可復(fù)用性。面向?qū)ο蠓椒ǖ膬?yōu)點(1)與人類習(xí)慣的思維方法一致核心是對象,它是現(xiàn)實世界實體的正確抽象。而傳統(tǒng)方法忽略了數(shù)據(jù)和操作之間的聯(lián)系。(2) 穩(wěn)定性好它基
18、于構(gòu)造問題領(lǐng)域的對象模型, 以對象為中心構(gòu)造軟件系統(tǒng), 當功能發(fā)生需求變化時,不會引起軟件結(jié)構(gòu)的整體變化。而傳統(tǒng)方法基于功能分析和分解, 以算法為核心, 功能變化通常會引起軟件結(jié)構(gòu)的整體變化。(3) 可重用性好對象類固有的封裝性和信息隱蔽以及很好的繼承機制, 使得面向?qū)ο蠓椒ň哂泻芎玫目蓮?fù)用性。傳統(tǒng)方法只是庫一級的復(fù)用。Word 資料.(4) 可維護性好OO 方法的模塊機制、繼承機制、多態(tài)性機制,使得設(shè)計的軟件易于理解、修改、測試,更易于維護。而傳統(tǒng)方法及其面向過程開發(fā)的軟件是難以維護的。11、找出問題域有關(guān)對象的兩種方法:LIA 和 3VM.簡述 LIA 和 3VM 及其作用,并比較之。答:
19、 (1)基于語言的信息分析方法(LIA)主要思想: 先對要建立的系統(tǒng)及其需求用自然語言描述,然后對這些描述進行語法分析。名詞對象,形容詞屬性,動詞服務(wù)填進一 OOA/OOD 工作表格。最后對表中的項進行分析,從中確定問題域中的對象。(2) 三視圖模型法( 3VM )觀察一個事物的角度不同, 將得到不同的視圖。 從多個角度觀察得到的同一個事物的多個視圖更能完整地、全面地反映該事物。LIA 方法要求分析員從眾多的侯選對象中識別出目標系統(tǒng)的對象,這依賴于分析員的抽象和分析能力,隨意性大,可操作性不強。LIA 方法提供了一個發(fā)現(xiàn)對象的出發(fā)點,一般將該方法用于對象模型建立的初始階段。3VM法也依賴于分析
20、人員的抽象和分析能力,但運用建立3VM的方法,確實提供了分析對象的入口點和細化的方法,具有相對較好的操作性。該方法一般用于對象模型的細化。12、分析電梯到達調(diào)度樓層的事件-響應(yīng)對象交互圖、實例連接圖。電梯到達調(diào)度樓層的事件-響應(yīng)對象交互圖PPT 第四章 931當電梯到達某一樓層時,就會產(chǎn)生一個電梯到達事件Arrival Event 。其屬性有:該到達事件的唯一標識:ECS/OOA EROI圖第3個事件:電梯到達調(diào)度樓層arrival_id到到目目電超召 召生成到達事件的電梯:達達的的電 梯樓載喚 喚事面事面梯 電層傳件板件板機感事 面elevator_id件 板器生成該到達事件的樓層:arri
21、val_floor圖3-12 電梯到達調(diào)度樓層Word 資料.2 電梯到達事件生成后,將會向與 elevator_id 相關(guān)聯(lián)的到達面板發(fā)送一個單向的消息,該消息是: (arrival_floor )(電梯 elevator_id所到達的樓層)與 elevator_id相關(guān)聯(lián)的到達面板根據(jù)收到的消息刷新到達面板的顯示ECS/OOA EROI圖第3個事件:電梯到達調(diào)度樓層到到目目電超召 召達達的的電梯樓載喚 喚事面事面梯電層傳事 面件板件板機感件 板器圖3-12 電梯到達調(diào)度樓層3 電梯到達事件將會向與floor_id相關(guān)聯(lián)的floor 發(fā)送一個單向的消息,該消息是:(到達事件的唯一標識, 電梯
22、唯一標識,到達的樓層號)( arrival_id,report_elevator_id,report_arrival_floor_id)ECS/OOA EROI圖第3個事件:電梯到達調(diào)度樓層到到目目電超召召達達的的電梯樓載喚喚事面事面梯電層傳事面件板件板機感件板器圖3-12 電梯到達調(diào)度樓層4. 樓層 Floor 收到上述消息后,由服務(wù) Floor.Process_Elevator_Arrival_ 處理。該服務(wù)將向電梯 report_elevator_id 發(fā)送一個雙向的消息:(report_status_direction?,report_current_direction?)ECS/OO
23、A EROI圖第3個事件:電梯到達調(diào)度樓層到到目目電超 召召達達的的電梯樓載 喚喚事面事面梯電層傳 事面件板件板機感 件板器Word 資料.電梯 report_elevator_id收到該消息后, 會有相應(yīng)的服務(wù)Elevator.Report_Status_Direction和 levator.Report_Current_Direction服務(wù)向樓層Floor 報告電梯當前的運行方向和狀態(tài)方向。5.Floor 發(fā)給與 report_elevator_id所關(guān)聯(lián)的電梯的目的面板一個雙向消息:(report_arrival_floor,destination_pending_above?,des
24、tination_pending_beloow?)ECS/OOA EROI圖第3個事件:電梯到達調(diào)度樓層到到目目電超召召達達的的電梯樓載喚喚事面事面梯電層傳事面件板件板機感件板器圖3-12 電梯到達調(diào)度樓層目的面板收到該消息后,即可知道樓層report_arrival_floor是否是調(diào)度樓層。6.Floor 發(fā)給與 arrival_floor 所關(guān)聯(lián)的召喚面板一個雙向消息:(report_summons_pending_up? report_summons_pending_down?)ECS/OOA EROI圖第3個事件:電梯到達調(diào)度樓層到到目目電超召召達達的的電梯樓載喚喚事面事面梯電層傳事
25、面件板件板機感件板器圖3-12 電梯到達調(diào)度樓層該樓層的召喚面板收到該消息后,相應(yīng)的服務(wù)即可報告該樓層的召喚請上、下或是沒有請求。知道該樓層是否有召喚,以及電梯的狀態(tài)方向和當前運行方向等信息,即可判定該樓層是否是調(diào)度樓層。Word 資料.7. 如果是調(diào)度樓層(這里假設(shè)是該樓層的召喚導(dǎo)致的) ,則(1) Floor 向與其相關(guān)聯(lián)的召喚面板對象發(fā)消息,使其刷新面板 ;(2) 向與 report_elevator_id所關(guān)聯(lián)的電梯發(fā)消息。電梯接受到消息后,更新其當前狀態(tài) (current_status) 、(current_direction) 、(status_direction)等;(3) 電梯
26、向與其關(guān)聯(lián)的電梯電機對象發(fā)送停止消息(Stop)。ECS/OOA EROI圖第3個事件:電梯到達調(diào)度樓層到到目目電超召召達達的的電梯樓載喚喚事面事面梯電層傳事面件板件板機感件板器圖3-12 電梯到達調(diào)度樓層8. 到達事件結(jié)束。實例連接圖 :實例連接分類Word 資料.有 3 種類型的實例連接:(1)一對一型 :一個對象只依賴于另外一個對象。如一個飛行員駕駛一架飛機。(2) 一對多型:一個對象同時依賴多個對象。如一個教師指導(dǎo) 5 個學(xué)生的畢業(yè)設(shè)計。(3) 多對多型:相互依賴的對象數(shù)在一個以上。如全班 30 名學(xué)生學(xué)習(xí) 6 門課程。對下圖分析1,m11FloorElevator11Overweig
27、thSensor11,m0,m111ElevatorMotorSummonsArrival1PanelEventArrival0,m1Panel1SummonsDestination1DestinationEventEvent0,mPanel13-14電梯控制系統(tǒng)實例連接13、在 Coad 和 Yourdon 的 OOD中,從哪四個方面對 OOA 進行了擴充,簡述其容。答: Coad 和 Yourdon提出從以下四個方面考慮:(1)問題域部分 (Problem Domain Component, PDC)問題域部分是為了消除系統(tǒng)的存貯容量無限及對象間的通信速度無限快等假設(shè)的。 (2) 人 -機
28、接口部分 (Human Interface Component, HIC)人 -機接口部分是為了將系統(tǒng)和外界的通信任務(wù)由特定的對象承擔,使得系統(tǒng)的功能和實現(xiàn)相分離。 這樣,如果系統(tǒng)與外界的接口發(fā)生改變時,只需要改變這部分對象即可。 (3) 任務(wù)管理部分(Task Management Component, TMC )任務(wù)管理部分是為了將系統(tǒng)和具體的操作系統(tǒng)提供的任務(wù)調(diào)用由特定的對象來承擔。如果操作系統(tǒng)的環(huán)境改變,只需要改變這部分對象即可。(4) 數(shù)據(jù)庫管理部分(Database Management Component, DMC)Word 資料.數(shù)據(jù)庫管理部分為了將系統(tǒng)和由特定數(shù)據(jù)庫系統(tǒng)所管理
29、的數(shù)據(jù)的訪問有特定的對象來承擔。 如果系統(tǒng)所應(yīng)用到的一些由數(shù)據(jù)庫管理的數(shù)據(jù), 而數(shù)據(jù)庫的類型或結(jié)構(gòu)發(fā)生改變時,只需要改變這部分對象。14、分析電梯控制系統(tǒng)中召喚事件和圖書管理系統(tǒng)中借閱事件的完整執(zhí)行機制。PDCHIC問題域部分人- 機接口部分SummonsSummonsEventButton報告按下按鈕召喚按鈕產(chǎn)生了一個召喚事件!圖3-19召喚事件的執(zhí)行機制當按鈕按下時, 將產(chǎn)生一個中斷, 即 “所發(fā)出的信號 ” 中應(yīng)包含樓層的信息或編碼, 這個編碼應(yīng)存放到該中斷對應(yīng)的中斷寄存器中。圖書管理系統(tǒng)中借閱事件的完整執(zhí)行機制。借閱一本書的過程,涉及了三個實體:“Reader ”實體存儲借閱者;“Bo
30、ok ”實體存儲書;“Reader-Book ”存儲某個借閱者借閱某本書的記錄。對象 “Borrow ”來負責處理 “借閱 ”事件。Word 資料.ReaderBook111,m1,mReader-Book圖3-22 “借閱”所涉及的實體關(guān)系數(shù)據(jù)庫DBMSDMCPDCHIC數(shù)據(jù)庫管理部分問題域部分人-機接口部分Book4Book按下Table7書按鈕書基表82Borrow Book滿意的用戶WindowReader-10借閱窗口1BookBorrowBorrow Book借閱11借閱12Finish Window基表借閱完成窗口93Reader5ReaderTable讀者基6讀者表圖3-23借
31、閱事件的執(zhí)行機制第五章統(tǒng)模語言 UML 與實例15、簡述 UML 中的狀態(tài)圖和活動圖以及它們之間的差異。Word 資料.答:(1)狀態(tài)圖:狀態(tài)機對類的對象可能生命歷史建模。狀態(tài)機用來描述一個特定對象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。狀態(tài)描述了一個類對象生命期中的一個時間段,對對象生命期中的一段時間建模,該時間對象滿足一定的條件。當事件發(fā)生時,它可能導(dǎo)致遷移的激發(fā),使對象改變至新狀態(tài)。當遷移激發(fā)時,附屬于遷移的移動可能被執(zhí)行。狀態(tài)機顯示為狀態(tài)圖 (State Diagram) 。狀態(tài)圖可用于描述用戶界面、設(shè)備控制和其它交互式子系統(tǒng)。狀態(tài)機和 OOA 中的狀態(tài)遷移圖一致。(2)活動圖 :活動圖
32、顯示動作及其結(jié)果。 活動圖著重描述操作 (方法 )實現(xiàn)中所完成的工作以及用例實例或?qū)ο笾械幕顒印?活動圖是另一種描述交互的方式, 描述采取何種動作, 做什么 (對象狀態(tài)改變 ) ,何時發(fā)生 (動作序列 ) 。差別:活動圖描述動作執(zhí)行的工作和活動及對象狀態(tài)改變的結(jié)果,不需指定任何事件。當狀態(tài)中的動作被執(zhí)行 ( 不象狀態(tài)圖需指定任何事件 )時,活動圖中的狀態(tài)(稱為動作狀態(tài))直接轉(zhuǎn)移到下一個階段。活動圖可以用作下述目的:(1)描述操作執(zhí)行過程中所完成的工作( 動作 );(2) 描述對象部的工作;(3) 顯示如何執(zhí)行一組相關(guān)的動作,以及這些動作如何影響它們周圍的對象;(4) 顯示用例的實例是如何執(zhí)行動
33、作以及如何改變對象狀態(tài);(5) 說明一次商務(wù)活動中的角色、工作流組織和對象是如何工作的。16、理解、分析和繪制UML 的各種視圖 (戲院管理系統(tǒng)、汽車租賃系統(tǒng)、教學(xué)管理系統(tǒng)等)。戲院管理系統(tǒng): PPT 第五章:用例圖( 23 )、類圖 (32) 、順序圖( 36 )協(xié)作圖( 39)、狀態(tài)圖:(42 )、活動圖( 46)教學(xué)管理系統(tǒng): PPT 第五章用例圖( 71、72 )、類圖 (78 、79) 、順序圖( 86、 87 )、協(xié)作圖( 88 )、狀態(tài)圖:( 89 、 90 )、活動圖( 91)Word 資料.第六章 面向?qū)ο箝_發(fā)中的設(shè)計模式17、簡述設(shè)計模式的作用、設(shè)計模式的四個基本要素。答:
34、作用:有經(jīng)驗的軟件員總是將面向?qū)ο筌浖O(shè)計的經(jīng)驗記錄成“設(shè)計模式” ,以便在今后的軟件開發(fā)中復(fù)用以往的成功設(shè)計。四個基本要素:模式名稱、問題、解決方案和后果(1)模式名稱:通常用來描述一個設(shè)計問題、它的解法和后果,由一到兩個詞描述。模式名稱可以在更高的抽象層次上進行設(shè)計并交流設(shè)計思想。(2)問題:描述模式使用的時間、條件、解釋問題及其背最。它可能描述諸如如何將一個算法表示成一個對象這樣的特殊設(shè)計問題。( 3 )解決方案:描述設(shè)計的基本組成要素,如它們的關(guān)系、各自的任務(wù)以及相互之間的合作。 它并非針對某個特殊問題。 設(shè)計模式提供有關(guān)設(shè)計問題的一個抽象描述以及如何安排這些基本要素以解決問題。( 4
35、 )后果:描述應(yīng)用設(shè)計模式后的結(jié)果和利弊。對于軟件設(shè)計來說,通常要考慮的是空間和時間的權(quán)衡,還有語言問題和實現(xiàn)問題。對于 OO 設(shè)計,可重用性很重要。此外,后果還包括對系統(tǒng)靈活性、可擴充性及可移植性的影響。18、理解 ModelView合約。答:( 1)形式合約是一種描述框架設(shè)計的方法,它強調(diào)組成框架的對象間的交互關(guān)系。(2)形式合約的特點:符號少且能映射到OO 編程語言中的概念,如參與者映射到對象??紤]到了復(fù)雜行為由簡單行為組成的事實, 合約的修訂和擴充操作使得合約靈活,易于應(yīng)用。(3)形式合約的基本元素:參與者:形式合約的第一個組成部分。對每個參與者要規(guī)定它應(yīng)承擔的責任。責任有:類型責任:
36、與實例變量和方法有關(guān)的責任。因果責任:描述與類型責任相關(guān)的操作與條件“-> ” : 表示方法調(diào)用。如 s->Update() 表示對 Subscribers 中的方法 Update() 的調(diào)用。 “ v ”: 表示對實例變量 v 賦值。“<ov:c:e> ”: 表示用操作符o 將所有滿足條件c 的變量 v 所構(gòu)成的表達式e 連接起來。Word 資料.如<|s:s Subscriber:s->Update()>意味著s1->Update()|s2->Update()| .,即對 Subscriber 集合中的所有對象發(fā)送Update() 消息
37、?!?”:表示參與者必須滿足的條件的說明。如AttachSubscriber(s:Subscriber)=>s Subscriber: 表示一個條件,s 是Subscriber 集合的成員在以s為參數(shù)執(zhí)行AttachSubscriber 后必須為真。19、簡述選擇設(shè)計模式的方法。答:設(shè)計模式依據(jù)其目的可分為創(chuàng)建型、結(jié)構(gòu)型、行為型三種。共23 個模式下面是幾個幫助選擇設(shè)計模式的方法:·考慮設(shè)計模式是怎樣解決設(shè)計問題的:對設(shè)計模式的討論,能幫助找到合適的對象、 決定對象的粒度、 指定對象接口以及設(shè)計模式解決設(shè)計問題的幾個其他方法。·瀏覽模式的意圖部分: 通讀每個模式的意圖, 找出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能助力2025年財富管理:提升客戶體驗的解決方案報告
- 人工智能在文化遺產(chǎn)數(shù)字化保護中的智能分析與決策支持報告
- 健康領(lǐng)域戶外活動規(guī)劃與實施
- 股權(quán)投資項目可行性研究報告
- 2025至2030基于生物的粘合劑和密封劑行業(yè)市場深度研究與戰(zhàn)略咨詢分析報告
- 設(shè)計構(gòu)成導(dǎo)入方法
- 2025版綠色建筑安裝工程施工合作協(xié)議
- 二零二五版物聯(lián)網(wǎng)采購合同風險控制與設(shè)備互聯(lián)
- 二零二五年度商鋪租賃合同書范本:合同要素分析
- 二零二五年度健康食品連鎖店授權(quán)銷售合同示例
- 2025年人教版小學(xué)一年級下冊數(shù)學(xué)期末易錯題測試試題(含答案和解析)
- 一書一簽收發(fā)管理制度
- 對患者的健康教育制度
- 2025年酒店管理專業(yè)基礎(chǔ)知識考試試題及答案
- 三級醫(yī)院評審標準感染防控部分解讀(25VS22版)
- 中國PSRAM行業(yè)市場供需態(tài)勢及發(fā)展前景研判報告
- 2025年數(shù)智供應(yīng)鏈案例集-商務(wù)部
- 2025年《社區(qū)居家智慧康養(yǎng)管理》課程標準(含課程思政元素)
- 加裝電梯合同解除協(xié)議書
- T/CCOA 50-2023低菌小麥粉生產(chǎn)技術(shù)規(guī)程
- 安全生產(chǎn)責任制度完整版
評論
0/150
提交評論