軟件工程教程課后參考及答案_第1頁
軟件工程教程課后參考及答案_第2頁
軟件工程教程課后參考及答案_第3頁
軟件工程教程課后參考及答案_第4頁
軟件工程教程課后參考及答案_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程教程課后參考答案

第1章

一、選擇題

(1)D(2)B(3)C(4)D(5)D(6)A(7)D

二、簡答題

(1)什么是軟件危機(jī)?軟件危機(jī)表現(xiàn)在哪些方面?

答:具體來說,軟件危機(jī)出現(xiàn)的原因可以概括如下。

①忽視軟件開發(fā)前期的需求分析。

②開發(fā)過程缺乏統(tǒng)一的、規(guī)范化的方法論指導(dǎo)。

③文檔資料不齊全或不準(zhǔn)確。

④忽視與用戶之間、開發(fā)組成員之間的交流。

⑤忽視測試的重要性。

⑥不重視維護(hù)或由于上述原因造成維護(hù)工作的困難。

⑦從事軟件開發(fā)的專業(yè)人員對這個(gè)產(chǎn)業(yè)的認(rèn)識不充分,缺乏經(jīng)驗(yàn)。

⑧沒有完善的質(zhì)量保證體系。

具體地說,軟件危機(jī)的表現(xiàn)形式可以概括如下。

①軟件開發(fā)費(fèi)用和進(jìn)度失控。

②軟件系統(tǒng)實(shí)現(xiàn)的功能與實(shí)際需求不符。

③軟件的可靠性差。

④軟件難以維護(hù)。

⑤軟件通常沒有適當(dāng)?shù)奈臋n資料。

⑥軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例居高不下,且逐年上升。

⑦軟件生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢。

(2)簡述軟件和軟件工程的定義以及軟件工程的形成過程。

答:軟件是計(jì)算機(jī)系統(tǒng)中與硬件相對應(yīng)的另一部分,是一系列程序、數(shù)據(jù)

及其相關(guān)的文檔集合。在這里,程序是按照特定順序組織的計(jì)算機(jī)數(shù)據(jù)和指令

的集合;數(shù)據(jù)是使程序能正常執(zhí)行的數(shù)據(jù)結(jié)構(gòu);文檔是是開發(fā)、使用和維護(hù)程

序所需要的圖文資料。

1

軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)理論和技術(shù)以及工程管理原則和方法,按預(yù)算

和進(jìn)度,實(shí)現(xiàn)滿足用戶要求的軟件產(chǎn)品的定義、開發(fā)、發(fā)布和維護(hù)的工程或進(jìn)

行研究的學(xué)科。

軟件工程的發(fā)展經(jīng)歷了以下四個(gè)階段。

①20世紀(jì)70年代。為了解決軟件項(xiàng)目失敗率高、錯誤率高以及軟件維護(hù)

任務(wù)重等問題,人們提出了軟件生產(chǎn)工程化的思想,希望使軟件生產(chǎn)走上正規(guī)

化的道路,并努力克服軟件危機(jī)。人們發(fā)現(xiàn)將傳統(tǒng)工程學(xué)的原理、技術(shù)和方法

應(yīng)用于軟件開發(fā),可以起到使軟件生產(chǎn)規(guī)范化的作用。

②20世紀(jì)80年代。面向?qū)ο蟮姆椒ㄅc技術(shù)受到了廣泛的重視,maltalk-80

的出現(xiàn)標(biāo)志著面向?qū)ο蟮某绦蛟O(shè)計(jì)進(jìn)入了實(shí)用和成熟階段。20世紀(jì)80年代末,

逐步發(fā)展起來的面向?qū)ο蟮姆治雠c設(shè)計(jì)方法,己經(jīng)形成了完整的面向?qū)ο蠹夹g(shù)

體系,使系統(tǒng)的生存周期更長,適應(yīng)更大規(guī)模、更廣泛的應(yīng)用。

③20世紀(jì)90年代末。出現(xiàn)了許多的敏捷方法,如自適應(yīng)軟件開發(fā)、水晶

項(xiàng)目開發(fā)、動態(tài)系統(tǒng)開發(fā)、極限編程、特征驅(qū)動開發(fā)和Scrum等。這些主要的

敏捷方法的創(chuàng)始人在2001年聚集一堂,并發(fā)表了敏捷開發(fā)宣言。

④21世紀(jì)。對快速應(yīng)用開發(fā)(RapidApplicationDevelopment,RAD)追

求的趨勢仍在繼續(xù),在信息技術(shù)、組織、競爭對策及環(huán)境等方面的變革步伐也

正在加快。云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能和機(jī)器學(xué)習(xí)、移動互聯(lián)網(wǎng)、三

維打印、可穿戴式技術(shù)、虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、社交媒體、無人駕駛汽車和飛

機(jī)等技術(shù)不斷涌現(xiàn)?!按笠?guī)模計(jì)算”、“自治和生化計(jì)算機(jī)”、“模型驅(qū)動體

