上半年軟件設(shè)計師下午真題試卷_第1頁
上半年軟件設(shè)計師下午真題試卷_第2頁
上半年軟件設(shè)計師下午真題試卷_第3頁
上半年軟件設(shè)計師下午真題試卷_第4頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2017年上半年軟件設(shè)計師下午試卷第 1 題閱讀下列說明和圖,回答問題1 至問題 4,將解答填入答題紙的對應(yīng)欄內(nèi)。【說明】某醫(yī)療器械公司作為復(fù)雜醫(yī)療產(chǎn)品的集成商,必須保持高質(zhì)量部件的及時供應(yīng)。為了實現(xiàn)這一目標,該公司欲開發(fā)一采購系統(tǒng)。系統(tǒng)的主要功能如下:1、檢查庫存水平。采購部門每天檢查部件庫存量,當(dāng)特定部件的庫存量降至其訂貨點時,返回低存量部件及庫存量。2、下達采購訂單。采購部門針對低存量部件及庫存量提交采購請求,向其供應(yīng)商(通過供應(yīng)商文件訪問供應(yīng)商數(shù)據(jù))下達采購訂單,并存儲于采購訂單文件中。3、交運部件。當(dāng)供應(yīng)商提交提單并交運部件時,運輸和接收(S/R)部門通過執(zhí)行以下三步過程接收貨物:(

2、1)驗證裝運部件。通過訪問采購訂單并將其與提單進行比較來驗證裝運的部件,并將提單信息發(fā)給S/R 職員。如果收貨部件項目出現(xiàn)在采購訂單和提單上,則已驗證的提單和收貨部件項目將被送去檢驗。否則,將S/R 職員提交的裝運錯誤信息生成裝運錯誤通知發(fā)送給供應(yīng)商。(2) 檢驗部件質(zhì)量。通過訪問質(zhì)量標準來檢查裝運部件的質(zhì)量,并將己驗證的提單發(fā)給檢驗員。如果部件滿足所有質(zhì)量標準,則將其添加到接受的部件列表用于更新部件庫存。如果部件未通過檢查,則將檢驗員創(chuàng)建的缺陷裝運信息生成缺陷裝運通知發(fā)送給供應(yīng)商。(3)更新部件庫存。庫管員根據(jù)收到的接受的部件列表添加本次采購數(shù)量,與原有庫存量累加來更新庫存部件中的庫存量。標

3、記訂單采購?fù)瓿伞,F(xiàn)采用結(jié)構(gòu)化方法對該采購系統(tǒng)進行分析與設(shè)計,獲得如圖1-1 所示的上下文數(shù)據(jù)流圖和圖 1-2 所示的0 層數(shù)據(jù)流圖。圖 1-1 上下文數(shù)據(jù)流圖圖 1-2 0 層數(shù)據(jù)流圖問題: 1。1 使用說明中的詞語,給出圖1-1 中的實體 E1E5問題: 1.2 使用說明中的詞語,給出圖1-2 中的數(shù)據(jù)存儲 D1D4 的名稱。問題: 1.3 根據(jù)說明和圖中術(shù)語,補充圖1-2 中缺失的數(shù)據(jù)流及其起點和終點。問題: 1.4 用 200 字以內(nèi)文字,說明建模圖問題 1 答案解析:問題 1:E1 供應(yīng)商E2 采購部門員問題 2 答案解析:問題 2D1 庫存表 D2采購訂單表問題 3 答案解析:1-1

4、E3D3和圖 1-2 時如何保持數(shù)據(jù)流圖平衡。檢驗員E4 庫管員E5 S/R 職質(zhì)量標準表D4 供應(yīng)商表裝運錯誤通知: P3(驗證裝運部件) -E1(客戶)缺陷裝運通知: P4(校驗部件質(zhì)量) -E1(客戶)產(chǎn)品檢驗: P3(驗證裝運部件) - P4(校驗部件質(zhì)量)檢查庫存信息: P1(檢查庫存水平) -D1 (庫存表)問題 4 答案解析:父圖中某個加工的輸入輸出數(shù)據(jù)流必須與其子圖的輸入輸出數(shù)據(jù)流在數(shù)量上和名字上相同。父圖的一個輸入 (或輸出)數(shù)據(jù)流對應(yīng)于子圖中幾個輸入 (或輸出)數(shù)據(jù)流,而子圖中組成的這些數(shù)據(jù)流的數(shù)據(jù)項全體正好是父圖中的這一個數(shù)據(jù)流。第 2 題讀下列說明,回答問題1 至問題

