版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> UML補(bǔ)考練習(xí)匯總</b></p><p> 1、請(qǐng)根據(jù)本學(xué)期的課程,結(jié)合實(shí)際軟件開發(fā)過程,歸納出使用面向?qū)ο蠹夹g(shù)進(jìn)行項(xiàng)目開發(fā),需要開展哪些活動(dòng),你認(rèn)為最關(guān)鍵的活動(dòng)是什么?(A卷考過)</p><p> 用例模型:用例文本和用例圖(1分)</p><p> 領(lǐng)域模型分析:領(lǐng)域模型(1分)</p>
2、<p> 用例順序圖分析:用例順序圖(1分)</p><p> 類圖建模:類圖(1分)</p><p> 最關(guān)鍵的活動(dòng)是領(lǐng)域建模。(1分)</p><p> 2、“老師說要迭代開發(fā),真是有道理。我決定在我們的項(xiàng)目組實(shí)施迭代開發(fā),第一迭代先做需求,第二個(gè)迭代做分析,第三個(gè)迭代做設(shè)計(jì)….”,這句話正確嗎?為什么?</p><p&g
3、t; 不對(duì)(2分),每次迭代都是一次軟件開發(fā)完整的過程,不是按步驟的每次迭代完成不同的任務(wù)(3分)。</p><p> 3、假設(shè)要構(gòu)造一個(gè)和用戶下棋的游戲系統(tǒng),哪些UML圖對(duì)設(shè)計(jì)該游戲有幫助?為什么?(A卷考過)</p><p> 答:用例圖、類圖、順序圖(交互圖)(2分),用例圖可以歸納游戲系統(tǒng)需要完成的功能需求,類圖分析了系統(tǒng)需要的類,及其承擔(dān)職責(zé),刻畫了系統(tǒng)的靜態(tài)結(jié)構(gòu)。使用順序
4、圖可以對(duì)具體場(chǎng)景的交互進(jìn)行動(dòng)態(tài)建模。理解系統(tǒng)的內(nèi)部的交互過程。(3分)。</p><p> 4、在用例模型中,除了需要繪制用例圖,最重要的是為每個(gè)用例編寫用例文本,用例文本當(dāng)中常有:主要參與者、涉眾及其關(guān)注點(diǎn)、前置條件、后置條件、主成功場(chǎng)景、擴(kuò)展場(chǎng)景、特殊需求等部分。阿呆比較笨,老是搞不清。請(qǐng)你告訴他那個(gè)部分最重要,解釋該部分含義,并說明重要理由。</p><p> 主成功場(chǎng)景 場(chǎng)
5、景里面有對(duì)話功能,交互過程</p><p> 5、根據(jù)下列代碼片斷,畫圖說明已經(jīng)創(chuàng)建的類的數(shù)據(jù)成員及類間的關(guān)系。(要求:如有關(guān)聯(lián)需要標(biāo)明關(guān)聯(lián)的方向、角色名和多重性)</p><p><b> [代碼]</b></p><p> ▲6、通信圖和順序圖都是交互圖,阿呆不明白什么時(shí)候用通信圖,什么時(shí)候用順序圖。請(qǐng)你為他解釋順序圖和通信圖的優(yōu)點(diǎn)和
6、缺點(diǎn)。</p><p> 順序圖和通信圖的優(yōu)缺點(diǎn):順序圖對(duì)工具的支持更好,并有更多有效的表示法,可以更方便地表示調(diào)用流的順序,并且在文檔化方面更勝一籌。而通信圖則必須查閱順序編號(hào),在墻上繪制“ UML草圖”時(shí)利用通信圖易于修改更具空間效用,而順序圖在墻上繪制(或窄幅紙張)時(shí)不如通信圖方便。</p><p> 7、Monopoly游戲中,由誰來創(chuàng)建Square對(duì)象比較合適?阿呆發(fā)現(xiàn)類圖中
7、有兩個(gè)類都可以承擔(dān)此職責(zé):MonopolyGame和Board。他有點(diǎn)迷糊不知道該選那個(gè)比較好。請(qǐng)你幫他選一個(gè),并解釋理由。</p><p> 因?yàn)閟quare是被包含關(guān)系,被包含于board</p><p> 所以由board來創(chuàng)建</p><p> ▲8、阿呆剛學(xué)過GRASP設(shè)計(jì)原則,覺得很不錯(cuò),于是準(zhǔn)備應(yīng)用在設(shè)計(jì)的選課系統(tǒng)中,系統(tǒng)有課程類,課程類的實(shí)例包
8、含某門課程的具體信息。阿呆就想,依據(jù)信息專家的原則,那么,該由課程對(duì)象把課程信息存入到數(shù)據(jù)庫中。但是項(xiàng)目經(jīng)理告訴他這樣做不好。阿呆想不通,請(qǐng)你詳細(xì)為阿呆解釋一下,這樣做有什么壞處,應(yīng)該如何處理。(A卷考過)</p><p> 壞處:高內(nèi)聚,低耦合,冗余高;</p><p> 應(yīng)該虛構(gòu)一個(gè)類來幫助解決</p><p><b> 參考P213 <
9、/b></p><p> 將課程信息存入數(shù)據(jù)庫的職責(zé)分配給課程類會(huì)造成課程類與數(shù)據(jù)庫接口類的耦合,面向數(shù)據(jù)庫的操作與實(shí)際的課程類無關(guān),使得課程類非內(nèi)聚,不利于數(shù)據(jù)庫操作的復(fù)用,其它類也存在保存對(duì)象的職責(zé)。</p><p> 在某些情況下,專家模式建議的方法并不好,這是由于耦合與內(nèi)聚問題所產(chǎn)生的。專家會(huì)建議由課程對(duì)象把課程信息存入到數(shù)據(jù)庫中,那么按照這個(gè)決定進(jìn)行邏輯推理,每個(gè)類都應(yīng)
10、當(dāng)把自身保存到數(shù)據(jù)庫中。但這樣會(huì)導(dǎo)致內(nèi)聚,耦合,及冗余方面的問題,例如現(xiàn)在課程類必須包含于數(shù)據(jù)庫處理相關(guān)的邏輯,如SQL和JDBC相關(guān)的處理邏輯。因此,課程類由于存在其他職責(zé)而降低了它的內(nèi)聚,這個(gè)類必須與其他子系統(tǒng)的數(shù)據(jù)服務(wù)進(jìn)行耦合,會(huì)使得耦合度上升。這樣會(huì)導(dǎo)致大量持久性類中重復(fù)出現(xiàn)類似的數(shù)據(jù)庫邏輯,有大量的冗余。</p><p> 所以這樣的做法違反了基本架構(gòu)原則,應(yīng)將應(yīng)用邏輯和數(shù)據(jù)庫邏輯放置不同一處,而不是
11、在同一構(gòu)件中把不同的系統(tǒng)關(guān)注混合起來。因此,按照專家模式,該由課程對(duì)象把課程信息存入到數(shù)據(jù)庫中是合理的,但由于其他原因,會(huì)使得我們最終得出不佳的設(shè)計(jì)</p><p> 9、請(qǐng)你詳細(xì)說明一下領(lǐng)域模型與設(shè)計(jì)類圖的相同點(diǎn)及不同點(diǎn)。</p><p> 相同點(diǎn) 領(lǐng)域模型是沒有方法的類圖的集合</p><p> 不同點(diǎn) 領(lǐng)域模型只有屬性無類型無方法 類圖包括類名,屬性,操
12、作</p><p> 10下圖是一個(gè)“涉稅服務(wù)管理效能管理系統(tǒng)”中類模型的一個(gè)局部,請(qǐng)根據(jù)該圖回答以下問題。在描述“稅務(wù)審批服務(wù)申請(qǐng)”時(shí),它主要包含哪幾個(gè)方面的內(nèi)容?它有幾種不同的類別?(A卷考過)</p><p> 1:三個(gè)指向他的“申請(qǐng)”</p><p><b> 2:4個(gè)被它指向的</b></p><p>
13、 11 POS系統(tǒng)中,當(dāng)顧客以支付貨款時(shí),需要計(jì)算出支付余額。阿呆發(fā)現(xiàn)類圖中有兩個(gè)類都可以承擔(dān)此職責(zé):Sale和Payment。他有點(diǎn)迷糊不知道該選那個(gè)比較好。請(qǐng)你幫他選一個(gè)最佳方案,并解釋理由。</p><p> 選SALE,因?yàn)镾ALE只需要一條線連接到paymant,而payment卻需要兩條連接到SALE</p><p> 根據(jù)內(nèi)聚耦合原理,應(yīng)當(dāng)選擇SALE(A卷考過)<
14、/p><p> ▲12搬了新家,阿呆決定去申請(qǐng)安裝ADSL,他到營業(yè)廳填好單,和證件一起交給營業(yè)員。營業(yè)員查看阿呆的證件,接過單子開始操作電腦。如果站在營業(yè)員身后,會(huì)看見營業(yè)員打開一個(gè)“受理”菜單,選擇“ADSL”,彈出一個(gè)帶有好多個(gè)Tab的框框,營業(yè)員嗶哩叭啦把數(shù)據(jù)輸進(jìn)去,然后讓阿呆設(shè)置一個(gè)服務(wù)密碼,又過一陣,營業(yè)員遞出單子,告訴阿呆回家等,施工人員一天內(nèi)就到。阿呆高興的出門。營業(yè)員嘆了一口氣,想“又弄完一個(gè)”…
15、…</p><p> 考慮營業(yè)員的“ADSL業(yè)務(wù)受理系統(tǒng)”,根據(jù)上述信息,分析下面所列對(duì)象或事件歸屬那一類別,并在表中填寫。(注意,所列的對(duì)象或事件有可能屬于多個(gè)類別,也有可能都不屬于任何一類,多填或少填都不得分,涉眾填不全扣一分)</p><p> 對(duì)象或事件:阿呆營業(yè)員設(shè)置密碼施工人員受理ADSL申請(qǐng)安裝ADSL “受理”菜單</p><p>
16、 類別:主參與者 輔助參與者用例涉眾</p><p> 13狀態(tài)圖是為某個(gè)對(duì)象的狀態(tài)和事件以及響應(yīng)事件的行為的建模。下面的普通電話機(jī)的狀態(tài)圖,技術(shù)經(jīng)理已經(jīng)使用狀態(tài)圖對(duì)其詳細(xì)建模,但阿呆不小心把圖弄模糊了,請(qǐng)你幫忙補(bǔ)充完整。(狀態(tài)及事件名可以中文表示)</p><p> 14請(qǐng)根據(jù)下列代碼片斷,畫出設(shè)計(jì)類圖。注意類,類的屬性和方法以及類之間關(guān)聯(lián),關(guān)聯(lián)的導(dǎo)航性、多重性或是角色名。&
17、lt;/p><p> 15.下面是航空公司系統(tǒng)的部分類模型,模型里的類都是需要持久存儲(chǔ)的對(duì)象。請(qǐng)你為阿呆設(shè)計(jì)一個(gè)將該類圖映射為關(guān)系數(shù)據(jù)庫中的表的方案。即數(shù)據(jù)庫中該有用那些表存儲(chǔ)這些類的數(shù)據(jù),這些表該有那些列。(表的主鍵外鍵要說明)(A卷考過)</p><p> Airline(Alid,name,symbol)</p><p> Employee(idcard,n
18、ame,ALID)</p><p> Pilot(idcard,fightRating)</p><p> FightAssistant(idcard)</p><p> Flight(fightNum,data,PilotID,copiloted,AlID)</p><p> AttendantAssignment(fightNum
19、,idcard)</p><p> 16 請(qǐng)說明領(lǐng)域模型中要展示內(nèi)容(三個(gè)方面),并根據(jù)下面描述繪制出汽車公司調(diào)度管理系統(tǒng)的領(lǐng)域模型。(A卷考過無答案)</p><p> 阿呆開設(shè)了一家汽車公司專門為學(xué)生服務(wù),公司擁有40輛汽車,服務(wù)對(duì)象是1600個(gè)學(xué)生。汽車日常行駛的路線有30條。每條路線上設(shè)有許多站牌,學(xué)生們可在這些地方上下車。公司雇傭了20個(gè)全職的司機(jī)和30個(gè)兼職的司機(jī)。汽車公司
20、設(shè)有一個(gè)調(diào)度員,專門負(fù)責(zé)司機(jī)和路線的安排。公司經(jīng)常會(huì)收到學(xué)生或家長們對(duì)司機(jī)的投訴。如果投訴的情況相當(dāng)嚴(yán)重,司機(jī)有可能會(huì)被停職甚至被解雇</p><p> 17根據(jù)以下Java源程序片斷繪制出doPayroll函數(shù)實(shí)現(xiàn)的順序圖。</p><p> 20我家超級(jí)市場(chǎng)是大型的連鎖零售商場(chǎng),銷售各類商品,超市的收銀員使用POS收銀系統(tǒng)處理用戶的銷售。請(qǐng)問收銀員是處于POS收銀系統(tǒng)的邊界外還是邊
21、界內(nèi)?為什么?</p><p> 21詳細(xì)解釋下列消息。(說明消息名稱、參數(shù)、返回值等)</p><p> ?。?)2:display(x,y)</p><p> (2)1.3.1: p:=find(specs) </p><p> ?。?)[x<0]4:invert(x,color) </p><p>
22、(4)3.1 *:update()</p><p> (5)1:create(p,4)</p><p> 22 請(qǐng)說明領(lǐng)域模型中要展示內(nèi)容(三個(gè)方面),根據(jù)下面描述繪制出領(lǐng)域模型。</p><p> 假設(shè)一個(gè)公司雇傭了若干員工,每個(gè)員工的信息包括員工號(hào)碼、姓名、地址和生日。該公司當(dāng)前有幾個(gè)項(xiàng)目,每個(gè)項(xiàng)目的信息包括項(xiàng)目名稱和開始日期。每個(gè)員工可同時(shí)被分派到一個(gè)或
23、幾個(gè)項(xiàng)目中,也可以不做任何項(xiàng)目。每個(gè)項(xiàng)目至少由一個(gè)員工來承擔(dān)。公司在每個(gè)月末給每個(gè)員工郵寄一張支票,支票上的數(shù)額與項(xiàng)目的性質(zhì)和工作時(shí)間相關(guān)。請(qǐng)用一張類圖描述上述情況。要求:給出相關(guān)的類、屬性、方法和關(guān)聯(lián)</p><p> 23下面是Monopoly游戲設(shè)計(jì)過程中的一張每個(gè)輪次實(shí)現(xiàn)順序圖,請(qǐng)根據(jù)順序圖所示,寫出takeTurn 方法的基本實(shí)現(xiàn)代碼。其中dice[i]中i等于2。(包括函數(shù)的定義,函數(shù)所在類的定義。
24、)</p><p> 24請(qǐng)根據(jù)下面描述回答相應(yīng)問題:</p><p> 學(xué)院圖書館需要一個(gè)新的圖書管理系統(tǒng)管理圖書資源。圖書由圖書館顧客借出、還入和預(yù)定。當(dāng)圖書逾期一周時(shí),會(huì)以電子郵件的方式通知顧客。圖書每逾期一天,顧客將被罰1元。每本書最多罰款10元。顧客出有不同身份,這些身份能夠影響一本書被借出的時(shí)間。不同的身份所獲得的服務(wù)也不同。學(xué)生借書可借出四周,教師可借閱兩個(gè)月,圖書館工作
25、人員可以把書保留三個(gè)月。只要沒有其他顧客要求借閱,任何可借出的圖書館資源都可以續(xù)借。圖書管理系統(tǒng)必須聯(lián)網(wǎng),顧客可以通過瀏覽器進(jìn)行檢索和預(yù)訂。</p><p> (1)請(qǐng)畫出該圖書管理系統(tǒng)的主要用例圖。</p><p> (2)建立該圖書管理系統(tǒng)的領(lǐng)域模型。</p><p> 25. GRASP是什么的縮寫(中文意思也可以),簡述“信息專家”(Informati
26、on Expert)設(shè)計(jì)原則的內(nèi)容。舉例說明。簡述“控制器(Controller)設(shè)計(jì)原則的內(nèi)容。舉例說明。</p><p> 答:GRASP:General Responsibility Assignment Software Patterns,通用職責(zé)分配軟件模式。</p><p> 信息專家:對(duì)象具有某方面完整的信息,應(yīng)將操作信息的職責(zé)交給這個(gè)對(duì)象。這個(gè)對(duì)象就是所謂的信息專家。&
27、lt;/p><p> 如銷售總額的獲得,應(yīng)當(dāng)尋找具有確定總額所需信息的那個(gè)對(duì)象負(fù)責(zé)。</p><p> 控制器:虛構(gòu)出一個(gè)用來接收和處理系統(tǒng)事件的職責(zé)的類。</p><p> 如Pos系統(tǒng)中處理銷售用例,外部參與者的發(fā)出請(qǐng)求首先提交給Register控制器處理</p><p> 26.請(qǐng)解釋和比較用例圖中用例間的擴(kuò)展(<<ex
28、tend>>)和包含(<<include>>)兩種關(guān)系。</p><p> 答:擴(kuò)展關(guān)系:擴(kuò)展用例是基用例的一段相對(duì)獨(dú)立并且可選的動(dòng)作流</p><p> 包含關(guān)系:使用包含(Inclusion)用例來封裝一組跨越多個(gè)用例的相似動(dòng)作(行為片斷),以便多個(gè)基(Base)用例復(fù)用。</p><p> 27在面向?qū)ο蠓治鲞^程中,尋
29、找對(duì)象、類、屬性、屬性值的策略是什么?</p><p> 答:采用名詞法,把需求分析中出現(xiàn)的名詞全部列舉出來, 再進(jìn)篩選。有的名詞可能轉(zhuǎn)化為對(duì)象,有些名詞可能建模為對(duì)象的屬性。對(duì)找出的對(duì)象進(jìn)行數(shù)據(jù)抽象,提取出類。</p><p> 公司可以雇用多人,人也可以為多個(gè)公司工作。每個(gè)公司只有一個(gè)總經(jīng)理。下面的經(jīng)理可以管理多個(gè)員工,請(qǐng)?jiān)谙聢D中的關(guān)聯(lián)線上加上適當(dāng)標(biāo)注(關(guān)聯(lián)名、角色和多重性),使上
30、述含義清楚。(請(qǐng)標(biāo)注在答題紙上)</p><p><b> 答:</b></p><p> 28.請(qǐng)寫出類圖對(duì)應(yīng)的面向?qū)ο蟠a。</p><p> Class Person{</p><p> Company employer;</p><p> Public void assign(D
31、epartment d){…}</p><p> Public void setCompensation(Salary s){…}</p><p><b> }</b></p><p> Class Company{</p><p> Person employee[10];</p><p&g
32、t;<b> …</b></p><p><b> }</b></p><p> 29.下面描述飛行公司雇員的類圖,請(qǐng)將該類圖映射為關(guān)系數(shù)據(jù)庫中的表。</p><p><b> 映射為一個(gè)表:</b></p><p> EmployeeID, name, taxpay
33、erNumber, employeeType, flightRating, position</p><p> EmployeeID為主鍵。employeeType為新增的字段,類的類型。</p><p> 30.下面給出了預(yù)訂航班用例的主要成功場(chǎng)景: </p><p> 用例:預(yù)訂航班的主成功場(chǎng)景</p><p> 1.顧客向系統(tǒng)提
34、交航班預(yù)訂信息(出發(fā)地、目的地、出發(fā)日期和人數(shù))</p><p> 2.系統(tǒng)檢索滿足這些條件的航班</p><p> 3.系統(tǒng)顯示滿足條件的航班信息</p><p> 4.顧客選擇所要的航班</p><p> 5.系統(tǒng)檢索該航班剩余的座位信息</p><p> 6.系統(tǒng)顯示可預(yù)訂的座位信息</p>
35、<p> 7.顧客選擇所要的座位</p><p> 8.系統(tǒng)生成一個(gè)臨時(shí)預(yù)訂記錄</p><p> 9.系統(tǒng)將顧客所選擇的座位狀態(tài)從“未預(yù)訂”修改為“已預(yù)訂”</p><p><b> ……</b></p><p> 分析員張三認(rèn)為與該用例相關(guān)的對(duì)象至少有Reservation(預(yù)訂)、Seat(
36、座位)和Flight(航班)。請(qǐng)繪制出該用例主成功場(chǎng)景順序圖(請(qǐng)補(bǔ)充必要的對(duì)象)</p><p> 31.設(shè)計(jì)一個(gè)電子投票系統(tǒng)。一次電子投票可能涉及到一個(gè)或多個(gè)職位的競(jìng)選,每個(gè)職位的競(jìng)選涉及到多個(gè)候選人。在一個(gè)具體的職位競(jìng)選時(shí),投票人能看到該職位的名稱及相應(yīng)的候選人(每個(gè)職位的候選人不超過5個(gè)),投票者只能為該職位選中一個(gè)候選人。每個(gè)職位的競(jìng)選作為一屏獨(dú)立的信息提交給投票者,投票機(jī)由一名監(jiān)督員啟動(dòng)。每個(gè)投票者在
37、投票前必須輸入自己的身份證號(hào)碼,以避免多次投票給同一個(gè)候選人。投票者可以查看每個(gè)職位的競(jìng)選信息并投票,也可以翻屏的方式返回先前的屏幕修改投票決定。當(dāng)投票結(jié)束時(shí),投票者將看到自己給每個(gè)職位的投票結(jié)果。每個(gè)職位的投票結(jié)果(職位的名稱和每個(gè)候選人的得票數(shù))將以獨(dú)立的一屏信息顯示。請(qǐng)根據(jù)上述情況,建立該電子投票系統(tǒng)的領(lǐng)域模型。</p><p> 32.下面的代碼描述了一個(gè)DataSet類,該類提供了對(duì)一組數(shù)據(jù)的基本統(tǒng)計(jì)
38、功能,以及一個(gè)ExamMarks類,它使用期DataSet存儲(chǔ)并計(jì)算一組考試分?jǐn)?shù)的平均值。主函數(shù)展示了讀入兩個(gè)分?jǐn)?shù),用ExamMarks保存它們,并打印輸出平均值。畫一個(gè)順序圖,說明主函數(shù)執(zhí)行時(shí)發(fā)生的交互。(8分)</p><p><b> DataSet類</b></p><p> ExamMarks類和Average類:</p><p>
39、; 33.通常自動(dòng)售貨機(jī)會(huì)按用戶的要求進(jìn)行自動(dòng)售貨。供貨員會(huì)巡查向其內(nèi)供貨,取款員會(huì)定時(shí)取款。請(qǐng)根據(jù)上述描述建立用況圖。</p><p> 34假設(shè)一個(gè)公司雇傭了若干員工,每個(gè)員工的信息包括員工號(hào)碼、姓名、地址和生日。該公司當(dāng)前有幾個(gè)項(xiàng)目,每個(gè)項(xiàng)目的信息包括項(xiàng)目名稱和開始日期。每個(gè)員工可同時(shí)被分派到一個(gè)或幾個(gè)項(xiàng)目中,也可以不做任何項(xiàng)目。每個(gè)項(xiàng)目至少由一個(gè)員工來承擔(dān)。公司在每個(gè)月末給每個(gè)員工郵寄一張支票,支票上
40、的數(shù)額與項(xiàng)目的性質(zhì)和工作時(shí)間相關(guān)。請(qǐng)用一張類圖描述上述情況。要求:給出相關(guān)的類、屬性、方法和關(guān)聯(lián)。</p><p> 35某訂單管理系統(tǒng)的部分UML類圖如圖所示。</p><p> 圖訂單管理系統(tǒng)的部分UML類圖</p><p> 在圖中,Product表示產(chǎn)品,ProductList表示所銷售產(chǎn)品的列表,Order表示產(chǎn)品訂單,OrderItem表示產(chǎn)品訂
41、單中的一個(gè)條目,OrderList表示訂單列表,SalesSystem提供訂單管理系統(tǒng)的操作接口。</p><p> 有個(gè)用例要求依次統(tǒng)計(jì)產(chǎn)品目錄中每個(gè)產(chǎn)品的訂購總量,并打印出每個(gè)產(chǎn)品的編號(hào)、說明、訂購總量和訂購金額 </p><p> 請(qǐng)依據(jù)類圖,繪制此統(tǒng)計(jì)用例的用例順序圖。</p><p> 36、請(qǐng)根據(jù)下列的類圖,分析需要持久化這些類所需要的數(shù)據(jù)庫模型,
42、請(qǐng)注明主鍵和外鍵。(8分)</p><p><b> ?。ㄈ?</b></p><p> Student:studentNo,name,major,class,CourseNo</p><p> 主鍵:studentNo;外鍵:CourseNo ) chairperson:系主任/院長</p><p><b
43、> 答:</b></p><p> School:id,name,address,phone;主鍵:id</p><p> Student:studentID(主鍵),name,schoolId(外鍵)</p><p> Course:CourseID(主鍵), name</p><p> StudentCours
44、e:studentID,courseID</p><p> CourseInstructor: courseID,instructorID</p><p> Instructor:id,name,departmentId,</p><p> Department:id,name,schoolId,chairperson</p><p>
45、 37考慮一個(gè)實(shí)際的超級(jí)市場(chǎng),下面是給出的一張用例圖。請(qǐng)為“購買商品”用例編寫主場(chǎng)景流程,并給出在“購買商品”主場(chǎng)景中可能出現(xiàn)的異常情況(簡要列舉)。</p><p> 答:購買商品主場(chǎng)景流程</p><p> 客戶帶著商品來到柜臺(tái)</p><p> 收銀員掃描客戶的每項(xiàng)商品</p><p> 收銀員計(jì)算商品的總金額、含稅</
46、p><p><b> 收銀員詢問支付形式</b></p><p><b> 客戶給了一張信用卡</b></p><p><b> 收銀員掃描了信用卡</b></p><p> 校驗(yàn)器報(bào)告信用卡付款是可以接受的</p><p><b> 客
47、戶簽署信用卡收條</b></p><p><b> 例外情況</b></p><p><b> 某項(xiàng)商品掃描出錯(cuò)</b></p><p><b> 信用卡掃描出錯(cuò)</b></p><p><b> UML試卷</b></p>
48、<p> 一、選擇題:(共10題,共20分)</p><p> 1、在Java程序中,對(duì)象之間的相互通信通過(B)</p><p> ?。痢⒗^承實(shí)現(xiàn) B、調(diào)用成員函數(shù)實(shí)現(xiàn)?。谩⒎庋b實(shí)現(xiàn)?。?、函數(shù)重載實(shí)現(xiàn)</p><p> 2、為了描述和理解系統(tǒng)中的控制機(jī)制,如為了描述一個(gè)設(shè)備控制器在不同情況下所要完成的動(dòng)作,下面幾個(gè)圖中哪個(gè)圖是最有用的?(B
49、)</p><p> A、交互圖B、活動(dòng)圖C、狀態(tài)圖D、類圖</p><p> ?。?、 對(duì)于用例分析的正確與否,有一些簡單的方法,如老板測(cè)試,不能通過老板測(cè)試的用例是(C)</p><p> ?。?、處理退貨 B、協(xié)商合同C、用戶登錄 ?。?、處理銷售</p><p> ?。?、 GRASP原則一共9種,其中不包括的是(
50、D)</p><p> A、多態(tài) B、高內(nèi)聚C、低耦合D、封裝</p><p> ?。怠nnovation公司在為Rose開發(fā)插入件,使得Rose可以把OOA/OOD模型以各種圖形格式導(dǎo)出。如JPEG格式、BMP格式、GIF格式等。在導(dǎo)出時(shí),會(huì)根據(jù)不同的算法生成相應(yīng)的圖形文件,這些算法很復(fù)雜。為了描述這些算法,在下面這些圖中,哪個(gè)圖是最合適的?(A)</p&g
51、t;<p> A、活動(dòng)圖B、狀態(tài)圖C、類圖D、用例圖</p><p> 6、依據(jù)如下順序圖,選擇類Account必須實(shí)現(xiàn)哪些方法?(A)</p><p> A、withdraw,checkBalanceB、withdraw,checkBalance,log</p><p> C、withdraw,checkBalance,ackno
52、wledge</p><p> D、withdraw,checkBalance,log,acknowledge</p><p> ?。?、有如下圖關(guān)系及根據(jù)類創(chuàng)建的對(duì)象,編譯器允許執(zhí)行的賦值語句是(C)</p><p> Shape sh;</p><p> Triangle tr=new Triangle ();</p>
53、;<p> Square sq=new Square ();</p><p> A、tr=sqB、sq=sh</p><p> C、sh=trD、sq=tr</p><p> ?。?、下列是阿呆給一些用例的命名,(C)用例命名最好。</p><p> ?。?、進(jìn)行圖像導(dǎo)入B、導(dǎo)入圖像 C、處理圖像D、圖像處
54、理</p><p> ?。?、 分層結(jié)構(gòu)系統(tǒng)中,消息通常從頂層流向底層。但有些消息卻是從底層流向頂層,需要層間的向上協(xié)作模式。下面不能實(shí)現(xiàn)層間向上協(xié)作的方式是()</p><p> ?。?、觀察者模式?。隆I外觀模式?。谩⒖刂破髂J健。摹⒔缑孑喸兡J?lt;/p><p> 10、下面的圖1和圖2分別說明了Car和Color類之間的關(guān)系是(C)</p>&
55、lt;p> A、圖1:聚合;圖2:組合B、圖1:屬性;圖2:聚合</p><p> C、圖1:屬性;圖2:組合D、圖1:組合;圖2:屬性 </p><p> 二、簡答題(共7題,共32分)</p><p> 1、請(qǐng)根據(jù)本學(xué)期的課程,結(jié)合實(shí)際軟件開發(fā)過程,歸納出使用面向?qū)ο蠹夹g(shù)運(yùn)行項(xiàng)目開發(fā),需要開展哪些活動(dòng),你認(rèn)為最關(guān)鍵的活動(dòng)是什么?(6分)&
56、lt;/p><p> 需求分析;用例圖建模;領(lǐng)域模型建模;系統(tǒng)順序圖和操作契約</p><p> 用例實(shí)現(xiàn)交互圖建模;設(shè)計(jì)類圖建模;邏輯架構(gòu)設(shè)計(jì)建模</p><p> 關(guān)鍵的活動(dòng):用例實(shí)現(xiàn)交互圖建模</p><p> 實(shí)驗(yàn)八 邏輯架構(gòu)設(shè)計(jì)建模2、“老師說要迭代開發(fā),真是有道理,我決定在我們的項(xiàng)目組實(shí)施迭代開發(fā),第一迭代先做需求,第二個(gè)迭代
57、做分析,第三個(gè)迭代做設(shè)計(jì)……”這句話正確嗎?為什么?(4分)</p><p> 錯(cuò)誤,迭代不同于傳統(tǒng)的瀑布模型,并不按照先做需要,再做分析,設(shè)計(jì)這樣一個(gè)階段接一個(gè)階段進(jìn)行,迭代是把一個(gè)項(xiàng)目分成多個(gè)小項(xiàng)目,每個(gè)小項(xiàng)目都經(jīng)歷各自的需求分析,設(shè)計(jì),實(shí)現(xiàn)和測(cè)試活動(dòng),以循環(huán)反饋和調(diào)整為核心,每次迭代都對(duì)現(xiàn)有系統(tǒng)進(jìn)行擴(kuò)展和精化,最后成為適當(dāng)?shù)南到y(tǒng)。</p><p> 3、假設(shè)要構(gòu)造一個(gè)和用戶下棋的
58、游戲系統(tǒng),哪些UML圖對(duì)設(shè)計(jì)該游戲有幫助?為什么?(4分)</p><p> 用例圖 領(lǐng)域模型 交互圖 類圖</p><p> 4、我家超級(jí)市場(chǎng)是大型的連鎖零售商場(chǎng),銷售各類商品,超市的收銀員使用POS收銀系統(tǒng)處理用戶的銷售。請(qǐng)問收銀員是處于POS收銀系統(tǒng)的邊界外還是邊界內(nèi)?為什么?(4分)</p><p> 在邊界外,POS系統(tǒng)是要被設(shè)計(jì)的系統(tǒng),任何該系統(tǒng)之
59、外的事物都在系統(tǒng)邊界之外,收銀員是外部參與者,是使用POS系統(tǒng)完成一系列行為的外部參與者。</p><p> 5、系統(tǒng)的分層實(shí)現(xiàn)讓阿呆很困惑。因?yàn)橄到y(tǒng)如果分為視圖層、業(yè)務(wù)層、持久層,對(duì)于某一模塊的實(shí)現(xiàn)每一層都寫代碼,每間層的交互處理增加了麻煩。如果用戶點(diǎn)擊某個(gè)按鈕,直接在按鈕事件里編寫實(shí)現(xiàn)的代碼,既直接,又方便。請(qǐng)你說明分層模式實(shí)現(xiàn)系統(tǒng)的理由,說服阿呆采用分層的方式實(shí)現(xiàn)系統(tǒng)。(5分)</p>&l
60、t;p> 1? 好的分層體系結(jié)構(gòu)使系統(tǒng)易于擴(kuò)展和維護(hù) </p><p> – 做到關(guān)系分離、高級(jí)服務(wù)和低級(jí)服務(wù)分離、特定于應(yīng)用的服務(wù)與一般性服務(wù)分離 </p><p> – 對(duì)某一特定層進(jìn)行修改而不會(huì)影響到任何其他層 </p><p> – 層是模塊化的,可以重寫某一層,或是整個(gè)替換某一層,只要接口不變,系統(tǒng)其他層次不受影響。這樣,某些層能夠用新的實(shí)現(xiàn)
61、替換 </p><p> 2? 在各層之間限制消息流動(dòng),減少層次耦合,增加移植性 </p><p> 3? 某些層可以分布式實(shí)現(xiàn) </p><p> 4? 利于在中間層實(shí)施安全特性 </p><p> 5? 通過邏輯劃分,有助于團(tuán)隊(duì)開發(fā)</p><p> 6、阿呆剛學(xué)過GRASP設(shè)計(jì)原則,覺得很不錯(cuò),于是準(zhǔn)備
62、應(yīng)用在設(shè)計(jì)的選課系統(tǒng)中,系統(tǒng)有課程類,課程類的實(shí)例包含某門課程的具體信息。阿呆就想,依據(jù)信息專家的原則,那么,該由課程對(duì)象把課程信息存入到數(shù)據(jù)庫中。但是項(xiàng)目經(jīng)理告訴他這樣做不好。阿呆想不通,請(qǐng)你詳細(xì)為阿呆解釋一下。(5分)</p><p><b> 參考P213 </b></p><p> 將課程信息存入數(shù)據(jù)庫的職責(zé)分配給課程類會(huì)造成課程類與數(shù)據(jù)庫接口類的耦合,
63、面向數(shù)據(jù)庫的操作與實(shí)際的課程類無關(guān),使得課程類非內(nèi)聚,不利于數(shù)據(jù)庫操作的復(fù)用,其它類也存在保存對(duì)象的職責(zé)。</p><p> 在某些情況下,專家模式建議的方法并不好,這是由于耦合與內(nèi)聚問題所產(chǎn)生的。專家會(huì)建議由課程對(duì)象把課程信息存入到數(shù)據(jù)庫中,那么按照這個(gè)決定進(jìn)行邏輯推理,每個(gè)類都應(yīng)當(dāng)把自身保存到數(shù)據(jù)庫中。但這樣會(huì)導(dǎo)致內(nèi)聚,耦合,及冗余方面的問題,例如現(xiàn)在課程類必須包含于數(shù)據(jù)庫處理相關(guān)的邏輯,如SQL和JDBC
64、相關(guān)的處理邏輯。因此,課程類由于存在其他職責(zé)而降低了它的內(nèi)聚,這個(gè)類必須與其他子系統(tǒng)的數(shù)據(jù)服務(wù)進(jìn)行耦合,會(huì)使得耦合度上升。這樣會(huì)導(dǎo)致大量持久性類中重復(fù)出現(xiàn)類似的數(shù)據(jù)庫邏輯,有大量的冗余。</p><p> 所以這樣的做法違反了基本架構(gòu)原則,應(yīng)將應(yīng)用邏輯和數(shù)據(jù)庫邏輯放置不同一處,而不是在同一構(gòu)件中把不同的系統(tǒng)關(guān)注混合起來。因此,按照專家模式,該由課程對(duì)象把課程信息存入到數(shù)據(jù)庫中是合理的,但由于其他原因,會(huì)使得我們
65、最終得出不佳的設(shè)計(jì)。</p><p> 7、根據(jù)下列代碼,畫圖說明已經(jīng)創(chuàng)建的類的數(shù)據(jù)成員及類間的關(guān)系。(要求:如有關(guān)聯(lián)需要表明關(guān)聯(lián)的方向、角色名和多重性)(4分)</p><p><b> [代碼]</b></p><p> 三、簡單分析題(每題5分,共3題,共15分)</p><p> 1、常見的網(wǎng)上商店里的購
66、物車(ShopCart),需要讓每種商品(Item)只在購物車內(nèi)出現(xiàn)一次,購買相同商品只需要更新商品的數(shù)量即可。(類圖如下)。當(dāng)往購物車內(nèi)添加商品時(shí),需要比較是否有相同的商品在購物車內(nèi)。請(qǐng)問這個(gè)比較商品是否相同的職責(zé)由那個(gè)類實(shí)現(xiàn)比較合適?為什么?(5分)</p><p> 利用信息專家原則,這個(gè)比較商品的職責(zé)屬于購物車的,所以由購物車類實(shí)現(xiàn)</p><p> 2、搬了新家,阿呆決定去申
67、請(qǐng)安裝ADSL,他到營業(yè)廳填好單,和證件一起交給營業(yè)員。營業(yè)員查看阿呆的證件,接過單子開始操作電腦。如果站在營業(yè)廳身后,會(huì)看見營業(yè)員打開一個(gè)“受理”菜單,選擇“ADSL”,彈出一個(gè)帶有好多個(gè)Tab的框框,營業(yè)員嘩哩吧啦把數(shù)據(jù)輸進(jìn)去,然后讓阿呆設(shè)置一個(gè)服務(wù)密碼,又過一隊(duì),營業(yè)員遞出單子,告訴阿呆回家等,施工人員一天內(nèi)就到。阿呆高興的出門。營業(yè)員嘆了一口氣,想“又弄完一個(gè)”…….</p><p> 考慮營業(yè)員的“A
68、DSL業(yè)務(wù)受理系統(tǒng)”,根據(jù)上述信息,分析下面所列對(duì)象或事件的歸屬那一類別,并在表中類別填寫。(有可能屬于多個(gè)類別,也有可能都不屬于任何一類)(5分)</p><p> 對(duì)象或事件:阿呆 營業(yè)員 設(shè)置密碼 施工人員 受理ADSL申請(qǐng) 安裝ADSL </p><p> 類別:主參與者 輔助參與者 用例 涉眾</p><p&
69、gt; 3、狀態(tài)圖是為某個(gè)對(duì)象的狀態(tài)和事件以及響應(yīng)事件的行為的建模。下面的普通電話機(jī)的狀態(tài)圖,技術(shù)經(jīng)理已經(jīng)使用狀態(tài)圖對(duì)其詳細(xì)建模,但阿呆不小心把圖弄模糊了,請(qǐng)你幫忙補(bǔ)充完整。(5分)</p><p> 四、分析題(共4題,共33分)</p><p> 1、下面的代碼描述了一個(gè)DataSet類,該類提供了對(duì)一組數(shù)據(jù)的基本統(tǒng)計(jì)功能,以及一個(gè)ExamMarks類,它使用DataSet存儲(chǔ)并
70、計(jì)算一組考試分?jǐn)?shù)的平均值。主函數(shù)展示了讀入兩個(gè)分?jǐn)?shù),用ExamMarks保存它們,并打印輸出平均值。請(qǐng)畫一個(gè)順序圖,說明主函數(shù)執(zhí)行時(shí)發(fā)生的交互。(注意:下面的代碼是左右排版)。(8分)</p><p><b> DataSet類</b></p><p> ExamMarks類和Average類2、請(qǐng)根據(jù)下面描述繪制出汽車公司調(diào)度管理系統(tǒng)的領(lǐng)域模型。</p&g
71、t;<p> 阿呆開設(shè)了一家汽車 公司專門為學(xué)生服務(wù),公司擁有40倆汽車,服務(wù)對(duì)象是1600個(gè)學(xué)生。汽車日常行駛的路線有30條,但在節(jié)假日等特殊日子里會(huì)臨時(shí)增加新的路線。每條路線上設(shè)有許多站牌,學(xué)生們可在這些地方上下車。公司雇傭了20個(gè)全職的司機(jī)和30個(gè)兼職的司機(jī)。汽車公司設(shè)有一個(gè)調(diào)度員,專門負(fù)責(zé)司機(jī)和路線的安排。該調(diào)度員也負(fù)責(zé)學(xué)生和家長們上下車的地點(diǎn)以及時(shí)間等方面的特別要求傳達(dá)給司機(jī)。當(dāng)路線變更或增添新路線時(shí),調(diào)度員必
72、須將這些信息傳達(dá)給司機(jī)、學(xué)生和家長。公司經(jīng)常會(huì)收到學(xué)生和家長們對(duì)司機(jī)的投訴。如果投訴的情況相當(dāng)嚴(yán)重,司機(jī)有可能會(huì)被停職甚至被解雇。另外,公司也可能會(huì)招募新員工,以代替被解雇和退休的員工,或配備給新的路線。(9分)</p><p> 3、下面是航空公司系統(tǒng)的部分類模型,模型里的類都是需要持久存儲(chǔ)的對(duì)象。請(qǐng)你為阿呆設(shè)計(jì)一個(gè)將該類圖映射為關(guān)系數(shù)據(jù)庫中的表的方案。即數(shù)據(jù)庫中該有用哪些表存儲(chǔ)這些類的數(shù)據(jù),這些表該有哪些列
73、。(7分) </p><p> Airline(AlID,name,symbol)</p><p> Employee(idCard,name,AlID)</p><p> Pilot(idCard,fightRating)</p><p> FightAssistant(idCard)</p><p> F
74、ight(fightNum,date,pilotID,copilotID,AlID)</p><p> AttendantAssignment(fightNum, idCard)</p><p> 4、下面是收音機(jī)系統(tǒng)設(shè)計(jì)過程中的一張為客戶折扣創(chuàng)建定價(jià)策略順序圖,請(qǐng)根據(jù)順序圖所示,寫出addCustomerPricingStrategy方法的基本實(shí)現(xiàn)代碼。(包括函數(shù)的定義,函數(shù)所在類的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 英語中考練習(xí)單選
- 期中考練習(xí)答案
- 網(wǎng)考練習(xí)題(三)
- 成語中考練習(xí)題
- 信息會(huì)考練習(xí)題
- 自考練習(xí)題-總
- 網(wǎng)考練習(xí)題三
- 初中數(shù)學(xué)中考練習(xí)試卷
- 網(wǎng)考練習(xí)題(一)
- 網(wǎng)考練習(xí)題一
- uml練習(xí)題
- 場(chǎng)營銷題庫供參考練習(xí)
- 資產(chǎn)評(píng)估形考練習(xí)題
- 建筑技能高考練習(xí)題
- 電工理論網(wǎng)考練習(xí)題
- uml復(fù)習(xí)習(xí)題大匯總
- 電子商務(wù)uml圖匯總
- 實(shí)驗(yàn)1-uml實(shí)驗(yàn)匯總
- 上海初中歷史會(huì)考練習(xí)資料
- 英語中考練習(xí)單選test1
評(píng)論
0/150
提交評(píng)論