軟件工程復(fù)習(xí)及答案分析_第1頁
軟件工程復(fù)習(xí)及答案分析_第2頁
軟件工程復(fù)習(xí)及答案分析_第3頁
軟件工程復(fù)習(xí)及答案分析_第4頁
軟件工程復(fù)習(xí)及答案分析_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

精選優(yōu)質(zhì)文檔-----傾情為你奉上精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)專心---專注---專業(yè)精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)復(fù)習(xí)思考題軟件工程概論試說明“軟件生命周期”的概念。同任何事物一樣,一個軟件產(chǎn)品或軟件系統(tǒng)也要經(jīng)歷孕育、誕生、成長、成熟、衰亡等階段,一般稱為軟件生存周期(軟件生命周期)。論述瀑布模型軟件開發(fā)方法的基本過程。瀑布模型規(guī)定了各項軟件工程活動,包括:制定軟件項目計劃,進行需求分析和定義,軟件設(shè)計,程序編碼,測試及運行維護。并且規(guī)定了它們自上而下,相互銜接的固定次序,如同瀑布流水,逐級下落。軟件工程的基本原理有哪些?1.用分階段的生命周期計劃嚴(yán)格管理2.堅持進行階段評審3.實行嚴(yán)格的產(chǎn)品控制4.采用現(xiàn)代程序設(shè)計技術(shù)5.結(jié)果應(yīng)能清楚地審查6.開發(fā)小組的人員應(yīng)該少而精7.承認(rèn)不斷改進軟件工程實踐的必要性從供選擇的答案中選出正確答案填入下列敘述中的()內(nèi)。(1)軟件開發(fā)時,一個錯誤發(fā)現(xiàn)得越晚,為改正它所付出的代價就()。越大B)越小C)越不可捉摸D)越接近平均水平(2)功能模型中描述處理流程的最基本成分為()。A)數(shù)據(jù)流圖和數(shù)據(jù)結(jié)構(gòu)圖B)數(shù)據(jù)流圖和程序流程圖C)程序流程圖和數(shù)據(jù)結(jié)構(gòu)圖D)數(shù)據(jù)流圖和數(shù)據(jù)詞典(3)模塊內(nèi)聚用于衡量模塊內(nèi)部各成分之間彼此結(jié)合的緊密程度。若一組語句在程序的多處出現(xiàn),為了節(jié)省空間把這些語句放在一個模塊中,則該模塊的內(nèi)聚類型是()。A)功能內(nèi)聚B)通信內(nèi)聚C)偶然內(nèi)聚D)邏輯內(nèi)聚(5)結(jié)構(gòu)化分析方法(SA)是在軟件開發(fā)過程中常用的方法,這個方法采用的基本手段是()。A)分解與抽象B)分解與綜合C)歸納與推導(dǎo)D)試探與回溯(6)原型化方法是用戶和設(shè)計者之間執(zhí)行的一種交互過程,適用于()系統(tǒng)。A)需求不確定性高的B)需求確定的C)管理信息D)決策支持(7)軟件測試的目的是()。A)評價軟件的質(zhì)量B)發(fā)現(xiàn)軟件的錯誤C)找出軟件中的所有錯誤D)證明軟件是正確的(8)在軟件生存周期中,()階段所占的工作量最大,約70%。A)分析B)設(shè)計C)編碼D)測試E)維護(二)軟件需求分析軟件需求分析是軟件過程中交換意見最頻繁的步驟。為什么交換意見的途徑會經(jīng)常阻塞?軟件需求分析過程中,由于最初分析員對要解決的問題了解很少,用戶對問題的描述、對目標(biāo)軟件的要求也很凌亂、模糊,再加上分析員和用戶共同的知識領(lǐng)域不多,導(dǎo)致相互間通信的需求。首先,由于分析員和用戶之間需要通信的內(nèi)容相當(dāng)多,業(yè)務(wù)知識上的不足,表達(dá)方式的不足,可能對某些需求存在錯誤解釋或誤解的可能性,造成需求的模糊性。其次,用戶和分析員之間經(jīng)常存在無意識的“我們和他們”的界限,不是按工作需要組成統(tǒng)一的精干的隊伍,而是各自定義自己的“版圖”,并通過一系列備忘錄、正式的意見書、文檔,以及提問和回答來相互通信。歷史已經(jīng)證明,這樣會產(chǎn)生大量誤解。忽略重要信息,無法建立成功的工作關(guān)系。數(shù)據(jù)流圖的作用是什么?它有哪些基本成分?數(shù)據(jù)流圖可以用來抽象地表示系統(tǒng)或軟件。它從信息傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程,同時可以按自頂向下、逐步分解的方法表示內(nèi)容不斷增加的數(shù)據(jù)流和功能細(xì)節(jié)。因此,數(shù)據(jù)流圖既提供了功能建模的機制,也提供了信息流建模的機制,從而可以建立起系統(tǒng)或軟件的功能模型。數(shù)據(jù)字典的作用是什么?它有哪些基本條目?數(shù)據(jù)字典(簡稱DD)是用來定義數(shù)據(jù)流圖中的各個成分的具體含義的,它以一種準(zhǔn)確的、無二義性的說明方式為系統(tǒng)的分析、設(shè)計及維護提供了有關(guān)元素的一致的定義和詳細(xì)的描述。他和數(shù)據(jù)流圖共同構(gòu)成了系統(tǒng)的邏輯模型,是需求規(guī)格說明書的主要組成部分。數(shù)據(jù)字典是為分析人員查找數(shù)據(jù)流圖中有關(guān)名字的詳細(xì)定義而服務(wù)的,因此也像普通字典一樣,要把所有條目按一定的次序排列起來,以便查閱。數(shù)據(jù)字典有以下四類條目:數(shù)據(jù)流、數(shù)據(jù)項、數(shù)據(jù)存儲、基本加工。數(shù)據(jù)項是組成數(shù)據(jù)流和數(shù)據(jù)存儲的最小元素。源點、終點不在系統(tǒng)之內(nèi),故一般不在字典中說明。從供選擇的答案中選出正確答案填入下列敘述中的()內(nèi)。原型化方法是用戶和設(shè)計者之間執(zhí)行的一種交互過程,適用于(A)系統(tǒng)。它從用戶界面設(shè)計開始,首先形成(B),用戶(C)并就(D)提出意見。它是一種(E)型的設(shè)計過程。A:①需求不確定性高的②需求確定的③管理信息④決策支持B:①用戶界面使用手冊②界面需求分析說明書③系統(tǒng)界面原型④完善的用戶界面C:①改進界面的設(shè)計②使用和不使用哪種編程語言③程序的結(jié)構(gòu)④運行界面原型D:①同意什么和不同意什么②使用和不使用哪種編程語言③程序的結(jié)構(gòu)④執(zhí)行速度是否滿足要求E:①自外向內(nèi)②自頂向下③自內(nèi)向外④自底向上(三)軟件設(shè)計模塊獨立性與信息隱蔽有何關(guān)系?模塊的內(nèi)聚程度與模塊在分層結(jié)構(gòu)中的位置有關(guān)系嗎?說明你的論據(jù)。答案:模塊的內(nèi)聚性與該模塊在分層模塊結(jié)構(gòu)中的位置無關(guān)。事實上,一個好的模塊化的程序系統(tǒng),它所有的模塊可以都是功能內(nèi)聚的,即每一個模塊就只干了一件事。用結(jié)構(gòu)化設(shè)計方法建立起來的模塊結(jié)構(gòu)中的每一個模塊都符合這個要求。把討論范圍再拓寬點,在純面向?qū)ο蠓缎偷能浖到y(tǒng)中,整個系統(tǒng)看作是一個類,它的子類可以看作是系統(tǒng)的子系統(tǒng)或高層模塊,它們還可以有子類,……,這就形成一個類的層次結(jié)構(gòu)。類的構(gòu)造可以看成是一個抽象數(shù)據(jù)類型,實際上是信息內(nèi)聚的。所以整個系統(tǒng)中從上到下,所有模塊(對象類)都是信息內(nèi)聚的模塊。耦合的概念和軟件的可移植性有什么關(guān)系?請舉例說明你的論述。耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互聯(lián)程度的度量。耦合強弱取決于模塊之間接口的復(fù)雜程度。在軟件設(shè)計的時候應(yīng)該追求盡可能松散耦合系統(tǒng)。由于模塊之間聯(lián)系簡單,發(fā)生在一處的錯誤傳播到整個系統(tǒng)的可能性很小,因此,模塊之間的耦合程度對系統(tǒng)的可理解性,可測試性,可靠性和可維護性有很重要的影響。內(nèi)聚是對模塊內(nèi)各元素彼此結(jié)合的緊密程度的度量。從供選擇的答案中選出正確答案填入下列關(guān)于軟件設(shè)計敘述中的()內(nèi)。在眾多的設(shè)計方法中,SD方法是最受人注意的,也是應(yīng)用最廣泛的。這種方法可以同分析階段的(A)方法及編程階段的(B)方法前后銜接。SD方法是考慮如何建立一個結(jié)構(gòu)良好的程序,提出了評價模塊質(zhì)量的兩個具體標(biāo)準(zhǔn)——塊間聯(lián)系和塊內(nèi)聯(lián)系。SD方法的最終目標(biāo)是(C)。A,B:①Jackson(B)②SA(A)③SC④ParnasC:①塊間聯(lián)系大,塊內(nèi)聯(lián)系小②塊間聯(lián)系大,塊內(nèi)聯(lián)系大③塊間聯(lián)系小,塊內(nèi)聯(lián)系?、軌K間聯(lián)系小,塊內(nèi)聯(lián)系大從下列關(guān)于模塊化程序設(shè)計的敘述中選出5條正確的敘述。程序設(shè)計比較方便,但比較難以維護。便于由多個人分工編制大型程序。軟件的功能便于擴充。程序易于理解,也便于排錯。在主存儲器能夠容納得下的前提下,應(yīng)使模塊盡可能大,以便減少模塊的個數(shù)。模塊之間的接口叫數(shù)據(jù)文件。只要模塊之間的接口關(guān)系不變,各模塊內(nèi)部實現(xiàn)細(xì)節(jié)的修改將不會影響別的模塊。模塊間的單向調(diào)用關(guān)系叫做模塊的層次結(jié)構(gòu)。模塊越小,模塊化的優(yōu)點越明顯。一般來說,模塊的大小都在10行以下。6.從供選擇的答案中選出正確答案填入下列關(guān)于詳細(xì)設(shè)計敘述中的()內(nèi)。軟件詳細(xì)設(shè)計工具可分為三類,即圖示工具、表格工具和偽碼語言。圖示工具中,(A)簡單且應(yīng)用廣泛,(B)表示法中,每個處理過程用一個盒子表示,盒子可以嵌套。(C)可以縱橫延伸,圖形的空間效果好。(D)是一種設(shè)計語言,它是一種面向(E)的語言。 A,B,C:①NS圖(B)②流程圖(A)③HIPO圖④PAD圖(C)D:①C②PDL③Prolog④PascalE:①人②機器③數(shù)據(jù)結(jié)構(gòu)④對象(四)編碼結(jié)構(gòu)化程序設(shè)計有時被錯誤地稱為“無GOTO語句”的程序設(shè)計。請說明為什么會出現(xiàn)這樣的說法,并討論圍繞著這個問題的一些爭論。嚴(yán)格控制GOTO語句,僅在用一個非結(jié)構(gòu)化的程序設(shè)計語言去實現(xiàn)一個結(jié)構(gòu)化的構(gòu)造,或者在某種可以改善而不是損害程序可讀性的情況下才可以使用GOTO語句。大量采用GOTO語句實現(xiàn)控制路徑,會使程序路徑變得復(fù)雜而混亂,因此要控制GOTO語句的使用。但有時完全不用GOTO語句進行程序編碼,比用GOTO語句編出的程序可讀性差。例如,在查找結(jié)束時,文件訪問結(jié)束時,出現(xiàn)錯誤情況要從循環(huán)中轉(zhuǎn)出時,使用布爾變量和條件結(jié)構(gòu)來實現(xiàn)就不如用GOTO語句來得簡單易懂。從下列關(guān)于程序編制的敘述中選出3條正確的敘述。在編制程序之前,首先必須仔細(xì)閱讀給定的程序說明書。然后,必須如實地依照說明書編寫程序。說明書中常會有含糊不清或難以理解的地方,程序員在作業(yè)時應(yīng)該對這些地方作出適當(dāng)?shù)慕忉尅T谥志幹瞥绦驎r,重要的是采用既能使程序正確地按設(shè)計流程進行處理,又易于出錯的編寫方法。在編制程序時,首先應(yīng)該對程序的結(jié)構(gòu)充分考慮,不要急于開始編程,而要象寫軟件文檔那樣,很好地琢磨程序具有什么樣的功能,這些功能任何安排,等等??紤]到以后的程序變更,為程序編寫完整的說明書是一項很重要的工作。只要有了完整的程序說明書,即使程序的編寫形式難以讓他人看懂也沒有什么關(guān)系。編制程序時不可缺少的條件是,程序的輸入和輸出數(shù)據(jù)的格式都應(yīng)確定。其它各項規(guī)定都是附帶的,無足輕重。作為一個好的程序,不僅處理速度要快,而且易讀易修改等也都是重要的條件。為了能得到這樣的程序,不僅要熟悉程序設(shè)計語言的語法,還要注意采用適當(dāng)?shù)囊?guī)程和單純的表現(xiàn)方法,注意使整個程序的結(jié)構(gòu)簡潔。從下列敘述中選出5條符合程序設(shè)計風(fēng)格指導(dǎo)原則的敘述。嵌套的重數(shù)應(yīng)加以限制。盡量多使用臨時變量。不濫用語言特色。不用可以省略的括號。應(yīng)盡可能把程序編得短些。使用有意義的變量名。把常見的局部優(yōu)化工作留給編譯程序去做。注解越少越好。程序的格式應(yīng)有助于讀者理解程序。應(yīng)盡可能多用GOTO語句。(五)軟件測試從供選擇的答案中選出應(yīng)填入下列()中的字句。軟件測試的目的是(A)。為了提高測試的效率,應(yīng)該(B)。使用白盒測試方法時,確定測試數(shù)據(jù)應(yīng)根據(jù)(C)和指定的覆蓋標(biāo)準(zhǔn)。與設(shè)計測試數(shù)據(jù)無關(guān)的文檔是(D)。軟件的集成測試工作最好由(E)承擔(dān),以提高集成測試的效果。A:①評價軟件的質(zhì)量②發(fā)現(xiàn)軟件的錯誤③找出軟件中的所有錯誤④證明軟件是正確的B:①隨機地選取測試數(shù)據(jù)②取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)③在完成編碼以后制定軟件的測試計劃④選擇發(fā)現(xiàn)錯誤的可能性大的數(shù)據(jù)作為測試數(shù)據(jù)C:①程序的內(nèi)部邏輯②程序的復(fù)雜程度③使用說明書④程序的功能D:①該軟件的設(shè)計文檔②程序的復(fù)雜程度③源程序④項目開發(fā)計劃E:①該軟件的設(shè)計人員②該軟件開發(fā)組的負(fù)責(zé)人③該軟件的編程人員④不屬于該軟件開發(fā)組的設(shè)計人員從供選擇的答案中選出同下列關(guān)于軟件測試的各條敘述關(guān)系最密切的字句。在意識到被測試模塊的內(nèi)部結(jié)構(gòu)或算法的情況下進行測試。(⑨白盒測試)為了確認(rèn)用戶的需求,先作出系統(tǒng)的主要部分,提交給用戶試用。⑧原型在測試具有層次結(jié)構(gòu)的大型軟件時,有一種方法是從上層模塊開始,由上到下進行測試。此時,有必要用一些模塊替代尚未測試過的下層模塊。④樁(即存根模塊)A,B,C,D,E:①仿真器②代碼審查③模擬器④樁⑤驅(qū)動器 ⑥域測試⑦黑盒測試⑧原型⑨白盒測試⑩退化測試7.下面是一段求最大值的程序,其中datalist是數(shù)據(jù)表,n是datalist的長度。

