版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
復(fù)習(xí)提綱第一章軟件工程概述1、分析60年代末出現(xiàn)的軟件危機(jī)的原因。如何理解“越早潛伏的錯(cuò)誤越晚發(fā)現(xiàn),越晚發(fā)現(xiàn)的錯(cuò)誤,修正的費(fèi)用越高〞。答:軟件危機(jī)是指在軟件開發(fā)過程中遇到的一系列嚴(yán)重問題,如:開發(fā)周期延長,本錢增加,可靠性降低等。開發(fā)大型軟件與編制小程序主要有以下區(qū)別:⑴人員:小程序從確定要求、設(shè)計(jì)、編制、使用,直到維護(hù)通常由一個(gè)人完成;大型軟件那么由用戶、工程負(fù)責(zé)人、分析員、程序員、資料員、操作員等組成一支開發(fā)隊(duì)伍來協(xié)同完成。⑵文檔:小程序很少有書面文檔;大型軟件那么是集體勞動的“產(chǎn)物〞,必須有標(biāo)準(zhǔn)化的文檔,便于開發(fā)和維護(hù)。⑶產(chǎn)品。小程序工作量小,如果需作大的修改,可舍棄舊程序而重新編寫;但大型軟件的開發(fā)消耗了大量的人力與物力,一般不會輕易拋棄,而總是在舊軟件的根底上一再改動,以延長它的使用期,因此“版本〞在不斷升級。大型軟件的開發(fā)提出了許多新的問題,而開發(fā)方法卻還停留在編制小程序的方法上,經(jīng)驗(yàn)和技巧已不能滿足開發(fā)大型軟件的需要,導(dǎo)致軟件開發(fā)過程混亂;使用的開發(fā)方法和技術(shù)不當(dāng),沒有適當(dāng)?shù)奈臋n,不易交流,維護(hù)困難,開發(fā)本錢高,軟件質(zhì)量低等,這些問題是造成軟件危機(jī)的主要原因。2、軟件復(fù)用的概念及兩類軟件復(fù)用技術(shù):合成技術(shù)和生成技術(shù)。答:軟件復(fù)用是指在構(gòu)造新的軟件系統(tǒng)過程中,對已存在的軟件產(chǎn)品(設(shè)計(jì)結(jié)構(gòu)、源代碼、文檔等)重復(fù)使用的技術(shù)。(1)合成技術(shù)利用部件(component,組件,構(gòu)件)合成軟件系統(tǒng)的技術(shù)。部件是可復(fù)用的一小段軟件(可為二進(jìn)制形式),可以是對某一函數(shù)、過程、子程序、數(shù)據(jù)類型、算法等可復(fù)用軟件成分的抽象,封裝了功能細(xì)節(jié)和數(shù)據(jù)結(jié)構(gòu),有詳細(xì)的接口。(2)生成技術(shù)利用可復(fù)用的模式,通過生成程序產(chǎn)生一個(gè)新的程序或程序段,產(chǎn)生的程序可以看成是模式的實(shí)例??蓮?fù)用的模式有兩種:代碼模式和規(guī)那么模式。①代碼模式可復(fù)用的代碼模式存在于應(yīng)用生成器中,通過特定的參數(shù)替換,生成抽象軟件模塊的具體實(shí)體。各種程序生成器。②規(guī)那么模式利用程序變換系統(tǒng),把用超高級規(guī)格說明語言編寫的程序轉(zhuǎn)化成某種可執(zhí)行語言的程序。IDL——CORBA的接口定義語言。第二章需求分析工程3、簡述需求分析工程的重要性。答:(1)在軟件生命周期中,一個(gè)錯(cuò)誤發(fā)現(xiàn)越晚,修復(fù)錯(cuò)誤的費(fèi)用越高。(2)許多錯(cuò)誤是潛伏的,且在錯(cuò)誤產(chǎn)生后很長一段時(shí)間才被檢測出。(3)需求分析中會產(chǎn)生大量錯(cuò)誤。(4)需求分析中的錯(cuò)誤多為疏忽、不一致和二義性。(5)需求錯(cuò)誤是可以被檢測出來的。4、掌握和分析Petri網(wǎng)的有關(guān)問題;會用可達(dá)樹分析死鎖問題。分析餓死現(xiàn)象并改良。答:Petri網(wǎng)的局限性1、令牌缺乏表示信息內(nèi)容的能力令牌只是表示動作控制的流向,無法表達(dá)信息的內(nèi)容。2、缺乏描述選擇“使能〞變遷的策略3、Petri網(wǎng)不能描述有定時(shí)要求的計(jì)算問題,而很多系統(tǒng)的定時(shí)問題那么很重要。用可達(dá)樹分析死鎖問題:假設(shè)出現(xiàn)葉結(jié)點(diǎn),那么系統(tǒng)中有死鎖。分析餓死現(xiàn)象并改良:P2PP2P1P4P5P6P7P3t1t2t3t4t5t6圖中存在激發(fā)序列<t1,t3,t5>無限循環(huán),而<t2,t4,t6>被“餓死〞,原因是Petri網(wǎng)不能描述選擇策略。修改Petri網(wǎng),強(qiáng)制它使用一種選擇策略,防止了t3在t4激發(fā)之前激發(fā)兩次。如以下圖:5、分析、理解電梯運(yùn)動的Petri網(wǎng)。PPT第二章49按下按下tmin=0.1tmin(C)=0.05tmax(C)=0.05第三章軟件開發(fā)的結(jié)構(gòu)化方法6、傳統(tǒng)的瀑布模型將軟件開發(fā)分為幾個(gè)步驟,每一步得到什么結(jié)果。問題定義問題定義可行性研究需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼與單元測試綜合測試軟件維護(hù)圖1-1瀑布模型問題定義的結(jié)果:?問題目標(biāo)和規(guī)模報(bào)告書?可行性研究的結(jié)果:?可行性研究報(bào)告?。需求分析的結(jié)果:?需求規(guī)格說明書?7、簡述結(jié)構(gòu)化方法需求分析的綜合要求。答:需求分析階段的任務(wù)主要是確定目標(biāo)系統(tǒng)必須具備哪些功能。結(jié)構(gòu)化需求分析的綜合要求:⑴功能要求:指系統(tǒng)必須完成的所有功能。⑵性能要求:如聯(lián)機(jī)系統(tǒng)的響應(yīng)時(shí)間,系統(tǒng)的存儲容量、健壯性和平安性等方面的要求。⑶運(yùn)行要求:指系統(tǒng)運(yùn)行所需要的軟硬件環(huán)境。⑷未來要求:指系統(tǒng)將來可能的擴(kuò)充要求。⑸數(shù)據(jù)要求:指系統(tǒng)所要處理的數(shù)據(jù)以及它們之間的聯(lián)系。需求分析的結(jié)果:?需求規(guī)格說明書?8、能繪制DFD,并能將DFD映射為軟件結(jié)構(gòu)圖。PPT第三章18例子:某工廠采購部門每天要開出定貨清單,清單中包括訂購部件的部件號、部件名、規(guī)格、說明、訂購量、當(dāng)前價(jià)格、主要供給商和輔助供給商。部件入庫或出庫稱為業(yè)務(wù),通過倉庫中的終端把業(yè)務(wù)報(bào)告給定貨系統(tǒng),處理庫存業(yè)務(wù)。當(dāng)某種部件的庫存量少于標(biāo)準(zhǔn)線以下時(shí),倉庫管理員就應(yīng)該及時(shí)通知定貨系統(tǒng)開出定貨清單,交由采購員采購。根據(jù)畫數(shù)據(jù)流圖的步驟畫出定貨系統(tǒng)的數(shù)據(jù)流圖?!膊恍枰稹?1)從系統(tǒng)的簡述中提取數(shù)據(jù)流圖的四個(gè)成分;1)源點(diǎn)和匯點(diǎn)。倉庫管理員視為源點(diǎn),采購員視為匯點(diǎn)2)處理。處理通常是系統(tǒng)簡述中的動詞短語,如產(chǎn)生定貨清單,處理庫存業(yè)務(wù)等。3)數(shù)據(jù)流。從系統(tǒng)的源點(diǎn)流出和流入?yún)R點(diǎn)的數(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)庫存零部件的信息包括定貨標(biāo)準(zhǔn)線也應(yīng)作為數(shù)據(jù)存儲,統(tǒng)稱為庫存數(shù)據(jù)?!?〕定貨系統(tǒng)數(shù)據(jù)流圖的根本成分源點(diǎn)/匯點(diǎn)處理數(shù)據(jù)流數(shù)據(jù)存儲管理員產(chǎn)生定貨清單 定貨清單定貨數(shù)據(jù)采購員處理庫存業(yè)務(wù)庫存業(yè)務(wù)庫存數(shù)據(jù)(3)畫出系統(tǒng)的高層數(shù)據(jù)流圖;圖在PPT第三章28、29將DFD映射為軟件結(jié)構(gòu)圖圖在PPT第三章909、簡述軟件測試的三個(gè)步驟、黑盒和白盒測試方法。內(nèi)聚、耦合類型分析。(1)單元測試:又稱模塊測試測試對象是軟件設(shè)計(jì)中最小的單元——模塊,其目的是發(fā)現(xiàn)模塊內(nèi)部存在的錯(cuò)誤。單元測試發(fā)現(xiàn)編碼階段的錯(cuò)誤。測試內(nèi)容:(a)模塊間的接口;(b)模塊內(nèi)的局部數(shù)據(jù)結(jié)構(gòu)(c)模塊內(nèi)的重要通路尤其是錯(cuò)誤處理的通路和影響上述各方面的邊界條件。(2)集成測試:又稱組裝測試或聯(lián)合測試集成測試發(fā)現(xiàn)軟件設(shè)計(jì)階段的錯(cuò)誤。在單元測試的根底上,需要將所有模塊按設(shè)計(jì)要求組裝成系統(tǒng)。在經(jīng)過單元測試未發(fā)現(xiàn)錯(cuò)誤的模塊,組裝之后仍可能出現(xiàn)各種問題。集成測試的根本方法:邊組裝邊測試。有自頂向下或自底向上兩種方法。(a)自頂向下測試從主控模塊開始,沿著模塊層次,邊組裝邊測試已組裝局部的功能,直到全部組裝完畢,系統(tǒng)到達(dá)設(shè)計(jì)的功能和性能要求為止。為保證測試的進(jìn)行,必須提供保證測試條件的樁模塊。樁模塊:用來模擬被測模塊的下層模塊的模塊。再用實(shí)際的下層模塊代替樁模塊,并進(jìn)行回歸測試?;貧w測試是相對于原始測試而言的,它局部或全部地重復(fù)前面進(jìn)行過的測試工作。(b)自底向上測試與自頂向下測試相反,它先組裝最低層模塊,向上逐步組裝。每組裝一個(gè)模塊,便測試由此模塊及其下層模塊組成的子功能。直到全部裝配完畢,到達(dá)系統(tǒng)設(shè)計(jì)的功能和性能要求為止。為保證測試的進(jìn)行,必須提供保證測試條件的“驅(qū)動程序〞。用實(shí)際的上層模塊代替該驅(qū)動程序。(3)確認(rèn)測試:又稱有效性測試或驗(yàn)收測試確認(rèn)測試檢查系統(tǒng)的功能和性能是否到達(dá)系統(tǒng)分析說明書提出的設(shè)計(jì)指標(biāo),即是否滿足用戶要求,檢查文檔是否齊全等。確認(rèn)測試發(fā)現(xiàn)軟件分析階段的錯(cuò)誤。黑盒測試法是根據(jù)程序的功能和性能進(jìn)行測試的方法。它把被測程序看成一個(gè)黑盒子,完全不考慮程序內(nèi)部的數(shù)據(jù)結(jié)構(gòu)和邏輯通路。也就是說,黑盒測試是在程序接口進(jìn)行的測試,它只檢查程序功能和性能是否滿足預(yù)期需要,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出數(shù)據(jù),并保持外部信息的完整性。產(chǎn)生黑盒測試的測試用例的方法有如下幾種:等價(jià)類劃分法邊界值分析法、因果圖法、錯(cuò)誤推測法白盒測試法是根據(jù)程序的邏輯結(jié)構(gòu)進(jìn)行測試的方法。它把程序看成是裝在一個(gè)透明的白盒中,也就是完全了解程序內(nèi)部的結(jié)構(gòu)和處理過程。這種方法按程序內(nèi)部的邏輯來測試程序,檢驗(yàn)程序的每條通路是否都能按規(guī)定要求正確工作。產(chǎn)生白盒測試用例的方法有如下幾種:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋。一般而言,測試時(shí)以黑盒測試法為主,白盒測試法為輔。模塊間的耦合程度按從低到高分類如下:⑴無耦合。如果兩模塊之間沒有任何聯(lián)系,每一個(gè)都能獨(dú)立地工作而不需要另一模塊的存在,是彼此完全獨(dú)立的,那么這兩個(gè)模塊間屬于無耦合的情況。⑵數(shù)據(jù)耦合。如果兩個(gè)模塊是通過參數(shù)表僅傳遞數(shù)據(jù)型信息,那么這種耦合稱為數(shù)據(jù)耦合。數(shù)據(jù)耦合是松散的耦合,模塊間的獨(dú)立性較強(qiáng)。軟件結(jié)構(gòu)中至少有這種耦合。⑶特征耦合。假設(shè)兩個(gè)模塊通過參數(shù)表傳遞的是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡單變量,這就是特征耦合。是數(shù)據(jù)耦合的一種變種。增加出錯(cuò)的時(shí)機(jī),不易改動〔數(shù)據(jù)結(jié)構(gòu)變化時(shí)〕。將該數(shù)據(jù)結(jié)構(gòu)上的操作全部集中在一個(gè)模塊中,就可消除這種耦合。⑷控制耦合。如果傳遞控制型信息,這就是控制耦合。對被控制的模塊做任何修改,都會影響到控制模塊,降低模塊的獨(dú)立性。⑸公共耦合。假設(shè)一組模塊使用了公共數(shù)據(jù),那么它們之間的耦合稱為公共耦合。公共數(shù)據(jù)包括全程變量、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。公共數(shù)據(jù)的使用,必然降低軟件的可讀性、可修改性和可靠性。⑹內(nèi)容耦合。如果發(fā)生以下情況之一,兩個(gè)模塊間就是內(nèi)容耦合:?一個(gè)模塊直接訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù);?一個(gè)模塊通過不正常入口直接轉(zhuǎn)入另一模塊內(nèi)部;?一個(gè)模塊有多個(gè)入口;?兩模塊有一局部代碼重疊(只在匯編語言中出現(xiàn));內(nèi)容耦合是耦合性最高的耦合,即是模塊間最壞的聯(lián)系方式,現(xiàn)在大多數(shù)高級程序設(shè)計(jì)語言中已經(jīng)不會出現(xiàn)這種耦合。在進(jìn)行設(shè)計(jì)時(shí)應(yīng)該采取以下原那么:以數(shù)據(jù)耦合為主,特征耦合為輔,少用控制耦合,限制公共耦合,杜絕內(nèi)容耦合。模塊的內(nèi)聚性按從低到高分類如下:⑴偶然內(nèi)聚。如果模塊中各組成成分間彼此沒有實(shí)質(zhì)聯(lián)系,即使有聯(lián)系也是很松散的,模塊功能模糊,那么稱為偶然內(nèi)聚。例如有時(shí)寫完一段程序后,發(fā)現(xiàn)一組語句在程序中多處出現(xiàn),便將其組織在一個(gè)模塊內(nèi)以節(jié)省內(nèi)存,就出現(xiàn)了偶然內(nèi)聚的模塊。在模塊設(shè)計(jì)時(shí),如果覺察一個(gè)模塊難以命名,就應(yīng)考慮是否出現(xiàn)偶然內(nèi)聚。⑵邏輯內(nèi)聚。如果一個(gè)模塊完成的是邏輯上相同或相似的一組功能,那么稱為邏輯內(nèi)聚。例如,設(shè)計(jì)一個(gè)模塊打印各種報(bào)表,如固定資產(chǎn)報(bào)表、產(chǎn)品本錢報(bào)表、利潤報(bào)表等,打印何種報(bào)表靠傳遞控制參數(shù)調(diào)用。由于不同功能在一個(gè)模塊中,通常在設(shè)計(jì)模塊時(shí)會出現(xiàn)幾種功能共用局部代碼,從而使得修改、添加或去掉功能都很困難。⑶時(shí)間內(nèi)聚。假設(shè)一個(gè)模塊中包含的任務(wù)必須在同一時(shí)間內(nèi)執(zhí)行,而這些任務(wù)的次序無關(guān)緊要,那么叫時(shí)間內(nèi)聚。例如各種初始化工作由初始化模塊完成,而各種結(jié)束工作被組合到結(jié)束模塊中,這樣它的執(zhí)行將涉及到其它許多模塊。⑷過程內(nèi)聚。如果一個(gè)模塊內(nèi)的處理成分間是相關(guān)的,而且必須以特定順序執(zhí)行,那么稱為過程內(nèi)聚。例如把程序流程圖中的循環(huán)、判斷和計(jì)算分成三個(gè)模塊,那么這三個(gè)模塊就是過程內(nèi)聚的模塊。⑸通信內(nèi)聚。模塊內(nèi)的所有成分都通過公共數(shù)據(jù)而發(fā)生關(guān)系的內(nèi)聚就是通訊內(nèi)聚。例如對同一文件進(jìn)行輸入、修改、輸出操作。模塊中各成分經(jīng)模塊的局部的公共數(shù)據(jù)進(jìn)行通信。⑹順序內(nèi)聚。假設(shè)模塊中每個(gè)處理成分對應(yīng)一個(gè)功能,且這些處理必須按順序執(zhí)行,那么稱為順序內(nèi)聚。例如一個(gè)處理成分的輸出是下一個(gè)處理成分的輸入的模塊就是順序內(nèi)聚。⑺功能內(nèi)聚。模塊中各處理成分屬于一個(gè)整體,都為了完成同一功能,很難分割,這就是功能內(nèi)聚。這種模塊通常有明確表達(dá)模塊功能的名稱。第四章軟件開發(fā)的面向?qū)ο蠓椒?0、與OO方法相比,傳統(tǒng)方法存在哪些問題。OO方法有哪些優(yōu)點(diǎn)。答:傳統(tǒng)方法存在以下問題:(1)對現(xiàn)實(shí)世界的認(rèn)識與編程之間存在理解上的鴻溝;功能與數(shù)據(jù)相別離造成。(2)修改困難;系統(tǒng)是圍繞如何實(shí)現(xiàn)一定的行為進(jìn)行,當(dāng)需求變化時(shí),數(shù)據(jù)常常發(fā)生變化,最終導(dǎo)致數(shù)據(jù)的結(jié)構(gòu)變化,難于修改。(3)維護(hù)困難;為了得到“好的軟件結(jié)構(gòu)〞,使作用域在控制域之中,導(dǎo)致系統(tǒng)總體結(jié)構(gòu)混亂,難于維護(hù)。(4)自頂向下功能分解的分析方法限制了軟件的可復(fù)用性。面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn)(1)與人類習(xí)慣的思維方法一致核心是對象,它是現(xiàn)實(shí)世界實(shí)體的正確抽象。而傳統(tǒng)方法忽略了數(shù)據(jù)和操作之間的聯(lián)系。(2)穩(wěn)定性好它基于構(gòu)造問題領(lǐng)域的對象模型,以對象為中心構(gòu)造軟件系統(tǒng),當(dāng)功能發(fā)生需求變化時(shí),不會引起軟件結(jié)構(gòu)的整體變化。而傳統(tǒng)方法基于功能分析和分解,以算法為核心,功能變化通常會引起軟件結(jié)構(gòu)的整體變化。(3)可重用性好對象類固有的封裝性和信息隱蔽以及很好的繼承機(jī)制,使得面向?qū)ο蠓椒ň哂泻芎玫目蓮?fù)用性。傳統(tǒng)方法只是庫一級的復(fù)用。(4)可維護(hù)性好OO方法的模塊機(jī)制、繼承機(jī)制、多態(tài)性機(jī)制,使得設(shè)計(jì)的軟件易于理解、修改、測試,更易于維護(hù)。而傳統(tǒng)方法及其面向過程開發(fā)的軟件是難以維護(hù)的。11、找出問題域有關(guān)對象的兩種方法:LIA和3VM.簡述LIA和3VM及其作用,并比擬之。答:(1)基于語言的信息分析方法〔LIA〕主要思想:先對要建立的系統(tǒng)及其需求用自然語言描述,然后對這些描述進(jìn)行語法分析。名詞對象,形容詞屬性,動詞效勞填進(jìn)一張OOA/OOD工作表格。最后對表中的項(xiàng)進(jìn)行分析,從中確定問題域中的對象。(2)三視圖模型法〔3VM〕觀察一個(gè)事物的角度不同,將得到不同的視圖。從多個(gè)角度觀察得到的同一個(gè)事物的多個(gè)視圖更能完整地、全面地反映該事物。LIA方法要求分析員從眾多的侯選對象中識別出目標(biāo)系統(tǒng)的對象,這依賴于分析員的抽象和分析能力,隨意性大,可操作性不強(qiáng)。LIA方法提供了一個(gè)發(fā)現(xiàn)對象的出發(fā)點(diǎn),一般將該方法用于對象模型建立的初始階段。3VM法也依賴于分析人員的抽象和分析能力,但運(yùn)用建立3VM的方法,確實(shí)提供了分析對象的入口點(diǎn)和細(xì)化的方法,具有相對較好的操作性。該方法一般用于對象模型的細(xì)化。12、分析電梯到達(dá)調(diào)度樓層的事件-響應(yīng)對象交互圖、實(shí)例連接圖。電梯到達(dá)調(diào)度樓層的事件-響應(yīng)對象交互圖PPT第四章931.當(dāng)電梯到達(dá)某一樓層時(shí),就會產(chǎn)生一個(gè)電梯到達(dá)事件ArrivalEvent。其屬性有:該到達(dá)事件的唯一標(biāo)識:arrival_id生成到達(dá)事件的電梯:elevator_id生成該到達(dá)事件的樓層:arrival_floor2.電梯到達(dá)事件生成后,將會向與elevator_id相關(guān)聯(lián)的到達(dá)面板發(fā)送一個(gè)單向的消息,該消息是:〔arrival_floor〕〔電梯elevator_id所到達(dá)的樓層〕與elevator_id相關(guān)聯(lián)的到達(dá)面板根據(jù)收到的消息刷新到達(dá)面板的顯示3.電梯到達(dá)事件將會向與floor_id相關(guān)聯(lián)的floor發(fā)送一個(gè)單向的消息,該消息是:(到達(dá)事件的唯一標(biāo)識,電梯唯一標(biāo)識,到達(dá)的樓層號)〔arrival_id,report_elevator_id,report_arrival_floor_id)4.樓層Floor收到上述消息后,由效勞Floor.Process_Elevator_Arrival_處理。該效勞將向電梯report_elevator_id發(fā)送一個(gè)雙向的消息:(report_status_direction?,report_current_direction?)電梯report_elevator_id收到該消息后,會有相應(yīng)的效勞Elevator.Report_Status_Direction和levator.Report_Current_Direction效勞向樓層Floor報(bào)告電梯當(dāng)前的運(yùn)行方向和狀態(tài)方向。5.Floor發(fā)給與report_elevator_id所關(guān)聯(lián)的電梯的目的面板一個(gè)雙向消息:(report_arrival_floor,destination_pending_above?,destination_pending_beloow?)目的面板收到該消息后,即可知道樓層report_arrival_floor是否是調(diào)度樓層。6.Floor發(fā)給與arrival_floor所關(guān)聯(lián)的召喚面板一個(gè)雙向消息:(report_summons_pending_up?report_summons_pending_down?)該樓層的召喚面板收到該消息后,相應(yīng)的效勞即可報(bào)告該樓層的召喚請求是上、下或是沒有請求。知道該樓層是否有召喚,以及電梯的狀態(tài)方向和當(dāng)前運(yùn)行方向等信息,即可判定該樓層是否是調(diào)度樓層。7.如果是調(diào)度樓層〔這里假設(shè)是該樓層的召喚導(dǎo)致的〕,那么(1)Floor向與其相關(guān)聯(lián)的召喚面板對象發(fā)消息,使其刷新面板;〔2〕向與report_elevator_id所關(guān)聯(lián)的電梯發(fā)消息。電梯接受到消息后,更新其當(dāng)前狀態(tài)(current_status)、(current_direction)、(status_direction)等;〔3〕電梯向與其關(guān)聯(lián)的電梯電機(jī)對象發(fā)送停止消息〔Stop〕。8.到達(dá)事件結(jié)束。實(shí)例連接圖:實(shí)例連接分類有3種類型的實(shí)例連接:(1)一對一型:一個(gè)對象只依賴于另外一個(gè)對象。如一個(gè)飛行員駕駛一架飛機(jī)。(2)一對多型:一個(gè)對象同時(shí)依賴多個(gè)對象。如一個(gè)教師指導(dǎo)5個(gè)學(xué)生的畢業(yè)設(shè)計(jì)。(3)多對多型:相互依賴的對象數(shù)在一個(gè)以上。如全班30名學(xué)生學(xué)習(xí)6門課程。對以下圖分析13、在Coad和Yourdon的OOD中,從哪四個(gè)方面對OOA進(jìn)行了擴(kuò)充,簡述其內(nèi)容。答:Coad和Yourdon提出從以下四個(gè)方面考慮:(1)問題域局部(ProblemDomainComponent,PDC)問題域局部是為了消除系統(tǒng)的存貯容量無限及對象間的通信速度無限快等假設(shè)的。(2)人-機(jī)接口局部(HumanInterfaceComponent,HIC)人-機(jī)接口局部是為了將系統(tǒng)和外界的通信任務(wù)由特定的對象承當(dāng),使得系統(tǒng)的功能和實(shí)現(xiàn)相別離。這樣,如果系統(tǒng)與外界的接口發(fā)生改變時(shí),只需要改變這局部對象即可。(3)任務(wù)管理局部〔TaskManagementComponent,TMC〕任務(wù)管理局部是為了將系統(tǒng)和具體的操作系統(tǒng)提供的任務(wù)調(diào)用由特定的對象來承當(dāng)。如果操作系統(tǒng)的環(huán)境改變,只需要改變這局部對象即可。(4)數(shù)據(jù)庫管理局部(DatabaseManagementComponent,DMC)數(shù)據(jù)庫管理局部為了將系統(tǒng)和由特定數(shù)據(jù)庫系統(tǒng)所管理的數(shù)據(jù)的訪問有特定的對象來承當(dāng)。如果系統(tǒng)所應(yīng)用到的一些由數(shù)據(jù)庫管理的數(shù)據(jù),而數(shù)據(jù)庫的類型或結(jié)構(gòu)發(fā)生改變時(shí),只需要改變這局部對象。14、分析電梯控制系統(tǒng)中召喚事件和圖書管理系統(tǒng)中借閱事件的完整執(zhí)行機(jī)制。當(dāng)按鈕按下時(shí),將產(chǎn)生一個(gè)中斷,即“所發(fā)出的信號〞中應(yīng)包含樓層的信息或編碼,這個(gè)編碼應(yīng)存放到該中斷對應(yīng)的中斷存放器中。圖書管理系統(tǒng)中借閱事件的完整執(zhí)行機(jī)制。借閱一本書的過程,涉及了三個(gè)實(shí)體:“Reader〞實(shí)體存儲借閱者;“Book〞實(shí)體存儲書;“Reader-Book〞存儲某個(gè)借閱者借閱某本書的記錄。對象“Borrow〞來負(fù)責(zé)處理“借閱〞事件。第五章統(tǒng)一建模語言UML與實(shí)例15、簡述UML中的狀態(tài)圖和活動圖以及它們之間的差異。答:〔1〕狀態(tài)圖:狀態(tài)機(jī)對類的對象可能生命歷史建模。狀態(tài)機(jī)用來描述一個(gè)特定對象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。狀態(tài)描述了一個(gè)類對象生命期中的一個(gè)時(shí)間段,對對象生命期中的一段時(shí)間建模,該時(shí)間內(nèi)對象滿足一定的條件。當(dāng)事件發(fā)生時(shí),它可能導(dǎo)致遷移的激發(fā),使對象改變至新狀態(tài)。當(dāng)遷移激發(fā)時(shí),附屬于遷移的移動可能被執(zhí)行。狀態(tài)機(jī)顯示為狀態(tài)圖(StateDiagram)。狀態(tài)圖可用于描述用戶界面、設(shè)備控制和其它交互式子系統(tǒng)。狀態(tài)機(jī)和OOA中的狀態(tài)遷移圖一致?!?〕活動圖:活動圖顯示動作及其結(jié)果?;顒訄D著重描述操作(方法)實(shí)現(xiàn)中所完成的工作以及用例實(shí)例或?qū)ο笾械幕顒印;顒訄D是另一種描述交互的方式,描述采取何種動作,做什么(對象狀態(tài)改變),何時(shí)發(fā)生(動作序列)。差異:活動圖描述動作執(zhí)行的工作和活動及對象狀態(tài)改變的結(jié)果,不需指定任何事件。當(dāng)狀態(tài)中的動作被執(zhí)行(不象狀態(tài)圖需指定任何事件)時(shí),活動圖中的狀態(tài)〔稱為動作狀態(tài)〕直接轉(zhuǎn)移到下一個(gè)階段?;顒訄D可以用作下述目的:(1)描述操作執(zhí)行過程中所完成的工作(動作);(2)描述對象內(nèi)部的工作;(3)顯示如何執(zhí)行一組相關(guān)的動作,以及這些動作如何影響它們周圍的對象;(4)顯示用例的實(shí)例是如何執(zhí)行動作以及如何改變對象狀態(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〕第六章面向?qū)ο箝_發(fā)中的設(shè)計(jì)模式17、簡述設(shè)計(jì)模式的作用、設(shè)計(jì)模式的四個(gè)根本要素。答:作用:有經(jīng)驗(yàn)的軟件員總是將面向?qū)ο筌浖O(shè)計(jì)的經(jīng)驗(yàn)記錄成“設(shè)計(jì)模式〞,以便在今后的軟件開發(fā)中復(fù)用以往的成功設(shè)計(jì)。四個(gè)根本要素:模式名稱、問題、解決方案和后果〔1〕模式名稱:通常用來描述一個(gè)設(shè)計(jì)問題、它的解法和后果,由一到兩個(gè)詞描述。模式名稱可以在更高的抽象層次上進(jìn)行設(shè)計(jì)并交流設(shè)計(jì)思想?!?〕問題:描述模式使用的時(shí)間、條件、解釋問題及其背最。它可能描述諸如如何將一個(gè)算法表示成一個(gè)對象這樣的特殊設(shè)計(jì)問題。〔3〕解決方案:描述設(shè)計(jì)的根本組成要素,如它們的關(guān)系、各自的任務(wù)以及相互之間的合作。它并非針對某個(gè)特殊問題。設(shè)計(jì)模式提供有關(guān)設(shè)計(jì)問題的一個(gè)抽象描述以及如何安排這些根本要素以解決問題。〔4〕后果:描述應(yīng)用設(shè)計(jì)模式后的結(jié)果和利弊。對于軟件設(shè)計(jì)來說,通常要考慮的是空間和時(shí)間的權(quán)衡,還有語言問題和實(shí)現(xiàn)問題。對于OO設(shè)計(jì),可重用性很重要。此外,后果還包括對系統(tǒng)靈活性、可擴(kuò)充性及可移植性的影響。18、理解ModelView合約。答:〔1〕形式合約是一種描述框架設(shè)計(jì)的方法,它強(qiáng)調(diào)組成框架的對象間的交互關(guān)系?!?〕形式合約的特點(diǎn):①符號少且能映射到OO編程語言中的概念,如參與者映射到對象。②考慮到了復(fù)雜行為由簡單行為組成的事實(shí),合約的修訂和擴(kuò)充操作使得合約靈活,易于應(yīng)用?!?〕形式合約的根本元素:參與者:形式合約的第一個(gè)組成局部。對每個(gè)參與者要規(guī)定它應(yīng)承當(dāng)?shù)呢?zé)任。責(zé)任有:類型責(zé)任:與實(shí)例變量和方法有關(guān)的責(zé)任。因果責(zé)任:描述與類型責(zé)任相關(guān)的操作與條件“->〞:表示方法調(diào)用。如s->Update()表示對Subscribers中的方法Update()的調(diào)用?!皏〞:表示對實(shí)例變量v賦值?!?lt;ov:c:e>〞:表示用操作符o將所有滿足條件c的變量v所構(gòu)成的表達(dá)式e連接起來。如<||s:s∈Subscriber:s->Update()>意味著s1->Update()||s2->Update()||...,即對Subscriber集合中的所有對象發(fā)送Update()消息?!皗}〞:表示參與者必須滿足的條件的說明。如AttachSubscriber(s:Subscriber)=>{s∈Subscriber}:表示一個(gè)條件,s是Subscriber集合的成員在以s為參數(shù)執(zhí)行AttachSubscriber后必須為真。19、簡述選擇設(shè)計(jì)模式的方法。答:設(shè)計(jì)模式依據(jù)其目的可分為創(chuàng)立型、結(jié)構(gòu)型、行為型三種。共23個(gè)模式下面是幾個(gè)幫助選擇設(shè)計(jì)模式的方法:·考慮設(shè)計(jì)模式是怎樣解決設(shè)計(jì)問題的:對設(shè)計(jì)模式的討論,能幫助找到適宜的對象、決定對象的粒度、指定對象接口以及設(shè)計(jì)模式解決設(shè)計(jì)問題的幾個(gè)其他方法?!g覽模式的意圖局部:通讀每個(gè)模式的意圖,找出和問題相關(guān)的一個(gè)或多個(gè)模式??梢允褂们氨硭@示的分類方法縮小搜查范圍。·研究模式怎樣互相關(guān)聯(lián):前圖以圖形方式顯示了設(shè)計(jì)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度金融衍生品抵押合同模板及范本3篇
- 2024年度冷鏈運(yùn)輸合同模板:冷鏈物流解決方案3篇
- 2024年度無房產(chǎn)證房屋抵押貸款擔(dān)保合同3篇
- 2024年度物業(yè)服務(wù)企業(yè)社區(qū)文化活動合作協(xié)議3篇
- 2024年度全國連鎖品牌招商代理委托服務(wù)協(xié)議書3篇
- 2024年度生鮮配送委托協(xié)議及食品安全管理合同2篇
- 2024年度高速公路橋梁工程橋架供應(yīng)與安裝合同3篇
- 2024年新能源汽車制造技術(shù)許可合同標(biāo)的及屬性
- 2024五人合伙共同開發(fā)智慧城市項(xiàng)目合同3篇
- 2024年度職工食堂節(jié)能降耗改造與維護(hù)服務(wù)合同3篇
- 國土空間生態(tài)修復(fù)規(guī)劃
- 三年級上冊數(shù)學(xué)必考重點(diǎn)鋸木頭和爬樓梯問題
- 四年級數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)及答案
- 九年級化學(xué)下冊 第9單元 課題1《溶液的形成》教案 (新版)新人教版
- 2024年建筑業(yè)三類人員(安管人員、安全員、施工員)等知識考試題庫與答案
- 議論文寫作知識基礎(chǔ)(課件)-高中語文議論文寫作入門
- 景區(qū)旅游安全風(fēng)險(xiǎn)評估報(bào)告
- 小學(xué)語文三年級上冊《第三單元“童話世界”任務(wù)群單元教學(xué)設(shè)計(jì)》
- 輻射與防護(hù)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- CRF病例報(bào)告表模板
- 前滾翻課件教學(xué)課件
評論
0/150
提交評論