系結(jié)構(gòu)”和“構(gòu)件化軟件開發(fā)”等新領(lǐng)域都可能成為接下來軟件工程發(fā)展的主

要方向。

(3)軟件工程的目標(biāo)是什么?如何解決多目標(biāo)之間的矛盾?

答:軟件工程要達(dá)到的基本目標(biāo)包括以下六方面。

①達(dá)到要求的軟件功能。

②取得較好的軟件性能。

③開發(fā)出高質(zhì)量的軟件。

④付出較低的開發(fā)成本。

⑤需要較低的維護(hù)費(fèi)用。

⑥能按時(shí)完成開發(fā)工作,及時(shí)交付使用。

2

軟件工程的首要問題是軟件質(zhì)量。軟件工程的目的就是在以上目標(biāo)的沖突

之間取得一定程度的平衡。因此,在涉及平衡軟件工程目標(biāo)這個(gè)問題的時(shí)候,

軟件的質(zhì)量應(yīng)該擺在最重要的位置加以考慮。軟件質(zhì)量可用功能性、可靠性、

可用性、效率、可維護(hù)性和可移植性等六個(gè)特性來評價(jià)。

(4)什么是軟件生存周期?它分為幾個(gè)時(shí)期?幾個(gè)階段?

答:軟件生存周期是指從設(shè)計(jì)該產(chǎn)品的構(gòu)想開始,到軟件需求的確定、軟

件設(shè)計(jì)、軟件實(shí)現(xiàn)、產(chǎn)品測試與驗(yàn)收、投入使用,以及產(chǎn)品版本的不斷更新,

到該產(chǎn)品最終被市場淘汰的全過程。軟件生存周期由軟件定義、軟件開發(fā)和運(yùn)

行維護(hù)三個(gè)時(shí)期組成,劃分為問題定義、可行性研究、需求分析、概要設(shè)計(jì)、

詳細(xì)設(shè)計(jì)、軟件實(shí)現(xiàn)和單元測試、綜合測試和運(yùn)行維護(hù)八個(gè)階段。

(5)什么是軟件生存周期模型?有哪些主要軟件過程模型?

答:軟件生存期模型也稱為軟件過程模型,是從軟件項(xiàng)目需求定義直至軟

件運(yùn)行維護(hù)為止,跨越整個(gè)生命周期的系統(tǒng)開發(fā)、運(yùn)行和維護(hù)所實(shí)施的全部過

程、活動和任務(wù)的結(jié)構(gòu)框架。典型的包括瀑布模型、快速原型模型、增量模型、

螺旋模型、統(tǒng)一過程、敏捷過程等。

(6)在軟件工程知識體系中,將軟件工程劃分為哪些知識域?

答:SWEBOK將軟件工程知識體系劃分為10個(gè)知識域,包含在兩類過程中。

一類過程是開發(fā)與維護(hù)過程,包括軟件需求、軟件設(shè)計(jì)、軟件構(gòu)造、軟件測試

和軟件維護(hù);另一類過程是支持過程,包括軟件配置管理、軟件工程管理,軟

件工程過程、軟件工程工具寫方法、軟件質(zhì)量。每個(gè)知識域還可進(jìn)一步分解為

若干個(gè)論題,在論題描述中引用有關(guān)知識的參考文獻(xiàn),形成一個(gè)多級層次結(jié)構(gòu),

以此確定軟件工程知識體系的內(nèi)容和邊界。

3

(2)設(shè)計(jì)一個(gè)軟件的開發(fā)成本為5萬元,壽命為3年。未來3年的每年收益預(yù)

計(jì)為:2200元,24000元,26620元。銀行年利率為10%。試對此項(xiàng)目進(jìn)行成

本-效益分析,以決定其經(jīng)濟(jì)可行性。

解:進(jìn)行投入產(chǎn)出分析時(shí),未來的收益和現(xiàn)在消耗的成本不能直接進(jìn)行比

較,必須在考慮貨幣的時(shí)間價(jià)值后,才能進(jìn)行準(zhǔn)確的投入、產(chǎn)出分析。

22000/(1+10%)+24000/(1.1x1.1)+26620/(1.1x1.1x1.1)-50000=20000+1983

4.71

+20000-50000=9834.71

經(jīng)濟(jì)可行性分析投資收益為:9834.71元。

(3)某軟件公司統(tǒng)計(jì)發(fā)現(xiàn)該公司研發(fā)部門每一萬行C語言源代碼形成的源文

件(.c和.h文件)約為250K。某項(xiàng)目的源文件大小為3.75M。

①問該項(xiàng)目的規(guī)模是多少KLOC(源代碼行數(shù))?該公司研發(fā)部門的生產(chǎn)

率是0.625KLOC/人月,人工價(jià)是10000元/人月。

②問工作量和總成本是多少?

③每行代碼的價(jià)值是多少?

解:①3.75M/250K=15萬行=150KLOC

②工作量=規(guī)模/生產(chǎn)率=150KLOC/0.625KLOC=240人月

