軟件工程期中_第1頁(yè)
軟件工程期中_第2頁(yè)
軟件工程期中_第3頁(yè)
軟件工程期中_第4頁(yè)
軟件工程期中_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1.什么是當(dāng)前系統(tǒng)?當(dāng)前系統(tǒng)的物理模型與邏輯模型有什么差別?(1)所謂當(dāng)前系統(tǒng)也許是需要改善的某個(gè)已在計(jì)算機(jī)上運(yùn)營(yíng)的數(shù)據(jù)解決系統(tǒng),也也許是一個(gè)人工的數(shù)據(jù)解決過(guò)程。(2)當(dāng)前系統(tǒng)的物理模型客觀地反映當(dāng)前系統(tǒng)實(shí)際的工作情況。但在物理模型中有許多物理的因素,隨著分析工作的進(jìn)一步,有些非本質(zhì)的物理因素就成為不必要的承擔(dān),因而需要對(duì)物理模型進(jìn)行分析,區(qū)分出本質(zhì)的和非本質(zhì)的因素,去掉那些非本質(zhì)的因素即可獲得反映系統(tǒng)本質(zhì)的邏輯模型。所以當(dāng)前系統(tǒng)的邏輯模型是從當(dāng)前系統(tǒng)的物理模型抽象出來(lái)的2.在UML中用例與用例之間存在泛化、包含和擴(kuò)展關(guān)系,請(qǐng)分析它們的異同。(1)共性:都是從現(xiàn)有用例中抽取出公共的那部分信息,作為一個(gè)單獨(dú)的用例,然后通過(guò)不同的方法重用這個(gè)公共的用例,以減少模型維護(hù)的工作量。(2)不同點(diǎn):a.泛化側(cè)重表達(dá)子用例間的互斥性。b.包含側(cè)重表達(dá)被包含用例對(duì)參與者提供服務(wù)的間接性。c.擴(kuò)展側(cè)重表達(dá)擴(kuò)展用例的觸發(fā)不定性。泛化關(guān)系是描述用例之間一般與特殊關(guān)系的。子用例繼承了父用例所有的結(jié)構(gòu)、行為和關(guān)系,同時(shí)子用例還可以添加、覆蓋、改變繼承的行為。子用例是父用例的一種特殊形式,不同的子用例代表了父用例的不同實(shí)現(xiàn)方法。在一個(gè)復(fù)雜系統(tǒng)中,不同的用例之間也許存在一些相同的行為,這時(shí)可以將這些相同的行為提取出來(lái)組成一個(gè)用例。當(dāng)其他用例使用該用例時(shí),用例之間便形成了包含關(guān)系。向一個(gè)用例中添加一些動(dòng)作后構(gòu)成了另一個(gè)用例,這兩個(gè)用例之間的關(guān)系就是擴(kuò)展關(guān)系,后者繼承前者的一些行為,把后者稱(chēng)為擴(kuò)展用例。也可以把擴(kuò)展關(guān)系當(dāng)作從主用例中將異常行為或可選分支抽象成一個(gè)單獨(dú)的用例而形成的關(guān)系。3.多個(gè)軟件工程師合作開(kāi)發(fā)一個(gè)項(xiàng)目,各開(kāi)發(fā)者之間需要兩兩互相通信。假設(shè)每一條通信途徑的開(kāi)銷(xiāo)為300LOC/年(LOC為代碼行數(shù))。(1)設(shè)有6名軟件工程師,假如單獨(dú)工作,每個(gè)人的生產(chǎn)率是6500LOC/年,那么由這6名軟件工程師組成的項(xiàng)目組的生產(chǎn)率是多少?(2)在這一年期限的最后兩個(gè)月,又增長(zhǎng)了兩名工程師,新增成員的個(gè)人生產(chǎn)率為4500LOC/年,那么這8人組成的項(xiàng)目組全年完畢的開(kāi)發(fā)工作量又是多少條代碼行?當(dāng)開(kāi)發(fā)小組的人員為N時(shí),也許的通信途徑有N(N-1)/2條。 6500*6-(6*5/2)*300=34500(行/年)從第11月開(kāi)始增長(zhǎng)2個(gè)人,則通信途徑增長(zhǎng)了:8*(8-1)/2–15=13(條)所以通信開(kāi)銷(xiāo)增長(zhǎng)了:(300/12)*2*13=650(LOC)而這2人的開(kāi)發(fā)工作量為:(4500/12)*2*2=1500(LOC)則總計(jì)工作量為:34500+1500–650=35350(LOC)4.輸入三個(gè)正整數(shù)作為邊長(zhǎng),然后判斷該三條邊能否構(gòu)成三角形。若能,則構(gòu)成的三角形是等邊、等腰還是一般三角形?請(qǐng)用N-S圖描述程序的算法,并將盒圖中每個(gè)格中標(biāo)出數(shù)字①、②……,運(yùn)用數(shù)字畫(huà)出程序控制流圖,計(jì)算此程序的環(huán)形復(fù)雜度5.某學(xué)校計(jì)算機(jī)教材購(gòu)銷(xiāo)系統(tǒng)有以下功能:學(xué)生買(mǎi)書(shū),一方面填寫(xiě)購(gòu)書(shū)單,計(jì)算機(jī)根據(jù)各班學(xué)生用書(shū)表及售書(shū)登記表審查有效性。若有效,計(jì)算機(jī)根據(jù)教材庫(kù)存表進(jìn)一步判斷書(shū)庫(kù)是否有書(shū);若有書(shū),把領(lǐng)書(shū)單返回給學(xué)生,學(xué)生憑領(lǐng)書(shū)單到書(shū)庫(kù)領(lǐng)書(shū)。對(duì)脫銷(xiāo)的教材,系統(tǒng)用缺書(shū)單的形式告知書(shū)庫(kù)保管員,新書(shū)購(gòu)進(jìn)庫(kù)后,也由書(shū)庫(kù)保管員將進(jìn)書(shū)告知返回給系統(tǒng)。請(qǐng)就以上系統(tǒng)功能畫(huà)出分層的DFD圖。(第三層只需畫(huà)出銷(xiāo)售子系統(tǒng)的DFD圖)6.圖書(shū)館的預(yù)定圖書(shū)子系統(tǒng)有如下功能:由供書(shū)部門(mén)提供書(shū)目給訂購(gòu)組;訂購(gòu)組從各單位取得要訂的書(shū)目;根據(jù)供書(shū)目錄和訂書(shū)書(shū)目產(chǎn)生訂書(shū)文檔留底;將訂書(shū)信息(涉及數(shù)目、數(shù)量等)反饋給供書(shū)單位;將未訂書(shū)目告知訂書(shū)者;對(duì)于反復(fù)訂購(gòu)的書(shū)目由系統(tǒng)自動(dòng)檢查,并把其結(jié)果反饋給訂書(shū)者。請(qǐng)就以上系統(tǒng)功能分兩層畫(huà)出DFD圖。7.根據(jù)描述建立軟件公司的對(duì)象模型,即畫(huà)出類(lèi)圖。問(wèn)題陳述如下:一個(gè)軟件公司有許多部門(mén),分為開(kāi)發(fā)部門(mén)和管理部門(mén)兩種。每個(gè)部門(mén)由部門(mén)名字唯一擬定。每個(gè)開(kāi)發(fā)部門(mén)開(kāi)發(fā)多個(gè)軟件產(chǎn)品,每個(gè)軟件產(chǎn)品都由程序、數(shù)據(jù)和文檔組成。該公司有許多員工,分為經(jīng)理、工作人員和開(kāi)發(fā)人員。開(kāi)發(fā)部門(mén)有經(jīng)理和多個(gè)開(kāi)發(fā)人員,管理部門(mén)有經(jīng)理和多個(gè)工作人員。每個(gè)開(kāi)發(fā)人員可參與多個(gè)開(kāi)發(fā)項(xiàng)目,每個(gè)開(kāi)發(fā)項(xiàng)目需要多個(gè)開(kāi)發(fā)人員。每位經(jīng)理可主持多個(gè)開(kāi)發(fā)項(xiàng)目。8.一本書(shū)的組成涉及一個(gè)封面,一個(gè)目錄,一個(gè)前言,若干章,每章有若干節(jié),每節(jié)有若干段,每段有若干句子,每節(jié)有0個(gè)或多個(gè)插圖,尚有0個(gè)或多個(gè)表格,最后有一個(gè)附錄。試建立該書(shū)的對(duì)象模型。9.根據(jù)描述建立復(fù)印機(jī)行為的動(dòng)態(tài)模型,即畫(huà)出復(fù)印機(jī)狀態(tài)圖。問(wèn)題描述:辦公室復(fù)印機(jī)的工作過(guò)程大體如下:未接到復(fù)印命令時(shí)處在閑置狀態(tài),一旦接到復(fù)印命令則進(jìn)入復(fù)印狀態(tài),完畢一個(gè)復(fù)印命令規(guī)定的工作后又回到閑置狀態(tài),等待下一個(gè)復(fù)印命令;假如執(zhí)行復(fù)印命令時(shí)發(fā)現(xiàn)缺紙,則進(jìn)入缺紙狀態(tài),發(fā)出警告,等待裝紙,裝滿(mǎn)紙后進(jìn)入閑置狀態(tài),準(zhǔn)備接受復(fù)印命令;假如復(fù)印時(shí)發(fā)生卡紙故障,則進(jìn)入卡紙狀態(tài),發(fā)出警告等待維修人員來(lái)排除故障,故障排除后回到閑置狀態(tài)。實(shí)驗(yàn)1.繪制書(shū)中73頁(yè)習(xí)題3的數(shù)據(jù)流圖:題目:銀行計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)的工作過(guò)程大體如下:儲(chǔ)戶(hù)填寫(xiě)的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),假如是存款則系統(tǒng)記錄存款人姓名、住址(或電話(huà)號(hào)碼)、身份證號(hào)碼、存款類(lèi)型、存款日期、到期日期、利率及密碼(可選)等信息,并印出存款存單給儲(chǔ)戶(hù);假如是取款并且存款時(shí)留有密碼,則系統(tǒng)一方面核對(duì)儲(chǔ)戶(hù)密碼,若密碼對(duì)的或存款時(shí)未留密碼,則系記錄算利息并印出利息清單給儲(chǔ)戶(hù)。分析:從存取款的常識(shí)可知,本系統(tǒng)的數(shù)據(jù)源點(diǎn)和終點(diǎn)都是“儲(chǔ)戶(hù)”,儲(chǔ)戶(hù)既要提出存取款規(guī)定,又要獲得存款存單或利息清單。系統(tǒng)對(duì)存取款的解決功能重要是“記錄存款信息”、“打印存款存單”和“核對(duì)密碼”、“計(jì)算利息”、“打印利息清單”。為了完畢上述功能,顯然“存款信息”應(yīng)當(dāng)是一個(gè)數(shù)據(jù)存儲(chǔ)。2.在上題文獻(xiàn)的另一個(gè)繪圖頁(yè)中繪制書(shū)中73頁(yè)習(xí)題4的數(shù)據(jù)流圖:題目:為方便旅客,某航空公司擬開(kāi)發(fā)一個(gè)機(jī)票預(yù)訂系統(tǒng)。旅行社把預(yù)訂機(jī)票的旅客信息(姓名、性別、工作單位、身份證號(hào)碼、旅行時(shí)間、旅行目的地等)輸入進(jìn)該系統(tǒng),系統(tǒng)為旅客安排航班,印出取票告知和帳單,旅客在飛機(jī)起飛的前一天憑取票告知和帳單交款取票,系統(tǒng)校對(duì)無(wú)誤即印出機(jī)票給旅客。分析:從問(wèn)題陳述可知,本系統(tǒng)的數(shù)據(jù)源點(diǎn)是“旅行社”,機(jī)票預(yù)訂系統(tǒng)印出取票告知和帳單是給旅行社的,所以“旅行社”也是終點(diǎn)。此外旅客憑取票告知和帳單交款取票,系統(tǒng)印出機(jī)票給旅客,則“旅客”也是一個(gè)源點(diǎn)和終點(diǎn)。機(jī)票預(yù)訂系統(tǒng)涉及了預(yù)訂機(jī)票和旅客取票兩部分,重要功能有:“分類(lèi)并檢查”、“訂票”、“記賬”和“機(jī)票準(zhǔn)備”。要為旅客安排航班,需要查看“航班目錄”,所以“航班目錄”應(yīng)當(dāng)作為一個(gè)數(shù)據(jù)存儲(chǔ);系統(tǒng)可以輸出賬單,所以有記賬功能,則另一個(gè)數(shù)據(jù)存儲(chǔ)為“記賬文獻(xiàn)”;完整的訂票信息應(yīng)給存儲(chǔ)在“機(jī)票文獻(xiàn)”中,作為“準(zhǔn)備機(jī)票”功能的基本數(shù)據(jù)。提醒:本系統(tǒng)的基本系統(tǒng)模型如下:3.在上題文獻(xiàn)的另一個(gè)繪圖頁(yè)中繪制書(shū)中73頁(yè)習(xí)題5的數(shù)據(jù)流圖:題目:醫(yī)院對(duì)患者監(jiān)護(hù)系統(tǒng)的基本規(guī)定是隨時(shí)接受每個(gè)病人的生理信號(hào)(脈搏、體溫、血壓、心電圖等),定期記錄病人情況以形成患者日記,當(dāng)某個(gè)病人的生理信號(hào)超過(guò)醫(yī)生規(guī)定的安全范圍時(shí)向值班護(hù)士發(fā)出警告信息,此外,護(hù)士在需要時(shí)還可以規(guī)定系統(tǒng)印出某個(gè)指定病人的病情報(bào)告。分析:從問(wèn)題陳述可知,本系統(tǒng)的數(shù)據(jù)源點(diǎn)是“病人”和“護(hù)士”,他們分別提供生理信號(hào)和規(guī)定病情報(bào)告的信息。進(jìn)一步分析問(wèn)題陳述,從系統(tǒng)應(yīng)當(dāng)“定期記錄病人情況以形成患者日記”這項(xiàng)規(guī)定可以想到,還應(yīng)當(dāng)有一個(gè)提供日期和時(shí)間信息的“時(shí)鐘”作為數(shù)據(jù)源點(diǎn)。從問(wèn)題陳述容易看出,本系統(tǒng)的數(shù)據(jù)終點(diǎn)是接受警告信息和病情報(bào)告的護(hù)士。系統(tǒng)對(duì)病人生理信號(hào)的解決功能重要是“接受信號(hào)”、“分析信號(hào)”和“產(chǎn)生警告信息”。此外,系統(tǒng)還應(yīng)當(dāng)具有“定期取樣生理信號(hào)”、“更新日記”和“產(chǎn)生病情報(bào)告”的功能。為了分析病人上理信號(hào)是否超過(guò)了醫(yī)生規(guī)定的安全范圍,應(yīng)當(dāng)存儲(chǔ)“患者安全范圍”信息。此外,定期記錄病人生理信號(hào)所形成的“患者日記”,顯然也是一個(gè)數(shù)據(jù)存儲(chǔ)。提醒:本系統(tǒng)的基本系統(tǒng)模型如下:繪制本系統(tǒng)的功能級(jí)數(shù)據(jù)流圖過(guò)程如下:4.“選課系統(tǒng)”類(lèi)圖的設(shè)計(jì)。需求陳述如下:某學(xué)校網(wǎng)上選課系統(tǒng)重要涉及如下功能:管理員通過(guò)系統(tǒng)管理界面進(jìn)入,建立本學(xué)期要開(kāi)的各種課程、將課程信息保存在數(shù)據(jù)庫(kù)中并可以對(duì)課程進(jìn)行改動(dòng)和刪除。學(xué)生通過(guò)客戶(hù)機(jī)瀏覽器根據(jù)學(xué)號(hào)和密碼進(jìn)入選課界面,在這里學(xué)生可以進(jìn)行三種操作:查詢(xún)已選課程、選課以及付費(fèi)。同樣,通過(guò)業(yè)務(wù)層,這些操作結(jié)果存入數(shù)據(jù)庫(kù)中。5.圖書(shū)館館藏出版物需求描述如下:一家圖書(shū)館藏有書(shū)籍、雜志、小冊(cè)子、電影錄像帶、音樂(lè)CD、錄音圖書(shū)磁帶和報(bào)紙等出版物,供讀者借閱。這些出版物有出版物名、出版者、獲得日期、目錄編號(hào)、書(shū)架位置、借出狀態(tài)和借出限制等屬性,并有借出、收回等服務(wù)。創(chuàng)建圖書(shū)館館藏出版物的類(lèi)圖。分析:題目中很明確地給出了此對(duì)象模型中包含的各種類(lèi),也明顯地表達(dá)出了館藏出版物與“書(shū)籍、雜志、小冊(cè)子、電影錄像帶”等其它類(lèi)應(yīng)當(dāng)是繼承關(guān)系。所以,容易畫(huà)出此描述的類(lèi)圖。6.交通工具分為空中、陸地、水上三種。空中交通工具分為客機(jī)、貨機(jī)、專(zhuān)用輕型機(jī)。陸地交通工具分為列車(chē)、汽車(chē);列車(chē)又分為旅客列車(chē)、貨運(yùn)列車(chē);汽車(chē)又分為客車(chē)、貨車(chē)。水上交通工具分為客輪、貨輪、客貨混合輪。建立交通工具的類(lèi)圖7.一臺(tái)微機(jī)有一個(gè)顯示器,一個(gè)主機(jī),一個(gè)鍵盤(pán),一個(gè)鼠標(biāo),漢王筆可有可無(wú)。主機(jī)涉及一個(gè)機(jī)箱,一個(gè)主板,一個(gè)電源,存儲(chǔ)器等部件。存儲(chǔ)器又分為固定存儲(chǔ)器、活動(dòng)存儲(chǔ)器,固定存儲(chǔ)器又分為內(nèi)存和硬盤(pán),活動(dòng)存儲(chǔ)器又分為軟盤(pán)、光盤(pán)、優(yōu)盤(pán)。請(qǐng)建立微機(jī)的類(lèi)圖8.“選課系統(tǒng)”狀態(tài)圖的設(shè)計(jì)。一個(gè)課程類(lèi)的狀態(tài)變化如下:課程對(duì)象被創(chuàng)建,添加到數(shù)據(jù)庫(kù)中。管理員可以刪除、修改課程信息,在某個(gè)學(xué)期,開(kāi)設(shè)該課程,假如選修人數(shù)超過(guò)指定人數(shù),就不再允許學(xué)生選這門(mén)課。學(xué)期結(jié)束,課程的狀態(tài)終止。9.人們燒水的狀態(tài)描述如下:初始狀態(tài)進(jìn)入燒水過(guò)程時(shí)先處在爐子關(guān)閉狀態(tài),當(dāng)打開(kāi)爐子的觸發(fā)事件發(fā)生時(shí),需要檢查是否滿(mǎn)足監(jiān)護(hù)條件“壺里是否有水”,假如滿(mǎn)足則執(zhí)行燒水的動(dòng)作,觸發(fā)轉(zhuǎn)換進(jìn)入到爐子打開(kāi)狀態(tài),在此狀態(tài)下,假如出現(xiàn)水燒開(kāi)了,或壺?zé)龎牧说那闆r,狀態(tài)圖應(yīng)如何表達(dá)?試創(chuàng)建燒水的狀態(tài)圖。10.圖形用戶(hù)界面具有一個(gè)主菜單和一個(gè)帶有文獻(xiàn)打開(kāi)命令的文獻(xiàn)菜單,在每個(gè)菜單上都有一條退出命令。假設(shè)每次只有一個(gè)文獻(xiàn)可以打開(kāi)。建立圖形用戶(hù)界面的狀態(tài)圖。11.航班機(jī)票預(yù)訂系統(tǒng)狀態(tài)描述:在剛擬定飛行計(jì)劃時(shí),顯然沒(méi)有任何預(yù)訂的,并且在有人預(yù)訂機(jī)票之前都將處在這種“無(wú)預(yù)訂”的狀態(tài)。對(duì)于訂座而言,顯然有“部分預(yù)訂”和“預(yù)訂完”兩種狀態(tài),當(dāng)航班快要起飛時(shí),顯然要“預(yù)訂關(guān)閉”。請(qǐng)建立航班機(jī)票預(yù)訂系統(tǒng)的狀態(tài)圖12.請(qǐng)根據(jù)下述電梯系統(tǒng)的需求描述畫(huà)出類(lèi)圖來(lái)。在一幢m層樓的大廈中,用電梯內(nèi)的和每個(gè)樓層的按鈕來(lái)控制n部電梯的移動(dòng)。每部電梯有m個(gè)按鈕,每個(gè)按鈕代表一個(gè)樓層。當(dāng)按下一個(gè)按鈕時(shí)該按鈕指示燈亮,同時(shí)電梯駛向相應(yīng)的樓層,當(dāng)?shù)竭_(dá)由按鈕指定的樓層時(shí)指示燈熄滅。除了大廈的最底層和最高層之外,每層樓都有兩個(gè)按鈕分別指示電梯上行和下行。當(dāng)這兩個(gè)按鈕之一被按下時(shí)相應(yīng)的指示燈亮,當(dāng)電梯達(dá)成此樓層時(shí)燈熄滅,電梯向請(qǐng)求的方向移動(dòng)。當(dāng)電梯無(wú)升降動(dòng)作時(shí),關(guān)門(mén)并停在當(dāng)前樓層。分析:1.擬定問(wèn)題域內(nèi)的候選對(duì)象大廈、電梯、樓層、按鈕、運(yùn)動(dòng)、指示燈、請(qǐng)求、最底層、最高層、方向和門(mén)2.篩選出對(duì)的的對(duì)象刪除“大廈、最底層、最高層、樓層”——無(wú)關(guān)刪除“運(yùn)動(dòng)、指示燈、請(qǐng)求、方向和門(mén)”——屬性只剩下“按鈕、電梯”按鈕又分為:電梯按鈕和樓層按鈕3.根據(jù)領(lǐng)域知識(shí)或常識(shí)找出隱含對(duì)象按鈕并不直接與電梯通信,為了決定分派哪一部電梯去響應(yīng)一個(gè)特定的請(qǐng)求,必須有某種類(lèi)型的電梯控制器。進(jìn)一步完善對(duì)象模型:分析:電梯類(lèi)的重要功能是執(zhí)行電梯控制器類(lèi)發(fā)來(lái)的電梯操作命令,假如把電梯門(mén)(的狀態(tài))作為電梯的一個(gè)屬性,則電梯類(lèi)還要執(zhí)行門(mén)操作命令,這樣電梯類(lèi)的功能就不單一了。解決:把電梯門(mén)獨(dú)立出來(lái)作為一個(gè)類(lèi)。這樣打開(kāi)或關(guān)閉電梯門(mén)的唯一辦法就是向?qū)ο蟆半娞蓍T(mén)”發(fā)送一條消息。假如電梯門(mén)類(lèi)的封裝性很好,就能保證不會(huì)在錯(cuò)誤的時(shí)間開(kāi)/關(guān)電梯門(mén),從而能有效地杜絕嚴(yán)重的意外事故。此外,出于在未經(jīng)授權(quán)的情況下不允許修改請(qǐng)求的考慮,也應(yīng)當(dāng)把“請(qǐng)求”作為一個(gè)獨(dú)立的類(lèi)。13.請(qǐng)根據(jù)使用電話(huà)的通常情況畫(huà)出描述交互行為狀態(tài)圖來(lái)。電話(huà)系統(tǒng)的一般操作過(guò)程為:沒(méi)人打電話(huà)時(shí)電話(huà)處在閑置狀態(tài);有人拿起聽(tīng)筒則進(jìn)入撥號(hào)音狀態(tài),到達(dá)這個(gè)狀態(tài)后,電話(huà)的行為是響起撥號(hào)音;這時(shí)假如拿起聽(tīng)筒的人改變主意不想打了,他把聽(tīng)筒放下(掛斷),電話(huà)重又回到閑置狀態(tài);假如拿起聽(tīng)筒很長(zhǎng)時(shí)間不撥號(hào)(超時(shí)),則進(jìn)入超時(shí)狀態(tài)……具體打電話(huà)、通話(huà)過(guò)程的腳本如下:打電話(huà)者拿起電話(huà);電話(huà)撥號(hào)音開(kāi)始;打電話(huà)者撥數(shù)字(先撥一位數(shù)字,如:3);電話(huà)撥號(hào)音結(jié)束;打電話(huà)者撥數(shù)字(5);打電話(huà)者撥數(shù)字(8);打電話(huà)者撥數(shù)字(2);假如電話(huà)號(hào)碼撥錯(cuò),互換機(jī)提醒犯錯(cuò)信息;假如號(hào)碼對(duì)的,且對(duì)方空閑,則接電話(huà)者的電話(huà)開(kāi)始振鈴;鈴聲在打電話(huà)者的電話(huà)上傳出;假如在30秒鐘內(nèi),接電話(huà)者拿起話(huà)筒;接電話(huà)者的電話(huà)停止振鈴;打電話(huà)者的電話(huà)停止振鈴;通電話(huà);……接電話(huà)者掛斷電話(huà);電話(huà)切斷;打電話(huà)者掛斷電話(huà)。假如撥號(hào)對(duì)的,對(duì)方忙,打電話(huà)者的電話(huà)上傳出忙音。假如撥號(hào)對(duì)的,接電話(huà)者在30秒鐘內(nèi)不接聽(tīng)電話(huà),雙方電話(huà)停止振鈴。14.白盒測(cè)試15.黑盒測(cè)試輸入三個(gè)整數(shù)a、b和c分別作為三角形的3條邊,通過(guò)程序判斷由這3條邊構(gòu)成的三角形類(lèi)型是:等邊三角形、等腰三角形、一般三角形或非三角形。請(qǐng)從輸出域定義等價(jià)類(lèi),設(shè)計(jì)測(cè)試用例。按照等價(jià)類(lèi)的劃分原則,建立輸出等價(jià)類(lèi)。選取測(cè)試用例,覆蓋所有的等價(jià)類(lèi)。某一報(bào)表解決系統(tǒng),規(guī)定用戶(hù)輸入解決報(bào)表的日期。假設(shè)日期限制在1990年1月至1999年12月,即系統(tǒng)只能對(duì)該段時(shí)間內(nèi)的報(bào)表進(jìn)行解決。假如用戶(hù)輸入的日期不在此范圍內(nèi),則顯示輸入錯(cuò)誤信息。該系統(tǒng)規(guī)定日期由年、月的6位數(shù)字字符組成,前4位代表年,后兩位代表月?,F(xiàn)用等價(jià)類(lèi)劃分法設(shè)計(jì)測(cè)試用例,來(lái)測(cè)試程序的“日期檢查功能”。程序規(guī)格說(shuō)明為:“一個(gè)程序讀入三個(gè)整數(shù)。把此三個(gè)數(shù)值當(dāng)作是一個(gè)三角形的三個(gè)邊。這個(gè)程序要打印出信息,說(shuō)明這個(gè)三角形是三邊不等的、是等腰的、還是等邊的。”請(qǐng)使用等價(jià)類(lèi)劃分法,從輸入域定義等價(jià)類(lèi),完畢測(cè)試用例設(shè)計(jì)。16.面向?qū)ο笤O(shè)計(jì)原則單一職責(zé)原則:一個(gè)類(lèi)應(yīng)當(dāng)僅有一個(gè)職責(zé)。注意:職責(zé)是否應(yīng)當(dāng)分開(kāi)依賴(lài)于具體的應(yīng)用。開(kāi)放-封閉原則:在設(shè)計(jì)一個(gè)軟件系統(tǒng)模塊(類(lèi)、方法)的時(shí)候,應(yīng)當(dāng)可以在不修改原有的模塊(修改封閉)的基礎(chǔ)上,可以擴(kuò)展其功能(擴(kuò)展開(kāi)放)。在面向?qū)ο蟮某绦蛑惺强梢宰龅降模\(yùn)用面向?qū)ο蟮某橄蠛投鄳B(tài)。程序?qū)τ谛薷牟皇?00%封閉!一種抽象只能解決一類(lèi)變化。抽象后的系統(tǒng)對(duì)這類(lèi)變化是封閉的,但是對(duì)于其它類(lèi)型的變化仍然不是封閉的。依賴(lài)倒置原則——系統(tǒng)框架設(shè)計(jì)的核心原則。高層模塊不應(yīng)當(dāng)依賴(lài)于低層模塊,兩者都應(yīng)當(dāng)依賴(lài)于抽象。抽象不應(yīng)當(dāng)依賴(lài)于細(xì)節(jié)。細(xì)節(jié)應(yīng)當(dāng)依賴(lài)于抽象。使用何種語(yǔ)言來(lái)編寫(xiě)程序是無(wú)關(guān)緊要的,假如程序的依賴(lài)關(guān)系是倒置的,它就是面向?qū)ο蟮脑O(shè)計(jì);假如程序的依賴(lài)關(guān)系不是倒置的,它就是過(guò)程化的設(shè)計(jì)。接口隔離原則使用多個(gè)專(zhuān)門(mén)的接口比使用單一的總接口要好。不能逼迫用戶(hù)去依賴(lài)那些他們不使用的接口。程序所依賴(lài)的接口中不要包含該程序不使用的方法。下面的設(shè)計(jì)是否合理,假如不合理,請(qǐng)說(shuō)明因素并給出修正后的設(shè)計(jì)。(本題10分)說(shuō)明:(1)Retangle類(lèi)有兩個(gè)方法,一個(gè)方法畫(huà)矩形,另一個(gè)方法計(jì)算矩形的面積。其中draw()方法調(diào)用area()方法。(2)有兩個(gè)不同的應(yīng)用程序使用Retangle類(lèi)。一個(gè)是ComputationalGeometryApplication,它是計(jì)算幾何圖形面積的,它依賴(lài)Retangle類(lèi)的area()方法,但是它歷來(lái)不用draw()方法。另一個(gè)是GraphicalApplication,它是繪制圖形的,它重要依賴(lài)Retangle類(lèi)的draw()方法,也有也許會(huì)用到area()方法。標(biāo)準(zhǔn)答案:這個(gè)設(shè)計(jì)違反了“單一職責(zé)原則”。Retangle類(lèi)有兩個(gè)職責(zé),第一個(gè)職責(zé)是繪制矩形,第二個(gè)職責(zé)是計(jì)算矩形的面積。解決辦法:把兩個(gè)職責(zé)分離開(kāi),分離到兩個(gè)完全不同的類(lèi)中。 (3分) (7分)例2.下面的設(shè)計(jì)是否合適,假如不合適,請(qǐng)修正設(shè)計(jì)。系統(tǒng)需求說(shuō)明:在屏幕上顯示出圓形的面積。該需求此后會(huì)被擴(kuò)展,規(guī)定顯示正方形、矩形等其他形狀的面積。規(guī)定設(shè)計(jì)的系統(tǒng)符合開(kāi)放封閉原則。interfaceShape{doublearea();}publicclassCircleimplementsShape{privateintr;publicCircle(inta){r=a;}publicdoublearea(){return3.14*r*r;}}publicclassPrintDrawing{publicvoidprintArea(Shapes){System.out.println("Areais:"+s.area());}}publicclassShow{publicstaticvoidmain(Stringargs[]){Circlec=newCircle(2);PrintDrawingpc=newPrintDrawing();pc.printArea(c);}}改善后的Button類(lèi)的偽碼為:publicclassButton{publicvoidPoll(ButtonServerbs){判斷是“開(kāi)”還是“關(guān)”;if(“開(kāi)”)bs.turnOn();elsebs.turnOff();}}ButtonServer類(lèi)的代碼為:interfaceButtonServer{publicvoidturnOn();publicvoidturnOff();}Lamp類(lèi)的偽碼為:publicclassLampimplementsButtonServer{publicvoidturnOn(){…}publicvoid

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論