軟件工程第三版答案_第1頁
軟件工程第三版答案_第2頁
軟件工程第三版答案_第3頁
軟件工程第三版答案_第4頁
軟件工程第三版答案_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程第三版答案

【篇一:軟件工程課后答案】

>1.1什么是計(jì)算機(jī)軟件?軟件的特點(diǎn)是什么?

答:計(jì)算機(jī)軟件指計(jì)算機(jī)系統(tǒng)中的程序及其文檔。

軟件的特點(diǎn)是:

a軟件是一種邏輯實(shí)體,而不是有形的系統(tǒng)元件,其開發(fā)成本和進(jìn)

度難以準(zhǔn)確得估算;

b軟件是被開發(fā)的或被設(shè)計(jì)的,沒有明顯的制造過程,一旦開發(fā)成

功,只需復(fù)制即可,但其維護(hù)的工作量大;

c軟件的使用沒有硬件那樣的機(jī)械磨損和老化問題。

1.2簡述軟件的分類,并舉例說明。

答:在《計(jì)算機(jī)科學(xué)技術(shù)百科全書》中,將軟件分為系統(tǒng)軟件、支

撐軟件和應(yīng)用軟件3類。

a系統(tǒng)軟件:系統(tǒng)軟件居于計(jì)算機(jī)系統(tǒng)中最靠近硬件的一層,其他

軟件一般都通過系統(tǒng)軟件發(fā)揮作用。系統(tǒng)軟件與具體的應(yīng)用領(lǐng)域無

關(guān)。例如:編譯程序、操作系統(tǒng)等。

b支撐軟件:支撐軟件是支撐軟件的開發(fā)和維護(hù)的軟件。例如:數(shù)

據(jù)庫管理系統(tǒng)、網(wǎng)絡(luò)軟件、軟件工具、軟件開發(fā)環(huán)境等。

c應(yīng)用軟件:應(yīng)用軟件是特定應(yīng)用領(lǐng)域?qū)S玫能浖?。例如:工?科

學(xué)計(jì)算軟件、嵌入式軟件、產(chǎn)品線軟件、web應(yīng)用軟件、人工智能

軟件。

1.44么是軟件工程?

答:在《計(jì)算機(jī)科學(xué)技術(shù)百科全書》中軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、

數(shù)學(xué)及管理科學(xué)等原理,開發(fā)軟件的工程。

1.5簡述軟件工程的基本原則。

答:軟件工程原則包括圍繞工程設(shè)計(jì)、工程支持和工程管理提出的

以下4條基本原則:

第一條:圍繞適宜的開發(fā)模型;

第二條:采用合適的設(shè)計(jì)方法;

第三條:提供高質(zhì)量的工程支撐;

第四條:重視軟件工程的管理。

1.6軟件生存周期分哪幾個(gè)階段?分別簡述各個(gè)階段的任務(wù)。

答:軟件生存周期有計(jì)算機(jī)系統(tǒng)工程、需求分析、設(shè)計(jì)、編碼、測

試、運(yùn)行和維護(hù)6個(gè)階段n

a計(jì)算機(jī)系統(tǒng)工程的任務(wù)是確定待開發(fā)軟件的總體要求和范圍,以

及該軟件與其他計(jì)算機(jī)系統(tǒng)元素之間的關(guān)系,進(jìn)行成本估算,做出

進(jìn)度安排,并進(jìn)行可行性分析,即從經(jīng)濟(jì)、技術(shù)、法律等方面分析

待開發(fā)的軟件是否有可行的解決方案,并在若干個(gè)可行的解決方案

中做出選擇。

b需求分析主要解決待開發(fā)軟件要“做什么”的問題,確定軟件的功

能、性能、數(shù)據(jù)、界面等要求,生成軟件需求規(guī)約。

c軟件設(shè)計(jì)只要解決待開發(fā)軟件“怎么做”的問題。軟件設(shè)計(jì)通???/p>

分為系統(tǒng)設(shè)計(jì)和詳細(xì)設(shè)計(jì)。系統(tǒng)設(shè)計(jì)的任務(wù)是設(shè)計(jì)軟件系統(tǒng)的體系

結(jié)構(gòu),包括軟件系統(tǒng)的組成成分、各成分的功能和接口、成分間的

連接和通信,同時(shí)設(shè)計(jì)全局?jǐn)?shù)據(jù)結(jié)構(gòu)。詳細(xì)設(shè)計(jì)的任務(wù)是設(shè)計(jì)各個(gè)

組成成分的實(shí)現(xiàn)細(xì)節(jié),包括局部數(shù)據(jù)結(jié)構(gòu)和算法等。

d編碼階段的任務(wù)是用某種程序設(shè)計(jì)語言,將設(shè)計(jì)的結(jié)果轉(zhuǎn)換為可

執(zhí)行的程序代碼。

e測試階段的任務(wù)是發(fā)現(xiàn)并糾正軟件中的錯(cuò)誤和缺陷。測試主要包

括單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。

f軟件完成各種測試后就可交付使用,在軟件運(yùn)行期間,需對投入運(yùn)

行的軟件進(jìn)行維護(hù),即可發(fā)現(xiàn)了軟件中潛藏的錯(cuò)誤或需要增加新的

功能或使軟件適應(yīng)外界環(huán)境的變化等情況出現(xiàn)時(shí),對軟件進(jìn)行修改。

1.9簡述各類軟件過程模型的特點(diǎn)。

答:典型的軟件過程模型有:瀑布模型、演化模型(增量模型、原

型模型、螺旋模型)、噴泉模型、基于構(gòu)件的開發(fā)模型和形式方法

模型等。

a瀑布模型中,上一階段的活動(dòng)完成并經(jīng)過評審后才能開始下一階

段的活動(dòng),其特征是:

接受上一階段活動(dòng)的結(jié)果作為本階段活動(dòng)的輸入;

依據(jù)上一階段活動(dòng)的結(jié)果實(shí)施本階段應(yīng)完成的活動(dòng);

對本階段的活動(dòng)進(jìn)行評審;

將本階段活動(dòng)的結(jié)果作為輸出。

b增量模型將軟件的開發(fā)過程分成若干個(gè)日程時(shí)間交錯(cuò)的線性序列,

每個(gè)線性序列產(chǎn)生軟件的一個(gè)可發(fā)布的增量版本,后一個(gè)版本是對

前一個(gè)版本的修改和補(bǔ)充,重復(fù)增量發(fā)布的過程,直至產(chǎn)生最終的

完善產(chǎn)品。

c原型模型從軟件工程師與客戶的交流開始,其目的是定義軟件的

總體目標(biāo),標(biāo)識需求。然后快速制定原型開發(fā)的計(jì)劃,確定原型的

目標(biāo)和范圍,采用快速設(shè)計(jì)的方式對其建模,并構(gòu)建模型。被開發(fā)

的原型應(yīng)交付給客戶使用,并收集客戶的反饋意見,這些反饋意見

可在下一輪迭代中對原型進(jìn)行改進(jìn)。在前一個(gè)原型需要改進(jìn),或者

需要擴(kuò)展其范圍的時(shí)候,進(jìn)入下一輪原型的迭代開發(fā)。

d螺旋模型將原型模型實(shí)現(xiàn)的迭代特征與瀑布模型中控制的和系統(tǒng)

化的方面結(jié)合起來,不僅體現(xiàn)了這兩種模型的優(yōu)點(diǎn)而且還增加了風(fēng)

險(xiǎn)分析。

e噴泉模型是一種支持面向?qū)ο箝_發(fā)的過程模型。類及對象是面向

對象方法中的基本成分。在分析階段,標(biāo)識類及對象,定義類之間

的關(guān)系,建立對象?關(guān)系模型和對象?行為模型。在設(shè)計(jì)階段,從實(shí)現(xiàn)

的角度對分析模型進(jìn)行調(diào)整和擴(kuò)充。在編碼階段,用面向?qū)ο笳Z言

實(shí)現(xiàn)類及對象,通過消息機(jī)制實(shí)現(xiàn)對象之間的通信,完成軟件的功

能。在面向?qū)ο蠓椒ㄖ?,分析模型和設(shè)計(jì)模型采用相同的符號表示

體系,開發(fā)的各個(gè)活動(dòng)沒有明顯的邊界,各個(gè)活動(dòng)經(jīng)常重復(fù),迭代

地交替進(jìn)行。

f基于構(gòu)件的開發(fā)模型,基于構(gòu)件的開發(fā)是指利用預(yù)先包裝的構(gòu)建來

構(gòu)造應(yīng)用系統(tǒng)。構(gòu)件可以是組織內(nèi)部開發(fā)的構(gòu)建,也可以是商業(yè)化

的、現(xiàn)存的軟件構(gòu)件。

g形式化方法是建立在嚴(yán)格數(shù)學(xué)基礎(chǔ)上的一種軟件開發(fā)方法。軟件

開發(fā)的全過程中,從需求分析、規(guī)約、設(shè)計(jì)、編程、系統(tǒng)集成、測

試、文檔生成,直至維護(hù)等各個(gè)階段,凡是采用嚴(yán)格的數(shù)學(xué)語言,

具有精確的數(shù)學(xué)語義的方法,都稱為形式化方法。形式化方法用嚴(yán)

格的數(shù)學(xué)語言和語義描述功能和設(shè)計(jì)規(guī)約,通過數(shù)學(xué)的分析和推導(dǎo),

易于發(fā)現(xiàn)需求的歧義性、不完整性和不一致性,易于對分析模型、

設(shè)計(jì)模型和程序進(jìn)行驗(yàn)證。通過數(shù)學(xué)的演算,使得從形式化功能規(guī)

約到形式化設(shè)計(jì)規(guī)約,以及從形式化設(shè)計(jì)規(guī)約到程序代碼轉(zhuǎn)換成為

可能。

1.10敏捷軟件開發(fā)的特點(diǎn)是什么?

答:敏捷軟件開發(fā)的特點(diǎn)有4個(gè):

a個(gè)人和交互高于過程和工具;

b可運(yùn)行軟件高于詳盡的文檔;

c與客戶協(xié)作高于合同談判;

d對變更及時(shí)做出反應(yīng)高于遵循計(jì)劃。

1.12簡述敏捷軟件開發(fā)的原則。

答:敏捷軟件開發(fā)必須遵循的12條原則如下;

a最優(yōu)先的是通過盡早地和不斷地提交有價(jià)值的軟件來使客戶滿意;

【篇二:軟件工程課后習(xí)題答案】

1、軟件產(chǎn)品的特性是什么?答:軟件產(chǎn)品特性:

⑴是一種邏輯產(chǎn)品,與物質(zhì)產(chǎn)品有很大的區(qū)別。

(2)軟件產(chǎn)品的生產(chǎn)主要是研制,生產(chǎn)成本主要在開發(fā)和研制,開發(fā)

