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

下載本文檔

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

文檔簡介

軟件工程教程課后參考答案第1章一、選擇題(1)D(2)B(3)C(4)D(5)D(6)A(7)D二、簡答題(1)什么是軟件危機?軟件危機表現(xiàn)在哪些方面?答:詳細來說,軟件危機出現(xiàn)原因能夠概括以下。①無視軟件開發(fā)前期需求分析。②開發(fā)過程缺乏統(tǒng)一、規(guī)范化方法論指導。③文檔資料不齊全或不準確。④無視與用戶之間、開發(fā)組組員之間交流。⑤無視測試主要性。⑥不重視維護或因為上述原因造成維護工作困難。⑦從事軟件開發(fā)專業(yè)人員對這個產(chǎn)業(yè)認識不充分,缺乏經(jīng)驗。⑧沒有完善質(zhì)量確保體系。詳細地說,軟件危機表現(xiàn)形式能夠概括以下。①軟件開發(fā)費用和進度失控。②軟件系統(tǒng)實現(xiàn)功效與實際需求不符。③軟件可靠性差。④軟件難以維護。⑤軟件通常沒有適當文檔資料。⑥軟件成本在計算機系統(tǒng)總成本中所占百分比居高不下,且逐年上升。⑦軟件生產(chǎn)率提升速度,遠遠跟不上計算機應(yīng)用快速普及深入趨勢。(2)簡述軟件和軟件工程定義以及軟件工程形成過程。答:軟件是計算機系統(tǒng)中與硬件相對應(yīng)另一部分,是一系列程序、數(shù)據(jù)及其相關(guān)文檔集合。在這里,程序是按照特定次序組織計算機數(shù)據(jù)和指令集合;數(shù)據(jù)是使程序能正常執(zhí)行數(shù)據(jù)結(jié)構(gòu);文檔是是開發(fā)、使用和維護程序所需要圖文資料。軟件工程是應(yīng)用計算機科學理論和技術(shù)以及工程管理標準和方法,按預算和進度,實現(xiàn)滿足用戶要求軟件產(chǎn)品定義、開發(fā)、公布和維護工程或進行研究學科。軟件工程發(fā)展經(jīng)歷了以下四個階段。①20世紀70年代。為了處理軟件項目失敗率高、錯誤率高以及軟件維護任務(wù)重等問題,人們提出了軟件生產(chǎn)工程化思想,希望使軟件生產(chǎn)走上正規(guī)化道路,并努力克服軟件危機。人們發(fā)覺將傳統(tǒng)工程學原理、技術(shù)和方法應(yīng)用于軟件開發(fā),能夠起到使軟件生產(chǎn)規(guī)范化作用。②20世紀80年代。面向?qū)ο蠓椒ㄅc技術(shù)受到了廣泛重視,maltalk-80出現(xiàn)標志著面向?qū)ο蟪绦蛟O(shè)計進入了實用和成熟階段。20世紀80年代末,逐步發(fā)展起來面向?qū)ο蠓治雠c設(shè)計方法,已經(jīng)形成了完整面向?qū)ο蠹夹g(shù)體系,使系統(tǒng)生存周期更長,適應(yīng)更大規(guī)模、更廣泛應(yīng)用。③20世紀90年代末。出現(xiàn)了許多靈敏方法,如自適應(yīng)軟件開發(fā)、水晶項目開發(fā)、動態(tài)系統(tǒng)開發(fā)、極限編程、特征驅(qū)動開發(fā)和Scrum等。這些主要靈敏方法創(chuàng)始人在聚集一堂,并發(fā)表了靈敏開發(fā)宣言。④二十一世紀。對快速應(yīng)用開發(fā)(RapidApplicationDevelopment,RAD)追求趨勢仍在繼續(xù),在信息技術(shù)、組織、競爭對策及環(huán)境等方面變革步伐也正在加緊。云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能和機器學習、移動互聯(lián)網(wǎng)、三維打印、可穿戴式技術(shù)、虛擬現(xiàn)實、增強現(xiàn)實、社交媒體、無人駕駛汽車和飛機等技術(shù)不停涌現(xiàn)?!按笠?guī)模計算”、“自治和生化計算機”、“模型驅(qū)動體系結(jié)構(gòu)”和“構(gòu)件化軟件開發(fā)”等新領(lǐng)域都可能成為接下來軟件工程發(fā)展主要方向。(3)軟件工程目標是什么?怎樣處理多目標之間矛盾?答:軟件工程要達成基本目標包含以下六方面。①達成要求軟件功效。②取得很好軟件性能。③開發(fā)出高質(zhì)量軟件。④付出較低開發(fā)成本。⑤需要較低維護費用。⑥能按時完成開發(fā)工作,及時交付使用。軟件工程首要問題是軟件質(zhì)量。軟件工程目標就是在以上目標沖突之間取得一定程度平衡。所以,在包括平衡軟件工程目標這個問題時候,軟件質(zhì)量應(yīng)該擺在最主要位置加以考慮。軟件質(zhì)量可用功效性、可靠性、可用性、效率、可維護性和可移植性等六個特征來評價。(4)什么是軟件生存周期?它分為幾個時期?幾個階段?答:軟件生存周期是指從設(shè)計該產(chǎn)品構(gòu)想開始,到軟件需求確實定、軟件設(shè)計、軟件實現(xiàn)、產(chǎn)品測試與驗收、投入使用,以及產(chǎn)品版本不停更新,到該產(chǎn)品最終被市場淘汰全過程。軟件生存周期由軟件定義、軟件開發(fā)和運行維護三個時期組成,劃分為問題定義、可行性研究、需求分析、概要設(shè)計、詳細設(shè)計、軟件實現(xiàn)和單元測試、綜合測試和運行維護八個階段。(5)什么是軟件生存周期模型?有哪些主要軟件過程模型?答:軟件生存期模型也稱為軟件過程模型,是從軟件項目需求定義直至軟件運行維護為止,跨越整個生命周期系統(tǒng)開發(fā)、運行和維護所實施全部過程、活動和任務(wù)結(jié)構(gòu)框架。經(jīng)典包含瀑布模型、快速原型模型、增量模型、螺旋模型、統(tǒng)一過程、靈敏過程等。在軟件工程知識體系中,將軟件工程劃分為哪些知識域?答:SWEBOK將軟件工程知識體系劃分為10個知識域,包含在兩類過程中。一類過程是開發(fā)與維護過程,包含軟件需求、軟件設(shè)計、軟件結(jié)構(gòu)、軟件測試和軟件維護;另一類過程是支持過程,包含軟件配置管理、軟件工程管理,軟件工程過程、軟件工程工具寫方法、軟件質(zhì)量。每個知識域還可深入分解為若干個論題,在論題描述中引用關(guān)于知識參考文件,形成一個多級層次結(jié)構(gòu),以此確定軟件工程知識體系內(nèi)容和邊界。第2章一、填空題(1)用最小代價在盡可能短時間內(nèi)確定問題是否能夠處理(2)投資效益分析(3)值得去開發(fā)(4)需求分析,設(shè)計

(5)開發(fā)成本、比較和權(quán)衡(6)經(jīng)濟角度(7)編寫可行性分析匯報(8)技術(shù)可行性、經(jīng)濟可行性、社會可行原因方面可行性、操作可行性(9)直接成本、間接成本、有形收益、無形收益(10)因使用新系統(tǒng)而增加收入、使用新系統(tǒng)能夠節(jié)約運行費用(11)貨幣時間價值、投資回收期、純收入(12)經(jīng)濟效益、投資(13)最初投資(14)軟件工作范圍、估算開發(fā)所需要資源、估算軟件成本費用和進度安排(15)軟件系統(tǒng)功效、軟件系統(tǒng)性能、接口、可靠性(16)泡泡圖(17)同時出現(xiàn),只取其一(18)輸入,輸出(19)加工,名字(20)數(shù)據(jù)存放二、選擇題