intGetMax(intn,intdatalist[])

{

intk=0;

for(intj=1;j<n;j++)

if(datalist[j]>datalist[k])k=j;

returnk;

}

(1)畫出該程序的控制流圖,并計算其McCabe環(huán)路復(fù)雜性??刂茍DMcCabe環(huán)路復(fù)雜性:3

(2)用基本路徑覆蓋法給出測試路徑。Pathl:①→③Path2:①→②→④→⑥→…Path3:①→②→⑤→⑥→…

(3)為各測試路徑設(shè)計測試用例。Path1:取n=1,datalist[0]=1,預(yù)期結(jié)果:k=0Path2:?。簄=2,datalist[0]=1,datalist[1]=0,預(yù)期結(jié)果:k=0Path3:取n=2,datalist[0]=0,datalist[1]=1,預(yù)期結(jié)果:k=1【解析】本題考查對軟件測試概念和過程的理解,結(jié)合具體實例運用各種測試技術(shù),學(xué)會測試用例設(shè)計、軟件測試與程序調(diào)試的方法。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,其目的在于以最少的時間和人力系統(tǒng)地找出軟件中潛在的各種錯誤和缺陷。根據(jù)2004新大綱和最近兩次軟件設(shè)計師考試的真題,不難發(fā)現(xiàn)各類系統(tǒng)分析理論的實例化考核比例逐漸升溫,只要讀者平時對這部分知識的實例多分析、多思考,這部分分?jǐn)?shù)其實不難拿到。答:1.控制流圖如下,McCabe環(huán)路復(fù)雜性為3。