研制完成后,通過復(fù)制就產(chǎn)生了大量軟件產(chǎn)品。(3)軟件產(chǎn)品不會(huì)用

壞,不存在磨損,消耗。

⑷生產(chǎn)主要是腦力勞動(dòng),還末完全擺脫手工開發(fā)方式,大部分產(chǎn)品

是定做的

⑸開發(fā)軟件的費(fèi)用不斷增加,致使生產(chǎn)成本相當(dāng)昂貴。2、軟件生

產(chǎn)有幾個(gè)階段?各有何特征?

答:⑴程序設(shè)計(jì)時(shí)代:這個(gè)階段生產(chǎn)方式是個(gè)體勞動(dòng),使用的生產(chǎn)

工具是機(jī)器語言,匯編語言。

⑵程序系統(tǒng)時(shí)代:這個(gè)階段生產(chǎn)方式是小集團(tuán)合作生產(chǎn),使用的生

產(chǎn)工具是高級語言,開發(fā)方法仍依靠個(gè)人技巧,但開始提出結(jié)構(gòu)化

方法。

(3)軟件工程時(shí)代:這個(gè)階段生產(chǎn)方式是工程化的生產(chǎn),使用數(shù)據(jù)庫

、開發(fā)工具、開發(fā)環(huán)境、網(wǎng)絡(luò)、分布式、面向?qū)ο蠹夹g(shù)來開發(fā)軟件。

3、什么是軟件危機(jī)?產(chǎn)生原因是什么?答:軟件開發(fā)技術(shù)的進(jìn)步未

能滿足發(fā)展的要求。在軟件開發(fā)中遇到的問題找不到解決的辦法,

問題積累起來,形態(tài)尖銳的矛盾,導(dǎo)致了軟件危機(jī)。產(chǎn)生原因:(1)

軟件規(guī)模越來越大,結(jié)構(gòu)越來越復(fù)雜。⑵軟件開發(fā)管理困難而復(fù)雜。

(3)軟件包開發(fā)費(fèi)用不斷增加。⑷軟件開發(fā)技術(shù)落后。⑸生產(chǎn)方式落

后,仍采用手工方式。⑹開發(fā)工具落后,生產(chǎn)率提高緩慢。

4、什么是軟件工程?它目標(biāo)和內(nèi)容是什么?

答:軟件工程就是用科學(xué)的知識程和技術(shù)原理來定義,開發(fā),維護(hù)

軟件的一門學(xué)科。軟件工程目標(biāo):付出較低開發(fā)成本;達(dá)到要求的

功能;取得較好的性能;開發(fā)的軟件易于移植;只需較低的維護(hù)費(fèi)

用;能按時(shí)完成開發(fā)任務(wù),及時(shí)交付使用;開發(fā)的軟件可靠性高。

軟件工程內(nèi)容:研究內(nèi)容包括開發(fā)技術(shù)和開發(fā)管理兩個(gè)方面。開發(fā)

技術(shù)主要研究:軟件開發(fā)方法,開發(fā)過程,開發(fā)工具和環(huán)境。開發(fā)

管理主要研究:軟件管理學(xué),軟件經(jīng)濟(jì)學(xué),軟件心理學(xué)。

5、軟件工程面臨的問題是什么?

答:軟件工程需要解決的問題:軟件的費(fèi)用,可靠性,可維護(hù)性,

軟件生產(chǎn)率和軟件的重用。

6、什么是軟件生存周期?它有哪幾個(gè)活動(dòng)?

答:軟件生存周期:一個(gè)軟件從提出開發(fā)要求開始直到該軟件報(bào)廢

為止的整個(gè)時(shí)期。包括:可行性分析和項(xiàng)目開發(fā)計(jì)劃,需求分析,

概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,測試,維護(hù)。7、什么是軟件生存周期

模型?有哪些主要模型?

答:生存周期模型:描述軟件開發(fā)過程中各種活動(dòng)如何執(zhí)行的模型。

對軟件開發(fā)提供強(qiáng)有力的支持,為開發(fā)過程中的活動(dòng)提供統(tǒng)一的政

策保證,為參與開發(fā)的人員提供幫助和指導(dǎo),是軟件生存周期模型

化技術(shù)的基礎(chǔ),也是建立軟件開發(fā)環(huán)境的核心。主要有:瀑布模型,

增量模型,螺旋模型,噴泉模型,基于知識的模型,變換模型。

8、什么是軟件開發(fā)方法?有哪些主要方法?

答:使用早已定義好的技術(shù)集及符號表示習(xí)慣來組織軟件生產(chǎn)的過

程。通過使用成功的軟件開發(fā)方法,在規(guī)定的投資和時(shí)間內(nèi),開發(fā)

出符合用戶需求的高質(zhì)量的軟件。軟件開發(fā)方法是克服軟件危機(jī)的

重要方面之一,對軟件工程及軟件包產(chǎn)業(yè)的發(fā)展起了不可估量的作

用。

主要有:結(jié)構(gòu)化方法,jackson方法,維也納開發(fā)方法(vdm),

面向?qū)ο箝_發(fā)方法。第二章習(xí)題參考答案

1.可行性研究的任務(wù)是什么?

答:可行研究的任務(wù):首先需要進(jìn)行概要的分析研究,初步確定項(xiàng)

目的規(guī)模,目標(biāo),約束和限制。分析員再進(jìn)行簡要的需求分析,抽

象出項(xiàng)目的邏輯結(jié)構(gòu),建立邏輯模型。從邏輯模型出發(fā),經(jīng)過壓縮

的設(shè)計(jì),探索出若干種可供選擇的解決方法,對每種解決方法都要

研究它的可行性。

主要從三個(gè)方面考慮:⑴技術(shù)可行性:一般要考慮的情況包括開發(fā)

的風(fēng)險(xiǎn)即設(shè)計(jì)出的系統(tǒng)能否達(dá)到要求的功能和性能;資源的有效性;

相關(guān)技術(shù)的發(fā)展是否支持;⑵經(jīng)濟(jì)可行性:進(jìn)行開發(fā)成本的估算以

及了解取得效益的評估,確定要開發(fā)的項(xiàng)目是否值得投資。③社會(huì)可

行性:要開發(fā)的項(xiàng)目是否存在任何侵權(quán)問題,運(yùn)行方式在用戶組織內(nèi)

是否可行,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。2.可行

性研究有哪些步驟?

答:⑴確定項(xiàng)目規(guī)模和目標(biāo);⑵研究正在運(yùn)行的系統(tǒng);收集、研究

、分析現(xiàn)有系統(tǒng)的文檔資料,實(shí)地考察系統(tǒng)訪問有關(guān)人員,然后描

繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖。⑶建立新系統(tǒng)的高層邏輯模型;使

用數(shù)據(jù)流圖和數(shù)據(jù)字典描述數(shù)據(jù)在系統(tǒng)中的流動(dòng)和處理情況。⑷導(dǎo)

出和評價(jià)各種方案;導(dǎo)出若干較高層次的物理解決方法,根據(jù)技術(shù)

可行性、經(jīng)濟(jì)可行性、社會(huì)可行性進(jìn)行評估,得到可行的解決方法。

(5)推薦可行方案;進(jìn)行成本?效益分析,決定該項(xiàng)目是否值得開發(fā),

若值得開發(fā)那么解決方案是什么,并且說明該方案可行的原因和理

由。⑹編寫可行性研究報(bào)告;將上述可行性過程的結(jié)果寫成相應(yīng)文

檔,即可行性研究報(bào)告。

3.可行性研究報(bào)告有哪些主要內(nèi)容?

答:(工)引言:編寫本文檔的目的;項(xiàng)目名稱、背景;本文檔用到的

專門術(shù)語和參考資料。⑵可行性研究前提:說明開發(fā)項(xiàng)目的功能、

性能和基本要求;達(dá)到的目標(biāo);各種限制條件;可行性研究方法和

決定可行性的主要因素。⑶對現(xiàn)有系統(tǒng)的分析:說明現(xiàn)有系統(tǒng)的處

理流程和數(shù)據(jù)流程;工作負(fù)荷;各項(xiàng)費(fèi)用支出;所需各類專業(yè)技術(shù)

人吧和數(shù)量;所需各種設(shè)備;向有系統(tǒng)存在什么問題。⑷所建議的

技術(shù)可行性分析:所建議系統(tǒng)的簡要說明;處理流程和數(shù)據(jù)流程;

與現(xiàn)有系統(tǒng)比較的優(yōu)越性;采用所建議系統(tǒng)對用戶的影響;對各種

設(shè)備、現(xiàn)有軟件、開發(fā)環(huán)境、運(yùn)行環(huán)境的影響;對經(jīng)費(fèi)支出的影響;

對技術(shù)可行性的評價(jià)。⑸所建議系統(tǒng)的經(jīng)濟(jì)可行性分析:說明建議

系統(tǒng)的確良各種支出,各種效益;收益投資比;投資順收周期。⑹

社會(huì)因素可行性分析:說明法律因素,對合同責(zé)任、侵犯專利權(quán)、

侵犯版權(quán)等問題的分析;說明用戶使用可行性,是否滿足用戶行政

管理、工作制度、人吧素質(zhì)的要求。⑺其它可供選擇方案:逐一說

明其他可供選擇的方案,并說明未被推薦的理由。⑻結(jié)論意見:說

明項(xiàng)目是否能開發(fā);還需什么條件才能開發(fā);對項(xiàng)目目標(biāo)有何變動(dòng)

等。

4.成本“效益分析可用哪些指標(biāo)進(jìn)行度量?

答:⑴投資回收率:通常把建立系統(tǒng)若干年后能取得的收益折算成

現(xiàn)在的價(jià)值和開發(fā)系統(tǒng)所需的費(fèi)用進(jìn)行比較得出投資回收率。⑵投

資回收期:就是使累計(jì)的經(jīng)濟(jì)效益等于最初的投資費(fèi)用所需的時(shí)間。

⑶純收入:整個(gè)生存周期之內(nèi)的累計(jì)經(jīng)濟(jì)效益(折成現(xiàn)在值)與投

資之差。5.項(xiàng)目開發(fā)計(jì)劃有哪些內(nèi)容?

答:⑴項(xiàng)目概述:說明項(xiàng)目的各項(xiàng)主要工作;說明軟件的功能、性

能;為完成項(xiàng)目應(yīng)具有的條件;用戶及合同承包者承擔(dān)的工作完成

的期限及其他條件限制;應(yīng)交付的程序名稱;所使用的語言及程儲(chǔ)

形式;應(yīng)交付的文檔。⑵實(shí)施計(jì)劃:說明任務(wù)的劃分,各任務(wù)責(zé)任

人,項(xiàng)目開發(fā)進(jìn)度,項(xiàng)目的預(yù)算,各階段的費(fèi)用支出,各階段應(yīng)完