(1)

A

(2)

C

(3)C

(4)

B

(5)D(6)

C

(7)

B

(8)

A

(9)

D(10)

D(11)B

(12)B

(13)D

(14)

D

(15)A

三、簡答題(1)

可行性研究主要研究哪些問題?試說明之。解:可行性研究任務(wù)是決定軟件項目做還是不做。對技術(shù)可行性、經(jīng)濟可行性、社會可行性、開發(fā)方案可行性及運行可行性等方面進行分析。(2)設(shè)計一個軟件開發(fā)成本為5萬元,壽命為3年。未來3年每年收益預計為:2200元,24000元,26620元。銀行年利率為10%。試對此項目進行成本-效益分析,以決定其經(jīng)濟可行性。解:進行投入產(chǎn)出分析時,未來收益和現(xiàn)在消耗成本不能直接進行比較,必須在考慮貨幣時間價值后,才能進行準確投入、產(chǎn)出分析。22

000/(1+

10%)+24000/(1.1×1.1)+26

620/(1.1×1.1×1.1)-50

000=20

000+19834.71

+

20

000-

50

000=

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

9834.71元。(3)某軟件企業(yè)統(tǒng)計發(fā)覺該企業(yè)研發(fā)部門每一萬行C語言源代碼形成源文件(.c和.h文件)約為250K。某項目標源文件大小為3.75M。①問該項目標規(guī)模是多少KLOC(源代碼行數(shù))?該企業(yè)研發(fā)部門生產(chǎn)率是0.625KLOC/人月,人工價是10000元/人月。②問工作量和總成本是多少?③每行代碼價值是多少?解:①3.75M/250K=15萬行=150KLOC②工作量=規(guī)模/生產(chǎn)率=150KLOC/0.625KLOC=240人月成本=工作量×人工價=240人月*10000元/人月=240萬元③240萬元/15萬行=16元/行(4)某計算機系統(tǒng)投入使用后,每年可節(jié)約人民幣0元,假設(shè)軟件生存期為4年,系統(tǒng)投資額為50000元,若年利率為5%,試計算效益。解:表面上看,4年共節(jié)約0*4=80000元,扣除投資55000元可產(chǎn)生純收入25000元。其實不然,因為投資在前,效益產(chǎn)生有一個時間過程,所以需要把4年內(nèi)每年預計節(jié)約錢折合成當前價值才能比較。若按年利率5%計算,折合到當前值數(shù)目如表1所表示:表1每年效益折算當前值年效益(元)利率(1+0.05)n當前值(元)預計當前值(元)101.051904719047201.10251814037187301.15761727754464401.21551645470918依照表1可計算出以下經(jīng)濟指標:純收入=4年累計當前值-系統(tǒng)投資=70918-55000=15918(元)投資回收期≈3+(55000-54464)/16454-3.033年(5)某旅館電話號碼服務(wù)以下:能夠撥分機號和外線號碼。分機號是從7201~7299。外線號碼先撥9,然后是市話號碼或長話號碼。長話號碼是以區(qū)號和市話號碼組成。區(qū)號是從100~300中任意數(shù)字串。市話號碼是以局號和分句號組成。局號能夠是455、466、888、552中任意一個號碼。分局號是是任意長度為4數(shù)字串。要求:寫出在數(shù)據(jù)字典中,電話號碼數(shù)據(jù)條目標定義(即組成)解:電話號碼=分機號|外線號碼分機號=7201…7299外線號碼=9+[市話號碼|長話號碼]長話號碼=區(qū)號+市話號碼區(qū)號=100…300市話號碼=局號+分局號局號=[455|466|888|552]分局號=4{數(shù)字}4(6)某工廠采購部天天需要一張訂貨報表,報表按零件編號排序,表中列出全部需要再次訂貨零件。對于每個需要再次訂貨零件,應(yīng)該列出下述數(shù)據(jù):零件編號,零件名稱,訂貨數(shù)量,現(xiàn)在價格,主要供給者,次要供給者。零件入庫或出庫稱為事務(wù),經(jīng)過存放在庫房CRT終端把事務(wù)匯報給定貨系統(tǒng)。當零件庫存量少于庫存量臨界值,決定再次訂貨,畫出訂貨系統(tǒng)數(shù)據(jù)流圖。解:問題分析:源點/終點,處理,數(shù)據(jù)存放,數(shù)據(jù)流1)源點/終點:系統(tǒng)之外實體(人,物,系統(tǒng))源點:倉庫管理員終點:采購員2)處理:需要報表->產(chǎn)生報表處理日常事務(wù)->事務(wù)處理3)數(shù)據(jù)存放:訂貨信息庫存清單4)數(shù)據(jù)流:訂貨報表:零件編號、名稱、數(shù)量……事務(wù):零件編號、事務(wù)類型、數(shù)量……Step1:頂層數(shù)據(jù)流圖——系統(tǒng)級表1訂貨系統(tǒng)頂層DFD圖組成:基本系統(tǒng)模型+源點+終點通常采取自頂向下逐步細化分層繪制方法Step2:深入分解——功效級表2訂貨系統(tǒng)0層DFD圖Step3:深入分解——功效級表3訂貨系統(tǒng)1層DFD圖(7)開發(fā)某工程中使用CAD系統(tǒng)需要投資20萬元,經(jīng)估算在工程中用該CAD系統(tǒng)后將取代大部分人工設(shè)計工作,每年可節(jié)約9.6萬元。若該軟件生存期為5年,年利率按5%計算,試求該項目標凈收入。解:若按年利率5%計算,貨幣時間價值折合到當前值數(shù)目如表2所表示:表2貨幣時間價值(萬元)年份未來值(1+i)n現(xiàn)在值(萬元)累計現(xiàn)在值(萬元)19.61.059.14299.142929.61.10258.707517.851339.61.15768.292826.143249.61.21557.897934.041159.61.27637.521941.5630純收入=5年累計當前值-系統(tǒng)投資=41.5630-20=21.5630(萬元)第3章一、選擇題(1)B(2)D(3)B(4)B(5)B二、簡答題(1)答:需求分析需要4個步驟,分別獲取、建模、描述和驗證。獲取需求實質(zhì)上是一個需求搜集過程,要做充分調(diào)查研究。通常是從分析當前系統(tǒng)包含數(shù)據(jù)開始,分析當前系統(tǒng)在處理信息時不足,用戶希望改進主要問題及迫切性等。搜集需求慣用方法有問卷調(diào)查、訪談、實地操作、建立原型等,搜集需求主要包含功效需求、性能需求、可靠性需求、可用性、人機界面需求、約束、犯錯處理等內(nèi)容。需求分析關(guān)鍵任務(wù)是建立分析模型,即把來自用戶需求信息經(jīng)過分析、提取、歸納、抽象建立起描述目標系統(tǒng)模型。傳統(tǒng)面向過程軟件工程方法學,主要采取數(shù)據(jù)流圖建立目標系統(tǒng)邏輯模型。需求描述是指編制需求分析階段各類文檔。通常情況下,對于大型、復雜軟件系統(tǒng)在需求分析階段會產(chǎn)生3個文檔:系統(tǒng)定義文檔(用于描述用戶需求匯報)、系統(tǒng)需求規(guī)格說明書、軟件需求規(guī)格說明書,分別從不一樣角度和層次描述項目開發(fā)需求。對于簡單小規(guī)模軟件系統(tǒng),只需編制SRS即可。因為需求分析結(jié)果是后續(xù)開發(fā)主要依據(jù)和基礎(chǔ),為了提升軟件產(chǎn)品最終質(zhì)量,降低開發(fā)成本,必須對需求分析結(jié)果從完整性、一致性、有效性和現(xiàn)實性4個方面進行嚴格正確性驗證,而且要對需求變更實施可回溯管理,防止無法追蹤錯誤起源造成混亂。(2)答:包含6個方面:確定對系統(tǒng)綜合要去;分析系統(tǒng)數(shù)據(jù)需求;建立系統(tǒng)邏輯模型;修訂系統(tǒng)開發(fā)計劃;編寫軟件需求規(guī)格說明書;需求分析評審。(3)答:結(jié)構(gòu)化分析方法采取歸納思維和演繹思維邏輯方法,逐步建立目標系統(tǒng)邏輯模型(包含數(shù)據(jù)模型、功效模型和行為模型),進而描繪出滿足用戶要求軟件系統(tǒng)。結(jié)構(gòu)化需求分析方法基于“分解“和”抽象“基本指導思想,采取面向數(shù)據(jù)流自頂向下逐步求精分析策略,逐步建立目標系統(tǒng)邏輯模型。 “分解“是面對一個復雜系統(tǒng)時,為了將復雜性降低到人類認知能力能夠掌握程度,而把一個大系統(tǒng)(問題)分解成若干個小問題,然后分別處理。 需求分析目標之一是把數(shù)據(jù)流圖中數(shù)據(jù)流和數(shù)據(jù)存放分解定義到元素級。通常做法是從數(shù)據(jù)流圖輸出端著手分析,這是因為輸出數(shù)據(jù)決定了系統(tǒng)必須具備最基本組成元素(即功效)。 詳細做法是,沿著數(shù)據(jù)流圖從輸出端往輸入端回溯,以確定每個數(shù)據(jù)元素起源,與此同時也就初步定義了關(guān)于算法。通常把分析過程中得到數(shù)據(jù)元素信息定義成數(shù)據(jù)字典,對算法簡明描述統(tǒng)計在IPO表中。經(jīng)過分析而補充數(shù)據(jù)流、數(shù)據(jù)存放和處理,應(yīng)該添加到數(shù)據(jù)流圖適當位置。復查過程是從輸入端開始,向用戶解釋輸入數(shù)據(jù)是經(jīng)過怎樣處理一步步變成了輸出數(shù)據(jù)。重復經(jīng)過上述過程,把數(shù)據(jù)流圖“分解“擴展到更低(即更詳細)層次,從而得到更詳細、更令人滿意功效性需求了解。(4)答:首先進行初步訪談,經(jīng)過用戶對基本問題回答,初步確定待處理問題范圍和處理方案。然后開發(fā)者和用戶分別寫出“產(chǎn)品需求”。 定會議時間和地點以及主持會議協(xié)調(diào)人。邀請雙方代表出席會議,并在會前預先把寫好產(chǎn)品需求分發(fā)給每一位與會者。 要去每位與會者會前認真審查產(chǎn)品需求,并列出作為系統(tǒng)環(huán)境組成部分對象、系統(tǒng)將產(chǎn)生對象以及系統(tǒng)為了完成自己功效將使用對象。另外,還要求每位與會者列出操作這些對象或與這些對象交互服務(wù)(即處理或功效)。最終還應(yīng)該列出約束條件(比如成本、規(guī)模、完成日期)和性能標準(比如速度、容量)。并不希望每位與會者列出內(nèi)容毫無遺漏,但求能夠取得對目標系統(tǒng)準確認識。 會議開始后,討論第一個問題是是否需要這個新產(chǎn)品,一旦大家都同意確實需要這個新產(chǎn)品,每位與會者則把他們會前準備好列表展示出來供大家討論。在這個階段,嚴格禁止批評和爭論,以免影響每位與會者深入交流意愿。 在討論基礎(chǔ)上,大家一起共同創(chuàng)建一張包含各個議題組合列表。調(diào)整后組合列表并不真正刪除某項內(nèi)容。在每個議題組合列表都建立起來后,在由協(xié)調(diào)人主持討論這些列表,以形成每個議題都達成意見一致局面。 一旦得到了意見一致列表,就把與會者分成更小小組,針對每張列表中項目制訂小型規(guī)格說明(需要對列表中包含單詞或短語進行準確說明)。 然后,每個小組向全體與會者展示他們制訂小型規(guī)格說明,供大家討論。意見一致后,每個與會者都制訂一整套確認標準,并把自己制訂標準再次提交會議討論,以創(chuàng)建出意見一致確實認標準。最終,有一名或多名與會者依照會議結(jié)果起草完整軟件規(guī)格說明書。三、應(yīng)用題(1)描繪本系統(tǒng)功效數(shù)據(jù)流圖如圖所表示。描繪本系統(tǒng)數(shù)據(jù)模型E-R圖以下:(2)描繪本系統(tǒng)功效級數(shù)據(jù)流圖以下:第4章一、選擇題(多項選擇)(1)A(2)ABCD(3)BD(4)C(5)A二、簡答題(1)答:總體設(shè)計目標是:是得到良好軟件總體結(jié)構(gòu),即獨立性良好、規(guī)模適中一組模塊以及深度、寬度、扇入、扇出適宜系統(tǒng)結(jié)構(gòu)。主要任務(wù)是把分析階段得到數(shù)據(jù)模型映射成數(shù)據(jù)庫設(shè)計,把數(shù)據(jù)流圖映射成軟件功效結(jié)構(gòu),行為模型能夠用于詳細設(shè)計階段流程、算法設(shè)計。(2)答:構(gòu)想供選擇方案,選取合理方案,推薦最好方案,功效分級,設(shè)計軟件結(jié)構(gòu),數(shù)據(jù)庫設(shè)計,制訂測試計劃,編寫文檔,審查和復查。(3)答:改進軟件結(jié)構(gòu)提升模塊獨立性,模塊規(guī)模應(yīng)該適中,深度、寬度、扇入、扇出都應(yīng)該適中,模塊作用域應(yīng)該在控制與內(nèi),降低模塊結(jié)構(gòu)復雜度,設(shè)計單入口、單出口模塊,模塊功效應(yīng)該能夠預測。(4)答:復查基本系統(tǒng)模型,復查并精化數(shù)據(jù)流圖,確定數(shù)據(jù)流圖類型,確定數(shù)據(jù)流邊界,完成“第一級分解”,完成“第二級分解”,優(yōu)化。(5)答:機械地遵照上述映射規(guī)則很可能會得出一些無須要控制模塊,假如它們確實用處不大,那么應(yīng)該合并它們。假如控制模塊功效過分復雜,能夠適當?shù)卦黾又虚g層控制模塊或者深入將它們分解。 何優(yōu)化過程不能違反設(shè)計原理,不能違反問題域常識、不能為了最求所謂“最好設(shè)計”而優(yōu)化。 設(shè)計優(yōu)化可能會導出不一樣軟件結(jié)構(gòu),要從中選優(yōu),力爭得到“最好“結(jié)構(gòu)。防止把結(jié)構(gòu)優(yōu)化留到過程設(shè)計階段,這也是把結(jié)構(gòu)設(shè)計和過程設(shè)計分開價值所在。 結(jié)構(gòu)簡單往往表明效率高。設(shè)計優(yōu)化應(yīng)該力爭做到在有效模塊化前提下使用盡可能少模塊數(shù),以及在能夠滿足信息要求前提下使用最簡單數(shù)據(jù)結(jié)構(gòu)。三、應(yīng)用題(1)答:工資管理子系統(tǒng)數(shù)據(jù)流圖以下所表示。工資管理子系統(tǒng)層次圖以下:(2)頂層數(shù)據(jù)流圖還書處理分支數(shù)據(jù)流圖查詢處理分支數(shù)據(jù)流圖借閱處理分支數(shù)據(jù)流圖注意事項:必須確保登記完借書文件和修改完庫存后再出借圖書給借閱人,“登記借書文件”和“修改庫存”誰先誰后影響不大。第5章一、填空題(1)次序、選擇和循環(huán)三種基本控制結(jié)構(gòu)(2)完整嵌套(3)層次線(4)程序流程圖(5)表格(6)模塊接口計(7)數(shù)據(jù)結(jié)構(gòu)(8)結(jié)構(gòu)化程序設(shè)計、自頂向下、逐步求精油(9)SP、問題分析圖(10)結(jié)構(gòu)化(11)詳細設(shè)計說明書二、選擇題(1)D(2)C(3)C(4)B(5)A(6)B(7)B