2.測試路徑:

Path1:①→③

Path2:①→②→④→⑥→…

Path3:①→②→⑤→⑥→…

3.測試用例:

Path1:取n=1,datalist[0]=1,

預(yù)期結(jié)果:k=0

Path2:取n=2,datalist[0]=1,datalist[1]=0,

預(yù)期結(jié)果:k=0

Path3:取n=2,datalist[0]=0,datalist[1]=1,

預(yù)期結(jié)果:k=18、對程序進行基本路徑的測試voidFunc(intnPosX,intnPosY){ while(nPosX>0){ intnSum=nPosX+nPosY; if(nSum>1){ nPosX--;nPosY--; } else{ if(nSum<-1)nPosX-=2; elsenPosX-=4; } } //endofwhile}步驟1:根據(jù)程序邏輯畫出流程圖步驟2:將流程圖轉(zhuǎn)換為流圖(1/2)步驟3:確定基本路徑的集合基本路徑流圖Cyclomatic復(fù)雜度正好是基本路徑的數(shù)目V(G)=E–N+2V(G)=11-9+2=41-111-2,3-6-7-9-10-1-111-2,3-4,5-10-1-111-2,3-6-8-9-10-1-11步驟4:針對測試路徑設(shè)計測試用例1-11nPosX取-1,nPosY取任意值1-2,3-4,5-10-1-11nPosX取1,nPosY取11-2,3-6-7-9-10-1–11nPosX取1,nPosY取-11-2,3-6-8-9-10-1-11nPosX取1,nPosY取-39、某模塊的源程序如下:Procedureexample(A,B:real;varx:real);BeginIf(A>1)and(B=0)Thenx:=X/A;If(A=2)or(X>1)Thenx:=x+1END對程序進行邏輯覆蓋的測試邏輯覆蓋法適用于白盒測試。有選擇地執(zhí)行程序中某些最有代表性的通路是對窮盡測試的唯一可行的替代辦法。所謂邏輯覆蓋是對一系列測試過程的總稱,這組測試過程逐漸進行越來越完整的通路測試。測試數(shù)據(jù)執(zhí)行(或叫覆蓋)程序邏輯的標(biāo)準(zhǔn)大致有以下一些。條件覆蓋條件覆蓋的含義是,不僅每個語句至少執(zhí)行一次,而且使判定表達(dá)式中的每個條件都取到各種可能的結(jié)果。上例中只需要使用下面兩組測試數(shù)據(jù)就可以達(dá)到上述覆蓋標(biāo)準(zhǔn):I.A=2,B=0,X=4(滿足A>1,B=0,A=2和X>1的條件,執(zhí)行路徑sacbed)Ⅱ.A=1,B=1,X=1(滿足A≤1,B≠0,A≠2和X≤1的條件,執(zhí)行路徑sabd)條件覆蓋通常比判定覆蓋強,因為它使判定表達(dá)式中每個條件都取到了兩個不同的結(jié)果,判定覆蓋卻只關(guān)心整個判定表達(dá)式的值。但是,也可能有相反的情況:雖然每個條件都取到了兩個不同的結(jié)果,判定表達(dá)式卻始終只取一個值。例如,如果使用下面兩組測試數(shù)據(jù),則只滿足條件覆蓋標(biāo)準(zhǔn)并不滿足判定覆蓋標(biāo)準(zhǔn)(第二個判定表達(dá)式的值總為真):I.A=2,B=0,X=1(滿足A>1,B=0,A=2和X≤1的條件,執(zhí)行路徑sacbed)Ⅱ.A=1,B=1,X=2(滿足:A≤1,B≠0,A≠2和X>1的條件,執(zhí)行路徑sabed)(六)面向?qū)ο筌浖こ逃蒖umBaugh等人提出的一種面向?qū)ο蠓椒ń凶瞿P突夹g(shù),即三視點技術(shù),它要求把分析時收集的信息建立在三個模型中。第一個模型是(A),其作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括構(gòu)成系統(tǒng)的對象和類,它們的屬性和操作,以及它們之間的聯(lián)系。第二個模型是(B),描述系統(tǒng)的控制邏輯,主要涉及系統(tǒng)中各個對象和類的時序及變化狀況。(B)包括兩種圖,即(C)和(D)。(C)描述每一類對象的行為,(D)描述發(fā)生于系統(tǒng)執(zhí)行過程中的某一特定腳本。第三個模型是(E),著重于描述系統(tǒng)內(nèi)部數(shù)據(jù)的傳送與處理,它由多個數(shù)據(jù)流圖組成。

A,B,E:①數(shù)據(jù)模型②功能模型(E)③行為模型④信息模型⑤原型 ⑥動態(tài)模型(B)⑦對象模型(A)⑧邏輯模型⑨控制模型⑩仿真模型C,D:①對象圖②概念模型圖③狀態(tài)遷移圖(C)④數(shù)據(jù)流圖⑤時序圖 ⑥事件追蹤圖(D)⑦控制流程圖⑧邏輯模擬圖⑨仿真圖⑩行為圖從供選擇的答案中選出正確答案填入下列敘述的()內(nèi)。面向?qū)ο笮偷某绦蛟O(shè)計語言具有數(shù)據(jù)抽象、信息隱蔽、(A)等特征。作為運算單位的對象應(yīng)具有下列特性:(B)、(C)、(D)。(E)是面向?qū)ο笮偷恼Z言。 A:①對象調(diào)用②對象變換③非過程性④信息繼承⑤并發(fā)性 B,C,D:①對象把數(shù)據(jù)和處理數(shù)據(jù)的操作結(jié)合為一體②在程序運行時對象都處于活動狀態(tài)③對象在計算中可向其它對象發(fā)送消息④接受消息的對象必須給消息發(fā)送者以回答⑤對象的內(nèi)部服務(wù)只根據(jù)外部送來的消息才操作 E:①C++,Smalltalk,ObjectC②C,Ada,Modula2③Pascal,C++,APL④Ada,ObjectC,C(七)軟件管理什么是軟件項目管理?軟件項目管理是為了使軟件項目能夠按照預(yù)定的成本、進度、質(zhì)量順利完成,而對人員(People)、產(chǎn)品(Product)、過程(Process)和項目(Project)進行分析和管理的活動.什么是配置管理?它的四項基本功能是什么?配置管理(ConfigurationManagement,CM)是通過技術(shù)或行政手段對軟件產(chǎn)品及其開發(fā)過程和生命周期進行控制、規(guī)范的一系列措施并行開發(fā)支持修訂版管理版本控制產(chǎn)品發(fā)布管理建立管理過程控制變更請求管理代碼共享什么是基線?它在配置管理中有什么作用?簡述配置管理的五項主要任務(wù)。從供選擇的答案中選出正確答案填入下列敘述的()內(nèi)。任何軟件項目都必須作好項目管理工作,最常使用的計劃管理工具是(A)。當(dāng)某一軟件項目的進度有可能拖延時,應(yīng)該(B)。對于一個典型的開發(fā)項目,各開發(fā)階段需投入的工作量的百分比大致是(C)。各階段所需不同層次的技術(shù)人員大致是(D),而管理人員在各階段所需數(shù)量也不同,相對而言大致是(E)。 A:①數(shù)據(jù)流圖②程序結(jié)構(gòu)圖③因果圖④PERT圖B:①增加新的開發(fā)人員②分析拖期原因加以補救③從別的小組抽調(diào)人員臨時幫忙④推遲預(yù)定完成時間(A/D/P/T)C:①25/25/25/25②10/20/30/40③15/30/15/40④5/10/65/30D:①初/高/高/高②中/中/高/中③高/中高/初/中高④中/中高/中/初E:①多/中/少/中②中/中/中/中③多/少/多/多④少/多/少/多從下列關(guān)于文檔編制的敘述中選出正確的敘述??尚行匝芯繄蟾鎽?yīng)評述為了合理地達(dá)到開發(fā)目標(biāo)而困難選擇的各種方案,以便用戶抉擇。因此,編寫者不必提出結(jié)論。操作手冊的編寫工作應(yīng)該在軟件測試階段之前完成。軟件的開發(fā)單位應(yīng)該建立本單位文檔的標(biāo)識方法,使文檔的每一頁都具有明確的標(biāo)識。為了使得文檔便于修改,保持一致性,各文檔的內(nèi)容不應(yīng)有相互重復(fù)的地方。用戶手冊要使用專門的術(shù)語,并充分地描述該軟件系統(tǒng)的結(jié)構(gòu)及使用方法。詳細(xì)設(shè)計說明書中可以使用判定表及必要的說明來表示程序的邏輯。概要設(shè)計說明書中可以IPO圖來說明接口設(shè)計。測試分析報告應(yīng)把每個模塊實際測試的結(jié)果,與軟件需求規(guī)格說明書和概要設(shè)計說明書中規(guī)定的要求進行對照并作出結(jié)論。軟件需求規(guī)格說明書中可以對軟件的操作人員和維護人員的教育水平和技術(shù)專長提出要求。項目開發(fā)計劃除去規(guī)定項目開發(fā)所需的資源、開發(fā)的進度等以外,還可以包括用戶培訓(xùn)計劃。軟件過程能力成熟度的5個等級是:初始級、可重復(fù)級、_____、_____和_____。CMM(軟件過程能力成熟度模型)是英文_____的縮寫。在軟件測試中,如果一個軟件是給許多客戶使用的,那么讓每一個用戶都進行正式的接收測試是不切實際的。因此軟件廠商常常進行這樣的測試:一種測試是由軟件的最終用戶在一個或多個用戶場所進行,開發(fā)者通常不會在場,用戶記錄錯誤和問題并報告給開發(fā)者,這種測試叫_____;另一種測試由一個用戶在開發(fā)場所,用戶在開發(fā)者的“指導(dǎo)”下進行,開發(fā)者負(fù)責(zé)記錄錯誤和問題,這種測試叫____。(13)是指計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴(yán)重問題。(14)從理論上說,只用順序結(jié)構(gòu)、、三種基本控制結(jié)構(gòu)就可以實現(xiàn)任何單入口單出口的程序。(15)通常,把一個軟件從定義、開發(fā)、、直到最終被廢棄所經(jīng)歷的漫長時期稱為。(16)造成軟件危機的主要原因是。A.用戶使用不當(dāng)B.軟件本身特點C.硬件不可靠D.對軟件的錯誤認(rèn)識E.缺乏好的開發(fā)方法和手段三、閱讀下面說明,畫出系統(tǒng)的第0層和第1層的數(shù)據(jù)流圖。1、某公司工資與考勤管理系統(tǒng)的功能描述:系統(tǒng)根據(jù)考勤管理員和人力資源部提交的考勤統(tǒng)計表和員工業(yè)績表更新員工基本信息文件;系統(tǒng)每月底向公司總經(jīng)理辦公室提交部門消耗表和員工消耗表,并接收公司總經(jīng)理辦公室下發(fā)的部門嘉獎/處罰清單;系統(tǒng)要隨時接收人力資源部提交的員工流動登記表,隨時向其輸出公司考勤登記表,并更新員工基本信息文件??记谧酉到y(tǒng)首先處理員工的考勤情況,然后輸出員工考勤通知單給工資處理子系統(tǒng)處理。2、某校準(zhǔn)備開發(fā)一個學(xué)生成績管理系統(tǒng)。在該系統(tǒng)中,教務(wù)人員錄入學(xué)生信息、課程信息和成績信息,學(xué)生可以隨時查詢自己所選課程的成績。由于學(xué)生成績屬于敏感信息,系統(tǒng)必須提供必要的安全措施以防非法存取。請畫出該系統(tǒng)的三層數(shù)據(jù)流圖。3、一個考務(wù)處理系統(tǒng)的要求如下,試畫出該系統(tǒng)的數(shù)據(jù)流圖。

