軟件工程導(dǎo)論第五版課后習(xí)題答案_第1頁
軟件工程導(dǎo)論第五版課后習(xí)題答案_第2頁
軟件工程導(dǎo)論第五版課后習(xí)題答案_第3頁
軟件工程導(dǎo)論第五版課后習(xí)題答案_第4頁
軟件工程導(dǎo)論第五版課后習(xí)題答案_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件工程導(dǎo)論課后習(xí)題答案第一章軟件工程概論1-11 .什么是軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。這些問題表 現(xiàn)在以下幾個(gè)方面:(1)用戶對開發(fā)出的軟件很難滿意。(2)軟件產(chǎn)品的質(zhì)量往往靠不住。(3) 一般軟件很難維護(hù)。(4)軟件生產(chǎn)效率很低。(5)軟件開發(fā)成本越來越大。(6)軟件成本與開發(fā)進(jìn)度難以估計(jì)。(7)軟件技術(shù)的發(fā)展遠(yuǎn)遠(yuǎn)滿足不了計(jì)算機(jī)應(yīng)用的普及與深入的需要。2 .軟件危機(jī)有那些典型表現(xiàn) (1)對軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。(2)用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。(3)軟件產(chǎn)品的質(zhì)量往往靠不住。(4)軟件常常是不可維護(hù)的。(5)

2、軟件通常沒有適當(dāng)?shù)奈臋n資料。(6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。(7)軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢。3 .為什么會(huì)產(chǎn)生軟件危機(jī)(1)開發(fā)人員方面,對軟件產(chǎn)品缺乏正確認(rèn)識,沒有真正理解軟件產(chǎn)品是一個(gè)完整的配置組 成。造成開發(fā)中制定計(jì)劃盲目、編程草率,不考慮維護(hù)工作的必要性。(2)軟件本身方面,對于計(jì)算機(jī)系統(tǒng)來說,軟件是邏輯部件,軟件開發(fā)過程沒有統(tǒng)一的、公 認(rèn)的方法論和規(guī)范指導(dǎo),造成軟件維護(hù)困難。(3)尤其是隨著軟件規(guī)模越來越大,復(fù)雜程度越來越高,原有軟件開發(fā)方式效率不高、質(zhì)量不 能保證、成本過高、研制周期不易估計(jì)、維護(hù)困難等一系列問題更為突出

3、,技術(shù)的發(fā)展已經(jīng) 遠(yuǎn)遠(yuǎn)不能適應(yīng)社會(huì)需求。4 .怎樣克服軟件危機(jī)(1)充分吸收和借鑒人類長期以來從事各種工程項(xiàng)目中積累的行之有效的有效原理、概念、 技術(shù)與方法,特別是吸取幾十年來人類從事計(jì)算機(jī)硬件研究和開發(fā)的經(jīng)驗(yàn)教訓(xùn)。在開發(fā)軟件 的過程中努力作到良好的組織,嚴(yán)格的管理,相互友好的協(xié)作。(2)推廣在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功的技術(shù)和方法,并研究更好、更有效的技術(shù)和方法,盡快克服在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的一些錯(cuò)誤概念和作法。(3)根據(jù)不同的應(yīng)用領(lǐng)域,開發(fā)更好的軟件工具并使用這些工具。將軟件開發(fā)各個(gè)階段使用的軟件工具集合成一個(gè)整體,形成一個(gè)很好的軟件開發(fā)支環(huán)環(huán)境??傊疄榱私鉀Q軟件危機(jī),既要有技

4、術(shù)措施 (方法和工具),又要有必要的組織管理措施。1-3、1-5、根據(jù)歷史數(shù)據(jù)可以做出如下的假設(shè):對計(jì)算機(jī)存儲(chǔ)容量的需求大致按下面公式描述的趨勢逐年增加:M=(Y-1960)存儲(chǔ)器的價(jià)格按下面公式描述的趨勢逐年下降:P1=X (美分/位)如果計(jì)算機(jī)字長為16位,則存儲(chǔ)器價(jià)格下降的趨勢為:P2=X (美元/字)在上列公式中Y代表年份,M是存儲(chǔ)容量(字?jǐn)?shù)),P1和P2代表價(jià)格?;谏鲜黾僭O(shè)可以比較計(jì)算機(jī)硬件和軟件成本的變化趨勢。要求計(jì)算:(1)在1985年對計(jì)算機(jī)存儲(chǔ)容量的需求估計(jì)是多少如果字長為16位,這個(gè)存儲(chǔ)器的價(jià)格是多少(2)假設(shè)在1985年一名程序員每天可開發(fā)出 10條指令,程序員的平均工

5、資是每月4000美元。如果一條指令為一個(gè)字長,計(jì)算使存儲(chǔ)器裝滿程序所需用的成本。(3)假設(shè)在1995年存儲(chǔ)器字長為32位,一名程序員每天可開發(fā)出 30條指令,程序員的月平均工資為6000美元,重復(fù)(1)、(2)題。1-6什么是軟件過程它與軟件工程方法學(xué)有何關(guān)系軟件過程是為了開發(fā)出高質(zhì)量的軟件產(chǎn)品所需完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件過程定義了運(yùn)用技術(shù)方法的順序、應(yīng)該交付的文檔資料、為保證軟件質(zhì)量和 協(xié)調(diào)軟件變化必須采取的管理措施,以及標(biāo)志完成了相應(yīng)開發(fā)活動(dòng)的里程碑。軟件過程是軟件工程方法學(xué)的3個(gè)重要組成部分之一。4 .構(gòu)成軟件項(xiàng)目的最終產(chǎn)品:應(yīng)用程序、系統(tǒng)程序、面向用

6、戶的文檔資料和面向開發(fā)者的文檔資料。5 .什么是軟件生存周期軟件生存周期是指從軟件定義、開發(fā)、使用、維護(hù)到淘汰的全過程。6 .軟件生存周期為什么劃分成階段(1)任何一個(gè)階段的具體任務(wù)不僅獨(dú)立,而且簡單,便于不同人員分工協(xié)作,從而降低 整個(gè)軟件開發(fā)工作的困難程度。(2)可以降低每個(gè)階段任務(wù)的復(fù)雜程度,簡化不同階段的聯(lián)系,有利于工程的組織管理, 也便于采用良好的技術(shù)方法。(3)使軟件開發(fā)的全過程以一種有條不紊的方式進(jìn)行,保證軟件的質(zhì)量,特別是提高了 軟件的可維護(hù)性。7 .應(yīng)該怎樣來劃分階段(1)每一個(gè)階段的任務(wù)盡可能獨(dú)立;(2)同一階段內(nèi)的任務(wù)性質(zhì)盡可能相同;(3)每一個(gè)階段任務(wù)的開始和結(jié)束有嚴(yán)格