(8)A(9)D

(10)C(11)B(12)B(13)A

(14)B

(15)D三、簡答題(1)詳細設(shè)計基本任務(wù)是什么?有哪幾個描述方法?答:=1\*GB3①為每個模塊確定采取算法。②確定每一模塊內(nèi)部數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫物理結(jié)構(gòu)。③確定模塊接口細節(jié)。=4\*GB3④要為每一個模塊設(shè)計出一組測試用例。⑤編寫文檔,參加復審。詳細設(shè)計描述方法有圖形、表格和語言,其中,圖形慣用結(jié)構(gòu)化程序流程圖、盒圖和PAD(問題分析圖)為描述工具,語言慣用過程設(shè)計語言(PDL)來作為工具。答:結(jié)構(gòu)化程序設(shè)計關(guān)鍵點主要有以下三個。①采取自頂向下、逐步求精程序設(shè)計方法。②使用三種基本控制結(jié)構(gòu)結(jié)構(gòu)程序。任何程序都能夠由次序、選擇、重復(循環(huán))三種基本控制結(jié)構(gòu)結(jié)構(gòu)。③每個程序模塊只有一個人口和一個出口。答:詳細設(shè)計階段描述處理過程慣用三種工具:圖形、表格和語言。詳細設(shè)計工具備結(jié)構(gòu)化程序流程圖、問題分析圖、盒圖和過程設(shè)計語言、判定表及判定樹。答:流程圖優(yōu)點是直觀清楚、易于使用,是開發(fā)者普遍采取工具,不過它具備本身缺點。①可隨心所欲地控制流程線流向.輕易造成非結(jié)構(gòu)化程序結(jié)構(gòu)。②流程圖不易反應(yīng)逐步求精過程,往往反應(yīng)最終結(jié)果。③不易表示數(shù)據(jù)結(jié)構(gòu)。為克服流程圖最大缺點,要求流程圖由三種控制結(jié)構(gòu)次序組合和完全嵌套而成,不能交叉,這么流程圖是結(jié)構(gòu)化流程圖。(5)答:PAD特點以下。①清楚反應(yīng)程序?qū)哟谓Y(jié)構(gòu)。②支持逐步求精設(shè)計方法,自左至右逐步細化。③易讀易寫,使用方便。④支持結(jié)構(gòu)化程序設(shè)計原理。⑤可自動生成程序。(6)答:PDL是在偽碼基礎(chǔ)上,擴充了模塊定義與調(diào)用、數(shù)據(jù)定義和輸入輸出而形成。它是一個用于描述模塊算法設(shè)計和處理細節(jié)語言。分為內(nèi)外兩層語言,外層語法具備嚴格規(guī)則;內(nèi)層表示實際操作和條件自然語言,語法自由。PDL表示程序結(jié)構(gòu)通常有以下幾個:次序結(jié)構(gòu)、選擇結(jié)構(gòu)、重復結(jié)構(gòu)、出口結(jié)構(gòu)、擴充結(jié)構(gòu)(模塊定義、模塊調(diào)用、數(shù)據(jù)定義、輸人/輸出)等。PDL特點以下:①關(guān)鍵字應(yīng)有固定語法,提供結(jié)構(gòu)化控制結(jié)構(gòu)和數(shù)聽說明,并在控制結(jié)構(gòu)頭尾都加關(guān)鍵字,表現(xiàn)模塊化特點。②用自然語言敘述系統(tǒng)處理功效。③應(yīng)有說明各種數(shù)據(jù)結(jié)構(gòu)伎倆.④描述模塊定義和調(diào)用及模塊接口模式。PDL優(yōu)缺點以下:①能夠靈活地表示算法或作為注釋直接插人到原程序當中,可用普通文字處理系統(tǒng)進行書寫和編輯,并可用自動處理程序自動生成。就明道②不如圖形工具形象直觀,對復雜描述不如判定表清楚。(7)答:用方框圖來代替?zhèn)鹘y(tǒng)流程圖方法,稱為N-S圖。N-S圖優(yōu)點是全部程序結(jié)構(gòu)均用方框表示,不論并列或嵌套,程序結(jié)構(gòu)清楚可見。而且它只能表示結(jié)構(gòu)化程序邏輯,使用它人必須恪守結(jié)構(gòu)化程序設(shè)計要求。不足是當程序內(nèi)嵌套層數(shù)增多時,內(nèi)層方框會越來越小,從而增加繪圖難度,并使圖形清楚性受影響。四、應(yīng)用題(1)用Halstead度量還能夠用來預測程序中可能存在錯誤E。一個程序?qū)?5個數(shù)據(jù)庫項共訪問1300次,對150個運算符共使用了1200次,預測該程序錯誤數(shù)是多少?那么預測該程序錯誤數(shù):E=(1200+1300)*log2(75+150)/3000?6.5即預測該程序中可能包含6~7個錯誤。(2)假設(shè)某航空企業(yè)要求,乘客能夠無償托運重量不超出30kg行李。當行李重量超出30kg時,對頭等艙國內(nèi)乘客超重部分每千克收費4元,對其余艙國內(nèi)乘客超重部分每千克收費6元,對外國乘客超重部分每千克收費比國內(nèi)乘客多一倍,對殘疾乘客超重部分每千克收費比正常乘客少二分之一。用判定樹表示計算行李費算法。1123456789國內(nèi)乘客TTTTFFFF頭等艙TFTFTFTF殘疾乘客FFTTFFTT行李重量W30TFFFFFFFF無償(W-30)2(W-30)3(W-30)4(W-30)6(W-30)8(W-30)12RulesRulenumbersConditionrowsActionrows圖1用判定樹表示計算行李費算法(3)畫出以下偽碼程序程序流程圖和盒圖STARTIFpTHENWHILEqDOfENDDOELSEBLOCKgnENDBLOCKENDIFSTOP第6章選擇題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)該劃分為幾個階段?各個階段應(yīng)重點測試內(nèi)容是什么?答:軟件測試可分為單元測試,集成測試,系統(tǒng)測試,驗收測試四個階段。單元測試又稱模塊測試、邏輯測試或結(jié)構(gòu)測試,是針對軟件設(shè)計最小單位——程序模塊或功效模塊,進行正確性檢驗測試工作。其目標在于檢驗每個程序單元能夠正確實現(xiàn)詳細設(shè)計說明中模塊功效、性能、接口和設(shè)計約束等要求,發(fā)覺各個模塊內(nèi)部可能存在各種錯誤。集成測試又稱組裝測試、綜合測試或聯(lián)合測試。通常在單元測試基礎(chǔ)上,將全部程序模塊進行有序、遞增測試。集成測試是檢驗程序單元或部件接口關(guān)系,逐步集成為符合概要設(shè)計要求程序部件或整個系統(tǒng)。系統(tǒng)測試為驗證和確認系統(tǒng)是否達成其原始目標,而對集成硬件和軟件系統(tǒng)進行測試。系統(tǒng)測試是在真實或模擬系統(tǒng)運行環(huán)境下,檢驗完整程序系統(tǒng)能否和系統(tǒng)(包含計算機硬件、外設(shè)、網(wǎng)絡(luò)和系統(tǒng)軟件、支持平臺等)正確配置、連接,并滿足用戶需求。系統(tǒng)測試主要依據(jù)是《系統(tǒng)需求規(guī)格說明書》文檔。驗收測試又稱交付測試,是軟件在完成了單元測試、集成測試、系統(tǒng)測試之后,產(chǎn)品公布之前進行軟件測試活動。驗收測試又分為Alpha測試(α測試)和Beta測試(β測試),Alpha測試是由一個用戶在開發(fā)環(huán)境下進行測試,或者是企業(yè)內(nèi)部用戶在模擬實際操作環(huán)境下進行受控測試,Beta測試是軟件多個用戶在一個或多個用戶實際使用環(huán)境下進行測試。(2)在軟件測試中,應(yīng)遵照哪些標準?答:在軟件測試過程中,通常應(yīng)該遵照以下七個標準。①全部測試都應(yīng)追溯到用戶需求。這是因為軟件目標是使用戶完成預定任務(wù),滿足其需求。而軟件測試揭示軟件缺點和錯誤,一旦修正這些錯誤,就能愈加好地滿足用戶需求。②應(yīng)盡早地和不停地進行軟件測試。因為軟件復雜性和抽象性,在軟件生命周期各階段都可能產(chǎn)生錯誤,所以不應(yīng)把軟件測試僅僅看作是軟件開發(fā)一個獨立階段,而應(yīng)該把它貫通到軟件開發(fā)各個階段中去。在需求分析和設(shè)計階段就應(yīng)開始進行測試工作,編寫對應(yīng)測試計劃及測試設(shè)計文檔,同時堅持在開發(fā)各階段進行技術(shù)評審和驗證,這么才能盡早發(fā)覺和預防錯誤,杜絕一些缺點和錯誤,提升軟件質(zhì)量。測試工作進行得越早,越有利于提升軟件質(zhì)量,這是預防性測試基本標準。③在有限時間和資源下進行完全測試并找出軟件全部錯誤和缺點是不可能,軟件測試不能無限進行下去,應(yīng)適時終止。因為,測試輸入量大、輸出結(jié)果多、路徑組合多、用有限資源來達成完全測試是不現(xiàn)實。④測試只能證實軟件存在錯誤,而不能證實軟件沒有錯誤。測試無法顯示潛在錯誤和缺點,繼續(xù)深入測試可能還會找到其它錯誤和缺點。⑤充分關(guān)注測試中集群現(xiàn)象。在測試程序段中,若發(fā)覺錯誤數(shù)目比較多,則殘余在該程序段中錯誤數(shù)目也會比較多,所以應(yīng)該花較多時間和代價測試那些具備更多錯誤數(shù)目標程序模塊。⑥程序員應(yīng)防止檢驗自己程序??紤]到人們心理原因,自己揭露自己程序中錯誤是件不愉快事,自己不愿意否定自己工作。另外,因為思維定式,自己難以發(fā)覺自己錯誤。所以,測試通常由獨立測試部門或第三方機構(gòu)進行,這么測試相對比較客觀。⑦盡可能防止測試隨意性。軟件測試是有組織、有計劃、有步驟活動,要嚴格按照測試計劃進行,要防止測試隨意性。(3)什么是黑盒測試?有哪些慣用黑盒測試方法?答:黑盒測試又稱功效測試或數(shù)據(jù)驅(qū)動測試,指經(jīng)過軟件外部表現(xiàn)來發(fā)覺缺點和錯誤。黑盒測試把測試對象看成一個黑盒子,完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過程,測試者僅依據(jù)程序功效需求規(guī)范考慮,確定測試用例和推斷測試結(jié)果正確性,它是站在使用軟件或程序角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)對應(yīng)關(guān)系出發(fā)進行測試。慣用黑盒測試方法有等價類劃分、邊界值分析、因果圖、決議表、錯誤推測法、場景法等。

