軟件工程 簡答題.doc_第1頁
軟件工程 簡答題.doc_第2頁
軟件工程 簡答題.doc_第3頁
軟件工程 簡答題.doc_第4頁
軟件工程 簡答題.doc_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章 緒論 1.軟件產(chǎn)品的特性是什么?軟件是一種邏輯產(chǎn)品,看不見也摸不著,因而具有無形性.軟件產(chǎn)品的生產(chǎn)主要是研制,通過復制就產(chǎn)生大量的軟件產(chǎn)品.軟件產(chǎn)品不會用壞,不存在磨損,消耗問題.軟件產(chǎn)品的生產(chǎn)還未完全擺脫手工開發(fā)方式,大部分產(chǎn)品是定做的.軟件費用不斷增加,軟件成本相當昂貴. 2.什么是軟件危機?產(chǎn)生原因是什么?由于計算機運行速度,容量,可靠性有顯著提高,為計算機的廣泛應用創(chuàng)造了條件.但量,軟件開發(fā)技術(shù)的進步一直未能滿足發(fā)展出來的要求.在軟件開發(fā)中遇到的問題找不到解決的辦法,使問題積累起來,形成了尖銳的矛盾,因而導致了軟件危機.軟件危機的原因是由于軟件產(chǎn)品本身的特點以及開發(fā)軟件的方式,方法,技術(shù)和人員引起的:軟件的規(guī)模越來越大,結(jié)構(gòu)越來越復雜;軟件開發(fā)的管理困難而復雜;軟件開發(fā)費用不斷增加;軟件開發(fā)技術(shù)落后;生產(chǎn)方式落后;開發(fā)工具落后,生產(chǎn)率提高緩慢. 3.軟件工程的性質(zhì),目標和內(nèi)容是什么?性質(zhì):是一門綜合性交叉學科,它涉及計算機科學,工程科學,管理科學,數(shù)學等領域.目的:是成功建造一個大型軟件系統(tǒng),所謂成功是要達到以下幾個目標:付出較底的開發(fā)成本;達到要求的軟件功能;取得較好的軟件性能;開發(fā)的軟件易于移植;需要較低的維護費用;能按時完成開發(fā)任務,及時交付使用;開發(fā)的軟件可靠性高;內(nèi)容:是軟件開發(fā)技術(shù)和開發(fā)管理兩個方面.主要研究軟件開發(fā)方法,軟件開發(fā)過程,軟件開發(fā)工具和環(huán)境.在軟件開發(fā)管理中,主要研究軟件管理學,軟件經(jīng)濟學,軟件心理學. 4.軟件工程面臨的問題是什么?擺在軟件工程面前有許多需要解決的棘手問題,如軟件費用,軟件可靠性,軟件可維護性,軟件生產(chǎn)率和重用等. 5.軟件生產(chǎn)有幾個階段?各有何特征?程序設計時代46-59.生產(chǎn)方式是個體手工勞動,使用的工具是機器語言.開發(fā)方法是追求編程技巧,不重視程序設計方法.程序系統(tǒng)時代60-69.生產(chǎn)方式是作坊式的小集團合作生產(chǎn),生產(chǎn)工具是高級語言,開發(fā)方法依舊靠個人技巧,但開發(fā)技術(shù)沒有新的突破,大量軟件開發(fā)的需求已提出,產(chǎn)生了尖銳的矛盾,導致軟件危機的產(chǎn)生.軟件工程時代70-.生產(chǎn)方式是工程化的生產(chǎn),使用數(shù)據(jù)庫,開發(fā)工具,開發(fā)環(huán)境,網(wǎng)絡,分布式,面向?qū)ο蠹夹g(shù)來開發(fā)軟件.軟件特征是開發(fā)技術(shù)有很大進步,但是未能獲得突破性進展,軟件價格不斷上升,沒有完全擺脫軟件危機. 6.軟件工程過程有哪些過程?獲取,供應,開發(fā),操作,維護,管理,支持. 7.軟件生存周期有哪幾個階段?由可行性分析和項目開發(fā)計劃,需求分析,概要設計,詳細設計,編碼,測試,維護等階段組成. 8.軟件生產(chǎn)周期模型有哪些主要模型?瀑布模型,增量模型,螺旋模型,噴泉模型,變換模型,基于知識的模型等. 9.有哪些主要軟件開發(fā)方法?開結(jié)構(gòu)化方法,Jackson方法,維也納開發(fā)方法(VDM),面向?qū)ο蟮拈_發(fā)方法等. 第二章 軟件可行性研究與項目開發(fā)計劃 1.可行性研究的任務是什么?首先需要進行概要的分析研究,初步確定項目的規(guī)模和目標,確定項目的約束和限制.然后進行簡要的需要分析,抽象出該項目的邏輯結(jié)構(gòu),建立邏輯模型.從邏輯模型出發(fā),經(jīng)過壓縮的設計,探索出若干種可供選擇的主要解決辦法,對每種解決方法都要研究它的可行性.可從技術(shù)可行性,經(jīng)濟可行性,社會可行性三方面分析研究每種解決方法的可行性.2.可行性研究有哪些步驟?確定項目規(guī)模和目標;研究正在運行的系統(tǒng);建立新系統(tǒng)的高層邏輯模型;導出和評價各種方案;推薦可行的方案;編寫可行性研究報告. 3.可行性研究的目的?就是用最小的代價在盡可能短的時間確定該軟件項目是否能夠開發(fā),是否值得開發(fā).注意,可行性研究的目的不是去開發(fā)一個軟件項目,而是研究該軟件項目是否能夠,是否值得去開發(fā). 4.可行性研究報告的主要內(nèi)容?主要內(nèi)容有:引言;可行性研究前提;對現(xiàn)有系統(tǒng)的分析;所建議系統(tǒng)的技術(shù)可行性分析;所建議系統(tǒng)的經(jīng)濟可行性分析;社會因素可行性分析;其他可供選擇方案;結(jié)論意見. 5.怎樣計算投資回收期和純收入?投資回收期就是使累計的經(jīng)濟效益等于最初的投資費用所需的時間.投資回收期越短,就越快獲得利潤,則該項目就越值得開發(fā).項目純收入的計算方法是在整個生存周期之內(nèi)的累計經(jīng)濟效益(折合成現(xiàn)在值)與投資之差. 6.項目開發(fā)計劃有哪些主要內(nèi)容?項目概述;實施計劃;人員組織及分工;交付使用期限. 第三章 軟件需求分析 1.什么是需求分析?該階段的基本任務是什么?需求分析是指,開發(fā)人員要準確理解用戶的要求,進行細致的調(diào)查分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到相應的形式功能規(guī)約(需求規(guī)格說明)的過程.基本任務是要準確地定義新系統(tǒng)的目標,為了滿足用戶需求,回答系統(tǒng)必須做什么的問題. 2.簡述結(jié)構(gòu)化分析方法的步驟.了解當前系統(tǒng)的工作流程,獲得當前系統(tǒng)的物理模型;抽象出當前系統(tǒng)的邏輯模型;建立目標系統(tǒng)的邏輯模型;作進一步補充和優(yōu)化. 3.簡述SA方法的優(yōu)缺點.是軟件需求分析中公認的,有成效的,技術(shù)成熟,使用廣泛的一種方法,它較適合于開發(fā)數(shù)據(jù)處理類型軟件的需求分析.該方法利用圖形等半形式化工具表達需求,簡明,易讀,也易于使用,為后一階段的設計,測試,評價提供了有利條件.在解決需求分析過程中的諸難點方面能力不足,主要表現(xiàn)在:傳統(tǒng)的SA方法僅是一個靜態(tài)模型,沒有反映處理的順序,不適合描述實時控制系統(tǒng).SA方法使用數(shù)據(jù)流圖DFD在分析與描述數(shù)據(jù)要求方面是有局限的,DFD應與數(shù)據(jù)庫技術(shù)中的ER實體聯(lián)系圖結(jié)合起來.DFD不適合描述人機界面系統(tǒng)的需求.SA方法往往對這一部分用自然語言作補充,對這類系統(tǒng)可采用其它的分析方法.為了更精確地描述軟件需求,提高軟件系統(tǒng)的可靠性,安全性,也便于實現(xiàn)自動化,SA方法可與形式化方法結(jié)合起來.借助于需求分析CASE工具,提高需求分析的質(zhì)量及效率.4.數(shù)據(jù)流圖的作用是什么?畫數(shù)據(jù)流圖應注意什么?數(shù)據(jù)流圖(DFD)是SA方法中用于表示系統(tǒng)邏輯模型的一種工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,反映系統(tǒng)必須完成的邏輯功能.畫數(shù)據(jù)流圖注意事項有:命名.要易于理解其含義.畫數(shù)據(jù)流而不是控制流.反映系統(tǒng)做什么.只能是名詞或名詞短短.一般不畫物質(zhì)流.第個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流,反映出此加工數(shù)據(jù)的來源與加工結(jié)果.編號.子圖應編號,子圖上所有加工也要編號,子圖的編號就是父圖中相應加工的編號.加工的編號由子圖號,小數(shù)點及局部號組成.父圖與子圖的平衡.子圖的輸入輸出數(shù)據(jù)流同父圖相應加工的輸入輸出數(shù)據(jù)流必須一致.局部數(shù)據(jù)存儲.當某層數(shù)據(jù)流圖中的數(shù)據(jù)存儲不是父圖中相應加工的外部接口而只是本圖中某些加工之間的數(shù)據(jù)接口,則稱這些數(shù)據(jù)存儲為局部數(shù)據(jù)存儲.一個局部數(shù)據(jù)存儲只要當它作為某些加工的數(shù)據(jù)接口或某個加工特定的輸入或輸出時,就把它畫出來,這樣有助于實現(xiàn)信息隱蔽.提高數(shù)據(jù)流圖的易理解性.注意合理分解,要把一個加工分解成幾個功能相對獨立的子加工.分解時注意子加工的獨立性,還應注意均勻性.5.數(shù)據(jù)字典的作用是什么?數(shù)據(jù)字典是為分析人員查找數(shù)據(jù)流圖中有關(guān)名字的詳細定義而服務的,因此也像普通字典一樣,要把所有條目按一定的次序排列起來,以便查閱.數(shù)據(jù)字典和數(shù)據(jù)流圖共同構(gòu)成了系統(tǒng)的邏輯模型,是需求規(guī)格說明書的主要組成部分. 6.簡述建立IDEF0圖的步驟.確定建模的范圍,觀點及目的;范圍指所討論的對象是什么,它的邊界和外部接口是什么;觀點是指從什么角度去考慮民研究的問題;目的是指確定所研究問題的意圖及理由.建立系統(tǒng)的內(nèi)外關(guān)系圖A-0圖.圖中只有一個活動.用進入和離開的箭頭表示系統(tǒng)與環(huán)境的數(shù)據(jù)接口,確定了系統(tǒng)邊界.建立頂層圖A0圖.把A0圖分解為3-6個主要部分得到A0圖,從結(jié)構(gòu)上反映了模型的觀點,從結(jié)構(gòu)上反映了模型的觀點,是系統(tǒng)功能模型真正的頂層圖.建立低層次的圖形.按照自頂向下的方法,從A0開始逐層分解.分解時遵循兩條原則:首先,保持在同一水平上的分解(即寬度優(yōu)先),如A1,A2,A3等圖,而不是A1,A11,A111(此為深度優(yōu)先),可避免較高層次的變化影響較低層次,造成可能的重復工作,同時可較早地查出錯誤及遺漏.其次,對于同一水平層次上的各個方框,選擇難度最大的部分往下分解. 7.應用題:用DFD描繪功能的需求.首先分析功能說明,先找出哪些是屬于系統(tǒng)之外的外部實體,獲得系統(tǒng)的輸入和輸出,其次考慮系統(tǒng)內(nèi)部功能,然后畫出頂層數(shù)據(jù)流圖,隨后分解系統(tǒng),每個子系統(tǒng)有哪些流動著的數(shù)據(jù),哪些需要暫時保存數(shù)據(jù),通過什么加工使數(shù)據(jù)發(fā)生變換.(數(shù)據(jù)流.加工.源或終點.數(shù)據(jù)存儲.) 第四章 軟件概要設計 1.什么是軟件概要設計,該階段的基本任務是什么?在軟件設計階段,需要把軟件的邏輯模型變換為物理模型,著手實現(xiàn)軟件的需求,并將設計的結(jié)果反映在設計規(guī)模說明書文檔中,是一個把軟件需求轉(zhuǎn)換為軟件表示的過程.軟件概要設計只描述軟件總的體系結(jié)構(gòu),因此也稱為軟件結(jié)構(gòu)設計.基本任務包括:設計軟件系統(tǒng)結(jié)構(gòu)(簡稱軟件結(jié)構(gòu));數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設計;編寫概要設計文檔;評審. 2.軟件設計的基本原理包括哪些內(nèi)容?模塊化,指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程;抽象,指抽出事物本質(zhì)的共同的特性而暫不考慮它的細節(jié),不考慮其它因素;信息隱蔽,指在設計和確定模塊時,使得一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這此信息的其它模塊來說,是不能訪問的;模塊獨立性,指每個模塊只完成系統(tǒng)要求的獨立子功能,并且與其它模塊的聯(lián)系最少且接口簡單.模塊獨立性包括兩個度量標準:耦合性,內(nèi)聚性. 3.模塊的耦合性,內(nèi)聚性包括哪些種類?各表示什么含義?耦合性包括:無直接耦合,指兩個模塊之間沒有直接聯(lián)系,它們分別從屬于不同模塊的控制與調(diào)用,它們之間不傳遞任何信息;數(shù)據(jù)耦合,指兩個模塊之間有調(diào)用關(guān)系,傳遞的是簡單的數(shù)據(jù)值,相當于高級語言中的值的傳遞;標記耦合,指兩個模塊之間傳遞的是數(shù)據(jù)結(jié)構(gòu),如高級語言中的數(shù)組名,記錄名,文件名等這此名字即為標記,其實傳遞的是這個數(shù)據(jù)結(jié)構(gòu)的地址;控制耦合,指一個模塊調(diào)用另一個模塊時,傳遞的是控制變量(如開關(guān),標志等),被調(diào)用模塊通過該控制變量的值有選擇地執(zhí)行塊內(nèi)某一功能;公共耦合,指通過一個公共數(shù)據(jù)環(huán)境相互作用的那些模塊間的耦合;內(nèi)容耦合,指一個模塊直接使用另一個模塊的內(nèi)部數(shù)據(jù),或通過非正常入口而轉(zhuǎn)入另一個模塊內(nèi)部.內(nèi)聚性包括:偶然內(nèi)聚,指一個模塊內(nèi)的各處理元素之間沒有任何聯(lián)系;邏輯內(nèi)聚,指模塊內(nèi)執(zhí)行幾個邏輯上相似的功能,通過參數(shù)確定該模塊完成哪一個功能;時間內(nèi)聚,把需要同時執(zhí)行的動作組合在一起形成的模塊;通信內(nèi)聚,指模塊內(nèi)所有處理元素都在同一個數(shù)據(jù)結(jié)構(gòu)上操作(有時稱之為信息內(nèi)聚),或者指各處理使用相同的輸入數(shù)據(jù)或者產(chǎn)生相同的輸出數(shù)據(jù);順序內(nèi)聚,指一個模塊中各個處理元素都密切相關(guān)于同一功能且必須順序執(zhí)行,前一功能元素的輸出就是下一功能元素的輸入;功能內(nèi)聚,指模塊內(nèi)所有元素共同完成一個功能,缺一不可. 4.簡述軟件結(jié)構(gòu)設計優(yōu)化準則.劃分模塊時,盡量做到高內(nèi)聚,低耦合,保持模塊相對獨立性.并以此原則優(yōu)化初始的軟件結(jié)構(gòu).一個模塊的作用范圍應在其控制范圍之內(nèi),且判定所在的模塊應與受其影響的模塊在層次上盡量靠近.軟件結(jié)構(gòu)的深度,寬度,扇入,扇出應適當.模塊的大小要適中.模塊的接口要簡單,清晰,含義明確,易于實現(xiàn),測試與維護. 5.變換型數(shù)據(jù)流圖與事務性數(shù)據(jù)流圖有什么區(qū)別?變換型數(shù)據(jù)流圖包含輸入,變換(或稱處理)和輸出3個部分,即數(shù)據(jù)處理的工作過程為三步:取得數(shù)據(jù),變換數(shù)據(jù)和給出數(shù)據(jù).變換是系統(tǒng)的主加工,對輸入數(shù)據(jù)進行變換得到輸出數(shù)據(jù),因此變換型的DFD是一個順序結(jié)構(gòu).事務型數(shù)據(jù)流圖的事務中心將輸入流分離成許多發(fā)散的數(shù)據(jù)流,形成多個加工路徑,根據(jù)輸入的值選擇其中一個路徑來執(zhí)行.6.簡述變換分析設計與事務分析設計的設計步驟.變換分析設計步驟:確定DFD中的變換中心,邏輯輸入和邏輯輸出;設計軟件結(jié)構(gòu)的頂層和第一層變換結(jié)構(gòu);設計中,下層模塊;根據(jù)設計準則對初始的軟件結(jié)構(gòu)進行優(yōu)化.事務分析設計步驟:確定DFD中的事務中心和加工路徑;設計軟件結(jié)構(gòu)的頂層和第一層事務結(jié)構(gòu);事務結(jié)構(gòu)中,下層模塊的設計,優(yōu)化等工作同變換結(jié)構(gòu). 第五章 軟件詳細設計1.詳細設計的基本任務是什么?為每個模塊進行詳細的算法設計;為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進行設計;對數(shù)據(jù)庫進行物理設計,即確定數(shù)據(jù)庫的物理結(jié)構(gòu);其它設計;編寫詳細設計說明書;評審;2.結(jié)構(gòu)化程序設計方法的基本要點是什么?該方法是綜合應用一些手段來構(gòu)造高質(zhì)量程序的思想方法.基本要點有:采用自頂向下,逐步求精的程序設計方法;使用3種基本控制結(jié)構(gòu)構(gòu)造程序;主程序員組的組織形式;3.詳細設計主要使用哪些描述工具?各有什么特點?描述工具主要是圖形工具,過程設計語言和表格.圖形工具包括程序流程圖和PAD圖等.程序流程圖的優(yōu)點是直觀清晰,易于使用,是開發(fā)者普遍采用的工具.PAD圖是一種由左向右展開的二維樹型結(jié)構(gòu),控制流程為自上而下,從左到右地執(zhí)行.過程設計語言是一種用于描述模塊算法設計和處理細節(jié)的語言,一般分為內(nèi)外2層,外層語法應符合一般程序設計語言常用的方法規(guī)則,而內(nèi)層語法則用一些簡單的句子,短語和通用的數(shù)學符號,來描述程序應執(zhí)行的功能.表格工具如判定表可作為詳細設計中描述邏輯條件復雜的算法.4.JSP方法有哪些設計步驟?該方法有哪些特點?共有5個步驟:分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson結(jié)構(gòu)圖表示這些數(shù)據(jù)結(jié)構(gòu).找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應關(guān)系的數(shù)據(jù)單元.按一定的規(guī)則由輸入,輸出的數(shù)據(jù)結(jié)構(gòu)導出程序結(jié)構(gòu).列出基本操作與條件,并把它們分配到程序結(jié)構(gòu)圖的適當位置.用偽碼寫出程序.特點:適用于輸入數(shù)據(jù)和輸出數(shù)據(jù)結(jié)構(gòu)之間有對應關(guān)系的問題求解;JSP方法主要體現(xiàn)程序結(jié)構(gòu)的設計,不明確地劃分軟件概要設計和詳細設計的兩個階段;JSP方法主要用于規(guī)模不大的數(shù)據(jù)處理系統(tǒng),以及輸入,輸出數(shù)據(jù)結(jié)構(gòu)能較容易地描述出來的情況. 第六章 軟件編碼1.在項目開發(fā)時,選擇程序設計語言通??紤]哪些因素?程序設計語言是人機通信的工具之一,使用這類語言指揮計算機干什么,是人類特定的活動.選擇程序設計語言通常需要考慮語言的心理特性,工程特性和技術(shù)特性.語言的心理特性對通信質(zhì)量有影響.編碼過程是軟件工程中的一個步驟,語言的工程特性對軟件開發(fā)的成功與否有重要影響.此外,語言的技術(shù)特性也會影響設計的質(zhì)量.2.什么是程序設計風格?應在哪些方面注意培養(yǎng)好的設計風格?程序設計風格是指一個人編制程序時所表現(xiàn)出來的特點,習慣,邏輯思路等.良好的編程風格可以減少編碼錯誤,減少讀程序的時間,從而提高軟件的開發(fā)效率.與編程風格有關(guān)的因素包括:源程序文檔化;數(shù)據(jù)說明;語句構(gòu)造;輸入和輸出;效率.注意從這幾個方面培養(yǎng)和學習良好的編程風格,使編出的程序清晰易讀,易于測試與維護,從而提高軟件的質(zhì)量. 1、可行性研究的任務是什么? 首先需要進行概要的分析研究,初步確定項目的規(guī)模和目標,確定項目的約束和限制,把他們清楚地列舉出來。然后,分析員進行簡要的需求分析,抽象出該項目的邏輯結(jié)構(gòu),建立邏輯模型。從邏輯模型出發(fā),經(jīng)過壓縮的設計,探索出若干種可供選擇的主要解決方法,對每種解決方法都要研究它的可行性,可從以下三個方面分析研究每種解決方法的可行性。技術(shù)可行性:對要開發(fā)項目的功能、性能、限制條件進行分析,確定在現(xiàn)有的資源條件下,技術(shù)風險有多大,項目是否能實現(xiàn)。經(jīng)濟可行性:進行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項目是否值得投資開發(fā)。社會可行性:要開發(fā)的項目是否存在任何侵犯、妨礙等責任問題,要開發(fā)項目的運行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。 2、什么是模塊的影響范圍?什么是模塊的控制范圍?他們之間應該建立什么關(guān)系? 一個模塊的作用范圍(或稱影響范圍)指受該模塊內(nèi)一個判定影響的所有模塊的集合。一個模塊的控制范圍指模塊本身以及其所有下屬模塊(直接或間接從屬于它的模塊)的集合。一個模塊的作用范圍應在其控制范圍之內(nèi),且判定所在的模塊應在其影響的模塊在層次上盡量靠近。如果再設計過程中,發(fā)現(xiàn)模塊作用范圍不在其控制范圍之內(nèi),可以用“上移判點”或“下移受判斷影響的模塊,將它下移到判斷所在模塊的控制范圍內(nèi)”的方法加以改進。 3、非漸增式測試與漸增式測試有什么區(qū)別?漸增式測試如何組裝模塊? 非漸增式測試與漸增式測試的測試方法有以下區(qū)別:非漸增式測試方法把單元測試和集成測試分成兩個不同的階段,前一階段完成模塊的單元測試,后一階段完成集成測試。而漸增式測試往往把單元測試與集成測試和在一起,同時完成。非漸增式需要更多的工作量,因為每個模塊都需要驅(qū)動模塊和樁模塊,而漸增式利用已測試過的模塊作為驅(qū)動模塊或樁模塊,因此工作量較少。漸增式可以較早的發(fā)現(xiàn)接口之間的錯誤,非漸增式最后組裝是才發(fā)現(xiàn)。漸增式有利于排錯,發(fā)生錯誤往往和最近加進來的模塊有關(guān),而非漸增式發(fā)現(xiàn)接口錯誤推遲到最后,很難判斷是哪一部分接口出錯。漸增式比較徹底,已測試的模塊和新的模塊再測試。漸增式占用的時間較多,但非漸增式須更多的驅(qū)動模塊、樁模塊也占用一些時間。非漸增式開始可并行測試所有模塊,能充分利用人力,對測試大型軟件很有意義。漸增式測試有以下兩種不同的組裝模塊的方法:自頂向下組合。該方法只需編寫樁模塊,其步驟是從頂層模塊開始,沿被測程序的軟件結(jié)構(gòu)圖的控制路徑逐步向下測試,從而把各個模塊都結(jié)合起來,它又有兩種組合策略:深度有先策略:先從軟件結(jié)構(gòu)中選擇一條主控制路徑,把該路徑上的模塊一個個結(jié)合進來進行測試,以便完成一個特定的子功能,接著再結(jié)合其它需要優(yōu)先考慮的路徑。寬度有先策略:逐層結(jié)合直接下屬的所有模塊。自低向上結(jié)合。該方法僅需編寫驅(qū)動模塊。其步驟為:把底層模塊組合成實現(xiàn)一個個特定子功能的族。為每一個族編寫一個驅(qū)動模塊,以協(xié)調(diào)測試用例的輸入和測試結(jié)果的輸出。對模塊族進行測試。按軟件結(jié)構(gòu)圖依次向上擴展,用實際模塊替換驅(qū)動模塊,形成一個個更大的族。重復至步,直至軟件系統(tǒng)全部測試完畢。 4、軟件質(zhì)量與軟件質(zhì)量保證的含義是什么? 從實際應用來說,軟件質(zhì)量定義為:與所確定的功能和性能需求的一致性。與所成文的開發(fā)標準一致性。與所有專業(yè)開發(fā)的軟件所期望的隱含特性的一致性。軟件質(zhì)量保證就是向用戶及社會提供滿意的高質(zhì)量的產(chǎn)品,確保軟件產(chǎn)品從誕生到消亡為止的所有階段的質(zhì)量的活動,即確定、達到和維護需要的軟件質(zhì)量而進行的所有有計劃、有系統(tǒng)的管理活動。5、軟件工程標準化的意義是什么?都有哪些軟件工程標準?積極推進軟件工程標準化,其道理是顯而易見的。僅就一個軟件開發(fā)項目來說,有許多層次,不同分工的人員相互配合,在開發(fā)項目的各個部分以及各開發(fā)階段之間也都存在許多聯(lián)系和銜接問題。如何把這些錯綜復雜的關(guān)系協(xié)調(diào)好,需要有一系列統(tǒng)一的約束和規(guī)定。在軟件開發(fā)項目取得階段成果或最后完成是時,需要進行階段評價和驗收測試。投入運行的軟件,其維護工作中遇到問題又與開發(fā)工作者有著密切的關(guān)系。軟件的管理工作則滲透到軟件生存期的每一個環(huán)節(jié)。所有這些都要要求提供統(tǒng)一的行動規(guī)范和衡量準則,使得各種工作都有章可循。軟件工程的標準主要有以下三個:FIPS135是美國國家標準局發(fā)布的軟件文檔管理指南NSAC 39是美國核子安全分析中心發(fā)布的安全參數(shù)顯示系統(tǒng)的驗證與確認。ISO5807是國際標準化組織公布(現(xiàn)已成為中國的國家標準)的信息處理數(shù)據(jù)流程圖、程序流程圖、程序網(wǎng)絡圖和系統(tǒng)資源圖的文件編制符號及約定。 5、需求分析階段的基本任務是什么?需求分析階段的基本任務是要準確的定義新系統(tǒng)的目標,為了滿足用戶需要,回答系統(tǒng)必須“做什么”的問題。本階段要進行以下幾方面的工作:問題識別。雙方確定對問題的綜合需求,這些需求包括:功能需求、性能需求、環(huán)境需求、用戶界面需求,另外還有可靠性、安全性、保密性、可移植性、可維護性等方面的需求。分析與綜合,導出軟件的邏輯模型。分析人員對獲取的需求,進行一致性的分析檢查,在分析、綜合中逐步細化軟件功能,劃分成各個子功能。這里也包括對數(shù)據(jù)域進行分解,并分配到各個子功能上,以確定系統(tǒng)的構(gòu)成及主要成份,并用圖文結(jié)合的形式,建立起新系統(tǒng)的邏輯模型。編寫文檔。編寫“需求規(guī)格說明書”、編寫初步用戶使用手冊、編寫確認測試計劃、修改完善軟件開發(fā)計劃。 6、采用黑盒技術(shù)設計測試用例有哪幾種方法?這些方法各有什么特點?等價類劃分。等價類劃分是將輸入數(shù)據(jù)域按有效的或無效的(也稱合理的或不合理的)劃分成若干個等價類,測試每個等價類的代表值就等于對該類其它值的測試。 邊界值分析。該方法是將測試邊界情況作為重點目標,選取正好等于,剛剛大于或剛剛小于邊界值的情況,根據(jù)這些情況選擇測試用例。 錯誤推測。錯誤推測法沒有確定的步驟,憑檢驗進行。它的基本思想是列出程序中可能發(fā)生錯誤的情況,根據(jù)這些情況選擇測試用例。 因果圖。因果圖能有效的檢測輸入條件的各種組合可能會引起的錯誤。因果圖的基本原理是通過畫因果圖,把用自然語言描述的功能說明轉(zhuǎn)換為判定表,最后為判定表的每一列設計一個測試用例。 7、說明動態(tài)建模的過程。準備腳本。動態(tài)分析從尋找事件開始,然后確定各對象的可能事件的順序。在分析階段不考慮算法的執(zhí)行,算法是實現(xiàn)模型的一部分。確定事件。確定所有外部事件。事件包括所有來自或發(fā)往用戶的信息、外部設備的信號、輸入、轉(zhuǎn)換和動作。準備事件跟蹤表。 把腳本表示成一個事件跟蹤表,對象為表中的列,給每一個對象分配一個獨立的列。構(gòu)造狀態(tài)圖。對各對象類建立狀態(tài)圖,反映對象接收和發(fā)送的事件,每個事件跟蹤都對應于狀態(tài)圖中一條路徑。 8、軟件生產(chǎn)經(jīng)歷了幾個階段?各有何特征?軟件生產(chǎn)至今已經(jīng)歷了三個階段:程序設計時代(1946-1956):這個階段的生產(chǎn)方式是個體手工勞動,使用的工具實際其語言、匯編語言。開發(fā)方法是追求編程技巧,追求程序運行效率。硬件特征是價格貴、存儲容量小,運行可靠性差。軟件特征是只有程序、程序設計概念,不重視程序設計方法。程序系統(tǒng)時代(1956-1968):這個階段的生產(chǎn)方式是作坊式的小集團合作生產(chǎn),生產(chǎn)工具是高級語言,開發(fā)方法仍就靠個人技巧,但開始提出結(jié)構(gòu)化方法。硬件特征是速度、容量、工作可靠性有明顯提高。軟件特征是程序員數(shù)量猛增,但開發(fā)技術(shù)沒有新的突破,開發(fā)人員的素質(zhì)和落后的開發(fā)技術(shù)不適應規(guī)模大、結(jié)構(gòu)復雜的軟件開發(fā),導致軟件危機的產(chǎn)生。軟件工程時代(1968至今):這個階段的生產(chǎn)方式是工程化的生產(chǎn),使用數(shù)據(jù)庫、開發(fā)工具、開發(fā)環(huán)境、網(wǎng)絡、分布式、面向?qū)ο蠹夹g(shù)來開發(fā)軟件。硬件特征是向超高速、大容量、微型化以及網(wǎng)絡化方向發(fā)展。軟件特征是開發(fā)技術(shù)有很大進步,但是未能獲得突破性進展,軟件價格不斷上升,沒有完全擺脫軟件危機。5、簡述Gantt圖的功能及不足。Gantt圖常用水平線段來描述把任務分解成子任務,以及每個子任務的進度安排,動態(tài)反映軟件開發(fā)進度情況,該圖可以:表示任務分解成子任務情況;表示每個任務的開始時間和完成時間,線段的長度表示子任務完成所需要的時間;表示子任務之間的并行和串行關(guān)系。Gantt圖只能表示任務之間的并行與串行的關(guān)系,難以反映多個任務之間存在的復雜關(guān)系,不能直觀表示任務之間相互依賴制約關(guān)系,以及哪些任務是關(guān)鍵字任務等信息,因此僅僅用Gantt圖作為進度的安排是不夠的。6、什么是數(shù)據(jù)字典?其作用是什么?它有哪些條目?數(shù)據(jù)字典(簡稱DD)是用來定義數(shù)據(jù)流圖中的各個成分的具體含義的,它以一種準確的、無二義性的說明方式為系統(tǒng)的分析、設計及維護提供了有關(guān)元素的一致的定義和詳細的描述。他和數(shù)據(jù)流圖共同構(gòu)成了系統(tǒng)的邏輯模型,是需求規(guī)格說明書的主要組成部分。數(shù)據(jù)字典是為分析人員查找數(shù)據(jù)流圖中有關(guān)名字的詳細定義而服務的,因此也像普通字典一樣,要把所有條目按一定的次序排列起來,以便查閱。數(shù)據(jù)字典有以下四類條目:數(shù)據(jù)流、數(shù)據(jù)項、數(shù)據(jù)存儲、基本加工。數(shù)據(jù)項是組成數(shù)據(jù)流和數(shù)據(jù)存儲的最小元素。源點、終點不在系統(tǒng)之內(nèi),故一般不在字典中說明。7、調(diào)試的目的是什么?調(diào)試有哪些技術(shù)手段?調(diào)試的目的是確定錯誤的原因和位置,并改正錯誤,因此調(diào)試也成為糾錯。調(diào)試技術(shù)主要有:簡單的調(diào)試方法,主要有在程序中插入打印語句、運行部分程序等;歸納法調(diào)試,他從測試結(jié)果發(fā)現(xiàn)的線索(錯誤跡象、征兆)入手、分析他們之間的聯(lián)系,導處錯誤原因的假設,然后再證明或否定這個假設;演繹法調(diào)試,該方法列出所有可能的錯誤原因的假設,然后利用測試數(shù)據(jù)排除不適當?shù)募僭O,最后再測試數(shù)據(jù)驗證余下的假設確實是出錯的原因;回溯法調(diào)試,該方法從程序產(chǎn)生錯誤的地方出發(fā),人工沿程序的邏輯路徑反向搜索,直到找到錯誤的原因為止。10、什么是數(shù)據(jù)流圖?其作用是什么?其中的基本符號各表示什么含義?數(shù)據(jù)流圖簡稱DFD,是SA方法中用于表示系統(tǒng)邏輯模型的一種工具。它以圖形的方式描述數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。數(shù)據(jù)流圖有四種基本圖形符號:“”箭頭表示數(shù)據(jù)流;“”圓或橢圓表述加工;“=”雙杠表示數(shù)據(jù)存儲;“”方框表示數(shù)據(jù)的源點或終點。 21、什么是確認測試?該階段有哪些工作?確認測試又稱有效性測試。它的任務是檢查軟件的功能與性能是否與需求規(guī)格說明書中確定的指標相符合。確認測試階段有兩項工作,進行確認測試與軟件配置審查。確認測試一般是在模擬環(huán)境中運用黑盒測試方法,由專門測試人員和用戶參加的測試。軟件配置審查的任務是檢查軟件的所有文檔資料的完整性、正確性。如果發(fā)現(xiàn)遺漏和錯誤,應補充和改正,同時要編排好目錄,為以后的軟件維護工作奠定基礎。 2、詳細設計的基本任務是什么?有哪幾種描述方法?詳細設計是軟件設計的第二階段,其基本任務有:為每個模塊進行詳細的算法設計;為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進行設計;對數(shù)據(jù)庫進行物理設計,即確定數(shù)據(jù)庫的物理結(jié)構(gòu);其它設計,根據(jù)軟件系統(tǒng)類型,還可能要進行代碼設計、輸入/輸出格式設計、人機對話設計;編寫詳細設計說明書;評審。詳細描述處理過程常用三種工具:圖形、表格和語言。如結(jié)構(gòu)化程序流程圖、盒圖和問題分析圖。IPO圖也是詳細設計的主要工具之一。表格工具如判定表可作為詳細設計中描述邏輯條件復雜的算法。過程設計語言(PDL)是一種用于描述模塊算法設計和處理細節(jié)的語言工具。5、什么是軟件危機?其產(chǎn)生的原因是什么?當軟件開發(fā)技術(shù)的進步不能跟上硬件技術(shù)的進步,未能滿足發(fā)展的要求,致軟件開發(fā)中遇到的問題找不到解決的辦法,使問題積累起來,形成了尖銳的矛盾,因而導致了軟件危機。主要表現(xiàn)為:經(jīng)費預算經(jīng)常突破,完成時間一再拖延;開發(fā)的軟件不能滿足用戶要求;開發(fā)的軟件可維護性差;開發(fā)的軟件可靠性差。造成軟件危機的原因是由于軟件產(chǎn)品本身的特點以及開發(fā)軟件的方式、方法、技術(shù)和人員引起的。共產(chǎn)生原因主要有以下幾方面:軟件的規(guī)模越來越大,結(jié)構(gòu)越來越復雜;軟件開發(fā)管理困難而復雜;軟件開發(fā)費用不斷增加;軟件開發(fā)技術(shù)落后;生產(chǎn)方式落后;開發(fā)工具落后,生產(chǎn)率提高緩慢。23、軟件維護的特點是什么?主要體現(xiàn)在三個方面:非結(jié)構(gòu)化維護和結(jié)構(gòu)化維護。軟件的開發(fā)過程對軟件的維護有很大的影響。若不采用軟件工程的方法開發(fā)軟件,則軟件只有程序而無文檔,維護工作非常困難,這是一種非結(jié)構(gòu)化的維護。若采用軟件工程的方法開發(fā)軟件,則各階段都有相應的文檔,容易進行維護工作,這是一種結(jié)構(gòu)化的維護。維護的困難性。軟件維護的困難性是由于軟件需求分析和開發(fā)方法的缺陷。軟件生存周期中的開發(fā)階段沒有嚴格而有科學的管理和規(guī)劃,就會引起軟件運行時的維護困難。軟件維護的費用。軟件維護的費用在總費用中的比重是在不斷增加的,這是軟件維護有形的代價。另外還有無形的代價,即要占用更多的資源。軟件維護費用增加的主要原因是軟件維護的生產(chǎn)率非常低。 26、軟件概要設計階段的基本任務是什么?設計軟件系統(tǒng)結(jié)構(gòu)(簡稱軟件結(jié)構(gòu)),具體為:采用某種設計方法,將一個復雜的系統(tǒng)按功能劃分成模塊。確定每個模塊的功能。確定模塊之間的調(diào)用關(guān)系。確定模塊之間的接口,即模塊之間傳遞的信息。評價模塊結(jié)構(gòu)的質(zhì)量。數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設計,漢數(shù)據(jù)結(jié)構(gòu)的設計及數(shù)據(jù)庫的設計。編寫概要設計文檔。主要有:概要設計說明書;數(shù)據(jù)庫設計說明書;用戶手冊;修訂測試計劃。評審。5、快速原型模型有幾種?各有何特點?根據(jù)原型的不同作用,有三類原型模型:探索型原型。這種類型的原型模型是把原型用于開發(fā)的需求分析階段,目的是要弄清用戶的需求,確定所期望的特性,并探索各種方案的可行性。它主要針對開發(fā)目標模糊,用戶與開發(fā)著對項目都缺乏經(jīng)驗的情況,通過對原型的開發(fā)來明確用戶的需求。實驗型原型。這種原型主要用于設計階段,考核實現(xiàn)方案是否合適,能否實現(xiàn),對于一個大型系統(tǒng),若對設計方案心中沒有把握時,可通過這種原型來證實設計方案的正確性。演化型原型。這種原型主要用于及早向用戶提交一個原型系統(tǒng),該原型系統(tǒng)或者包含系統(tǒng)的框或者包含系統(tǒng)的主要功能。在得到用戶的認可后,將原型系統(tǒng)不斷擴充演變?yōu)樽罱K的軟件系統(tǒng),它將原型的思路擴展到軟件開發(fā)的全過程。 27、在劃分軟件生存周期階段時,應遵循的基本原則是什么?軟件生存周期的各個階段有不同的劃分。軟件規(guī)模、種類、開發(fā)方式、開發(fā)環(huán)境以及開發(fā)使用方法都影響軟件生存周期的劃分。在劃分軟件生存周期階段時,應遵循的一條基本原則是各階段的任務應盡可能相對獨立,同一階段各項目任務的性質(zhì)盡可能相同,從而降低每個階段任務的復雜程度,簡化不同階段之間的聯(lián)系,有利于軟件項目開發(fā)的組織管理。 28、請說明軟件文檔的作用?軟件開發(fā)項目生存期各階段都包含哪些文檔?軟件文檔的作用是:提高軟件開發(fā)過程的能見度;提高開發(fā)效率;作為開發(fā)人員階段工作成果和結(jié)束標志;記錄開發(fā)過程的有關(guān)信息便于使用與維護;提供軟件運行、維護和培訓有關(guān)資料;便于用戶了解軟件功能、性能。軟件開發(fā)項目生存期各階段應包括得文檔以及與各類人員的關(guān)系如下:可行性研究報告、項目開發(fā)計劃、軟件需求說明書、數(shù)據(jù)要求說明書、測試計劃、概要設計說明書、詳細設計說明書、用戶手冊、操作手冊、測試分析報告、開發(fā)進度月報、項目開發(fā)總結(jié)、程序維護手冊(維護修改建議)。 29、軟件開發(fā)成本估算方法有哪幾種?自頂向下估算方法。估算人員參照以前完成的項目所耗費的總成本(或總工作量),來推算將要開發(fā)的軟件的總成本(或總工作量),然后把它們按階段、步驟和工作單元進行分配,這樣方法稱為自頂向下的估算方法。自底向上估算方法。自底向上估算方法是將待開發(fā)的軟件細分,分別估算每一個子任務所需要的開發(fā)工作量,然后將它們加起來,得到軟件的總開發(fā)量。差別估算方法。差別估算是將開發(fā)項目與一個或多個已完成的類似項目進行比較,找出與某個相類似項目的若干不同之處,并估算每個不同之處對成本的影響,導出開發(fā)項目的總成本。專家估算法。依靠一個或多個專家對要求的項目做出估算。類推估算法。算式估算法。 30、簡述SA方法的優(yōu)缺點?結(jié)構(gòu)化分析方法是軟件需求分析中公認的、有成效的、技術(shù)成熟、使用廣泛的一種方法,它較適合于開發(fā)數(shù)據(jù)處理類型軟件的需求分析。該方法利用圖形等半形式化工具表達需求,簡明、易讀,也易于使用,為后一階段的設計、測試、評價提供了有利的條件。但SA方法也存在有不足之處:傳統(tǒng)的SA方法主要用于數(shù)據(jù)處理方面的問題,主要工具DFD體現(xiàn)了系統(tǒng)“做什么”的功能,但它僅是一個靜態(tài)模型,沒有反映處理的順序,即控制流程。因此,不適合描述實時控制系統(tǒng)。SA方法使用DFD在分析與描述“數(shù)據(jù)要求”方面是有限的,DFD應與數(shù)據(jù)庫技術(shù)中的實體聯(lián)系圖(ER圖)結(jié)合起來。DFD不是和描述人機界面系統(tǒng)的需求。SA方法則對這一部分用自然語言作補充,對這類系統(tǒng)可采取其它的分析方法。為了更精確地描述軟件需求,提高軟件系統(tǒng)的可靠性、安全性,也便于實現(xiàn)自動化,SA方法可與形式化方法結(jié)合起來。5、什么是軟件工程?它的目標和內(nèi)容是什么?軟件工程是一種用科學知識和技術(shù)原理來定義、開發(fā)、維護軟件的一門學科。軟件工程是一門工程性學科,目的是成功的建造一個大型軟件系統(tǒng),所謂成功是要達到以下幾個目標:付出較低的開發(fā)成本,達到要求的軟件功能;取得較好的軟件性能;開發(fā)的軟件易于移植;需要較低的維護費用;能按時完成開發(fā)任務,及時交付使用;開發(fā)的軟件可靠性高。軟件工程研究的主要內(nèi)容是軟件開發(fā)技術(shù)和軟件開發(fā)管理兩方面,在軟件開發(fā)技術(shù)中,主要研究軟件開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和環(huán)境。在軟件開發(fā)管理中,主要研究軟件管理學、軟件經(jīng)濟學、軟件心理學等。6、簡述容錯系統(tǒng)的設計過程?容錯系統(tǒng)的設計過程包括以下設計步驟:安設計任務要求進行常規(guī)設計,盡量保證設計的正確。對可能出現(xiàn)的錯誤分類,確定實現(xiàn)容錯的范圍。按照成本效益最優(yōu)原則,選用某種冗余手段來實現(xiàn)對各類錯誤的屏蔽。分析或驗證上述冗余結(jié)構(gòu)的容錯效果。如果效果沒有達到預期的程度,則應重新進行冗余結(jié)構(gòu)設計。如此重復,直到有一個滿意的結(jié)果為止。7、漸增模型有幾種?各有何特點?漸增模型是瀑布模型的變種,它有兩類:增量構(gòu)造模型。它在瀑布模型基礎上,對一些階段進行整體開發(fā),對另一些階段進行增量開發(fā)。也就是說在前面的開發(fā)階段按瀑布模型進行整體開發(fā),后面的開發(fā)階段按增量方式開發(fā)。演化提交模型。它在瀑布模型基礎上,所有階段都進行增量開發(fā),也就是說不僅是增量開發(fā),也是增量提交。8、試述系統(tǒng)開發(fā)的生命周期。系統(tǒng)開發(fā)是管理信息系統(tǒng)建設中最重要的一個階段,從項目開發(fā)開始到結(jié)束的整個過程,稱為系統(tǒng)開發(fā)的生命周期。系統(tǒng)開發(fā)的生命周期一般分為以下階段:系統(tǒng)分析。這一階段的主要任務是明確用戶的信息需求,提出新系統(tǒng)的邏輯方案。需要進行的工作有系統(tǒng)的初步調(diào)查,可行性研究,現(xiàn)行系統(tǒng)的詳細調(diào)查及新系統(tǒng)邏輯模型的提出等。系統(tǒng)設計。這一階段的主要任務是根據(jù)新系統(tǒng)的邏輯方案進行軟、硬件系統(tǒng)的設計,其中包括總體結(jié)構(gòu)設計、輸出設計、輸入設計、處理過程設計、數(shù)據(jù)存儲設計和計算機系統(tǒng)方案的選擇等。系統(tǒng)實施。這一階段將設計的系統(tǒng)付諸實施,主要工作有軟件的程序編制與軟件包的購置、計算機與通訊設備的購置、系統(tǒng)的安裝、調(diào)試與測試、新舊系統(tǒng)的轉(zhuǎn)換等。 34、增量模型的基本思想是什么?為了克服瀑布模型的局限性,使開發(fā)過程具有一定的靈活性和可修改性,于是產(chǎn)生了增量模型。它是在瀑布模型的基礎上加以修改而形成的。增量模型和瀑布模型之間的本質(zhì)區(qū)別是:瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個階段的工作之前,必須完成前一階段的所有細節(jié)。而增量模型屬于非整體開發(fā)模型,它推遲某些階段或所有階段中的細節(jié),從而較早的產(chǎn)生工作軟件。增量模型是在項目的開發(fā)過程中以一系列的增量方式開發(fā)系統(tǒng)。增量方式包括增量開發(fā)和增量提交。增量開發(fā)是指在項目開發(fā)周期內(nèi),以一定的時間間隔開發(fā)部分工作軟件;增量提交是指在項目開發(fā)周期內(nèi),以一定的時間間隔增量方式向用戶提交工作軟件及相應文檔。增量開發(fā)和增量提交可以同時使用,也可以單獨使用。5、對軟件開發(fā)環(huán)境的基本要求有哪些?軟件開發(fā)環(huán)境應是高度集成的一體化的系統(tǒng)。軟件開發(fā)環(huán)境應具有高度的通用性。軟件開發(fā)環(huán)境應易于定制、裁剪或擴充以符合用戶要求,即軟件開發(fā)環(huán)境應具有高度的適應性和靈活性。軟件開發(fā)環(huán)境不但可應用性要好,而且是易使用的、經(jīng)濟高效的系統(tǒng)。軟件開發(fā)環(huán)境應有輔助開發(fā)向半自動開發(fā)和自動開發(fā)逐步過渡的系統(tǒng)。6、項目開發(fā)計劃有哪些內(nèi)容?項目開發(fā)計劃是一個管理性的文檔,它的主要內(nèi)容如下:項目概述:說明項目的各項主要工作;說明軟件的功能、性能;為完成項目應具備的條件;用戶及合同承包者承擔的工作、完成期限及其它條件限制;應交付的程序名稱,所使用的語言及存儲形式;應交付的文檔。實施計劃:說明任務的劃分,各項任務的責任人;說明項目開發(fā)進度,按階段應完成的任務,用圖表說明每項任務的開始時間和完成時間;說明項目的預算,各階段的費用支出預算。人員組織及分工:說明開發(fā)該項目所需人員的類型、組成結(jié)構(gòu)、數(shù)量等。交付期限:說明項目最后完工交付的日期。7、軟件設計的基本原理包括哪些內(nèi)容?模塊化。是指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)化分成若干模塊的過程。每個模塊完成一個特定的子功能,所有的模塊按某種方法組裝起來,成為一個整體,完成整個系統(tǒng)所要求的功能。模塊化是軟件解決復雜問題所具備的手段。抽象。抽象是認識復雜現(xiàn)象過程中使用的思維工具即抽出事物本質(zhì)的共同的特性而暫不考慮它的細節(jié),不考慮其它因素。軟件工程過程中的每一部都可以看作是對軟件解決方法的抽象層次的一次細化。信息隱蔽。是指在設計和確定模塊時,使得一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其它模塊來說,是不能訪問的。通過信息隱蔽,可以定義和實施對模塊的過程細節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的存取限制。數(shù)據(jù)獨立性。指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其它模塊的聯(lián)系最少且接口簡單。8、白盒測試法有哪些覆蓋標準?試對他們的檢錯能力進行比較。白盒測試法的覆蓋標準有:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋。語句覆蓋發(fā)現(xiàn)錯誤能力最弱。判定覆蓋包含了語句覆蓋,但它可能會使一些條件的不到測試。條件覆蓋對每一條件進行單獨檢查,一般情況它的檢錯能力較判定覆蓋強,但有時達不到判定覆蓋的要求。判定/條件覆蓋包含了判定覆蓋和條件覆蓋的要求,但由于計算機系統(tǒng)軟件實現(xiàn)方式的限制,實際上不一定達到條件覆蓋的標準。條件組合覆蓋發(fā)現(xiàn)錯誤能力較強,凡滿足其標準的測試用例,也必須滿足前四種覆蓋標準。前五種覆蓋標準把注意力集中在單個判定或判定的各個條件上,可能會使程序某些路徑?jīng)]有執(zhí)行到。路徑覆蓋根據(jù)各判定表達式取值的組合,使程序沿著不同的路徑執(zhí)行,查錯能力強。但由于它是從各判定的整體組合出發(fā)設計測試用例的,可能使測試用例達不到條件組合覆蓋的要求。 1. 什么是軟件工程?目前有哪幾種主要的軟件工程方法?概括地說,軟件工程是指導計算機軟件開發(fā)和維護的一門工程學科.采用工程的概念、原理、技術(shù)、和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它,這就是軟件工程。但軟件工程一直以來都缺乏一個統(tǒng)一的定義,很多學者、組織機構(gòu)都分別給出了自己的定義。主要有傳統(tǒng)方法也稱為經(jīng)典軟件工程方法或生命周期方法或結(jié)構(gòu)化范型和面向?qū)ο蠓椒ā?、流程圖與數(shù)據(jù)流圖有什么主要區(qū)別?(1)數(shù)據(jù)流圖(date flow diagram , DFD),是SA方法中用于表示系統(tǒng)邏輯模型的一種工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,是從數(shù)據(jù)的角度來描述一個系統(tǒng)的;而流程圖則是從對數(shù)據(jù)加工的角度來描述系統(tǒng)的;(2)數(shù)據(jù)流圖中的箭頭是數(shù)據(jù)流,而流程圖中的箭頭則是控制流,它表達的是程序執(zhí)行的次序;(3)數(shù)據(jù)流圖適合于宏觀地分析一個組織業(yè)務概況,而程序流程圖只適合于描述系統(tǒng)中某個加工的執(zhí)行細節(jié)。(4)數(shù)據(jù)流程圖應該重點描述了數(shù)據(jù)加工的過程,主要是模塊內(nèi)部,數(shù)據(jù)流圖則是描述模塊之間的關(guān)系。3軟件需求分析的任務是什么?有哪些主要步驟?需求分析的基本任務是深入描述軟件的功能和性能、確定軟件設計的約束和軟件同其它系統(tǒng)元素的接口細節(jié)、定義軟件的其它有效性需求,總之,需求分析的任務就是借助于當前系統(tǒng)的邏輯模型導出目標系統(tǒng)的邏輯模型,解決目標系統(tǒng)的 “做什么” 的問題。 主要步驟:1.問題識別 (1) 功能需求:明確所開發(fā)的軟件必須具備什么樣的功能。 (2) 性能需求:明確待開發(fā)的軟件的技術(shù)性能指標。 (3) 環(huán)境需求:明確軟件運行時所需要的軟、硬件的要求。 (4) 用戶界面需求:明確人機交互方式、輸入輸出數(shù)據(jù)格式。 2. 分析與綜合,導出軟件的邏輯模型 分析人員對獲取的需求,進行一致性的分析檢查,在分析、綜合中逐步細化軟件功能,劃分成各個子功能。用圖文結(jié)合的形式,建立起新系統(tǒng)的邏輯模型。 3. 編寫文檔 (1) 編寫“需求規(guī)格說明書”,把雙方共同的理解與分析結(jié)果用規(guī)范的方式描述出來,作為今后各項工作的基礎。(2) 編寫初步用戶使用手冊,著重反映被開發(fā)軟件的用戶功能界面和用戶使用的具體要求,用戶手冊能強制分析人員從用戶使用的觀點考慮軟件。 (3) 編寫確認測試計劃,作為今后確認和驗收的依據(jù)。(4) 修改完善軟件開發(fā)計劃。在需求分析階段對待開發(fā)的系統(tǒng)有了更進一步的了解,所以能更準確地估計開發(fā)成本、進度及資源要求,因此對原計劃要進行適當修正。4簡述結(jié)構(gòu)化分析、設計的要點:結(jié)構(gòu)化分析方法適合于數(shù)據(jù)處理類型軟件的需求分析。其要點是自頂向下 地開發(fā)系統(tǒng),由整體到各組成部分,由表及里,由抽象到具體,逐步求精.(1) 模塊化(2)由頂向下,逐步求精.(3)上層模塊分解為下層模塊,有三種不同的結(jié)構(gòu)形式,即順序結(jié)構(gòu),選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu).5數(shù)據(jù)字典包含哪些主要內(nèi)容?數(shù)據(jù)字典通常包括數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲和處理過程五個部分.據(jù)字典內(nèi)容包括: 數(shù)據(jù)庫中所有模式對象的信息,如表、視圖、簇、及索引等。 分配多少空間,當前使用了多少空間等。 列的缺省值。 約束信息的完整性。 用戶的名字。 用戶及角色被授予的權(quán)限。 用戶訪問或使用的審計信息。 其它產(chǎn)生的數(shù)據(jù)庫信息。6軟件測試的目標是什么,有哪幾種主要有測試方法?軟件測試的目標: (1)測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程; (2)好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案; (3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。軟件測試的方法有動態(tài)測試、靜態(tài)測試和正確性證明3種。7白盒測試主要有哪些覆蓋?語句覆蓋、判定覆蓋、 條件覆蓋、判定/條件覆蓋、條件組合覆蓋、 點覆蓋、 邊覆蓋、路徑覆蓋8、選擇一種程序設計語言的主要有哪些依據(jù)?為了使程序容易測試和維護以減少生命周期的總成本,選用的高級語言應該有理想的模塊化機制,以及可讀性好的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);為了便于調(diào)試和提高軟件可靠性,語言特點應該使編譯程序能夠盡可能多地發(fā)現(xiàn)程序中的錯誤;為了降低軟件開發(fā)和維護的成本,選用的語言應該有良好的獨立

溫馨提示

  • 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

提交評論