5、3,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】某房屋租賃公司擬開發(fā)一個管理系統(tǒng)用于管理其持有的房屋、租客及員工信息。請根據(jù)下述需求描述完成系統(tǒng)的數(shù)據(jù)庫設(shè)計?!拘枨竺枋觥?、公司擁有多幢公寓樓,每幢公寓樓有唯一的樓編號和地址。每幢公寓樓中有多套公寓,每套公寓在樓內(nèi)有唯一的編號 (不同公寓樓內(nèi)的公寓號可相同。系統(tǒng)需記錄每套公寓的臥室數(shù)和衛(wèi)生間數(shù)。2、員工和租客在系統(tǒng)中有唯一的編號(員工編號和租客編號 )。3、對于每個租客,系統(tǒng)需記錄姓名、多個聯(lián)系電話、一個銀行賬號(方便自動扣房租)、一個緊急聯(lián)系人的姓名及聯(lián)系電話。4、系統(tǒng)需記錄每個員工的姓名、一個聯(lián)系電話和月工資。員工類別可以是經(jīng)理或維修工,也可兼任。

6、每個經(jīng)理可以管理多幢公寓樓。每幢公寓樓必須由一個經(jīng)理管理。系統(tǒng)需記錄每個維修工的業(yè)務(wù)技能,如:水暖維修、電工、木工等。5、租客租賃公寓必須和公司簽訂租賃合同。一份租賃合同通常由一個或多個租客(合租 )與該公寓樓的經(jīng)理簽訂,一個租客也可租賃多套公寓。合同內(nèi)容應(yīng)包含簽訂日期、開始時間、租期、押金和月租金?!靖拍钅P驮O(shè)計】根據(jù)需求階段收集的信息,設(shè)計的實體聯(lián)系圖(不完整)如圖 2-1 所示?!具壿嫿Y(jié)構(gòu)設(shè)計】根據(jù)概念摸型設(shè)計階段完成的實體聯(lián)系圖,得出如下關(guān)系模式(不完整 ):聯(lián)系電話 (電話號碼,租客編號 )租客(租客編號,姓名,銀行賬號,聯(lián)系人姓名,聯(lián)系人電話)員工 (員工編號,姓名,聯(lián)系電話,類別

7、,月工資,( a) )公寓樓 ( (b) ,地址,經(jīng)理編號 )公寓 (樓編號,公寓號,臥室數(shù),衛(wèi)生間數(shù)合同(合同編號,租客編號,樓編號,公寓號,經(jīng)理編號,簽訂日期,起始日期,租期, (c) ,押金)問題: 2.1 補充圖 2-1 中的 “簽約 ”聯(lián)系所關(guān)聯(lián)的實體及聯(lián)系類型。問題: 2.2 補充邏輯結(jié)構(gòu)設(shè)計中的(a)、( b)、( c)三處空缺。問題: 2.3 在租期內(nèi),公寓內(nèi)設(shè)施如出現(xiàn)問題,租客可在系統(tǒng)中進行故障登記,填寫故障描述,每項故障由系統(tǒng)自動生成唯一的故障編號,由公司派維修工進行故障維修,系統(tǒng)需記錄每次維修的維修日期和維修內(nèi)容。請根據(jù)此需求,對圖2-1 進行補充,并將所補充的 ER 圖

8、內(nèi)容轉(zhuǎn)換為一個關(guān)系模式,請給出該關(guān)系模式。問題 1 答案解析:問題 2 答案解析:問題 2(a)業(yè)務(wù)技能(b)樓編號(c)月租金問題 3 答案解析:新增維修關(guān)系,維修工維修公寓,關(guān)系模式為維修情況維修情況(故障編號,員工編號,樓編號,公寓號,維修日期,維修內(nèi)容)第 3 題閱讀下列系統(tǒng)設(shè)計說明,回答問題1 至問題 3,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】某玩具公司正在開發(fā)一套電動玩具在線銷售系統(tǒng),用于向注冊會員提供端對端的玩具 定制和銷售服務(wù)。在系統(tǒng)設(shè)計階段, "創(chuàng)建新訂單 (New Order)" 的設(shè)計用例詳細描述如表 3-1 所示,候選設(shè)計類分類如表 3-2 所示,并根

9、據(jù)該用例設(shè)計出部分類圖如圖 3-1 所示。表 3-1 創(chuàng)建新訂單 (NewOrder) 設(shè)計用例用例名稱 創(chuàng)建新訂單 New Order用例編號ETM-R002參與者會員前提條件會員已經(jīng)注冊并成功登錄系統(tǒng)1。會員( C1)點擊 “新的訂單 ”按鈕;2。系統(tǒng)列出所有正在銷售的電動玩具清單及價格(C2)3。會員點擊復(fù)選框選擇所需電動玩具并輸入對應(yīng)數(shù)量,點擊 “結(jié)算 ”按鈕;典型事件4。系統(tǒng)自動計算總價( C3), 顯示銷售清單和會員流預(yù)先設(shè)置個人資料的收貨地址和支付方式(C4);5。會員點擊 “確認支付 ”按鈕;6。系統(tǒng)自動調(diào)用支付系統(tǒng)(C5)接口支付該賬單;7。若支付系統(tǒng)返回成功標識,系統(tǒng)生成完

10、整訂單信息持久存儲到數(shù)據(jù)庫訂單表(C6)中;8。系統(tǒng)將以表格形式顯示完整訂單信息(C7),同時自動發(fā)送完整訂單信息 (C8)至?xí)T預(yù)先配置的郵箱地址( C9)。(1)會員點擊 “定制 ”按鈕;(2)系統(tǒng)以列表形式顯示所有可以定制的電動玩具清單和定制屬性 (如尺寸、顏色等)(C10);候選事件3a(3)會員點擊單選按鈕選擇所需要定制的電動玩具并填寫所需要定制的屬性要求, 點擊 “結(jié)算 ”按鈕;(4)回到步驟 4。流(1)若支付系統(tǒng)返回失敗標識,系統(tǒng)顯示會員當(dāng)前默認支付方式( C11)讓會員確認;(2)若會員點擊 “修改付款 ”按鈕,調(diào)用 “修改付7a款”用例,可以新增并存儲為默認支付方式(C12

11、) ,回到步驟 4;(3)若會員點擊 “取消訂單 ”,則該用例終止執(zhí)行。表 3-2 候選設(shè)計類分類接口類( Interface,負責(zé)系統(tǒng)與用戶之間的(a)交互)控制類( Control,負責(zé)業(yè)務(wù)邏輯的處理)(b)實體類( Entity,負責(zé)持久化數(shù)據(jù)的存儲)(c)?在訂單處理的過程中,會員可以點擊“取消訂單 "取消該訂單。如果支付失敗,該訂單將被標記為掛起狀態(tài),可后續(xù)重新支付,如果掛起超時30 分鐘未支付,系統(tǒng)將自動取消該訂單。訂單支付成功后,系統(tǒng)判斷訂單類型:(1)對于常規(guī)訂單,標記為備貨狀態(tài),訂單信息發(fā)送到貨運部,完成打包后交付快遞發(fā)貨;(2)對于定制訂單,會自動進入定制狀態(tài),定

12、制完成后交付快遞發(fā)貨。會員在系統(tǒng)中點擊”收貨 " 按鈕變?yōu)槭肇洜顟B(tài),結(jié)束整個訂單的處理流程。根據(jù)訂單處理過程所設(shè)計的狀態(tài)圖如圖 3-2 所示。問題: 3.1 根據(jù)表 3-1 中所標記的候選設(shè)計類,請按照其類別將編號C1C12 分別填入表 3-2 中的( a)、( b)和( c)處。問題: 3.2 根據(jù)創(chuàng)建新訂單的用例描述,請給出圖3-1 中 X1X4 處對應(yīng)類的名稱。問題: 3.3 根據(jù)訂單處理過程的描述,在圖3-2 中 S1S5 處分別填入對應(yīng)的狀態(tài)名稱。問題 1 答案解析:(a): C4、C5、 C7、 C8、C10、C11(b): C3(c): C1、C2、 C6、 C9、C1

13、2一、實體類實體類是用于對必須存儲的信息和相關(guān)行為建模的類。實體對象 (實體類的實例) 用于保存和更新一些現(xiàn)象的有關(guān)信息,例如:事件、人員或者一些現(xiàn)實生活中的對象。實體類通常都是永久性的,它們所具有的屬性和關(guān)系是長期需要的,有時甚至在系統(tǒng)的整個生存期都需要。二、邊界類邊界類是系統(tǒng)內(nèi)部與系統(tǒng)外部的業(yè)務(wù)主角之間進行交互建模的類。邊界類依賴于系統(tǒng)外部的環(huán)境,比如業(yè)務(wù)主角的操作習(xí)慣、外部的條件的限制等。它或者是系統(tǒng)為業(yè)務(wù)主角操作提供的一個 GUI ,或者系統(tǒng)與其他的系統(tǒng)之間進行一個交互的接口,所以當(dāng)外部的 GUI 變化時,或者是通信協(xié)議有變化時,只需要修改邊界類就可以了,不用再去修改控制類和實體類。業(yè)

14、務(wù)主角通過它來與控制對象交互,實現(xiàn)用例的任務(wù)。邊界類調(diào)用用例內(nèi)的控制類對象,進行相關(guān)的操作。一個系統(tǒng)可能會有多種邊界類:用戶界面類- 幫助與系統(tǒng)用戶進行通信的類系統(tǒng)接口類- 幫助與其他系統(tǒng)進行通信的類設(shè)備接口類 - 為用來監(jiān)測外部事件的設(shè)備(如傳感器)提供接口的類三、控制類控制類用于對一個或幾個用例所特有的控制行為進行建模,它描述的用例的業(yè)務(wù)邏輯的實現(xiàn),控制類的設(shè)計與用例實現(xiàn)有著很大的關(guān)系。在有些情況下,一個用例可能對應(yīng)多個控制類對象,或在一個控制類對象中對應(yīng)著對個用例。它們之間沒有固定的對應(yīng)關(guān)系,而是根據(jù)具體情況進行分析判斷,控制類有效將業(yè)務(wù)邏輯獨立于實體數(shù)據(jù)和邊界控制,專注于處理業(yè)務(wù)邏輯,

15、控制類會將特有的操作和實體類分離,者有利于實體類的統(tǒng)一化和提高復(fù)用性。當(dāng)業(yè)務(wù)主角通過邊界類來執(zhí)行用例的時候,產(chǎn)生一個控制類對象,在用例被執(zhí)行完后,控制類對象會被銷毀。控制類的特點:獨立于環(huán)境、和用例的實現(xiàn)關(guān)聯(lián)、使用關(guān)聯(lián)實體類或操作實體類對象、專注于業(yè)務(wù)邏輯的實現(xiàn)。當(dāng)然如果用例的邏輯較為簡單,可以直接利用邊界類來操作實體類,而不必再使用控制類?;蛘哂美倪壿嬢^為固定,業(yè)務(wù)邏輯固定不會改變。也可以直接在邊界類實現(xiàn)該邏輯。問題 2 答案解析:X1:收貨地址X2:支付方式X3:郵箱地址X4:電動玩具定制屬性問題 3 答案解析:S1:訂單掛起S2:訂單備貨S3:訂單定制S4:訂單發(fā)貨S5:訂單收貨第 4

16、 題閱讀下列說明和C 代碼,回答問題1 至問題3,將解答寫在答題紙的對應(yīng)欄內(nèi)?!菊f明】假幣問題:有 n 枚硬幣,其中有一枚是假幣,己知假幣的重量較輕?,F(xiàn)只有一個天平,要求用盡量少的比較次數(shù)找出這枚假幣?!痉治鰡栴}】將 n 枚硬幣分成相等的兩部分:(1)當(dāng) n 為偶數(shù)時,將前后兩部分,即1。 n/2 和 n/2+1。 0,放在天平的兩端,較輕的一端里有假幣,繼續(xù)在較輕的這部分硬幣中用同樣的方法找出假幣:(2)當(dāng) n 為奇數(shù)時,將前后兩部分,即1。(n -1)/2 和 (n+1)/2+1。 0,放在天平的兩端,較輕的一端里有假幣,繼續(xù)在較輕的這部分硬幣中用同樣的方法找出假幣;若兩端重量相等,則中間