7、的標(biāo)準(zhǔn)。8 .軟件開發(fā)模型有幾種它們的開發(fā)方法有可特點(diǎn)軟件開發(fā)模型有瀑布型、漸增型和變換型。瀑布型開發(fā)方法是按照軟件生存周期的劃分依次實(shí)施,每一個(gè)階段有明確規(guī)定的任務(wù)。它的特點(diǎn):(1)各個(gè)階段的順序性和依賴性;(2)劃分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn);(3)每個(gè)階段必須完成規(guī)定的文檔,對其中問題通過復(fù)審及早發(fā)現(xiàn),及早解決。漸增型開發(fā)方法及特點(diǎn):(1)從部分需求出發(fā),先建立一個(gè)不完全的系統(tǒng),通過測試運(yùn)行該系統(tǒng)取得經(jīng)驗(yàn)和信 息反饋,加深對軟件需求的理解,進(jìn)一步使系統(tǒng)擴(kuò)充和完善。如此反復(fù),直至軟件人員和用 戶對所設(shè)計(jì)完成的軟件系統(tǒng)滿意為止。(2)在漸增型開發(fā)下的軟件是隨軟件開發(fā)的過程而

8、逐漸形成的。(3)漸增型開發(fā)方法適合于知識型軟件的開發(fā),設(shè)計(jì)系統(tǒng)時(shí)對用戶需求的認(rèn)識開始不 是很清楚的,需要在開發(fā)過程中不斷認(rèn)識、不斷獲得新的知識去豐富和完善系統(tǒng)。多數(shù)研究 性質(zhì)的試驗(yàn)軟件,一般采用此方法。變換型開發(fā)方法及特點(diǎn):(1)從軟件需求的形式化規(guī)格說明出發(fā),經(jīng)過一系列的程序變換,得到最終的程序系 統(tǒng)。(2)該方法必須有嚴(yán)格的數(shù)學(xué)理論和形式化技術(shù)的支持。9 .什么是軟件工程軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。(1)它采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件;(2)它將管理技術(shù)與當(dāng)前經(jīng)過時(shí)間考驗(yàn)的而證明是正確的技術(shù)方法結(jié)合起來;(3)它強(qiáng)調(diào)使用生存周期方法學(xué)和結(jié)構(gòu)分析和結(jié)構(gòu)

9、技術(shù);(4)經(jīng)過人們長期的努力和探索,圍繞著實(shí)現(xiàn)軟件優(yōu)質(zhì)高產(chǎn)這個(gè)目標(biāo),從技術(shù)到管理兩個(gè)方面做了大量的努力,逐漸形成了"軟件工程學(xué)"這一新的學(xué)科。10 .什么是軟件工程環(huán)境:方法與工具的結(jié)合,加上配套的軟、硬件支持稱為軟件工程環(huán)境。它能支持開發(fā)者按照軟件工程的方法,全面完成生存周期中的各項(xiàng)任務(wù)。第二章可行性研究習(xí)題答案1 .問題定義的任務(wù)和主要工作問題定義的任務(wù):將用戶提出的要求具體化、定量化;確定研制系統(tǒng)的范圍,明確研制的邊界。問題定義階段的工作:(1)通過調(diào)查研究,了解系統(tǒng)需求;(2)確定系統(tǒng)的功能需求、性能需求、可靠性需求、安全及保密性、資源、開發(fā)費(fèi)用及開發(fā)進(jìn)度等的需求

10、;(3)問題定義階段的產(chǎn)品-系統(tǒng)目標(biāo)與范圍說明書。2 .可行性研究目的確定在問題定義中所提出的問題是否值得去解,在限制條件下,問題能否解決。3 .可行性研究的任務(wù)(1)進(jìn)一步分析和澄清問題的定義,在澄清問題的基礎(chǔ)上,導(dǎo)出系統(tǒng)的邏輯模型;(2)從系統(tǒng)邏輯模型中,選擇問題的若干種主要解法,研究每一種解法的可行性,為以后的行動(dòng)提出建議;(3)如果問題沒有可行的解,建議停止系統(tǒng)開發(fā);如果問題有可行的解,應(yīng)該推薦一個(gè)較好 的解決方案,并為工程制定一個(gè)初步的計(jì)劃。4 .可行性研究包括哪幾方面的內(nèi)容(1)技術(shù)可行性:現(xiàn)有技術(shù)能否實(shí)現(xiàn)本系統(tǒng),現(xiàn)有技術(shù)人員能否勝任,開發(fā)系統(tǒng)的資源能否滿足;(2)經(jīng)濟(jì)可行性:經(jīng)濟(jì)

11、效益是否超出開發(fā)成本;(3)操作可行性:系統(tǒng)操作在用戶內(nèi)部行得通嗎(4)法律可行性:新系統(tǒng)開發(fā)是否會(huì)侵犯他人、集體或國家利益,是否違反國家法律。5 .可行性研究的步驟(1)復(fù)查系統(tǒng)的規(guī)模和目標(biāo);(2)研究目前正在使用的系統(tǒng),總結(jié)現(xiàn)有系統(tǒng)的優(yōu)劣,提出新系統(tǒng)的雛形;(3)導(dǎo)出新系統(tǒng)的高層邏輯模型;(4)推薦建議方案;(5)推薦行動(dòng)方針;(6)書寫計(jì)劃任務(wù)書(可行性報(bào)告);(7)提交審查。6 .可行性研究報(bào)告的主要內(nèi)容可行性分析的結(jié)果是可行性研究報(bào)告,內(nèi)容包括:(1)系統(tǒng)概述:說明開發(fā)的系統(tǒng)名稱,提出單位和開發(fā)單位。(2)可行性研究的前提:系統(tǒng)目標(biāo);要求;約束和限制;可行性研究的基本準(zhǔn)則等。(3)對

12、現(xiàn)有系統(tǒng)的分析:處理流程,圖示說明現(xiàn)有系統(tǒng)的處理流程和數(shù)據(jù)流程;現(xiàn) 有系統(tǒng)存在的問題。(4)系統(tǒng)需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。(5)建議系統(tǒng):系統(tǒng)目標(biāo);處理流程;系統(tǒng)結(jié)構(gòu),功能,性能;系統(tǒng)技術(shù)可行性;投 資和效益分析;操作可行性;法律可行性。(6)其它可選方案:與國內(nèi)外同類型方案的比較;提出一兩個(gè)可行性方案供論證和 探討。(7)制定下一階段的預(yù)算。(8)結(jié)論性意見:由用戶方、設(shè)計(jì)方和投資方共同簽署意見。2-4目前住院病人主要由護(hù)士護(hù)理,這樣做不僅需要大量護(hù)士,而且由于不能隨時(shí)觀察 危重病人的病情變化,還會(huì)延誤搶救時(shí)機(jī)。某醫(yī)院打算開發(fā)一個(gè)以計(jì)算機(jī)為中心的患者監(jiān)

13、護(hù) 系統(tǒng),請分層次地畫出描述本系統(tǒng)功能的數(shù)據(jù)流圖。醫(yī)院對患者8監(jiān)護(hù)系統(tǒng)的基本要求是隨時(shí)接收每個(gè)病人的生理信號(脈搏、體溫、血壓、心電圖等),定時(shí)記錄病人情況以形成患者日志,當(dāng)某個(gè)病人的生理信號超出醫(yī)生規(guī)定 的安全范圍時(shí)向值班護(hù)士發(fā)出警告信息,此外,護(hù)士在需要時(shí)還可以要求系統(tǒng)印出某個(gè)指定 病人的病情報(bào)告。從問題陳述可知,本系統(tǒng)數(shù)據(jù)源點(diǎn)是“病人”和“護(hù)士”,他們分別提供生理信號和要求病 情報(bào)告的信息。進(jìn)一步分析問題陳述,從系統(tǒng)應(yīng)該“定時(shí)記錄病人情況以形成患者日志”這 項(xiàng)要求可以想到,還應(yīng)該有一個(gè)提供日期和時(shí)間信息的“時(shí)鐘”作為數(shù)據(jù)源點(diǎn)。從問題陳述容易看出,本系統(tǒng)的數(shù)據(jù)終點(diǎn)是接收警告信息和病情報(bào)告的