(1)對考生送來的報名表進行檢查;

(2)對合格的報名表編好準(zhǔn)考證號碼后將準(zhǔn)考證送給考生,并將匯總后的考生名單送給閱卷站;

(3)對閱卷站送來的成績表進行檢查,并根據(jù)考試中心指定的合格標(biāo)準(zhǔn)審定合格者;

(4)填寫考生通知單(內(nèi)容包含考試成績及合格∕不合格標(biāo)志),送給考生;

(5)按地區(qū)、年齡、文化程度、職業(yè)、考試級別等進行成績分類統(tǒng)計及試題難度分析,產(chǎn)生統(tǒng)計分析表。四、面向?qū)ο?、根據(jù)下面描述,畫出相應(yīng)的用例圖。在醫(yī)生的辦公室里,接待員、護士和醫(yī)生使用病人記錄和計劃安排系統(tǒng)。當(dāng)病人第一次來這里看病時,接待員使用該系統(tǒng)來輸入病人信息,并且安排所有的預(yù)約。護士使用系統(tǒng)來跟蹤病人每次看病的結(jié)果并輸入護理病人的信息,如醫(yī)療和診斷。護士也可以訪問這些信息以打印病人診斷結(jié)果或病人看病歷史。醫(yī)生主要用這個系統(tǒng)來查看病人的病史,偶爾也輸入病人醫(yī)療信息,但通常讓護士輸入這些信息。2、填空題