(4)什么是白盒測試?有哪些慣用白盒測試方法?答:白盒測試又稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,指經(jīng)過對程序內(nèi)部結(jié)構(gòu)分析、檢測來尋找問題。白盒測試把程序看成裝在一個透明白盒子里,也就是清楚了解程序結(jié)構(gòu)和處理過程,檢驗是否全部結(jié)構(gòu)及路徑都是正確,檢驗軟件內(nèi)部動作是否按照設(shè)計說明要求正常進行。慣用黑盒測試方法邏輯覆蓋、基本路徑測試、程序插樁等。(5)請對比白盒測試和黑盒測試。答:白盒測試和黑盒測試是軟件測試兩種基本方法。黑盒測試優(yōu)點以下:1)比較簡單,不需要了解程序內(nèi)部代碼及實現(xiàn);

2)與軟件內(nèi)部實現(xiàn)無關(guān);

3)從用戶角度出發(fā),能很輕易知道用戶會用到哪些功效,會碰到哪些問題;

4)基于軟件開發(fā)文檔,所以也能知道軟件實現(xiàn)了文檔中哪些功效;

5)在做軟件自動化測試時較為方便。

黑盒測試缺點以下:

1)不可能覆蓋全部代碼,覆蓋率較低;

2)自動化測試復用性較低。