14、護(hù)士。系統(tǒng)對病人生理信號的處理功能主要是“接收信號”、“分析信號”和“產(chǎn)生警告信息”。此外,系統(tǒng)還應(yīng)該具有“定時(shí)取樣生理信號”、“更新日志”和“產(chǎn)生病情報(bào)告”的功能。為了分析病人生理信號是否超出了醫(yī)生規(guī)定的安全范圍,應(yīng)該存儲(chǔ)“患者安全范BT信息。此外,定時(shí)記錄病人生理信號所形成的“患者日志”,顯然也是一個(gè)數(shù)據(jù)存儲(chǔ)。2-5北京某高校可用的電話號碼有以下幾類:校內(nèi)電話號碼由 4位數(shù)字組成,第1位數(shù)字不 是0;校外電話又分為本市電話和外地電話兩類,撥校外電話需先撥0,若是本市電話則再接著撥8位數(shù)字(第1位不是0),若是外地電話則撥3位區(qū)碼再撥8位電話號碼(第1位不是0)請用定義數(shù)據(jù)字典的方法,定義上

15、述的電話號碼。數(shù)據(jù)結(jié)構(gòu)的描述符號含義 舉 例=被定義為+與 x = a + b.,. 或.|.或 x = a , b , x = a | b . 或 m.n 重復(fù) x = a, x = 3a8(.)可選 x = (a)“.”基本數(shù)據(jù)元素x =“a”.連結(jié)符 x = 1.9電話號碼=校內(nèi)電話號碼|校外電話號碼校內(nèi)電話號碼=非零數(shù)字+3位數(shù)字求分析的描述工具有哪些有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定表、判定樹、結(jié)構(gòu)化自然語言、層次方框圖、Warnier圖、IPO圖和需求描述語言等。2 .需求分析的基本任務(wù)是什么準(zhǔn)確定義未來系統(tǒng)的目標(biāo),確定為了滿足用戶的需要系統(tǒng)必須做什么。3 .怎樣建立目標(biāo)系統(tǒng)的邏輯模型要經(jīng)

16、過哪些步驟建立目標(biāo)系統(tǒng)的邏輯模型的過程也就是數(shù)據(jù)流圖的分解過程。它的導(dǎo)出過程如圖:4 .什么是結(jié)構(gòu)化分析它的結(jié)構(gòu)化體現(xiàn)在哪里結(jié)構(gòu)化分析:使用數(shù)據(jù)流程圖、數(shù)據(jù)字典、結(jié)構(gòu)化英語、判定表和判定樹等工具,來建 立一種新的、稱為結(jié)構(gòu)化說明書的目標(biāo)文檔 -需求規(guī)格說明書。結(jié)構(gòu)化體現(xiàn)在將軟件系統(tǒng)抽象為一系列的邏輯加工單元,各單元之間以數(shù)據(jù)流發(fā)生關(guān)聯(lián)。 5.軟件需求規(guī)格說明書由哪些部分組成組成包括:(1)引言:編寫目的、背景說明、術(shù)語定義及參考資料等。(2)概述主要功能、約束條件或特殊需求。(3)數(shù)據(jù)流圖與數(shù)據(jù)字典。(4)用戶接口、硬件接口及軟件接口。(5)性能需求、屬性等。(6)其它需求,如數(shù)據(jù)庫、操作及故

17、障處理等。6 .為什么數(shù)據(jù)流圖要分層畫分層的 DFD要遵循哪些原則分層的目的:便于逐步細(xì)化、結(jié)構(gòu)清晰。畫分層的DFDg遵循哪些原則:(1)父圖與子圖之間數(shù)據(jù)要平衡。(2)分解的深度和層次達(dá)到使加工足夠簡單、易于理解的基本加工為止。(3)區(qū)分局部文件和局部外部項(xiàng)(局限于數(shù)據(jù)流中某一層或某幾層的文件和外部項(xiàng))。(4)不要把控制流作為數(shù)據(jù)流。(5)忽略瑣碎的枝節(jié)。(6)每個(gè)數(shù)據(jù)流要有一個(gè)合適的名字,盡量使用現(xiàn)實(shí)系統(tǒng)中有具體意義的名字。7 .系統(tǒng)流程圖與數(shù)據(jù)流程圖有什么區(qū)別系統(tǒng)流程圖描述系統(tǒng)物理模型的工具,數(shù)據(jù)流程圖描述系統(tǒng)邏輯模型的工具。系統(tǒng)流程圖從系統(tǒng)功能的角度抽象的描述系統(tǒng)的各個(gè)部分及其相互之間

18、信息流動(dòng)的情 況。數(shù)據(jù)流程圖從數(shù)據(jù)傳送和加工的角度抽象的描述信息在系統(tǒng)中的流動(dòng)和數(shù)據(jù)處理的工作狀況。8 .數(shù)據(jù)字典包括哪些內(nèi)容它的作用是什么數(shù)據(jù)字典是描述數(shù)據(jù)流圖中數(shù)據(jù)的信息的集合。它對數(shù)據(jù)流圖上每一個(gè)成分:數(shù)據(jù)項(xiàng)、 文件(數(shù)據(jù)結(jié)構(gòu))、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、加工和外部項(xiàng)等給以定義和說明;它主要由數(shù)據(jù)流描 述、加工描述和文件描述三部分組成。對用戶來講 ,數(shù)據(jù)字典為他們提供了數(shù)據(jù)的明確定義; 對系統(tǒng)分析員來講,數(shù)據(jù)字典幫助他們比較容易修改已建立的系統(tǒng)邏輯模型。9 .描述加工邏輯的工具有哪些有決策樹(又稱判定樹)、決策表(又稱判斷表)和結(jié)構(gòu)化語言等。3-3銀行計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)的工作過程大致如下:儲(chǔ)戶填寫的

19、存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名、住址 (或電話號碼)、身份證號碼、存款類型、存款 日期、到期日期、利率及密碼(可選)等信息,并印出存單給儲(chǔ)戶;如果是取款而且存款時(shí)留 有密碼,則系統(tǒng)首先核對儲(chǔ)戶密碼,若密碼正確或存款時(shí)未留密碼,則系統(tǒng)計(jì)算利息并印出 利息清單給儲(chǔ)戶。請用數(shù)據(jù)流圖描繪本系統(tǒng)的功能,并用實(shí)體-聯(lián)系圖描繪系統(tǒng)中的數(shù)據(jù)對象。3-6復(fù)印機(jī)的工作過程大致如下:未接到復(fù)印命令時(shí)處于閑置狀態(tài),一旦接到復(fù)印命令則進(jìn) 入復(fù)印狀態(tài),完成一個(gè)復(fù)印命令規(guī)定的工作后又回到閑置狀態(tài),等待下一個(gè)復(fù)印命令;如果 執(zhí)行復(fù)印命令時(shí)發(fā)現(xiàn)沒紙,則進(jìn)入缺紙狀態(tài),發(fā)出警告,等待裝紙,裝滿紙后進(jìn)

