第一篇:軟考軟件設(shè)計師教程重難點解析
軟考軟件設(shè)計師資訊
http:// 軟考軟件設(shè)計師教程重難點解析
2016下半年軟考軟件設(shè)計師考試即將開始,同學(xué)們準(zhǔn)備好了嗎,希賽小編為正在備戰(zhàn)下半年考試的你們準(zhǔn)備了一些軟件設(shè)計師教程重難點解析,希望對大家有所幫助。
死鎖(Deadlock)是指多個進(jìn)程在運行的過程中因爭奪資源而造成的一種僵局。當(dāng)進(jìn)程處于這種僵持狀態(tài)時,若無外力作用,它們都將無法再向前推進(jìn)。在軟件設(shè)計師的考試當(dāng)中,這個知識點的考查是以選擇題的形式出現(xiàn)的,考點主要有:死鎖的必要條件、解決死鎖的方法,最難高難度會考到“銀行家算法”。本文將介紹死鎖的相關(guān)知識,但不會具體講解“銀行家算法”,該算法將在本系列的下一篇文章中詳細(xì)說明。
1、死鎖發(fā)生的必要條件
死鎖的發(fā)生必須具備四個必要條件,這四個條件相互聯(lián)系、缺一不可。
(1)互斥條件:指進(jìn)程對所分配到的資源進(jìn)行排他性使用,即在一段時間內(nèi)某資源只由一個進(jìn)程占用。如果此時還有其他進(jìn)程請求該資源,則請求者只能等待,直至占有該資源的進(jìn)程用完并釋放。
(2)請求和保持條件:指進(jìn)程已經(jīng)保持了至少一個資源,但又提出了新的資
軟考軟件設(shè)計師資訊
http:// 源請求,而該資源又已被其他進(jìn)程占有,此時請求進(jìn)程阻塞,但又對自己已獲得的其他資源保持不放。
(3)不剝奪條件:指進(jìn)程已獲得的資源,在未使用完之前,不能被剝奪,只能在使用完時由自己釋放。
(4)環(huán)路等待條件:指在發(fā)生死鎖時,必然存在一個進(jìn)程--資源的環(huán)形鏈,即進(jìn)程集合{P0,P1,P2…Pn}中的P0正在等待一個P1占用的資源,P1正在等待P2占用的資源,……Pn正在等待已被P0占用的資源。
2、判斷系統(tǒng)是否可能進(jìn)入死鎖狀態(tài)
從上面的死鎖解決方案來看,無論哪一種方式都不可避免的要增加系統(tǒng)的負(fù)擔(dān)。而同時一個系統(tǒng)是否有可進(jìn)入死鎖狀態(tài)受系統(tǒng)資源數(shù)量,需要使用該資源的進(jìn)程數(shù)量等因素影響。若系統(tǒng)本不可能引起死鎖,而我們采用了死鎖解決方案,是很不合理的。所以,考試中常考到這樣的題型:給出系統(tǒng)的資源數(shù),以及需要使用該資源的進(jìn)程數(shù)量等參數(shù),讓考生判斷系統(tǒng)有無可能產(chǎn)生死鎖。下面我們以例題的方式來說明如何解決這類問題。
例題1:
系統(tǒng)有3個進(jìn)程:A、B、C。這3個進(jìn)程都需要5個系統(tǒng)資源。如果系統(tǒng)有多少個資源,則不可能發(fā)生死鎖。
解答:
在分析這個問題時,我們可以取一些簡單的數(shù)據(jù)代入試題進(jìn)行驗證、分析,以得到相應(yīng)的規(guī)律。
如:
(1)當(dāng)系統(tǒng)資源數(shù)量為9時,若給A與B分別分配了4個資源,C分配了
1軟考軟件設(shè)計師資訊
http:// 個資源,則系統(tǒng)中的每個進(jìn)程都存在資源不足的情況,而都不放手自己擁有的資源。不能正常運行完畢,發(fā)生死鎖。
(2)當(dāng)系統(tǒng)資源數(shù)量為12時,若給A、B、C各分配4個資源,則死鎖。
(3)當(dāng)系統(tǒng)資源數(shù)量為13時,無論如何分配,總有至少1個進(jìn)程能得到5個資源,得到5個資源的進(jìn)程可以正常運行完畢,而后將自己占用的資源分配給其它進(jìn)程,所以這樣能使所有進(jìn)程運行完畢。
從上面的嘗試,我們可以總結(jié)出一個規(guī)律:先給所有進(jìn)程分配他們所需要的資源數(shù)減1個資源,然后系統(tǒng)如果能再剩余1個資源,則系統(tǒng)不會發(fā)生死鎖。這樣解答本題變得非常容易。
(5-1)*3+1=13。
例題2:
一臺計算機(jī)有10臺磁帶機(jī)被m個進(jìn)程競爭,每個進(jìn)程最多需要三臺磁帶機(jī),那么m至多為時,系統(tǒng)沒有死鎖的危險。
A.3 B.4 C.5 D.6
解答
首先從m=6開始考察,首先每個進(jìn)程分配1臺,剩下的4臺只能分配給4個進(jìn)程,還有2個進(jìn)程沒有分配,如果已經(jīng)分配了2臺的4個進(jìn)程需要3臺的話,則系統(tǒng)就會死鎖。同樣,如果m=5,也會發(fā)生這種情況。當(dāng)m=4時,每個進(jìn)程可以分得2臺,還有2個進(jìn)程可分得3臺,則可正常運行,運行完畢后可釋放資源,從而不會死鎖。在解這道題時有些學(xué)員提出“如果按照答案m=4,則這4個進(jìn)程都是需要3臺磁帶機(jī)的話,共需要12臺磁帶機(jī),這樣還不會死鎖?”。這種想法是錯誤的,因為并不是同時把所有進(jìn)程都分配給足夠的資源才能完成這
軟考軟件設(shè)計師資訊
http:// 些進(jìn)程,可以是一個進(jìn)程先執(zhí)行完,釋放完資源再執(zhí)行另一個進(jìn)程。
例如:4個進(jìn)程中,每個進(jìn)程分配2臺磁帶機(jī),用去了8臺。剩下2臺,仍然可以滿足兩個進(jìn)程,直到他們完成,釋放他們暫用的磁帶機(jī)。
流水線
流水線這個知識點在軟件設(shè)計師考試中是個重點也是個難點,考查的頻率比較高。之所以說流水線是個難點,有兩方面的原因:一方面是需要理解流水線的理論,了解其工作原理,計算方式;另一方面是在軟考當(dāng)中,對于流水線的相關(guān)計算,標(biāo)準(zhǔn)并不是完全統(tǒng)一的,這一點在后面我們將詳細(xì)介紹。
流水線是指在程序執(zhí)行時多條指令重疊進(jìn)行操作的一種準(zhǔn)并行處理實現(xiàn)技術(shù)。各種部件同時處理是針對不同指令而言的,它們可同時為多條指令的不同部分進(jìn)行工作,以提高各部件的利用率和指令的平均執(zhí)行速度。
指令流水線是將指令執(zhí)行分成幾個子過程,每一個子過程對應(yīng)一個工位,我們稱為流水級或流水節(jié)拍,這個工位在計算機(jī)里就是可以重疊工作的功能部件,稱為流水部件。
如圖1所示,IF,ID,EX,WD分別是流水線的流水部件。
流水線要求所有的流水級部件必須在相同的時間內(nèi)完成各自的子過程。在流水線中,指令流動一步便是一個機(jī)器周期,機(jī)器周期的長度必須由最慢的流水級部件處理子過程所需的時間來決定。
軟考軟件設(shè)計師資訊
http://
那么我們?yōu)槭裁匆岢隽魉€這個概念,以及流水線是如何提高系統(tǒng)吞吐量的呢?下面我們來看幾個圖,概念自然就清楚了。
圖2是一個非流水線結(jié)構(gòu)系統(tǒng)執(zhí)行指令時空圖。
我們從圖2中可以看到,任意一個系統(tǒng)時間都有大量的設(shè)備處于空閑狀態(tài),如第一個時間段有ID,EX,WB空閑,則第二個時間段有IF,EX,WB空閑。
我們再來看采用了流水線結(jié)構(gòu)的時空圖3。
顯然,采用流水線可以大大提升系統(tǒng)資源的利用率,以及整個系統(tǒng)的吞吐量。
流水線的操作周期取決于基本操作中最慢的那個。例如:一個3段流水線,軟考軟件設(shè)計師資訊
http:// 各段的執(zhí)行時間分別為t,2t,t。則最慢的一段為2t,所以流水線操作周期為2t。
流水線的執(zhí)行時間公式為:
第1條指令的執(zhí)行時間+(指令條數(shù)-1)*流水線操作周期
例題1
若每一條指令都可以分解為取指、分析和執(zhí)行三步。己知取指時間t取指=4△t,分析時間t分析=3△t,執(zhí)行時間t執(zhí)行=5△t。如果按串行方式執(zhí)行完100條指令需要(1)△t。如果按照流水方式執(zhí)行,執(zhí)行完100條指令需要(2)△t。
供選擇的答案
(1)A.1190 B.1195 C.1200 D.1205
(2)A.504 B.507 C.508 D.510
試題分析
本題考查的是計算機(jī)系統(tǒng)指令流水線方面的基礎(chǔ)知識。根據(jù)題意可以看到,在此流水線中按串行方式執(zhí)行完100條指令要用1200△t。采用流水方式執(zhí)行,執(zhí)行的總時間的關(guān)鍵取決于最長的執(zhí)行時間,所以執(zhí)行完100條的時間為:4Δt+3Δt+5Δt+(100-1)*5Δt=507Δt。
試題答案
C B 例題2
現(xiàn)采用4級流水線結(jié)構(gòu)分別完成一條指令的取指、指令譯碼和取數(shù)、運算,以及送回運算結(jié)果4個基本操作,每步操作時間依次為60 ns,100 ns,50 ns和70 ns。該流水線的操作周期應(yīng)為A ns。若有一小段程序需要用20條基本指
軟考軟件設(shè)計師資訊
http:// 令完成(這些指令完全適合于流水線上執(zhí)行),則得到第一條指令結(jié)果需B ns,完成該段程序需C ns。
在流水線結(jié)構(gòu)的計算機(jī)中,頻繁執(zhí)行D指令時會嚴(yán)重影響機(jī)器的效率。當(dāng)有中斷請求發(fā)生時,采用不精確斷點法,則將E。
供選擇的答案
A:①50②70③100④280
B:①100②200③280④400
C:①1400②2000③2300④2600
D:①條件轉(zhuǎn)移②無條件轉(zhuǎn)移③算術(shù)運算④訪問存儲器
E:①僅影響中斷反應(yīng)時間,不影響程序的正確執(zhí)行
②不僅影響中斷反應(yīng)時間,還影響程序的正確執(zhí)行
③不影響中斷反應(yīng)時間,但影響程序的正確執(zhí)行
④不影響中斷反應(yīng)時間,也不影響程序的正確執(zhí)行
試題分析
本題主要考查對流水線技術(shù)的掌握。
對于CPU來說,流水線技術(shù)實際上是一種以增加硬件換取性能的方式:把一條指令分解成多條更小的指令,由不同的處理單元來處理,在理想的滿負(fù)荷運行狀態(tài)下,執(zhí)行一條指令的時間雖然沒有減少,但是由于多個處理單元同時工作,在同一時間上可以執(zhí)行不同指令的不同部分,從而使得總體的執(zhí)行時間大大減少。流水線的操作周期取決于基本操作中最慢的那個。這里最慢的是100 ns,所以操作周期是100 ns。在流水線中,其實每一條指令的執(zhí)行時間并沒有減少,而第一條指令的執(zhí)行并沒有體現(xiàn)流水線的優(yōu)勢,它在4個操作周期后才能執(zhí)行完
軟考軟件設(shè)計師資訊
http:// 成,這以后每個操作周期都能完成一條指令的執(zhí)行。
影響流水線效率的重要因素有條件轉(zhuǎn)移指令和中斷,因為它們打斷了流水線,使得流水線不得不重新裝載。
不精確斷點法實現(xiàn)簡單,但是要等到流水線內(nèi)的指令完成之后再響應(yīng)中斷。
試題答案
A.③B.④C.③D.①E.②
上面的兩個例題,都是軟考當(dāng)中出現(xiàn)過的真題。我們可以看出,兩個題在計算流水線時間方面,標(biāo)準(zhǔn)并不是統(tǒng)一的。
在例題1中:
4Δt+3Δt+5Δt+(100-1)*5Δt=507Δt。
而在例題2中:
100ns+100ns+100ns+100ns+(20-1)*100ns=2300ns
這兩種計算方法,都是在套用公式:“第1條指令的執(zhí)行時間+(指令條數(shù)-1)*流水線操作周期”,而對于“第1條指令的執(zhí)行時間”的理解并不相同。在例題1中,第1條指令的執(zhí)行時間是將指令執(zhí)行時的幾個階段所需時間相加得到,而在例題2中,認(rèn)為每一個階段所需時間都是流水線的周期時間。其中前者是流水線的理論計算方法,而后者是我們在設(shè)計硬件流水線時,常用的方式。兩種計算方法,從理論上來講,都是正確的,但考試時,只有一個是正確答案。那么我們應(yīng)該怎么做呢?由于每次考試中,無論認(rèn)可的是哪種計算方式,都只會把這種計算方式的正確答案放入選項中,而不會將兩個正確答案都放入,所以我們在用一種方式不能得到正確選項時,應(yīng)采用另一種方式進(jìn)行計算,來得到正確答案。
第二篇:軟考軟件設(shè)計師教程綜合知識集錦(五)
軟件設(shè)計師
http:// 軟考軟件設(shè)計師教程綜合知識集錦
(五)2016下半年軟件設(shè)計師考試已經(jīng)結(jié)束了,希賽小編為打算參加2017年考試的你們準(zhǔn)備了一些軟件設(shè)計師教程綜合知識集錦,希望對大家有所幫助。
設(shè)備管理 其主要任務(wù)是:
實現(xiàn)對外部設(shè)備的分配和回收;啟動外部設(shè)備
控制輸入/輸出設(shè)備與處理器或主存之間交換數(shù)據(jù);實現(xiàn)對磁盤的調(diào)度;處理設(shè)備的中斷;實現(xiàn)虛擬設(shè)備等。
根據(jù)不同的方面,可以對設(shè)備進(jìn)行分類。
按數(shù)據(jù)組織方式:字符設(shè)備(常對應(yīng)于慢速設(shè)備)和塊設(shè)備(常對應(yīng)于快速設(shè)備)。
按資源性質(zhì):獨占設(shè)備(如終端、打印機(jī))、共享設(shè)備(如磁盤)和虛擬設(shè)備。
外部設(shè)備和主存之間常用的傳輸方式有4種。程序控制方式 中斷方式
直接存儲訪問(DMA)方式 通道方式
虛擬設(shè)備:采用假脫機(jī)技術(shù),可以將低速的獨占設(shè)備改造成一種共享設(shè)備。簡稱為spooling技術(shù),利用多道程序技術(shù),采用一組程序模擬一臺I/O處理機(jī)
設(shè)備分配有兩種方法,即靜態(tài)分配方法和動態(tài)分配方法。其中設(shè)備的動態(tài)分配算法與進(jìn)程調(diào)度相似,也具有一定的分配策略,如先請求先分配、優(yōu)先級高者先分配等。
例如,關(guān)于磁盤調(diào)度的算法就有以下幾種。
軟件設(shè)計師
http:// 先來先服務(wù)(FCFS)調(diào)度
最短查找時間優(yōu)先(SSTF)調(diào)度:離磁頭最近的服務(wù)被響應(yīng) SCAN調(diào)度(電梯算法):在前進(jìn)方向?qū)ふ易疃痰牟檎視r間的 N步SCAN調(diào)度 C-SCAN調(diào)度
存儲管理
現(xiàn)代計算機(jī)系統(tǒng)中的存儲系統(tǒng)通常是多級存儲體系,至少有主存(內(nèi)存)和輔存(外存)兩級,有的系統(tǒng)有更多的級數(shù)。
主存是由系統(tǒng)實際提供的存儲單元組成的一個連續(xù)地址空間,處理器可以直接存取。它的存儲容量受到實際存儲單元的限制。
輔存是指軟盤、硬盤、光盤和磁帶等一些外部存儲部件,常用來存放暫不執(zhí)行的程序和數(shù)據(jù),處理器不能直接訪問,需啟動I/O設(shè)備,才能進(jìn)行內(nèi)存、外存交換。
系統(tǒng)中主存的使用一般分系統(tǒng)空間和用戶空間兩個部分。把相對地址空間的程序轉(zhuǎn)換成絕對地址空間(物理地址)空間上能夠執(zhí)行的過程稱為地址重定位,也稱為地址映射或地址映像。地址重定位有兩種:靜態(tài)重定位和動態(tài)重定位。
存儲管理應(yīng)該提高存儲資源的利用效率,又方便用戶使用,存儲管理的任務(wù)應(yīng)具有下列功能。
分配與回收 存儲擴(kuò)充來自 共享與保護(hù)
◆實存管理:實存的管理一般有三種分配方式。
單一連續(xù)分配:一個作業(yè)占全部空間,靜態(tài)分配(不對主存保護(hù),引起沖突)固定分區(qū)分配:靜態(tài),空間分區(qū) 可變分區(qū)分配:動態(tài)分配分區(qū)
軟件設(shè)計師
http:// 交換:較小的空間運行較大的作業(yè),采用的方法
其中,可變分區(qū)分配方法是目前的系統(tǒng)采用得較多的。它將主存空間按用戶要求動態(tài)地分劃成若干個分區(qū)。為了消除分配中的外部碎片,系統(tǒng)還需要合并自由區(qū)和進(jìn)行存儲拼接或緊湊。
關(guān)于實存的存儲分配算法主要有4種。最佳適應(yīng)算法 首次適應(yīng)算法 最差適應(yīng)算法 循環(huán)首次適應(yīng)算法 ◆虛存管理
虛擬存儲(簡稱虛存)不考慮實際主存的大小和數(shù)據(jù)存取的實際地址,只考慮相互有關(guān)的數(shù)據(jù)之間的相對位置,其容量由計算機(jī)的地址位數(shù)決定。
虛擬存儲通常涉及存儲空間大于計算機(jī)系統(tǒng)主存中可利用存儲空間時的尋址能力問題。其特點是運行程序訪問的地址不是從主存中可以獲得的,即運行進(jìn)程訪問的地址與主存可用的地址分離。
運行進(jìn)程訪問的地址稱為虛地址,主存中可用的地址稱為實地址。一個運行進(jìn)程可以訪問的虛地址范圍稱為進(jìn)程的虛地址空間,相應(yīng)的,可使用的實地址范圍稱為實地址空間。
虛存的組織方式有3種。◆分段存儲組織
一個作業(yè)是由若干個具有邏輯意義的段組成。在分段系統(tǒng)中,允許程序(作業(yè))占據(jù)主存中若干分離的分區(qū),每個分區(qū)存儲一個程序分段。分段系統(tǒng)中的虛地址是一個有序?qū)?段號、段內(nèi)位移)。系統(tǒng)為每個作業(yè)建立一個段表,其內(nèi)容包括段號與主存起始地址的對應(yīng)關(guān)系、段長和狀態(tài)。
◆頁式存儲組織
與段式存儲組織相似。主存被劃分成若干個定長的頁,頁式
軟件設(shè)計師
http:// 系統(tǒng)中的虛地址是一個有序?qū)?頁號、頁內(nèi)位移)。系統(tǒng)為每個進(jìn)程建立一個頁表,其內(nèi)容包括進(jìn)程的邏輯頁號與物理頁號的對應(yīng)關(guān)系、狀態(tài)等。
◆段頁式存儲組織
綜合了上述兩種存儲組織的特點。主存被劃分成定長的頁,段頁式系統(tǒng)中虛地址形式是(段號、段內(nèi)頁號、頁內(nèi)位移)。系統(tǒng)為每個進(jìn)程建立一個段表,再為每個段表建立一個頁表。
虛存管理的置換策略有幾種算法轉(zhuǎn)自:考試網(wǎng)-[Examw.Com] 最優(yōu)(OPT)算法:選擇淘汰不再使用或最遠(yuǎn)的將來才使用的頁。
隨機(jī)(RAND)算法:隨機(jī)的選擇淘汰的頁。
先進(jìn)先出(FIFO)算法:選擇淘汰主存駐留時間最長的頁。最近最少使用(LRU)算法:選擇淘汰離當(dāng)前時刻最近的一段時間使用得最少的頁。
虛存管理策略的基礎(chǔ)是局部性原理——進(jìn)程往往不均勻地高度局部化地訪問主存。這種局部性表現(xiàn)為時間局部性和空間局部性兩種。
根據(jù)局部性原理的特性,提出了工作集理論。工作集是指進(jìn)程頻繁訪問頁面的集合。工作集理論要求,為了使進(jìn)程能有效的運行,它的頁面工作集應(yīng)駐留在主存中,以防止“顛簸”(又稱抖動,即指由于進(jìn)程頻繁的從輔存請求頁面而造成的過度的頁面調(diào)度)現(xiàn)象。
第三篇:2015年軟考軟件設(shè)計師模擬試題及答案解析
2015年軟考軟件設(shè)計師模擬試題及答案解析[1] 【網(wǎng)絡(luò)綜合-2015年軟考軟件設(shè)計師模擬試題及答案解析】:
41.不是C語言提供的合法關(guān)鍵字是(46)
(45)A.switch
B.begin
C.case
D.default
參考答案:(46)B。
解析:因C語言的關(guān)鍵字表中沒有begin,它不是C語言的關(guān)鍵字。所以解答是B。
42.下列字符列中,能作為單個標(biāo)識符是(47)
(47)A.?a
B.a=2
C.a.3
D.a___3
參考答案:(47)D。
解析:在C語言中,規(guī)定標(biāo)識符是這樣一種字符序列,由英文字母或下線字符開始,后接任1個英文字母、下線字符和數(shù)字符組成。所以問題所列的字符列只有a_3是標(biāo)識符,其余都l是標(biāo)識符,一個是由字符’?’開頭、一個中間有字符’=’,另一個有字符’.’。所以解答是D。
43.在C語言中,下列說法中錯誤的是(48)
(47)A.函數(shù)定義可以分為兩個部分:函數(shù)說明部分和函數(shù)體
B.主函數(shù)可以調(diào)用任何非主函數(shù)
C.任何非主函數(shù)可以調(diào)用其它任何非主函數(shù)
D.程序可以從任何函數(shù)開始執(zhí)行
參考答案:(48)D。
解析:每個C函數(shù)的定義分兩部分,函數(shù)說明部分和函數(shù)體,所以敘述①是正確的敘述。C語言中,函數(shù)可以遞歸調(diào)用,主函數(shù)可以調(diào)用程序中的任何函數(shù),當(dāng)然可以調(diào)用任何非主教的其它函數(shù),所以敘述②是一個正確的敘述。同樣理由,敘述③也是正確的。C語言規(guī),C程序只有一個主函數(shù),并總是從主函數(shù)開始執(zhí)行,不能從非主函數(shù)開始執(zhí)行。所以,說程可以從任何函數(shù)開始執(zhí)行是錯誤的。所以解答是D。
44.為了直觀地分析系統(tǒng)的動作,從特定的視點出發(fā)描述系統(tǒng)的行為,需要采用動態(tài)分析的方法。其中,(49)適用于描述與分析相互獨立、協(xié)同操作的處理系統(tǒng),也就是并發(fā)執(zhí)行的處理系統(tǒng)。
(49)A.狀態(tài)遷移圖
B.時序圖
C.Petri網(wǎng)
D.HIPO圖
參考答案:(49)C。
解析:為了直觀地分析系統(tǒng)的動作,從特定的視點出發(fā)描述系統(tǒng)的行為,需要采用動態(tài)分析的方法。常用的動態(tài)分析方法有狀態(tài)遷移圖、時序圖和Petri網(wǎng)。
狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何響應(yīng)外部的信號進(jìn)行推移的一種圖形表示。
時序圖用于對比在系統(tǒng)中處理時間的時序與相應(yīng)的處理時間,進(jìn)行系統(tǒng)分析。
Petri網(wǎng)方法本來是表達(dá)異步系統(tǒng)的控制規(guī)則的圖形表示方法,現(xiàn)在已經(jīng)廣泛地應(yīng)用于硬件與軟件系統(tǒng)的開發(fā)中,它適用于描述與分析相互獨立、協(xié)同操作的處理系統(tǒng),也就是并發(fā)執(zhí)行的處理系統(tǒng)。
在結(jié)構(gòu)化設(shè)計中,分層輸入-處理-輸出圖(HIPO圖)既可以描述軟件總的模塊層次結(jié)構(gòu),又可以描述每個模塊的輸入/輸出關(guān)系、處理內(nèi)容、模塊的內(nèi)部數(shù)據(jù)和模塊的調(diào)用關(guān)系。它是系統(tǒng)設(shè)計的重要成果,也是系統(tǒng)實施階段編制程序設(shè)計任務(wù)書和進(jìn)行程序設(shè)計的出發(fā)點和依據(jù)。
46.函數(shù)調(diào)用語句“f((el,e2),(e3,e4,e5));”中參數(shù)的個數(shù)是(51)
(51)A.1
B.2
C.4
D.5
參考答案:(51)B。
解析:上述函數(shù)調(diào)用中,(e1,e2)和(e3,e4,e5)是兩個帶括號的表達(dá)式,所以函數(shù)調(diào)用只提供兩個實參,其中第一個實參先計算el的值,然后計算e2,并以e2的值為實參。第二個實參順序計算e3,e4,e5,并以e5的值為實參。所以解答是B。
47.C語言中,函數(shù)的隱含存儲類型是(52)
(52)A.auto
B.static
C.extern
D.無存儲類別
參考答案:(52)C。
解析:由于C函數(shù)內(nèi)不能再定義函數(shù),C函數(shù)的存儲類型只能是靜態(tài)的或外部的之一。若定義函數(shù)時不指定存儲類型是靜態(tài)的,則它的存儲類型就是外部的(extern),即函數(shù)允許被程序的其它函數(shù)調(diào)用。所以解答是C。
48.測試是保證軟件質(zhì)量的重要手段。根據(jù)國家標(biāo)準(zhǔn)GB 8566-88《計算機(jī)軟件開發(fā)規(guī)范》的規(guī)定,應(yīng)該在(53)階段制定系統(tǒng)測試計劃。
(53)A.需求分析
B.概要設(shè)計
C.詳細(xì)設(shè)計
D.系統(tǒng)測試
參考答案:(53)A 49.以下對C語言函數(shù)的有關(guān)描述中,正確的是(54)
(54)A.在C語言中,調(diào)用函數(shù)時,只能把實參的值傳遞給形參,形參的值不能傳遞給實參
B.C函數(shù)既可以嵌套定義,又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能定義成函數(shù)
D.C程序中,有調(diào)用關(guān)系的所有函數(shù)必須放在同一個源程序文件中
參考答案:(54)A。
解析:C語言規(guī)定,調(diào)用函數(shù)時,只能把實參的值傳遞給函數(shù)的形參。函數(shù)調(diào)用時,形參從實參表達(dá)式得到初值,報參也是函數(shù)的一種局部變量,其值可以改變,但形參的值不能傳回給對應(yīng)的實參。當(dāng)函數(shù)設(shè)置非指針類型的形參時,實參可以是同類型的一般表達(dá)式;當(dāng)函數(shù)設(shè)置指針類型的形參時,對應(yīng)的實參也必須是同類型的指針表達(dá)式。所以敘述A是正確的。C語言雖可以遞歸調(diào)用,但同時規(guī)定,在函數(shù)內(nèi)不能再定義函數(shù),所以敘述B是錯誤的。通常C函數(shù)會有返回值,但也可以沒有返回值。有許多情況,函數(shù)的執(zhí)行是完成某種預(yù)定的工作,并沒有返回值,所以敘述C是不正確的。在C程序中,如函數(shù)未指定是靜態(tài)的,則就是外部的,能讓別的文件中的函數(shù)調(diào)用。但函數(shù)要調(diào)用別的文件中的函數(shù),在調(diào)用代碼之前,需對它作說明,所以敘述D也是不正確的。正確的解答只有A。
50.某軟件產(chǎn)品在應(yīng)用初期運行在Windows 2000環(huán)境中。現(xiàn)因某種原因,該軟件需要在Linux環(huán)境中運行,而且必須完成相同的功能。為適應(yīng)該需求,軟件本身需要進(jìn)行修改,而所需修改的工作量取決于該軟件的(55)。
(55)A.可復(fù)用性
B.可維護(hù)性
C.可移植性
D.可擴(kuò)充性
參考答案:(55)C。
解析:軟件的可復(fù)用性指軟件或軟件的部件能被再次用于其他應(yīng)用中的程度。軟件復(fù)用性取決于其模塊獨立性、通用性和數(shù)據(jù)共享性等。
軟件的可維護(hù)性是指一個軟件模塊是否容易修改、更新和擴(kuò)展,即在不影響系統(tǒng)其他部分的情況下修改現(xiàn)有系統(tǒng)功能中問題或缺陷的能力。
軟件的可移植性指將軟件系統(tǒng)從一個計算機(jī)系統(tǒng)或操作系統(tǒng)移植到另一種計算機(jī)系統(tǒng)或操作系統(tǒng)中運行時所需工作量的大小。可移植性取決于系統(tǒng)中硬件設(shè)備的特征、軟件系統(tǒng)的特點和開發(fā)環(huán)境,以及系統(tǒng)分析與設(shè)計中關(guān)于通用性、軟件獨立性和可擴(kuò)充性等方面的考慮。
軟件的可擴(kuò)充性指軟件的體系結(jié)構(gòu)、數(shù)據(jù)設(shè)計和過程設(shè)計的可擴(kuò)充程度。可擴(kuò)充性影響著軟件的靈活性和可移植性。
由以上分析可知,該軟件產(chǎn)品從Windows 2000環(huán)境中遷移到Linux環(huán)境中運行,為完成相同的功能,軟件本身需要進(jìn)行修改,而所需修改的工作量取決于該軟件產(chǎn)品的可移植性。
51.進(jìn)程的五態(tài)模型包括運行狀態(tài)、活躍就緒狀態(tài)、靜止就緒狀態(tài)、活躍阻塞狀態(tài)和靜止阻塞狀態(tài)。針對圖5的進(jìn)程五態(tài)模型,為了確保進(jìn)程調(diào)度的正常工作,(a)、(b)和(c)的狀態(tài)分別為(56)。
軟件設(shè)計師練習(xí)試題及答案解析
圖6 進(jìn)程的五態(tài)模型圖
(56)A.靜止就緒、靜止阻塞和活躍阻塞
B.靜止就緒、活躍阻塞和靜止阻塞
C.活躍阻塞、靜止就緒和靜止阻塞
D.活躍阻塞、靜止阻塞和靜止就緒
參考答案:(56)D。
解析:在多道程序系統(tǒng)中,進(jìn)程在處理器上交替運行,在運行、就緒和阻塞3種基本狀態(tài)之間不斷地發(fā)生變化。由于進(jìn)程的不斷創(chuàng)建,系統(tǒng)資源(特別是主存資源)已不能滿足進(jìn)程運行的要求。此時就必須將某些進(jìn)程掛起,對換到磁盤鏡像區(qū),暫時不參與進(jìn)程調(diào)度,以平衡系統(tǒng)負(fù)載的目的。如果系統(tǒng)出現(xiàn)故障,或者是用戶調(diào)試程序,也可能需要將進(jìn)程掛起檢查問題。
在圖6具有掛起狀態(tài)的進(jìn)程狀態(tài)及其轉(zhuǎn)換圖中,活躍就緒是指進(jìn)程在主存并且可被調(diào)度的狀態(tài)。(1)空缺處各選項中,靜止就緒是指進(jìn)程被對換到輔存時的就緒狀態(tài),是不能被直接調(diào)度的狀態(tài),只有當(dāng)主存中沒有活躍就緒態(tài)進(jìn)程,或者是掛起態(tài)進(jìn)程具有更高的優(yōu)先級,系統(tǒng)將把掛起就緒態(tài)進(jìn)程調(diào)回主存并轉(zhuǎn)換為活躍就緒。因此,圖6的(c)空缺處應(yīng)填入“靜止就緒”這一狀態(tài)。
活躍阻塞是指進(jìn)程在主存中。一旦等待的事件產(chǎn)生,便進(jìn)入活躍就緒狀態(tài)。因此,圖6的(a)空缺處應(yīng)填入“活躍阻塞”。
靜止阻塞是指進(jìn)程對換到輔存時的阻塞狀態(tài)。一旦等待的事件產(chǎn)生,便進(jìn)入靜止就緒狀態(tài)。故圖6的(b)空缺處應(yīng)填入“靜止阻塞”。
由以上分析可知,(56)空缺處的正確答案是選項D。
另外,對于一張完整的進(jìn)程五態(tài)模型圖,則需在圖3-4模型圖中增加一條從“運行”態(tài)到“活躍阻塞”態(tài)的邊,其狀態(tài)轉(zhuǎn)換原因是“等待”事件(如I/O請求)發(fā)生,以及增加一條從“運行”態(tài)到“靜止就緒”態(tài)的邊,其狀態(tài)轉(zhuǎn)換原因是“掛起”。
52.基于構(gòu)件的開發(fā)(CBD)模型,融合了(57)模型的許多特征。該模型本質(zhì)是演化的,采用迭代方法開發(fā)軟件。
(57)A.瀑布
B.螺旋
C.噴泉
D.快速應(yīng)用開發(fā)(RAD)
參考答案:(57)B。
解析:螺旋模型是演化軟件過程模型的一種,最早由Boehm提出,它將原型實現(xiàn)的迭代特征與線性順序模型中控制的和系統(tǒng)化的方面結(jié)合起來,使軟件增量版本的快速開發(fā)成為可能。在螺旋模型中,軟件開發(fā)是一系列的增量發(fā)布。
面向?qū)ο蠹夹g(shù)為軟件工程的基于構(gòu)件的過程模型提供了技術(shù)框架。基于構(gòu)件的開發(fā)模型融合了螺旋模型的許多特征。它本質(zhì)上是演化型的,要求軟件創(chuàng)建迭代方法。
基于構(gòu)件的開發(fā)模型是利用預(yù)先包裝好的軟件構(gòu)件來構(gòu)造應(yīng)用的。統(tǒng)一軟件開發(fā)(RUP)過程是在產(chǎn)業(yè)界提出的一系列基于構(gòu)件的開發(fā)模型的代表。
53.設(shè)有定義“inta=3,b,*p=&a;”,則下列語句中使b不為3的語句是(58)
(58)A.b=*&a;
B.b=*p;
C.b=a;
D.b=*a;
參考答案:(58)D。
解析:定義有inta=3,b,*p=&a;對b賦值的表達(dá)式有*&a、*p、a、*a。引用變量。的值有兩種方法,一是直接引用a,二是通過a的指針間接引用a。對于后者,又有多種表達(dá)方法,通過指向a的指針p,間接引用a的內(nèi)容,如*p。或通過求地址運算符由變量a得到其指針&a,再由這指針表達(dá)式間接引用a的內(nèi)容,如*&a。所以表達(dá)式*&a、*p和a都能引用變量a的值,而使b的值為3。而表達(dá)式。a是錯誤的,因為a不是指針變量,不能對它施行取內(nèi)容運算符。所以解答是D。
54.設(shè)指針x指向的整型變量值為萬,則“printf(”%d “,++*x);”的輸出是(59)
(59)A.23
B.24
C.25
D.26
參考答案:(59)D。
解析:若指針變量x指向某個變量,例如指向變量v,并且變量v的值是25,則表達(dá)式++*x的值是26。這是因為表達(dá)式的計算順序可加圓括號表達(dá)成(++(*x)),首先是*x,是對X所指變量V的引用,所以++*X就是++V。++V是先讓變量V增1,并以增至后的V的值為表達(dá)式++V的結(jié)果,所以其值是26。所以解答是D。
55.若有說明:“inti,j=7,*p=&i;”,則與“i=j;”等價的語句是(60)
(59)A.i=*p;
B.*P=*&j;
C.i==&j;
D.i=**p;
參考答案:(60)B。
解析:指針變量p指向變量i時,表達(dá)式i=*p等價于i=i;表達(dá)式*p=*&j等價于i=j;而表達(dá)式i=&j企圖將整型變量的指針賦給整型變量,這是錯誤的;表達(dá)式i=**p也是一種錯誤的表達(dá)式。p是指針,*p是p所指變量j,**p是企圖將整型變量j當(dāng)作指針,并想通過j間接引用某個變量。所以解答是B。
56.以下關(guān)于軟件質(zhì)量度量指標(biāo)的敘述中,說法正確的是(61)。
(32)A.正確性就是用每千行代碼的故障(fault)數(shù)來度量
B.軟件完整性是指軟件功能與需求符合的程度
C.軟件維護(hù)的工作量比開發(fā)階段的工作量小
D.可用性與用戶的操作效率和主觀評價有關(guān)
參考答案:(61)D。
解析:最主要的軟件質(zhì)量度量指標(biāo)有正確性、可維護(hù)性、完整性和可用性。軟件的正確性是指軟件完成所需功能的程度,盡管這種程度與每千行代碼的故障數(shù)有關(guān),但不完全等同。
軟件完整性是指軟件在安全方面抗攻擊的能力。
軟件維護(hù)的工作量比開發(fā)階段的工作量大,通常的估計是,開發(fā)階段的工作量占軟件生命期整個工作量的40%,而維護(hù)階段的工作量則占60%,甚至更多。
軟件可用性用來度量軟件的“用戶友好性”,可以從①學(xué)會操作軟件所需的體力和智力、②對系統(tǒng)的使用達(dá)到中等效率所需的時間、③當(dāng)系統(tǒng)由一個中等效率的人使用時測量到的生產(chǎn)率增長值和④用戶對系統(tǒng)的主觀評價等4個方面來度量可用性。
第四篇:軟裝設(shè)計師培訓(xùn)教程
成都裝修cd.oceano.com.cn 軟裝設(shè)計師培訓(xùn)教程
現(xiàn)在無論是在網(wǎng)上還是在我們身邊,軟裝設(shè)計師培訓(xùn)教程都十分普遍,對于到處的軟裝設(shè)計師培訓(xùn)教程我們很容易會受到其中的誤導(dǎo)。那么那些比較正規(guī)的軟裝設(shè)計師培訓(xùn)教程是怎樣的呢?下面就讓小編給大家說說其中的一些內(nèi)容。
1、什么是軟裝
所謂的軟裝,指的是家居中可以移動、更換的飾品,如窗簾、靠墊、地毯、裝飾畫、燈具、工藝品以及綠植等。裝修完畢后,我們可以利用這些可移動的飾品對家居進(jìn)行進(jìn)一步的裝飾,又稱為居室的二度陳列。
2、什么是硬裝
成都裝修cd.oceano.com.cn
硬裝指的是對整個建筑結(jié)構(gòu)的確定以及從設(shè)計上考慮的進(jìn)一步的處理,也就是我們常見的對墻體、地面、天花等的裝飾處理。硬裝通常包括吊頂、地板、墻面乳膠漆、電線、水管、門窗、潔具、櫥柜等不可隨意移動的物體。
此外,家居空間格局的設(shè)計也屬于硬裝的一部分,也就是進(jìn)行空間劃分的隔墻等。
3、軟裝與硬裝的區(qū)別
以前的家居裝修中,人們很少注意到軟裝的這一方面,只要屋子里的硬裝部分做好了,整個裝修也就完工了。而現(xiàn)代的家居裝修中,都在強(qiáng)調(diào)“重裝飾,輕裝修”這一說法,這也就體現(xiàn)了人們開始越來越重視家居的軟裝搭配。軟裝與硬裝的區(qū)別,很大程度上是人們根據(jù)裝修的順序來分的,軟裝都是在硬裝結(jié)束后才開始進(jìn)行。但事實上,現(xiàn)在想要完全地區(qū)分開軟裝與硬裝是不現(xiàn)實的一件事情,隨著各類科技的發(fā)展,裝修建材上也出現(xiàn)了越來越多“硬”材料與“軟”材料相結(jié)合的新產(chǎn)品,在進(jìn)行家居設(shè)計時,甚至?xí)⒂惭b飾材料與軟裝飾材料相互交換使用,也常常會出現(xiàn)另一種的裝飾效
成都裝修cd.oceano.com.cn 果,讓家居充滿亮點。
4、軟裝與硬裝的聯(lián)系
軟裝與硬裝都有著自身的優(yōu)點,硬裝能夠使整體結(jié)構(gòu)更加明確,軟裝能夠幫助改變居室風(fēng)格,硬裝是軟裝的基礎(chǔ),軟裝是硬裝的升華。
在現(xiàn)代家居裝修中,人們漸漸地降低了硬裝的地位,越來越重視起了家居的軟裝搭配,是因為軟裝容易更換,人們可以通過軟裝配飾來改變家居風(fēng)格,各種軟裝飾品的使用,也能夠讓整個家居顯得更加溫馨,此外,裝修預(yù)算上面,硬裝的花費也常常高于軟裝的花費。
第五篇:軟考軟件設(shè)計師必做練習(xí)題及答案
軟考軟件設(shè)計師必做練習(xí)題及答案
軟件設(shè)計師考試屬于全國計算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格考試(簡稱計算機(jī)軟件資格考試)中的一個中級考試。考試不設(shè)學(xué)歷與資歷條件,也不論年齡和專業(yè),考生可根據(jù)自己的技術(shù)水平選擇合適的級別合適的資格,但一次考試只能報考一種資格。考試采用筆試形式,考試實行全國統(tǒng)一大綱、統(tǒng)一試題、統(tǒng)一時間、統(tǒng)一標(biāo)準(zhǔn)、統(tǒng)一證書的考試辦法。下面是希賽小編整理的軟考軟件設(shè)計師考前必做的練習(xí)題。試題一分析
本題主要考查類圖和順序圖。【問題1】
需要分析此門禁系統(tǒng)的體系結(jié)構(gòu),根據(jù)體系結(jié)構(gòu)的描述來看什么數(shù)據(jù)放在什么類中最為合適。題目中提到:系統(tǒng)中的每個電控鎖都有一個唯一的編號。鎖的狀態(tài)有兩種:“已鎖住”和“未鎖住”。所以Lock中含有鎖編號和鎖狀態(tài)這兩個屬性。又因為題中有:在主機(jī)上可以設(shè)置每把鎖的安全級別以及用戶的開鎖權(quán)限。只有當(dāng)用戶的開鎖權(quán)限大于或等于鎖的安全級并且鎖處于“已鎖住”狀態(tài)時,才能將鎖打開。因此,Lock中還有鎖的安全級別。
【問題2】
首先,(1)、(2)是FingerReader和LockController之間的交互。所以我們看題目中是如何描述他們的交互的。題目中有“指紋采集器將發(fā)送一個中斷事件給鎖控器,鎖控器從指紋采集器讀取用戶的指紋”,所以(1)應(yīng)填“中斷事件”,(2)應(yīng)填“讀取指紋”。(3)是主機(jī)與UserInfo的交互,從圖2-35中可以看出,UserInfo中存儲了用戶的指紋信息和開鎖權(quán)限,所以(3)應(yīng)是從UserInfo讀取用戶的指紋信息和開鎖權(quán)限。(4)空應(yīng)填“讀取鎖的安全級別”。(5)是MainFrame向自己發(fā)送的一條消息,從題目中的“主機(jī)根據(jù)數(shù)據(jù)庫中存儲的信息來判斷用戶是否具有開鎖權(quán)限,若有且鎖當(dāng)前處于已鎖住狀態(tài),則將鎖打開;否則系統(tǒng)報警”可以看出,主機(jī)在得到所有信息后要判斷用戶是否能開鎖,所以(5)應(yīng)填“判斷用戶是否能開鎖”。
【問題3】
這是純理論題,請直接閱讀參考答案。
試題一參考答案
【問題1】
鎖的編號、安全級別、鎖的當(dāng)前狀態(tài)。
【問題2】
(1)中斷事件(2)讀取用戶指紋
(3)讀取用戶開鎖權(quán)限(4)讀取鎖的安全級別
(5)判斷用戶是否有權(quán)限開鎖,或用戶是否可以開鎖
【問題3】
組裝和聚集都表示實例之間的整體/部分關(guān)系。組裝是聚集的一種形式。
聚集是概念性的,只是區(qū)分整體與部分。
組裝具有很強(qiáng)的歸屬關(guān)系,而且整體與部分的對象生存周期是一致的。
試題二分析
本題考查的是UML類圖和順序圖的基本知識。
【問題1】
由于一個商品分類中可以有多個商品,而一個商品僅僅對應(yīng)一個商品分類,所以商品分類與商品之間的關(guān)系是1:0..*,即第(1)空填“0..*”,第(2)空填“1”。
促銷活動與商品之間的關(guān)系是這樣的:一個促銷活動至少得有一種促銷商品,否則就無法成為促銷活動;而一種商品可以參與多個促銷活動,所以促銷活動與商品之間的關(guān)系有些特別,應(yīng)是0..*:1..*,故第(3)空填“0..*”,第(4)空填“1..*”。
再看訂單與促銷活動之間的關(guān)系:由于題目中說明“用戶可選擇參與某一個促銷(Promotion)活動”,同時對于一個促銷活動可以有多個客戶下訂單,所以它們之間的關(guān)系為1:0..*,所以第(5)空填“1”,第(6)空填“0..*”。
【問題2】
在順序圖中,消息的執(zhí)行順序為:在垂直方向自上至下地執(zhí)行,其中的虛線表示消息結(jié)果的返回。在圖2-38中,包含著兩個操作,第一個操作是得到某個商品的信息,其流程是:先在商品分類列表中找到相應(yīng)的分類,再從分類中找到具體的商品,從此商品對應(yīng)的類中得到相應(yīng)信息。所以第(7)空應(yīng)填“getCategories”,第(8)空應(yīng)填“getCommodities”。第二個操作是創(chuàng)建一次促銷活動,并為其指定促銷品,所以第(9)空應(yīng)填“createPromotion”,第(10)空應(yīng)填“addCommodities”。
【問題3】
這是一個純理論問題,請直接閱讀參考答案。
試題二參考答案
【問題1】
(1)0..n或1..n(2)1(3)0..n
(4)1..n(5)1(6)0..n
【問題2】
(7)getCategories(8)getCommodities
(9)createPromotion(10)addCommodities
【問題3】
關(guān)系:聚集(聚合)是關(guān)聯(lián)的特例。(聚集是關(guān)聯(lián)的一種)
不同點:聚集表示部分與整體關(guān)系的關(guān)聯(lián)。
試題三分析
本題考查類圖和狀態(tài)圖。
【問題1】
根據(jù)“每首歌曲的描述信息包括:歌曲的名字、譜寫這首歌曲的藝術(shù)家及演奏這首歌曲的藝術(shù)家”和圖2-39中類A與類B之間約束為“編寫”、“演奏”,所以類A與類B只能是藝術(shù)家和歌曲,又根據(jù)圖上標(biāo)示的關(guān)聯(lián)關(guān)系(1,0..*),可以確定類A為藝術(shù)家(Artist);類B為歌曲(Song)。類B與類E之間是聚集關(guān)系,根據(jù)題中“一條音軌中只包含一首歌曲或為空,一首歌曲可分布在多條音軌上”,可以得到類E為音軌(Track)。
接下來看類E與類F之間存在組成的關(guān)系,根據(jù)“每張唱片由多條音軌構(gòu)成”得到,類F為唱片(Album)。再來看類C和類D,它們與類A存在泛化關(guān)系,根據(jù)“藝術(shù)家可能是一名歌手或一支由2名或2名以上的歌手所組成的樂隊”可知,類C與類D為歌手和樂隊,又因為類C與類D存在聚集關(guān)系,根據(jù)題中“一名歌手可以不屬于任何樂隊,也可以屬于一個或多個樂隊”可知,類C為樂隊(Band),類D為歌手(Musician)。
【問題2】
類C為樂隊,類D為歌手,題中“一支由2名或2名以上的歌手所組成的樂隊。一名歌手可以不屬于任何樂隊,也可以屬于一個或多個樂隊”,則第(1)空應(yīng)填“0..*”,第(2)空應(yīng)填“2..*”。類B與類E存在聚集關(guān)系,題中“一條音軌中只包含一首歌曲或為空,一首歌曲可分布在多條音軌上”,所以第(3)空應(yīng)填“0..1”,第(4)空應(yīng)填“1..*”。
類E與類F存在泛化關(guān)系,題中“每張唱片由多條音軌構(gòu)成”,所以第(5)空應(yīng)填“1..*”,第(6)空應(yīng)填“1”。
特別要說明一下,是“0..*”還是“1..*”,要看表述和實際情況,比如第(5)空,一張唱片至少有幾條音軌,當(dāng)然至少有一條,否則就不是唱片了,故是從1開始的。
【問題3】
本問題考查的是類/對象關(guān)聯(lián)中的一種特殊關(guān)聯(lián):遞歸關(guān)聯(lián),它描述的是同一個類的不同實例之間的關(guān)系。而類Track的不同實例之間恰好具有這種關(guān)系(因此對于任意一條音軌,播放器需要準(zhǔn)確地知道,它的下一條音軌和上一條音軌是什么)。所以缺少的那條聯(lián)系的兩端都是類Track,其多重度都為0..1。下限為0,是對應(yīng)不存在上一條或下一條音軌的情況。
【問題4】
問題4給定了兩個狀態(tài)“關(guān)閉”和“播放”,要求找出從“關(guān)閉”到“播放”的最短事件序列。這就要求我們能夠在狀態(tài)圖上找到連接這兩個狀態(tài)的最短遷移,然后將遷移上的事件記錄下來就可以了。
從“關(guān)閉”狀態(tài)到“播放”狀態(tài)可以選擇經(jīng)過遷移“連接電腦”到達(dá)“聯(lián)機(jī)”狀態(tài),再經(jīng)過遷移“斷開連接”到達(dá)狀態(tài)“打開”,再從“打開”狀態(tài)的初始狀態(tài)“歌曲待選”,經(jīng)過遷移“選擇歌曲”到達(dá)“播放狀態(tài)”。這樣經(jīng)過的事件序列為:連接電腦電量飽和/完成復(fù)制斷開連接選擇歌曲。顯然這樣的事件序列遠(yuǎn)比“關(guān)閉”經(jīng)過“按任意鍵”直接到達(dá)“打開”狀態(tài)要長得多。所以從“關(guān)閉”到“播放”的最短事件序列是:按任意鍵,選擇歌曲。
試題三參考答案
【問題1】
A:ArtistB:SongC:Band
D:MusicianE:TrackF:Album
【問題2】
(1)0..*(2)2..*(3)0..1
(4)1..*(5)1..*(6)1
【問題3】
【問題4】
按任意鍵,選擇歌曲。
試題四分析
題目以希賽公司在線會議審稿系統(tǒng)為例,考查考生對UML用例圖與活動圖的掌握情況。
【問題1】
題目已經(jīng)給出了4類參與者:用戶、作者、審稿人、委員會主席,關(guān)鍵在于弄清楚各個參與者之間的關(guān)系,這些關(guān)系是通過題目中的系統(tǒng)功能描述來獲得的。
(1)“用戶在初始使用系統(tǒng)時,必須在系統(tǒng)中注冊(register)成為作者或?qū)徃迦恕保瑥拇颂幙梢缘弥到y(tǒng)中的用戶分成了兩類:作者和審稿人。
(2)“會議委員會主席是一個特殊審稿人”。
從上面兩個條件得知:A1對應(yīng)用戶,A2對應(yīng)作者,A3對應(yīng)審稿人,A4對應(yīng)會議委員會主席。同時由于UML圖中不允許出現(xiàn)中文,且題目明確要求用英文名稱給出A1~A4所對應(yīng)的參與者,所以A1~A4處應(yīng)分別填寫User、Author、Reviewer和PCChair。
【問題2】
由“會議委員會主席是一個特殊審稿人,可以瀏覽提交的稿件,給審稿人分配稿件,羅列錄用和(或)拒絕的稿件,以及關(guān)閉審稿過程”結(jié)合“用例名稱列表”可以得知:會議委員會主席能操作的功能有瀏覽提交的稿件、分配稿件給審稿人、羅列錄用或/和拒絕的稿件、關(guān)閉審稿過程。而從“其中關(guān)閉審稿過程須包括羅列錄用和(或)拒絕的稿件”可以看出,用例“關(guān)閉審稿過程”與“羅列錄用或/和拒絕的稿件”之間有包含關(guān)系。從這個關(guān)系可以得知,U1對應(yīng)的用例為:羅列錄用或/和拒絕的稿件。同時(2)對應(yīng)的關(guān)系為包含關(guān)系,即U1應(yīng)填“l(fā)istaccepted/rejectedpapers”,(2)應(yīng)填“>”。這樣,剩余的兩項功能“瀏覽提交的稿件”和“分配稿件給審稿人”對應(yīng)的為U2與U3,所以U2和U3分別應(yīng)填“browsesubmittedpapers”和“assignpapertoreviewer”。
【問題3】
該小題考查考生對包含與擴(kuò)展關(guān)系的理解。在對問題2的分析中,已經(jīng)得出(2)填“>”。現(xiàn)在來看(1),該空是填“登錄”與“提交稿件”之間的關(guān)系,在提交稿件時,若用戶已經(jīng)登錄,則可直接提交;但如果用戶沒有登錄,則需要先登錄再提交,所以它們之間的關(guān)系應(yīng)是擴(kuò)展關(guān)系,即(1)應(yīng)填“>”。
【問題4】
該活動圖所描述的是作者提交稿件的過程,對此過程題目有詳細(xì)的描
述:“作者登錄(login)后提交稿件和瀏覽稿件審閱結(jié)果。提交稿件必須在規(guī)定提交時間范圍內(nèi),其過程為先輸入標(biāo)題和摘要、選擇稿件所屬主題類型、選擇稿件所在位置(存儲位置)。上述幾步若未完成,則重復(fù);若完成,則上傳稿件至數(shù)據(jù)庫中,系統(tǒng)發(fā)送通知。”,所以Action1~Action4分別對應(yīng):輸入標(biāo)題和摘要、選擇稿件所屬主題類型、選擇稿件所在位置、上傳稿件。所以Action1~Action4分別填:entertitleandabstract、selectsubjectgroup、selectpaperlocation和uploadpaper。
試題四參考答案
【問題1】
A1:UserA2:AuthorA3:ReviewerA4:PCChair
【問題2】
U1:listaccepted/rejectedpapersU2:browsesubmittedpapers U3:assignpapertoreviewer
注:U2和U3的答案可互換
【問題3】
(1)>(2)>
【問題4】
Action1:entertitleandabstract Action2:selectsubjectgroup Action3:selectpaperlocation Action4:uploadpaper
試題五分析
本題考查面向?qū)ο笙到y(tǒng)開發(fā)時,采用UML模型進(jìn)行建模的方法。
【問題1】
識別參與者時,考查和系統(tǒng)交互的人員和外部系統(tǒng)。在本題中,與系統(tǒng)交互的人員包括員工、注冊到系統(tǒng)的員工(顧客)、餐廳員工、菜單管理員、送餐員以及工資系統(tǒng)。
由“菜單管理員是餐廳特定員工”以及圖2-43中A2和圖中餐廳員工之間的“是一種”關(guān)系可知,A2為菜單管理員;圖2-43中還缺少描述中與工資系統(tǒng)的交互,由“……并發(fā)送給工資系統(tǒng)”可知,A1為工資系統(tǒng)。
【問題2】
在本題中,由“任何員工都可以查看菜單和今日特價”可知,圖2-43中缺少用例查看今日特價,對應(yīng)參與者是員工;由“系統(tǒng)的顧客是……,注冊工資支付、……”可知,圖中缺少用例注冊工資支付,對應(yīng)參與者是顧客和工資系統(tǒng);由“餐廳員工是……,可以進(jìn)行備餐、生成付費請求……發(fā)送給工資系統(tǒng)”可知,圖2-43中缺少用例“生成付費請求”,對應(yīng)的參與者是餐廳員工和工資系統(tǒng);由“菜單管理員是餐廳特定員工,可以管理菜單”可知,圖2-43中缺少用例管理菜單,對應(yīng)的參與者是菜單管理員。
需要注意的是,在注冊工資支付所對應(yīng)的參與者中,雖然沒有明確說明要和工資系統(tǒng)交互,但是由“對于注冊工資支付的顧客生成付費請求并發(fā)送給工資系統(tǒng)”可知,工資支付是由工資系統(tǒng)控制,所以注冊也需要和工資系統(tǒng)交互。
【問題3】
在顧客訂餐過程的描述中,在“顧客選菜”之前,圖中缺少符號和活動。由說明中顧客“可以訂餐(如果未登錄,需先登錄)”可以判斷,在系統(tǒng)“顯示菜單和今日特價”之后“顧客選菜”之前,需要判斷(判定符號)當(dāng)前用戶身份是否為顧客,如果不是,需先登錄;由“……發(fā)送E-mail給顧客以確認(rèn)訂餐,同時發(fā)送相關(guān)訂餐信息通知給餐于員工”可知,發(fā)送E-mail和通知餐廳員工為并行活動,需要在前后有同步條(或縱向
【問題4】
參與者之間的關(guān)系表示子類型“是一種”父類型,即泛化關(guān)系。其中父類型通常是一個抽象泛化的參與者,可以完成子類型可完成的共同行為,每個具體的子類型繼承它,可以完成父類型參與者同樣的任務(wù),并可以補(bǔ)充額外的角色功能。
試題五參考答案
【問題1】)。
A1:工資系統(tǒng)A2:菜單管理員
【問題2】
【問題3】
【問題4】
泛化關(guān)系(一般/特殊關(guān)系、繼承關(guān)系)。泛化關(guān)系描述了一個參與者可以完成另一個參與者同樣的任務(wù),并可補(bǔ)充額外的角色功能。