成的任務(wù),用圖表說明每項(xiàng)任務(wù)的開始和完成時(shí)間。⑶人員組織及

分工:所需人員類型、數(shù)量、組成結(jié)構(gòu)。⑷交付期限:最后完工日

期。

第三章習(xí)題參考答案

L不么是需求分析?需求分析階段的基本任務(wù)是什么?

答:需求分析:開發(fā)人員準(zhǔn)確地理解用戶的要求,進(jìn)行細(xì)致的調(diào)查

分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求

定義轉(zhuǎn)換到相應(yīng)的需求規(guī)格說明的過程。

基本任務(wù):⑴問題識別:雙方確定對問題的綜合需求,這些需求包

括功能需求,性能需求,環(huán)境需求,用戶界面需求。⑵分析與綜合,

導(dǎo)出軟件的邏輯模型③編寫文檔:包括編寫需求規(guī)格說明書,初步用

戶使用手冊,確認(rèn)測試計(jì)劃,修改完善軟件開發(fā)計(jì)劃

2.什么是結(jié)構(gòu)分析方法?該方法使用什么描述工具?

答:結(jié)構(gòu)化分析:簡稱sa,面向數(shù)據(jù)流進(jìn)行數(shù)據(jù)分析的方法。采用

自頂向下逐層分解的分析策略。頂層抽象地描述整個(gè)系統(tǒng),底層具

體地畫出系統(tǒng)工程的每個(gè)細(xì)節(jié)。中間層則是從抽象到具體的過渡。

使用數(shù)據(jù)流圖,數(shù)據(jù)字典,作為描述工具,使用結(jié)構(gòu)化語言,判定

表,判定樹描述加工邏輯。3.結(jié)構(gòu)化分析方法通過哪些步驟來實(shí)現(xiàn)?

答:⑴了解當(dāng)前系統(tǒng)的工作流程,獲得當(dāng)前系統(tǒng)的物理模型。⑶抽

象出當(dāng)前系統(tǒng)的邏輯模型。⑶建立目標(biāo)系統(tǒng)的邏輯模型。⑷作進(jìn)一

步補(bǔ)充和優(yōu)化。

5.畫數(shù)據(jù)流圖應(yīng)注意什么事項(xiàng)?

答:命名:不能使用缺乏具體含義的名字,加工名應(yīng)能反映出處理

的功能。1.畫數(shù)據(jù)流而不是控制流。數(shù)據(jù)流名稱只能是名詞或名詞

短語,整個(gè)圖中不反映加工的執(zhí)行順序。

一般不畫物質(zhì)流。2,每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)

據(jù)流,反映出此加工數(shù)據(jù)的來源與加工的結(jié)果。

編號:某個(gè)加工分解成加一張數(shù)據(jù)流圖時(shí),上層圖為父圖,下

層圖為子圖。子圖應(yīng)編號子圖上的所有加工也應(yīng)編號,子圖的編號

應(yīng)與父圖的編號相對應(yīng)。3,父圖與子圖的平衡:子圖的輸入輸出數(shù)

據(jù)流同父圖相應(yīng)加工的輸入輸出數(shù)據(jù)流必須一致⑵抽象:認(rèn)識復(fù)雜

現(xiàn)象過程所使用權(quán)的工具,只考慮事物本質(zhì)的共同特性,忽略細(xì)節(jié)

和其它因素。通過抽象確定組成軟件的過程實(shí)體。⑶信息隱蔽:將

模塊實(shí)現(xiàn)自身功能的細(xì)節(jié)與數(shù)據(jù)局部數(shù)據(jù)存儲(chǔ):當(dāng)某慨?dāng)?shù)據(jù)流圖中

的數(shù)據(jù)存儲(chǔ)不是父圖中相應(yīng)加工的外部接口,而只是本圖中某些加

工之間的數(shù)據(jù)接口,則稱這些數(shù)據(jù)存儲(chǔ)為局部數(shù)據(jù)存儲(chǔ)。注意數(shù)據(jù)

流圖的易理解性。

6.什么是數(shù)據(jù)字典?其作用是什么?共有哪些條目?

答:數(shù)據(jù)字典(dd)用來定義數(shù)據(jù)庫流圖中的各個(gè)成分的具體含義。

有以下四類條目:數(shù)據(jù)流,數(shù)據(jù)項(xiàng),數(shù)據(jù)存儲(chǔ),基本加工。

7.描述加工邏輯有哪些工具?

答:加工邏輯的描述:一般用結(jié)構(gòu)化語言,判定表,判定樹結(jié)構(gòu)化

語言是介于自然語言和形式語言之間的一種半形式化語言。它的結(jié)

構(gòu)可分里層和內(nèi)層

⑴外層:用來描述控制結(jié)構(gòu),采用順序,選擇,重復(fù)三種基本結(jié)構(gòu)。

順序結(jié)構(gòu):是一組祈使語句,選擇語句,重復(fù)語句的順序排列②選

擇結(jié)構(gòu):——般用if?then-elase-endif,case?of?endcase等關(guān)鍵詞。

③重復(fù)結(jié)構(gòu):一般用do?while?enddo,repeat?until等關(guān)鍵詞。(2)

內(nèi)層:一般采用祈使語句的自然語言短語,使用數(shù)據(jù)字典中的名詞

和有限的自定義詞,其動(dòng)詞含義要具體,盡量不使用形容詞和副詞

來修飾O

包奈:idefO描述系統(tǒng)的功能活動(dòng)及聯(lián)系,建立系統(tǒng)的功能模型。

即反映系統(tǒng)做什么折功能。idefl描述系統(tǒng)的信息及聯(lián)系,建立系統(tǒng)

的信息模型。idef2進(jìn)行系統(tǒng)模擬,建立系統(tǒng)的動(dòng)態(tài)模型。idefO特

4采用方框和箭頭等簡單圖形符號描述系統(tǒng)的活動(dòng)和數(shù)據(jù)流,描述

活動(dòng)所受的約束條件及實(shí)現(xiàn)機(jī)制。

如下圖描述,其中輸入為完成某活動(dòng)時(shí)所需的數(shù)據(jù),輸出指執(zhí)行活

動(dòng)產(chǎn)生時(shí)的數(shù)據(jù),控制活動(dòng)指所受到的約束條件,機(jī)制是指活動(dòng)由

誰來完成。⑵采用嚴(yán)格的自頂向下、逐層分解的方式建立系統(tǒng)功能

模型。

9.簡述sa方法的優(yōu)缺點(diǎn)。答:sa方法是軟件需求分析中公認(rèn)的,

有成效的,技術(shù)成熟,使用廣泛的一種結(jié)構(gòu)化分析方法。較適用于

開發(fā)數(shù)據(jù)處理類型軟件的需求分析。利用圖形等半形式化工具表達(dá)

需求,簡明,易讀,也易于使用。但也存在一些弱點(diǎn),表現(xiàn)如下:

⑴sa方法僅是一個(gè)靜態(tài)模型,沒有反映處理的順序,即控制流程。

(2)sa方法使用dfd在分析與描述數(shù)據(jù)要求方面是有局限的,只有與

數(shù)據(jù)庫技術(shù)中的實(shí)體聯(lián)系圖(er圖)結(jié)合起來,才能較完整地描述

用戶對系統(tǒng)的需求。(3)dfd不適合描述人機(jī)界面系統(tǒng)的要求,一些人

機(jī)交互較頻繁的軟件系統(tǒng)。⑷sa方法要與形式化方法結(jié)合起來,才

能更精確地描述軟件需求。⑸要借助需求分析工具,提高需求分析

的質(zhì)量及效率。

第四章習(xí)題參考答案

1、什么是軟件概要設(shè)計(jì)?該階段的基本任務(wù)是什么?

答:把一個(gè)軟件需求轉(zhuǎn)換為軟件表示時(shí),首先設(shè)計(jì)出軟件總的體系

結(jié)構(gòu)。稱為概要設(shè)計(jì)或結(jié)構(gòu)設(shè)計(jì)。基本任務(wù):(1)設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu),

具體為:1.采用某種設(shè)計(jì)方法,將一個(gè)復(fù)雜的系統(tǒng)按功能劃分為模塊。

2.確定每個(gè)模塊的功能。3.確定模塊之間的調(diào)用關(guān)系。4.確定模塊之

間的接口(模塊之間傳遞的信息)評價(jià)模塊的結(jié)構(gòu)質(zhì)量⑶進(jìn)行數(shù)據(jù)

結(jié)構(gòu)及數(shù)據(jù)庫的設(shè)計(jì)⑶編寫概要設(shè)計(jì)的文檔主要內(nèi)容有:概要設(shè)計(jì)

說明書,數(shù)據(jù)庫說明書(dbms的簡介,概念模型,邏輯設(shè)計(jì),結(jié)果)

用戶手冊,修訂測試計(jì)劃(測試的策略、方法、步驟)⑷評審:是

否完整地實(shí)現(xiàn)了規(guī)定的功能、性能要求。設(shè)計(jì)方案是否可行。關(guān)鍵

的處理及內(nèi)部接口定義的正確性,有效性,各部分的一致性。2、軟

件設(shè)計(jì)的基本原理包括哪些內(nèi)容?

答:(1)模塊化:模塊是軟件的組成部分,是具有獨(dú)立功能且可命名

的一段程序,所有模塊組成整體,可以滿足問題的要求。模塊化即

按照一定的原則,將軟件劃分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)特

定的功能,然后把這些模塊按照某種方法組裝成一個(gè)軟件系統(tǒng)。

(可降低復(fù)雜度、減少工作量)

模塊具有以下幾種特性:接口:模塊的輸入輸出。功能:指模塊實(shí)

現(xiàn)什么功能。邏輯:描述模塊內(nèi)部如何實(shí)現(xiàn)要求及所需的數(shù)據(jù)。狀

態(tài):該模塊的運(yùn)行環(huán)境,模塊間調(diào)用與被調(diào)用關(guān)系。

隱蔽起來。模塊間僅交換為完成系統(tǒng)功能所必須的信息。⑷模塊獨(dú)

立性:每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能。3、衡量模塊獨(dú)立

性的兩個(gè)標(biāo)準(zhǔn)是什么?各表示什么含義?答:內(nèi)聚:又稱為塊內(nèi)聯(lián)

系,指模塊內(nèi)部各成分之間相互關(guān)聯(lián)的程度,以高內(nèi)聚為設(shè)計(jì)目標(biāo)。

耦合:也稱塊間聯(lián)系,模塊之間相互聯(lián)系程度的度量,聯(lián)系越緊密,

耦合性越強(qiáng),獨(dú)立性越差,以低耦合為設(shè)計(jì)目標(biāo)。

4、模塊的耦合性有哪幾種?各表示什么含義?

答:⑴內(nèi)容耦合:一個(gè)模塊直接操作或修改另一模塊的數(shù)據(jù),或者