成本二工作量x人工價(jià)=240人月*10000元/人月=240萬元

③24()萬元/15萬行=16元/行

(4)某計(jì)算機(jī)系統(tǒng)投入使用后,每年可節(jié)約人民幣20000元,假設(shè)軟件生存期

為4年,系統(tǒng)投資額為50000元,若年利率為5%,試計(jì)算效益。

解:表面上看,4年共節(jié)約20000*4=80000元,扣除投資55000元可產(chǎn)生

純收入25000元。其實(shí)不然,因?yàn)橥顿Y在前,效益產(chǎn)生有一個(gè)時(shí)間過程,所以

需要把4年內(nèi)每年預(yù)計(jì)節(jié)約的錢折合成當(dāng)前價(jià)值才能比較。若按年利率5%計(jì)

算,折合到當(dāng)前值的數(shù)目如表1所示:

表1每年效益折算的當(dāng)前值

年效益(元)利率(1+0.()5尸當(dāng)前值(元)預(yù)計(jì)當(dāng)前值(元)

1200001.051904719047

2200001.10251814037187

32(X)0()1.15761727754464

42(X)()()1.21551645470918

5

根據(jù)表1可計(jì)算出以下經(jīng)濟(jì)指標(biāo):

純收入=4年累計(jì)的當(dāng)前值-系統(tǒng)投資=70918-55000=15918(元)

投資回收期=3+(55000-54464)/16454-3.033年

(5)某旅館的電話號他服務(wù)如下:

可以撥分機(jī)號和外線號碼。分機(jī)號是從7201?7299。外線號碼先撥9,然

后是市話號碼或長話號碼。長話號碼是以區(qū)號和市話號碼組成。區(qū)號是從

100?300中任意的數(shù)字串。市話號碼是以局號和分句號組成。局號可以是455、

466、888、552中任意一個(gè)號碼。分局號是是任意長度為4的數(shù)字串。

要求:寫出在數(shù)據(jù)字典中,電話號碼的數(shù)據(jù)條目的定義(即組成)

解:電話號碼二分機(jī)號|外線號碼

分機(jī)號=7201...7299

外線號碼=9+[市話號碼|長話號碼]

長話號碼=區(qū)號+市話號碼

區(qū)號=100...300

市話號碼=局號+分局號

局號=L455|466|888|552J

分局號:4{數(shù)字}4

(6)某工廠的采購部每天需要一張訂貨報(bào)表,報(bào)表按零件編號排序,表中列出

所有需要再次訂貨的零件。對于每個(gè)需要再次訂貨的零件,應(yīng)該列出下述數(shù)據(jù):

零件編號,零件名稱,訂貨數(shù)量,目前價(jià)格,主要供應(yīng)者,次要供應(yīng)者。零件

入庫或出庫稱為事務(wù),通過存放在庫房的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。當(dāng)

零件庫存量少于庫存量臨界值,決定再次訂貨,畫出訂貨系統(tǒng)的數(shù)據(jù)流圖。

解:問題分析:源點(diǎn)/終點(diǎn),處理,數(shù)據(jù)存儲,數(shù)據(jù)流

1)源點(diǎn)/終點(diǎn):系統(tǒng)之外的實(shí)體(人,物,系統(tǒng))

源點(diǎn):倉庫管理員

終點(diǎn):采購員

2)處理:

需要報(bào)表一>產(chǎn)生報(bào)表

處理日常事務(wù)一>事務(wù)處理

3)數(shù)據(jù)存儲:

6

訂貨信息

庫存清單

4)數(shù)據(jù)流:

訂貨報(bào)表:零件編號、名稱、數(shù)量

事務(wù):零件編號、事務(wù)類型、數(shù)量

Stepl:頂層數(shù)據(jù)流圖系統(tǒng)級

表1訂貨系統(tǒng)頂層DFD圖

構(gòu)成:基本系統(tǒng)模型+源點(diǎn)+終點(diǎn)

一般采用自頂向下逐步細(xì)化的分層繪制方法

Step2:進(jìn)一步分解——功能級

表2訂貨系統(tǒng)。層DFD圖

Step3:進(jìn)一步分解——功能級

表3訂貨系統(tǒng)1層DFD圖

(7)開發(fā)某工程中使用的CAD系統(tǒng)需要投資20萬元,經(jīng)估算在工程中用該

CAD系統(tǒng)后將取代大部分人工設(shè)計(jì)工作,每年可節(jié)省9.6萬元。若該軟件的生

存期為5年,年利率按5%計(jì)算,試求該項(xiàng)目的凈收入。

解:若按年利率5%計(jì)算,貨幣時(shí)間價(jià)值折合到當(dāng)前值的數(shù)目如表2所示:

7

表2貨幣時(shí)間價(jià)值(萬元)

年份將來值(l+i)n現(xiàn)在值累計(jì)現(xiàn)在值

(萬元)(萬元)

19.61.059.14299.1429

29.61.10258.707517.8513

39.61.15768.292826.1432

49.61.21557.897934.0411

59.61.27637.521941.5630