20、入閑置狀態(tài), 準(zhǔn)備接收復(fù)印命令;如果復(fù)印時(shí)發(fā)生卡紙故障,則進(jìn)入卡紙狀態(tài),發(fā)出警告等待維修人員來 排除故障,故障排除后回到閑置狀態(tài)。請用狀態(tài)轉(zhuǎn)換圖描繪復(fù)印機(jī)的行為。從問題陳述可知,復(fù)印機(jī)的油態(tài)主要有叫:闈置”、“復(fù)印”、態(tài)轉(zhuǎn)換的事件主要 生卡紙故障”和“ 第五章總體是“復(fù)印命令”、M除了卡紙故障” 設(shè)計(jì)習(xí)題答案“完成復(fù)印命令”、“發(fā)現(xiàn)缺細(xì)引起狀、“發(fā)1.2.系統(tǒng)用3網(wǎng)竣夠生一 系軌叫欣文設(shè)計(jì)6百 總體加干i御蜘眄令警告豆印總體設(shè)-的主要任務(wù)是完成皎杵結(jié)構(gòu)的設(shè)什系。3.什么是模塊模塊具有哪幾1系2模塊之間的關(guān)濟(jì)總體設(shè)計(jì)主要考慮什么特征d。,誓告名字來訪模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募希?/p>

21、以單注命名且可M問。模塊具有輸入和輸出(參數(shù)傳遞)、功能、內(nèi)部數(shù)據(jù)結(jié)構(gòu)(局部變量)和程序代碼四個(gè)特性。4.概要設(shè)計(jì)主要考慮輸入、輸出(參數(shù)傳遞)和功能兩個(gè)特性。什么是模塊化模塊設(shè)計(jì)的準(zhǔn)則模塊化是按規(guī)定的原則將一個(gè)大型軟件劃分為一個(gè)個(gè)較小的、相對獨(dú)立但又相關(guān)的模塊。模塊設(shè)計(jì)的準(zhǔn)則:(1)改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性:在對初步模塊進(jìn)行合并、分解和移動(dòng)的分析、 精化過程中力求提高模塊的內(nèi)聚,降低藕合。(2)模塊大小要適中:大約50行語句的代碼,過大的模塊應(yīng)分解以提高理解性和可 維護(hù)性;過小的模塊,合并到上級模塊中。(3)軟件結(jié)構(gòu)圖的深度、寬度、扇入和扇出要適當(dāng)。一般模塊的調(diào)用個(gè)數(shù)不要超過(4)盡量降

22、低模塊接口的復(fù)雜程度;(5)設(shè)計(jì)單入口、單出口的模塊。(6)模塊的作用域應(yīng)在控制域之內(nèi)。5 .變換型數(shù)據(jù)流由哪幾部分組成變換型結(jié)構(gòu)由三部分組成:傳入路徑、變換(加工)中心和傳出路徑。6 .變換分析設(shè)計(jì)的步驟(1)區(qū)分傳入、傳出和變換中心三部分,劃分DFCS的分界線;(2)完成第一級分解:建立初始SC圖的框架;(3)完成第二級分解:分解SC圖的各個(gè)分支;(4)對初始結(jié)構(gòu)圖按照設(shè)計(jì)準(zhǔn)則進(jìn)行精化與改進(jìn)。7 .事務(wù)型數(shù)據(jù)流由哪幾部分組成事務(wù)型結(jié)構(gòu)由至少一條接受路徑、一個(gè)事務(wù)中心與若干條動(dòng)作路徑組成。8 .事務(wù)分析設(shè)計(jì)的步驟(1)在DFD圖中確定事務(wù)中心、接收部分(包含全部接收路徑)和發(fā)送部分(包含全

23、部動(dòng)作路徑);(2)畫出SC圖框架,把DFD圖的三部分分quot;映射"為事務(wù)控制模塊,接收模塊和 動(dòng)作發(fā)送模塊.一般彳#到SC圖的頂層和第一層(如果第一層簡單可以并入頂層);(3)分解和細(xì)化接收分支和動(dòng)作分支,完成初始的SC圖;(4)對初始結(jié)構(gòu)圖按照設(shè)計(jì)準(zhǔn)則進(jìn)行精化與改進(jìn)。9 .比較層次方框圖與結(jié)構(gòu)圖是的異同(1)層次方框圖描繪數(shù)據(jù)的層次結(jié)構(gòu),結(jié)構(gòu)圖描繪的是軟件結(jié)構(gòu)。(2)二者都采用多層次矩形框樹形結(jié)構(gòu)。層次方框圖的頂層矩形框代表完整的數(shù)據(jù) 結(jié)構(gòu),下面各層矩形框依次代表上個(gè)框數(shù)據(jù)的子集;結(jié)構(gòu)圖是在層次圖的每一個(gè)方框內(nèi)注明模塊的名字或主要功能,方框之間的直線表示模塊的調(diào)用關(guān)系,用帶注

24、解的箭頭表示模 塊調(diào)用過程中傳遞的信息。10 .欲開發(fā)一個(gè)銀行的活期存取款業(yè)務(wù)的處理系統(tǒng):儲(chǔ)戶將填好的存/取款單和存折交給銀行工作人員,然后由系統(tǒng)作以下處理;(1)業(yè)務(wù)分類處理:系統(tǒng)首先根據(jù)儲(chǔ)戶所填的存/取款單,確定本次業(yè)務(wù)的性質(zhì),并將存/取款單和存折交下一步處理;(2)存款處理:系統(tǒng)將存款單上的存款金額分別記錄在存折和帳目文件中,并將現(xiàn)金存入現(xiàn)金庫;最后將存折還給儲(chǔ)戶;(3)取款處理:系統(tǒng)將取款單上的取款金額分別記錄在存折和帳目文件中,并從現(xiàn) 金庫提取現(xiàn)金;最后將現(xiàn)金和存折還給儲(chǔ)戶。繪制該系統(tǒng)的數(shù)據(jù)流圖和軟件結(jié)構(gòu)圖。頂層一層二層軟件結(jié)構(gòu)圖補(bǔ)充1:請為某倉庫的管理設(shè)計(jì)一個(gè) ER模型。該倉庫主要

25、管理零件的訂購和供應(yīng)等事項(xiàng)。 倉庫向工程項(xiàng)目供應(yīng)零件,并且根據(jù)需要向供應(yīng)商訂購零件本問題中共有三類實(shí)體,分別是“零件”、“工程項(xiàng)目”和“供應(yīng)商”。一種零件可供應(yīng)多個(gè)工程項(xiàng)目,一個(gè)工程項(xiàng)目需要使用多種零件,因此,零件與工程項(xiàng) 目之間的聯(lián)系“供應(yīng)”,是多對多( M ' N )聯(lián)系;類似地,零件與供應(yīng)商之間的聯(lián)系“訂 購”,也是多對多(M ' N )聯(lián)系。實(shí)體類型“零件”的主要屬性是:零件編號,零件名稱,顏色,重量。實(shí)體類型“工程 項(xiàng)目”的屬性主要是:項(xiàng)目編號,項(xiàng)目名稱,開工日期。實(shí)體類型“供應(yīng)商”的屬性主要有: 供應(yīng)商編號,供應(yīng)商名稱,地址。聯(lián)系類型“供應(yīng)”的屬性是,向某工程項(xiàng)目供