(1)在學(xué)校中,一個學(xué)生可以選修多門課程,一門課程可以由多個學(xué)生選修,那么學(xué)生和課程之間

關(guān)聯(lián)關(guān)系。

(2)類A的一個操作調(diào)用類B的一個操作,且這兩個類之間不存在其他關(guān)系,那么類A和類B之間是依賴關(guān)系。3)接口及其實現(xiàn)類或構(gòu)件之間是

實現(xiàn)關(guān)系。

4)一個汽車有四個輪子,那么類"汽車"和"輪子"之間的關(guān)系是聚合關(guān)系。

5)學(xué)生與研究生之間是

泛化關(guān)系。3、在系統(tǒng)開發(fā)過程中為什么需要建立模型?在系統(tǒng)開發(fā)過程中,建立模型的一個重要原因在于描述系統(tǒng)的復(fù)雜性。信息系統(tǒng)十分復(fù)雜,而且系統(tǒng)的某些部分難以明了。系統(tǒng)各個部分的模型有助于問題的簡化,并能夠使分析人員的精力一次只集中在系統(tǒng)的幾個方面上。同時,分析人員需要收集和處理大量的信息,模型提供了以一種容易理解的形式為后期使用存儲信息的方法。

建立模型的另一個主要原因是便于交流。開發(fā)人員可以使用模型討論和交流系統(tǒng)的設(shè)計方案,用戶可以從模型中更好地理解新系統(tǒng)所能提供的各種可能的功能,因此,模型在支持小組人員之間和與用戶的交流過程中起著重要的作用。