純收入=5年累計(jì)的當(dāng)前值-系統(tǒng)投資=41.5630-20=21.5630(萬元)

8

第3章

一、選擇題

(1)B(2)D(3)B(4)B(5)B

二、簡答題

(1)答:需求分析需要4個(gè)步驟,分別獲取、建模、描述和驗(yàn)證。獲取需求實(shí)

質(zhì)上是一個(gè)需求收集的過程,要做充分的調(diào)查研究°通常是從分析當(dāng)前系統(tǒng)包

含的數(shù)據(jù)開始,分析當(dāng)前系統(tǒng)在處理信息時(shí)的不足,用戶希望改進(jìn)的主要問題

及迫切性等。收集需求的常用方法有問卷調(diào)查、訪談、實(shí)地操作、建立原型等,

收集的需求主要包括功能需求、性能需求、可靠性需求、可用性、人機(jī)界面需

求、約束、出錯處理等內(nèi)容。需求分析的核心任務(wù)是建立分析模型,即把來自

用戶的需求信息通過分析、提取、歸納、抽象建立起描述目標(biāo)系統(tǒng)的模型。傳

統(tǒng)的面向過程的軟件工程方法學(xué),主要采用數(shù)據(jù)流圖建立目標(biāo)系統(tǒng)的邏輯模型。

需求描述是指編制需求分析階段各類文檔。一般情況下,對于大型、復(fù)雜軟件

系統(tǒng)在需求分析階段會產(chǎn)生3個(gè)文檔:系統(tǒng)定義文檔(用于描述用戶需求的報(bào)

告)、系統(tǒng)需求規(guī)格說明書、軟件需求規(guī)格說明書,分別從不同的角度和層次

描述項(xiàng)目開發(fā)的需求。對于簡單的小規(guī)模軟件系統(tǒng),只需編制SRS即可。因?yàn)?/p>

需求分析的成果是后續(xù)開發(fā)的重要依據(jù)和基礎(chǔ),為了提高軟件產(chǎn)品的最終質(zhì)量,

降低開發(fā)成本,必須對需求分析結(jié)果從完整性、一致性、有效性和現(xiàn)實(shí)性4個(gè)

方面進(jìn)行嚴(yán)格的正確性驗(yàn)證,并且要對需求的變更實(shí)施可回溯的管理,避免無

法追蹤錯誤來源導(dǎo)致的混亂。

(2)答:包括6個(gè)方面:確定對系統(tǒng)的綜合要去;分析系統(tǒng)的數(shù)據(jù)需求;建立

系統(tǒng)的邏輯模型;修訂系統(tǒng)開發(fā)計(jì)劃;編寫軟件需求規(guī)格說明書;需求分析評

審。

(3)答:結(jié)構(gòu)化分析方法采用歸納思維和演繹思維的邏輯方法,逐步建立目標(biāo)

系統(tǒng)的邏輯模型(包括數(shù)據(jù)模型、功能模型和行為模型),進(jìn)而描繪出滿足用

戶要求的軟件系統(tǒng)。

結(jié)構(gòu)化需求分析方法基于“分解“和”抽象”的基本指導(dǎo)思想,采用面向數(shù)據(jù)流自

頂向下逐步求精的分析策略,逐步建立目標(biāo)系統(tǒng)的邏輯模型。

“分解”是面對一個(gè)復(fù)雜系統(tǒng)時(shí),為了將復(fù)雜性降低到人類認(rèn)知能力可以掌

握的程度,而把一個(gè)大系統(tǒng)(問題)分解成若干個(gè)小問題,然后分別解決。

9

需求分析的目標(biāo)之一是把數(shù)據(jù)流圖中的數(shù)據(jù)流和數(shù)據(jù)存儲分解定義到元素

級。通常做法是從數(shù)據(jù)流圖的輸出端著手分析,這是因?yàn)檩敵鰯?shù)據(jù)決定了系統(tǒng)

必須具有的最基本的組成元素(即功能)。

具體做法是,沿著數(shù)據(jù)流圖從輸出端往輸入端回溯,以確定每個(gè)數(shù)據(jù)元素

的來源,與此同時(shí)也就初步定義了有關(guān)的算法。通常把分析過程中得到的數(shù)據(jù)

元素的信息定義成數(shù)據(jù)字典,對算法的簡明描述記錄在IPO表中。通過分析而

補(bǔ)充的數(shù)據(jù)流、數(shù)據(jù)存儲和處理,應(yīng)該添加到數(shù)據(jù)流圖的適當(dāng)位置。復(fù)查的過

程是從輸入端開始,向用戶解釋輸入的數(shù)據(jù)是經(jīng)過怎樣的處理一步步變成了輸

出數(shù)據(jù)。反復(fù)經(jīng)過上述過程,把數(shù)據(jù)流圖“分解“擴(kuò)展到更低(即更詳細(xì))的層

次,從而得到更具體、更令人滿意的功能性需求的了解。