不通過正常入口直接轉(zhuǎn)入另一模塊⑶公共耦合:兩個(gè)或多個(gè)模塊通

過共同引用一個(gè)全局?jǐn)?shù)據(jù)環(huán)境相互作用⑶控制耦合:模塊之間通過

傳遞控制信息相互作用⑷標(biāo)記耦合:兩個(gè)模塊之間通過傳遞公共指

針或地址相互作用的耦合⑸數(shù)據(jù)耦合:模塊之間通過傳遞數(shù)據(jù)交換

信息⑹無耦合:模塊間無任何關(guān)系,獨(dú)立工作

5、模塊的內(nèi)聚性有哪幾種?各表示什么含義?答:⑴偶然內(nèi)聚:一

個(gè)模塊各個(gè)成分之間毫無關(guān)系⑵邏輯內(nèi)聚:將幾個(gè)邏輯上相關(guān)的功

能放在同一個(gè)模塊中(3)時(shí)間內(nèi)聚:一個(gè)模塊完成的功能在同一時(shí)間

執(zhí)行(4)過程內(nèi)聚:一個(gè)模塊內(nèi)部的處理成分是相關(guān)的,而且必須以

特定的次序執(zhí)行⑸通信內(nèi)聚:一個(gè)模塊的所有成分都集中在同一個(gè)

數(shù)據(jù)結(jié)構(gòu)上⑹順序內(nèi)聚:一個(gè)模塊的各個(gè)成分同一個(gè)功能密切相關(guān),

而且一個(gè)成分的輸出,作為另外一個(gè)成分的輸入⑺功能內(nèi)聚:模塊

內(nèi)的所有成分屬于一個(gè)整體,完成單一的功能。(內(nèi)聚最高)

6、什么是軟件結(jié)構(gòu)?簡述軟件結(jié)構(gòu)設(shè)計(jì)的優(yōu)化準(zhǔn)則。

答:⑴改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性首先設(shè)計(jì)出軟件初始結(jié)構(gòu),

評價(jià)該結(jié)構(gòu),通過模塊分解或合并,力求降低耦合提高內(nèi)聚。⑵模

塊的規(guī)模應(yīng)該適中(3)模塊結(jié)構(gòu)的深度、寬度、扇出和扇入應(yīng)適中。

深度:軟件結(jié)構(gòu)中控制的層數(shù)寬度:軟件結(jié)構(gòu)中同一層次上最大模

塊總數(shù)扇入:某一模塊有多少直接調(diào)用它的上級模塊數(shù)目(越大越

好)扇出:一個(gè)模塊直接控制(調(diào)用)下級模塊的數(shù)目。(越少越

好,3,4個(gè)為宜,不超過9個(gè),頂層扇出較高,中間扇出較少,底

層模塊高扇入多⑷一個(gè)模塊的作用域(范圍),應(yīng)處在這個(gè)模塊的

控制域(范圍)之內(nèi)模塊的作用域:受該模塊內(nèi)一個(gè)判定影響的所

有模塊的集合模塊的控制域:這個(gè)模塊本身以及所有直接或間接從

屬于它的模塊的集合一個(gè)模塊的影響范圍(作用域),應(yīng)處在這個(gè)

模塊的模塊的控制范圍(控制域)內(nèi)。

8、什么樣是事物流?什么是變換流?試將相應(yīng)形式的數(shù)據(jù)流圖轉(zhuǎn)換

為軟件結(jié)構(gòu)圖

答:數(shù)據(jù)流圖(dfd)一般可分為變換流,事物流兩種。變換流:由

輸入、輸出、變換(或稱處理)三部分組成,是一順序結(jié)構(gòu)。事物

流:它的某個(gè)加工,分離成許多發(fā)散的數(shù)據(jù)流,形成許多加工路徑,

并且根據(jù)輸入值選擇其中一個(gè)路徑來執(zhí)行。(這人加工稱為事務(wù)處

理中心)

9.試述變換分析、事務(wù)分析設(shè)計(jì)步驟。

答:變換分析設(shè)計(jì)步驟:⑴確定變換中心,邏輯輸入和輸出。⑵設(shè)

計(jì)軟件結(jié)構(gòu)的頂層和第一層“變換結(jié)構(gòu):頂層的功能是完成所有模塊

的控制(名稱應(yīng)是系統(tǒng)名,以體現(xiàn)完成整個(gè)系統(tǒng)功能)第一層至少

有三種功能模塊:輸入、輸出和變換模塊(3)設(shè)計(jì)中、下層模塊,對

第一層的模塊自頂向下分解。輸入模塊由兩部分組成:接收數(shù)據(jù)、

轉(zhuǎn)換成調(diào)用模塊所需信息。輸出模塊由兩部分組成:將數(shù)據(jù)轉(zhuǎn)換成

下屬模塊所需的形式、發(fā)送數(shù)據(jù)變換模塊:對每個(gè)基本加工建立一

功能模塊、⑷設(shè)計(jì)的優(yōu)化:輸入部分求精,每個(gè)物理輸入設(shè)置專門

模塊,以體現(xiàn)系統(tǒng)的外部接口。其它輸入模塊與轉(zhuǎn)換數(shù)據(jù)模塊都很

簡單時(shí),可將它們合并。輸出部分求精:每個(gè)物理輸出設(shè)置專門模

塊,其它也可適當(dāng)合并。變換部分求精:根據(jù)設(shè)計(jì)準(zhǔn)則,對模塊適

當(dāng)合并。事務(wù)分析的設(shè)計(jì)步驟:(1)確定事務(wù)中心和加工路徑⑵設(shè)計(jì)

頂層(事務(wù)機(jī)構(gòu))和第一層頂層模塊有兩個(gè)功能:接收數(shù)據(jù)和根據(jù)

事務(wù)類型調(diào)動(dòng)相應(yīng)處理模塊。③中下層模塊的設(shè)計(jì)、優(yōu)化工作與變

換結(jié)構(gòu)相同。事務(wù)型軟件結(jié)構(gòu)包括兩部分:接收分支發(fā)送分支出通

常包括一調(diào)度模塊,當(dāng)事務(wù)類型不多時(shí),可與主模塊合并。

第五章習(xí)題參考答案

1、詳細(xì)設(shè)計(jì)的基本任務(wù)是什么,有哪幾種描述方法?答:詳細(xì)設(shè)計(jì)

的基本任務(wù)包括:(1)為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)(2)為模

塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)(3)對數(shù)據(jù)庫進(jìn)行物理設(shè)計(jì)(4)其他設(shè)

計(jì)(5)編寫詳細(xì)設(shè)計(jì)說明書(6)評審詳細(xì)設(shè)計(jì)的描述

方法有圖形、表格和語言,其中圖形常用結(jié)構(gòu)化程序流程圖、盒圖

和pad(問題分析圖)為描述工具,語言常用過程設(shè)計(jì)語言(pdl)來作為

工具。

2、結(jié)構(gòu)化程序設(shè)計(jì)的基本要點(diǎn)是什么?答:主要有三個(gè):(1)采用

自頂向下、逐步求精的程序設(shè)計(jì)方法(2)使用三種基本控制結(jié)構(gòu)構(gòu)

造程序。任何程序都可以由順序、選擇、重復(fù)(循環(huán))三種基本控制結(jié)

構(gòu)構(gòu)造,這三種基本結(jié)構(gòu)的共同點(diǎn)是單入口、單出口。(3)主程序

員組的組織形式。

3、簡述jackson方法的設(shè)計(jì)步驟。答:jackson方法的設(shè)計(jì)步驟

如下:1,分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用jackson

結(jié)構(gòu)圖表示這些數(shù)據(jù)結(jié)構(gòu)。(2)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中

有對應(yīng)關(guān)系的數(shù)據(jù)單兀。3.按一定的規(guī)則由輸入、輸出的數(shù)據(jù)結(jié)構(gòu)導(dǎo)

出程序結(jié)構(gòu)。4,列出基本操作與條件,并把它們分配到程序結(jié)構(gòu)圖

的適當(dāng)位置。(5)用偽碼寫出程序。比較?

答:白盒法測試法把測試對象看作一個(gè)打開的盒子,測試人員須了

解程序內(nèi)部結(jié)構(gòu)和處理過程,以檢查處理過程的細(xì)節(jié)為基礎(chǔ),對程

序中盡可能多的邏輯路徑進(jìn)行測試,檢驗(yàn)內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)

是否有錯(cuò),實(shí)際的運(yùn)行狀態(tài)與預(yù)期的狀態(tài)是否一致。

白盒法有下列幾種覆蓋標(biāo)準(zhǔn):語句覆蓋、判定覆蓋、條件覆蓋、判

定/條件覆蓋、條件組合覆蓋、路徑覆蓋

從上到下的覆蓋標(biāo)準(zhǔn)其檢錯(cuò)能力也從弱到強(qiáng),其中條件組合發(fā)現(xiàn)錯(cuò)

誤的能力較強(qiáng),凡滿足其標(biāo)準(zhǔn)的測試用例,也必然滿足前四種覆蓋

標(biāo)準(zhǔn)。在實(shí)際的邏輯測試中,一般以條件組合覆蓋為主設(shè)計(jì)測試用

例,然后再補(bǔ)充部分用例來達(dá)到路徑覆蓋的測試標(biāo)準(zhǔn)。

什么是黑盒測試法?采用黑盒技術(shù)測試用例有哪幾種方法?這些第六

章習(xí)題參考答案

程序語言有哪些共同特征?

答:程序語言的共同特征(似為特性更符合題意)是指程序設(shè)計(jì)語言的

語言特性,包括心理特性、工程特性和技術(shù)特性三個(gè)方面。語言的

心理特性對人機(jī)通信的質(zhì)量有主要的影響;語言的工程特性對軟件

開發(fā)成功一否有重要的影響,此外,語言的技術(shù)特性也會(huì)影響軟件

設(shè)計(jì)的質(zhì)量。

在項(xiàng)目開發(fā)時(shí)選擇程序設(shè)計(jì)語言通??紤]哪些因素?

答:通常要考慮的因素有:項(xiàng)目的應(yīng)用領(lǐng)域、軟件開發(fā)的方法、軟

件執(zhí)行的環(huán)境、算法和數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性以及軟件開發(fā)人員的知識

等。

第4代語言(4gl)有哪些主要特征?答:4gl的主要特征是:1.友好的

用戶界面2.兼有過程性和非過程性雙重特性3.高效的程序代碼4.完

備的數(shù)據(jù)庫(5)應(yīng)用程序生成器舉例說明各種程序設(shè)計(jì)語言的特點(diǎn)

及適用范圍?

答:以常見的一些編程語言為例:fortran語言,它不僅面向科學(xué)計(jì)

算,數(shù)據(jù)處理能力也極強(qiáng)。適用于科學(xué)工程計(jì)算;pascal語言,具