26、應(yīng)的某種零 件的數(shù)量。聯(lián)系類型“訂購”的屬性是,向某供應(yīng)商訂購的某種零件的數(shù)量。5-3用面向數(shù)據(jù)流的方法設(shè)計(jì)下列系統(tǒng)的軟件結(jié)構(gòu)(1)儲(chǔ)蓄系統(tǒng)2-2(2)機(jī)票預(yù)定系統(tǒng)2-3為了方便旅客,某航空公司擬開發(fā)一個(gè)機(jī)票預(yù)定系統(tǒng)。旅行社把預(yù)定機(jī)票的旅客信息(姓 名、性別、工作單位、身份證號碼、旅行時(shí)間、旅行目的地等)輸入該系統(tǒng),系統(tǒng)為旅客安 排航班,旅客在飛機(jī)起飛前一天憑取票通知和賬單交款取票,系統(tǒng)核對無誤即印出機(jī)票給顧 客(2)患者監(jiān)護(hù)系統(tǒng)2-4不能是兩個(gè)分開的子系統(tǒng),是相同的前臺單個(gè)處理可以是兩個(gè)子系統(tǒng),預(yù)定和取票是不同的處理方式(后臺批量和前臺單個(gè))5-4美國某大學(xué)有200名教師,校方與教師工會(huì)剛剛

27、簽訂一項(xiàng)協(xié)議。按照協(xié)議,所有年工資超過$26000 (含$26000 )的教師工資將保持不變,年工資少于 $26000的教師將增加工 資,所增加工資數(shù)額按下述方法計(jì)算:給每位教師所贍養(yǎng)的人(包括教師本人)每年補(bǔ)助$100, 此外,教師有一年工齡每年再多補(bǔ)助¥ 50,但是,增加后的年工資總額不能多于 $26000。教師工資檔案存儲(chǔ)在行政辦公室的磁帶上,檔案中有目前的年工資、贍養(yǎng)的人數(shù)、雇傭 日期等信息。需要寫一個(gè)程序計(jì)算并印出每名教師的原工資和調(diào)整后的新工資。要求:(1)畫出此系統(tǒng)的數(shù)據(jù)流圖;(2)寫出需求說明;(3)設(shè)計(jì)上述的工資調(diào)整程序(要求用HIPO圖描繪設(shè)計(jì)結(jié)果),設(shè)計(jì)時(shí)分別采

28、用兩種算 法,并比較兩種算法的優(yōu)缺點(diǎn):(a)搜索工資檔案數(shù)據(jù),找出年工資少于$26000的人,計(jì)算新工資,校核是否超過$26000,存儲(chǔ)新工資,印出新舊工資對照表;(b)把工資檔案數(shù)據(jù)按工資從最低到最高的次序排序,當(dāng)工資數(shù)額超過 $26000時(shí)即停 止排序,計(jì)算新工資,校核是否超過限額,存儲(chǔ)新工資,印出結(jié)果。(4)你所畫出的數(shù)據(jù)流圖適應(yīng)用那種算法第六章習(xí)題參考答案一.回答問題1 .詳細(xì)設(shè)計(jì)的目的為軟件結(jié)構(gòu)圖(SC圖或HCS)中的每一個(gè)模塊確定采用的算法和塊內(nèi)數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具給出清晰的描述.2 .詳細(xì)設(shè)計(jì)的主要任務(wù)編寫軟件的“詳細(xì)設(shè)計(jì)說明書”.軟件人員要完成的工作:(1)為每一個(gè)模

29、塊確定采用的算法,選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)算法的過程,寫出模塊的詳細(xì)過程描述.(2)確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu).3 3) 確定模塊結(jié)構(gòu)的細(xì)節(jié),包括對系統(tǒng)外部的接口和用戶界面,對系統(tǒng)內(nèi)部其它模塊的 接口,以及關(guān)于模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細(xì)節(jié).4 4) 為每一個(gè)模塊設(shè)計(jì)出一組測試用例,以便在編碼階段對模塊代碼(即程序)進(jìn)行預(yù)定的測試.5 .結(jié)構(gòu)化程序設(shè)計(jì)的基本原則在詳細(xì)設(shè)計(jì)中所有模塊都使用單入口、單出口的順序、選擇、循環(huán)三種基本控制結(jié)構(gòu).6 .比較面向數(shù)據(jù)流和面向數(shù)據(jù)結(jié)構(gòu)兩類設(shè)計(jì)方法的異同相同點(diǎn):(1) 遵守結(jié)構(gòu)程序設(shè)計(jì)“由頂向下”逐步細(xì)化的原則,并以其為共同的基礎(chǔ);(2) 均服從“程

30、序結(jié)構(gòu)必須適應(yīng)問題結(jié)構(gòu)”的基本原則,各自擁有從問題結(jié)構(gòu)(包括數(shù)據(jù)結(jié)構(gòu))導(dǎo)出程序結(jié)構(gòu)的一組映射規(guī)則。不同點(diǎn):(1)面向數(shù)據(jù)流的設(shè)計(jì)以數(shù)據(jù)流圖為基礎(chǔ),在分析階段用DFD表示軟件的邏輯模型,在設(shè)計(jì)階段按數(shù)據(jù)流類型,將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu)。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)以數(shù)據(jù)結(jié)構(gòu)為 基礎(chǔ),從問題的數(shù)據(jù)結(jié)構(gòu)出發(fā)導(dǎo)出它的程序結(jié)構(gòu)。(3) 面向數(shù)據(jù)流的設(shè)計(jì)的最終目標(biāo)是軟件的最終SC圖,面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)的最終目標(biāo)是程序的過程性描述。5.比較Jackson方法和LCP方法的異同Jackson與LCP設(shè)計(jì)方法都是以數(shù)據(jù)結(jié)構(gòu)為出發(fā)點(diǎn),以程序的過程描述為最終目標(biāo),設(shè) 計(jì)步驟基本相似。它們的主要差別是:(1)使用不同的表達(dá)工具

31、,其中 LCP方法中的表達(dá)工具 Warnier圖比Jackson設(shè)計(jì)方法中的表達(dá)工具 Jackson圖有更大的通用性;(2)Jackson方法的步驟和指導(dǎo)原則有一定的靈活性,而LCP設(shè)計(jì)方法則更加嚴(yán)密。6.詳細(xì)設(shè)計(jì)的描述工具應(yīng)具備什么功能無論哪類描述工具不僅要具有描述設(shè)計(jì)過程,如控制流程、處理功能、數(shù)據(jù)組織及其它 方面的細(xì)節(jié)的能力,而且在編碼階段能夠直接將它翻譯為用程序設(shè)計(jì)語言書寫的源程序。二.給出一組數(shù)從小到大的排序算法,分別用下列工具描述其詳細(xì)過程:(1) (1) 流程圖;(2)NS 圖;(3)PAD 圖;(4)PDL 語言。PDL語百略 三.根據(jù)后面給出“卡片的分類及統(tǒng)計(jì)”項(xiàng)目說明,完成