最后,模型為以后的軟件維護和升級提供了文檔。

由于系統(tǒng)的復(fù)雜性,需要建立多個模型來涵蓋細(xì)節(jié)信息,還需要使用許多不同類型的模型在不同的細(xì)節(jié)由于系統(tǒng)的復(fù)雜性,需要建立多個模型來涵蓋細(xì)節(jié)信息,還需要使用許多不同類型的模型在不同的細(xì)節(jié)層次(或不同抽象層次)上表現(xiàn)系統(tǒng),既包括在高層次上對系統(tǒng)的概括,也包括針對系統(tǒng)某一方面的細(xì)節(jié)描述。

4、與傳統(tǒng)的結(jié)構(gòu)化方法相比,面向?qū)ο箝_發(fā)方法具有什么優(yōu)點?面向?qū)ο蠓椒ㄅc傳統(tǒng)的軟件開發(fā)方法相比,具有許多顯著的優(yōu)點,其主要優(yōu)點如下:

(1)按照人類的自然思維方式,面對客觀世界建立軟件系統(tǒng)模型,有利于對問題域和系統(tǒng)責(zé)任的理解,有利于人員交流。

(2)在整個開發(fā)過程中采用統(tǒng)一的概念和模型表示,填平了語言之間的鴻溝,使得開發(fā)活動之間平滑過渡。