(4)答:首先進(jìn)行初步訪談,通過用戶對基本問題的回答,初步確定待解決問

題的范圍和解決方案。然后開發(fā)者和用戶分別寫出“產(chǎn)品需求

定會議的時(shí)間和地點(diǎn)以及主持會議的協(xié)調(diào)人。邀請雙方的代表出席會議,

并在會前預(yù)先把寫好的產(chǎn)品需求分發(fā)給每一位與會者。

要去每位與會者會前認(rèn)真審查產(chǎn)品需求,并列出作為系統(tǒng)環(huán)境組成的部分

對象、系統(tǒng)將產(chǎn)生的對象以及系統(tǒng)為了完成自己的功能將使用的對象。此外,

還要求每位與會者列出操作這些對象或與這些對象交互的服務(wù)(即處理或功

能)。最后還應(yīng)該列出約束條件(例如成本、規(guī)模、完成日期)和性能標(biāo)準(zhǔn)(例

如速度、容量)。并不希望每位與會者列出的內(nèi)容毫無遺漏,但求能夠獲得對

目標(biāo)系統(tǒng)準(zhǔn)確的認(rèn)識。

會議開始后,討論的第一個(gè)問題是是否需耍這個(gè)新產(chǎn)品,一旦大家都同意

確實(shí)需要這個(gè)新產(chǎn)品,每位與會者則把他們會前準(zhǔn)備好的列表展示出來供大家

討論。在這個(gè)階段,嚴(yán)格禁止批評和爭論,以免影響每位與會者深入交流的意

愿。

在討論的基礎(chǔ)上,大家一起共同創(chuàng)建一張包含各個(gè)議題的組合列表。調(diào)整

后的組合列表并不真正刪除某項(xiàng)內(nèi)容。在每個(gè)議題的組合列表都建立起來后,

在由協(xié)調(diào)人主持討論這些列表,以形成每個(gè)議題都達(dá)到意見一致的局面。

一旦得到了意見一致的列表,就把與會者分成更小的小組,針對每張列表

中的項(xiàng)目制定小型規(guī)格說明(需要對列表中包含的單詞或短語進(jìn)行準(zhǔn)確的說

明)。

10

然后,每個(gè)小組向全體與會者展示他們制定的小型規(guī)格說明,供大家討論。

意見一致后,每個(gè)與會者都制定一整套確認(rèn)標(biāo)準(zhǔn),并把自己制定的標(biāo)準(zhǔn)再次提

交會議討論,以創(chuàng)建出意見一致的確認(rèn)標(biāo)準(zhǔn)。最后,有一名或多名與會者根據(jù)

會議成果起草完整的軟件規(guī)格說明書。

三、應(yīng)用題

(1)描繪本系統(tǒng)功能的數(shù)據(jù)流圖如圖所示。

5

打印利息

清單

描繪本系統(tǒng)數(shù)據(jù)模型的E-R圖如下:

(2)描繪本系統(tǒng)的功能級數(shù)據(jù)流圖如下:

11

12

第4章

一、選擇題(多選)

(1)A(2)ABCD(3)BD(4)C(5)A

二、簡答題

(1)答:總體設(shè)計(jì)目標(biāo)是:是得到良好的軟件總體結(jié)構(gòu),即獨(dú)立性良好、

規(guī)模適中的一組模塊以及深度、寬度、扇入、扇出合適的系統(tǒng)結(jié)構(gòu)。主要任務(wù)

是把分析階段得到的數(shù)據(jù)模型映射成數(shù)據(jù)庫設(shè)計(jì),把數(shù)據(jù)流圖映射成軟件功能

結(jié)構(gòu),行為模型可以用于詳細(xì)設(shè)計(jì)階段的流程、算法設(shè)計(jì)。

(2)答:設(shè)想供選擇的方案,選取合理的方案,推薦最佳方案,功能分級,

設(shè)計(jì)軟件結(jié)構(gòu),數(shù)據(jù)庫設(shè)計(jì),制定測試計(jì)劃,編寫文檔,審查和復(fù)查。

(3)答:改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性,模塊規(guī)模應(yīng)該適中,深度、寬度、

扇入、扇出都應(yīng)當(dāng)適中,模塊的作用域應(yīng)該在控制與內(nèi),降低模塊結(jié)構(gòu)的復(fù)雜

度,設(shè)計(jì)單入口、單出口的模塊,模塊功能應(yīng)該可以預(yù)測。

(4)答:復(fù)查基本系統(tǒng)模型,復(fù)查并精化數(shù)據(jù)流圖,確定數(shù)據(jù)流圖的類型,

確定數(shù)據(jù)流的邊界,完成“第一級分解”,完成“第二級分解”,優(yōu)化。

(5)答:機(jī)械地遵循上述映射規(guī)則很可能會得出一些不必要的控制模塊,

如果它們確實(shí)用處不大,那么應(yīng)該合并它們。如果控制模塊功能過分復(fù)雜,可

以適當(dāng)?shù)卦黾又虚g層的控制模塊或者進(jìn)一步將它們分解。