白盒測試優(yōu)點以下:迫使測試人員去仔細思索軟件實現(xiàn);能夠檢測代碼中每條分支和路徑;揭示隱藏在代碼中錯誤;對代碼測試比較徹底。白盒測試缺點以下:

1)程序運行會有很多不一樣路徑,不可能測試全部運行路徑;

2)測試基于代碼只能測試開發(fā)人員做對不對,而不能知道設(shè)計是否正確,可能會遺漏一些功效需求;

3)系統(tǒng)龐大時,測試開銷會非常大。(6)請簡述靜態(tài)測試和動態(tài)測試區(qū)分。答:靜態(tài)測試不運行被測程序本身,僅經(jīng)過分析或檢驗源程序語法、結(jié)構(gòu)、過程、接口等來檢驗程序正確性。動態(tài)測試經(jīng)過運行被測程序,檢驗運行結(jié)果與預期結(jié)果差異,并分析運行效率、正確性和健壯性等性能指標。(7)什么是集成測試?非增量測試與增量測試有什么區(qū)分?集成測試又稱組裝測試、綜合測試或聯(lián)合測試。通常在單元測試基礎(chǔ)上,將全部程序模塊進行有序、遞增測試。集成測試是檢驗程序單元或部件接口關(guān)系,逐步集成為符合概要設(shè)計要求程序部件或整個系統(tǒng)。集成測試有兩種方法,一個方法是分別測試各個模塊,再把這些模塊組合起來進行整體測試,這種方法稱為非增量集成測試。另一個方法是把一個要測試模塊組合到已測試好模塊中,測試完后再將一個需要測試模塊組合進來測試,逐步把全部模塊組合在一起,并完成測試,該方法稱為增量集成測試。(8)什么是調(diào)試?什么是測試?二者有何區(qū)分?答:軟件調(diào)試是查找、分析和糾正程序中錯誤過程。軟件測試目標是充分發(fā)覺軟件錯誤信息,軟件調(diào)試是在測試完成結(jié)果分析之后,對結(jié)果分析發(fā)覺錯誤進行程序診療,而且尋求改過過程。軟件測試和軟件調(diào)試經(jīng)常交替進行。三、應(yīng)用題(1)如圖6.21所表示,Nextdate函數(shù)包含3個變量:month、day和year,函數(shù)輸出為輸入日期后一天日期。比如,輸入為3月3日,則函數(shù)輸出為3月4日。要求輸入變量month、day和year均為整數(shù)值,而且滿足條件:1≤month≤12,1≤day≤31,1920≤year≤2050。請利用等價類劃分法設(shè)計測試用例。圖6.21Nextdate示意圖解:分析并確定等價類;Nextdate函數(shù)包含3個變量month、day和year。依照等價類劃分標準第一條內(nèi)容“在輸入條件要求了取值范圍或值個數(shù)情況下,能夠確立一個有效等價類和兩個無效等價類”,day、month和year分別能夠確立一個有效等價類和兩個無效等價類。①day等價類D1={日期:1≤日期≤31};D2={日期:日期<1};D3={日期:日期>31}。②month等價類M1={月份:1≤月份≤12};M2={月份:月份<1};M3={月份:月份>12}。③year等價類Y1={年:1920≤年≤2050};Y2={年:年<1920};Y3={年:年>2050}。(2)建立等價類表,列出全部劃分出等價類;Nextdate函數(shù)等價類劃分表如表6.1所表示。表6.1Nextdate函數(shù)等價類劃分表輸入條件有效等價類無效等價類DayD1{1,…,28}D2{29}D3{30}D4{31}D5{day<1}D6{day>31}MonthM1{1,3,5,7,8,10,12}M2{2}M3{4,6,9,11}M4{month<1}M5{month>12}YearY1{平年,1920≤year≤2050}Y2{閏年,1920≤year≤2050}Y3{year<1920}Y4{year>2050}(3)依照列出等價類表,設(shè)計測試用例。Nextdate函數(shù)預期輸出分為以下六種情況。R1:day=day+1;R2:day=1,month=month+1;R3:day=1,month=1,year=year+1;R4:day越界;R5:month越界;R6:year越界。Nextdate測試用例設(shè)計結(jié)果如表6.2所表示。表6.2Nextdate測試用例測試用例daymonthyear預期輸出覆蓋等價類Test1Test2Test3Test4Test5Test6Test71528282931303162223412199919991999年6月16日1999年3月1日2月29日3月1日4月1日5月1日1月1日D1,M3,Y1R1D1,M2,Y1R2D1,M2,Y2R1D2,M2,Y2R2D4,M1,Y1R2D3,M3,Y1R2D4,M1,Y2R3Test8Test9Test10Test11Test12Test13-132222020660136619192051Day越界Day越界Month越界Month越界Year越界Year越界D5,M3,Y1R4D6,M3,Y1R4D1,M4,Y1R5D1,M5,Y1R5D1,M3,Y3R6D1,M3,Y4R6用因果圖法測試以下程序。程序規(guī)格說明要求:輸入第一個字符必須是A成B,第二個字符必須是一個數(shù)字,此情況下進行文件修改;假如第一個字符不是A或B,則給出信息L,假如第二個字符不是數(shù)字,則給出信息M。請利用因果圖法設(shè)計測試用例。解:(1)依照題意。原因和結(jié)果以下。