(3)對象所具有的封裝性和信息隱蔽等特性,使其容易實現(xiàn)軟件復(fù)用。對象類可以派生出新類,類可以產(chǎn)生實例對象,從而實現(xiàn)了對象類的數(shù)據(jù)結(jié)構(gòu)和操作代碼的軟構(gòu)件的復(fù)用。另外,面向?qū)ο蟪绦蛟O(shè)計語言的開發(fā)環(huán)境一般預(yù)定義了系統(tǒng)動態(tài)連接庫,提供大量公用程序代碼,避免重復(fù)編寫,提高了開發(fā)效率和質(zhì)量。

(4)在面向?qū)ο蟮姆椒ㄖ?,系統(tǒng)由對象構(gòu)成,對象是一個包含屬性和操作兩方面的獨立單元,對象之間通過消息聯(lián)系。這樣的系統(tǒng)一旦出錯,容易定位和修改,系統(tǒng)的可維護性好。五、軟件維護為什么軟件需要維護?簡述軟件維護的過程。為什么說軟件維護是一項困難的工作?改正性維護與排錯(調(diào)試)是否是一回事?為什么?什么是軟件再工程?軟件再工程的意義是什么?1、在軟件開發(fā)完成交付用戶使用后,為了保證軟件在一個相當(dāng)長的時期能夠正常運行,就需要對軟件進行維護。

軟件維護的類型有4種:改正性維護、適應(yīng)性維護、完善性維護和預(yù)防性維護。

(1)改正性維護是要改正在特定的使用條件下暴露出來的一些潛在程序錯誤或設(shè)計缺陷;