32、下列工作:(1)用Jackson圖表示輸入與輸出數(shù)據(jù)結(jié)構(gòu),找出它們之間的對應(yīng)單元;(2) 畫出用Jackson圖表示的程序結(jié)構(gòu);(3)列出程序所需用的操作,并加到上一步畫出的程序結(jié)構(gòu)圖上;(4)用Jackson偽代碼寫出程序的過程表示。輸入卡片分析程序。一疊輸入卡片按內(nèi)容分為K1、K2、K3三類,卡片的排列規(guī)則是:以K1 卡始,以K2卡終。起始卡之前屬前置部分,不含K1卡;起始卡與終了卡之間屬分批部分, 不含K2卡。如圖: 試用Jackson方法編一程序,要求依次完成下列分析工作:-統(tǒng)計(jì)起始卡前卡片的張數(shù),存入A;K1卡和K3卡總批數(shù),存入B;K1卡的張數(shù),存入C;K3卡的批數(shù),存入D;打印起

33、始卡的內(nèi)容; 統(tǒng)計(jì)起始卡后出現(xiàn)的 統(tǒng)計(jì)起始卡后出現(xiàn)的 統(tǒng)計(jì)起始卡后出現(xiàn)的 打印終了卡的內(nèi)容; 打印A B、C、D四個(gè)統(tǒng)計(jì)值。程序的過程表示及偽代碼略6-3回出下列偽碼程序的程序流程圖和盒圖 START IF p THENWHILE q DO fEND DO ELSEBLOCKg n END BLOCK END IF STOP4下圖給出的程序流程圖代表一個(gè)非結(jié)構(gòu)化的程序,請問:(1)為什么說它是非結(jié)構(gòu)化的(2)設(shè)計(jì)一個(gè)等價(jià)的結(jié)構(gòu)化程序。(3)在(2)題的設(shè)計(jì)中你使用附加的標(biāo)志變量 flag嗎 若沒用,請?jiān)僭O(shè)計(jì)一個(gè)使用flag的程序; 若用了,再設(shè)計(jì)一個(gè)不用flag的程序(1)通常所說的結(jié)構(gòu)化程序

34、,是按照狹義的結(jié)構(gòu)程序的定義衡量,符合定義規(guī)定的程序。 圖示的程序的循環(huán)控制結(jié)構(gòu)有兩個(gè)出口,顯然不符合狹義的結(jié)構(gòu)程序的定義,因此是非 結(jié)構(gòu)化的程序。 使用附加的標(biāo)志變量flag ,至少有兩種方法可以把該程序改造為等價(jià)的結(jié)構(gòu)化程序, 圖示盒圖描繪了等價(jià)的結(jié)構(gòu)化程序。不使用flag把該程序改造為等價(jià)的結(jié)構(gòu)化程序的方法如圖所示。6-8畫出下列偽碼程序的流圖,計(jì)算它的環(huán)形復(fù)雜度。你覺得這個(gè)程序的邏輯有什么問題 嗎C EXAMPLELOOP:DO WHILE X>0 A=B+1 IF A>10THEN X=A ELSE Y=Z END IF IF Y<5THEN PRINT X,YEL

35、SE IF Y=2THEN GOTO LOOPELSE C=3 END IF END IF G=H+R END DO IF F>0THEN PRINT G ELSE PRINT KEND IFSTOPV(G) =結(jié)點(diǎn)E弧數(shù)n+1 =17-11+1=7=判斷結(jié)點(diǎn)+1=6+1 = 7=封閉的區(qū)域數(shù)充1、某高校研究生招生系統(tǒng)的初選方法如下:總分 300 (含)人以上進(jìn)入候選學(xué)生庫,否 則退檔;數(shù)學(xué)分?jǐn)?shù)不低于70分,則進(jìn)入三級備選庫,否刎進(jìn)入誨級備選庫;在三級備選/IX/I;庫的基礎(chǔ)上,如果專業(yè)課分?jǐn)?shù)高于 100分,則進(jìn)入一級備選庫,否則進(jìn)入二級備選庫,請畫出對應(yīng)的判定樹。自補(bǔ)充2、某校的課酬計(jì)

36、算方案如下:(l)基本課酬為每節(jié)課10榴.(2)如果班級人數(shù)超過 40人,課酬增加:基本課酬X; (3)如果班級人數(shù)超嗚、,60人,跟酬增加:基本課酬X;(4)如果教師是副教授,課酬增加:基本課酬X;(5)如果教師看教授,課酬增加:基本課酬X; (6)講師,課酬不增加;(7)助教,課酬減少:基本課酬班 請用判定表表達(dá)上 述計(jì)算方案。第七章習(xí)題參考答案:971. 編碼的任務(wù)停使用選定的程序設(shè)計(jì)語言,把用K塊的過程性描述翻譯為用語言書寫的源程序(源代碼)。112. 對源程序基本要求 源程序要求:正確可靠、簡明清晰、效率高。(1) 源程序的正確性是對程序質(zhì)量的最基本要求;維護(hù);源程序的簡明清晰,便于

37、驗(yàn)證源代碼和模塊規(guī)格說明的 1T致性,容易進(jìn)行測試和(3) 對于大多數(shù)模塊,編碼時(shí)應(yīng)該把簡明清晰放在第一位;(4) 除了編碼階段產(chǎn)生源代碼外,在測試階段也需要編寫一些測試程序,用于對軟件 的測試3. 程序設(shè)計(jì)語言的特點(diǎn)(1) 名字說明:程序中使用對象的名字,能為編譯程序所檢查和識別;(2) 類型說明:定義對象的類型,確定該對象的使用方式;(3) 初始化:為變量提供適當(dāng)?shù)某跏贾祷蛴上到y(tǒng)給變量賦一特殊的表明未初始化的值;(4) 對象的局部性:程序中真正需要的那部分才能訪問的對象;(5) 程序模塊:控制程序?qū)ο蟮拿郑?6) 循環(huán)控制結(jié)構(gòu):如FOR®句、WHILE-DO§句、RE

38、PEAT-UNTI語句等;(7) 分支控制結(jié)構(gòu):如IF語句、CASES句等;(8) 異常處理:為程序運(yùn)行過程中發(fā)生的錯(cuò)誤和意外事件提供檢測和處理上的幫助;(9) 獨(dú)立編譯:能分別編譯各個(gè)程序單元。4. 選擇程序設(shè)計(jì)語言需要考慮的因素(1) 選擇用戶熟悉、便于用戶維護(hù)的語言。(2) 選擇目標(biāo)系統(tǒng)的環(huán)境中可以提供的編譯程序所能選用的語言。(3) 選擇可以得到的軟件工具,能支持程序開發(fā)中可以利用的語言。(4) 根據(jù)工程規(guī)模的大小、目標(biāo)系統(tǒng)應(yīng)用范圍,如實(shí)時(shí)應(yīng)用選擇Ada語言或匯編語言, 系統(tǒng)軟件開發(fā)選擇C語言或匯編語言,軟件開發(fā)中若含有大量數(shù)據(jù)操作則選擇 SQLdBASE 等數(shù)據(jù)庫語言等。(5) 選擇