有很強(qiáng)的數(shù)據(jù)和過程結(jié)構(gòu)化能力,它語言簡明,數(shù)據(jù)類型豐富,程

序結(jié)構(gòu)嚴(yán)謹(jǐn)。它是第一個(gè)體現(xiàn)結(jié)構(gòu)化編程思想的語言。用于描述結(jié)

構(gòu)化算法和科學(xué)計(jì)算,操作系統(tǒng)的編寫;c語言:功能強(qiáng)大,支持復(fù)

雜的數(shù)據(jù)結(jié)構(gòu),可大量運(yùn)用指針,具有豐富靈活的操作運(yùn)算符及數(shù)

據(jù)處理操作符,它還具有匯編語言的某些特征,使程序運(yùn)行效率高。

可用于許多領(lǐng)域,特別是在操作系統(tǒng)等方面有較大優(yōu)勢。coble語

言,它具有極強(qiáng)的數(shù)據(jù)定義能力,程序說明與硬件環(huán)境說明分開、

數(shù)據(jù)描述與算法描述分開。結(jié)構(gòu)嚴(yán)謹(jǐn)層次分明,廣泛用于商業(yè)數(shù)據(jù)

處理。sql:結(jié)構(gòu)化查詢語言,用于對數(shù)據(jù)庫進(jìn)行存取管理。

匯編語言和ada語言,主要用于實(shí)時(shí)處理和編寫系統(tǒng)軟件。prolog,

lisp語言。lisp是一種函數(shù)型語言,特別適用于組合問題中符號運(yùn)算

和表處理,用于定理證明、樹的搜索和其他問題的求解。prolog是

一種邏輯型語言,它提供了支持知識表示的特性,每一個(gè)程序由一

組表示事實(shí)、規(guī)則和推理的句子組成,比較接近與自然語言。這兩

種語言主要用于人工智能系統(tǒng)開發(fā)。C++、java語言,是面向?qū)ο蟮?/p>

設(shè)計(jì)語言,用于面向?qū)ο蟮姆介_發(fā)軟件。

什么是程序設(shè)計(jì)風(fēng)格?為了具有良好的設(shè)計(jì)風(fēng)格,應(yīng)注意哪些方面的

問題?

答:.程序設(shè)計(jì)風(fēng)格是指一個(gè)人編制程序時(shí)所表現(xiàn)出來的特點(diǎn)、習(xí)慣、

邏輯思路等。

要形成良好的程序設(shè)計(jì)風(fēng)格,應(yīng)從源程序文檔化、數(shù)據(jù)說明、語句

構(gòu)造、輸入輸出和追求效率幾個(gè)方面加以注意。第七章習(xí)題參考答

軟件測試的目的是什么?軟件測試中,應(yīng)注意哪些原則?

答:軟件測試的目的是為了發(fā)現(xiàn)軟件的錯(cuò)誤。軟件測試中應(yīng)注意的

原則有:

測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的輸出數(shù)據(jù)兩部分組成。這樣便于對

照檢查,做到有的放矢。測試且例不僅選用合理輸入數(shù)據(jù),還要選

擇不合理的輸入數(shù)據(jù)。這樣能更多地發(fā)現(xiàn)錯(cuò)誤,提高程序的可靠性。

對于不合理的輸入數(shù)據(jù),程序應(yīng)拒絕接受,并給出相應(yīng)的提示。

除了檢查程序是否做了它應(yīng)該做的事,還應(yīng)該檢查程序是否做了它

不應(yīng)該做的事。

應(yīng)制定測試計(jì)劃并嚴(yán)格執(zhí)行,排除隨意性。長期保留測試用例。

對發(fā)現(xiàn)錯(cuò)誤較多的程序段,應(yīng)進(jìn)行更深入的測試。(7)程序員應(yīng)避

免測試自己的程序。測試是一種挑剔性的行為,心理狀態(tài)是測試自

己程序的障礙。

什么是白盒測試法?有哪些覆蓋標(biāo)準(zhǔn)?試對他們的檢錯(cuò)能力進(jìn)行

方法各有什么特點(diǎn)?

答:黑盒測試法把被測試對象看成是一相黑盒子,測試人員完全不

考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只在軟件接口處進(jìn)行測試,依據(jù)

需求規(guī)格說明書,檢查程序是否滿足功能要求。

采用黑盒技術(shù)測試用例的方法有:等價(jià)類的劃分、邊界值分析、錯(cuò)

誤推測和因果圖。

軟件測試要經(jīng)過哪些步驟?這些測試與軟件開發(fā)各階段之間有什么關(guān)

系?

答:軟件測試要經(jīng)過的步驟是:單元測試一集成測試一確認(rèn)測試一

系統(tǒng)測試。

單元測試對源程序中每一個(gè)程序單元進(jìn)行測試,檢查各個(gè)模塊是否

正確實(shí)現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯(cuò)誤。該

階段涉及編碼和詳細(xì)設(shè)計(jì)文檔。

集成測試是為了檢查與設(shè)計(jì)相關(guān)的軟件體系結(jié)構(gòu)的有關(guān)問題,也就

是檢查概要設(shè)計(jì)是否合理有效。

確認(rèn)測試主要是檢查已實(shí)現(xiàn)的軟件是否滿足需求規(guī)格說明書中確定

了的各種需求。

系統(tǒng)測試是把已確認(rèn)的軟件與其他系統(tǒng)元素(如硬件、其他支持軟件、

數(shù)據(jù)、人工等)結(jié)合在一起進(jìn)行測試。以確定軟件是否可以支付使用。

單元測試有哪些內(nèi)容?測試中采用什么方法?答:單元測試主要針對

模塊的以下五個(gè)基本特征進(jìn)行測試:1.模塊接口2.局部數(shù)據(jù)結(jié)構(gòu)3.

重要的執(zhí)行路徑4.錯(cuò)誤處理5.邊界條件6.測試的方法是為被測試模

塊編寫驅(qū)動(dòng)模塊和樁模塊來實(shí)現(xiàn)被測試單元的可運(yùn)行。通過驅(qū)動(dòng)模

塊來模擬被測試模塊的上級調(diào)用模塊,以上級模塊調(diào)用被測模塊的

格式驅(qū)動(dòng)被測模塊,接收被測模塊的測試結(jié)構(gòu)并輸出。樁模塊則用

來代替被測試模塊所調(diào)用的模塊。它的作用是返回被測模塊所需的

信息。

才么是集成測試?非漸增式測試與漸增式測試有什么區(qū)別?漸增式測

試如何組裝模塊?

答:集成測試是指在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求

組裝成一個(gè)完整的系統(tǒng)進(jìn)行的測試。

非漸增式測試是指首先對每個(gè)模塊分別進(jìn)行單元測試,再把所有模

塊組裝成一個(gè)完整的系統(tǒng)進(jìn)行的測試。而漸增式測試就是逐個(gè)把未

經(jīng)測試的模塊組裝到已經(jīng)過測試的模塊上去進(jìn)行集成測試,每加入

一個(gè)新模塊進(jìn)行一次集成測試,重復(fù)此過程直到程序組裝完畢。漸

增式測試有兩種不同的組裝方法:自頂向下和自底向上結(jié)合。兩者

區(qū)別是:(1)非漸增式方法把單兀測試和集成測試分成兩個(gè)不同的

階段,前一階段完成模塊的單元測試,后一階段完成集成測試。而

漸增式測試往往把單元測試和集成測試合在一起,同時(shí)完成。(2)

非漸增式需要更多的工作量,因?yàn)槊總€(gè)模塊都需要驅(qū)動(dòng)模塊和樁模

塊,而漸增式利用已測試過的模塊作為驅(qū)動(dòng)模塊或樁模塊,因此工

作量少。漸增式可以較早地發(fā)現(xiàn)接口之間的錯(cuò)誤,非漸增式最后組

裝時(shí)才發(fā)現(xiàn)。(3)漸增式有利于排錯(cuò),發(fā)生錯(cuò)誤往往和最近新加入的

模塊有關(guān),而非漸增式發(fā)現(xiàn)接口錯(cuò)誤推遲到最后,很難判斷是哪一

部分接口出錯(cuò)。(4)漸增式比較徹底,已測試的模塊和新的模塊再測

試。(5)漸增式點(diǎn)用時(shí)間較多,但非漸增式所需更多的驅(qū)動(dòng)模塊和樁

模塊也占用一些時(shí)間。(6)非漸增式開始可并行測試所有模塊,能充

分利用人力,對測試大型軟件很有意義。什么是確認(rèn)測試?該階段有

哪些工作?

答:確認(rèn)測試又稱有效性測試。它的任務(wù)是檢查軟件的功能與性能

是否與需求規(guī)格說明書中確定的指標(biāo)相符合。因而需求說明是確認(rèn)

測試的基礎(chǔ)。確認(rèn)測試階段有兩項(xiàng)工作:進(jìn)行確認(rèn)測試與軟件配置

審查。

調(diào)試的目的是什么?調(diào)試有哪些技術(shù)手段?

答:調(diào)試則是在進(jìn)行了成功的測試之后才開始的工作。調(diào)試的目的

是確定錯(cuò)誤的原因和位置,并改正錯(cuò)誤,因此調(diào)試也稱為

糾錯(cuò)(debug)。調(diào)試的技術(shù)手段有簡單的調(diào)試方法、歸納法、演繹法

和回溯法等。第八章習(xí)題參考答案軟件維護(hù)有哪些內(nèi)容?答:(1)

校正性維護(hù)。在軟件交付使用后,一些隱含的錯(cuò)誤在某些特定的使

用環(huán)境下會(huì)暴露出來。為了識別和糾正錯(cuò)誤,修改軟件性能上的缺

陷,應(yīng)進(jìn)行確定和修改錯(cuò)誤的過程,這個(gè)過程就稱為校正性維護(hù)。

(2)適應(yīng)性維護(hù)。為了使應(yīng)用軟件適應(yīng)計(jì)算機(jī)硬件、軟件環(huán)境及數(shù)

據(jù)環(huán)境的不斷發(fā)生的變化而修改軟件的過程稱為適應(yīng)性維護(hù)。

(3)完善性維護(hù)。為增加軟件功能、增強(qiáng)軟件性能、提高軟件運(yùn)行

效率而進(jìn)行的維護(hù)活動(dòng)稱為完善性維護(hù)。

(4)預(yù)防性維護(hù)。為了提高軟件的可維護(hù)性和可靠性而對軟件進(jìn)行

的修改稱為預(yù)防性維護(hù)。軟件維護(hù)的特點(diǎn)是什么?答:主要體現(xiàn)在

三個(gè)方面:

(1)非結(jié)構(gòu)化維護(hù)和結(jié)構(gòu)化維護(hù)。軟件的開發(fā)過程對軟件的維護(hù)有

很大的影響。若不采用軟件工程的方法開發(fā)軟件,則軟件只有程序