(2)適應(yīng)性維護是要在軟件使用過程中數(shù)據(jù)環(huán)境發(fā)生變化或處理環(huán)境發(fā)生變化時修改軟件以適應(yīng)這種變化;

(3)完善性維護是在用戶和數(shù)據(jù)處理人員使用軟件過程中提出改進現(xiàn)有功能,增加新的功能,以及改善總體性能的要求后,修改軟件以把這些要求納入到軟件之中;

(4)預(yù)防性維護是為了提高軟件的可維護性、可靠性等,事先采用先進的軟件工程方法對需要維護的軟件或軟件中的某一部分(重新)進行設(shè)計、編制和測試,為以后進一步改進軟件打下良好基礎(chǔ)。

軟件維護的過程如圖所示。首先是確認(rèn)維護要求,這需要維護人員與用戶反復(fù)協(xié)商,弄清錯誤概況以及對業(yè)務(wù)的影響大小,以及用戶希望做什么樣的修改,并把這些情況存入故障數(shù)據(jù)庫。然后由維護組織管理員確認(rèn)維護類型,根據(jù)不同的維護類型實施不同的維護過程。

(1)對于改正性維護申請,從評價錯誤的嚴(yán)重性開始。如果存在嚴(yán)重的錯誤,則必須安排人員,在系統(tǒng)監(jiān)督員的指導(dǎo)下,進行問題分析,尋找錯誤發(fā)生的原因,進行"救火"性的緊急維護;對于不嚴(yán)重的錯誤,可根據(jù)任務(wù)、機時情況、視輕重緩急,進行排隊,統(tǒng)一安排時間。

(2)對于適應(yīng)性維護和完善性維護申請,需要先確定每項申請的優(yōu)先次序。若某項申請的優(yōu)先級非常高,就可立即開始維護工作,否則,維護申請和其它的開發(fā)工作一樣,進行排隊,統(tǒng)一安排時間。

(3)并不是所有的完善性維護申請都必須承擔(dān),因為進行完善性維護等于是做二次開發(fā),工作量很大,所以需要根據(jù)商業(yè)需要、可利用資源的情況、目前和將來軟件的發(fā)展方向、以及其它的考慮,決定是否承擔(dān)。

盡管維護申請的類型不同,但都要進行同樣的技術(shù)工作。這些工作包括:修改軟件需求說明、修改軟件設(shè)計、設(shè)計評審、對源程序做必要的修改、單元測試、集成測試(回歸測試)、確認(rèn)測試、軟件配置評審等。在每次軟件維護任務(wù)完成后,最好進行一次情況評審,對以下問題進行總結(jié):

§在目前情況下,設(shè)計、編碼、測試中的哪一方面可以改進?

§哪些維護資源應(yīng)該有但沒有?

§工作中主要的或次要的障礙是什么?

§從維護申請的類型來看是否應(yīng)當(dāng)有預(yù)防性維護?

情況評審對將來的維護工作如何進行會產(chǎn)生重要的影響,并可為軟件機構(gòu)的有效管理提供重要的反饋信息。

2、軟件維護是一件十分困難的工作,由于軟件需求分析和開發(fā)方法產(chǎn)生軟件的缺陷,加上軟件開發(fā)過程中沒有嚴(yán)格而又科學(xué)的管理和規(guī)劃,便會引起軟件運行時的維護困難。

軟件維護不是一件吸引人的工作,由于維護工作的困難性,維護經(jīng)常遭受挫折,而且很難出成果,所以高水平的程序員自然不愿主動去做,而公司也舍不得讓高水平的程序員去做。

軟件維護工作的困難主要表現(xiàn)在以下幾個方面:

(1)讀懂別人的程序是很困難的,而文檔的不足更增加了這種難度。一般開發(fā)人員都有這樣的體會,修改別人的程序還不如自己重新編寫程序。

(2)文檔的不一致性是軟件維護困難的又一個因素,主要表現(xiàn)在各種文檔之間的不一致以及文檔與程序之間的不一致性,從而導(dǎo)致維護人員不知所措,不知怎樣進行修改。這種不一致性是由于開發(fā)過程中文檔管理不嚴(yán)造成的,開發(fā)中經(jīng)常會出現(xiàn)修改程序而忘了修改相關(guān)的文檔,或者某一個文檔修改了,卻沒有修改與之相關(guān)的其他文檔等現(xiàn)象,解決文檔不一致性的方法就是要加強開發(fā)工作中文檔的版本管理。

(3)軟件開發(fā)和軟件維護在人員和時間上存在差異。如果軟件維護工作是由該軟件的開發(fā)人員完成,則維護工作相對比較容易,因為這些人員熟悉軟件的功能和結(jié)構(gòu)等。但是,通常開發(fā)人員和維護人員是不同的,況且維護階段持續(xù)時間很長,可能是10~20年的時間,原來的開發(fā)工具、方法和技術(shù)與當(dāng)前有很大的差異,這也造成了維護的困難。

(4)軟件維護不是一件吸引人的工作。由于維護工作的困難性,維護經(jīng)常遭受挫折,而且很難出成果,所以高水平的程序員自然不愿主動去做,而公司也舍不

溫馨提示

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

最新文檔

評論

0/150

提交評論