何優(yōu)化過程不能違背設(shè)計(jì)原理,不能違背問題域常識、不能為了最求所謂

的“最佳設(shè)計(jì)”而優(yōu)化。

設(shè)計(jì)的優(yōu)化可能會導(dǎo)出不同的軟件結(jié)構(gòu),要從中選優(yōu),力求得到“最好”的

結(jié)構(gòu)。避免把結(jié)構(gòu)的優(yōu)化留到過程設(shè)計(jì)階段,這也是把結(jié)構(gòu)設(shè)計(jì)和過程設(shè)計(jì)分

開的價(jià)值所在。

結(jié)構(gòu)簡單往往表明效率高。設(shè)計(jì)優(yōu)化應(yīng)該力求做到在有效模塊化的前提下

使用盡可能少的模塊數(shù),以及在能夠滿足信息要求的前提下使用最簡單的數(shù)據(jù)

結(jié)構(gòu)。

三、應(yīng)用題

(1)答:工資管理子系統(tǒng)數(shù)據(jù)流圖如下所示。

13

計(jì)算應(yīng)扣除

稅金

稅金

生成工資表

工資表信息

工資管理子系統(tǒng)層次圖如下:

工資管理系統(tǒng)

子系統(tǒng)

錄入扣除信息計(jì)算數(shù)據(jù)輸出數(shù)據(jù)

(2)頂層數(shù)據(jù)流圖

14

還書處理分支數(shù)據(jù)流圖

修改庫存

I

庫存

查詢處理分支數(shù)據(jù)流圖

15

借書文件庫存

借閱事務(wù)前輛事務(wù)

信息渺利

接收讀者借閱庫存

事務(wù)?

事務(wù)查詢查詢查詢

借閱處理分支數(shù)據(jù)流圖

注意事項(xiàng):必須保證登記完借書文件和修改完庫存后再出借圖書給借閱人,“登

記借書文件”和“修改庫存”誰先誰后影響不大。

事務(wù)

16

某圖書管理

系統(tǒng)

輸入信息業(yè)務(wù)辦理日常管理

證用

驗(yàn)

續(xù)

續(xù)

統(tǒng)

計(jì)

——

——

——

17

第5章

一、填空題

(1)順序、選擇和循環(huán)三種基本控制結(jié)構(gòu)

(2)完整嵌套

(3)層次線

(4)程序流程圖

(5)表格

(6)模塊接口計(jì)

(7)數(shù)據(jù)結(jié)構(gòu)

(8)結(jié)構(gòu)化程序設(shè)計(jì)、自頂向下、逐步求精油

(9)SP、問題分析圖

(10)結(jié)構(gòu)化

(11)詳細(xì)設(shè)計(jì)說明書

二、選擇題

⑴D(2)C(3)C⑷B(5)A(6)B(7)B(8)A

⑼D(10)C(11)B(12)B(13)A(14)B(15)D

三、簡答題

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

答:①為每個(gè)模塊確定采用的算法。

②確定每一模塊的內(nèi)部數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫的物理結(jié)構(gòu)。

③確定模塊接口的細(xì)節(jié)。

④要為每一個(gè)模塊設(shè)計(jì)出一組測試用例。

⑤編寫文檔,參加復(fù)審。

詳細(xì)設(shè)計(jì)的描述方法有圖形、表格和語言,其中,圖形常用結(jié)構(gòu)化程序流

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

為工具。

(2)答:結(jié)構(gòu)化程序設(shè)計(jì)的要點(diǎn)主要有以下三個(gè)。

①采用自頂向下、逐步求精的程序設(shè)計(jì)方法。

②使用三種基本控制結(jié)構(gòu)構(gòu)造程序。任何程序都可以由順序、選擇、重復(fù)

(循環(huán))三種基本控制結(jié)構(gòu)構(gòu)造。

18

③每個(gè)程序模塊只有一個(gè)人口和一個(gè)出口。

(3)答:詳細(xì)設(shè)計(jì)階段描述處理過程常用的三種工具:圖形、表格和語言。

詳細(xì)設(shè)計(jì)工具有結(jié)構(gòu)化程序流程圖、問題分析圖、盒圖和過程設(shè)計(jì)語言、判定

表及判定樹。

(4)答:流程圖的優(yōu)點(diǎn)是直觀清晰、易于使用,是開發(fā)者普遍采用的工具,

但是它具有自身的缺點(diǎn)。

①可隨心所欲地控制流程線的流向.容易造成非結(jié)構(gòu)化的程序結(jié)構(gòu)。

②流程圖不易反映逐步求精的過程,往往反映最后結(jié)果。

③不易表示數(shù)據(jù)結(jié)構(gòu)。

為克服流程圖的最大缺陷,要求流程圖由三種控制結(jié)構(gòu)順序組合和完全嵌

套而成,不能交叉,這樣的流程圖是結(jié)構(gòu)化的流程圖。

(5)答:PAD的特點(diǎn)如下。

①清晰反映程序的層次結(jié)構(gòu)。