17、的硬幣,即第(n+1)/2 枚硬幣是假幣?!綜 代碼】下面是算法的 C 語言實現(xiàn),其中 :coins: 硬幣數(shù)組first ,last:當(dāng)前考慮的硬幣數(shù)組中的第一個和最后一個下標#include <stdio。h>int getCounterfeitCoin(int coins , int first ,int last)int firstSum = 0,lastSum = 0;int ; ìif(first=last-1) /* 只剩兩枚硬幣 */if(coinsfirst < coinslast)return first;return last;if(last

18、- first + 1) % 2 =0)/* 偶數(shù)枚硬幣 */for(i = first;i <( 1 );i+)firstSum+= coinsi;for(i=first + (last-first) / 2 + 1;i < last +1;i+)lastSum += coinsi;if( 2 )Return getCounterfeitCoin(coins,first,first+(last-first)/2;)elseReturn getCounterfeitCoin(coins,first+(last-first)/2+1,last;)else/* 奇數(shù)枚硬幣 */for(

19、i=first;i<first+(last-first)/2;i+)firstSum+=coinsi;for(i=first+(last-first)/2+1;i<last+1;i+)lastSum+=coinsi;if(firstSum<lastSum)return getCounterfeitCoin(coins,first,first+(last-first)/2-1);else if(firstSum>lastSum)return getCounterfeitCoin(coins,first+(last-first)/2-1,last);elseReturn(

20、3 )問題問題: 4.1 根據(jù)題干說明,填充C 代碼中的空( 1) -(3)問題: 4.2 根據(jù)題干說明和C 代碼,算法采用了()設(shè)計策略。函數(shù) getCounterfeitCoin 的時間復(fù)雜度為()(用O 表示)。問題: 4.3 若輸入的硬幣數(shù)為30,則最少的比較次數(shù)為(),最多的比較次數(shù)為()。答案解析:問題 1(1) first+(last-first)/2或(first+last)/2 (2)firstSum<lastSum(3) first+(last-first)/2或(first+last)/2問題 2(4)分治法(5) O(nlogn)問題 3(6)2(7)4試題分析:

21、若輸入30 個硬幣,找假硬幣的比較過程為:第 1 次: 15 比 15,此時能發(fā)現(xiàn)假幣在 15 個的范圍內(nèi)。第 2 次: 7 比 7,此時,如果天平兩端重量相同,則中間的硬幣為假幣,此時可找到假幣,這是最理想的狀態(tài)。第 3 次: 3 比 3,此時若平衡,則能找出假幣,不平衡,則能確定假幣為 3 個中的 1 個。第 4 次: 1 比 1,到這一步無論是否平衡都能找出假幣,此時為最多比較次數(shù)。第 6 題閱讀下列說明和Java 代碼,將應(yīng)填入(n) 處的字句寫在答題紙的對應(yīng)欄內(nèi)?!菊f明】某快餐廳主要制作并出售兒童套餐,一般包括主餐 (各類比薩 )、飲料和玩具,其餐品種類可能不同,但其制作過程相同。前

22、臺服務(wù)員 (Waiter) 調(diào)度廚師制作套餐?,F(xiàn)采用生成器 (Builder) 模式實現(xiàn)制作過程,得到如圖 6-1 所示的類圖?!綣ava 代碼】class Pizzaprivate String parts;public void setParts(String parts) this。 parts = parts; public String toString() return this 。parts; abstract class PizzaBuilderprotected Pizza pizza;public Pizza getPizza() return pizza; public void createNewPizza() pizza = new Pizza(); public (1) ;class HawaiianPizzaBuilder extends PizzaBuilderpublic void buildParts()pizza。setParts("cross + mild + ham&pineapp1e);”class SpicyPizzaBuilder extends PizzaBuilderpubli

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論