39、程序員熟悉的語言。(6) 選擇標(biāo)準(zhǔn)化程度高、程序可移植性好的語言。(7) 根據(jù)算法與計(jì)算的復(fù)雜性、數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性選擇。如對于系統(tǒng)程序和結(jié)構(gòu)復(fù)雜的應(yīng)用程序,選擇支持?jǐn)?shù)組、記錄(或結(jié)構(gòu))與指針動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)的Pascal語言或C語言(8) 根據(jù)實(shí)時(shí)要求系統(tǒng)需要的響應(yīng)速度和效率選擇相應(yīng)的語言。5. 編碼風(fēng)格的指導(dǎo)原則。(1) 源程序:包括適當(dāng)?shù)臉?biāo)識符、適當(dāng)?shù)淖⒔狻⒊绦蚯鍐蔚暮侠聿季峙c清晰;(2) 數(shù)據(jù)說明:數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)類型的說明次序標(biāo)準(zhǔn)化;變量名稱盡量有意義;對復(fù)雜的數(shù)據(jù)結(jié)構(gòu)在注解中要說明在程序設(shè)計(jì)中實(shí)現(xiàn)這個(gè)數(shù)據(jù)結(jié)構(gòu)的方法。(3) 語句的構(gòu)造簡單明了:不要為節(jié)省空間將多個(gè)語句寫在同一行;盡量避免復(fù)

40、雜的條件及“非”條件的測試;避免大量使用循環(huán)嵌套和條件嵌套;括號的使用是為了使邏 輯表達(dá)式和算術(shù)表達(dá)式的運(yùn)算順序清晰直觀。(4) 效率:考慮程序運(yùn)行的時(shí)間存儲(chǔ)器效率、輸入/輸出的效率;在處理程序正確性、 清晰與效率之間的關(guān)系時(shí)先求程序正確后求快;先求清楚后求快;保持程序簡單以求快; 書寫清楚,不為“效率”犧牲清晰。6. 第四代語言(4GL)應(yīng)具備哪些的特征(1) 具有很強(qiáng)的數(shù)據(jù)管理能力,能對數(shù)據(jù)庫進(jìn)行有效的存取、查詢和其它有關(guān)操作;(2) 能提供一組高效的、非過程化的命令,組成語言的基本語句,編程時(shí)用戶只需用這些命令說明“做什么”,不必描述實(shí)現(xiàn)的細(xì)節(jié);(3) 能滿足多功能、一體化的要求。為此,

41、語言中除必須含有控制程序邏輯與實(shí)現(xiàn)數(shù)據(jù)庫操作的語句外,還應(yīng)包括生成與處理報(bào)表、表格、圖形,以及實(shí)現(xiàn)數(shù)據(jù)運(yùn)算和分析 統(tǒng)計(jì)功能的各種語句,共同構(gòu)成一個(gè)一體化的語言,以適應(yīng)多種應(yīng)用開發(fā)的需要。7- 4(3)、設(shè)計(jì)下列偽碼程序的語句覆蓋和路徑覆蓋測試用例:STARTINPUT (A, B, C)答問題1 .軟件測試的基本任務(wù)軟件測試是按照特定的規(guī)則,發(fā)現(xiàn)軟件錯(cuò)誤的過程;好的測試方案是盡可能發(fā)現(xiàn)迄今尚未發(fā)現(xiàn)錯(cuò)誤的測試;成功的測試方案是發(fā)現(xiàn)迄今尚未發(fā)現(xiàn)錯(cuò)誤的測試;2 .測試與調(diào)試的主要區(qū)別(1) (1)測試從一個(gè)側(cè)面證明程序員的失??;調(diào)試證明程序員的正確;(2) (2)測試從已知條件開始,使用預(yù)先定義的程

42、序,且有預(yù)知的結(jié)果,不可預(yù)見的僅是程序是否通過測試;調(diào)試從不可知內(nèi)部條件開始,除統(tǒng)計(jì)性 調(diào)試外,結(jié)果是不可預(yù)見的;(3) (3)測試有計(jì)劃并且要進(jìn)行測試設(shè)計(jì);調(diào)試不受時(shí)間約束;(4) (4)測試是發(fā)現(xiàn)錯(cuò)誤、改正錯(cuò)誤、重新測試的過程;調(diào)試是一個(gè)推理的過程;(5) (5)測試執(zhí)行是有規(guī)程的;調(diào)試執(zhí)行要求程序員進(jìn)行必要的推理;(6) (6)測試由獨(dú)立的測試組在不了解軟件設(shè)計(jì)的件下完成;調(diào)試由了解詳細(xì)設(shè)計(jì)的程序員完成;(7) (7)大多數(shù)測試的執(zhí)行和設(shè)計(jì)可由工具支持;調(diào)試用的工具主要是調(diào)試器。3 .人工復(fù)審的方式和作用人工復(fù)審的方式:代碼會(huì)審、走查和排練和辦公桌檢查;人工復(fù)審的作用:檢查程序的靜態(tài)錯(cuò)誤

43、。4 .什么是黑盒測試黑盒測試主要采用的技術(shù)有哪些黑盒測試也稱為功能測試,它著眼于程序的外部特征,而不考慮程序的內(nèi)部邏 輯結(jié)構(gòu)。測試者把被測程序看成一個(gè)黑盒,不用關(guān)心程序的內(nèi)部結(jié)構(gòu)。黑盒測試是在程序接口處進(jìn)行測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使 用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試主要采用的技術(shù)有:等價(jià)分類法、邊沿值分析法、錯(cuò)誤推測法和因果 圖等技術(shù)。5 .什么是白盒測試白盒測試主要采用的技術(shù)有哪些測試者了解被測程序的內(nèi)部結(jié)構(gòu)和處理過程,對程序的所有邏輯路徑進(jìn)行測試,在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)與預(yù)期狀

44、態(tài)是否一致。白盒測試主要采用的技術(shù)有:路徑測試技術(shù)和事務(wù)處理流程技術(shù),對包含有 大量邏輯判斷或條件組合的程序采用基于邏輯的測試技術(shù)。6 .路徑測試技術(shù)中幾種主要覆蓋的含義舉例說明語句覆蓋:至少執(zhí)行程序中所有語句一次。判定覆蓋:使被測程序中的每一個(gè)分支至少執(zhí)行一次。故也稱為分支覆蓋。條件覆蓋:執(zhí)行所有可能的穿過程序的控制路流程。條件組合測試:設(shè)計(jì)足夠的測試用例,使每個(gè)判定中的所有可能條件取值組合 至少執(zhí)行一次。(例略)7 .等價(jià)分類法的測試技術(shù)采用的一般方法舉例說明(1) (1)為每個(gè)等價(jià)類編號;(2) (2)設(shè)計(jì)一個(gè)新的測試方案,以盡可能多的覆蓋尚未被覆蓋的有效等價(jià)類,重復(fù)這一步驟,直到所有有