而無文檔,維護(hù)工作非常困難,這是一種非結(jié)構(gòu)化的維護(hù)。若采用

軟件工程的方法開發(fā)軟件,則各階段都有相應(yīng)的文檔,容易進(jìn)行維

護(hù)工作,這是一種結(jié)構(gòu)化的維護(hù)。

(2)維護(hù)的困難性。軟件維護(hù)的困難性是由于軟件需求分析和開發(fā)

方法的缺陷。軟件生存周期中的開發(fā)階段沒有嚴(yán)格而又科學(xué)的管理

和規(guī)劃,就會(huì)引起軟件運(yùn)行時(shí)的維護(hù)困難。

(3)軟件維護(hù)的費(fèi)用。軟件維護(hù)的費(fèi)用在總費(fèi)用中的比重是在不斷

增加的,這是軟件維護(hù)有形的代價(jià)。另外還有無形的代價(jià),即要占

有更多的資源。軟件維護(hù)費(fèi)用增加的占有原因是軟件維護(hù)的生產(chǎn)率

非常低。軟件維護(hù)的流程是什么?

答:軟件維護(hù)的流程如下:知道維護(hù)申請報(bào)告、審查申請報(bào)告并批

準(zhǔn)、運(yùn)行維護(hù)并做詳細(xì)記錄、復(fù)審。軟件維護(hù)的副作用有哪些?答:

維護(hù)的副作用有以下三種:

(1)編碼副作用。在使用程序設(shè)計(jì)語言修改源代碼時(shí)可能引入的錯(cuò)

誤。

(2)數(shù)據(jù)副作用。在修改數(shù)據(jù)結(jié)構(gòu)時(shí),有可能造成軟件設(shè)計(jì)與數(shù)據(jù)

結(jié)構(gòu)不匹配,因而導(dǎo)致軟件錯(cuò)誤。數(shù)據(jù)副作用是修改軟件信息結(jié)構(gòu)

導(dǎo)致的結(jié)果。但它可以通過詳細(xì)的設(shè)計(jì)文檔加以控制。(3)文檔副

作用。如果對可執(zhí)行軟件的修改沒有反映在文檔中,就會(huì)產(chǎn)生文檔

副作用。

什么是軟件可維護(hù)性?可維護(hù)性度量的特性是什么?

答:軟件可維護(hù)性的定義:軟件能夠被理解、校正、適應(yīng)及增強(qiáng)功

能的容易程度。軟件的可維護(hù)性可用以下七個(gè)質(zhì)量特性來衡量,即

可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和

效率。

提高可維護(hù)性的方法有哪些?答:(1)建立明確的軟件質(zhì)量目標(biāo)。

(2)使用先進(jìn)的軟件開發(fā)技術(shù)和工具。(3)建立明確的質(zhì)量保證。

(4)選擇可維護(hù)性的程序設(shè)計(jì)語言。(5)改進(jìn)程序的文檔。第九

章習(xí)題參考答案

漸增模型有幾種?各有何特點(diǎn)?

答:漸增模型有兩種類型,一是增量構(gòu)造模型,二是演化提交模型。

增量構(gòu)造模型是在瀑布模型基礎(chǔ)上,對一些階段進(jìn)行整體開發(fā),對

另一些階段進(jìn)行增量開發(fā)。演化提交模型則是在瀑布模型的基礎(chǔ)上,

所有階段都進(jìn)行增量開發(fā),不僅是增量開發(fā),也是增量提交。

2、快速原型模型有幾種,各有什么特點(diǎn)?

答:快速原形模型根據(jù)原型的不同作用,有三類原型模型:探索型

原型:把原型用于開發(fā)的需求分析階段,目的是要弄清用戶的需求,

確定所期望的特性,并探索各種方案的可行性。它主要針對開發(fā)目

標(biāo)模糊,用戶與開發(fā)者對項(xiàng)目都缺乏經(jīng)驗(yàn)的情況,通過對原型的開

發(fā)來明確用戶的需求。

實(shí)驗(yàn)型原型:主要用于設(shè)計(jì)階段,考核實(shí)現(xiàn)方安是否合適,能否實(shí)

現(xiàn)。對于一個(gè)大型系統(tǒng),若對設(shè)計(jì)方案心中沒有把握時(shí),可通過這

種原型的開發(fā)來證實(shí)設(shè)計(jì)方案的正確性。

(3)演化型原型:它將原型思想擴(kuò)展到軟件開發(fā)的全過程,就是及早

向用戶提交一個(gè)原型系統(tǒng),在得到用戶認(rèn)可后,將原型系統(tǒng)不斷擴(kuò)

充演化為最終的軟件系統(tǒng)??焖僭偷拈_發(fā)步驟是什么?答:快速

原型的開發(fā)步驟是:(1)快速分析:在分析人員與用戶的配合下,

迅速確定系統(tǒng)基本需求并開始構(gòu)造原型。(2)構(gòu)

造原型:在快速分析的基礎(chǔ)上,根據(jù)基本需求說明盡快實(shí)現(xiàn)一

個(gè)可運(yùn)行的系統(tǒng)。(3)運(yùn)行原型:通過運(yùn)行快速原型,發(fā)現(xiàn)問題,

消除誤解,達(dá)到開發(fā)者也用戶的充分協(xié)調(diào)。(4)評價(jià)原型:在運(yùn)行

的基礎(chǔ)上,評價(jià)原型的特性,分析運(yùn)行效果是否滿足用戶的需求,

提出全面的修改意見。(5)修改:根據(jù)評價(jià)原型的活動(dòng)結(jié)果進(jìn)行修

改,修改過程代替初始的快速分析,從而實(shí)現(xiàn)原型開發(fā)的循環(huán)過程。

用戶與開發(fā)者在這種循環(huán)過程中不斷接近系統(tǒng)的最終要求。上述步

驟在軟件工具的支持下往往是互相交融在一起的,而不再象瀑布模

型那樣嚴(yán)格的階段劃分,線性推進(jìn)。

評價(jià)快速原型模型的優(yōu)缺點(diǎn)。答:快速原型的優(yōu)點(diǎn)是:(1)可及

早為用戶提供有用的產(chǎn)品。(2)可及早發(fā)現(xiàn)問題,隨時(shí)糾正錯(cuò)誤。

(3)減少技術(shù)、應(yīng)用風(fēng)險(xiǎn),縮短開發(fā)時(shí)間,減少費(fèi)用、提高生產(chǎn)率。

(4)通過實(shí)際運(yùn)行原型,提供直接評價(jià)系統(tǒng)的方法,促使用戶主動(dòng)

參與開發(fā)活動(dòng),加強(qiáng)了信息反饋,促進(jìn)各類人員的協(xié)調(diào),減少誤解,

適應(yīng)需求變化,能有效提高系統(tǒng)質(zhì)量??焖僭偷娜秉c(diǎn)是:1.缺乏豐

富而強(qiáng)有力的軟件工具和開發(fā)環(huán)境。2.缺乏有效的管理機(jī)制,還未

建立起自己的開發(fā)標(biāo)準(zhǔn)。3.對設(shè)計(jì)開發(fā)環(huán)境要求較高。(4)在多次重

復(fù)改變原型的過程中,程序員會(huì)感到厭倦。(5)系統(tǒng)的易變性對測試

有一定影響,難于做到徹底測試,更新文檔較為困難。

4、比瀑布模型與增量模型,指出增量模型的新思路。答:瀑布模型

屬于整體開發(fā)模型,它規(guī)定在開始下一個(gè)階段的工作之前,必須完

成前一階段的所有細(xì)節(jié)。瀑布模型很難適應(yīng)需求可變、模糊不定的

軟件系統(tǒng)的開發(fā),而且在開發(fā)過程中用戶很難參與進(jìn)去,只有到開

發(fā)結(jié)束才能看到整個(gè)軟件系統(tǒng)。這種理想的、線性的開發(fā)過程缺乏

靈活性,不適應(yīng)實(shí)際的開發(fā)過程。增量模型是在瀑布模型的基礎(chǔ)上

加以修改而形成的。屬于非整體開發(fā)模型。

它的基本思路是為了使開發(fā)過程具有一定的靈活性和可修改性,在

開發(fā)過程中推遲某些階段或所有階段中的細(xì)節(jié),從而較早的產(chǎn)生工

作軟件。第十章習(xí)題參考答案

說明對象、類、類結(jié)構(gòu)、消息的基本概念。

答:(1)對象:對象是人們要進(jìn)行研究的任何事物,它不僅能表示具

體的事物,還能表示抽象的規(guī)則、計(jì)劃或事件。對象包括有形實(shí)體、

作用、事件、性能說明等類型。對象具有狀態(tài)和行為。一個(gè)對象用

數(shù)據(jù)值來描述它的狀態(tài),對象的操作則用于改變狀態(tài),對象及其操

作就是對象的行為。對象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作

封裝于對象的統(tǒng)一體中。對象內(nèi)的數(shù)據(jù)具有自己的操作,從而可靈

活地專門描述對象的獨(dú)特行為,具有較強(qiáng)的獨(dú)立性和自治性,其內(nèi)

部狀態(tài)不受或很少受外界的影響,具有很好的模塊化特點(diǎn)。為軟件

重用奠定了堅(jiān)實(shí)的基礎(chǔ)。(2)類:具有相同或相似性質(zhì)的對象的抽象

就是類。因此,對象的抽象就是類,類的具體化就是對象,也可以

說類的實(shí)例是對象。(3)類結(jié)構(gòu):類與類之間的結(jié)構(gòu)關(guān)系,包括一般?

具體結(jié)構(gòu)關(guān)系和整體?部分結(jié)構(gòu)關(guān)系。一般?具體關(guān)系結(jié)構(gòu)稱為分類結(jié)

構(gòu),也可以說是或關(guān)系或isa關(guān)系,類的這種層次結(jié)構(gòu)可用來描述

現(xiàn)實(shí)世界中的一般化的抽象關(guān)系,通常越在上層的類越具有一般性

和共性,越在下層的類越具體、越細(xì)化。整體?部分結(jié)構(gòu)稱為組裝結(jié)

構(gòu),它們之間的關(guān)系是一種與關(guān)系,或者是hasa關(guān)系。類的這種

層次關(guān)系可用來描述現(xiàn)實(shí)世界中的類的組成的抽象關(guān)系。上層的類

具有整體性,下層的類具有成員性。在類的層次結(jié)構(gòu)中,通常上層

的類稱為父類或超類,下層類稱為子類。(4)消息:對象之間進(jìn)行通

信的構(gòu)造叫做消息。在對旬的操作中,當(dāng)一個(gè)消息發(fā)送給某個(gè)對象

時(shí),消息包含接收對象去執(zhí)行某種操作的信息。接收消息的對象經(jīng)

過解釋,然后給予響應(yīng)。這種通信機(jī)制稱為消息傳遞。發(fā)送一條消

