軟件工程導論試題集_第1頁
軟件工程導論試題集_第2頁
軟件工程導論試題集_第3頁
軟件工程導論試題集_第4頁
軟件工程導論試題集_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章:軟件工程學概述一.填空題1.計算機科學中的研究成果均可用于軟件工程,但計算機科學更側(cè)重于(原理和理論)、而軟件工程側(cè)重于(如何建造一個軟件系統(tǒng))2.計算機程序及其說明程序的各種文檔稱為(文件)。計算任務的處理圖像對象和處理規(guī)則的描述稱為(程序)。有關計算機程序功能、設計、編制、使用的文字或圖料稱為(文檔)。3.軟件開發(fā)環(huán)境是相關一組(軟件工具)的集合,它支持一定的軟件開發(fā)方法或按照一定的軟件開發(fā)模型組織而成的。4.CASE這一術語的英文是(ComputerAidedSoftwareEngineering)。5.(平臺集成)是指工具運行在相同的硬件/操作系統(tǒng)平臺上。(數(shù)據(jù)集成)是指工用共享數(shù)據(jù)模型來操作。(表示集成)是指工具提供相同的用戶界面。7.軟件危機的主要原因有(軟件本身的特點)和(缺乏好的開發(fā)方法和手段)。開發(fā)出一部分,向用戶展示一部分,可讓用戶及早看到部分軟件,及早發(fā)現(xiàn)問題?;蛘呦乳_發(fā)一個“原型”軟件,完成部分主要功能,展示給用戶并征求意見,然后逐步完善,最終獲得滿意的軟件產(chǎn)品。9.結構化方法總得指導思想是(自頂而下逐步求精)。它的基本原則是功能的(分解)與(抽象)。它是軟件工程中最早出現(xiàn)的開發(fā)方法,特別適用于數(shù)據(jù)處理領域的問題。10.面向?qū)ο箝_發(fā)方法包括(面向?qū)ο蠓治?、(面向?qū)ο笤O計)、(面向?qū)ο髮崿F(xiàn))、11.瀑布模型是將軟件生存周期各個活動規(guī)定為依線性順序連接的若干階段的模型。它包括,如同瀑布流水,逐級下落。12.瀑布模型本質(zhì)上是一種(線性)順序模型。13.構造原型時,必須注意(功能性能)取舍,忽略一切暫時不關心的部分。14.屬性指的是類中對象所具有的(性質(zhì)(數(shù)據(jù)值))。不同對象的同一屬性可以具有相同或不同的(屬性值)。它們之間的關系表現(xiàn)為(相互補充)。二.判斷題3.軟件工程學科出現(xiàn)的主要原因是程序設計方法學的影響。(×)5.CASE開放式工作臺或者提供控制集成機制,或者可剪裁,其數(shù)據(jù)集成或協(xié)議是7.平臺集成是指工具運行在相同的硬件/操作系統(tǒng)平臺上。(√)8.軟件生存周期模型有多種,功能模型是軟件生存周期模型。(×)10.軟件生存周期中時間最長的階段是需求分析階段。(×)期方法將軟件生命周期劃分成需求分析、功能定義、12.增量模型是一種整體開發(fā)模型。(×)13.構造模型時,主要考慮全部功能。(×)14.瀑布模型本質(zhì)上是一種線性迭代模型。(×)15.快速原型思想是在研究概要設計階段的方法和技術中產(chǎn)生的。(×)三.名詞解釋軟件工程是用科學知識和技術原理來定義、開發(fā)、維護軟件的一門學科。軟件生命周期模型是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。進行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項目是否值得投資要開發(fā)的項目是否存在任何侵犯、妨礙等責任問題,要開發(fā)項目目的運行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。投資回收期就是使累計的經(jīng)濟效益等于最初的投資費用所需的時間。輸入數(shù)據(jù)與輸出數(shù)據(jù)結構找不到對應關系的情況,稱為結構沖突。把程序劃分成獨立運行且可以獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求。描述該對象屬性的數(shù)據(jù)以及可以對這些數(shù)據(jù)施加的所有操作封裝在一起構成的統(tǒng)白盒測試又叫做結構測試,把程序看成裝在一個透明的白盒子里,按照程序內(nèi)部的邏輯測試程序,檢測程序中的主要執(zhí)行通路是否都能按預定要求正確工作。耦合是對一個軟件結構內(nèi)各個模塊之間互連程度的度量。內(nèi)聚標志一個模塊內(nèi)各個元素彼此結合的緊密程度,它是信息隱蔽和局部化概念系統(tǒng)流程圖是描述物理模型的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中各個元素表達了系統(tǒng)中各種元素之間的信息流動)情況。獨立路徑是指包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條在其他獨立路徑中未有過的邊的路徑。噴泉模型是一種以用戶需求為動力,以對象為驅(qū)動的模型,主要用于描述面向?qū)?。變換模型是一種適合于形式化開發(fā)方法的模型,從軟件需求形式化說明開始經(jīng)過一系列變換,最終得到系統(tǒng)的目標程序。此模型必須有嚴格的數(shù)學理論和形式化技術的支持,尚處于研究和實驗階段。1.請簡要說明可行性分析的內(nèi)容。技術可行性:技術分析說明使用現(xiàn)有系統(tǒng)是否能完成本系統(tǒng)的開發(fā)。經(jīng)濟可行性:經(jīng)濟分析應著重兩個因素“成本和收益”,應向管理層提供有關這兩方面足夠的信息。如果項目的收益大于成本,則此項目可以說是經(jīng)濟上可行。制度、道德、文化等因素。(1)PowerDesigner(分析設計工具或軟件建模工具),(2)RationalRose(分目管理工具),(5)MSVisio(軟件開發(fā)繪圖工具)、(6)VSS(軟件配置工具)。3.什么是軟件工程軟件工程的目標是什么軟件工程是①將系統(tǒng)化的、規(guī)范的、可度量的方法應用于軟件的開發(fā)、運行和維護過程,即將工程化應用于軟件開發(fā)和管理之中,②對①中所選方法的研究。1合理預算開發(fā)成本,付出較低的開發(fā)費用、2實現(xiàn)預期的軟件功能,達到較好的軟件性能,滿足用戶的需求、3提高軟件的可維護性,降低維護費用、4提高軟件開發(fā)生產(chǎn)率,及時交付使用。4.什么是結構化分析方法該方法使用什么描述工具結構化的分析方法是面向數(shù)據(jù)流的方法,因此,此方法研究的核心是數(shù)據(jù)的組成和數(shù)據(jù)流向和對數(shù)據(jù)的加工處理。結構化分析方法用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關系,自頂向下逐層分解,直至找到滿足功能要求的所有可實現(xiàn)的軟件元素為止5.軟件設計的基本原理包括什么①模塊化:指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。每個模塊完成一個特定的子功能,所有模塊按某種方法組裝起來,成為一個整體,完成整個系統(tǒng)所要求的功能。模塊化是軟件解決復雜問題所具備的手②抽象:是認識復雜現(xiàn)象過程中使用的思維工具,即抽出事物本質(zhì)的共同的特性而暫不考慮它的細節(jié),不考慮其他因素。軟件工程中每一步都是對軟件解決方法的抽象層次的一次細化。③信息隱蔽:指在設計和確定模塊時,使得一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說,是不能訪問的。通過信息隱蔽,可以定義和實施對模塊的過程細節(jié)和局部數(shù)據(jù)結構的存取限制。④模塊獨立性。指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。衡量模塊獨立性有兩個標準耦合性和內(nèi)聚性,可判斷的優(yōu)劣。6.簡述容錯技術的四種主要手段,并解釋結構冗余:包括靜態(tài)冗余、動態(tài)冗余和混合冗余。信息冗余:為檢測或糾正信息在運算或傳輸中的錯誤,須外加一部分信息。時間冗余:指重復執(zhí)行指令或程序來消除瞬時錯誤帶來的影響。冗余附加技術:指為實現(xiàn)上述冗余技術所需的資源和技術。7.軟件生命周期劃分成哪些階段軟件生命周期(各階段)軟件生命周期由軟件定義、軟件開發(fā)和運行維護三個時期組成1.軟件定義時期劃分為三個階段:問題定義、可行性研究和需求分析2.開發(fā)時期:總體設計、詳細設計、編碼和單元測試、綜合測試。3.維護時期:主要任務是使軟件持久地滿足用戶的需要。8.簡要說明軟件危機產(chǎn)生的原因1.軟件缺乏可見性,導致對軟件開發(fā)成本,工作量,速度的估計不準確。2.對用戶要求沒有完整準確的認識,不能適應用戶的需求。3.缺乏對軟件產(chǎn)品和開發(fā)過程的質(zhì)量控制,導致軟件產(chǎn)品的質(zhì)量往往靠不住。4.在實踐過程中或多或少的采用了錯誤的方法和技術。5.開發(fā)和維護過程中文檔化工作做的不好,缺乏配置管五.綜合題解答:六.論述題(方案1)1.螺旋模型:螺旋模型的基本思想是,使用原型及其他方法來盡量降低風險。理解這種模型的一個簡便方法,是把它看作在每個階段之前都增加了風險分析過程的快速原型模型瀑布模型:瀑布模型將軟件生命周期劃分為制定計劃、需求分析、軟件設計、程序編寫、軟件測試和運行維護等六個基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。實現(xiàn)、集成和測試,每一個構件是由多種相互作用的模塊所形成的提供特定功能通常把軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱范型。三要素:方法、工具和過程。3.試論述軟件生命周期模型瀑布模型:優(yōu)點:1.可強迫開發(fā)員采用規(guī)范的方法2.嚴格地規(guī)定了每個階段必須提交的文件3.要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細驗缺點:傳統(tǒng)的瀑布模型過于理想化,是由文檔驅(qū)動的。用原型并收集用戶反饋意見的方法,獲取用戶真正的需要。增量模型:優(yōu)點:能在較短時間內(nèi)向用戶提交可完成部分工作的產(chǎn)品;逐步增加產(chǎn)品功能可以使用戶有較充實的時間學習和適應新產(chǎn)品,從而減少一個全新的軟件可能給客戶組織帶來的沖擊。螺旋模型:優(yōu)點:對可選方案和約束條件的強調(diào)有利于已有軟件的重用;減少了過多測試;維護只是螺旋模型中另一個周期。4.評價軟件工具的原則(1)易用性:友好的用戶界面,用戶樂于使用;(3)穩(wěn)健性:具備自檢測機制,即使在故障情況下也不會導致嚴重后果;到充分有效的利用;(5)工具結構柔性:工具結構是柔軟的、可修改的和可擴充的。5.軟件生命周期劃分成哪些階段軟件生命周期(各階段)軟件生命周期由軟件定義、軟件開發(fā)和運行維護三個1.軟件定義時期劃分為三個階段:問題定義、可行性研究和需求分析2.開發(fā)時期:總體設計、詳細設計、編碼和單元測試、綜合測試。3.維護時期:主要任務是使軟件持久地滿足用戶的需要。6.什么是軟件過程它與軟件工程方法學有何關系軟件過程:是為了獲得高質(zhì)量軟件所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱范型7.試論述可行性研究的任務1.進一步分析和澄清問題;2.導出系統(tǒng)的邏輯模型;3.從邏輯模型出發(fā),提出若干種系統(tǒng)實現(xiàn)方案4.研究每種實現(xiàn)方案的可行性:8..試論述需求分析的準則1、必須并描述的信息域,根據(jù)這條準則應該建立數(shù)據(jù)模型。2、必須定義軟件應完成的功能,這條準則要求建立功能模型。3、必須描述作為外部事件結果的軟件行為,這條準則要求建立行為模型。4、必須對描述信息、功能和行為的模型進行分解,用層次的方式展示細節(jié)。9.試論述需求分析的任務1、確定對系統(tǒng)的綜合要求;2、分析系統(tǒng)的數(shù)據(jù)要求;3、導出系統(tǒng)的邏輯模型;4、修正系統(tǒng)開發(fā)計劃。10.試論述應該從哪些方面研究目標系統(tǒng)的可行性技術上的可行性——使用現(xiàn)有的技術能實現(xiàn)這個系統(tǒng)嗎經(jīng)濟上的可行性——這個系統(tǒng)的經(jīng)濟效益能超過它的開發(fā)成本嗎(投資與效操作可行性——系統(tǒng)的操作方式在這個用戶組織內(nèi)行得通嗎社會、政策允許的可行性11.在軟件開發(fā)過程中必須遵循下列軟件工程原則。抽象:采用分層次抽象,自頂向下、逐層細化的辦法進行功能分解和過程分解,可以由抽象到具體、由復雜到簡單,逐步得到問題的解。信息隱蔽:遵循信息封裝,使用與實現(xiàn)分離的原則,將模塊設計成“黑箱”,可以將實現(xiàn)的細節(jié)隱藏在模塊內(nèi)部,使用者只能通過模塊接口訪問模塊中封裝的模塊化:按模塊劃分系統(tǒng)的體系結構,使得各模塊間有良好的接口。這樣有助于信息隱蔽和抽象,有助于表示復雜的系統(tǒng)。局部化:按抽象數(shù)據(jù)類型思想及問題域中的概念來建立模塊,確保模塊之間低耦合,模塊內(nèi)部高內(nèi)聚。這有助于控制解的復雜性。這有助于人們之間的溝通,保證整個開發(fā)工作協(xié)調(diào)一致。一致性:強調(diào)軟件開發(fā)過程的標準化、統(tǒng)一化。包括文檔格式的一致,工作流程的一致,內(nèi)、外部接口的一致,系統(tǒng)規(guī)格說明與系統(tǒng)行為的一致等。完備性:軟件系統(tǒng)不丟失任何重要成分,可以完全實現(xiàn)系統(tǒng)所要求功能??沈炞C性:開發(fā)大型的軟件系統(tǒng)需要對系統(tǒng)自頂向下、逐層分解。系統(tǒng)分解應遵循系統(tǒng)易于檢查、測試、評審的原則,以確保系統(tǒng)的正確性。12.軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)化方法,它包含哪些要素試軟件工程包括三個要素:方法、工具和過程。軟件工程方法為軟件開發(fā)提供了“如何做”的技術。它包括了多方面的任務,如項目計劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結構、系統(tǒng)總體結構的設計、算法過程的設計、編碼、測試以及維護等。軟件工程方法常采用某一種特殊的語言或圖形的表達方法及一套質(zhì)量保證標準。推出了許多軟件工具,已經(jīng)能夠支持上述的軟件工程方法。特別地,已經(jīng)有人把諸多的軟件工具集成起來,使得一種工具產(chǎn)生的信息可以為其它的工具所使用,這樣建立起一種被稱之為計算機輔助軟件工程(CASE)的軟件開發(fā)支撐系統(tǒng)。CASE將各種軟件工具、開發(fā)機器和一個存放開發(fā)過程信息的工程數(shù)據(jù)庫組合起來形成一個軟件工程環(huán)境。軟件工程的過程則是將軟件工程的方法和工具綜合起來以達到合理、及時地進行計算機軟件開發(fā)的目的。過程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各個階段完成的里程碑。從學術研究角度講,CASE是多年來在軟件開發(fā)管理、軟件開發(fā)方法、軟件開發(fā)環(huán)開發(fā)方法集成到一個統(tǒng)一而一致的框架中,并且吸引了CAD(計算機輔助設計)、系統(tǒng)所涉及到的技術有兩類:一類是支持軟件開發(fā)過程本身的技術;另一類是支持軟件開發(fā)過程管理的技術。從CASE系統(tǒng)產(chǎn)生方式來看,還有一種特殊的CASE對CASE工具分類的標準可分為:①功能。功能是對軟件進行分類的最常用的標準。②支持的過程。根據(jù)支持的過程,工具可分為設計工具、編程工具、維護工窄支持指支持過程中特定的任務,較寬支持是指支持特定過程階段;一般支持是統(tǒng)對軟件過程的支持范圍,提出CASE系統(tǒng)可分為三類:①支持單個過程任務的工具。工具可能是通用的,或者也可能歸組到工作臺。②工作臺支持某一過程所有活動或某些活動。他們一般以或多或少的集成度組成工具集。③環(huán)境支持軟件過程所有活動或至少大部分。他們一般包括幾個不同的工作臺,將這些工作臺以某方式集成起來。14.軟件工程標準化的意義是什么都有哪些軟件工程標準軟件工程標準化可以為軟件工程各個階段的活動提供統(tǒng)一的行動規(guī)范和衡量準則,使得各種工作都能有章可循。軟件工程標準根據(jù)其制定機構與適用范圍,可分為:2、國家標準3、行業(yè)標準4、企業(yè)規(guī)范15.什么是軟件開發(fā)環(huán)境請列出其發(fā)展情況。軟件開發(fā)環(huán)境是指在計算機的基本軟件的基礎上,為支持軟件的開發(fā)而提供的一組工具軟件系統(tǒng)。具體地說,軟件開發(fā)環(huán)境是一組相關工具的集合。這些相關工具按一定的開發(fā)方法或一定開發(fā)處理模型組織起來的,這些相關工具支持整個軟件生存期的各階段或部分階段。展階段:(1)70年代,軟件開發(fā)與設計方法出現(xiàn)了結構化分析技術的一整套相互銜接的SA-SD的方法學。與此相適應的計算機輔助軟件工程技術則主要由開發(fā)孤立的軟件工具而逐步向程序設計環(huán)境的開發(fā)和使用方向發(fā)展,出現(xiàn)了第一代的基于正文的(2)80年代中期與后期,主要是實時系統(tǒng)設計方法,以及面向?qū)ο蟮姆治龊驮O其特點是支持使用圖形表示的結構化方法,如數(shù)據(jù)流圖與結構圖。其開發(fā)環(huán)境表現(xiàn)在提高環(huán)境中工具的集成性方面,如"集成的項目支持環(huán)境"。成了用于項目計劃、分析、設計、編程、測試和維護的一個工具箱的集合。(4)90年代出現(xiàn)一系列集成的CASE軟件產(chǎn)品,用以實現(xiàn)需求管理、應用程序分析設計和建模、編碼、軟件質(zhì)量保證和測試、過程和項目管理及文檔生成管理等軟件開發(fā)工作的規(guī)范化、工程化和自動化。一.填空題2.(軟件可行性研究)的目的就是用最小的代價在盡可能短的時間內(nèi)確定該軟件項是否值得開發(fā)。3.可行性研究的目的不是去開發(fā)一個軟件項目,而是研究這個軟件項目是否(值得去開發(fā)且其中的問題能否解決)。4.可行性研究實質(zhì)上是要進行一次簡化、壓縮了的(需求分析)和(設計)過程,要在較高層次上以較抽象的方式進行需求分析和設計過程。三個方面分析研究每種解決方法的可行性。6.成本-效益分析首先是估算將要開發(fā)的系統(tǒng)的(開發(fā)成本),然后與可能取得的效益進行(比較和權衡)。7.投資回收期就是使累計的經(jīng)濟效益等于最初的投資費用所需要的時間。項目的 (純收入)是指在整個生命周期之內(nèi)的累計經(jīng)濟效益(折合成現(xiàn)在值)與投資之8.軟件工程有兩種效益,它們是(無形效益)和(有形效益)。9.成本-效益分析的目的是從(經(jīng)濟角度)評價開發(fā)一個新的軟件項目是否可行。10.研究開發(fā)資源的有效性是進行(技術)可行性研究的一方面。11.在軟件的可行性研究中,可以從不同的角度對軟件進行研究,其中是從軟件可行性角度考慮的是(技術可行性)。12.制定軟件計劃的目的在于盡早對欲開發(fā)的軟件進行合理估價,軟件計劃的任務是(規(guī)劃與調(diào)度)。13.數(shù)據(jù)流圖是常用的進行軟件需求分析的圖形工具,其基本符合是(加工)、(數(shù)14.決定大型程序模型組織基本原則的兩種交替設計策略為(數(shù)據(jù)分解)和(算法分解)。15.軟件系統(tǒng)可行性分析應考慮(經(jīng)濟)、(技術)、(社會環(huán)境)和(人)等方面因素。二.判斷題1.父圖中某個加工的輸入輸出數(shù)據(jù)流圖應具備對稱特點。(×)3.在軟件工程項目中,不隨參與人數(shù)的增加而使軟件的生產(chǎn)率增加的主要問題是困難。(√)5.研究軟硬件資源的有效性是進行操作可行性研究的一方面。(×)6.可行性研究要進行的需求分析和設計應是簡化、壓縮的。(√)8.軟件系統(tǒng)中所有的信息流都可以認為是事物流。(×)9.軟件系統(tǒng)中所有的信息流都可以認為是變化流。(×)10.在程序的描述和分析中,用以指明數(shù)據(jù)來源、數(shù)據(jù)流向和數(shù)據(jù)處理的輔助圖11.加工是對數(shù)據(jù)流圖中不能再分解的基本加工的精確說明,且加工邏輯是加工12.軟件定義期間問題定義階段涉及的人員有系統(tǒng)分析員、軟件開發(fā)人員、用戶13.系統(tǒng)定義明確之后,應對系統(tǒng)的可行性進行研究。可行性研究包括經(jīng)濟可行性、社會可行性、系統(tǒng)可行性。(×)14.在結構化分析方法中,用狀態(tài)-遷移圖表達系統(tǒng)和對象的行為。在狀態(tài)-遷移)15.提供嚴格定義的文檔是原型化方法的特征。(×)三.名詞解釋解答:1.什么是數(shù)據(jù)字典其作用是什么它有哪些條目數(shù)據(jù)字典,主要用來描述數(shù)據(jù)流程圖中的數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程和和數(shù)據(jù)法在數(shù)據(jù)流程圖中詳細說明,因此數(shù)據(jù)流程圖需要與其他工具配合使用,數(shù)據(jù)字典就是這樣的工具之一。數(shù)據(jù)源點及終點詞條。2.什么是數(shù)據(jù)流圖其作用是什么數(shù)據(jù)流圖簡稱DFD,是SA方法中用于表示系統(tǒng)邏輯模型的一種工具。它以圖形的方式描述數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功3.可行性研究的任務有哪些可行性研究首先需要進行概要的分析研究,初步確定項目的規(guī)模和目標,確定項目的約束和限制。把它們清楚地列舉出來。然后分析員進行簡單的需求分析,經(jīng)過壓縮的設計,探索出若干種可提供選擇的主要解決辦法。對每種解決辦法都要研究它的可行性。主要從經(jīng)濟可行性、技術可行性和社會可行性三方面進行研究。4.什么是軟件配置管理軟件配置管理,簡稱SCM(SoftwareConfigurationManagement),是指一組管理整個軟件生存期各階段中變更的活動。軟件配置管理技術可以使軟件變更所產(chǎn)生的錯誤達到最小并最有效地提高生產(chǎn)率。5.簡述文檔在軟件工程中的作用(1)提高軟件開發(fā)過程的能見度(3)作為開發(fā)人員階段工作成果和結束標志(4)記錄開發(fā)過程的有關信息便于使用與維護;有關資料;了解軟件功能、性能。6.軟件開發(fā)成本估算方法有哪幾種<1>自頂向下估算方法。估算人員參照以前完成的項目所耗費的總成本(或總工作量),來推算將要開發(fā)的軟件的總成本(或總工作量),然后把它們按階段、步驟和工作單元進行分配,這樣方法稱為自頂向下的估算方法。<2>自底向上估算方法。自底向上估算方法是將待開發(fā)的軟件細分,分別估算每一個子任務所需要的開發(fā)工作量,然后將它們加起來,得到軟件的總開發(fā)量。<3>差別估算方法。差別估算是將開發(fā)項目與一個或多個已完成的類似項目進行比較,找出與某個相類似項目的若干不同之處,并估算每個不同之處對成本的影響,導出開發(fā)項目的總成7.請說明軟件文檔的作用。軟件文檔的作用是:提高軟件開發(fā)過程的能見度;提高開發(fā)效率;作為開發(fā)人員階段工作成果和結束標志;記錄開發(fā)過程的有關信息便于使用與維護;提供軟件運行、維護和培訓有關資料;便于用戶了解軟件功能、性能。軟件開發(fā)項目生存期各階段應包括得文檔以及與各類人員的關系如下:可行性研究報告、項目開發(fā)計劃、軟件需求說明書、數(shù)據(jù)要求說明書、測試計劃、概要設計說明書、詳細設計說明書、用戶手冊、操作手冊、測試分析報告、開發(fā)進度月報、項目開發(fā)總結、程序維護手冊(維護修改建議)。8.簡述提高軟件質(zhì)量的主要措施。復審:是在軟件生命周期每個階段結束之前,都采用一定的標準對該段產(chǎn)生的軟件配置成分進行嚴格的正式或非正式的檢測。本和進度等方面的情況,以便他們從管理角度對開發(fā)工作進行審查。五.綜合題。(1)按照GB-8567-88進行可行性分析的書寫;(2)重點分析技術與操作可行性。(1)按照國標GB8567-88規(guī)范書寫相應內(nèi)容。3.請以農(nóng)產(chǎn)品購銷供應鏈一體化系統(tǒng)為背景,分析其經(jīng)濟可行性與技術可行性。(1)按照GB-8567-88書寫規(guī)范的可行性分析報告4.請以城市交通流擁塞與控制為背景,書寫該系統(tǒng)的可行性分析報告。(1)重點進行交通流擁塞與控制的技術可行性研究,分析其技術可行性5.請以智能家庭為例,分析其經(jīng)濟可行性與技術可行性。(1)重點進行智能家庭的技術可行性分析;(2)按照國標GB-8567-88規(guī)范書寫。6.請以“信息塵埃”在現(xiàn)代戰(zhàn)爭中的應用為背景,進行可行性分析。(1)按照國標GB-8567-88規(guī)范書寫;(2)重點進行“信息塵埃”技術可行性分析7.請以網(wǎng)絡視頻社區(qū)為背景,按照國標規(guī)范書寫可行性分析報告。(1)按照國標GB-8567-88規(guī)范書寫(2)著重進行視頻系統(tǒng)的技術可行性分析8.請以社區(qū)呼叫中心為背景,進行可行性分析。(1)按照國標GB-8567-88規(guī)范書寫;(2)重點進行社區(qū)管理的操作可行性分析。六.論述題(方案1)解答:一.填空題1.軟件需求分析過程應該建立(數(shù)據(jù)模型)、(功能模型)和(行為模型)三種模型。2.需求分析的基本任務是要準確地定義(新系統(tǒng)的目標),為了滿足用戶需要,回答系統(tǒng)必須3.數(shù)據(jù)流圖有4個基本成分:(數(shù)據(jù)流)、(加工(又稱數(shù)據(jù)處理))、(數(shù)據(jù)存儲)和(數(shù)據(jù)源點和終點)。4.流向數(shù)據(jù)存儲的數(shù)據(jù)流可理解為(寫入)文件或(查詢)文件,從數(shù)據(jù)存儲流出的數(shù)據(jù)可理解為從文件(讀)數(shù)據(jù)或得到(查詢)結果。完備性和不一致性)需6.由于數(shù)據(jù)流是流動中的數(shù)據(jù),所以必須有(流向)。除了與(數(shù)據(jù)存儲)之間的數(shù)據(jù)流不用命名外,數(shù)據(jù)流應該用名詞或名詞短語命名。7.結構化分析方法是面向(數(shù)據(jù)流)進行需求分析的方法。8.經(jīng)過需求分析,開發(fā)人員已經(jīng)基本上理解了用戶的要求,確定了目標系統(tǒng)的功能,定義了系統(tǒng)數(shù)據(jù),描述了處理這些數(shù)據(jù)的基本策略。將這些共同的理解進行了整理,最后形成文檔(需求說明書)。9.在數(shù)據(jù)流圖中,有名字及方向的成分是(數(shù)據(jù)流)。10.在軟件需求分析中,開發(fā)人員要從用戶那里解決的最重要的問題是(要讓軟件做什么)。11.需求分析的最終結果是產(chǎn)生(需求規(guī)格說明書)。13.SA方法的基本思想是(自頂向下逐步分解)。構化分析方法,(面向?qū)ο蟮姆治龇椒?,面向數(shù)據(jù)結構的15.通過(功能分解)可以完成數(shù)據(jù)流圖的細化。二.判斷題1.數(shù)據(jù)流圖(DFD)是軟件開發(fā)可行性分析階段經(jīng)常使用的工具。(×)4.通過功能分解可以完成數(shù)據(jù)流圖的細化。(√)6.數(shù)據(jù)字典中,一般不包括數(shù)據(jù)存儲條目。(×)物理模型,抽象出當前系統(tǒng)的邏輯模型,建立目標系統(tǒng)的邏輯模型。(√)9.每個數(shù)據(jù)流必須用名詞或名詞短語命名。(×)10.模塊獨立性是軟件模塊化所提出的要求,衡量模塊獨立性的度量標準時模塊11.數(shù)據(jù)詞典的任務是對于數(shù)據(jù)流圖中出現(xiàn)的所有被命名的數(shù)據(jù)元素,在數(shù)據(jù)詞典中作為一個詞條加以定義,使得每一個圖形元素的名字都有一個確切的描述。 12.在需求分析中,開發(fā)人員要從用戶那里解決的最重要的問題是要讓軟件做什13.結構化分析方法(SA)是一種面向數(shù)據(jù)結構需求分析方法。(×)14.軟件需求分析的任務包括結構化程序設計。(×)三.名詞解釋解答:解答:五.綜合題1.請以教材購銷的內(nèi)容為應用背景,畫出數(shù)據(jù)流圖、寫清數(shù)據(jù)字典、小說明。(1)數(shù)據(jù)流圖要求至少三層,包括頂層圖、中間層圖、底層圖;(2)數(shù)據(jù)字典必須符合客觀實際;(3)小說明需要解釋異常情況2.請以小超市銷售管理的內(nèi)容為應用背景,畫出數(shù)據(jù)流圖、寫清數(shù)據(jù)字典、小說(1)數(shù)據(jù)流圖要求至少三層,包括頂層圖、中間層圖、底層圖;(2)數(shù)據(jù)字典必須符合客觀實際;(3)小說明需要解釋異常情況3.請以校園交友娛樂社區(qū)的內(nèi)容為應用背景,畫出數(shù)據(jù)流圖、寫清數(shù)據(jù)字典、小(1)數(shù)據(jù)流圖要求至少三層,包括頂層圖、中間層圖、底層圖;(2)數(shù)據(jù)字典必須符合客觀實際;(3)小說明需要解釋異常情況4.請以校園學習交流社區(qū)的內(nèi)容為應用背景,畫出數(shù)據(jù)流圖、寫清數(shù)據(jù)字典、小(1)數(shù)據(jù)流圖要求至少三層,包括頂層圖、中間層圖、底層圖;(2)數(shù)據(jù)字典必須符合客觀實際;(3)小說明需要解釋異常情況5.請以網(wǎng)絡爬蟲應用系統(tǒng)為背景,畫出數(shù)據(jù)流圖、寫清數(shù)據(jù)字典、小說明。(1)數(shù)據(jù)流圖要求至少三層,包括頂層圖、中間層圖、底層圖;(2)數(shù)據(jù)字典必須符合客觀實際;(3)小說明需要解釋異常情況(1)數(shù)據(jù)流圖要求至少三層,包括頂層圖、中間層圖、底層圖;(2)數(shù)據(jù)字典必須符合客觀實際;(3)小說明需要解釋異常情況(1)數(shù)據(jù)流圖要求至少三層,包括頂層圖、中間層圖、底層圖;(2)數(shù)據(jù)字典必須符合客觀實際;(3)小說明需要解釋異常情況8.請以社區(qū)后勤管理為應用背景,畫出數(shù)據(jù)流圖、寫清數(shù)據(jù)字典、小說明。(1)數(shù)據(jù)流圖要求至少三層,包括頂層圖、中間層圖、底層圖;(2)數(shù)據(jù)字典必須符合客觀實際;(3)小說明需要解釋異常情況六.論述題(方案1)解答:一.填空題1.過程設計語言的重復結構有(for)結構、(while)結構(until)、結構三種。2.結構化程序設計方法的基本要點是:(1)采用(自頂向下)、(逐步求精)、的程序設計方法;(2)使用(三種基本控制結構)構造程序;(3)主程序員組的組織形式。3.在詳細設計階段,為了提高數(shù)據(jù)的輸入、存儲、檢索等操作的效率并節(jié)約存儲空間,對某些數(shù)據(jù)項的值要進行(代碼)設計。4.任何程序都可由(順序)、(選擇)和(重復)三種基本控制結構構造。這三種基本5.在詳細設計階段,除了對模塊內(nèi)的算法進行設計,還應對模塊內(nèi)的(數(shù)據(jù)結構)6.在詳細設計階段,經(jīng)常采用的工具有(程序流程圖)、PDL、PAD等。7.在單元測試中,測試一個模塊時,需要設計(驅(qū)動模塊和樁模塊)。9.軟件測試用例由(測試輸入數(shù)據(jù))和(對應的預期輸出)組成。10.用黑盒技術設計測試用例的方法有(等價類劃分)、(邊界值分析)、(錯誤推斷)和(因果圖)。11.源程序中加注釋是幫助理解程序的重要手段,注釋分為(序言行注釋)、(功能兩類。12.近年來,推出了許多面向?qū)ο蟮恼Z言,如(C++)、(JAVA)等。13.匯編語言是面向(機器)的,可以完成(高級)語言無法滿足要求的特殊功能,如與外部設備之間的一些接口操作。14.語句構造的原則是簡單直接,不能為了追求效率而使代碼(復雜性)15.(可移植性)是指程序從一個計算機環(huán)境移植到另一個計算機環(huán)境的容易程度二.判斷題1.一般說來,模塊大小以三至四頁為宜。(√)2.軟件設計一般分為總體設計和詳細設計,它們之間的關系是全局與局部。(√)3.好的軟件結構應該是高內(nèi)聚、低耦合。(√)4.一個模塊把一個數(shù)質(zhì)量作為參數(shù)傳遞給另一個模塊。這兩個模塊之間的耦合是5.在面向數(shù)據(jù)流的軟件設計方法中,一般將信息流分為變換流和事務流。(√)6.首先將系統(tǒng)中得關鍵部分設計出來,再讓系統(tǒng)的其余部分的設計去適應它們,7.劃分模塊時,一個模塊的控制范圍應在其作用范圍之內(nèi)。(×)8.結構化設計方法在軟件開發(fā)中,用于概要設計。(√)9.軟件結構圖中,模塊框之間若有直線連接,表示它們之間存在著組成關系。(×)10.軟件概要設計結束后得到初始化的軟件結構圖。(×)11.偶然內(nèi)聚是指模塊內(nèi)執(zhí)行幾個邏輯上相似的功能,通過參數(shù)確定該模塊完成12.設計軟件結構一般不確定模塊內(nèi)的局部數(shù)據(jù)。(√)13.通過抽象,可以確定組成軟件的過程實體。(√)14.標記耦合是指兩個模塊之間的調(diào)用關系,傳遞的是簡單的數(shù)據(jù)值。(×)15.內(nèi)容耦合是指一個模塊直接使用另一個模塊的內(nèi)部數(shù)據(jù),或通過非正常入口)三.名詞解釋數(shù)據(jù)耦合是指兩個模塊之間有調(diào)用關系,傳遞的是簡單的數(shù)據(jù)值,相當于高級語言中的值傳遞2.標記耦合標記耦合是指兩個模塊之間傳遞的是數(shù)據(jù)結構,如高級語言中的數(shù)組名、記錄名、文件名等這些名字即為標記,其實傳遞的是這個數(shù)據(jù)結構的地址;3.偶然內(nèi)聚偶然內(nèi)聚指一個模塊內(nèi)的各處理元素之間沒有任何聯(lián)系。這是內(nèi)聚程度最差的內(nèi)4.邏輯內(nèi)聚邏輯內(nèi)聚指模塊內(nèi)執(zhí)行幾個邏輯上相似的功能,通過參數(shù)確定該模塊完成哪一個5.時間內(nèi)聚把需要同時執(zhí)行的動作組合在一起形成的模塊稱為時間內(nèi)聚模塊6.軟件概要設計描述軟件的總的體系結構,稱為“軟件概要設計”;7.軟件結構軟件結構是軟件系統(tǒng)的模塊層次結構,反映了整個系統(tǒng)劃分模塊時,盡量做到高8.面向數(shù)據(jù)流的設計方法面向數(shù)據(jù)流的設計方法,也稱“結構化設計方法”(SD),它與結構化分析(SA)相銜接,它按一定的設計策略將數(shù)據(jù)流圖轉(zhuǎn)化成軟件的模塊層次結構;9.耦合性耦合性也稱“塊間關系”。指軟件系統(tǒng)結構中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強,模塊的獨立性則越差;10.模塊獨立性模塊獨立性指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其它模塊的聯(lián)系模塊是可組合、分解和更換的單元,在程序中它是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?,或者是單獨命名和編制的元素?2.模塊的作用范圍模塊的作用范圍是指受該模塊內(nèi)一個判定影響的所有模塊的集合;13.模塊的控制范圍模塊的控制范圍是指模塊本身以及其所有下屬模塊的集合;14.通信內(nèi)聚通信內(nèi)聚指模塊內(nèi)所有處理元素都在同一個數(shù)據(jù)結構上操作,或者指各處理使用相同的輸入數(shù)據(jù)或者產(chǎn)生相同的輸出數(shù)據(jù);15.順序內(nèi)聚順序內(nèi)聚指一個模塊中各個處理元素都緊密相關與同一功能且必須順序執(zhí)行,前一功能元素的輸出就是下一功能元素的輸入。1.請簡要說明軟件耦合性和內(nèi)聚性模塊獨立性指每個模塊只完成系統(tǒng)要求的獨立子功能,并且與其他模塊的聯(lián)指軟件系統(tǒng)結構中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強,模塊的獨立性則越差。此結合的緊密程度的度量。若一個模塊內(nèi)各元素(語名之間、程序段之間)聯(lián)系的越緊密,則它的內(nèi)聚性就越高。2.什么是概要設計有哪些基本任務概要設計:根據(jù)用戶的需求先確定軟件系統(tǒng)的總體結構和總的設計原則制定測試計劃、數(shù)據(jù)設計、書寫文檔、設計審查和復審。3.系統(tǒng)設計的內(nèi)容是什么(1)系統(tǒng)分解。系統(tǒng)中主要的組成部分稱為子系統(tǒng),子系統(tǒng)既不是一個對象也不是一個功能,而是類、關聯(lián)、操作、時間和約束的集合。每次分解的各子系統(tǒng)數(shù)目不能太多,最底層子系統(tǒng)稱為模塊。(2)確定并發(fā)性。分析模型、現(xiàn)實世界及硬件中不少對象均是并發(fā)的。系統(tǒng)設計的一個重要目標就是確定哪些是必須同時動作的對象,哪些不是同時動作的對象。后者可以放在一起,而綜合成單個控制線或任務。(3)數(shù)據(jù)存儲管理。系統(tǒng)中的內(nèi)部數(shù)據(jù)和外部數(shù)據(jù)的存儲管理是一項重要的任務。通常各數(shù)據(jù)存儲可以將數(shù)據(jù)結構、文件、數(shù)據(jù)庫組合在一起,不同數(shù)據(jù)存儲要在費用、訪問時間、容量以及可靠性之間做折中考慮。(4)人機交互接口設計。設計中的大部分工作都與穩(wěn)定的狀態(tài)行為有關,但必須考慮用戶使用系統(tǒng)的交互接口。4.簡述軟件測試的任務、目的與類型。軟件測試是一個為了尋找軟件錯誤而運行程序的過程。目的就是為了發(fā)現(xiàn)軟件中的錯誤。一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例。一個成功的測試是指揭示了迄今為止尚未發(fā)現(xiàn)的錯誤的測試。軟件測試主要分為白盒測試和黑盒測試兩大類。5.簡述結構化程序設計方法的基本要點(1)采用自頂向下,逐步求精的程序設計方法。(2)使用三種基本控制結構構造程序,分別是順序,選擇和循環(huán)口單出口的模塊形式。6.簡述容錯技術的四種主要手段,并解釋。結構冗余:包括靜態(tài)冗余、動態(tài)冗余和混合冗余。信息冗余:為檢測或糾正信息在運算或傳輸中的錯誤,須外加一部分信息。時間冗余:指重復執(zhí)行指令或程序來消除瞬時錯誤帶來的影響。冗余附加技術:指為實現(xiàn)上述冗余技術所需的資源和技術。軟件測試是(1)為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;(2)一個好的用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤的測試。(3)一個成功的測試是發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤的測8.就程序設計語言的工程特性而言,對程序編碼有哪些要求就程序設計語言的工程特性而言,對程序編碼有如下要求:(1)可移植性(2)開發(fā)工具的可利用性(3)軟件的可重用性(4)可維護性9.可行性研究報告的主要內(nèi)容有哪些一個可行性研究報告的主要內(nèi)容如下:(1)引言:說明編寫本文檔的目的;項目的名稱、背景;本文檔用到的專門。(2)可行性研究前提:說明開發(fā)項目的功能、性能和基本要求;達到的目標;各種限制條件;可行性研究方法和決定可行性的主要因素。(3)對現(xiàn)有系統(tǒng)的分析:說明現(xiàn)有系統(tǒng)的處理流程和數(shù)據(jù)流程;工作負荷;各項費用支出;所需要各類專業(yè)技術人員的數(shù)量;所需要各種設備;現(xiàn)有系統(tǒng)存(4)所建議系統(tǒng)的技術可行性分析:所建議系統(tǒng)的簡要說明;處理流程和數(shù)據(jù)流程;與現(xiàn)有的系統(tǒng)比較的優(yōu)越性;采用所建議系統(tǒng)對用戶的影響;對各種設備、現(xiàn)有軟件、開發(fā)環(huán)境、運行環(huán)境的影響;對經(jīng)費支出的影響;對技術可行性(5)所建議系統(tǒng)的經(jīng)濟可行性分析:說明所建議系統(tǒng)的各種支出,各種效益;收益投資比;投資回收周期。(6)社會因素可行性分析:說明法律因素,對合同責任、侵犯專利權、侵犯版權等問題的分析;說明用戶使用可行性,是否滿足用戶行政管理、工作制度、要求。(7)其他可供選擇方案:逐一說明其他可供選擇的方案,并說明未被推薦的(8)結論意見:說明項目是否能開發(fā);還需要什么條件才能開發(fā);對項目目動等。10.系統(tǒng)設計的內(nèi)容是什么系統(tǒng)設計階段先從高層入手,然后細化。系統(tǒng)設計要決定整個結構及風格,這種結構為后面設計階段的更詳細策略的設計提供了基礎。(1)系統(tǒng)分解。系統(tǒng)中主要的組成部分稱為子系統(tǒng),子系統(tǒng)既不是一個對象也不是一個功能,而是類、關聯(lián)、操作、時間和約束的集合。每次分解的各子系統(tǒng)數(shù)目不能太多,最底層子系統(tǒng)稱為模塊。(2)確定并發(fā)性。分析模型、現(xiàn)實世界及硬件中不少對象均是并發(fā)的。系統(tǒng)設計的一個重要目標就是確定哪些是必須同時動作的對象,哪些不是同時動作的對象。后者可以放在一起,而綜合成單個控制線或任務。(3)處理器及任務分配。各并發(fā)子系統(tǒng)必須分配給單個硬件單元,要么是一個一般的處理器,要么是一個具體的功能單元,必須完成下面的工作:估計性能要求和資源需求,選擇實現(xiàn)子系統(tǒng)的硬軟件,將軟件子系統(tǒng)分配給各處理器以滿足性能要求和極小化處理器之間的通信,決定實現(xiàn)各子系統(tǒng)的各物理單元的連接。(4)數(shù)據(jù)存儲管理。系統(tǒng)中的內(nèi)部數(shù)據(jù)和外部數(shù)據(jù)的存儲管理是一項重要的任務。通常各數(shù)據(jù)存儲可以將數(shù)據(jù)結構、文件、數(shù)據(jù)庫組合在一起,不同數(shù)據(jù)存儲要在費用、訪問時間、容量以及可靠性之間做折中考慮。(5)全局資源的處理。必須確定全局資源,并且制定訪問全局資源的策略。全局資源包括:物理資源,如處理器、驅(qū)動器等;空間,如盤空間、工作站屏等;邏輯名字,如對象標識符、類名、文件名等。身控制;如果資源是邏輯實體,如對象標識符,那么在共享環(huán)境中有沖突訪問的可能,如獨立的事務可能同時使用同一個對象標識符,則各個全局資源都必須有一個保護對象,由保護對象來控制對該資源的訪問。(6)選擇軟件控制機制。分析模型中所有交互行為都表示為對象之間的事件。系統(tǒng)設計必須從多種方法中選擇某種方法來實現(xiàn)軟件的控制。(7)人機交互接口設計。設計中的大部分工作都與穩(wěn)定的狀態(tài)行為有關,但必須考慮用戶使用系統(tǒng)的交互接口。11.什么是軟件危機軟件危機的表現(xiàn)是什么其產(chǎn)生的原因是什么軟件發(fā)展第二階段的末期,由于計算機硬件技術的進步,計算機運行速度、容量、可靠性有顯著的提高,生產(chǎn)成本顯著下降,這為計算機的廣泛應用創(chuàng)造了條件。一些復雜的、大型的軟件開發(fā)項目提出來了,但是,軟件開發(fā)技術的進步一直未能滿足發(fā)展的需要。在軟件開發(fā)中遇到的問題找不到解決辦法,使問題積累起來,形成了尖銳的矛盾,因而導致了軟件危機。軟件危機表現(xiàn)在以下四個方面:(1)經(jīng)費預算經(jīng)常突破,完成時間一再拖延。由于缺乏軟件開發(fā)的經(jīng)驗和軟件開發(fā)數(shù)據(jù)的積累,使得開發(fā)工作的計劃很難制定。主觀盲目制定計劃,執(zhí)行起來與實際情況有很大差距,使得開發(fā)經(jīng)費一再突破。由于對工作量估計不足,對開發(fā)難度估計不足,進度計劃無法按時完成,開發(fā)時間一再拖延。(2)開發(fā)的軟件不能滿足用戶要求。開發(fā)初期對用戶的要求了解不夠明確,未能得到明確的表達。開發(fā)工作開始后,軟件人員和用戶又未能及時交換意見,使得一些問題不能及時解決,導致開發(fā)的軟件不能滿足用戶的要求,因而導致開(3)開發(fā)的軟件可維護性差。開發(fā)過程中沒有同意的、公認的規(guī)范,軟件開發(fā)人員按各自的風格工作,各行其是,開發(fā)過程無完整、規(guī)范的文檔,發(fā)現(xiàn)問題后進行雜亂無章的修改。程序結構不好,運行時發(fā)現(xiàn)錯誤也很難修改,導致維護(4)開發(fā)的軟件可靠性差。由于在開發(fā)過程中,沒有確保軟件質(zhì)量的體系和措施,在軟件測試時,又沒有嚴格的、充分的、完全的測試,提交給用戶的軟件質(zhì)量差,在運行中暴露出大量的問題。:(1)軟件的規(guī)模越來越大,結構越來越復雜。(2)軟件開發(fā)管理困難而復雜。 (3)軟件開發(fā)費用不斷增加。(4)軟件開發(fā)技術落后。(5)生產(chǎn)方式落后。6)開發(fā)工具落后,生產(chǎn)率提高緩慢。12.軟件質(zhì)量保證應做好哪幾方面的工作軟件質(zhì)量保證是軟件工程管理的重要內(nèi)容,軟件質(zhì)量保證應做好以下幾方面的工(1)采用技術手段和工具。質(zhì)量保證活動要貫徹開發(fā)過程始終,必須采用技術手段和工具,尤其是使用軟件開發(fā)環(huán)境來進行軟件開發(fā)。(2)組織正式技術評審。在軟件開發(fā)的每一個階段結束時,都要組織正式的技術評審。國家標準要求單位必須采用審查、文檔評審、設計評審、審計和測試等具體手段來保證質(zhì)量。(3)加強軟件測試。軟件測試是質(zhì)量保證的重要手段,因為測試可發(fā)現(xiàn)軟件(4)推行軟件工程規(guī)范(標準)。用戶可以自己制定軟件工程規(guī)范(標準),但標準一旦確認就應貫徹執(zhí)行。(5)對軟件的變更進行控制。軟件的修改和變更常常會引起潛伏的錯誤,因此必須嚴格控制軟件的修改和變更。(6)對軟件質(zhì)量進行度量。即對軟件質(zhì)量進行跟蹤,及時記錄和報告軟件質(zhì)13.軟件生命周期各階段的任務是什么問題定義:要解決的問題是什么可行性研究:確定問題是否值得解,技術可行性,經(jīng)濟可行性,操作可行性需求分析:系統(tǒng)必須做什么總體設計:系統(tǒng)如何實現(xiàn),包括系統(tǒng)設計和結構設計詳細設計:具體實現(xiàn)設計的系統(tǒng)實現(xiàn):編碼和測試運行維護:保證軟件正常運行14.軟件重用的效益是什么1.軟件重用可以顯著地改善軟件的質(zhì)量和可靠性2.軟件重用可以極大地提高軟件開發(fā)的效率3.節(jié)省軟件開發(fā)的成本,避免不必要的重復勞動和人力、財力的浪費15.自頂而下漸增測試與自底向上漸增測試各有何優(yōu)缺點優(yōu)點不需要測試驅(qū)動程序,能夠在測試階段的早期實現(xiàn)并驗證系統(tǒng)的主動功能,而且能夠盡早發(fā)現(xiàn)上層模塊的接口錯誤。缺點:需要存根程序,底層錯誤發(fā)現(xiàn)較晚優(yōu)點與缺點和自頂而下漸增測試相反五.綜合題解答:六.論述題(方案1)1.說明軟件內(nèi)聚的方式(1)偶然內(nèi)聚。模塊中的代碼無法定義其不同功能的調(diào)用。但它使該模塊能執(zhí)行不同的功能,這種模塊稱為巧合強度模塊。(2)邏輯內(nèi)聚。這種模塊把幾種相關的功能組合在一起,每次被調(diào)用時,由傳送給模塊參數(shù)來確定該模塊應完成哪一種功能(3)時間內(nèi)聚:把需要同時執(zhí)行的動作組合在一起形成的模塊為時間內(nèi)聚模(4)過程內(nèi)聚:構件或者操作的組合方式是,允許在調(diào)用前面的構件或操作之后,馬上調(diào)用后面的構件或操作,即使兩者之間沒有數(shù)據(jù)進行傳遞。(5)通信內(nèi)聚:指模塊內(nèi)所有處理元素都在同一個數(shù)據(jù)結構上操作(有時稱之為信息內(nèi)聚),或者指各處理使用相同的輸入數(shù)據(jù)或者產(chǎn)生相同的輸出數(shù)據(jù)。(6)順序內(nèi)聚:指一個模塊中各個處理元素都密切相關于同一功能且必須順序執(zhí)行,前一功能元素輸出就是下一功能元素的輸入。(7)功能內(nèi)聚:這是最強的內(nèi)聚,指模塊內(nèi)所有元素共同完成一個功能,缺2.說明軟件耦合的方式(1)數(shù)據(jù)耦合指兩個模塊之間有調(diào)用關系,傳遞的是簡單的數(shù)據(jù)值,相當于(2)標記耦合指兩個模塊之間傳遞的是數(shù)據(jù)結構,如高級語言中的數(shù)組名、記錄名、文件名等這些名字即標記,其實傳遞的是這個數(shù)據(jù)結構的地址。(3)控制耦合指一個模塊調(diào)用另一個模塊時,傳遞的是控制變量(如開關、標志等),被調(diào)模塊通過該控制變量的值有選擇地執(zhí)行塊內(nèi)某一功能。(4)公共耦合指通過一個公共數(shù)據(jù)環(huán)境相互作用的那些模塊間的耦合。公共耦合的復雜程序隨耦合模塊的個數(shù)增加而增加。(5)內(nèi)容耦合:這是最高程度的耦合,也是最差的耦合。當一個模塊直接使用另一個模塊的內(nèi)部數(shù)據(jù),或通過非正常入口而轉(zhuǎn)入另一個模塊內(nèi)部。3.試論述總體設計的任務劃分出組成系統(tǒng)的物理元素——程序、文件、數(shù)據(jù)庫、人工過程和文檔等等設計軟件的結構。也就是要確定系統(tǒng)中每個程序是由哪些模塊組成的,以及這些模塊4.試論述總體設計過程9個步驟1設想供選擇的方案2選取合理的方案3推薦最佳方案4功能分解5設計軟件結構6設計數(shù)據(jù)庫7制定測試計劃8書寫文檔9審查和審核5.試論述低耦合(5種類型)1.數(shù)據(jù)耦合:數(shù)據(jù)傳遞2.控制耦合:控制信息傳遞3.特征耦合:傳過多的一個模塊訪問另一個模塊內(nèi)部6.試論述高內(nèi)聚(7種類型)功能內(nèi)聚順序內(nèi)聚通信內(nèi)聚過程內(nèi)聚時間內(nèi)聚邏輯內(nèi)聚偶然內(nèi)聚7.軟件開發(fā)成本估算方法有哪幾種軟件開發(fā)成本估算的方法主要有:以及專家估算法、類推估算法、算式估算法等幾類方法。8.軟件項目計劃中包括哪些內(nèi)容9.請說明軟件文檔的作用軟件開發(fā)項目生存期各階段包含哪些文檔提高軟件開發(fā)過程的能見度;作為開發(fā)人員階段工作成果和結束標志;記錄開發(fā)過程的有關信息便于使用與維護;提供軟件運行、維護和培訓有關資料;便于用戶了解軟件功能、性能。軟件開發(fā)項目生存期各階段應包括的文檔包括如下:可行性研究報告項目開發(fā)計劃軟件需求說明書數(shù)據(jù)要求說明書測試計劃概要設計說明書詳細設計說明書用戶手冊操作手冊測試分析報告開發(fā)進度月報項目開發(fā)總結程序維護手冊10.請敘述軟件開發(fā)環(huán)境的分類。(1)按解決的問題可分為:程序設計環(huán)境、系統(tǒng)合成環(huán)境、項目管理環(huán)境三類。(2)按軟件開發(fā)環(huán)境的演變趨向可分為:以語言為中心的環(huán)境、工具箱環(huán)境和基于方法的環(huán)境三類。(3)按集成化程度有第一代、第二代、第三代的開發(fā)環(huán)境。11.何謂軟件工具通常包含哪幾部分軟件工具的定義是:可用來幫助和支持軟件需求分析、軟件開發(fā)、測試、維護、模擬、移植或管理而編制的計算機程序或軟件。軟件工具是一個程序系統(tǒng)。軟件工具通常由工具、工具接口和工具用戶接口三部分構成。12.當今軟件工具發(fā)展有何特點軟件工具的發(fā)展有以下特點:(1)軟件工具由單個工具向多個工具集成化方向發(fā)展。(4)軟件工具的商品化與軟件產(chǎn)業(yè)的發(fā)展形成良性互動。(1)平臺集成:工具運行在相同的硬件/操作系統(tǒng)平臺上(2)數(shù)據(jù)集成:工具使用共享數(shù)據(jù)模型來操作(3)表示集成:工具使用相同的用戶界面(4)控制集成:工具激活后能控制其他操作(5)過程集成:工具在一個過程模型和"過程機"的指導下使用CASE工具組裝成一個工具臺后工具能協(xié)同工作,可提供比單一工具更好的支持。(1)程序設計工作臺。由支持程序設計的一組工具組成。(2)分析和設計工作臺。支持軟件過程的分析和設計階段。(4)交叉開發(fā)工作臺。這些工作臺支持在一種機器上開發(fā)軟件,而在其他的系統(tǒng)上運行所開發(fā)的軟件。(5)配置管理(CM)工作臺。這些工作臺支持配置管理。(6)文檔工作臺。這些工具支持高質(zhì)量文檔的制作。(7)項目管理工作臺。支持項目管理活動。15.13.原型化方法或稱快速原型化方法是一種當前常用的軟件工程方法,盡管其特征民傳統(tǒng)的結構化生命周期法有所不同,但從原型化方法的演變仔細分析,仍可看出它與結構化方法的內(nèi)在聯(lián)系,試回顧兩種方法的發(fā)展特征和演進歷史并(1)兩種方法的基本特征和內(nèi)在聯(lián)系。(2)結構化生命周期方法的優(yōu)點及其適應對象。原型法的前提和條件。(1)結構化方法的基本特征:是一類預先嚴格定義需求的方法,它強調(diào)用戶需求第一,并在需求分析報告中即基本凍結了用戶的需求,其開發(fā)的階段劃分,文檔的規(guī)范都基于需求定義的明確??焖僭头椒ǖ幕咎卣?是一類動態(tài)定義需求的方法,它強調(diào)快速獲取用戶基本需求,快速建立需求模型,并與用戶交互,迭代并修改和完善模型.兩種方法間的聯(lián)系:結構化方法實施的過程,培養(yǎng)了一批熟悉業(yè)務,掌握領域知識的人員,他們是實施原型化的理想人員;結構化方法實施中形成了一批軟件開發(fā)工具.它們使快速開發(fā)原型系統(tǒng)成為可能;結構化方法的應用積累了一批原型系統(tǒng),為原型化方法實施提供了基礎;原型化方法是一類需求定主的快速方法,一旦需求定義明確;即可實施嚴格的結構化方法.(2)結構化生命周期方法的主要優(yōu)點是:方法強調(diào)需求分析的重要性,即體現(xiàn)軟件開發(fā)中用戶至上的原則;開發(fā)過程的階段劃分,各階段的具體任務明確;各階段有具體的描述工具易于掌握;強調(diào)文檔的重要性,并給出文檔的內(nèi)容和格式,因此方法具有易操作性,是軟件開發(fā)人員應該掌握的基本方法.結構化方法更適合于需求能夠預先明確定義的軟件系統(tǒng),如系統(tǒng)軟件或某些實時控制軟件等.(3)實施快速原型法的基本前提條件一般是:有高水平的實施原型化的人員,他們掌握工具,了解業(yè)務,能快速獲取用戶需求;有快速建造模型系統(tǒng)的工具,二者缺一不可.有相應原型系統(tǒng)的積累可加速實施,但不是實施原型化方法的前提一.填空題解答:二.判斷題解答:三.名詞解釋解答:1.什么是編碼風格為什么要強調(diào)編碼風格編碼風格又稱程序設計風格或編程風格。好的編碼風格能在一定程度上彌補語言存在的缺陷,而如果不注意風格就很難寫出高質(zhì)量的程序。尤其當多個程序員合作編寫一個很大的程序時,需要強凋良好而一致的編碼風格,以便相互通訊,減少因不協(xié)調(diào)而引起的問題??傊己玫木幋a風格有助于編寫出可靠而又容易維護的程序,編碼的風格在很大程度上決定著程序的質(zhì)量。2.CMM全稱是什么分為哪幾個級別3.軟件產(chǎn)品具有哪些特性1.件是一種邏輯實體,而不是具體的物理實體,因而它具有抽象性。2.軟件是通過人們的智力活動,把知識與技術轉(zhuǎn)化成信息的一種產(chǎn)品,是在研制、開發(fā)中被創(chuàng)造出來的。3.在軟件的運行和使用期間,沒有硬件那樣的機械磨損、老化問題。4.軟件的開發(fā)和運行經(jīng)常受到計算機系統(tǒng)的限制,對計算機系統(tǒng)有著不同程度的依賴性。5.軟件的開發(fā)至今尚未完全擺脫手工的開發(fā)方式。6.軟件的開發(fā)費用越來越高,成本相當昂貴。4.簡述軟件開發(fā)過程、每個里程碑的提交物。軟件開發(fā)的基本過程:(1)可行性研究,做初步的需求分析工作,決定項目可行行為、性能和接口。系統(tǒng)需求和軟件需求均需文檔化,并與用戶一起復審。并提交需求分析報告。(3)設計,包括概要設計和詳細設計,軟件設計是一個多步驟的過程,主要是對軟件的數(shù)據(jù)結構、軟件體系結構、界面表示及過程細節(jié)進行設計。設計過程將需求轉(zhuǎn)換為軟件表示,在編碼之前可以評估其質(zhì)量,所有設計均要文檔化,它是軟件配置的重要組成部分,經(jīng)復審后提交相應的概要設計和詳細設計報告。(4)編碼,把設計轉(zhuǎn)化為機器可執(zhí)行的程序。提交源程序清單。(5)測試,提交測試報告。(6)維護,提交維護報告。5.在編寫輸入和輸出程序時應考慮哪些原則在編寫輸入輸出程序時應考慮的原則有:(1)步驟和格式盡量簡單。(2)應檢查輸入數(shù)據(jù)的合法性、有效性,報告必要得輸入狀態(tài)信息及錯誤信(3)交互式輸入時,提供可用的選擇和邊界值。(4)當程序設計語言有嚴格的格式要求時,應保持輸入格式的一致性。(5)輸出數(shù)據(jù)表格化、圖形化。、輸入、輸出風格還受其他因素影響,如輸入、輸出設備,用戶經(jīng)驗及通信環(huán)境6.對效率的追求應明確哪幾點追求效率時應注意一下幾點:(1)效率時一個性能要求,目標在需求分析階段給出。(2)追求效率應建立在不損害程序可讀性或可靠性的基礎上,要先使程序正確、清晰,再提高程序效率。(3)提高程序效率的根本途徑在于選擇良好的設計方法、良好的數(shù)據(jù)結構與算法,而不是靠編程時對程序語句做調(diào)整??傊诰幋a階段,要善于積累編程經(jīng)驗,培養(yǎng)和學習良好的編程風格,使編出的程序清晰易懂,易于測試與維護,從而提高軟件的質(zhì)量。7.為什么軟件測試不應該由程序的編寫人員來做軟件測試的目的是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。果為了表明程序是正確的而進行測試,就會設計一些不易暴露錯誤的測試方案;相反,如果測試是為了發(fā)現(xiàn)程序中的錯誤,就會力求設計出最能暴露錯誤的測試8.簡述軟件測試的任務、目的與類型。軟件測試是一個為了尋找軟件錯誤而運行程序的過程。目的就是為了發(fā)現(xiàn)軟件中的錯誤。一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例。一個成功的測試是指揭示了迄今為止尚未發(fā)現(xiàn)的錯誤的測試。軟件測試主要分為白盒測試和黑盒測試兩大類。一.填空題解答:二.判斷題1.黑盒測試是從用戶觀點出發(fā)的測試,白盒測試是從開發(fā)人員觀點出發(fā)的測試。(√)2.因果圖方法是根據(jù)輸入與輸出之間的因果關系來設計測試用例的。(√)3.在結構測試用例設計中,有語句覆蓋、條件覆蓋、判定覆蓋(即分支覆蓋)、路徑覆蓋等,其中條件覆蓋是最強的覆蓋準則。(×)4.使用白盒測試方法時,確定測試數(shù)據(jù)應根據(jù)程序的內(nèi)部邏輯和指定的覆蓋標5.函數(shù)就是簡化模擬較低層次模塊功能的虛擬子程序。(×)6.軟件測試可能發(fā)現(xiàn)軟件中的錯誤,但不能證明軟件沒有錯誤。(√)8.從已經(jīng)發(fā)現(xiàn)故障的存在找到準確地故障位置并確定故障的性質(zhì),這一過程稱為。(√)10.軟件測試是軟件開發(fā)過程中重要和不可缺少的階段,其包含的內(nèi)容和步驟甚多,而測試過程的多種環(huán)節(jié)中基礎的是單元測試。(√)11.軟件測試方法中,黑盒測試方法和白盒測試方法是常用的方法,其中黑盒測試方法主要用于測試軟件外部功能。()12.軟件文檔是軟件工程實施中得重要成分,它不僅是軟件開發(fā)各階段的重要依據(jù)而且也影響軟件的可維護性。(√)13.回歸測試是校正性維護中最常用的方法。(√)14.在模塊測試的過程中,采用自底向上的測試比自頂向下的測試好。(√)15.在程序測試中,目前要為成功的測試設計數(shù)據(jù),產(chǎn)生這些測試用例主要依賴1.比較負載測試、壓力測試,容量測試區(qū)別。負載測試:在不同的工作負荷下,系統(tǒng)的負荷及響應時間。分析出反映軟件系統(tǒng)應用特征的某項指標的極限值(如最大并發(fā)用戶數(shù)、數(shù)據(jù)庫記錄數(shù)等),系統(tǒng)在其極限值狀態(tài)下沒有出現(xiàn)任何軟件故障或還能保持主要功能正常運行。容量測試還將確定測試對象在給定時間內(nèi)能夠持續(xù)處理的最大負載或工作量。容量測試的目的是使系統(tǒng)承受超額的數(shù)據(jù)容量來發(fā)現(xiàn)它是否能夠正確處理。容量測試是面向數(shù)據(jù)的,并且它的目的是顯示系統(tǒng)可以處理目標內(nèi)確定的數(shù)據(jù)容量。2.為建立良好的編程風格應遵循什么原則。(1)簡單化(2)模塊化(3)結構化(4)文檔化(5)格式化3.簡述測試計劃的目標和內(nèi)容在測試的項目、要測試的特性,要執(zhí)行的測試任務、每個任務的負責人,以及與關的風險?;謴偷臈l件、測試的交付件、需要的環(huán)境、責任和角色時間計劃安排、人員配備和必要的培訓、風險和意外處理4.簡述編碼風格的重要性。閱讀程序是軟件開發(fā)和維護過程中的一個重要組成部分,程序?qū)嶋H上也是一種供人閱讀的文章。應當在編寫程序時講求程序的風格,這將大量地減少人們讀程序的時間。良好的編碼風格有助于編寫出可靠而又容易維護的程序,編碼的風格在很大程度上決定著程序的質(zhì)量。5.簡述靜態(tài)測試的優(yōu)點和缺點。優(yōu)點加深對項目的理解,使測試計劃和測試設計質(zhì)量得到提高;使得測試用例全面、有效,從“撞問題”轉(zhuǎn)變?yōu)橛心康牡摹罢覇栴}”提前了對項目的理解,減少了測試執(zhí)行時的摸索時間,從而加快測試進度缺點靜態(tài)代碼檢查非常耗費時間,而且代碼檢查需要豐富的知識和經(jīng)驗積累。計變更。這種測試一般由最終用戶或其它人員完成,不能由程序或測試員完成。Beta測試當開發(fā)和測試根本完成時所做的測試,最終的錯誤和問題需要在最終發(fā)行前找到。這種測試一般由最終用戶或其它人員完成,不能由程序員或測試7.黑盒測試和白盒測試有什么區(qū)別(1)黑盒測試法:把程序看作一個黑盒子,完全不考慮程序的內(nèi)部結構和處理過程。它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)并產(chǎn)生正確的輸出信息,程序運行過程中能否保持外部信息的完整性。黑盒測試又稱為功能測試,包含等價類劃分法、邊界值法、錯誤推測法、(2)白盒測試法:是把程序看成裝在一個透明的白盒子里,測試者完全知道程序的結構和處理算法。這種方法按照程序內(nèi)部的邏輯測試程序,檢測程序中的主要執(zhí)行通路是否都能按預定要求正確工作。白盒測試又稱為結構測試,包含邏輯覆蓋法和基本路徑測試法。8.程序設計風格是什么程序設計風格一般指人們的編程的習慣特點。培養(yǎng)良好的設計風格可以是程序清晰易讀,減少錯誤,不但提高軟件開發(fā)效率,還能為以后的軟件維護奠定良好的基礎(1)程序加注釋:注釋是編寫者與讀者之間溝通的手段之一,應該在每一個模塊的開頭加序言性注釋,在程序內(nèi)部加功能性注釋。(2)變量、數(shù)量按意取名,增加可理解性;復雜的數(shù)據(jù)結構也應加注釋。(3)語句簡單直接,內(nèi)部要縮進,使用空格、空行以提高程序的清晰度。(4)輸入輸出提示化、表格化、圖形化。六.論述題(方案1)1.軟件維護是對交付使用以后的軟件系統(tǒng)所做的改變,從某種意義上講,維護比開發(fā)更為困難,更需要計劃和經(jīng)驗,也需要工具的輔助并加強管理,它需要進行創(chuàng)造性的工作,試根據(jù)你對軟件維護的理解,回答并討論以下問題:護的細節(jié)內(nèi)容)(2).試陳述軟件維護管理所涉及的四個方面,并簡述各方面所體內(nèi)容。(1).本題屬于軟件維護技術的相關內(nèi)容,在軟件維護階段的任務歸類中,將軟件維護階段的任務執(zhí)行分為三部分:理解現(xiàn)有系統(tǒng);修改現(xiàn)有系統(tǒng);重新確認(2).軟件維護管理包括四部分內(nèi)容,它們是:1)控制程序的改變接收所有的改變要求。并應注意:Ⅰ.維持目標中版本的選擇方式,是單一版本,還是多用戶版本。Ⅱ.近期是否有替換該程序的計劃,如有可推遲改變。Ⅲ.是否改變程序的范圍和目標,如是,則應慎重決定。②對改變進行控制,除緊急任務外,其改變需按計劃執(zhí)行,改變控制應包括:Ⅱ.向改變申請者提供報告,改變計劃或拒絕理由。2)程序質(zhì)量檢查①保證程序設計標準。②對改變過程進行檢查。3)安排維護計劃①研究改變申請,確定實現(xiàn)改變的可行性和費用。②制定維護計劃應考慮的因素:Ⅰ.程序的穩(wěn)定(持久)性。Ⅲ.申請改變的用戶數(shù)量。4)建立維護機構①建立專職維護結構--維護小組。②設立專職維護人員。制定維護政策。2.軟件工程項目在實施中必須進行科學的管理,以保證工程的進度和質(zhì)量。軟件的配置管理是軟件管理的重要內(nèi)容之一。試述:(1)軟件配置和軟件配置管理的概念。(3)軟件配置管理的基本任務是什么軟件配置管理是軟件生命周期內(nèi)管理變化的一組活動.包括:1)標識變化;2)控制變化;3)確保實現(xiàn)了變化;軟件在設計,生產(chǎn)和使用中,會產(chǎn)生不同的版本.軟件配置管理應對不同的軟件版本進行標識和管理.:系統(tǒng)規(guī)格說明書項目開發(fā)計劃軟件需求說明書原型系統(tǒng)總體(或概要)設計說明書詳細設計說明書源程序清單測試計劃測試報告操作手冊用戶手冊軟件問題報告維護請求軟件變更通知軟件工程標準項目開發(fā)總結3)軟件配置管理的基本任務包括:1)制定文件書寫標準和標識方法.2)控制配置變更,記錄與評價軟件配置的3)實現(xiàn)對已完成文檔的存取管理和跟蹤版本變化4)對版本進行檢查和維護.3..軟件測試是軟件質(zhì)量保證的重要措施。測試的目的是在軟件投入生產(chǎn)性運行前,應盡可能地發(fā)現(xiàn)并排除軟件中隱含的各種錯誤。測試是對軟件規(guī)格說明、設計和編碼的全面和最后的審查。因此,軟件測試應貫穿在整個軟件開發(fā)的全過程。⑴試陳述軟件測試的基本任務和方法。⑵簡述黑箱測試和白箱測試的內(nèi)容和方法。⑶陳述軟件測試過程的基本組成,并介紹各種測試對象的測試內(nèi)容和方法(1)軟件測試是軟件開發(fā)過程中的重要階段,是軟件質(zhì)量保證的重要手段.其1)預防軟件發(fā)生錯誤2)發(fā)現(xiàn)改正程序錯誤3)提供錯誤診斷信息目前,軟件測試的方法有三種:動態(tài)測試,靜態(tài)測試和正確性證明.(2)黑箱測試是一種功能測試,測試時完全不考慮程序內(nèi)部細節(jié),結構和實現(xiàn)方式,僅檢驗程序結果與說明書的一致性.測試實例設計完全以說明書為準.黑箱測試不關心程序內(nèi)部的邏輯,而只是根據(jù)程序的功能說明來設計測試用例.在使用黑箱法時,手頭只需要有程序功能說明就可以了.黑箱法分以下幾種:等價分類法.邊緣值分析法,因果圖法,錯誤推測法。白箱測試是一種結構測試,它與程序內(nèi)部結構相關,要利用程序結構的實現(xiàn)細節(jié)知識設計測試實例.它將涉及程序設計風格,控制方法,潭語句,數(shù)據(jù)庫設計,編碼細節(jié).白箱測試時將包括:1)語句測試——要求程序中每個語句最少檢查一次.2)分支測試——要求程序中每個分支路徑最少檢查一次.3)路徑測試——要求程序中每條路徑最少檢查一次.白箱測試考慮的是測試實例對程序內(nèi)部邏輯的覆蓋程度.為了衡量測試的覆蓋程度,需要建立一些標準.覆蓋程序從低到高分別為:語句覆蓋,判定覆蓋,條件覆蓋,判定/條件覆蓋,條件組全覆蓋.通過測試發(fā)現(xiàn)該模塊單元的子程序或過程的實際功能與該模塊的功能和接口的描述是否相符,以及是否有編碼錯誤存在.2)集成測式集成測試是在組裝軟件模塊的同時,進行測試以查找與接口有關的錯誤.組裝模塊的過程可以分為自頂向下組裝法和自底向上組裝法.3)有效性測試有效性測試是指:當軟件的運行達到了用戶的期望時,則認為軟件是有效的.4)系統(tǒng)測試系統(tǒng)測試是指將軟件系統(tǒng)與硬件,外設或其他系統(tǒng)元素結合在一起,對整個軟件系統(tǒng)進行測試.5)驗收測試系統(tǒng)測試通過后,用戶根據(jù)合同進行驗收測試,確定系統(tǒng)功能和性能的可接受性.4.原型化方法或稱快速原型化方法是一種當前常用的軟件工程方法,盡管其特征民傳統(tǒng)的結構化生命周期法有所不同,但從原型化方法的演變仔細分析,仍可看出它與結構化方法的內(nèi)在聯(lián)系,試回顧兩種方法的發(fā)展特征和演進歷史并論述下(1)兩種方法的基本特征和內(nèi)在聯(lián)系。(2)結構化生命周期方法的優(yōu)點及其適應對象。原型法的前提和條件。(1)結構化方法的基本特征:是一類預先嚴格定義需求的方法,它強調(diào)用戶需求第一,并在需求分析報告中即基本凍結了用戶的需求,其開發(fā)的階段劃分,文檔的規(guī)范都基于需求定義的明確??焖僭头椒ǖ幕咎卣?是一類動態(tài)定義需求的方法,它強調(diào)快速獲取用戶基本需求,快速建立需求模型,并與用戶交互,迭代并修改和完善模型.兩種方法間的聯(lián)系:結構化方法實施的過程,培養(yǎng)了一批熟悉業(yè)務,掌握領域知識的人員,他們是實施原型化的理想人員;結構化方法實施中形成了一批軟件開發(fā)工具.它們使快速開發(fā)原型系統(tǒng)成為可能;結構化方法的應用積累了一批原型系統(tǒng),為原型化方法實施提供了基礎;原型化方法是一類需求定主的快速方法,一旦需求定義明確;即可實施嚴格的結構化方法.(2)結構化生命周期方法的主要優(yōu)點是:方法強調(diào)需求分析的重要性,即體現(xiàn)軟件開發(fā)中用戶至上的原則;開發(fā)過程的階段劃分,各階段的具體任務明確;各階段有具體的描述工具易于掌握;強調(diào)文檔的重要性,并給出文檔的內(nèi)容和格式,因此方法具有易操作性,是軟件開發(fā)人員應該掌握的基本方法.結構化方法更適合于需求能夠預先明確定義的軟件系統(tǒng),如系統(tǒng)軟件或某些實時控制軟件等.(3)實施快速原型法的基本前提條件一般是:有高水平的實施原型化的人員,他們掌握工具,了解業(yè)務,能快速獲取用戶需求;有快速建造模型系統(tǒng)的工具,二者缺一不可.有相應原型系統(tǒng)的積累可加速實施,但不是實施原型化方法的前提5.軟件產(chǎn)品生產(chǎn)周期長、耗資巨大,必須特別注意保證質(zhì)量,而通常保證軟件質(zhì)量的措施可歸為四方面,即復審、復查、管理復審和測試,不同的方面反映了軟件質(zhì)量保證措施中的不同需要,試回答以下問題并適當加以闡述:(1)、復審、復查、管理復審和測試各自包括的具體內(nèi)容是什么,它在哪些方面對軟件質(zhì)量的保證產(chǎn)生了作用(2)、軟件復審和軟件測試之間有什么聯(lián)系,又有什么差別各自有什么側(cè)重(3)、軟件測試的目的是什么,對其具體的內(nèi)容和實現(xiàn)過程做—扼要陳述,無需對測試方法做出介紹、本題主要考查考生對軟件質(zhì)量保證措施的全面了解程度。軟件質(zhì)量保證措施除了常規(guī)的對編碼進行測試外,還有軟件生命周期階段成果的復審,對各階段文檔和材料的復查,從管理的角度對軟件開發(fā)工作的復審以及對編碼的測試,要求學生建立軟件質(zhì)量保證的整體概念。系統(tǒng)性的錯誤或缺點。2)復查是指對階段產(chǎn)生的文檔和材料的檢查,以保證下階段工作的開始。3)管理復查是指從項目管理的角度,從總體、成本和進度等方面進行檢查。4)測試是指對編碼的查錯和排錯,應說測試的內(nèi)容和過程,如單元測試、集成測試、系統(tǒng)測試等。(2)、軟件復審是軟件在編碼前對分析文檔和設計文檔的審查,其目的是發(fā)展和糾正在分析和設計階段中可能產(chǎn)生的系統(tǒng)性錯誤,它是軟件測試的固有和重要內(nèi)容和步驟。軟件測試是對基于正確設計基礎上所開發(fā)的程序的測試。二者是從不同方面對軟件質(zhì)量的保證。(3)、軟件測試的目的從編碼階段來說是發(fā)現(xiàn)程序中可能出現(xiàn)的錯誤并排除錯誤。測試的具體內(nèi)容是從不同范圍和對象中來發(fā)現(xiàn)可能存在的錯誤并排除之,包括:單元測試即對模塊進行測試,再對由模塊集成的子系統(tǒng)進行測試,再將子系統(tǒng)集成起來進行系統(tǒng)測試,測試中將應用到測試實例和測試數(shù)據(jù)。技術因素和管理因素外,還有程序自身的因素,具體影響因素可歸納為:1)軟件系統(tǒng)的規(guī)模;2)軟件系統(tǒng)的年齡;3)軟件系統(tǒng)的結構;可能減少維護工作量的因素。(3).簡單敘述軟件可維護性度量的含義。(1).系統(tǒng)的規(guī)模。指軟件系統(tǒng)規(guī)模的大小,系統(tǒng)規(guī)模越大,維護困難越大。系統(tǒng)的年齡。系統(tǒng)運行時間越長,可能經(jīng)過多次修改,從而造成維護的困難。結構。系統(tǒng)結構合理與否,會給維護帶來困難。(2).增加維護工作量軟件系統(tǒng)的年齡和規(guī)模、結構合理性、程序復雜性、用戶的數(shù)量、應用的變化工作量的因素有:結構化技術的使用,自動化工具使用,數(shù)據(jù)庫技術應用,高性能軟件使用,新了度量可維護性

溫馨提示

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

評論

0/150

提交評論