45、效等價(jià)類被覆蓋為止。(3) (3)設(shè)計(jì)一個(gè)新的測試方案,使它覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類 ,重復(fù)這一步驟,直到所有無效等價(jià)類被覆蓋為止。(例略)8 .軟件測試的一般步驟單元測試、子系統(tǒng)測試、系統(tǒng)測試、驗(yàn)收測試、平行測試。9 .比較集成試的兩種方式的優(yōu)劣非漸增式測試方式:分別測試模塊,再把所有模塊按設(shè)計(jì)要求放在一起組成所 要的程序。該方法編寫測試軟件工作量大,模塊間的接口錯(cuò)誤發(fā)現(xiàn)得晚,錯(cuò)誤定 位較難診斷,總體測試有的錯(cuò)誤容易漏掉,測試時(shí)間相對較少,可以并行測試所 有模塊,能充分利用人力,加快工程進(jìn)度。漸增式測試方式:把下一個(gè)要測試的模塊,同已經(jīng)測試好的那些模塊結(jié)合起來 進(jìn)行測試。該方法利用已測

46、試過的模塊作測試軟件,開銷小,較早發(fā)現(xiàn)模塊間的接錯(cuò)誤,錯(cuò)誤定位往往和最近入的模塊相關(guān),對已測試好的模塊可在新加入模塊 的條件下受到新的檢驗(yàn),測試更徹底,需要較多的測試時(shí)間,不能并行測試。總的來說,漸增式測試方法比較好。(2) (2) 試方案在任何情況下都應(yīng)使用邊界值分析的方法010 .軟件測試的策略必要時(shí)用等價(jià)類劃分法補(bǔ)充測試方案 必要時(shí)再用錯(cuò)誤推測法補(bǔ)充測試方案 對照程序邏輯,檢查已設(shè)計(jì)出的測試方案。根據(jù)對程序可靠性的要求采用不同的邏輯覆蓋標(biāo)準(zhǔn),再補(bǔ)充一些測二.某電力公司有A、B、C D共四類收費(fèi)標(biāo)準(zhǔn),并規(guī)定,居民用電每月 200 度以下按A類收費(fèi),200度以上按B類收費(fèi)。動(dòng)力電以每月1萬度

47、為分界,非高 峰用電不足1萬度按B類收費(fèi),達(dá)到或超過1萬度按C類收費(fèi)。高峰用電不足1 萬度按C類收費(fèi),達(dá)到或超過1萬度按D類收費(fèi)。試用基于邏輯的測試方法為它 設(shè)計(jì)足夠的測試用例實(shí)現(xiàn)條件組合的完全覆概。規(guī)則號123456居民用電200度以下Y200度以上Y動(dòng)力非高峰1萬度以下Y用電1萬度以上Y高峰1萬度以下Y1萬度以上Y收費(fèi)A類標(biāo)準(zhǔn)B類C類D類測試用例用電類型輸入數(shù)據(jù)預(yù)期結(jié)果居民用電90度/月A110度/月B動(dòng)力用電非高峰8000度/月B12000度/月C高峰9000度/月C11000度/月D三,如圖顯示某程序的邏輯結(jié)構(gòu)。試為它設(shè)計(jì)足夠的測試用例,分別實(shí)現(xiàn)對程序的判定覆概、條件覆概和條件組 合覆

48、概。設(shè)計(jì)測試方案覆蓋種尖需滿足的條件測試數(shù)據(jù)期望結(jié)果判定覆蓋A>1,B=0A=2,B=0執(zhí)行S1A>1,B0 或A1,B=0 或A1,B0A=2,B=1 或A=1,B=0 或A=1,B=1執(zhí)行S2條件覆蓋以下四種情況各出現(xiàn)一次A>1B=0A=2, B=0執(zhí)行S1A1B0A=1, B=1執(zhí)行S2條件組合A>1,B=0A=2,B=0執(zhí)行S1覆蓋A>1,B0A=2,B=1執(zhí)行S2A1,B=0A=1,B=0執(zhí)行S2A1,B0A=1,B=1執(zhí)行S2四.某城市電話號碼由三部分組成。它們的名稱和內(nèi)容分別是:地區(qū)碼:空白或三位數(shù)字;前綴:非0'或'1'的三

49、位數(shù)字;后綴:4位數(shù)字。假定被測程序能接受一切符合上述規(guī)定的電話號碼,拒絕所有不符合規(guī)定的電話號碼。根據(jù)該程序的規(guī)格說明,作等價(jià)類的劃分,并設(shè)計(jì)測試方案。1.劃分等價(jià)類輸入條件啟效等價(jià)類無效等價(jià)類地區(qū)碼1 .空白;2 .三位數(shù);1. 1.有非數(shù)字字符;2.少于三位數(shù)字;3.多于三位數(shù)字。前經(jīng)3.從200到999之間的三位4.有非數(shù)字字符;5.起始位為O ;6.起始位為'1' ; 7.少于三位數(shù)字;8.多于三位數(shù)字。后綾4.四位數(shù)字。9.有非數(shù)字字符;10.少于四位數(shù)字;11.多于四位數(shù)字。設(shè)計(jì)測試方案方案內(nèi)容輸入預(yù)期輸出地區(qū)碼前綴后綴1空白200999之間的三位數(shù)字四位數(shù)字()

50、276-2345后效2三位數(shù)字四位數(shù)字(635)805-9321后效3有非數(shù)字字符(20A)723-4567無效4少于三位數(shù)字(33 )234-5678無效5多于三位數(shù)字(5555)345-6789無效6有非數(shù)字字符(345)5A2-3456無效7起始位為'0'(345)012-3456無效8起始位為'1'(345)132-3456無效9少于三位數(shù)字(345) 92-3456無效10多于三位數(shù)字(345)4562-3456無效11有非數(shù)字字符(345)342-3A56無效12少于四位(345)342- 356無效數(shù)字13多于四位數(shù)字(345)562-34567無

51、效第八章軟件維護(hù)習(xí)題答案1 .為什么說軟件的維護(hù)是不可避免的因?yàn)檐浖拈_發(fā)過程中,一般很難檢測到所有的錯(cuò)誤,其次軟件在應(yīng)用過程中需要 隨用戶新的要求或運(yùn)行環(huán)境的變化而進(jìn)行軟件的修改或完成功能的增刪等,為了提高軟 件的應(yīng)用水平和使用壽命,軟件的維護(hù)是不可避免的。2 .軟件的維護(hù)一般分為哪幾類改正性維護(hù):滿足用戶對已開發(fā)產(chǎn)品的性能與運(yùn)行環(huán)境不斷提高的要求,進(jìn)而達(dá)到 延長軟件壽命的目的。適應(yīng)性維護(hù):對程序使用期間發(fā)現(xiàn)的程序錯(cuò)誤進(jìn)行診斷和改正的過程,配合變化了 的環(huán)境進(jìn)行修改軟件的活動(dòng);完善性維護(hù):滿足用戶在使用過程中提出增加新的功能或修改已有功能的建議而進(jìn) 行的工作;預(yù)防性維護(hù):為了改善未來的可維護(hù)性或可靠性而修改軟件的工作。3 .影響軟件維護(hù)的因素有哪些開發(fā)方法:采用模塊化詳細(xì)設(shè)計(jì)文檔有助于理解軟件的結(jié)構(gòu)、界面功能和內(nèi)部流程; 開發(fā)

溫馨提示

  • 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

提交評論