




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章軟件工程概述
一、選擇題
1.下列活動不屬于軟件開發(fā)階段的是(D)o
A.需求分析B.概要設(shè)計C.詳細(xì)設(shè)計D.測試
2.以下對軟件開發(fā)基本原理的描述,不正確的是(C卜
A.用分階段的生命周期計劃嚴(yán)格管理B.采用現(xiàn)代程序設(shè)計技術(shù)
C.開發(fā)小組的人員應(yīng)該足夠多D.承認(rèn)不斷改進(jìn)軟件工程實踐的必要性
3.在以下軟件開發(fā)模型中,最常用的軟件需求難以完全明確的情況下的是(B卜
A.瀑布模型B.原型模型C.螺旋模型D.變換模型
4.對于噴泉模型的軟件開發(fā)過程,下列說法錯誤的是(Db
A.是一種面向?qū)ο蟮能浖_發(fā)過程B.具有迭代性
C.具有無間隙性D.個階段之間具有順序性和依賴性
5.下列說法正確的是(B卜
A.使用迭代方法開發(fā)的系統(tǒng)若不能收斂到需求目標(biāo)范圍內(nèi),則項目可能夭折
B.原型模型的建造需要額外花費(fèi)一些成本,因為系統(tǒng)的總成本提高了
C.第四代編程語言是一種面向?qū)ο蠖敲嫦蜻^程的語言
D.基于四代技術(shù)模型用于開發(fā)大型的應(yīng)用軟件
6.在軟件的開發(fā)階段,面向數(shù)據(jù)結(jié)構(gòu)開發(fā)的方法是(Ab
A.Jackson方法B.結(jié)構(gòu)化方法C.VDM方法D.面向?qū)ο蟮姆椒?/p>
7.為了實現(xiàn)軟件開發(fā)各階段的自動化,在軟件開發(fā)時可以采用的攻擊是(Db
A.軟件工具B.工具箱C.軟件開發(fā)環(huán)境D.計算機(jī)輔助軟件工程
二,填空題
1.軟件是計算機(jī)中與硬件相互依存的部分,它是包括程序、文檔及數(shù)據(jù)的完整集合。
2.軟件工程的原則包括抽象、模塊化、信息隱蔽、局部化、一致性、完備性和可驗證性o
3.軟件生命周期中,軟件定義階段的工作主要包括問題定義、可行性研究和需求分析o
4.瀑布模型又稱為軟件生命周期模型,它的主要特點是各階段之間具有順序性和依賴性。
5.螺旋模型包含了如下四個方面的活動,它們分別為制定計劃、風(fēng)險分析、實施工程和客戶
評價0
6.軟件的結(jié)構(gòu)化開發(fā)方法是由結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化程序設(shè)計構(gòu)成。它是一種面
向數(shù)據(jù)流的開發(fā)方法,其指導(dǎo)思想是自頂向下逐步求精其基本原則是功能的分解與抽象。
三、思考題
1.軟件產(chǎn)品的特點是什么?與硬件產(chǎn)品主要有哪些不同?
答:軟件產(chǎn)品是一種無形的邏輯產(chǎn)品,是人們腦力勞動的結(jié)晶。軟件產(chǎn)品只能以程序、數(shù)據(jù)和文檔
的形式出現(xiàn)。其存儲介質(zhì)是磁盤、磁帶或光盤。通過計算機(jī)的執(zhí)行才能體現(xiàn)出來。與硬件產(chǎn)品的制
造不同,軟件產(chǎn)品的成本主要花在研制上,而產(chǎn)品的制造實質(zhì)上是所開發(fā)產(chǎn)品的拷貝。軟件產(chǎn)品不
會像硬件產(chǎn)品一樣磨損,但仍然需要維護(hù),而且維護(hù)的成本很高。軟件產(chǎn)品的開發(fā)主要靠腦力勞動,
所以產(chǎn)品研制的成本很高,很難像硬件產(chǎn)品那樣實現(xiàn)工業(yè)化生產(chǎn)。
2.什么是軟件危機(jī)?軟件危機(jī)的表現(xiàn)是什么?
答:軟件危機(jī)是指在計算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。概括地說,軟件危
機(jī)包含下述兩方面的問題:如何開發(fā)軟件,以滿足對軟件的日益增長的需求;如何維護(hù)數(shù)量不斷膨
參考答案3
脹的軟件。具體來說,軟件危機(jī)主要有以下一些典型表現(xiàn)。對軟件開發(fā)成本和進(jìn)度的估計常常很不
準(zhǔn)確。用戶對所交付的軟件系統(tǒng)不滿意的現(xiàn)象時有發(fā)生。軟件產(chǎn)品的質(zhì)量往往靠不住。軟件常常是
不可維護(hù)的。軟件文檔資料通常不完整、不合格。軟件的價格昂貴,軟件成本在計算機(jī)系統(tǒng)總成本
中所占的比例逐年上升。軟件開發(fā)生產(chǎn)率提高的速度,既跟不上硬件的發(fā)展速度,也遠(yuǎn)遠(yuǎn)跟不上日
益增長的軟件需求。
3.簡述軟件工程目標(biāo)和面臨的主要問題。
答:軟件工程的基本目標(biāo)是在給定的成本、進(jìn)度等條件下,開發(fā)出滿足用戶需求的軟件產(chǎn)品。簡單
來說,也就是要成功地建造一個大型軟件系統(tǒng)。軟件項目的成功主要是要達(dá)到以下幾個目標(biāo):付出
較低的軟件開發(fā)成本;達(dá)到用戶所要求的軟件功能;取得較好的軟件性能;所開發(fā)的軟件易于移植、
可重用性好;需要較低的軟件維護(hù)費(fèi)用;能按時完成開發(fā)任務(wù),及時交付使用;軟件工程面臨的主
要問題是:軟件費(fèi)用、軟件可靠性、軟件維護(hù)、軟件生產(chǎn)率和軟件重用等。
4.軟件工程的基本原理有哪些?
答:軟件工程的基本原理主要有以下七條:用分階段的生命周期計劃嚴(yán)格管理;堅持進(jìn)行階段評審;
實行嚴(yán)格的產(chǎn)品控制;采用現(xiàn)代程序設(shè)計技術(shù);結(jié)果應(yīng)該能清楚地審查;開發(fā)小組的人員應(yīng)該少而
精;承認(rèn)不斷改進(jìn)軟件工程實踐的必要性。
5.軟件工程的原則有哪些?試加以說明。
答:軟件工程的原則主要有以下幾點:
(1)抽象:抽象是指抽取事物最基本的特征和行為,忽略與問題無關(guān)或關(guān)系甚少的其他細(xì)節(jié)。
(2)模塊化:模塊化就是把一個問題劃分成若干個較小的、較易解決的模塊,每個模塊完成一個子
功能,將這些模塊組裝成一個整體即可完成指定的功能。
(3)信息隱蔽:將模塊內(nèi)部的信息(數(shù)據(jù)和操作的細(xì)節(jié))封裝起來,其他模塊只能通過該模塊對外
界提供的接口來訪問該模塊。
(4)局部化:在一個物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計算機(jī)資源,即按照特定的目的把相互關(guān)聯(lián)
的事物放在一起。
(5)一致性:整個軟件系統(tǒng)(包括程序、數(shù)據(jù)和文檔)應(yīng)能滿足以下一些一致特性:一致的概念、
符號和術(shù)語;程序內(nèi)部接口保持一致;軟件與硬件環(huán)境的接口保持一致:系統(tǒng)規(guī)格說明與系統(tǒng)
行為保持一致;用于形式化規(guī)格說明的公理系統(tǒng)保持一致。
(6)完備性:軟件系統(tǒng)不丟失任何重要成分完全實現(xiàn)系統(tǒng)所需功能的程度。
(7)可驗證性:軟件開發(fā)過程中的各個階段的工作應(yīng)該具有可驗證性,以確保軟件系統(tǒng)的正確性。
軟件系統(tǒng)的自頂向下、逐層分解應(yīng)遵循使系統(tǒng)易檢查、易測試、易評審的原則。
6.什么是軟件生命周期?軟件生命周期應(yīng)劃分為哪些階段?每個階段應(yīng)解決什么問題?
答:(1)軟件生命周期是指軟件產(chǎn)品從形成概念開始,經(jīng)過定義、開發(fā)、使用和維護(hù),直到最后退
役的全過程。軟件生命周期理論從時間角度對軟件開發(fā)和維護(hù)的復(fù)雜問題進(jìn)行分解,把漫長的軟件
生命周期劃分為若干個相對獨(dú)立的階段,逐步完成每個階段的任務(wù)。
(2)一般來說,軟件生命周期包括軟件定義、軟件開發(fā)、軟件的使用與維護(hù)3個階段。
(3)?軟件定義的基本任務(wù)是弄清待開發(fā)的軟件系統(tǒng)要做什么即軟件開發(fā)工程必須完成的總目標(biāo)。
②軟件開發(fā)過程即軟件的設(shè)計和實現(xiàn),軟件開發(fā)過程就是軟件開發(fā)人員按照需求規(guī)格說明的要
求,把抽象的系統(tǒng)需求實現(xiàn)到具體的程序代碼和相關(guān)文檔等,并經(jīng)過嚴(yán)格測試產(chǎn)生最終軟件
參考答案5
產(chǎn)品的過程。
③軟件開發(fā)結(jié)束后,經(jīng)過用戶確認(rèn)驗收,便可安裝到特定的用戶環(huán)境中供用戶使用。軟件的使
用即軟件的運(yùn)行。軟件投入實際使用以后的主要任務(wù)是確保軟件持久滿足用戶的要求。軟件
的維護(hù)就是為了延長軟件的壽命而對軟件產(chǎn)品進(jìn)行修改或?qū)浖枨笞兓龀鲰憫?yīng)的過程。
7.快速原型模型有幾種?分別有什么特點?
答:根據(jù)作用和目的的不同,原型可以分為探索型、實驗型和進(jìn)化型。
(1)探索型主要針對開發(fā)目標(biāo)模糊,用戶和開發(fā)者對項目都缺乏經(jīng)驗的情況,目的是要弄清對目標(biāo)
系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性。
(2)實驗型主要用于大規(guī)模開發(fā)和實現(xiàn)之前,考核方案是否合適,規(guī)格說明是否可靠。
(3)進(jìn)化型將原型方法的思想擴(kuò)展到軟件開發(fā)的全過程,目的是將系統(tǒng)建造得易于變化,在改進(jìn)原
型的過程中滿足用戶需求的變動,逐步將原型進(jìn)化成為最終系統(tǒng)。
第二章系統(tǒng)分析
1.選擇題
1.下列(ABCD)可以或需要在系統(tǒng)規(guī)格說明進(jìn)行說明。
A.對于系統(tǒng)的結(jié)構(gòu)描述B.項目開發(fā)進(jìn)展C.系統(tǒng)模型D.特殊的性能
2.對系統(tǒng)的描述可以從以下(ABCD)角度進(jìn)行。
A.系統(tǒng)模型說明B.設(shè)計約束條件C.結(jié)構(gòu)流程圖D.性能問題
3.下列各項中,(ABCD)是屬于系統(tǒng)的結(jié)構(gòu)模板的一部分的。
A.維護(hù)和測試B.輸入輸出C,處理和控制D.用戶界面處理
4.技術(shù)憑什么主要考慮的是(ABCDb
A.系統(tǒng)的復(fù)雜性與開發(fā)風(fēng)險,成本,進(jìn)度的相一致性B.功能分配
C.接口定義D.性能,可靠性及可維護(hù)性問題
5.在可行性研究報告中,最主要的是(ACDb
A.相關(guān)的法律問題B.專門的術(shù)語C.成本/效益分析D.技術(shù)風(fēng)險評價
6.研究開發(fā)所需要的成本和資源是屬于可行性研究中的(B)o
A.技術(shù)可行性B.經(jīng)濟(jì)可行性C.法律可行性D.社會可行性
7.可行性分析研究的目的是(C)o
A.爭取項目B.開發(fā)項目C.項目是否值得開發(fā)D.規(guī)劃項目
二、填空題
1.組成計算機(jī)系統(tǒng)六個系統(tǒng)元素時速也、硬件、,、數(shù)據(jù)庫、文檔、過程。
2.問題定義報告一般應(yīng)具備工程項目名稱、使用方、開發(fā)方、對問題的概括定義、項目
的目標(biāo)、項目的規(guī)模內(nèi)容。
3.可行性研究的內(nèi)容是:技術(shù)可行性、經(jīng)濟(jì)可行性、運(yùn)行可行性、法律可行性。
4.可行性研究所需的成本一般占工程成本的5%-10%。
5.常用的系統(tǒng)分析方法有功能分解法、數(shù)據(jù)流法、信息造型法、面向?qū)ο蠓ā?/p>
三、思考題
2.可行性研究報告的主要內(nèi)容有哪些?
答:(1)方案選擇(2)選擇的系統(tǒng)配置(3)選擇方案的標(biāo)準(zhǔn)(4)各子系統(tǒng)的可行性(5)成本/
效益分析(6)技術(shù)風(fēng)險評價(7)有關(guān)法律問題(8)結(jié)論意見。
參考答案7
3.簡述成本/效益分析。
答:成本/效益分析是從經(jīng)濟(jì)角度來評價開發(fā)一個項目是否可行,是屬于經(jīng)濟(jì)可行性研究方面的。我
們對項目進(jìn)行成本效益分析,根據(jù)分析的成本與效益,兩者進(jìn)行權(quán)衡比較。效益有經(jīng)濟(jì)效益和社會
效益,也稱有形效益和無形效益。成本有開發(fā)成本和開發(fā)成功后的運(yùn)行成本,對后者的考慮需要考
慮系統(tǒng)預(yù)期的使用壽命。進(jìn)行成本估算一般有這些方法:經(jīng)驗估算法、因素估算法、WBS基礎(chǔ)上的
全面詳細(xì)估算。
第3章需求分析
一、選擇題
1.需求管理它涉及到四個方面,下列(A)不屬于需求管理的部分。
A.代碼重構(gòu)B.版本控制C.需求跟蹤D.變更控制
2.需求規(guī)格說明中,最核心的部分是(B)□
A.系統(tǒng)特性B.版本控制C.需求跟蹤D.變更控制
3.以下(ABCD)可能導(dǎo)致需求分析的困難性的增加。
A.問題的復(fù)雜性B.需求易變性C.所分析的產(chǎn)品是全新的D.變流障礙
4.以下屬于需求開發(fā)的四個方面之一的是(ABCD)o
A.問題獲取B.綜合分析C.需求描述D.需求驗證
5.不屬于軟件需求的是(Bb
A.功能需求B.項目分工C.預(yù)先估計以后系統(tǒng)可能達(dá)到的目標(biāo)D.軟件成本消耗與開發(fā)進(jìn)度需求
6.應(yīng)當(dāng)在(C)階段規(guī)定性能要求:效率。
A.可行性分析B.概要分析C.需求分析D.詳細(xì)設(shè)計
7.結(jié)構(gòu)化語言是介于自然語言和形式語言之間的一種(Ab
A.板形式語言B.半自然語言C.高級語言D.過程性語言
8.軟件需求分析階段除了軟件需求分析規(guī)格說明書,另一個可能產(chǎn)出的文檔是(D)o
A.軟件維護(hù)說明是B,可行性分析報告C.概要設(shè)計說明書D.初步的用戶手冊
9.結(jié)構(gòu)化分析(SA),是面向(B)進(jìn)行需求分析的方法。
A.對象B,數(shù)據(jù)流C.過程D.用戶
二、填空題
1.需求分析階段可分成問題識別、需求分析、制定規(guī)格說明書、評審。
2.實現(xiàn)目標(biāo)系統(tǒng)邏輯模型的三個步驟是:獲得當(dāng)前系統(tǒng)的物理模型、抽象出當(dāng)前系統(tǒng)的邏輯模
雪、建立目標(biāo)系統(tǒng)的邏輯模型。
3.需求建模的三種主要模型是:數(shù)據(jù)模型、功能模型、行為模型。
4.數(shù)據(jù)字典是的四種條目類型數(shù)據(jù)流、數(shù)據(jù)文件、數(shù)據(jù)項、加工。
5.需求分析中開發(fā)人員要從用戶那里了解軟件是做什么的。
6.需求分析階段的任務(wù)是軟件系統(tǒng)的功能。
三、思考題
1.數(shù)據(jù)流圖有哪幾種基本符合?
答:數(shù)據(jù)流圖有四種基本符號,分別為:A數(shù)據(jù)輸入的源點和數(shù)據(jù)輸出的匯點,B加工,C數(shù)據(jù)流,
D數(shù)據(jù)存儲文件。四種符號分別有相應(yīng)的畫法。
參考答案9
2.畫數(shù)據(jù)流圖原則是什么?
答:畫數(shù)據(jù)流圖的原則其實就是它的步驟,遵循這樣的一個原則有助于數(shù)據(jù)流圖的繪畫。
首先畫系統(tǒng)的輸入/輸出。將所要畫的系統(tǒng)看作一個整體,確定這個整體與外界的聯(lián)系。分析哪些是
從外界獲取,哪些是提供給外界的,就分別是輸入和輸出。
其次,畫系統(tǒng)的內(nèi)部。這是畫數(shù)據(jù)流圖的主要部分。一般遵循自頂向下,由外向內(nèi)的原則。
3.數(shù)據(jù)流圖在軟件分析中的作用是什么?
答:數(shù)據(jù)流圖是結(jié)構(gòu)化分析的基本工具,在需求分析中用它來建立現(xiàn)存/目標(biāo)系統(tǒng)的數(shù)據(jù)處理模型。
它可以描述系統(tǒng)的分解,即系統(tǒng)由哪些部分組成,各部分的聯(lián)系,以及數(shù)據(jù)流的轉(zhuǎn)換加工過程等,
是一種很直觀的方式。而用于軟件設(shè)計時,這些處理將是生成最終程序功能模塊的基礎(chǔ)。
4.數(shù)據(jù)字典的作用?
答:數(shù)據(jù)字典是一種描述工具,它包括對詞條的描述、數(shù)據(jù)結(jié)構(gòu)的描述和加工邏輯說明。數(shù)據(jù)模型
在描述細(xì)節(jié)、特殊情況等方面有所不足,比如數(shù)據(jù)流圖描述了系統(tǒng)的組成和分解,但并沒有說明系
統(tǒng)各個成分的含義,所以必須為數(shù)據(jù)流圖中出現(xiàn)的每一個成分給出定義,因此有必要配合文字的數(shù)
據(jù)說明。數(shù)據(jù)字典就是這種數(shù)據(jù)說明,兩者結(jié)合才完整地描述了一個系統(tǒng)。
5.簡述什么是狀態(tài)圖及其元素。
答:狀態(tài)圖(狀態(tài)轉(zhuǎn)換圖)用來描述行為模型,行為模型也稱狀態(tài)機(jī)模型,通過描述系統(tǒng)的狀態(tài)以
及引起狀態(tài)轉(zhuǎn)換的事件來表示系統(tǒng)的行為。
狀態(tài)圖有事件、狀態(tài)、行為等基本元素。事件是引起狀態(tài)轉(zhuǎn)換的控制信息,它發(fā)生在某個特定的時
刻,引起系統(tǒng)從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)。
6.需求分析的原則和任務(wù)是什么?
答:需求分析的原則是:必須能夠表達(dá)和理解問題的數(shù)據(jù)域和功能域;按自頂向下、逐層分解的方
式對問題進(jìn)行分解和不斷細(xì)化;要給出系統(tǒng)的邏輯視圖和物理視圖。
需求分析的任務(wù)是發(fā)現(xiàn)、求精、建模和規(guī)約目標(biāo)系統(tǒng)的過程。包括由系統(tǒng)工程師建立并在軟件項目
計劃中細(xì)化的軟件范圍、創(chuàng)建所需數(shù)據(jù)信息和控制流、操作行為的模型,以及分析可選擇的解決方
案、并將它們分配到各軟件元素中去。
7.需求分析通常采用哪些分析技術(shù)?
答:軟件需求分析中,常用的分析方法有面向數(shù)據(jù)流圖的結(jié)構(gòu)化分析方法(SA)面向數(shù)據(jù)結(jié)構(gòu)的
Jackson方法(JSD)面向?qū)ο蟮姆治龇椒ǎ?0A)用于建立動態(tài)模型的狀態(tài)遷移圖或Petri網(wǎng)等。
而且通常會建立模型以方便問題的表達(dá)和理解,有行為模型、功能模型、數(shù)據(jù)模型。在這三種模型
中分別采用的表達(dá)工具有E-R圖、數(shù)據(jù)流圖、狀態(tài)圖,同時還有數(shù)據(jù)字典。
8.什么是結(jié)構(gòu)化分析?他的結(jié)構(gòu)化體現(xiàn)在哪里?
答:結(jié)構(gòu)化分析方法利用抽象模型的概念,對需求的功能自頂向下逐層分解,使復(fù)雜的系統(tǒng)分解成
足夠簡單,能夠清楚地被理解和表達(dá)的若干子系統(tǒng),便于軟件結(jié)構(gòu)設(shè)計為止。結(jié)構(gòu)化對問題空間的
理解采用分層的方法,逐層分解,由抽象到具體。
參考答案11
9.需求分析的過程主要有那幾個步驟?
答:需求分析是一個包括創(chuàng)建和維持系統(tǒng)需求文檔所必需的一切活動的過程,主要步驟包括需求導(dǎo)
出和分析、需求描述和文檔編寫、需求有效性確認(rèn)這幾個通用的高層需求過程活動。
需求導(dǎo)出和分析是軟件開發(fā)人員和客戶,以及系統(tǒng)最終用戶一起調(diào)查系統(tǒng)應(yīng)用領(lǐng)域的活動,該活動
是一個非常困難的過程。需求描述是對系統(tǒng)開發(fā)需求的正式表達(dá),以需求規(guī)格說明文檔的形式給出。
需求確認(rèn)是檢驗需求能否反映客戶的意愿。它和分析有很多共性,都要發(fā)現(xiàn)需求中的問題。
第4章總體設(shè)計
一、選擇題
1.軟件設(shè)計中劃分模塊追求的是(B卜
A.搞內(nèi)聚高耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.低內(nèi)聚低耦合
2.模塊的內(nèi)聚性越高,則說明模塊內(nèi)部各元素之間的聯(lián)系越(B卜
A.松散B.緊密C.不變D.公共
3.7中耦合中,(C)耦合的耦合性最低。
A.數(shù)據(jù)B.非直接C.內(nèi)容D.功能
4.如果一個模塊內(nèi)各元素都使用同一輸入數(shù)據(jù)或產(chǎn)生同一輸出數(shù)據(jù),則稱這種內(nèi)聚為(B)。
A.過程B.通信C.邏輯D.功能
5.模塊結(jié)構(gòu)圖中,采用(A)來表示模塊。
二、填空題
1,衡量模塊獨(dú)立程度標(biāo)準(zhǔn)的有模塊間的耦合性和模塊的內(nèi)聚性。
2.速食史是指模塊之間相互聯(lián)系的緊密程度,內(nèi)卷性是指模塊內(nèi)部各元素之間聯(lián)系的緊密程度。
3.如果一個模塊內(nèi)部各元素集中于同一個整體,共同完成某一單一的功能,則稱該內(nèi)聚為功能內(nèi)
聚。
4.如果一個模塊內(nèi)各功能在同一時間段內(nèi)執(zhí)行,則稱該內(nèi)聚為時間內(nèi)聚。
5.模塊調(diào)用通常有判斷調(diào)用和循環(huán)調(diào)用兩種形式。
6.DFD的信息流可以分為兩種類型,一種是變換流,另一種是事務(wù)流。
三、思考題
1.什么是模塊獨(dú)立性?
答:模塊獨(dú)立性是指每個模塊只完成某一特定的子功能,而與其他模塊之間的聯(lián)系簡單。換句話說,
如果一個模塊只具有某單一的功能,而與其他模塊沒過多的聯(lián)系,那么,我們就說該模塊具有較高
的模塊獨(dú)立性。
4.簡要訴述變換流行的數(shù)據(jù)流圖三個組成部分。
答:變換流型的數(shù)據(jù)流圖一般由輸入、變換(主加工)和輸入三部分組成。在輸入部分中,系統(tǒng)輸
入端的數(shù)據(jù)流稱為物理輸入,物理輸入通過預(yù)處理、編輯和格式轉(zhuǎn)換等輔助性加工后,轉(zhuǎn)換成邏輯
輸入。接著數(shù)據(jù)流通過邏輯輸入進(jìn)入主加工,從主加工流出的即為邏輯輸出。邏輯輸出通過預(yù)處理、
編輯和格式轉(zhuǎn)換等輔助性加工后,轉(zhuǎn)換成物理輸出。這樣,對數(shù)據(jù)流圖進(jìn)行劃分,從物理輸入到邏
輯輸入部分構(gòu)成了系統(tǒng)的輸入流,從邏輯輸出到物理輸出部分構(gòu)成了系統(tǒng)的輸出流,而位于它們之
間的部分便是變換中心。
參考答案13
第5章詳細(xì)設(shè)計
一、選擇題
1.軟件詳細(xì)設(shè)計的主要任務(wù)是確定每個模塊的(C)0
A.功能B.外部接口C.算法和使用的數(shù)據(jù)結(jié)構(gòu)D,編程實現(xiàn)
2.下面關(guān)于PDL語言不正確的說法是(Cb
A.PDL的外層語法必須符合一般程序設(shè)計語言常用的語法規(guī)則
B.PDL是一種偽碼
C.PDL是只加工的具體實現(xiàn)
D.PDL是描述處理過程怎么做
3.PAD圖在(C)可以大大提高開發(fā)效率。
A.系統(tǒng)分析B.自動分析數(shù)據(jù)C.軟件的自動化生成D.測試軟件
4.下列鞏固在軟件詳細(xì)設(shè)計過程中不采用的是(C)0
A.PDLB.N-S圖C.DFD圖D.PAD圖
5.Jackson方法是軟件設(shè)計中用到的一種常用的設(shè)計方法,使用Jackson方法可以實現(xiàn)(Db
A,從模塊結(jié)構(gòu)導(dǎo)出數(shù)據(jù)結(jié)構(gòu)B.從模塊結(jié)構(gòu)導(dǎo)出程序結(jié)構(gòu)
C.從數(shù)據(jù)流圖導(dǎo)出初始的結(jié)構(gòu)圖D.從數(shù)據(jù)結(jié)構(gòu)導(dǎo)出程序結(jié)構(gòu)
二、填空題
1.程序流程圖也稱程序框圖,包括三個基本的成分:加工處理步驟、邏輯條件和控制流向。
2.為了實現(xiàn)使用程序流程圖描述結(jié)構(gòu)化程序,必須限制程序流程圖只使用以下五種基本控制結(jié)構(gòu):
順序型、選擇型、先判定(while)型循環(huán)、后判定(until)型循環(huán)和多情況(case)型選擇。
3.PAD圖是一種描述程序邏輯結(jié)構(gòu)的圖形工具,這種圖形由程序流程圖演化而來,它把程序的結(jié)
構(gòu)表示成二維樹型結(jié)構(gòu)。
4.過程設(shè)計語言屬于一種偽碼,是一種描述模塊算法設(shè)計及處理細(xì)節(jié)的語言。
5.Jackson方法簡稱JSD,是一種典型的面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法。
三、思考題
1.簡要敘述在程序的結(jié)構(gòu)化設(shè)計中必須遵守哪些原則?
答:在程序的結(jié)構(gòu)化設(shè)計中,必須遵守以下幾點原則:
(1)程序語言中盡量少用goto語句,這樣才使得程序結(jié)構(gòu)更加清晰,便于閱讀和查錯。
(2)采用單入口和單出口的控制結(jié)構(gòu),使得程序的動態(tài)執(zhí)行能與其靜態(tài)結(jié)構(gòu)相一致,從而有利于對
程序的理解。而要實現(xiàn)單入口和單出口的控制結(jié)構(gòu),則須要采用順序、選擇和循環(huán)這三種基本
控制結(jié)構(gòu),使得程序結(jié)構(gòu)簡單化。
(3)利于自頂向下逐步求精的方法進(jìn)行程序設(shè)計。
2.簡要敘述N-S圖具有的特點。
答:N-S圖具有如下特點:
(1)圖形的條理清晰,易于理解。
(2)便于確定全局?jǐn)?shù)據(jù)和局部數(shù)據(jù)的作用域。
(3)有效地限制了隨意地使用控制轉(zhuǎn)移,符合了結(jié)構(gòu)化程序設(shè)計的原則。
(4)易于表現(xiàn)模塊的層次結(jié)構(gòu)及其嵌套關(guān)系。
參考答案15
3.簡述PAD圖具有的特點。
答:PAD圖具有如下特點:
(1)對于程序結(jié)構(gòu)的描述更加清晰、直觀。
(2)支持自頂向下、逐步求精的設(shè)計方法。
(3)描述出來的圖形層次結(jié)構(gòu)分明,其中每條縱線代表一層,給人一種很直觀的層次感,增強(qiáng)了其
可讀性。
(4)可采用相關(guān)軟件工具將PAD圖轉(zhuǎn)化為高級語言程序,通過這種自動化的方式,可大大提高了
軟件的生產(chǎn)率。
4.Jackson方法的核心思想是什么?
答:Jackson方法的核心思想是:對輸入輸出的數(shù)據(jù)結(jié)構(gòu)進(jìn)行分析,并按照一定的規(guī)則來導(dǎo)出程序的
結(jié)構(gòu)。
5.將下面的偽代碼用PAD圖表示。
N=0;
DOWHILEN<20
IFS(N)<=S(N+l)
THENMIN=S(N);
ELSEMIN=S(N+l);
ENDIF;
N=N+1;
ENDDO;
答:對應(yīng)的PAD圖如圖A-10所示。
圖A-10PAD圖
第6章面向?qū)ο蠹夹g(shù)
一、選擇題
1.面向?qū)ο蠹夹g(shù)使數(shù)據(jù)和操作(C)于對象的統(tǒng)一體中,很好的實現(xiàn)了信息的(B卜
A.抽象B.隱藏C.封裝D.結(jié)合
2.使用UML進(jìn)行描述時,類與類的關(guān)系一般有多種關(guān)系,其中不包括以下的(Ab
A.聚集B.依賴C.泛化D.關(guān)聯(lián)
3.在UML用例圖中,用例之間也可以存在不同的關(guān)系,其中不包括以下的(D卜
A.泛化B.包含C.擴(kuò)展D.關(guān)聯(lián)
4.對象模型通常用(C)來描述。
A.數(shù)據(jù)流圖B.狀態(tài)圖C.對象圖D.結(jié)構(gòu)圖
5.動態(tài)模型一般通過(B)來描述。
A.數(shù)據(jù)流圖B.狀態(tài)圖C.對象圖D..結(jié)構(gòu)圖
參考答案17
6.以下說法錯誤的是(Cb
A.對象是世界客觀存在的實體,任何事物都是對象。對象的概念有很強(qiáng)的表達(dá)能力和描述功能。
B.面向?qū)ο蠹夹g(shù)的多態(tài)性和繼承性使得開發(fā)出來的軟件具有更加廣泛的重用性和可擴(kuò)充性。
C.面向?qū)ο蠖鄳B(tài)性允許不同的類對同一消息做出響應(yīng),它防止了程序由于相互依賴二帶來的變動的
影響。
D.封裝是將對象的狀態(tài)信息和行為捆綁為一個邏輯單元的機(jī)制,它屏蔽了對象的內(nèi)部實現(xiàn)細(xì)節(jié),是
一種信息隱藏技術(shù)。
7.面向?qū)ο蟮姆指顪y試方法與傳統(tǒng)測試時采用的等價類劃分方法類似,以下選項中,不屬于分割測
試的是(D卜
A.基本狀態(tài)的分割測試B.基于屬性的分割測試
C.基于功能的分割測試D.基于操作的分割測試
二、填空題
1.一個對象通常由對象名、屬性和操作三部分組成。對象名是標(biāo)示該對象的名稱。屬性包含
對象的數(shù)據(jù),表明一個對象的狀態(tài)。操作通常稱為方法,它作用于對象的數(shù)據(jù),表示的是對
象的行為。
2.類是對象的抽象,對象是類的實例化。
3.對象之間進(jìn)行通信的構(gòu)造叫做遁皂_。
4.面向?qū)ο蠓椒ㄖ?,子類共享父類的?shù)據(jù)和方法的機(jī)制稱為里至。
5.面向?qū)ο蟮膯栴}解析模型主要從3個側(cè)面進(jìn)行描述,分別對應(yīng)三種模型,即對象模型、動態(tài)
模型和功能模型。
6.在進(jìn)行面向?qū)ο蠓治龊驮O(shè)計時,復(fù)雜問題的對象模型可以抽象成下述五個層次,它們分別是
主題層、結(jié)構(gòu)層、服務(wù)層和屬性層。
7.面向?qū)ο笤O(shè)計具有其自身的一些特點,通常遵循以下一些準(zhǔn)則,如模塊化、信息隱蔽和
強(qiáng)內(nèi)聚性0
三、思考題
1.面向?qū)ο蟮幕靖拍畎▽ο?、類、繼承和消息通信等概念,試簡述面向?qū)ο蠡靖拍畹膸讉€
要點0
答:面向?qū)ο蟮幕靖拍钪饕韵聨讉€要點:
(1)面向?qū)ο蠓椒ㄕJ(rèn)為客觀世界是由各種對象組成的,任何事物都是對象,復(fù)雜的對象可以由比較
簡單的對象以某種方式組合而成。
(2)面向?qū)ο蠓椒ò阉袑ο蠖紕澐殖筛鞣N類(Class),每個類都定義了一組數(shù)據(jù)和一組方法。數(shù)
據(jù)表示的是對象的靜態(tài)屬性,表明對象的狀態(tài)信息。方法表示對象所能執(zhí)行的操作,也就是類所能
提供的服務(wù)。
(3)面向?qū)ο蠓椒ò凑兆宇?派生類)與父類(基類)的關(guān)系,把若干個類組成一個層次結(jié)構(gòu)的系
統(tǒng)。
(4)面向?qū)ο蠓椒ㄕJ(rèn)為對象彼此之間僅能通過傳遞消息互相聯(lián)系。對象之間的消息傳遞機(jī)制很好地
保證了對象之間的獨(dú)立性,使開發(fā)出來的軟件具有更好的可重用性和可維護(hù)性。
3.什么是主題?為什么要使用主題?
答:主題是在對象和結(jié)構(gòu)的基礎(chǔ)上更高一層的抽象,是為了提供面向?qū)ο蠓治鼋Y(jié)果的可見性。在面
向?qū)ο蠓治鲋校黝}是一種指導(dǎo)讀者(如管理者、負(fù)責(zé)人等)和用戶研究大型復(fù)雜模型的機(jī)制。主
參考答案19
題有助于分解大型項目以便建立工作小組。主題所提供的機(jī)制可控制一個用戶必須同時考慮的模型
數(shù)目,給出面向?qū)ο蠓治瞿P偷目傮w概貌,從某種意義上說相當(dāng)于一種視圖或面向過程里的模塊和
子系統(tǒng)。它的一個重要的作用就是為了對總體分析之后的結(jié)果便于理解和整體把握。
真實系統(tǒng)中有著大量的類和結(jié)構(gòu)。包含幾十個類的系統(tǒng)是中等規(guī)模的,大型的系統(tǒng)包含上百個甚至
更多的類。這時應(yīng)該提供好的通信條件以避免分析人員和用戶的信息過量。首先通過控制分析人員
能見到的層次數(shù)目來控制可視性。其次可以對讀者進(jìn)行引導(dǎo),可以從一個相當(dāng)高的層次來表示總體
模型。開發(fā)小型系統(tǒng)時,由于開發(fā)模型比較簡單,所以無需引入主題。在開發(fā)中型以及大型系統(tǒng)時,
對象往往較多,其程序復(fù)雜度大大增加,所以需引入了主題的概念。
第7章程序編碼
一、選擇題
1.從軟件工程的觀點來看,程序設(shè)計語言的工程特征不包括(D卜
A.可移植性B.可重用性C,可維護(hù)性D.安全性
2.在程序編碼中,首要考慮的是(C卜
A.程序效率B.程序的一致性C.程序的可讀性D.程序的安全性
3.編程語言的選擇與(A)無關(guān)。
A.程序設(shè)計風(fēng)格B.軟件開發(fā)方法C.軟件的運(yùn)行環(huán)境D.軟件開發(fā)人員的知識
4.應(yīng)該為每個源程序模塊編寫注釋,序言性注釋寫明了(B卜
A.模塊的用途B.模塊功能、接口和開發(fā)簡史C.模塊的調(diào)用關(guān)系D.模塊的開發(fā)者
5.與編碼風(fēng)格有關(guān)的因素不包括(D)o
A.源程序文檔化B,表達(dá)式和語句構(gòu)造C.輸入輸出D.程序效率
6.在人工智能領(lǐng)域比較常用而且具有非常強(qiáng)的表處理功能的函數(shù)式程序設(shè)計語言是(Cb
A.CobolB.PrologC.LISPD.APL
7.以謂詞邏輯為基礎(chǔ),核心是事實、規(guī)則和推理機(jī)制的邏輯型程序設(shè)計語言是(Bb
A.CobolB.PrologC.LISPD.APL
8.程序設(shè)計語言一般可分為低級語言和高級語言,與高級語言相比,用低級語言開發(fā)的程序(B卜
A.運(yùn)行效率低,開發(fā)效率低B.運(yùn)行效率高,開發(fā)效率低
C.運(yùn)行效率低,開發(fā)效率高D.運(yùn)行效率高,開發(fā)效率高
9.下列敘述正確的是(A卜
A.為了提高程序的運(yùn)行速度,優(yōu)勢可以采用以空間換時間的辦法
B.在軟件開發(fā)過程中,程序編碼的代價最高
C.良好的程序設(shè)計風(fēng)格應(yīng)該以提高程序效率為原則
D.用高級語言編寫的程序比用低級語言編寫的程序運(yùn)行速度要快
二、填空題
1.程序設(shè)計語言用于書寫計算機(jī)程序,它包含語法、語義和語用三方面。
2.程序控制一般包括順序、選擇、循環(huán)三種基本結(jié)構(gòu)。
3.程序效率是一個性能指標(biāo),其目標(biāo)值應(yīng)該在需求分析階段給出。
4.語句構(gòu)造的原則是簡單直接,不能為了盲目追求效率而使代碼復(fù)雜化。程序效率可以分為
全局效率和局部效率,又可以分為時間效率和空間效率。程序效率與程序的執(zhí)行速度和
程序占用的存儲空間有關(guān)。
參考答案21
5.追求程序效率應(yīng)該建立在不損害程序可讀性或可靠性的基礎(chǔ)上。提高程序效率的根本途徑
在于選擇良好的設(shè)計方法、數(shù)據(jù)結(jié)構(gòu)與算法,而不是靠編程時對程序語句做調(diào)整。
6.編碼安全是程序設(shè)計過程不能忽視的一個問題。編碼安全主要涉及軟件容錯技術(shù),在程序編碼
過程中,主要通過冗余程序設(shè)計和防錯程序設(shè)計來提高程序設(shè)計的質(zhì)量。
7.結(jié)構(gòu)化程序設(shè)計方法的蛀牙原則可以概括為自頂向下,逐步求精,模塊化和限制GOTO
語句使用。
三、思考題
2.程序設(shè)計風(fēng)格包括哪些內(nèi)容,應(yīng)該注意哪些方法?
答:程序設(shè)計風(fēng)格是指一個人編程的特點、習(xí)慣、邏輯思路等。培養(yǎng)良好的程序設(shè)計風(fēng)格應(yīng)該注意
源程序的文檔化、數(shù)據(jù)說明、語句構(gòu)造、輸入輸出等方面。
4.語句構(gòu)造應(yīng)該注意哪些方面?遵循哪些原則?
答:語句構(gòu)造的原則是:簡單直接,不能為了追求效率而使代碼復(fù)雜化。為了使閱讀和理解方便,
不要一行多個語句。不同層次的語句采用縮進(jìn)形式,使程序的邏輯結(jié)構(gòu)和功能特征更加清晰。要避
免復(fù)雜的判定條件,避免多重點循環(huán)嵌套。表達(dá)式中使用括號以提高運(yùn)算次序的清晰度等式。
第8章軟件測試
一、選擇題
1.軟件測試的目的是(C卜
A.驗證程序正確性B.證明程序沒有錯誤
C.發(fā)現(xiàn)程序中的錯誤D.提高軟件質(zhì)量
2.以下對軟件測試基本原則的描述,不正確的是(Db
A.應(yīng)該由第三方進(jìn)行測試工作B.窮舉測試是不可能的
C.充分主要到錯誤的群集現(xiàn)象D.測試的規(guī)模應(yīng)該從大到小
3.在軟件開發(fā)模型中,軟件測試的對象是(Ab
A.軟件工程各階段所得到的一切文檔和程序
B.軟件工程各階段所得到的文檔
C.軟件的源程序
D.軟件的規(guī)格說明
4.白盒測試是一種常用的動態(tài)測試方法,可以參考以下一些基本的測試原則,其中不包括(Cb
A.保證程序模塊中每個獨(dú)立的路徑至少測試一次
B.保證所有判斷的每一個分支至少測試一次
C.保證程序中每一條語句都至少測試一次
D.保證每一個循環(huán)都在邊界條件和一般條件下至少測試一次
5.用黑盒技術(shù)設(shè)計測試用例的方法之一為(A)o
A.等價類劃分B.邏輯覆蓋C.循環(huán)覆蓋D.基本路經(jīng)測試
6.下列說法正確的是(Db
A.經(jīng)過測試的軟件不再存在錯誤
B.測試只能發(fā)現(xiàn)源程序代碼中的錯誤
C.一組測試用例是條件覆蓋,則一定是語句覆蓋、
D.一組測試用例是判定覆蓋,則一定是語句覆蓋
參考答案23
二、填空題
1.測試用例是用來檢測程序的,它主要包括輸入數(shù)據(jù)和預(yù)期結(jié)果兩部分。
2.按測試用例設(shè)計方法,軟件測試可分為白盒測試和黑盒測試。按測試的策略和過程,軟件
測試可分為單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。
3.軟件錯誤有各種各樣的分類方法,按照軟件周期各個階段分類,可以分為:問題定義錯誤、規(guī)
格說明錯誤、設(shè)計錯誤和編碼錯誤;按照錯誤的性質(zhì)和范圍進(jìn)行分類,錯誤又可以分為如下幾
類:功能錯誤、系統(tǒng)錯誤、算法錯誤、數(shù)據(jù)錯誤和代碼錯誤。
4.靜態(tài)分析中進(jìn)行人工測試的主要方法有理醛之、代碼評審和走查。
5.用黑盒法設(shè)計測試用例,常用的方法和技術(shù)有:等價分類法、邊界值分析法和錯誤推測法。
三、思考題
3.什么是白盒測試?白盒測試的覆蓋標(biāo)準(zhǔn)有哪些?試對它們的檢錯能力進(jìn)行比較。
答:(1)白盒測試把被測的程序看成一個透明的白盒子,即完全了解程序的內(nèi)部結(jié)構(gòu)和詳細(xì)的處理
過程,測試是在程序的內(nèi)部結(jié)構(gòu)上進(jìn)行的。白盒測試從程序的邏輯結(jié)構(gòu)入手,按照程序的內(nèi)部邏輯
結(jié)構(gòu)測試、檢驗程序。
(2)白盒測試法的覆蓋標(biāo)準(zhǔn)有:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、
路徑覆蓋。
(3)①語句覆蓋檢測錯誤能力最弱。滿足判定覆蓋的測試用例一定滿足語句覆蓋,但它可能會使一
些條件得不到測試。②條件覆蓋對每一條件進(jìn)行單獨(dú)檢查,一般情況它的檢錯能力較判定覆蓋強(qiáng),
但有時達(dá)不到判定覆蓋的要求。③判定/條件覆蓋包含了判定覆蓋和條件覆蓋的要求,但由于計算機(jī)
系統(tǒng)軟件實現(xiàn)方式的限制,實際上不一定達(dá)到條件覆蓋的標(biāo)準(zhǔn)。④條件組合覆蓋發(fā)現(xiàn)錯誤能力較強(qiáng),
涵蓋了前面四種覆蓋標(biāo)準(zhǔn)。⑤但以上的覆蓋標(biāo)準(zhǔn)還可能會使程序某些路徑?jīng)]有執(zhí)行到。路徑覆蓋根
據(jù)各判定表達(dá)式取值的組合,使程序沿著不同的路徑執(zhí)行,查錯能力強(qiáng)。但由于它是從各判定的整
體組合出發(fā)設(shè)計測試用例的,可能使測試用例達(dá)不到條件組合覆蓋的要求。
4.什么是單元測試?簡述單元測試的內(nèi)容。
答:(1)單元測試又稱為模塊測試。單元測試集中檢查軟件設(shè)計的最小單元——模塊。單元測試一
般采用白盒測試法,以詳細(xì)設(shè)計說明書為指南,對模塊的重要執(zhí)行路徑進(jìn)行測試,以發(fā)現(xiàn)程序
內(nèi)部邏輯結(jié)構(gòu)的錯誤。
(2)單元測試的內(nèi)容主要包括模塊接口測試、局部數(shù)據(jù)結(jié)構(gòu)測試、路徑測試、出錯處理測試和邊界
測試。
5.什么是確認(rèn)測試?該階段主要有哪些工作?
答:(1)確認(rèn)測試又稱有效性測試。它的任務(wù)是檢查軟件的功能與性能是否與需求規(guī)格說明書中確
定的指標(biāo)相符合。確認(rèn)測試階段有兩項工作,除了進(jìn)行確認(rèn)測試以外還要進(jìn)行軟件配置審查。
(2)確認(rèn)測試一般是在模擬環(huán)境中運(yùn)用黑盒測試方法,由專門測試人員和用戶參加的測試,如a
測試和B測試。軟件配置審查的任務(wù)是檢查軟件的所有文檔資料的完整性、正確性。如果發(fā)現(xiàn)
遺漏和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 咋樣寫供貨合同范本
- 發(fā)改ppp合同范本
- 買賣銅幣合同范本
- 可再生能源項目合同范本
- 品牌股權(quán)合同范本
- 啟東農(nóng)田流轉(zhuǎn)合同范本
- 廠房帶門面裝修合同范本
- 寫抖音合同范例
- 買房簽意向合同范例
- 動物實驗合同范本
- 雙碳視角看歐盟綠色新政政策篇
- 備電綜合解決方案服務(wù)合同
- 噴(烤)漆房VOCs治理設(shè)施日常運(yùn)行臺賬
- 往復(fù)式壓縮機(jī)組單機(jī)試運(yùn)方案
- 區(qū)域環(huán)境概況
- 爆破片面積計算
- 設(shè)備安裝檢驗批表格
- 車輛清障救援合作協(xié)議
- 全國書法作品展投稿登記表
- 中醫(yī)師承跟師筆記60篇(共1頁)
- BM 帶小葉片的高壓比壓氣機(jī)葉輪設(shè)計BladeGen實例
評論
0/150
提交評論