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