原因:c1:第一列字符是A;c2:第一列字符是B;c3:第二列字符是一數(shù)字。結(jié)果:e21:修改文件;e22:給出信息L;e23:給出信息M。程序規(guī)格說明因果圖如圖6.1所表示。其中,11為中間狀態(tài),考慮到c1和c2不可能同時為1,所以,在c1和c2上施加E約束。圖6.1程序規(guī)格說明因果圖(3)依照因果圖建立判定表如表6.3所表示。表6.3程序規(guī)格說明判定表12345678原因(條件)c111110000c211001100c31010101011111100動作(結(jié)果)e22000011e21101000e23010101在如表6.3所表示8種情況中,左面兩列原因c1和c2同時為1,這是不可能出現(xiàn),故應(yīng)排除這兩種情況。這是因為原因c1是第一列字符是A,原因c2是第一列字符是B,所以不可能同時出現(xiàn)第一列字符是A,同時第一列字符是B情況。(4)把判定表每一列拿出來作為依據(jù),設(shè)計測試用比如表6.4所表示。表6.4程序規(guī)格說明測試用例12345678原因(條件)c111110000c211001100c31010101011111100動作(結(jié)果)e22000011e21101000e23010101測試用例A6AaB9BPC5HYA0A@B1B*H4E%請把圖6.23中程序流程圖轉(zhuǎn)換成控制流圖。121234567圖6.2轉(zhuǎn)換后控制流圖圖6.23示例程序流程圖第7章一、簡答題(1)面向缺點維護內(nèi)容是什么?答:面向缺點維護(程序級維護):軟件產(chǎn)品能夠正常運轉(zhuǎn),能夠滿足用戶功效、性能、接口需求,只是個別地方存在缺點,使用戶感到不便。缺點發(fā)生在程序?qū)崿F(xiàn)級別上??朔秉c方法是修改程序,而不是修改分析與設(shè)計,也就是通常說只修改編碼,不修改數(shù)據(jù)結(jié)構(gòu)。(2)傳統(tǒng)軟件維護分哪幾大類?答:完善性維護:滿足用戶在使用過程中提出增加新功效或修改已經(jīng)有功效,以滿足用戶日益增加需要而進行工作;適應(yīng)性維護:是軟件適應(yīng)新運行環(huán)境而進行工作;糾錯性維護:糾正開發(fā)期間未發(fā)覺遺留錯誤,即在程序使用期間發(fā)覺程序錯誤進行診療和改過過程;預防性維護:為了改進未來可維護性或可靠性而修改軟件工作。(3)怎樣了解“軟件維護是一個面向用戶提供服務(wù)”?答:激烈軟件產(chǎn)品市場競爭中,同類軟件產(chǎn)品價格、功效、性能、接口都是不相上下,那么用戶怎樣選擇呢??軟件廠商要推銷自己產(chǎn)品,推銷焦點就是服務(wù)。誰售后服務(wù)及時、到位,誰產(chǎn)品就可能占領(lǐng)市場?,F(xiàn)在流行一句話:“賣軟件就是賣服務(wù)”。(4)什么叫結(jié)構(gòu)化維護和非結(jié)構(gòu)化維護?答:結(jié)構(gòu)化維護前提是:軟件產(chǎn)品或軟件項目必須有完善文檔,而且文檔與程序代碼相互匹配。反之為非結(jié)構(gòu)化維護。(5)可維護性軟件應(yīng)具備什么性質(zhì)?答:主要有可了解性、可測試性和可修改性。可了解性被定義為人們經(jīng)過閱讀源代碼和文檔了解軟件系統(tǒng)結(jié)構(gòu)、接口、功效、內(nèi)部過程以及怎樣運行難易程度;可測試性被定義為診療和測試系統(tǒng)難易程度;可修改性被定義為修改軟件系統(tǒng)難易程度;它們是親密相關(guān)。(6)軟件維護副作用表現(xiàn)在哪4個方面?答:①修改編碼:使編碼愈加混亂,程序結(jié)構(gòu)更不清楚,可讀性更差,而且有連鎖反應(yīng)。②修改數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)是系統(tǒng)骨架,修改數(shù)據(jù)結(jié)構(gòu)是對系統(tǒng)傷筋動骨大手術(shù),在數(shù)據(jù)冗余與數(shù)據(jù)不一致方面,可能顧此失彼。③修改用戶數(shù)據(jù):需要與用戶協(xié)商,一旦有疏忽,可使系統(tǒng)發(fā)生意外。④修改文檔:對非結(jié)構(gòu)化維護不適應(yīng),對結(jié)構(gòu)化維護要嚴防程序與文檔不匹配。(7)面向功效維護內(nèi)容是什么?答:面向功效維護(設(shè)計級維護):軟件產(chǎn)品在功效、性能、接口上存在一些不足。不維護就不能正常運轉(zhuǎn)。維護即要修改分析與設(shè)計,又要修改程序,也就是既修改數(shù)據(jù)結(jié)構(gòu),又修改編碼。(8)怎么了解UMILCMOMI對軟件維護影響?答:UML把軟件生存周期定義為4個主要階段:初始、細化、結(jié)構(gòu)、移交。經(jīng)過這四個階段歷程被稱為一個開發(fā)周期,自動產(chǎn)生一個周期內(nèi)全部文檔,從而生成一個軟件產(chǎn)品。首次經(jīng)歷這四個階段稱為該產(chǎn)品初始開發(fā)周期,除非該產(chǎn)品生命終止,不然它將重復初始、細化、結(jié)構(gòu)、移交這4個階段,從而演化為下一代產(chǎn)品,這就是舊產(chǎn)品維護,也是新產(chǎn)品升級換代,這就是UML對軟件維護工作影響。由此可見,在軟件開發(fā)中,若采取UML建模技術(shù)和對應(yīng)CASET具Rose,高額軟件維護費用將會較快地降下來。第8章單項選擇題D(2)C(3)B(4)D(5)C(6)B(7)A(8)C(9)A(10)D(11)A(12)C(13)C(14)D(15)D(16)C(17)C二、問答題(1)答:封裝性、繼承性、多態(tài)性。?在由封裝,繼承,多態(tài)所組成環(huán)境中,程序員能夠編寫出比面向過程模型更健壯,更具擴展性程序.經(jīng)過仔細設(shè)計類層次結(jié)構(gòu)是重用代碼基礎(chǔ).封裝能讓程序員無須修改公有接口代碼即可實現(xiàn)程序移植.多態(tài)能使程序員開發(fā)出簡練,易懂,易修改代碼。(2)類是抽象,不詳細。就像有些東西能夠歸為一類,比如說狗,貓,豬。它們都是動物,我們就能夠歸為一類。而貓,狗就是動物類中一個對象。(3)答:①封裝性。所謂封裝就是把對象屬性和行為結(jié)合成一個獨立單位,使外界不能直接訪問或修改這些數(shù)據(jù)和代碼,外界只能經(jīng)過對象提供接口函數(shù)來改變或獲取對象屬性數(shù)據(jù),這就實現(xiàn)了消息隱蔽。②繼承性。假如在一個已定義類上,增加一些特殊屬性或操作,能夠形成一個新類,這個類不但繼承了前一個類全部特征,而且具備新特征,所以可看作前一個類特例,是對前一個類繼承。前一個類稱為父類,新產(chǎn)生類叫做子類。經(jīng)過繼承關(guān)系可形成一個類層次結(jié)構(gòu),叫做繼承結(jié)構(gòu)。③多態(tài)性。在類層次結(jié)構(gòu)不一樣類中,可用相同函數(shù)名實現(xiàn)功效不一樣函數(shù)。(4)答:統(tǒng)一建模語言(UML)是一個繪制軟件藍圖標準語言。能夠用UML對軟件密集型系統(tǒng)制品進行可視化詳述和文檔化。UML是一個定義良好、易于表示、功效強大且普遍適用可視化建模語言。它融入了軟件工程領(lǐng)域新思想、新方法和新技術(shù)。它作用域不限于支持面向?qū)ο蠓治雠c設(shè)計,還支持從需求分析開始軟件開發(fā)全過程。UML作用就是用很多圖從靜態(tài)和動態(tài)方面來全方面描述我們將要開發(fā)系統(tǒng)。(5)答:定義:由參加者(Actor)、用例(UseCase)以及它們之間關(guān)系組成用于描述系統(tǒng)功效圖成為用例圖。作用:用例圖是從軟件需求分析到最終實現(xiàn)第一步,它顯示了系統(tǒng)用戶和用戶希望提供功效,有利于用戶和軟件開發(fā)人員之間溝通。用例圖可視化表示了系統(tǒng)需求,具備直觀、規(guī)范等優(yōu)點,克服了純文字性說明不足。用例方法是完全從外部來定義系統(tǒng),它把需求和設(shè)計完全分離開來,使用戶不用關(guān)心系統(tǒng)內(nèi)部是怎樣完成各種功效。(6)答:次序圖:強調(diào)是消息時間次序。協(xié)作圖:強調(diào)是參加交互對象組織。次序圖:建模元素有生命線和控制焦點。協(xié)作圖:建模元素有路徑,消息必須有消息次序號。次序圖:在表示算法、對象生命期、具備多線程特征對象等方面,相對來說更輕易一些。協(xié)作圖:假如按組織對控制流建模,應(yīng)該選擇使用協(xié)作圖次序圖:不能表示對象與對象之間鏈。對于多對象和主動對象,也不能直接顯示出來。協(xié)作圖:不能表示生命線分叉。不過,二者之間能夠相互轉(zhuǎn)換,但不能完全相互代替。三、分析題(1)不正確,飛機和組成部件之間不是泛化關(guān)系,應(yīng)該是組合關(guān)系。(2)類圖以下所表示:(3)答:①聚合和組合都是一個包含關(guān)系,組合是一個更強聚合關(guān)系。②組合關(guān)系中,容器和包含對象具備相同生命周期,聚合是一個相對渙散關(guān)系,容器和包含對象可相對獨立。③雁陣由大雁組成,屬于一個聚合關(guān)系;1只大雁擁有2只翅膀,屬于組合關(guān)系。(4)類圖以下:第9章單項選擇題C(2)A(3)C(4)B(5)C(6)C(7)B(8)A(9)B(10)C(11)B(12)A(13)D(14)B(15)B(16)A二、簡答題(1)答:OOA模型采取五層次結(jié)構(gòu),它們分別是:①對象-類層劃分待開發(fā)系統(tǒng)及其環(huán)境信息基本結(jié)構(gòu)單位,標出反應(yīng)問題域?qū)ο蠛皖?,并用符號進行規(guī)范描述,用信息提供者熟悉術(shù)語為對象和類命名。②屬性層