②支持逐步求精的設(shè)計(jì)方法,自左至右逐步細(xì)化。

③易讀易寫,使用方便。

④支持結(jié)構(gòu)化的程序設(shè)計(jì)原理。

⑤可自動生成程序。

(6)答:PDL是在偽碼的基礎(chǔ)上,擴(kuò)充了模塊的定義與調(diào)用、數(shù)據(jù)定義和

輸入輸出而形成的。它是一種用于描述模塊算法設(shè)計(jì)和處理細(xì)節(jié)的語言。分為

內(nèi)外兩層語言,外層語法具有嚴(yán)格的規(guī)則;內(nèi)層表示實(shí)際操作和條件的自然語

言,語法自由。

PDL表示的程序結(jié)陶一般有下列幾種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、重復(fù)結(jié)構(gòu)、出

口結(jié)構(gòu)、擴(kuò)充結(jié)構(gòu)(模塊定義、模塊調(diào)用、數(shù)據(jù)定義、輸入/輸出)等。

PDL的特點(diǎn)如下:

①關(guān)鍵字應(yīng)有固定的語法,提供結(jié)構(gòu)化的控制結(jié)構(gòu)和數(shù)據(jù)說明,并在控制結(jié)

構(gòu)的頭尾都加關(guān)鍵字,體現(xiàn)模塊化的特點(diǎn)。

②用自然語言敘述系統(tǒng)處理功能。

③應(yīng)有說明各種數(shù)據(jù)結(jié)構(gòu)的手段.

④描述模塊定義和調(diào)用及模塊接口模式。

PDL的優(yōu)缺點(diǎn)如下:

19

①可以靈活地表達(dá)算法或作為注釋直接插入到原程序當(dāng)中,可用普通的文

字處理系統(tǒng)進(jìn)行書寫和編輯,并可用自動處理程序自動生成。就明的道

②不如圖形工具形象直觀,對復(fù)雜的描述不如判定表清晰。

(7)答:用方框圖來代替?zhèn)鹘y(tǒng)流程圖的方法,稱為N-S圖。N-S圖的優(yōu)點(diǎn)是

所有程序結(jié)構(gòu)均用方框表示,無論并列或嵌套,程序結(jié)構(gòu)清晰可見。而且它只能表

達(dá)結(jié)構(gòu)化的程序邏輯,使用它的人必須遵守結(jié)構(gòu)化程序設(shè)計(jì)的規(guī)定。不足是當(dāng)

程序內(nèi)嵌套的層數(shù)增多時(shí),內(nèi)層的方框會越來越小,從而增加繪圖的難度,并使

圖形清晰性受影響。

四、應(yīng)用題

(1)用Halstead度量還可以用來預(yù)測程序中可能存在的錯誤E。一個(gè)程序?qū)?/p>

75個(gè)數(shù)據(jù)庫項(xiàng)共訪問1300次,對150個(gè)運(yùn)算符共使用了1200次,預(yù)測該程序

的錯誤數(shù)是多少?

那么預(yù)測該程序的錯誤數(shù):

E=(l200+1300)*log2(75+150)/3000?6.5

即預(yù)測該程序中可能包含6?7個(gè)錯誤。

(2)假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過30kg的行李。當(dāng)行

李重量超過30kg時(shí),對頭等艙的國內(nèi)乘客超重部分每公斤收費(fèi)4元,對其他艙

的國內(nèi)乘客超重部分每公斤收費(fèi)6元,對外國乘客超重部分每公斤收費(fèi)比國內(nèi)

乘客多一倍,對殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。用判定樹表

示計(jì)算行李費(fèi)的算法。

20

Rules

__________________人___________________

Rulenumbers123456789

國內(nèi)乘客TTTTFFFF

Condition頭等艙TFTFTFTF

rows<

殘疾乘客FFTTFFTT

行李重量WSQ30TFFFFFFFF

免費(fèi)X

(W-30)xX

Actionrows(W-30)xX

《(W-30)xXX

(W-30)xXX

(W-30)*X

(W-30)x12X

頭等艙匚殘疾乘客(W-30)X2

正常乘客"-30)X4

國內(nèi)乘客

殘疾乘客

其他艙匚(Jr-3O)X3

行李重量正常乘客"-30)X6

[K>30kg

頭等艙匚殘疾乘客""30)X4

正常乘客(獷-30)X8

外國乘客

行李費(fèi)殘疾乘客(?z-30)X6

算法其他艙匚

正常乘客"-30)X12

行李重量

