軟件工程(習題)及軟件工程答案整理_第1頁
軟件工程(習題)及軟件工程答案整理_第2頁
軟件工程(習題)及軟件工程答案整理_第3頁
軟件工程(習題)及軟件工程答案整理_第4頁
軟件工程(習題)及軟件工程答案整理_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件工程(習題)1.以下哪種不是可行性分析的內(nèi)容(B)。A.技術(shù)可行性B.質(zhì)量可行性C.經(jīng)濟可行性D.社會可行性2.軟件工程三要素是(C)。A.技術(shù)、方法和工具B.方法、對象和類C.方法、工具和過程D.過程、模型和方法3.每個階段之前增加了風險分析過程的快速原型模型是(D)。A.瀑布模型B.增量模型C.噴泉模型D.螺旋模型4.增量模型本質(zhì)上是一種(C)。A.線性順序模型 B.整體開發(fā)模型 C.非整體開發(fā)模型D.順序執(zhí)行模型5.需求規(guī)格說明書的作用不應(yīng)包括(D)。A.軟件設(shè)計的依據(jù) B.用戶與軟件開發(fā)人員對軟件要做什么的共同理解C.軟件驗收的依據(jù) D.軟件可行性研究的依據(jù)6.在結(jié)構(gòu)化分析方法中用以表達系統(tǒng)內(nèi)數(shù)據(jù)的運動情況的工具是(A)。A.數(shù)據(jù)流圖B.數(shù)據(jù)字典C.結(jié)構(gòu)化語言D.判定表與判定鼠7.以下哪種測試是白盒測試方法()A.數(shù)據(jù)流測試 B.條件測試C.邊界值測試 D.循環(huán)測試8.關(guān)聯(lián)是建立(B)之間關(guān)系的一種手段。A.對象B.類C.功能D.屬性9.面向?qū)ο蟮姆治鍪滓ぷ魇墙ⅲ―)。A.系統(tǒng)的動態(tài)模型B.系統(tǒng)的功能模型C.基本的E-R圖D.問題的對象模型10.下列哪項不是人們常用的評價軟件質(zhì)量的4個因素之一()?A.可移植性B.可靠性C.可維護性D.易用性11.(F)需求分析的主要目的是解決軟件開發(fā)的具體方案。12.(F)軟件設(shè)計說明書是軟件概要設(shè)計的主要成果。13.(T)單元測試通常應(yīng)該先進行“人工走查”,再以白盒測試為主,輔以黑盒法進行動態(tài)測試。14.(T)類的設(shè)計過程包括:確定類、確定關(guān)聯(lián)類、確定屬性和識別繼承關(guān)系。15.(T)面向?qū)ο蠓治鼍褪浅槿『驼碛脩粜枨蟛⒔栴}域精確模型的過程。21某銀行計算機儲蓄系統(tǒng)的工作過程大致如下:儲戶填寫的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名、住址、身份證號碼等存款信息,并打印出存款存單給儲戶;如果是取款且存款時留有密碼,則系統(tǒng)首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統(tǒng)計算利息并打印出利息清單給儲戶。要求:1、用ER圖描繪系統(tǒng)中的數(shù)據(jù)對象。2、請用數(shù)據(jù)流圖描繪本系統(tǒng)的功能。軟件工程答案整理填空1.軟件測試的目的是盡可能多地發(fā)現(xiàn)軟件中存在的錯誤,將測試結(jié)果作為糾錯的依據(jù)。2.測試階段的基本任務(wù)是根據(jù)軟件開發(fā)各階段的和程序的,精心設(shè)計一組,利用這些實例執(zhí)行,找出軟件中潛在的各種和。3.測試用例由和預期的兩部分組成。4.軟件測試方法一般分為兩大類:方法和方法。5.動態(tài)測試通過發(fā)現(xiàn)錯誤。根據(jù)的設(shè)計方法不同,動態(tài)測試又分為與兩類。6.靜態(tài)測試采用和的手段對程序進行檢測。7.人工審查程序偏重于的檢驗,而軟件審查除了審查還要對各階段進行檢驗。8.計算機輔助靜態(tài)分析利用工具對測試程序進行分析。9.黑盒法只在軟件的處進行測試,依據(jù)說明書,檢查程序是否滿足要求。10.白盒法必須考慮程序的和,以檢查的細節(jié)為基礎(chǔ),對程序中盡可能多的邏輯路徑進行。11.白盒測試是測試,被測對象是,以程序的為基礎(chǔ)設(shè)計測試用例。12.邏輯覆蓋是對程序內(nèi)部有存在的邏輯結(jié)構(gòu)設(shè)計測試用例,根據(jù)程序內(nèi)部的邏輯覆蓋程度又可分為、、、、和6種覆蓋技術(shù)。13.實際的邏輯覆蓋測試中,一般以覆蓋為主設(shè)計測試用例,然后再補充部分用例,以達到覆蓋測試標準。14.循環(huán)覆蓋是對程序內(nèi)部有存在的邏輯結(jié)構(gòu)設(shè)計測試用例,它通過限制來測試。15.基本路徑測試是在程序基礎(chǔ)上,通過分析控制構(gòu)造的復雜性,導出集合,從而設(shè)計測試用例。16.黑盒測試是測試,用黑盒技術(shù)設(shè)計測試用例有4種方法:、、和。17.等價類劃分從程序的說明,找出一個輸入條件(通常是或),然后將每個輸入條件劃分成兩個或多個。18.邊界值分析是將測試情況作為重點目標,選取正好等于、剛剛大于或剛剛小于的測試數(shù)據(jù)。如果輸入或輸出域是一個有序集合,則應(yīng)選取集合的元素和元素作為測試用例。19.在測試程序時,根據(jù)經(jīng)驗或直覺推測程序中可能存在的各種錯誤,稱為。20.因果圖的基本原理是通過畫圖,把用自然語言描述的轉(zhuǎn)換為,最后為每一列設(shè)計一個測試用例。21.測試的綜合策略是在測試中,聯(lián)合使用各種方法。通常先用法設(shè)計基本的測試用例,再用法補充一些必要的測試用例。22.軟件測試過程中需要3類信息:、和。23.軟件測試一般經(jīng)過4個測試:、、和。24.指對源程序中每一個程序單元進行測試,檢查各個模塊是否正確實現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯誤,它涉及和的文檔。25.單元測試主要測試的5個基本特征:、、、和。26.在單元測試中,需要為被測模塊設(shè)計模塊和模塊。用來模擬被測模塊的上級調(diào)用模塊,用來代替被測模塊所調(diào)用的模塊。27.集成測試指在測試基礎(chǔ)上,將所有模塊按照設(shè)計要求組裝成一個完整的系統(tǒng)進行的測試。也稱測試或測試。28.集成測試的方法有兩種:和。29.漸增式測試有兩種不同的組裝模塊的方法:和。30.自頂向下漸增式測試不需要編寫模塊,只需要編寫模塊,其步驟是從模塊開始,沿著被測程序的的控制路徑逐步向下測試,它有兩種組合策略:和。31.自底向上漸增式測試不需要編寫模塊,只需要編寫模塊。32.確認測試指檢查軟件的與是否與說明書中確定的指標相符合,又稱測試。33.確認測試在模擬環(huán)境下運用測試方法,由和參加的測試。34.確認測試開始前需要制定計劃,結(jié)束后要寫出報告。其測試用例要選用的數(shù)據(jù)。35.軟件配置審查的任務(wù)是檢查軟件的所有文檔資料的和。36.調(diào)試也稱,是在成功的測試之后才開始進行,其目的是確定錯誤的和,并改正錯誤。37.調(diào)試技術(shù)包括、、和。38.回溯法調(diào)試是從出發(fā),而歸納法調(diào)試是從入手。39.被測試程序不在機器上運行,而是采用人工檢測和計算機輔助分析檢測的手段稱為測試。40.用等價類劃分法設(shè)計一個測試用例時,使其覆蓋尚未被覆蓋的合理等價類。41.用等價類劃分法設(shè)計一個測試用例時,使其覆蓋不合理等價類。42.在單元測試時,需要為被測模塊設(shè)計。43.在集成測試時有兩種測試方法,它們是。44.軟件測試是為了而執(zhí)行程序的過程。45.運行被測程序的方法稱為測試。46.動態(tài)測試中,主要測試軟件功能的方法稱為法。47.選擇測試用例,使得被測程序中每個判定的每個分支至少執(zhí)行一次,這種邏輯覆蓋標準稱為。48.要覆蓋含循環(huán)結(jié)構(gòu)的所有路徑是不可能的,一般通過限制來測試。49.用等價類劃分法設(shè)計測試用例時,如果被測程序的某個輸入條件規(guī)定了取值范圍,則可確定一個合理的等在和。50.憑經(jīng)驗或直覺推測程序中可能存在的錯誤而設(shè)計測試用例的方法是。51.集成測試中的具體方法是。52.確認測試階段的兩項工作是。53.在單元測試中,測試一個模塊時,需要設(shè)計。54.軟件配置管理,簡稱SCM,它用于整個軟件工程過程。其主要目標是:、、、。55.SCM是一組管理整個軟件生存期各階段中的活動。56.基線的作用是把各階段的開發(fā)工作劃分得更加明確,便于檢查與確認階段成果。因此,基線可以作為項目的一個。2.文檔資料內(nèi)部結(jié)構(gòu)測試用例程序錯誤缺陷3.輸入數(shù)據(jù)輸出數(shù)據(jù)4.動態(tài)測試靜態(tài)測試5.運行程序測試用例黑盒測試白盒測試6.人工檢測計算機輔助靜態(tài)分析7.編碼質(zhì)量編碼軟件產(chǎn)品8.靜態(tài)分析特性9.接口需求規(guī)格功能10.內(nèi)部結(jié)構(gòu)處理過程處理過程測試11.結(jié)構(gòu)源程序內(nèi)部邏輯12.判定語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋13.條件組合路徑14.循環(huán)循環(huán)次數(shù)15.控制流程圖環(huán)路基本路徑16.功能等價類劃分邊界值分析錯誤推測因果圖17.功能一句話一個短語等價類18.邊界邊界值第一個最后一個19.錯誤推測法20.因果功能說明判定表判定表21.測試黑盒白盒22.軟件配置測試配置測試工具23.單元測試集成測試確認測試系統(tǒng)測試24.單元測試編碼詳細設(shè)計25.模塊模塊接口局部數(shù)據(jù)結(jié)構(gòu)重要的執(zhí)行路徑錯誤處理邊界條件26.驅(qū)動樁驅(qū)動模塊樁模塊27.單元組裝聯(lián)合28.非漸增式測試漸增式測試29.自頂向下結(jié)合自底向上結(jié)合30.驅(qū)動樁頂層軟件結(jié)構(gòu)圖深度優(yōu)先策略寬度優(yōu)先策略31.樁驅(qū)動32.功能性能需求規(guī)格有效性33.黑盒專門測試人員用戶34.測試測試分析實際運用35.完整性正確性36.糾錯原因位置37.簡單調(diào)試歸納法調(diào)試演繹法調(diào)試回溯法調(diào)試38.程序產(chǎn)生錯誤的地方測試結(jié)果發(fā)現(xiàn)的線索39.靜態(tài)40.盡可能多的41.一個42.驅(qū)動模塊與樁模塊43.漸增式和非漸增式44.發(fā)現(xiàn)錯誤45.動態(tài)測試46.黑盒法47.判定覆蓋48.循環(huán)次數(shù)49.兩個不合理的等價類50.錯誤推測法51.漸增式和非漸增式測試方法52.進行確認測試和軟件配置審查53.驅(qū)動模塊和樁模塊54.標識變更控制變更確保變更正確地實現(xiàn)報告有關(guān)變更55.變更56.檢查點1.程序設(shè)計語言的特性主要有心理特性、工程特性和技術(shù)特性三個方面。2.程序語言的工程特性主要表現(xiàn)為可移植性、開發(fā)工具的可利用性、軟件的可重用性和可維護性。3.為了提高程序的易讀性,同時為減少錯誤,提高軟件開發(fā)效率,編碼時應(yīng)注意養(yǎng)成良好的程序設(shè)計風格。4.程序加注釋對理解程序提供了明確指導,根據(jù)作用不同注釋分序言性注釋和功能性注釋。5.軟件需求分析之后,軟件的設(shè)計、編碼、測試與語言的特性有很大的關(guān)系,這個特性主要是語言的技術(shù)特性。6.語句構(gòu)造的原則是簡單直接,不能為了追求效率而使代碼復雜化。7.FORTRAN語言上世界上第一個被正式推廣應(yīng)用的計算機語言,它不僅面向科學計算,數(shù)據(jù)處理能力也極強。8.匯編語言是面向機器的,可以完成高級語言無法滿足要求的特殊功能,如與外部設(shè)備之間的一些接口操作。9.為了使數(shù)據(jù)定義更容易理解和維護,一個語句說明多個變量時,各變量名按字典排列。10.編碼是將詳細設(shè)計得到的處理過程的描述轉(zhuǎn)換為基于某種計算機語言的程序。1.軟件原來沒有幫助信息,使用不方便,現(xiàn)在要增加幫助信息。這種維護性活動稱之為完善性維護。2.調(diào)試也稱糾錯,是在成功的測試之后才開始進行,其目的是確定錯誤的原因和位置,并改正錯誤。3.調(diào)試技術(shù)包括簡單調(diào)試、歸納法調(diào)試、演繹法調(diào)試和回溯法調(diào)試。4.回溯法調(diào)試是從程序產(chǎn)生錯誤的地方出發(fā),而歸納法調(diào)試是從測試結(jié)果發(fā)現(xiàn)的線索入手。簡答題1簡述1983年IEEE為軟件下的定義。5822926計算機程序、方法、規(guī)則、相關(guān)的文檔資料以及在計算機上運行程序時所必需的數(shù)據(jù)。2簡述軟件危機的表現(xiàn)有哪些?以及解決軟件危機的途徑有哪些?軟件危機的主要表現(xiàn)包括:(1)軟件開發(fā)進度難以預測,開發(fā)成本難以控制,導致超預算、超時;(2)產(chǎn)品功能難以滿足用戶需求;(3)軟件產(chǎn)品質(zhì)量無法保證;(4)軟件缺少適當?shù)奈臋n資料,維護困難;(5)軟件成本超過硬件成本;(6)軟件開發(fā)生產(chǎn)率的提高速度跟不上計算機應(yīng)用普及深入的趨勢;解決軟件危機的途徑有:1管理措施:項目管理、配置管理、過程管理、質(zhì)量控制2技術(shù)措施:開發(fā)過程、開發(fā)技術(shù)與方法和開發(fā)工具3軟件工程的定義1993年IEEE給出的定義:軟件工程是:①系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運行和維護過程,也就是把工程應(yīng)用于軟件;②研究①中提到的途徑?!避浖こ淌菄@軟件開發(fā)的一門交叉學科: 軟件工程=計算機科學+工程學+管理學4軟件工程的10個知識領(lǐng)域軟件工程過程(SoftwareEngineeringProcess)軟件工程工具和方法(SoftwareEngineeringToolsandMethods)軟件需求(SoftwareRequirement)l軟件設(shè)計(SoftwareDesign)軟件構(gòu)造(SoftwareConstruction)軟件測試(SoftwareTesting)軟件維護(SoftwareMaintenance)軟件配置管理(SoftwareConfigurationmanagement)軟件工程管理(SoftwareEngineeringmanagement)軟件質(zhì)量(SoftwareQuality)5軟件工程的目標是什么,軟件工程的三要素都是什么?軟件工程的目標:軟件工程必須以有組織的質(zhì)量保證為基礎(chǔ),進行全面質(zhì)量管理,不斷地過程改進使軟件工程方法走向成熟。軟件工程的三要素包括:過程、方法和工具過程為及時合理地開發(fā)出滿足用戶需求的計算機軟件而進行一系列有組織的活動。過程定義了技術(shù)方法的采用、工程產(chǎn)品(包括模型、文檔、數(shù)據(jù)、報告、表格等)的產(chǎn)生、里程碑的建立、質(zhì)量的保證和變更的管理。方法為軟件開發(fā)提供“如何做”的技術(shù),它涵蓋了項目計劃、需求分析、系統(tǒng)設(shè)計、程序?qū)崿F(xiàn)、測試與維護等一系列的開發(fā)活動如何來做。開發(fā)方法經(jīng)歷了從面向結(jié)構(gòu)、面向?qū)ο?、面向組件到面向服務(wù)的發(fā)展工程。工具為過程和方法提供自動的或半自動的支持。這些軟件工具被集成起來,建立起一個支持軟件開發(fā)的系統(tǒng),稱之為計算機輔助軟件工程(CASE,ComputerAidedSoftwareEngineering)。6軟件工程的七條基本原理美國著名的軟件工程專家巴利?玻姆(BarryBoehm)提出了軟件工程的七條基本原理:1.用分階段的生命周期計劃嚴格管理;2.堅持進行階段評審;3.實行嚴格的產(chǎn)品控制;4.采納現(xiàn)代程序設(shè)計技術(shù);5.結(jié)果應(yīng)能清楚地審查;6.開發(fā)小組的人員應(yīng)少而精;7.承認不斷改進軟件工程實踐的必要性。7簡述軟件過程的定義,軟件過程又可以分為那幾個類型?軟件過程(SoftwareProcedure)是為獲得軟件產(chǎn)品,在軟件工具支持下由軟件工程師完成的一系列軟件工程活動。軟件過程可概括為基本過程、支持過程和組織過程等三種類型。其中,基本過程包括:獲取過程、供應(yīng)過程、開發(fā)過程、運作過程和維護過程。支持過程包括:文檔編制過程、配置管理過程、質(zhì)量保證過程、驗證過程、確認過程、聯(lián)合評審過程和問題解決過程等過程。組織過程包括:管理過程、基礎(chǔ)設(shè)施過程、改進過程和培訓過程。8里程碑(MileStone)思想階段工作的目標進行總結(jié)、評審、調(diào)整和部署下一個里程碑。目的:合理分配,細化管理“粒度”,降低項目風險。9基線思想基線是指一個(或一組)配置項在項目生命周期的不同時間點的一種狀態(tài),各階段有各階段的基線:需求基線、設(shè)計基線、測試基線等?;€一旦建立后變化需要受控制。10簡述軟件生存周期的概念,說明軟件生存周期劃分為那幾個主要時期?每個時期有包括哪些主要階段?軟件生存周期是指軟件產(chǎn)品從定義到開發(fā)、使用和維護,直到最終被棄用的時期,稱為生存周期。生存周期的可劃分為計劃時期、開發(fā)時期和運行時期等三個主要時期。其中計劃時期包括問題定義和可行性研究兩個階段。開發(fā)時期包括需求分析、總體設(shè)計、詳細設(shè)計和實現(xiàn)等四個階段。運行時期的又稱為運行和維護階段。11簡述教材中介紹了那些軟件開發(fā)模型?這些模型各有什么特點?教材中重點介紹了瀑布、原型、增量、螺旋四個傳統(tǒng)模型和RUP、XP兩個現(xiàn)代模型。其中,瀑布模型嚴格按照生存周期開發(fā)軟件,每個階段必須完成規(guī)定的、完整、準確的合格文檔,前一階段的輸出文檔就是后一階段的輸入文檔。其主要特點包括:①活動間具有順序性和依賴性;②推遲實現(xiàn)的觀點;③質(zhì)量保證的觀點;快速原型模型法是開發(fā)人員在一個基本的需求的基礎(chǔ)上快速開發(fā)出一個軟件原型,然后由用戶使用和評價原型、開發(fā)人員根據(jù)用戶意見再修改原型,然后再使用評價再修改、直至將原型進化為最終產(chǎn)品。快速原型模型的特點包括:①做出系統(tǒng)原型,及早向用戶展示系統(tǒng)要實現(xiàn)的界面及功能,增強用戶的合作信心;②直觀化的表達,容易交流,消除理解上的歧義;③修改集中在前期的原型確認上,較大程度減少后期實施中的返工。④入手快,加快開發(fā)進度;增量模型是一種演化模型,先完成一個系統(tǒng)子集的開發(fā),再按同樣的開發(fā)步驟增加子集,如此遞增下去直至滿足全部系統(tǒng)需求。每個增量可按快速原型法進行。增量模型的特點包括:①無須等待獲取完整需求就可入手,盡快見到成果,增強雙方信心;②分步開發(fā),降低復雜性和難度,減少技術(shù)風險,并可并行開發(fā);③邊開發(fā)邊投入,可及早發(fā)現(xiàn)問題,減少投資風險;④各個子集是逐漸并入已有的系統(tǒng)中,加入子集不能破壞已構(gòu)造好的部分,這需要軟件具備開放式的體系結(jié)構(gòu);⑤適用于需求不完整的軟件開發(fā),指的是需求逐漸摸清、逐步完善,并非隨意改變,需求改變過大會導致整體性失控。后面要介紹的XP(極限編程)屬于該模型。螺旋模型(Spiralmodel)是一種融合了瀑布模型、快速原型模型和增量模型的演進模型,并引入風險分析機制。適合大型復雜的系統(tǒng)開發(fā)。螺旋模型特點包括:①多種模型結(jié)合的一種演進模型,融合了瀑布模型、快速原型和增量模型的所有特點,融進了循環(huán)往復、迭代演進的思想;②增加風險分析,一旦風險成立,原方案應(yīng)終止、修訂,力求風險可控③客戶始終參與每個階段的開發(fā),每個階段的成果需客戶確認,避免錯誤的積累。統(tǒng)一過程RUP(RationalUnifiedProcess)是由Rational公司在推出統(tǒng)一建模語言UML后,推出的一個軟件開發(fā)框架RUP,稱為軟件統(tǒng)一開發(fā)過程。12統(tǒng)一過程RUP定義了那幾個主要階段?初始階段(Inception):主要完成商業(yè)需求,確定項目邊界。里程碑是生命周期目標(LifecycleObjective),評價項目基本的生存能力。細化階段(Elaboration):主要完成領(lǐng)域問題分析和軟件設(shè)計。獲取用戶需求(功能和非功能需求),建立需求模型;進一步確立體系結(jié)構(gòu)和設(shè)計軟件結(jié)構(gòu)等工作。里程碑是生命周期結(jié)構(gòu)(LifecycleArchitecture)。構(gòu)造階段(Construction):主要完成系統(tǒng)實現(xiàn)、測試,里程碑是初始功能(InitialOperational),產(chǎn)品版本常被稱為“beta”版。交付階段(Transition):重點是確保軟件對最終用戶是可用的。里程碑:產(chǎn)品發(fā)布(ProductRelease)13統(tǒng)一過程RUP工作流6個核心過程工作流(CoreProcessWorkflows)商業(yè)建模(BusinessModeling):弄清項目邊界和約束,做出計劃。需求(Requirements):描述系統(tǒng)應(yīng)做什么,開發(fā)人員和用戶達成需求基線。分析和設(shè)計(Analysis&Design):將需求轉(zhuǎn)化成計算機可以實現(xiàn)的模型。實現(xiàn)(Implementation):用程序設(shè)計語言將設(shè)計模型組織成可執(zhí)行的文件、數(shù)據(jù)。測試(Test):是發(fā)現(xiàn)軟件中的錯誤,在實驗環(huán)境下驗證所有的需求是否被正確的實現(xiàn)。部署(Deployment):將軟件分發(fā)給最終用戶,安裝在真實的環(huán)境下,由用戶操作運行。3個核心支持工作流(CoreSupportingWorkflows)是對核心過程工作流的配套支持和管理,保障核心過程工作流順暢、高效運行。配置和變更管理:工作文檔的管理,在版本更新、需求變更中做到各類文檔及時、同步跟蹤,保證各文檔內(nèi)容完整、一致。項目管理(ProjectManagement):資源配置、評估監(jiān)控、風險控制、計劃調(diào)整等管理工作,目的效益最大化。環(huán)境(Environment):軟件開發(fā)環(huán)境,包括人員、設(shè)備、過程和工具,以及各種規(guī)范、指導手冊和保障措施。14簡述rup模型中基線與里程碑的概念,二者之間的關(guān)系。基線,是軟件文檔或源碼(或其它產(chǎn)出物)的一個穩(wěn)定版本,它是進一步開發(fā)的基礎(chǔ),也可以理解成為一個階段的起點并已經(jīng)制定了相應(yīng)的工作標準,并且只有經(jīng)過授權(quán)后才能變更這個標準。里程碑,是計劃中確定的階段性工作完成目標,要求提交階段交付物,作為階段評估的標準。基線和里程牌的關(guān)系:基線是為了建立參照點,是階段的起點;里程牌是建立階段性目標,是階段終點,最后的里程牌可能是一次迭代的終結(jié)。15簡述軟件計劃的目標和主要工作.軟件計劃的目標:研究項目的可行性,研究合理地運用軟件項目開發(fā)所需的資源、經(jīng)費,掌握開發(fā)進度,控制項目開發(fā)過程按此計劃進行。主要工作包括:確定項目實施范圍、定義遞交的工作成果、評估實施過程中主要的風險、制定項目實施的時間計劃、成本和預算計劃、人力資源計劃等。16軟件計劃的活動有哪些?這些活動的內(nèi)容是什么?軟件計劃主要活動包括:問題定義,可行性研究,項目計劃。這些活動的內(nèi)容是:問題定義:確定項目實施范圍,回答項目“做什么?”的問題??尚行匝芯浚喉椖康谋匾院涂赡苄?。制定項目計劃:編制項目開發(fā)計劃。17簡述問題定義的目的和主要任務(wù)。問題定義的目的:弄清要計算機解決的根本問題所在(要解決的問題是什么?),確定新系統(tǒng)的作用域,以及項目所需的資源、工期和經(jīng)費。問題定義的主要任務(wù):編寫項目報告提交審查,作為可行性分析的依據(jù)。18簡述可行性分析的目的、任務(wù)和內(nèi)容??尚行苑治龅哪康模捍_定項目的必要性和可能性??尚行苑治龅娜蝿?wù)包括:可行性分析;寫可行性研究報告;編制開發(fā)計劃??尚行苑治龅膬?nèi)容包括:技術(shù)、經(jīng)濟和社會三個方面的可行性:19簡述需求分析的目的、必要性和參與角色需求分析的目的是:弄清用戶對系統(tǒng)的細節(jié)要求,完整、準確、清晰、具體地回答目標系統(tǒng)“做什么”。準確地理解用戶提出的軟件功能、性能及其環(huán)境的要求。需求分析的必要性:用戶與開發(fā)者的知識領(lǐng)域不同,產(chǎn)生歧義;軟件開發(fā)失敗50%是需求不合理,早期錯誤易放大。參與角色:開發(fā)方包括分析師、設(shè)計師和架構(gòu)師。用戶方包括領(lǐng)域?qū)<?、用戶和部門負責人。20需求開發(fā)的任務(wù)有哪些?需求開發(fā)的任務(wù)包括需求獲取:收集用戶對目標軟件系統(tǒng)在功能、性能、行為、設(shè)計約束等方面的期望。需求分析:通過符號和文字說明描述系統(tǒng)模型,使用戶和開發(fā)者間建立共同語言基礎(chǔ),消除理解上的歧義的過程。需求說明:既編寫需求文檔,也稱編寫需求規(guī)格說明書。需求說明書是需求分析階段的最終成果,也是需求分析階段復審的依據(jù);是用戶領(lǐng)域?qū)<?、軟件分析師、軟件設(shè)計師共同交流的途徑和媒介;是交付給用戶文檔的一部份;需求驗證:即需求評審。根據(jù)需求說明書,分析師、設(shè)計師、客戶會審文檔,對需求的正確性、一致性、完整性、無二義行進行評審、確認。21需求的層次軟件需求包括三個不同的層次:業(yè)務(wù)需求、用戶需求、功能需求,也包括非功能需求。1.業(yè)務(wù)需求(businessrequirement)業(yè)務(wù)需求是反映企業(yè)/組織對軟件系統(tǒng)的高層次目標要求,即軟件系統(tǒng)的建設(shè)目標。業(yè)務(wù)需求通常是“問題定義”或“可行性研究”階段獲取的內(nèi)容;在需求規(guī)格說明書中反映在項目背景、系統(tǒng)目標或任務(wù)概述的描述中。獲取的主要對象是客戶方的高管、專家、部門負責人。2.用戶需求(userrequirement)用戶需求:用來描述用戶使用產(chǎn)品必須要完成的任務(wù);使用業(yè)務(wù)領(lǐng)域的術(shù)語描述,采用開發(fā)者與用戶都能理解的語言和圖形表達。用戶需求是經(jīng)過調(diào)查、歸納后雙方認同的結(jié)果。獲取的主要對象是部門負責人、軟件的操作者或稱終端用戶。3.功能需求(functionalrequirement)功能需求定義了開發(fā)人員必須實現(xiàn)的軟件功能,結(jié)果在需求規(guī)格說明書中;功能需求用軟件行業(yè)術(shù)語表達:通常是需求建模的結(jié)果即目標系統(tǒng)的邏輯模型,如結(jié)構(gòu)化的功能模型、數(shù)據(jù)模型、行為模型,面向?qū)ο蟮念惸P偷取?.非功能需求特性是指一些非功能需求,是滿足業(yè)務(wù)需求的性能要求。如界面的交互性、數(shù)據(jù)的安全性、數(shù)據(jù)的事務(wù)性、用戶的并發(fā)性、響應(yīng)的快速性、操作的實時性、錯誤與異常的恢復性、軟件的容錯性等等。項目的失敗或拖延一般不是在功能上,而恰恰倒是在性能要求上,因為這些性能與軟件的體系結(jié)構(gòu)有關(guān),與構(gòu)成系統(tǒng)的網(wǎng)路與硬件環(huán)境等底層技術(shù)有關(guān),往往超越一般開發(fā)人員的技術(shù)能力。22需求獲取的一般方法① 需求獲取方法以采訪、觀察、座談、對先前的系統(tǒng)版本的測試等。必要時采用快速原型法。② 先集中在使用者對系統(tǒng)的觀點上,以收集用戶原始資料,數(shù)據(jù)、工作方式、工作流程、使用要求等為工作起點,深入到部門、車間、班組,做好原始紀錄;③ 然后根據(jù)對問題及環(huán)境的理解與開發(fā)經(jīng)驗,改正用戶需求的模糊、歧義和不一致性要求,排除用戶的不合理要求,挖掘用戶尚未提出但具有價值的潛在需求,使用戶需求逐步精確化、一致化和完全化;④ 需求獲取非一次完成:需要往復進行、逐步深化。⑤需求獲取的內(nèi)容:寫進“需求規(guī)格說明書”,確認。23需求獲取的策略①循序漸進的策略;②確定優(yōu)先級:先進行重點的需求調(diào)研,有助于識別出重大的風險,并為制定迭代計劃提供指導;③不要陷入技術(shù):需求未明確,應(yīng)回避對技術(shù)問題討論。④挖掘用戶需求:“誘導式”就是挖掘用戶需求??蛻舨⒎荌T專業(yè)人士,需求的概念是模糊的、籠統(tǒng)的,而且尺度難以把握,預測潛在需求。⑤區(qū)分不必要的需求:客戶對有些需求提不出來,自然也會提出一些不必要的需求。24簡述概要設(shè)計和詳細設(shè)計的內(nèi)容。軟件設(shè)計包括概要設(shè)計和詳細設(shè)計。概要設(shè)計又分為體系結(jié)構(gòu)設(shè)計和領(lǐng)域問題結(jié)構(gòu)設(shè)計。體系結(jié)構(gòu)設(shè)計:是支撐和管理軟件運行的環(huán)境設(shè)計。由于現(xiàn)代的軟件是處在操作系統(tǒng)、網(wǎng)絡(luò)、各種服務(wù)器共同搭建的環(huán)境下運行,并且具有并發(fā)、安全、事務(wù)等多方面的管理,是軟件設(shè)計優(yōu)先考慮的問題。領(lǐng)域問題結(jié)構(gòu)設(shè)計:滿足需求的軟件功能設(shè)計,核心所在。將領(lǐng)域問題的分析模型細化成軟件結(jié)構(gòu)模型,也就是劃分軟件的模塊結(jié)構(gòu)及確定模塊之間的關(guān)系。②詳細設(shè)計又分為如下三個部分:對模塊內(nèi)部的過程和數(shù)據(jù)結(jié)構(gòu)進行設(shè)計。也就是對模塊內(nèi)進行算法分析和程序設(shè)計。人機交互界面的具體設(shè)計,還有與其它外部系統(tǒng)接口設(shè)計。完成對數(shù)據(jù)庫的物理設(shè)計概要設(shè)計是根據(jù)需求確定軟件和數(shù)據(jù)的總體框架;詳細設(shè)計是進一步精化成軟件的算法和數(shù)據(jù)結(jié)構(gòu)。2525簡述衡量軟件模塊獨立性的度量標準有哪些?模塊獨立性是指模塊能夠完成獨立的功能;模塊符合信息隱藏和信息局部化原則;模塊間關(guān)連和依賴程度盡量小。衡量軟件模塊獨立性的度量標準的指標有取決于模塊的內(nèi)部特征的指標內(nèi)聚度和取決于模塊的外部特征的指標耦合度。內(nèi)聚度:一個模塊內(nèi)部各個元素間(語句和程序段)彼此的緊密程度的度量。耦合度:指軟件結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。26簡述內(nèi)聚度的七個等級?內(nèi)聚度表示一個模塊內(nèi)部各成分之間彼此結(jié)合的緊密程度。內(nèi)聚度按其高低程度可分為七級,高內(nèi)聚度模塊獨立性強,設(shè)計盡可能提高模塊內(nèi)聚度。偶然性內(nèi)聚:是指一個模塊內(nèi)各成分為完成一組功能而組合在一起,它們相互之間即使有關(guān)系,也很松散。邏輯性內(nèi)聚:模塊內(nèi)完成的諸任務(wù)邏輯上相關(guān)。該類內(nèi)聚的缺點是執(zhí)行中要從模塊外引入用作判斷的開關(guān)量,從而增加了塊間偶合(控制偶合)。時間性內(nèi)聚:如果一個模塊包含的諸任務(wù)必須在同一時間段內(nèi)執(zhí)行,則稱之為時間性內(nèi)聚過程性內(nèi)聚:模塊的過程性內(nèi)聚度是指模塊內(nèi)成份彼此相關(guān),并且必須按特定的次序在本模塊內(nèi)執(zhí)行;通訊性內(nèi)聚:是指模塊中各組成成分都將對某個數(shù)據(jù)結(jié)構(gòu)的同一區(qū)域進行操作,以達到通信的目的。順序性內(nèi)聚:一個模塊內(nèi)的各處理成分均與同一功能相關(guān),且這些處理必須順序執(zhí)行,通常,一個處理成分的輸出是另一個處理成分的輸入。功能性內(nèi)聚:模塊內(nèi)所有成分形成一個整體,完成單個功能,則稱功能內(nèi)聚,功能內(nèi)聚是最高程度的內(nèi)聚形式。27耦合度的七個等級耦合度是模塊獨立性最顯著特征。耦合度按其高低程度可分為七級,松耦合是軟件設(shè)計一直追求的目標。非直接耦合:模塊不依賴另一個模塊能獨立工作,這是最松的耦合。數(shù)據(jù)耦合:兩模塊間通過參數(shù)交換數(shù)據(jù)信息,則稱這兩模塊為數(shù)據(jù)耦合。特征耦合:模塊之間除傳遞關(guān)鍵數(shù)據(jù)外還附加公共數(shù)據(jù)??刂岂詈?如果兩模塊間通過參數(shù)交換信息,此時若傳遞的信息中含有控制信息,則為控制耦合。外部耦合:當若干模塊均與同一個外部環(huán)境關(guān)聯(lián),它們之間便存在外部耦合。公共耦合:當若干模塊通過全局的數(shù)據(jù)環(huán)境相互作用時,它們之間存在公共耦合。內(nèi)容耦合:當一個模塊使用另一個模塊內(nèi)部的數(shù)據(jù)或控制信息;一個模塊直接轉(zhuǎn)移到另一個模塊內(nèi)部等,模塊間的耦合就是內(nèi)容耦合。28簡述模塊的作用域與控制域的概念及其相關(guān)設(shè)計原則。模塊的作用域:從功能方面考慮,受模塊內(nèi)一個判定影響的所有模塊的集合;模塊的控制域:從結(jié)構(gòu)方面考慮,包括它自己及其所有下屬模塊的集合。相關(guān)設(shè)計原則是:模塊的作用域應(yīng)在控制域之內(nèi)。29詳細設(shè)計的表達方式有哪些?1.偽代碼(Pseudocode):是一種算法描述語言,也稱PDL語言(ProgramDesignLanguage)。偽代碼介于自然語言與編程語言之間,用偽代碼描述的算法可以容易用任何一種編程語言實現(xiàn)。偽代碼表達算法必須結(jié)構(gòu)清晰、代碼簡單、可讀性好。2.程序流程圖:用圖形符號表達算法,直觀表達循環(huán)、分支等復雜結(jié)構(gòu),是喜聞樂見的表現(xiàn)形式。3.盒圖(N-S)(Nassi和Shneiderman):也是一種圖形符號表達方式,同樣可以表達各種流向控制,但比程序流程圖緊湊、功能域明確。4.PAD圖(PAD-ProblemAnalysisDiagram)[28]:同樣是用圖形符號表達算法,但它具有結(jié)構(gòu)化的表達方式,因此結(jié)構(gòu)十分清晰,很容易翻譯成程序代碼。PAD支持自頂向下,逐步求精方法的使用。判定表與判定樹:對于規(guī)則較多,判定條件較復雜的情況,宜采用這兩種方法表達。5.判定表與判定樹:對于規(guī)則較多,判定條件較復雜的情況,宜采用這兩種方法表達。30簡述面向數(shù)據(jù)流的結(jié)構(gòu)化分析SA方法中,有哪些建模方法?功能建模:數(shù)據(jù)流圖DFD(DataFlowDiagram)+數(shù)據(jù)字典DD(DataDictionary);數(shù)據(jù)建模:實體關(guān)系圖ERD(EntityRelationDiagram);行為建模:狀態(tài)轉(zhuǎn)換圖STD(StateTransformDiagram);加工說明PESPEC(ProcessSPECification)和判定表等輔助工具。31簡述數(shù)據(jù)流圖(DFD)的圖形符號有哪些?①數(shù)據(jù)流:表示數(shù)據(jù)流的名稱和數(shù)據(jù)的流向(從加工出發(fā)或流向加工);②外部實體:系統(tǒng)外與系統(tǒng)交互的人或?qū)嶓w;③數(shù)據(jù)加工:數(shù)據(jù)處理;④數(shù)據(jù)存儲:數(shù)據(jù)進行持久保存的環(huán)節(jié);32簡述數(shù)據(jù)字典的作用、內(nèi)容和組成元素有哪些?數(shù)據(jù)流圖描述了數(shù)據(jù)加工,但沒有描述數(shù)據(jù)的內(nèi)容。數(shù)據(jù)流圖必須與描述并組織數(shù)據(jù)條目的數(shù)據(jù)字典DD(DataDictionary)配套使用。數(shù)據(jù)字典描述的對象:描述數(shù)據(jù)流圖中出現(xiàn)的所有數(shù)據(jù)和加工。這里的數(shù)據(jù)描述是概念性的,屬數(shù)據(jù)結(jié)構(gòu)的抽象描述;加工采用加工小說明進行概念性的描述。數(shù)據(jù)字典的組成元素包括:數(shù)據(jù)流條目、數(shù)據(jù)存儲條目、數(shù)據(jù)項條目;加工條目(也稱為小說明);33簡述面向?qū)ο蟮幕靖拍钣心男?.對象與面向?qū)ο髮ο螅∣bject):即表示客觀世界中的某個具體的事物。面向?qū)ο螅∣bjectOriented):是人類的活動,是人類認知、觀察客觀事物的方法論。2.面向?qū)ο蟮某橄笈c分類3.類的封裝與對象的整體性4.關(guān)聯(lián)性與交互性客觀事物都不是孤立存在的,萬物之間相互依存、相互交流。關(guān)聯(lián)性表達客觀事物的社會性、共存性、組織性,是靜態(tài)的結(jié)構(gòu)描述。消息機制是對象的交互性,表示對象生存環(huán)境的依賴性。5.繼承性對事物的分類本身就體現(xiàn)繼承性。軟件開發(fā)利用繼承性可對Object更好地分類,軟件結(jié)構(gòu)更嚴謹,代碼的復用性更強。6.多態(tài)性對象在不同的條件下,同樣的行為會表現(xiàn)不同的效果,這就是Object的多態(tài)(polymorphism)。面向?qū)ο缶幊陶Z言提供抽象類、接口、重載等技術(shù)支持多態(tài)的實現(xiàn)。34面向?qū)ο蟮奈宕筇匦杂心男??面向?qū)ο蟮奶匦杂谐橄笮?、封裝性、繼承性、多態(tài)性和消息機制等五大特性。35簡述面向?qū)ο箝_發(fā)過程的內(nèi)容有哪些?①需求獲?。洪_發(fā)者以O(shè)O的觀點(OOV)來觀察客觀世界的目標即獲取需求,然后用自然語言寫到需求規(guī)格說明(OOS)中,也就是對客觀世界的最高層抽象。②面向?qū)ο蠓治鯫OA(ObjectOrientedAnalysis)與面向?qū)ο笤O(shè)計OOD(ObjectOrientedDesign)。③面向?qū)ο缶幊蘋bjectOrientedProgram(OOP)與面向?qū)ο鬁y試ObjectOrientedTesting(OOT)是代碼實現(xiàn)過程,它依賴于編程語言和工具。④軟件維護ObjectOrientedSoftwareMaintenance(OOSM)。36與傳統(tǒng)的軟件開發(fā)方法相比較,面向?qū)ο箝_發(fā)的主要優(yōu)點有哪些?1.自然性即客觀性2.操作數(shù)據(jù)對象而非數(shù)據(jù)實體3.階段銜接平滑4.結(jié)構(gòu)性好、復用性強5.提高擴展性和維護性37簡述UML中定義了那些圖形符號?并簡述起作用。用例圖(UseCase)描述系統(tǒng)參與者與領(lǐng)域問題的功能類圖(Class)描述系統(tǒng)的邏輯結(jié)構(gòu),類、接口及它們的協(xié)作關(guān)系包圖(Package)描述類的復用組織—分組對象圖(Object)描述類的實例在某時刻的關(guān)系構(gòu)件圖(Component)描述系統(tǒng)按構(gòu)件組成上的關(guān)系配置圖(Deployment)描述系統(tǒng)運行環(huán)境的配置情況時序圖(Sequence)描述某些對象共同合作完成某項功能而按時間順序進行的消息傳遞協(xié)作圖(Collaboration)描述某些對象共同合作完成某項功能的依賴關(guān)系活動圖(Activity)描述某個用例按事件流轉(zhuǎn)所經(jīng)歷的的活動,即業(yè)務(wù)流程狀態(tài)圖(Statechart)描述某個業(yè)務(wù)流程按事件流轉(zhuǎn)所經(jīng)歷的狀態(tài),即狀態(tài)機38簡述用例圖中有哪些模型元素?并簡述其含義?①參與者:指存在于系統(tǒng)外部并與該系統(tǒng)發(fā)生交互的人或其他系統(tǒng),代表系統(tǒng)的使用者或使用環(huán)境。②用例(UseCase),用例用于表示系統(tǒng)提供的服務(wù),它定義了系統(tǒng)是如何與參與者交互,描述了參與者與系統(tǒng)之間的交互過程。③角色與用例間的關(guān)系關(guān)聯(lián),它表示參與者與系統(tǒng)中的哪些用例交互。用例之間的關(guān)系:包含<<include>>和擴充<<extend>>關(guān)系以及泛化關(guān)系。參與者之間的泛化關(guān)系。39簡述類圖中有哪些模型元素?并簡述其含義?提示:一切可以出現(xiàn)在類圖中的元素。類:類名、屬性、方法(可見性、作用域)特殊類:接口類之間的關(guān)系的定義、表示和屬性:關(guān)聯(lián)、依賴、聚合、組合、泛化、實現(xiàn)。各種類關(guān)系之間的關(guān)系。40簡述包圖中有哪些模型元素?并簡述其含義?提示:一切可以出現(xiàn)在包圖中的元素。包和包之間的關(guān)系。41簡述活動圖中有哪些構(gòu)成元素?并簡述這些元素的含義?42簡述OOA模型的結(jié)構(gòu)OOA的核心任務(wù)是搞清用戶需求,最終要建立起OOA模型。UML的OOA模型由“用例模型”和“概念模型”兩大部分組成。①用例模型,是將用自然語言描述的領(lǐng)域問題,轉(zhuǎn)換成UML語言表達的模型,主要面向用戶,反映用戶需求。完整的用例模型由用例圖和業(yè)務(wù)場景描述兩個部分組成,用例圖表示功能的劃分;業(yè)務(wù)場景描述則對每個用例的事件流進行描述;②概念模型(類模型/結(jié)構(gòu)模型/靜態(tài)模型)。將用例模型映射成類模型:從用例模型中找出類,面向設(shè)計人員。主要工作是:根據(jù)用例圖進行類的劃分與封裝;描述類間的靜態(tài)關(guān)系與結(jié)構(gòu);用交互圖表達類對象間的消息傳遞。43對象間的可訪問性①屬性可見性:B是A的一個屬性(關(guān)聯(lián)、聚合);②參數(shù)可見性:B的對象是A的一個方法的參數(shù);③局部聲明可見性:B的對象是在A的一個方法中聲明的一個局部變量;④全局可見性:B的對象在某種程度上全局可見;44對象持久化對象持久化常用技術(shù)實體類的實例稱為數(shù)據(jù)對象,對象持久化主要用于數(shù)據(jù)對象的持久化,簡稱數(shù)據(jù)持久化。一個數(shù)據(jù)對象的持久化就是保存到實體表中的一條記錄,對實體對象的訪問就是操作屬性的值。對象持久化常用技術(shù)①對象的序列化指將對象的相關(guān)信息(對象序列號、屬性名、屬性值等)轉(zhuǎn)換為字節(jié)流,然后再把字節(jié)流寫入數(shù)據(jù)流??梢园褜ο筮@些信息存儲在本地的文件里,也可以把它通過網(wǎng)絡(luò)傳輸?shù)竭h程。通過對象反序列化,得到原對象完全相同的副本。②對象持久化到數(shù)據(jù)庫中數(shù)據(jù)庫可以是對象數(shù)據(jù)庫或關(guān)系數(shù)據(jù)庫。③用XML(eXtensibleMarkupLanguage)存儲。45“實體模型”到“關(guān)系模型”的OR映射(1) 一個對象類可以映射為一個以上的庫表,當類間有一對多的關(guān)系時,一個表也可以對應(yīng)多個類。(2) 對象關(guān)系(一對一、一對多、多對多)的映射可能有多種情況,但一般映射為一個表或多個表,在表間定義相應(yīng)的主鍵PK(Primarykey)和外鍵FK(Foreignkey)建立實體間的關(guān)系。(3) 單一繼承的泛化關(guān)系可以對超類、子類分別映射表,也可以不定義父類表而讓子類表擁有父類屬性;反之,也可以不定義子類表而讓父類表擁有全部子類屬性。(4)對多重繼承的超類和子類分別映射表,對多次多重繼承的泛化關(guān)系也映射一個表。(5)對映射后的庫表進行冗余控制調(diào)整,使其達到合理的關(guān)系范式。46軟件測試的定義軟件測試是為了發(fā)現(xiàn)錯誤而運行程序的過程;軟件測試的目的是發(fā)現(xiàn)程序中的錯誤,是為了證明程序有錯,而不是證明程序無錯;測試對象不僅是程序,還應(yīng)該包括開發(fā)過程中產(chǎn)生的所有產(chǎn)品,包括文檔,其目的是為了盡早地、盡可能多的發(fā)現(xiàn)并排除軟件中潛在的錯誤。47軟件測試的基本原則①Who來測試?測試工作應(yīng)該由獨立的、專業(yè)的軟件測試機構(gòu)來完成,設(shè)計人員和程序員要參與測試;對測試結(jié)果一定要有一個確認的過程,一般由角色A測試出來的錯誤,一定要有一個角色B來確認,嚴重的錯誤可以召開評審會進行討論和分析;②測試What?程序員交付的模塊、系統(tǒng)和文檔;③測試Extent?設(shè)計測試用例,充分覆蓋所有條件或所有語句即可;④When測試?盡早和不斷的測試,即將這種“測試”貫穿于軟件開發(fā)的各個階段,堅持各個階段的技術(shù)評審,以便盡早地發(fā)現(xiàn)和預防錯誤;⑤How測試?設(shè)計測試用例時不僅要考慮到合法的輸入,還要考慮到不合法的輸入以及各種邊界條件;對發(fā)現(xiàn)錯誤較多的程序模塊,應(yīng)進行重點測試。48軟件缺陷,軟件缺陷的屬性:從產(chǎn)品內(nèi)部看,缺陷是軟件產(chǎn)品開發(fā)或維護過程中存在的錯誤、毛病等各種問題;從產(chǎn)品外部看,缺陷是系統(tǒng)所需要實現(xiàn)的某種功能的失效或違背。軟件缺陷的屬性:缺陷標識、缺陷類型、缺陷嚴重、程度缺陷、優(yōu)先級、缺陷狀態(tài)、缺陷起源、缺陷來源、缺陷根源等。49簡述測試用例的概念測試用例(TestCase)是關(guān)于具體測試步驟的文檔,以判斷被測軟件的工作是否正常。內(nèi)容包括:測試目標、測試環(huán)境、輸入數(shù)據(jù)、測試步驟、預期結(jié)果等。從表現(xiàn)形式上看,測試用例可以是純文本的文檔,也可以是用程序設(shè)計語言編寫的一段代碼。50簡述基本測試方法的分類情況測試方法分類內(nèi)容靜態(tài)測試走查評審動態(tài)測試白盒測試邏輯覆蓋法語句覆蓋語句覆蓋是最簡單、最弱覆蓋。它只覆蓋可執(zhí)行語句至少執(zhí)行一次。判定覆蓋判定覆蓋又叫分支覆蓋,是對每個判定式取真、假各一次,使每個判定的每個分支都至少執(zhí)行一次,同時滿足語句覆蓋。條件覆蓋條件覆蓋是把程序中每個判斷的每個條件為真和假各取值一次。條件覆蓋深入到判定中的每個條件,但不一定滿足判定覆蓋的要求。判定/條件覆蓋判定/條件覆蓋能同時滿足判定、條件兩種覆蓋標準的取值。就是使得判定中每個條件的所有可能取值至少執(zhí)行一次,同時每個判定本身所有取值至少執(zhí)行一次。條件組合覆蓋條件組合覆蓋是按每個判斷的所有條件取值進行組合。這是5種覆蓋中最強的覆蓋。它不但可覆蓋所有條件,還可覆蓋所有判斷的可取分支?;韭窂礁采w法基本路徑測試步驟:①導出程序流程圖的拓撲結(jié)構(gòu)-流圖(控制流程圖);②計算流圖G的環(huán)路復雜性V(G);③確定只包含獨立路徑的基本路徑集;④設(shè)計測試用例;黑盒測試等價類劃分法對測試數(shù)據(jù)進行區(qū)間劃分,從這些區(qū)間中選取典型值作為用例代表,認為測試等價類中的一個代表值的結(jié)果就等于對該類其它值的測試。邊界值分析法邊界值分析法就是對輸入或輸出的邊界值進行測試的一種方法。錯誤推測法因果圖法51簡述軟件測試過程的主要內(nèi)容。1.需求與設(shè)計評審2.單元測試(UnitTesting)3.集成測試4.功能測試5.系統(tǒng)測試6.驗收測試7.α與β測試52簡述單元測試(UnitTesting)的主要內(nèi)容。單元測試又稱模塊測試,是針對軟件設(shè)計的最小單位程序模塊(函數(shù)、類等)進行正確性檢驗的測試工作。單元測試采用黑盒+白盒混合方式,采用黑盒測試為主為先,白盒測試為輔為后的策略。1)用黑盒進行模塊接口測試2)用黑盒進行模塊邊界條件的測試3)用白盒進行模塊局部數(shù)據(jù)結(jié)構(gòu)和算法的測試4)用白盒進行模塊中獨立路徑的測試5)模塊中各條錯誤處理路徑的測試53簡述集成測試的主要內(nèi)容集成測試也叫組裝測試或聯(lián)合測試。集成測試是在單元測試基礎(chǔ)上,再將單元按照概要設(shè)計規(guī)格說明的要求組裝成更大的模塊、子系統(tǒng)或系統(tǒng)。1)非漸增式集成測試非漸增式集成測試又叫一次性集成測試,就是把所有經(jīng)過單元測試的模塊按照設(shè)計規(guī)格說明書一次性組裝成系統(tǒng),然后進行統(tǒng)一的測試。2)漸增式集成測試漸增式集成測試即把下一個要測試的模塊同已經(jīng)測試好的模塊結(jié)合起來進行測試,測完后,再把下一個應(yīng)該測試的模塊結(jié)合進來測試。54.簡述驗收測試的概念驗收測試是軟件交付之前的最后一個測試操作,驗收測試的目的是確保軟件準備就緒,并且可以讓最終用戶將其用于執(zhí)行軟件的既定功能和任務(wù)。55.α與β測試這兩種測試是針對商用軟件的系統(tǒng)測試。商用軟件與合同定制式軟件不同,它面向的使用群體數(shù)量大、不確定,沒用針對性的驗收用戶。因此在軟件正式面市之前免費供用戶試用,由用戶在試用中發(fā)現(xiàn)問題,這就是β測試。提供給用戶的β版如果BUG太多,客戶將無法試用和承受,因此首先軟件開發(fā)組織內(nèi)部人員模擬各類用戶對即將面市軟件產(chǎn)品進行測試,此時稱為α測試。56簡述軟件維護的概念軟件維護是在軟件交付使用之后,為了改正錯誤或滿足新的需求而修改軟件的過程。57軟件維護的分類糾錯性維護(CorrectiveMaintenance)糾錯性維護是在軟件交付后,糾正哪些在運行中發(fā)現(xiàn)的殘留錯誤,也稱改正性維護。適應(yīng)性維護(AdaptiveMaintenance)為適應(yīng)軟件運行環(huán)境(軟件生態(tài)環(huán)境)的變化而修改軟件的活動稱為適應(yīng)性維護。完善性維護(PerfectiveMaintenance)根據(jù)用戶在軟件使用過程中提出的建設(shè)性意見(需求變化)而進行的維護活動稱為改善性維護。預防性維護(PreventiveMaintenance)為了進一步改善軟件的可靠性和易維護性,或者為將來的維護奠定更好的基礎(chǔ)而對軟件進行修改。58簡述軟件維護的副作用及困難有哪些?1.維護的副作用維護的副作用就是指由于維護或在維護過程中其他一些不期望的行為引入的錯誤。引起副作用的維護修改可分三類:代碼副作用;數(shù)據(jù)副作用;文檔副作用。2.維護工作面臨的困難周期長、難度大、費用高。維護費用高達開發(fā)費用的55%—70%,而且逐年上漲。維護中還可能引入新的潛在錯誤。分析設(shè)計的缺欠、非維護者開發(fā)、現(xiàn)場追蹤等等。59簡述軟件配置項的概念和內(nèi)容。軟件配置項SCI(softwareConfigurationItem)軟件生存周期各個階段活動的產(chǎn)物經(jīng)審批后即可稱之為軟件配置項。軟件配置項包括:與合同、過程、計劃和產(chǎn)品有關(guān)的文檔和資料;源代碼、目標代碼和可執(zhí)行代碼;相關(guān)產(chǎn)品,包括軟件工具、庫內(nèi)的可重用軟件、外購軟件及顧客提供的軟件等。60簡述結(jié)構(gòu)化維護和非結(jié)構(gòu)化軟件維護的概念。1.非結(jié)構(gòu)化維護是指滿足如下條件的維護l軟件的配置中只有源代碼。l由于沒有分析和設(shè)計文檔,無法對程序的功能進行反向追蹤,理解別人的代碼是很痛苦的事情。l由于配置中沒有測試文檔,所以維護后的代碼無法進行回歸測試。因而導致程序的結(jié)構(gòu)化被不斷的破壞,維護的質(zhì)量無法得到保證。2.結(jié)構(gòu)化維護是指滿足如下條件的維護l待維護的軟件的配置是完整的。l用戶提出的維護申請用正向追蹤很容易從分析設(shè)計文檔追蹤直至代碼中,從而使維護人員很容易定位代碼的維護點。所以這種維護不會破壞軟件的結(jié)構(gòu)。l結(jié)構(gòu)化維護不僅能減少維護的工作量,還能提高維護的質(zhì)量。軟件配置文檔的重要性。1.為什么說軟件測試是軟件開發(fā)中不可缺少的重要一環(huán),但不是軟件質(zhì)量保證的安全網(wǎng)?2.軟件測試的目的是什么?為什么把軟件測試的目的定義為只是發(fā)現(xiàn)錯誤?3.軟件測試應(yīng)當遵循什么原則?為什么要遵循這些原則?4.軟件測試的步驟是什么?這些測試與軟件開發(fā)各階段之間的關(guān)系?5.軟件測試的過程是什么?6.單元測試、集成測試和確認測試各自主要目標是什么?它們之間有什么不同?相互有什么關(guān)系?7.什么是黑盒測試與白盒測試?它們都適應(yīng)哪些測試?8.簡述軟件測試與軟件調(diào)試的區(qū)別。9.軟件配置管理的任務(wù)。10.試述第三代界面的優(yōu)點。11.試述人機界面的設(shè)計過程。1.①軟件測試是軟件開發(fā)中不可缺少的重要一環(huán),原因是:·