定義對象和一些結(jié)構(gòu)中數(shù)據(jù)單元,繼承結(jié)構(gòu)中全部類公共屬性可放于通用類中。標識對象類必需屬性并放在適宜繼承層次上,屬性特殊限制和實例連接關(guān)系也應(yīng)標識出來。③服務(wù)層

表示對象服務(wù)或行為,即是要定義類上操作。④結(jié)構(gòu)層

標識現(xiàn)實世界中對象之間關(guān)系。當一個對象是另一個對象一部分時,用"整體-部分"關(guān)系表示;當一個類屬于另一個類時,用類之間繼承關(guān)系表示。⑤主題層(2)答:可將相關(guān)類或?qū)ο髣澐譃橐粋€主題。①識別對象,識別對象包含標識潛在對象和篩選對象兩步。②識別對象屬性。③識別對象行為。④識別對象所屬類。⑤定義主題詞。(3)答:建模步驟:①設(shè)置交互語境。②確定對象。③分析消息和條件。④分析附加約束。⑤對建模結(jié)果精化和細化。(4)答:用例是對一組序列動作描述,系統(tǒng)執(zhí)行這些動作將對用例參加者產(chǎn)生能夠觀察結(jié)果。能夠依照下面一些問題來識別用例:①參加者希望系統(tǒng)提供什么功效;②系統(tǒng)是否存放和檢索信息;③當系統(tǒng)改變狀態(tài)時,是否通知參加者;④是否存在影響系統(tǒng)外部事件,是哪個參加者通知系統(tǒng)這些外部事件。(5)答:次序圖是強調(diào)消息時間次序交互圖。是描述系統(tǒng)中類和類之間交互,它將這些交互建模成消息交換,也就是說,次序圖描述了類相互協(xié)作完成預期行為動態(tài)過程。次序圖是由類角色、生命線、激活期和消息組成。(6)答:協(xié)作圖作為另一個交互圖而言,強調(diào)是參加交互對象組織。協(xié)作圖是由類角色、關(guān)聯(lián)角色和消息流組成。三、綜合應(yīng)用題1.解:(1)系統(tǒng)用例圖(2)事件流描述1)正常事件流 ①用戶查看通訊錄,選擇添加條目功效項,開啟該用例; ②用戶輸入姓名、電話、郵編和通訊地址; ③系統(tǒng)保留通訊錄數(shù)據(jù),更新視圖。2)可選事件流 第2步(用戶輸入姓名重復)①用戶輸入姓名已存在,系統(tǒng)提醒是否重新輸入姓名;②用戶選擇重新輸入姓名,用例從第2步正常執(zhí)行; ③用戶選擇放棄,用例結(jié)束。(3)類圖(4)次序圖解:(1)系統(tǒng)用例圖(2)事件流描述1)正常事件流①管理員查看全校課程列表,選擇添加課程功效項,開啟該用例;②管理員輸入課程名稱、任課教師、課程號;③系統(tǒng)保留課程列表,更新視圖2)可選事件流第2步(管理員輸入課程號重復)①管理員輸入課程號已存在,系統(tǒng)提醒是否重新輸入課程號;②管理員選擇重新輸入課程號,用例從第2步正常執(zhí)行;③管理員選擇放棄,用例結(jié)束。(3)類圖(4)次序圖第10章單項選擇題(1)A(2)B(3)B(4)D(5)A(6)C(7)D(8)A(9)B(10)C二、簡答題(1)答:在與客戶交談中,要注意客戶用來描述業(yè)務(wù)實體名詞術(shù)語。這些名詞可作為領(lǐng)域模型中類。還要注意你聽到動詞,因為這些動詞可能會組成這些類中操作。當?shù)玫揭唤M類關(guān)鍵列表后,應(yīng)該向客戶問詢在業(yè)務(wù)過程中每個類作用。他們回答將告訴你這些類職責。(2)答:作為候選類有可能和它父類、子類在談話中同時被發(fā)覺。系統(tǒng)分析員意識到某個類屬性和操作可能能被利用到其余多個類當中去。另一個可能情況是系統(tǒng)分析員注意到兩個或者多個類可能具備相同屬性和操作數(shù)(3)答:參加者(actor,有些書翻譯成“角色”)是一個特殊類,是系統(tǒng)外部一個實體,這個實體能夠是任何人或物,它以某種方式參加了用例執(zhí)行過程。在獲取用例前首先要確定系統(tǒng)參加者,能夠依照下面一些問題來尋找系統(tǒng)參加者:①誰使用系統(tǒng)?②誰安裝系統(tǒng)、維護系統(tǒng)?③誰開啟系統(tǒng)、關(guān)閉系統(tǒng)?④誰從系統(tǒng)中獲取信息,誰提供信息給系統(tǒng)?⑤在系統(tǒng)交互中,誰飾演了什么角色?⑥系統(tǒng)會與哪些其余系統(tǒng)相關(guān)聯(lián)?(4)答:OOD體系結(jié)構(gòu)各個部分內(nèi)容:①問題論域部分,在OOA模型基礎(chǔ)上,細化分析結(jié)果,設(shè)計一組組成底層應(yīng)用模型類和對象。②人機交互部分:設(shè)計用戶界面模型,該用戶界面模型中類和對象提供實現(xiàn)人機交互操作接口函數(shù)。用戶界面設(shè)計包含菜單設(shè)計、窗口設(shè)計、輸入/輸出界面設(shè)計等等。③任務(wù)管理部分:建立一些類,用以負責處理操作系統(tǒng)級并發(fā)問題、中止、調(diào)度以及其它與特定平臺關(guān)于問題。(4)答:數(shù)據(jù)管理部分:提供數(shù)據(jù)管理系統(tǒng)中存放和檢索對象基本結(jié)構(gòu),包含對永久性數(shù)據(jù)訪問和管理。數(shù)據(jù)管理設(shè)計包含:①數(shù)據(jù)存放設(shè)計。數(shù)據(jù)存放設(shè)計選擇數(shù)據(jù)存放方式(文件存放、關(guān)系數(shù)據(jù)庫表格存放或面向?qū)ο髷?shù)據(jù)庫存放)。②設(shè)計對應(yīng)操作。為每個需要存放對象和類增加用于存放管理屬性和操作,在類和對象定義中加以描述。三、設(shè)計分析題(1)系統(tǒng)用例圖以下:對象類圖以下:(3)把需要持久存放數(shù)據(jù)實體類及其聯(lián)絡(luò),映射成為以下關(guān)系數(shù)據(jù)庫表:①學生(學生號、姓名、出生日期、性別、籍貫、地址、電話、入課時間、專業(yè)、班級備注)②教師(教師號、姓名、出生日期、性別、籍貫、地址、電話、職稱、專長、備注)③課程(課程號、課程名、描述、學分、課時、性質(zhì)、備注)開設(shè)課程(課程號、學期、講課日期、講課時間、地點、選修人數(shù)、備注)第11章一、選擇題(1)B(2)D(3)B(4)D(5)B二、簡答題(1)為何類是面向?qū)ο笙到y(tǒng)中測試最小合理單位?答:在面向?qū)ο筌浖?,單元概念發(fā)生了改變,不再是傳統(tǒng)軟件單元測試中關(guān)注算法細節(jié)和流經(jīng)模塊接口數(shù)據(jù),而是測試由封裝在類中操作和類狀態(tài)行為驅(qū)動。最小可測試單元是封裝了類,一個類包含了不一樣操作,而一個操作也是有不一樣類組成,傳統(tǒng)單元測試已經(jīng)不再能滿足面向?qū)ο筌浖攸c了,而以類作為最小測試單元愈加合理。(2)簡述面向?qū)ο笙到y(tǒng)開發(fā)過程。答:①面向?qū)ο蠓治觯∣OA);②面向?qū)ο笤O(shè)計(OOD)(高層設(shè)計和類設(shè)計);③面向?qū)ο髮崿F(xiàn)與測試;④維護階段。第12章一、簡答題(1)項目管理定義是什么?簡述軟件項目管理過程。答:項目管理定義:項目管理是以項目為對象,經(jīng)過使用知識、技能、工具和方法來組織、計劃、實施并監(jiān)控項目,使之滿足項目目標需求過程。通常認為項目管理過程是由以下四個基本工作過程組成:①項目確立:包含項目評定、立項、招投標、授權(quán)等步驟。②項目計劃:包含軟件項目范圍計劃、成本計劃、進度計劃、質(zhì)量計劃、人員與溝通計劃、風險計劃、協(xié)議計劃等。③項目執(zhí)行控制:包含項目集成計劃執(zhí)行控制、關(guān)鍵計劃執(zhí)行控制、輔助計劃執(zhí)行控制等。④項目結(jié)束:包含協(xié)議結(jié)束和項目結(jié)束。(2)簡述項目計

溫馨提示

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

評論

0/150

提交評論