%(30kg免費(fèi)

圖1用判定樹表示計(jì)算行李費(fèi)的算法

(3)畫出下列偽碼程序的程序流程圖和盒圖

START

IFpTHEN

WHILEqDO

f

ENDDO

ELSE

BLOCK

o

n

ENDBLOCK

ENDIF

STOP

21

22

第6章

一、選擇題

(1)D(2)B(3)A(4)C(5)C(6)C(7)D(8)C(9)D(10)

B

(11)B(12)A

二、簡答題

(1)軟件測試應(yīng)該劃分為幾個(gè)階段?各個(gè)階段應(yīng)重點(diǎn)測試的內(nèi)容是什么?

答:軟件測試可分為單元測試,集成測試,系統(tǒng)測試,驗(yàn)收測試四個(gè)階段。

單元測試又稱模塊測試、邏輯測試或結(jié)構(gòu)測試,是針對軟件設(shè)計(jì)的最小單

位一一程序模塊或功能模塊,進(jìn)行正確性檢驗(yàn)的測試工作。其目的在于檢驗(yàn)每

個(gè)程序單元能夠正確實(shí)現(xiàn)詳細(xì)設(shè)計(jì)說明中的模塊功能、性能、接口和設(shè)計(jì)約束

等要求,發(fā)現(xiàn)各個(gè)模塊內(nèi)部可能存在的各種錯誤。

集成測試又稱組裝測試、綜合測試或聯(lián)合測試。通常在單元測試的基礎(chǔ)上,

將所有的程序模塊進(jìn)行有序的、遞增的測試。集成測試是檢驗(yàn)程序單元或部件

的接口關(guān)系,逐步集成為符合概要設(shè)計(jì)要求的程序部件或整個(gè)系統(tǒng)。

系統(tǒng)測試為驗(yàn)證和確認(rèn)系統(tǒng)是否達(dá)到其原始目標(biāo),而對集成的硬件和軟件

系統(tǒng)進(jìn)行的測試。系統(tǒng)測試是在真實(shí)或模擬系統(tǒng)運(yùn)行的環(huán)境下,檢查完整的程

序系統(tǒng)能否和系統(tǒng)(包括計(jì)算機(jī)硬件、外設(shè)、網(wǎng)絡(luò)和系統(tǒng)軟件、支持平臺等)

正確配置、連接,并滿足用戶需求。系統(tǒng)測試的主要依據(jù)是《系統(tǒng)需求規(guī)格說

明書》文檔。

驗(yàn)收測試又稱交付測試,是軟件在完成了單元測試、集成測試、系統(tǒng)測試

之后,產(chǎn)品發(fā)布之前進(jìn)行的軟件測試活動。驗(yàn)收測試又分為Alpha測試(。測

試)和Beta測試(B測試),Alpha測試是由一個(gè)用戶在開發(fā)環(huán)境下進(jìn)行的測

試,或者是公司內(nèi)部的月戶在模擬實(shí)際操作環(huán)境下進(jìn)行的受控測試,Beta測試

是軟件的多個(gè)用戶在一個(gè)或多個(gè)用戶的實(shí)際使用環(huán)境下進(jìn)行的測試。

(2)在軟件測試中,應(yīng)遵循哪些原則?

答:在軟件測試過程中,通常應(yīng)該遵循以下七個(gè)原則。

①所有的測試都應(yīng)追溯到用戶需求。這是因?yàn)檐浖哪康氖鞘褂脩敉瓿深A(yù)

定的任務(wù),滿足其需求。而軟件測試揭示軟件的缺陷和錯誤,一旦修正這些錯

誤,就能更好地滿足用戶需求。

23

②應(yīng)盡早地和不斷地進(jìn)行軟件測試。由于軟件的復(fù)雜性和抽象性,在軟件

生命周期各階段都可能產(chǎn)生錯誤,所以不應(yīng)把軟件測試僅僅看作是軟件開發(fā)的

一個(gè)獨(dú)立階段,而應(yīng)當(dāng)把它貫穿到軟件開發(fā)的各個(gè)階段中去。在需求分析和設(shè)

計(jì)階段就應(yīng)開始進(jìn)行測試工作,編寫相應(yīng)的測試計(jì)劃及測試設(shè)計(jì)文檔,同時(shí)堅(jiān)

持在開發(fā)各階段進(jìn)行技術(shù)評審和驗(yàn)證,這樣才能盡早發(fā)現(xiàn)和預(yù)防錯誤,杜絕某

些缺陷和錯誤,提高軟件的質(zhì)量。測試工作進(jìn)行得越早,越有利于提高軟件的

質(zhì)量,這是預(yù)防性測試的基本原則。

③在有限的時(shí)間和資源下進(jìn)行完全測試并找出軟件所有的錯誤和缺陷是

不可能的,軟件測試不能無限進(jìn)行下去,應(yīng)適時(shí)終止。因?yàn)椋瑴y試輸入量大、

輸出結(jié)果多、路徑組合多、用有限的資源來達(dá)到完全測試是不現(xiàn)實(shí)的。

④測試只能證明軟件存在錯誤,而不能證明軟件沒有錯誤。測試無法顯示

潛在的錯誤和缺陷,繼續(xù)進(jìn)一步測試可能還會找到其它錯誤和缺陷。

⑤充分關(guān)注測試中的集群現(xiàn)象。在測試的程序段中,若發(fā)現(xiàn)的錯誤數(shù)目比

較多,則殘存在

溫馨提示

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

評論

0/150

提交評論