息的格式是對象名.方法名(參數(shù))o

說明面向?qū)ο蟮奶卣骱鸵?。答:面向?qū)ο蟮奶卣魇牵海?)對象

唯一性。每個(gè)對象都有自身唯一的標(biāo)識,在對象生存期中,其標(biāo)識

不變,不同的對象不能有不同的標(biāo)識。(2)分類性。是指將具有一

致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對象抽象成類(3)繼承性。是子

類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。

(4)多態(tài)性。是指相同的操作或函數(shù)過程可以作用于多種類型的對

象上并獲得不同的結(jié)果。面向?qū)ο蟮囊厥牵?.抽象。2.封裝性(信

息隱蔽)(3)共享性。說明動(dòng)態(tài)模型的特征,說明事件,腳本、狀態(tài)

的含義。

答:動(dòng)態(tài)模型是與時(shí)間和變化有關(guān)的系統(tǒng)性質(zhì),該模型描述了系統(tǒng)

的控制結(jié)構(gòu),它表示了瞬時(shí)的、行為化的系統(tǒng)控制性質(zhì),

它關(guān)心的是系統(tǒng)的控制,操作的執(zhí)行順序,它從對象的事件和狀態(tài)

的角度出發(fā),表現(xiàn)了相互行為。事件是指特定時(shí)刻發(fā)生的某件事情,

它是某事情發(fā)生的信號,它沒有持續(xù)時(shí)間,它是一種相對性的快速

事件。腳本是完成系統(tǒng)某個(gè)功能事件序列,側(cè)重于表達(dá)說明發(fā)生于

系統(tǒng)執(zhí)行過程中的一個(gè)特定場景,用事件跟蹤圖表達(dá)。狀態(tài)是對象

屬性值的抽象。狀態(tài)指明了對象對輸入事件的響應(yīng)。

說明功能模型的特征,比較功能模型的dfd和結(jié)構(gòu)化方法的dfd異

同。

答:功能模型描述了系統(tǒng)的所有計(jì)算。功能模型指出發(fā)生了什么,

動(dòng)態(tài)模型確定什么時(shí)候發(fā)生,而對象模型確定發(fā)生的客體。功能模

型表明一個(gè)計(jì)算如何從輸入值得到輸出值,它不考慮所計(jì)算的次序。

功能模型由多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖說明數(shù)據(jù)流是如何從外部

輸入、經(jīng)過操作和內(nèi)部存儲(chǔ)輸出到外部的。功能模型也包括對象模

型中值的約束條件。

說明三種分析模型的關(guān)系。答:三種分析模型之間關(guān)系是這樣的:

功能模型指出發(fā)生了什么,動(dòng)態(tài)模型確定什么時(shí)候發(fā)生,而對象模

型確定發(fā)生的客體。說明對象建模的過程。

答:對象建模的過程如下:首先標(biāo)識類和關(guān)聯(lián),因?yàn)樗鼈冇绊懥苏?/p>

體結(jié)構(gòu)和解決問題的方法,其次是增加屬性,進(jìn)一步描述類和關(guān)聯(lián)

的基本網(wǎng)絡(luò),使用繼承合并和組織類,最后將操作增加到類中去作

為構(gòu)造動(dòng)態(tài)模型和功能模型的副產(chǎn)品。(1)確定類。構(gòu)造對象模型的

第一步是標(biāo)出來自問題域的相關(guān)對象類,包括物理實(shí)體和概念。所

有類在應(yīng)用中都必須有意義。檢查問題陳述中的所有名詞,產(chǎn)生暫

定類。然后去掉不必要的類和不正確的類。(2)準(zhǔn)備數(shù)據(jù)字典。為所

有建模實(shí)體準(zhǔn)備一個(gè)數(shù)據(jù)詞典。準(zhǔn)確描述各個(gè)類的精確含義,描述

當(dāng)前問題中的類的范圍,包括對類的成員、用法方面的假設(shè)或限制。

1.確定關(guān)聯(lián)。兩個(gè)或多個(gè)類之間的相互依賴就是關(guān)聯(lián)。從問題中抽取

所有可能的關(guān)聯(lián)表示,把它們記下來,但不要過早去細(xì)化這些表述。

2.確定屬性。屬性是個(gè)體對象的性質(zhì),通常用修飾性的名詞詞組來表

示。只考慮與具體應(yīng)用直接相關(guān)的屬性,不考慮那些超出問題范圍

的屬性,首先找出重要屬性,避免那些只用于實(shí)現(xiàn)的屬性,要為各

個(gè)屬性取有意義的名字。3使用繼承來細(xì)化類。4,完善對象模型。

說明功能建模的過程。答:功能建模的過程如下:(1)確定輸入、

輸出值(2)建立數(shù)據(jù)流圖

10、說明對象設(shè)計(jì)的步驟。

答:對象設(shè)計(jì)要確定實(shí)現(xiàn)用到的類、關(guān)聯(lián)的完整定義,接口的形式

以及實(shí)現(xiàn)操作方法的算法,可以增加實(shí)現(xiàn)必須的內(nèi)部對象,對數(shù)據(jù)

結(jié)構(gòu)和算法進(jìn)行優(yōu)化。1.獲得操作2確定操作的目標(biāo)對象3.算法設(shè)

計(jì)4.優(yōu)化設(shè)計(jì)5.控制的實(shí)現(xiàn)6調(diào)整繼承⑺關(guān)聯(lián)的設(shè)計(jì)

第H—章習(xí)題參考答案

軟件質(zhì)量與軟烝質(zhì)量保證的含義是什么?

答:從實(shí)際應(yīng)用來說,軟件質(zhì)量定義包括三個(gè)一致性:1.與所確定

的功能和性能需求的一致性;(2)與所成文的開發(fā)標(biāo)準(zhǔn)的一致性;3.

與所有專業(yè)開發(fā)的軟件所期望的隱含特性的一致性。4.軟件質(zhì)量保證

是指確定、達(dá)到和維護(hù)所需要的軟件質(zhì)量而進(jìn)行的所有有計(jì)劃、有

系統(tǒng)的管理活動(dòng)。影響軟件質(zhì)量的因素有哪些?答:影響軟件質(zhì)量

的因素分為可以直接度量的因素(如單位時(shí)間內(nèi)千行代碼中所產(chǎn)生的

錯(cuò)誤)和只能間接度量的因素(如可用性和可維護(hù)性)。

什么是軟件質(zhì)量保證策略?軟件質(zhì)量保證的主要任務(wù)是什么?答:軟

件質(zhì)量保證策略是指軟件質(zhì)量保證工作的過程和側(cè)重點(diǎn)。質(zhì)量保證

的主要任務(wù)包括以下幾點(diǎn):1.正確定義用戶的要求。2,技術(shù)方法的應(yīng)

用。3,提高軟件開發(fā)的工程能力。4.軟件的復(fù)用。5.發(fā)揮每個(gè)開發(fā)

者的能力。6.組織外部力量協(xié)作。7.排除無效勞動(dòng)。(8)提高計(jì)劃和

管理質(zhì)量。程序復(fù)雜性的度量方法有哪些?

答:軟件復(fù)雜性的度量方法有:1.代碼行度量法:以源代碼行數(shù)作

為程序復(fù)雜性的度量。2、mccabe度量法:一種基于程序控制流的

復(fù)雜性度量方法。

能是軟件的可靠性?它們能否定量計(jì)算?

答:軟件可靠性是指在給定的時(shí)間內(nèi),在規(guī)定的環(huán)境條件下系統(tǒng)完

成所指定功能的概率。衡量軟件可靠性的兩個(gè)常用指標(biāo)是平均失效

等待時(shí)間mttf和平均失效間隔時(shí)間mtbfo就是說可以定量計(jì)算。

7、說明容錯(cuò)軟件的定義與容錯(cuò)的一般方法。

答:容錯(cuò)軟件的定義有四種,指規(guī)定功能的軟件,(1)在一定程度上

對自身錯(cuò)誤的作用具有屏蔽能力的軟件。(2)在一定程度上能從錯(cuò)誤

狀態(tài)自動(dòng)恢復(fù)到正常狀態(tài)的軟件。(3)在因錯(cuò)誤而發(fā)生錯(cuò)誤時(shí),仍然

能在一定程度上完成預(yù)期的功能的軟件。(4)在一定程度上具有容錯(cuò)

能力的軟件。

實(shí)現(xiàn)容錯(cuò)技術(shù)的主要手段是冗余。冗余通常分為四類:1.結(jié)構(gòu)冗余,

又分為靜態(tài)、動(dòng)態(tài)和混合冗余三種。2.信息冗余3.時(shí)間冗余(4)冗余

附加技術(shù)第十二章習(xí)題參考答案

軟件工程管理包括哪些內(nèi)容?

答:軟件工程管理的具體內(nèi)容包括對開發(fā)人員、組織機(jī)構(gòu)、用戶、

文檔資料等方面的管理。

2、軟件項(xiàng)目計(jì)劃中包括哪些內(nèi)容?

答:軟件項(xiàng)目計(jì)劃內(nèi)容包括:1.范圍2.資源3.進(jìn)度安排4成本估算

(5)培訓(xùn)計(jì)劃

3、軟件開發(fā)成本估算方法有哪幾種?答:軟件開發(fā)成本估算的方法

主要有:(1)自頂向下估算方法(2)自底向上估算方法(3)差別

估算方法

以及專家估算法、類推估算法、算式估算法等幾類方法。4、什么

是軟件配置管理?什么是基線?

答:軟件配置管理,簡稱scm(softwareconfiguration

management),是指一組管理整個(gè)軟件生存期各階段中變更的活動(dòng)。

軟件配置管理技術(shù)可以使軟件變更所產(chǎn)生的錯(cuò)誤達(dá)到最小并最有效

地提高生產(chǎn)率。

基線:是軟件生存期中各開發(fā)階段的一個(gè)特定點(diǎn),它的作用是把開

發(fā)各階段工作的劃分更加明確化,使本來連續(xù)的工作在這些點(diǎn)上斷

開,以便于檢查與肯定階段成果。

5、軟件工程標(biāo)準(zhǔn)化的意義是什么?都有哪些軟件工程標(biāo)準(zhǔn)?答:軟

件工程標(biāo)準(zhǔn)化可以為軟件工程各個(gè)階段的活動(dòng)提供統(tǒng)一的行動(dòng)規(guī)范

和衡量準(zhǔn)則,使得各種工作都能有章可循。軟件工程標(biāo)準(zhǔn)根據(jù)其制

定機(jī)構(gòu)與適用范圍,可分為:1?國際標(biāo)準(zhǔn)2.國家標(biāo)準(zhǔn)3.行業(yè)標(biāo)準(zhǔn)4.

企業(yè)規(guī)范5、項(xiàng)目(課題)規(guī)范6、請說明軟件文檔的作用?