測試的工作量約占整個項目開發(fā)工作量的40%左右,幾乎一半。如果是關(guān)系到人的生命安全的軟件,測試的工作量還要成倍增加?!?/p>

軟件測試代表了需求分析、設(shè)計、編碼的最終復審。②軟件測試不是軟件質(zhì)量保證的安全網(wǎng),因為軟件測試只能發(fā)現(xiàn)錯誤,不能保證沒有錯誤。2.軟件測試的目的有:①軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。②一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。③一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤。

軟件測試的目標定義為只是發(fā)現(xiàn)錯誤,原因是軟件測試可以有兩個目標,一個是預防錯誤,另一個是發(fā)現(xiàn)錯誤。由于軟件開發(fā)是人的創(chuàng)造性勞動,人的活動不可能完美無缺,錯誤可能發(fā)生在任何一個階段,因此預防錯誤這一目標幾乎是不可實現(xiàn)的,所以軟件測試的目標定義為只是發(fā)現(xiàn)錯誤。3.軟件測試應(yīng)當遵循原則如下:①用例由輸入數(shù)據(jù)和預期的輸出數(shù)據(jù)兩部分組成,因為這樣便于對照檢查,做到有的放矢。②用例不僅選用合理的輸入數(shù)據(jù),還要選擇不合理的輸入數(shù)據(jù)。因為當以特殊方式使用程序時,會突然發(fā)現(xiàn)程序中有許多錯誤,故使用預期的不合理的輸入數(shù)據(jù)進行程序測試,比用合理的輸入數(shù)據(jù)收獲要大,從而能更多地發(fā)現(xiàn)錯誤,提高程序可靠性。③除了檢查程序是否做了它應(yīng)該做的事,還應(yīng)該檢查程序是否做了它不應(yīng)該做的事,因為如果程序做了它不應(yīng)該做的事,即使程序能做它應(yīng)該做的事,程序也是錯誤的。④應(yīng)制定測試計劃并嚴格執(zhí)行,因為這樣可以排除隨意性。⑤長期保留測試用例,因為測試用例的設(shè)計耗費很大的工作量,而修改后的程序可能有新的錯誤,需要進行回歸測試,故必須將測試用例作為文檔保存,使測試具有可重復性,同時測試用例是將來系統(tǒng)維護測試與確認的依據(jù),保存測試用例也為以后的維護提供方便。⑥對發(fā)現(xiàn)錯誤較多的程序段,應(yīng)進行更深入的測試,因為發(fā)現(xiàn)錯誤較多的程序段,其質(zhì)量較差,同時在修改錯誤過程中又容易引入新的錯誤。⑦程序員避免測試自己設(shè)計的程序,因為測試目的是找錯。從心理學角度講,程序員大多對自己的程序存有偏見,總認為沒有錯誤或錯誤不大,另外程序員對需求規(guī)格說明的理解而引入的錯誤則更難發(fā)現(xiàn),應(yīng)該由別人或另外的機構(gòu)來測試會更客觀、更有效。4.①軟件測試的步驟如圖7-3所示。圖7-3軟件測試的步驟②這些測試與軟件開發(fā)各階段之間的關(guān)系如圖7-2所示。因為系統(tǒng)測試已經(jīng)超出了軟件工程的范圍,所以圖7-2中的系統(tǒng)測試不包括在內(nèi)。5.軟件測試是一個規(guī)則的過程,包括測試設(shè)計、測試執(zhí)行以及測試結(jié)果比較等。①測試設(shè)計:根據(jù)軟件開發(fā)各階段的文檔資料和程序的內(nèi)部結(jié)構(gòu),利用各種設(shè)計測試用例技術(shù)精心設(shè)計測試用例。②測試執(zhí)行:利用這些測試用例執(zhí)行程序,得到測試結(jié)果。③測試結(jié)果比較:將預期的結(jié)果與實際測試結(jié)果進行比較,如果二者不符合,對于出現(xiàn)的錯誤進行糾錯,并修改相應(yīng)文檔。修改后的程序還要進行再次測試,直到滿意為止。如果測試發(fā)現(xiàn)不了錯誤,可能由于測試配置考慮不周到,應(yīng)考慮重新制定測試方案,設(shè)計測試用例。6.單元測試、集成測試和確認測試各自主要目標是:①單元測試的主要目標是檢查各個模塊是否正確實現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯誤。②集成測試的主要目標是檢查與設(shè)計相關(guān)的軟件體系結(jié)構(gòu)的有關(guān)問題。③確認測試的主要目標是檢查已實現(xiàn)的軟件是否滿足需求規(guī)格說明書中確定的各種需求。單元測試、集成測試和確認測試之間的不同如下:①測試內(nèi)容不同:單元測試集中于單個模塊的功能和結(jié)構(gòu)檢驗,其測試內(nèi)容主要包括模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、重要的執(zhí)行路徑、錯誤處理和邊界測試;集成測試集中于模塊組合的功能和軟件結(jié)構(gòu)檢驗,其測試內(nèi)容主要包括模塊組裝中可能出現(xiàn)的問題,即數(shù)據(jù)穿過接口可能丟失、一個模塊可能破壞另一個模塊的內(nèi)容、子功能組裝可能不等于主功能、全程數(shù)據(jù)結(jié)構(gòu)問題、誤差累積問題;確認測試集中于論證軟件需求的可追溯性,主要包括測試軟件功能和性能是否與軟件需求一致、測試軟件配置的所有程序與文檔是否正確完整而且一致。②測試的方法不同:單元測試總是使用白盒測試法,為被測模塊設(shè)計驅(qū)動模塊和樁模塊;集成測試使用漸增式測試和非漸增式測試,漸增式測試又有分為自頂向下結(jié)合法和自底向上結(jié)合法;確認測試總是使用黑盒測試法。③發(fā)現(xiàn)的錯誤不同:單元測試發(fā)現(xiàn)的錯誤主要是在編碼階段產(chǎn)生的錯誤,集成測試發(fā)現(xiàn)的錯誤主要是在設(shè)計階段產(chǎn)生的錯誤,確認測試發(fā)現(xiàn)的錯誤主要是在需求分析階段產(chǎn)生的錯誤。④涉及的文檔不同:單元測試涉及編碼和詳細設(shè)計文檔,集成測試涉及詳細設(shè)計文檔和概要設(shè)計文檔,確認測試涉及軟件需求規(guī)格說明書和用戶手冊。三者相互關(guān)系是:單元測試、集成測試和確認測試是順序?qū)崿F(xiàn)的。首先單元測試對各個模塊進行測試,然后集成測試以單元測試為基礎(chǔ),將所有已測模塊按照設(shè)計要求組裝成一個完整的系統(tǒng),對模塊組合的功能和軟件結(jié)構(gòu)檢驗進行測試,最后確認測試是以集成測試為基礎(chǔ),測試集成的軟件是否滿足需求規(guī)格說明書中確定的各種需求。7.①黑盒測試指把測試對象看成一個黑盒子,測試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只在軟件的接口處進行測試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要求,又稱為功能測試或數(shù)據(jù)驅(qū)動測試。②白盒測試指把測試對象看成一個打開的盒子,測試人員需了解程序的內(nèi)部結(jié)構(gòu)和處理過程,以檢查處理過程的細節(jié)為基礎(chǔ),對程序中盡可能多的邏輯路徑進行測試,檢驗內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否有錯,實際的運行狀態(tài)與預期的狀態(tài)是否一致。③白盒測試適應(yīng)的測試有單元測試、邏輯覆蓋(按邏輯覆蓋程度不同,有語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。)、循環(huán)覆蓋(限制循環(huán)次數(shù),有單循環(huán)和嵌套循環(huán))和基本路徑測試。④黑盒測試適應(yīng)的測試有:確認測試、等價類劃分、邊界值分析、錯誤推測和因果圖。8.軟件測試與軟件調(diào)試在目的、技術(shù)和方法等方面存在很大的區(qū)別,主要表現(xiàn)在:①測試從一個側(cè)面證明程序員的失敗,而調(diào)試是為了證明程序員的正確。②測試從已知條件開始,使用預先定義的程序,且有預知的結(jié)果,不可預見的只是程序是否通過測試。調(diào)試一般以不可知的內(nèi)部條件開始,除統(tǒng)計性調(diào)試外,結(jié)果是不可預見的。③測試是有計劃的,并要進行測試設(shè)計,而調(diào)試是不受時間約束的。④測試是一個發(fā)現(xiàn)錯誤、改正錯誤、重新測試的過程,而調(diào)試是一個推理過程。⑤測試的執(zhí)行是有規(guī)程的,而調(diào)試的執(zhí)行往往要求程序員進行必要的推理及知覺的飛躍。⑥測試經(jīng)常由獨立的測試組在不了解軟件設(shè)計的前提下完成,而調(diào)試必須由了解詳細設(shè)計的程序員完成。⑦大多數(shù)測試的執(zhí)行和設(shè)計可由工具支持,而調(diào)試時,程序員能利用的工具主要是調(diào)試器。1、程序語言有哪些共同特征?答:程序語言的共同特征(似為特性更符合題意)是指程序設(shè)計語言的語言特性,包括心理特性、工程特性和技術(shù)特性三個方面。語言的心理特性對人機通信的質(zhì)量有主要的影響;語言的工程特性對軟件開發(fā)成功一否有重要的影響,此外,語言的技術(shù)特性也會影響軟件設(shè)計的質(zhì)量。2、在項目開發(fā)時選擇程序設(shè)計語言通常考慮哪些因素?答:通常要考慮的因素有:項目的應(yīng)用領(lǐng)域、軟件開發(fā)的方法、軟件執(zhí)行的環(huán)境、算法和數(shù)據(jù)結(jié)構(gòu)的復雜性以及軟件開發(fā)人員的知識等。3、第4代語言(4GL)有哪些主要特征?答:4GL的主要特征是:(1)友好的用戶界面(2)兼有過程性和非過程性雙重特性(3)高效的程序代碼(4)完備的數(shù)據(jù)庫(5)應(yīng)用程序生成器4、舉例說明各種程序設(shè)計語言的特點及適用范圍?答:以常見的一些編程語言為例:FORTRAN語言,它不僅面向科學計算,數(shù)據(jù)處理能力也極強。適用于科學工程計算Pascal語言,具有很強的數(shù)據(jù)和過程結(jié)構(gòu)化能力,它語言簡明,數(shù)據(jù)類型豐富,程序結(jié)構(gòu)嚴謹。它是第一個體現(xiàn)結(jié)構(gòu)化編程思想的語言。用于描述結(jié)構(gòu)化算法和科學計算,操作系統(tǒng)的編寫C語言:功能強大,支持復雜的數(shù)據(jù)結(jié)構(gòu),可大量運用指針,具有豐富靈活的操作運算符及數(shù)據(jù)處理操作符,它還具有匯編語言的某些特征,使程序運行效率高??捎糜谠S多領(lǐng)域,特別是在操作系統(tǒng)等方面有較大優(yōu)勢。Coble語言,它具有極強的數(shù)據(jù)定義能力,程序說明與硬件環(huán)境說明分開、數(shù)據(jù)描述與算法描述分開。結(jié)構(gòu)嚴謹層次分明,廣泛用于商業(yè)數(shù)據(jù)處理。SQL:結(jié)構(gòu)化查詢語言,用于對數(shù)據(jù)庫進行存取管理。匯編語言和Ada語言,主要用于實時處理和編寫系統(tǒng)軟件。Prolog、Lisp語言。Lisp是一種函數(shù)型語言,特別適用于組合問題中符號運算和表處理,用于定理證明、樹的搜索和其他問題的求解。Prolog是一種邏輯型語言,它提供了支持知識表示的特性,每一個程序由一組表示事實、規(guī)則和推理的句子組成,比較接近與自然語言。這兩種語言主要用于人工智能系統(tǒng)開發(fā)。C++、Java語言,是面向?qū)ο蟮脑O(shè)計語言,用于面向?qū)ο蟮姆介_發(fā)軟件。5、什么是程序設(shè)計風格?為了具有良好的設(shè)計風格,應(yīng)注意哪些方面的問題?答:程序設(shè)計風格是指一個人編制程序時所表現(xiàn)出來的特點、習慣、邏輯思路等。要形成良好的程序設(shè)計風格,應(yīng)從源程序文檔化、數(shù)據(jù)說明、語句構(gòu)造、輸入輸出和追求效率幾個方面加以注意。1、面向?qū)ο蠓椒ǖ膬?yōu)點是什么?答:(1)將現(xiàn)實世界問題向面向?qū)ο蠼饪臻g直接映射,實現(xiàn)對現(xiàn)實世界的直接模擬。(2)以數(shù)據(jù)為中心,而不是基于對功能的分解,使得軟件結(jié)構(gòu)相對穩(wěn)定,軟件的重用性、可靠性、可維護等特性都較好。2、可視化開發(fā)方法的優(yōu)點有哪些?答:(1)簡化了圖形用戶界面的設(shè)計和編碼工作,將開發(fā)的注意力主要集中在程序的執(zhí)行邏輯和工作流程上。(2)軟件開發(fā)簡單,易學、易上手。(3)專業(yè)或非專業(yè)人員都能參與軟件開發(fā)活動。1、瀑布模型的優(yōu)點有哪些?答:1、強迫開發(fā)人員采用規(guī)范的技術(shù)方法;2、嚴格地規(guī)定了每個階段必須提交的文檔;3、每個階段結(jié)束前必須正式進行嚴格的技術(shù)審查和管理復審。2、瀑布模型的缺點是什么?答:1、在軟件開發(fā)的初期階段就要求做出正確、全面、完整的需求分析對許多應(yīng)用軟件來說是極其困難的。2、在需求分析階段,當需求確定后,無法及時驗證需求是否正確、完整。3、作為整體開發(fā)的瀑布模型,由于不支持產(chǎn)品的演化,缺乏靈活性

溫馨提示

  • 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

提交評論