答:軟件文檔的作用是:1,提高軟件開發(fā)過程的能見度;2.提高開發(fā)

效率;3,作為開發(fā)人員階段工作成果和結(jié)束標(biāo)志;4.記錄開發(fā)過程的

有關(guān)信息便于使用與維護(hù);5.提供軟件運(yùn)行、維護(hù)和培訓(xùn)有關(guān)資料;

6.便于用戶了解軟件功能、性能。第十三章習(xí)題參考答案

1、什么是軟件開發(fā)環(huán)境?請列出其發(fā)展情況。

答:軟件開發(fā)環(huán)境是指在計(jì)算機(jī)的基本軟件的基礎(chǔ)上,為支持軟件

的開發(fā)而提供的一組工具軟件系統(tǒng)。具體地說,軟件開發(fā)環(huán)境是一

組相關(guān)工具的集合。這些相關(guān)工具按一定的開發(fā)方法或一定開發(fā)處

理模型組織起來的,這些相關(guān)工具支持整個(gè)軟件生存期的各階段或

部分階段。軟件開發(fā)環(huán)境的發(fā)展階段:

(1)70年代,軟件開發(fā)與設(shè)計(jì)方法出現(xiàn)了結(jié)構(gòu)化分析技術(shù)的一整套相

互銜接的sa-sd的方法學(xué)。與此相適應(yīng)的計(jì)算機(jī)輔助軟件工程技術(shù)

則主要由開發(fā)孤立的軟件工具而逐步向程序設(shè)計(jì)環(huán)境的開發(fā)和使用

方向發(fā)展,出現(xiàn)了第一代的基于正文的case工具。

(2)80年代中期與后期,主要是實(shí)時(shí)系統(tǒng)設(shè)計(jì)方法,以及面向?qū)ο蟮?/p>

分析和設(shè)計(jì)方法的發(fā)展,它克服了結(jié)構(gòu)化技術(shù)的缺點(diǎn)。在這期間開

發(fā)了第二代的case工具,其特點(diǎn)是支持使用圖形表示的結(jié)構(gòu)化方法,

如數(shù)據(jù)流圖與結(jié)構(gòu)圖。其開發(fā)環(huán)境表現(xiàn)在提高環(huán)境中工具的集成性

方面,如集成的項(xiàng)目支持環(huán)境。(3)80年代后期和90年代初期出現(xiàn)

了基于信息工程case技術(shù),這種環(huán)境集成了用于項(xiàng)目計(jì)劃、分析、

設(shè)計(jì)、編程、測試和維護(hù)的一個(gè)工具箱的集合。

(4)90年代出現(xiàn)一系列集成的case軟件產(chǎn)品,用以實(shí)現(xiàn)需求管理、

應(yīng)用程序分析設(shè)計(jì)和建模、編碼、軟件質(zhì)量保證和測試、過程和項(xiàng)

目管理及文檔生成管理等軟件開發(fā)工作的規(guī)范化、工程化和自動(dòng)化。

2、請敘述軟件開發(fā)環(huán)境的分類。答:軟件開發(fā)環(huán)境可按解決的問題、

軟件開發(fā)環(huán)境的演變趨向和集成化程度進(jìn)行分類:(1)按解決的問題

可分為:程序設(shè)計(jì)環(huán)境、系統(tǒng)合成環(huán)境、項(xiàng)目管理環(huán)境三類。(2)按

軟件開發(fā)環(huán)境的演變趨向可分為:以語言為中心的環(huán)境、工具箱環(huán)

境和基于方法的環(huán)境三類。(3)按集成化程度有第一代、第二代、第

三代的開發(fā)環(huán)境。

3、何謂軟件工具?通常包含哪幾部分?答:軟件工具的定義是:可

用來幫助和支持軟件需求分析、軟件開發(fā)、測試、維護(hù)、模擬、移

植或管理而編制的計(jì)算機(jī)程序或軟件。軟件工具是一個(gè)程序系統(tǒng)。

軟件工具通常由工具、工具接口和工具用戶接口三

【篇三:軟件工程課后題答案】

說明軟件工程研究的內(nèi)容。

軟件工程研究的內(nèi)容包括軟件開發(fā)方法、軟件開發(fā)模型、軟件支持

過程和軟件管理過程。其中軟件開發(fā)方法的內(nèi)容又涵蓋市場調(diào)研、

正式立項(xiàng)、需求分析、項(xiàng)目策劃、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、測

試、試運(yùn)行、產(chǎn)品發(fā)布、用戶培訓(xùn)、產(chǎn)品復(fù)制、銷售、實(shí)施、系統(tǒng)

維護(hù)、版本升級。常用的軟件開發(fā)模型有瀑布模型、迭代模型、增

量模型和原型模型。軟件支持過程由所支持的case工具組成,常用

的case工具有

powerdesigner和rationalrose。軟件管理過程主要有cmmi>

iso9000、微軟企業(yè)文化和敏捷文化

現(xiàn)象。

1-3請讀者詳細(xì)解釋軟件的定義和程序的定義。

軟件的定義:軟件=程序+數(shù)據(jù)+文檔,這里的程序是指程序系統(tǒng)。

這里的數(shù)據(jù)不僅包括初始化數(shù)據(jù)、測試數(shù)據(jù),而且包括研發(fā)數(shù)據(jù)、

運(yùn)行數(shù)據(jù)、維護(hù)數(shù)據(jù),也包括軟件企業(yè)積累的項(xiàng)目工程數(shù)據(jù)和項(xiàng)目

管理數(shù)據(jù)中的大量決策原始記錄數(shù)據(jù)。這里的文檔指的是軟件開發(fā)

過程中的分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、維護(hù)文檔、管理文檔。

現(xiàn)在有一種新提法正在引起關(guān)注,這種提法是:軟件=知識+程序

+數(shù)據(jù)+文檔。程序是計(jì)算機(jī)為完成特定任務(wù)而執(zhí)行的指令的有序

集合。從應(yīng)用的角度可理解為:面向過程的程序=算法+數(shù)據(jù)結(jié)構(gòu)

面向?qū)ο蟮某绦?對象+信息面向構(gòu)件的程序=構(gòu)件+構(gòu)架。

1?5.讀者同意“四種開發(fā)方法”和“五個(gè)面向理論”的提法嗎?為什么?

“四種開發(fā)方法”是指“面向過程的方法、面向?qū)ο蟮姆椒?、面向?shù)據(jù)

的方法、形式化方法,面向過程的方法來源于面向過程的程序設(shè)計(jì),

面向?qū)ο蟮姆椒▉碓从诿嫦驅(qū)ο蟮某绦蛟O(shè)計(jì),面向數(shù)據(jù)的方法就是

面向元數(shù)據(jù)的方法,它來源于關(guān)系數(shù)據(jù)庫程序設(shè)計(jì),形式化方法來

源于離散數(shù)學(xué)中的集合運(yùn)算和邏輯運(yùn)算。四種方法各適用于不同的

場合,各有優(yōu)缺點(diǎn),互相促進(jìn),構(gòu)成一個(gè)開發(fā)方法論的多極化世界。

“五個(gè)面向理論”是指“面向流程分析、面向數(shù)據(jù)設(shè)計(jì)、面向?qū)ο髮?shí)現(xiàn)、

面向功能測試、面向過程管理力它是在綜合“四種開發(fā)方法”各自的

優(yōu)點(diǎn)之后提出的軟件工程實(shí)施理論,是對前者的繼承與發(fā)展。總之,

上述提法既精彩又實(shí)用。

1-6怎樣理解軟件工程的支持過程?

軟件工程的支持過程是由支持軟件生存周期各個(gè)階段的生產(chǎn)工具所

組成。就是說將一個(gè)軟件的生存周期劃分為市場調(diào)研、立項(xiàng)、需求

分析、策劃、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、單位測試、集成測試、

運(yùn)行、維護(hù)這幾個(gè)過程中,在這些過程中需要配套的工具來支持,

比如需求分析工具、設(shè)計(jì)工具、實(shí)現(xiàn)工具、測試工具、維護(hù)工具、

配置工具,開發(fā)環(huán)境等。

第二章:

2-1.為什么要選擇軟件開發(fā)模型?軟件開發(fā)模型與軟件生存周期有

什么關(guān)系?

因?yàn)檐浖_發(fā)模型是軟件工程研究的四大內(nèi)容之一,它雖然不是軟

件工程研究的重點(diǎn),但是在宏觀上特別重要。軟件公司的項(xiàng)目組在

開發(fā)一個(gè)大項(xiàng)目或產(chǎn)品時(shí),首先在技術(shù)上必須選擇一個(gè)開發(fā)模型,

使開發(fā)模型非常適合這個(gè)項(xiàng)目或產(chǎn)品的生存周期;隨后通過對生存

周期的裁減,來給出適合與本項(xiàng)目或產(chǎn)品的軟件生存周期定義。

軟件的開發(fā)模型與軟件生存周期有關(guān):不同的開發(fā)模型,可能對應(yīng)

著不同的生存周期。生存周期不同,該軟件的開發(fā)階段劃分、評審

次數(shù)、基線標(biāo)準(zhǔn)都有所不同,甚至維護(hù)方法都有所區(qū)別。

2-2.簡述瀑布模型、增量模型、迭代模型、原型模型的優(yōu)缺點(diǎn)。

答案如表8-2所示:

表8-2開發(fā)模型優(yōu)缺點(diǎn)

3-2立項(xiàng)的具體表現(xiàn)形式是什么?

企業(yè)的市場銷售部門在市場調(diào)研的基礎(chǔ)上,分析該產(chǎn)品是否有市場

前景,以及企業(yè)是否有能力開發(fā)出該產(chǎn)品,并具體列出系統(tǒng)的功能、

性能、接口和運(yùn)行環(huán)境等方面的需求情況,當(dāng)前客戶群和潛在客戶

群情況,以及投入產(chǎn)出分析,然后寫出立項(xiàng)建議書,召開立項(xiàng)論證

會(huì),決定是否立項(xiàng)。

3-3立項(xiàng)書的編制者為什么主要是軟件公司的市場銷售人員,而不是

開發(fā)人員?

軟件開發(fā)出來終歸要推向市場的,軟件能不能被市場接受是軟件開

發(fā)成功的標(biāo)準(zhǔn)。市場銷售人員長期和市場客戶打交道,他們最了解

客戶和市場的需求,最知道什么樣的產(chǎn)品具有巨大商機(jī)。

第四章:

4-2.需求分析的目的是什么?需求分析的難點(diǎn)在哪里?

軟件需求分析,其目的是用于說明軟件產(chǎn)品或軟件項(xiàng)目需要滿足的

條件和限制。在軟件工程項(xiàng)目中首先要獲取用戶的需求,通過對軟

件需要的提取、分析、文檔化以及驗(yàn)證,為進(jìn)一步的設(shè)計(jì)和實(shí)現(xiàn)提

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論