第一篇:軟件工程導(dǎo)論填空題總結(jié)
1.軟件生存周期一般可分為問題定義、可行性研究、需求分析、設(shè)計編碼、測試、運行與維護(hù)階段。
2.按軟件的功能進(jìn)行劃分,軟件可以劃分為系統(tǒng)軟件、支撐軟件 和應(yīng)用軟件。
3.可行性研究主要集中在以下四個方面 經(jīng)濟可行性、技術(shù)可行性、法律可行性 和抉擇。4.用戶界面的可使用性是用戶界面設(shè)計最重要的也是最基本的目標(biāo)。
5.常見的軟件概要設(shè)計方法有3大類:以數(shù)據(jù)流圖為基礎(chǔ)構(gòu)造模塊結(jié)構(gòu)的結(jié)構(gòu)化設(shè)計方法,以數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)構(gòu)造模塊的jackson方法_,以對象、類、繼承和通信為基礎(chǔ)的面向?qū)ο笤O(shè)計方法。
6.數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型。
7.軟件測試的方法有分析方法和非分析方法(即黑盒法)。8.單元測試一般以白盒測試為主,黑盒測試為輔。
9.成本估計方法主要有自底向上估計、自頂向下估計和算法模型估計三種類型。10.通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué),也稱為范型,軟件工程方法學(xué)包含三個要素:方法、工具和過程。目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)
11.最基本的測試是集成測試和驗收測試。
12.所謂情景分析就是對用戶將來使用目標(biāo)系統(tǒng)解決某個具體問題的方法和結(jié)果進(jìn)行分析 13.需求分析過程應(yīng)該建立3種模型,它們分別是數(shù)據(jù)模型,功能模型,行為模型.數(shù)據(jù)對象彼此之間相互連接的方式稱為聯(lián)系,也稱為關(guān)系。聯(lián)系可分為3種類型:一對一聯(lián)系,一對多聯(lián)系,多對多聯(lián)系。
14.軟件的驗證:一致性,完整性,現(xiàn)實性,有效性
15.四種維護(hù)的定義:1.改正性維護(hù)2.適應(yīng)性維護(hù)3.完善性維護(hù)4.預(yù)防性維護(hù)。2.數(shù)據(jù)流圖中信息流的類型有(變換流)和(事務(wù)流)。3.軟件的定義是:軟件=程序+數(shù)據(jù)+(文檔),軟件是(程序及其文檔)。4.經(jīng)典結(jié)構(gòu)程序設(shè)計包括順序、選擇和(重復(fù))三種結(jié)構(gòu)。5.集成測試時對軟件結(jié)構(gòu)中上層使用(自頂向下)的集成測試方法,對軟件結(jié)構(gòu)中下層使用(自底向上)的集成測試方法。
6.軟件維護(hù)包括(改正性維護(hù))、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)。
7.面向?qū)ο蠓椒▽W(xué)建模得到的三個基本子模型是(對象建模)、動態(tài)模型、功能模型。8.復(fù)雜大型問題的對象模型通常由主題層、類與對象層、結(jié)構(gòu)層、(屬性層)、及服務(wù)層5個層次組成。
9.面向?qū)ο蠓椒▽W(xué)是基于 軟件的重用。
10.軟件層次結(jié)構(gòu)圖中方框間的連線表示
調(diào)用 關(guān)系。
21.在軟件開發(fā)過程中要產(chǎn)生大量的信息,要進(jìn)行大量的修改,軟件配置管理能協(xié)調(diào)軟件開發(fā),并使混亂減到最低程度。
22.規(guī)定功能的軟件,在一定程度上對自身錯誤的作用(軟件錯誤)具有屏蔽能力,則稱此軟件具有容錯功能的軟件。
23.McCall提出的軟件質(zhì)量模型包括11 個軟件質(zhì)量特性。
24.軟件可維護(hù)性度量的七個質(zhì)量特性是可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和效率。
25.為了便于對照檢查,測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的輸出結(jié)果兩部分組成。
26.程序設(shè)計語言的心理特性主要表現(xiàn)在 歧義性、簡潔性、傳統(tǒng)性、局部性和順序性。27.軟件結(jié)構(gòu)是以 模塊 為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。
28.在結(jié)構(gòu)化分析中,用于描述加工邏輯的主要工具有三種,即:結(jié)構(gòu)化語言、判定表、判定樹。
29.結(jié)構(gòu)化語言是介于自然語言和形式語言之間的一種半形式語言。
30.若年利率為i,不計復(fù)利,n年后可得21.系統(tǒng)流程圖是描述物理模型的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中各個元素表達(dá)了系統(tǒng)中各種元素之間的(信息流動)情況。22.成本效益分析的目的是從(經(jīng)濟)角度評價開發(fā)一個項目是否可行。
23.自頂向下結(jié)合的漸增式測試法,在組合模塊時有兩種組合策略:深度優(yōu)先策略和(寬度優(yōu)先策略)。
24.獨立路徑是指包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條(在其他獨立路徑中未有過)的邊的路徑。
25.匯編語言是面向(機器)的,可以完成高級語言無法完成的特殊功能,如與外部設(shè)備之間的一些接口工作。
26.在JSP方法中解決結(jié)構(gòu)沖突的具體辦法是(中間數(shù)據(jù)結(jié)構(gòu)或中間文件)。
27.詳細(xì)設(shè)計的任務(wù)是確定每個模塊的內(nèi)部特性,即模塊的算法、(使用的數(shù)據(jù))。28.所有軟件維護(hù)申請報告要按規(guī)定方式提出,該報告也稱(軟件問題)報告。
29.有兩類維護(hù)技術(shù):在開發(fā)階段使用來減少錯誤、提高軟件可維護(hù)性的面向維護(hù)的技術(shù);在維護(hù)階段用來提高維護(hù)的效率和質(zhì)量的(維護(hù)支援)技術(shù)。
30.科學(xué)工程計算需要大量的標(biāo)準(zhǔn)庫函數(shù),以便處理復(fù)雜的數(shù)值計算,可供選擇的語言有:(FORTRAN語言)、PASCAL語言、C語言和PL/1語言。1.軟件的開發(fā)與運行經(jīng)常受到硬件的限制和制約。(√)2.模塊內(nèi)的高內(nèi)聚往往意味著模塊間的松耦合。(√)3.Jackson圖只能表達(dá)程序結(jié)構(gòu),不能表達(dá)數(shù)據(jù)結(jié)構(gòu)。(X)上述數(shù)據(jù)流圖表示數(shù)據(jù)A和B同時輸入變換成C。(X)5.軟件的質(zhì)量好壞主要由驗收人員負(fù)責(zé),其他開發(fā)人員不必關(guān)心。(X)6.判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。(√)7.應(yīng)該盡量使用機器語言編寫代碼,提高程序運行效率,而減少高級語言的使用。(X)8.UML只能應(yīng)用于軟件系統(tǒng)模型的建立。(X)9.容錯就是每個程序采用兩種不同的算法編寫。(X)軟件測試的目的是為了無一遺漏的找出所有的錯誤。(X)1.在進(jìn)行總體設(shè)計時應(yīng)加強模塊間的聯(lián)系。(N)2.系統(tǒng)結(jié)構(gòu)圖是精確表達(dá)程序結(jié)構(gòu)的圖形表示法。因此,有時也可以將系統(tǒng)結(jié)構(gòu)圖當(dāng)作系統(tǒng)流程圖使用。(N)
3.用黑盒法測試時,測試用例是根據(jù)程序內(nèi)部邏輯設(shè)計的。(N)4.在程序調(diào)試時,找出錯誤的位置和性質(zhì)比改正該錯誤更難。(Y)
5.以對象、類、繼承和通信為基礎(chǔ)的面向?qū)ο笤O(shè)計方法(OOD)也是常見的軟件概要設(shè)計方法之一。(Y)
6.如果通過軟件測試沒有發(fā)現(xiàn)錯誤,則說明軟件是正確的。(N)7.快速原型模型可以有效地適應(yīng)用戶需求的動態(tài)變化。(Y)
8.模塊化,信息隱藏,抽象和逐步求精的軟件設(shè)計原則有助于得到高內(nèi)聚,低耦合度的軟件產(chǎn)品。(Y)
9.集成測試主要由用戶來完成。(N)10.軟件危機完全是由于硬件問題引起的。(N)
第二篇:軟件工程導(dǎo)論知識總結(jié)范文
軟件工程導(dǎo)論 第一章:軟件工程學(xué)概論
1.軟件危機:是指在計算機軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。
2.概括的說,軟件危機包括兩方面問題:如何開發(fā)軟件已滿足日益增長的需求;如何維護(hù)數(shù)量不斷膨脹的已有軟件。3.軟件危機的典型表現(xiàn):對軟件開發(fā)成本和進(jìn)度的估計常常很不準(zhǔn)確;用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;軟件的質(zhì)量往往靠不住;軟件常常是不可維護(hù)的;軟件通常沒有適當(dāng)?shù)奈臋n資料;軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升;軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計算機應(yīng)用迅速不及深入的趨勢。
4.產(chǎn)生軟件危機的原因:在軟件開發(fā)和維護(hù)的過程中存在這么多嚴(yán)重的問題,一方面與軟件本身的特點有關(guān),另一方面也和軟件開發(fā)與維護(hù)的方法不正確有關(guān)。
5.在實踐過稱中或多或少的采用了錯誤的方法和技術(shù),這可能是使軟件問題發(fā)展成軟件危機的主要原因。
6.軟件不同與硬件,他是計算機系統(tǒng)中的邏輯部件而不是物理部件。
7.軟件不同于一般程序,他的一個顯著特點是估摸龐大,而且程序復(fù)雜性將隨著程序規(guī)模的增加而呈指數(shù)上升。
8.軟件本身獨有的特點確實給開發(fā)和維護(hù)帶來一些客觀困難。9.對用戶要求沒有完整的認(rèn)識就匆忙著手編寫程序是軟件開發(fā)功臣失敗的主要原因之一。
10.一個軟件從定義、開發(fā)、使用和維護(hù),直到最終被遺棄,要經(jīng)歷一個漫長的時期,通常把軟件經(jīng)歷的這個漫長的時期稱為生命周期。
11.軟件是程序、數(shù)據(jù)及相關(guān)文檔的完整集合。其中,程序是能夠完成預(yù)定功能和性能的可執(zhí)的指令序列;數(shù)據(jù)是使程序能夠適當(dāng)?shù)奶幚硇畔⒌臄?shù)據(jù)結(jié)構(gòu);文檔是開發(fā)、使用和維護(hù)程序所需要的圖文資料。
12.軟件工程是指導(dǎo)計算機軟件開發(fā)和維護(hù)的一門工程學(xué)科。13.軟件工程是:把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用與軟件開發(fā)、運行和維護(hù)過程,也就是吧工程應(yīng)用與軟件;研究前面所提到的途徑。
14.軟件工程的本質(zhì)特性:軟件工程關(guān)注與大型程序的構(gòu)造;軟件工程的中心課題是控制復(fù)雜性;軟件經(jīng)常變化;開發(fā)軟件的效率非常重要;和諧的合作是開發(fā)軟件的關(guān)鍵;軟件必須有效地支持他的用戶;在軟件工程領(lǐng)域中通常由具有一種文化背景的人體另一種具有文化背景的人創(chuàng)造產(chǎn)品。
15.軟件工程的基本原理:用分階段的生命周期計劃嚴(yán)格管理;堅持進(jìn)行階段評審;實行嚴(yán)格的產(chǎn)品控制;采用現(xiàn)代程序設(shè)計技術(shù);結(jié)果應(yīng)能清楚的審查;開發(fā)小組的人員應(yīng)該少而精;承認(rèn)不斷該井軟件工程的必要性。16.軟件工程包括技術(shù)和管理兩方面得內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程學(xué)科。
17.通常把在軟件生命周期全過程中使用的一套技術(shù)方法的集合稱為方法學(xué),也稱之為范型。18.方法學(xué)三要素:方法、工具和過程。
19.傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。它采用結(jié)構(gòu)化技術(shù)來完成軟件開發(fā)的各項任務(wù),并使用適當(dāng)?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持結(jié)構(gòu)化技術(shù)的運用。
20.面向?qū)ο蠓椒▽W(xué)與傳統(tǒng)方法學(xué)相反,它吧數(shù)據(jù)和行為看成是同等重要的,他是一種一數(shù)據(jù)為主線,把數(shù)據(jù)和對數(shù)據(jù)的操作緊密的結(jié)合起來的方法。
21.棉線對象方法學(xué)的要點:把對象作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件;把所有的對象都劃分成類;按照父類與子類的關(guān)系,把若干相關(guān)類組成一個層次結(jié)構(gòu)的系統(tǒng);對象彼此間僅能通過發(fā)送消息互相聯(lián)系。
22.傳統(tǒng)方法學(xué)強調(diào)自頂而下順序的完成軟件開發(fā)的各項任務(wù)。23.面向方法學(xué)開發(fā)軟件的過程,是一個主動地多次反復(fù)迭代的演化過程。
24.面向?qū)ο蠓缎偷膬?yōu)點:降低了軟件產(chǎn)品的復(fù)雜性,提高了軟件的可理解性,簡化了軟件的開發(fā)和維護(hù)工作;促進(jìn)了軟件重用。25.面向?qū)ο蠓椒ㄌ赜械睦^承性和多態(tài)性,進(jìn)一步提高了可重用性。26.軟件生命周期由軟件定義、軟件開發(fā)和運行維護(hù)3個時期組成,每個時期又進(jìn)一步劃分成若干個階段。
27.軟件定義時期的任務(wù):確定軟件開發(fā)工程必須完成的總目標(biāo);確定工程的可行性;導(dǎo)出實現(xiàn)工程目標(biāo)應(yīng)該采用的策略及系統(tǒng)必須完成的功能;估計完成該工程需要的資源和成本,并且制定工程進(jìn)度表。
28.軟件定義時期分為三個階段:問題定義、可行性研究、需求分析。
29.開發(fā)時期階段組成:總體設(shè)計、詳細(xì)設(shè)計、編碼和單元測試、綜合測試。
30.維護(hù)時期的樹妖任務(wù)是使軟件持久的滿足用戶的需求。31.最基本的測試是集成測試和驗收測試。
32.通常的維護(hù)活動:改正性維護(hù);適應(yīng)性維護(hù);完善性維護(hù);預(yù)防性維護(hù)。
33.軟件過程是為了獲得高質(zhì)量軟件所需要完成的一系列框架,它規(guī)定了完成各項的任務(wù)工作步驟。
34.把過程定義為:使用資源將輸入轉(zhuǎn)化為輸出的活動所構(gòu)成的系統(tǒng)。
35.系統(tǒng)是相互關(guān)聯(lián)或相互作用的一組要素。
36.過程定義了運用方法的順序、應(yīng)該交付的文檔資料、為保證軟件件質(zhì)量和協(xié)調(diào)變化所需要的管理措施,以及標(biāo)志軟件開發(fā)各個階段任務(wù)完成的里程碑。37.瀑布模型一直被廣泛采用的生命周期模型,仍然是軟件工程中應(yīng)用的最廣泛的過程模型。
38.瀑布模型的特點:階段間具有順序性和依賴性;推遲延遲的觀點;質(zhì)量保證的觀點。
39.瀑布模型的優(yōu)點:可強迫開發(fā)人員采用規(guī)范的方法;嚴(yán)格的規(guī)定了每個階段必須提交的文檔;要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗證。
40.所謂快速原型是快建立起來的可以在計算機上運行的程序,他所能完成的功能往往是最終端產(chǎn)品能完成的功能的一個子集。41.快速原型模型的主要優(yōu)點:不帶反饋環(huán),軟件產(chǎn)品的開發(fā)基本上是線性順序進(jìn)行的。42.增量模型也稱漸進(jìn)模型。
43.增量模型的優(yōu)點:能在短時間內(nèi)向用戶提交可完成部分工作產(chǎn)品;逐步增加產(chǎn)品功能可以使用戶有充裕的時間學(xué)習(xí)和適應(yīng)新產(chǎn)品從而減少一個全新的軟件可能給客戶組織帶來的沖擊。44.螺旋模型的基本思想是,使用原型及其他方法來盡量降低風(fēng)險??梢园阉醋魇窃诿總€階段都增加了風(fēng)險分析過程的快速模型。
45.螺旋模型的優(yōu)點:對可選方案和約束條件的強調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件來發(fā)的一個重要目標(biāo);減少了過多測試或測試不足所帶來的風(fēng)險;更重要的是,在螺旋模型中維護(hù)只是模型的另一個周期,在維護(hù)和開發(fā)之間并沒有本質(zhì)區(qū)別。
46.噴泉模型是典型的面向?qū)ο蟮能浖^程模型之一。47.“噴泉”這個詞體現(xiàn)了面向?qū)ο箝_發(fā)過程迭代和無縫的特性。
48.Ratioanal統(tǒng)一過程是一種完整而且完美的軟件過程。49.RUP軟件開發(fā)生命周期是一個二維的生命周期模型。50.RUP九個核心工作流:業(yè)務(wù)建模;需求;分析與設(shè)計;實現(xiàn);測試;部署;配置與變更管理;項目管理;環(huán)境。
51.RUP工作階段:初始階段、精化階段、構(gòu)建階段、移交階段。52.極限編程:是敏捷過程中最富盛名的一個,“極限”含義是指把好的開發(fā)實踐運用到極致。
53.微軟過程生命周期:規(guī)劃階段、設(shè)計階段、開發(fā)階段、穩(wěn)定階段、發(fā)布階段。
54.面向?qū)ο蠓椒?對象+類+繼承+用消息通信
可行性研究
1.典型的可行性研究過程步驟:復(fù)查系統(tǒng)規(guī)模和目標(biāo);研究目前正在使用的系統(tǒng);導(dǎo)出新系統(tǒng)的高岑邏輯模型;進(jìn)一步定義問題;導(dǎo)出和評論供選擇的解法;推薦行動方針;草擬開發(fā)計劃;書寫文檔提交審查。
2.系統(tǒng)流程圖是概括的描繪物理系統(tǒng)的傳統(tǒng)工具。他的基本思想是用圖形符號以黑盒子形式描繪組成系統(tǒng)的每個部件(程序、文檔、數(shù)據(jù)庫、人工過程等)。
3.系統(tǒng)流程圖基本符號:處理(矩形)、輸入輸出(平行四邊形)、連接(圓形)、換頁連接(向下的五邊形箭頭)、數(shù)據(jù)流(箭頭)。
4.面對復(fù)雜的系統(tǒng)時,一個比較好的方法是分層次的描繪這個系統(tǒng)。
5.數(shù)據(jù)流圖(DFD)是一種圖形化技術(shù),他面會信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換。6.數(shù)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示。
7.數(shù)據(jù)流圖符號:正方形(或立體型)表示數(shù)據(jù)的源點或終點;圓角矩形(或圓形)代表數(shù)據(jù)變換的處理;開口矩形(或兩條平行線)代表數(shù)據(jù)存儲;箭頭代表數(shù)據(jù)流,即特定數(shù)據(jù)流動的方向。8.數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同,數(shù)據(jù)存儲是處于靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運動中的數(shù)據(jù)。9.畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。另一個主要的用途是作為分析和設(shè)計的工具。
10.數(shù)據(jù)字典是關(guān)于數(shù)據(jù)信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。、11.數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典,數(shù)據(jù)流圖就不嚴(yán)格,然而沒有數(shù)據(jù)流圖,數(shù)據(jù)字典也難以發(fā)揮作用。12.數(shù)據(jù)字典4類元素的定義組成:數(shù)據(jù)流;數(shù)據(jù)流分量(即數(shù)據(jù)元素);數(shù)據(jù)存儲;處理。
13.數(shù)據(jù)字典中記錄數(shù)據(jù)元素的下列信息:一般信息;定義;使用特點;控制信息和分組信息。
14.數(shù)據(jù)元素組陳的方式:順序、選擇、重復(fù),可選。15.“=”:等價于或定義為;“+”;和(即連接兩個分量);“【】”:或(即,從方括弧內(nèi)列出的若干分量中選擇一個),通常用“|”號隔開供選擇的分量;“{}”:重復(fù);“()”:可選。
16.數(shù)據(jù)字典最重要的用途是作為分析階段的工具。
17.卡片形式書寫數(shù)據(jù)字典:開片:名字、別名、描述、定義、位置。
18.軟軟開發(fā)成本主要表現(xiàn)為人力消耗。
19.估算技術(shù):代碼行技術(shù);任務(wù)分解技術(shù);自動估算成本技術(shù)。20.成本/效益分析地第一步是估計開發(fā)成本、運行費用和新系統(tǒng)將帶來的經(jīng)濟效益。
21.通常用利率的形式表示貨幣的時間價值。
22.通常用投資回收期衡量一項開發(fā)工程的價值。所謂投資回收期就是使累計的經(jīng)濟效益等于最初投資所需要的時間。23.衡量工程價值的另一項經(jīng)濟指是工程的純收入,也就是在整個生命周期之內(nèi)系統(tǒng)的累計經(jīng)濟效益與投資之差。需求分析 1.軟件系統(tǒng)的綜合要求:功能需求;性能要求;可靠性和可用性需求;出錯處理需求;接口需求;約束;你想需求;將來可能提出的要求。
2.分析系統(tǒng)的數(shù)據(jù)要求,這是軟件需求分析的一個重要任務(wù),它通常采用建立數(shù)據(jù)模型的方法。
3.復(fù)雜的數(shù)據(jù)由許多基本的數(shù)據(jù)元素組成,數(shù)據(jù)結(jié)構(gòu)表示數(shù)據(jù)元素之間的邏輯關(guān)系。
4.訪談是最早開始使用的獲取用戶需求的技術(shù),也是迄今為止仍然廣泛使用的需求分析技術(shù)。他有兩種基本形式,分別是正式的和非正式的訪談。
5.軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng),而任何信息處理系統(tǒng)的基本功能都是把輸入數(shù)據(jù)轉(zhuǎn)變成需要的輸出信息。
6.結(jié)構(gòu)分析方法就是面向數(shù)據(jù)流自頂而下逐步求精進(jìn)行需求分析的方法。
7.面向團(tuán)隊的需求收集法,稱為簡易的應(yīng)用規(guī)格說明技術(shù)。這種方法提倡用戶與開發(fā)者密切合作,共同表示問題,提出解決方案要素,商討不同方案并指定基本要求。
8.面向團(tuán)隊的需求方法的優(yōu)點:開發(fā)者與用用戶不分彼此,齊心協(xié)力,密切合作;即時討論并求精;有能導(dǎo)出規(guī)格說明的具體步驟。
9.快速建立軟件原型是最準(zhǔn)確、最有效、最強大的需求分析技術(shù)。他是快速建立起來的旨在演示目標(biāo)系統(tǒng)主要功能的可運行的程序。
10.構(gòu)建原型的要點是,他應(yīng)該實現(xiàn)用戶看得見的功能,省略系統(tǒng)“隱含”功能。
11.快速模型的特性:快速;容易修改。
12.快隨構(gòu)建和修改原型的方法和工具:第四代技術(shù);可重構(gòu)的軟件構(gòu)件;形式化規(guī)格說明和原型環(huán)境。
13.通常,模型是由一組圖形符號和組織這些符號的規(guī)則組成。14.結(jié)構(gòu)化分析實質(zhì)上是一種創(chuàng)建模型的活動。
15.通過需求分析除了創(chuàng)建分析模型之外,還應(yīng)該寫出軟件需求規(guī)格說明書,他是需求分析階段得出的最主要的文檔。16.通常用自然語言完整、準(zhǔn)確、具體的描述系統(tǒng)的數(shù)據(jù)要求、功能需求、性能需求、可靠性和可用性要求、出錯處理需求、接口需求、約束、逆向需求以及將來可能提出的要求
17.概念性數(shù)據(jù)模型是一種面向問題的數(shù)據(jù)模型,是按照用戶的觀點對數(shù)據(jù)建立的模型。
18.數(shù)據(jù)模型包含三種續(xù)相互關(guān)聯(lián)的信息:數(shù)據(jù)對象、數(shù)據(jù)對象的屬性、數(shù)據(jù)對象彼此間相互連接的關(guān)系。19.聯(lián)系:一對一;一對多;多對多。
20.ER圖(實體-聯(lián)系圖)包含了實體、關(guān)系、屬性,通常用矩形代表實體,用連接相關(guān)實體的菱形表示關(guān)系,用橢圓形或圓角矩形表示實體的屬性,并用直線把實體與其屬性連接起來。21.通常用“范式”定義消除數(shù)據(jù)冗余的程度。第一范式(1NF)數(shù)據(jù)冗余程度最大,第五范式(5NF)數(shù)據(jù)冗余程度最小。22.狀態(tài)轉(zhuǎn)換圖(簡稱狀態(tài)圖)通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)地行為。
23.狀態(tài)是任何可以被觀察到得系統(tǒng)行為模式,一個狀態(tài)代表系統(tǒng)的一種行為模式。
24.在狀態(tài)圖中定義的狀態(tài)主要有:初態(tài)、終態(tài)和中間狀態(tài)。在一張狀態(tài)圖中只能有一個初態(tài),而終態(tài)則可以有0至多個。25.事件就是引起系統(tǒng)動作或轉(zhuǎn)換狀態(tài)的控制信息。
26.狀態(tài)圖中,初態(tài)用實心圓表示,終態(tài)用一對同心圓表示,中間狀態(tài)用圓角矩形表示。
27.活動表語法格式:事件名(參數(shù)表)/動作表達(dá)式;三種事件:entry(進(jìn)入該狀態(tài)的動作), exit(退出該狀態(tài)的動作), do(該狀態(tài)下的動作)。
28.事件表達(dá)式的語法格式:事件說明【守衛(wèi)條件】/動作表達(dá)式;守衛(wèi)條件為真時,狀態(tài)轉(zhuǎn)換發(fā)生。
29.層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪的數(shù)據(jù)的層次結(jié)構(gòu)。
30.Warnier圖和層次方框圖相似,W圖也用樹形層次結(jié)構(gòu)描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的秒胡手段。
31.IPO圖是輸入、處理、輸出圖的簡稱。一種圖形工具,能夠方便的描繪輸入數(shù)據(jù)、對數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。32.驗證軟件需求的4個方面:一致性、完整性、現(xiàn)實性、有效性。
33.PSL/PSA(問題陳述語言/問題陳述分析程序)系統(tǒng):功能:描述任何應(yīng)用領(lǐng)域的信息系統(tǒng);創(chuàng)建一個數(shù)據(jù)庫保存對該信息系統(tǒng)的描述符;對描述符施加增加、刪除和更改等操作;產(chǎn)生格式化的文檔和關(guān)于規(guī)格說明書的各種分析報告。
34.PSL/PSA系統(tǒng)用描述符從系統(tǒng)信息流、系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)導(dǎo)出、系統(tǒng)規(guī)模、系統(tǒng)動態(tài)、系統(tǒng)性質(zhì)和羨慕管理共8個方面描述信息系統(tǒng)。第五章:總體設(shè)計
總體設(shè)計過程分為兩個階段: 1>.系統(tǒng)設(shè)計,確定系統(tǒng)的具體實現(xiàn)方案 2>.結(jié)構(gòu)設(shè)計階段,確定軟件結(jié)構(gòu)
總體設(shè)計的9個步驟: 1>.設(shè)想供選擇的方案 2>.選取合理的方案 3>.推薦最佳方案 4>.功能分解 5>.設(shè)計軟件結(jié) 6>.設(shè)計數(shù)據(jù)庫 7>.制定測試計劃 8>.書寫文檔 9>.審查和復(fù)查
書寫文檔(形成概要設(shè)計規(guī)格說明書): 1>.系統(tǒng)說明 2>.用戶手冊 3>.測試計劃 4>.詳細(xì)的實現(xiàn)計劃 5>.數(shù)據(jù)庫設(shè)計結(jié)果
模塊是由邊界元素限定相鄰程序元素的序列,而且有一個總體標(biāo)識符代表它.(模塊式構(gòu)成程序的基本構(gòu)件)根據(jù)模塊數(shù)目和接口成本(模塊間的聯(lián)系成本)兩個因素來決定模塊的最適當(dāng)數(shù)目.抽象:就是抽出事物的本質(zhì)特征而暫時不考慮他們的細(xì)節(jié).(抽象層次的過程實際上也是逐步求精的過程).抽象和求精是一對互補的概念,也是人類解決復(fù)雜問題時最常用,最有效的方法.抽象使得設(shè)計者能夠說明過程和數(shù)據(jù),同時卻忽略了低層細(xì)節(jié),求精則幫助設(shè)計者在設(shè)計過程中逐步揭示出低層細(xì)節(jié)。
信息隱藏原理指出:應(yīng)該這樣設(shè)計和確定模塊,使得一個模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說是不能訪問的.局部化,是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近,在模塊中使用局部數(shù)據(jù)元素是局部化的一個例子.模塊獨立性:使得每個模塊完成一個相對獨立的特定子功能,并且和其他模塊之間的關(guān)系很簡單.模塊的獨立程序由兩個標(biāo)準(zhǔn)度量:
1>.耦合:數(shù)據(jù)耦合,控制耦合,特征耦合,公共環(huán)境耦合,內(nèi)容耦合
(盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合)
2>.內(nèi)聚:功能內(nèi)聚,信息內(nèi)聚,通信內(nèi)聚,過程內(nèi)聚,時間內(nèi)聚,邏輯內(nèi)聚,偶然內(nèi)聚.啟發(fā)式規(guī)則: 1>.改進(jìn)軟件結(jié)構(gòu)提高模塊獨立性 2>.模塊規(guī)模應(yīng)該適中
3>.深度,寬度,扇出和扇入都應(yīng)適當(dāng) 4>.模塊的作用或應(yīng)該在控制域之內(nèi) 5>.力爭降低模塊接口的復(fù)雜程度 6>.設(shè)計單入口單出的模塊 7>.模塊功能應(yīng)該可以預(yù)測
層次圖和HIPO圖,結(jié)構(gòu)圖(描繪軟件結(jié)構(gòu)的圖形工具).結(jié)構(gòu)圖:用尾部是空心圓表示傳遞的是數(shù)據(jù),實心圓表示傳遞的是控制信息.面向數(shù)據(jù)流的設(shè)計方法:把信息流映射成軟件結(jié)構(gòu),信息流的類型決定了映射方法信息流類型:1>.交換流,2>.事務(wù)流 第六章:詳細(xì)設(shè)計
在設(shè)計人機界面過程中,遇到的4個問題: 1>.系統(tǒng)影響時間(長度,易變性)2>.用戶幫助設(shè)施(集成的/附加的幫助設(shè)施)3>.出錯信息處理
4>.命令交互(一個命令對應(yīng)單一的功能)人機界面設(shè)計指南: 1>.一般交互指南涉及信息顯示,數(shù)據(jù)輸入和系統(tǒng)整體控制,因此這類指南是全局性的,忽略它們將承擔(dān)較大的風(fēng)險.2>.信息顯示指南:用文字,圖形和聲音按位置移動和大小,使用顏色,分辨率和省略
3>.數(shù)據(jù)輸入指南:選擇命令,輸入數(shù)據(jù)和向系統(tǒng)提供輸入
過程設(shè)計的 工具: 1.程序流程圖
程序流程圖的缺點: 1>.程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過早的考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu) 2>.程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計的精神,隨意轉(zhuǎn)移控制 3>.程序流程圖不容易表示數(shù)據(jù)結(jié)構(gòu) 2.盒圖 盒圖的特點:克服了程序流程圖的缺點,但自身缺點是不易擴展
1>.功能域(即一個特定控制結(jié)構(gòu)的作用域)明確,可以從盒圖上一眼就看出來 2>.不能任意轉(zhuǎn)移控制
3>.很容易確定局部和全程數(shù)據(jù)的作用域
4>.很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)
3.PAD圖(問題分析圖):是用二維樹形結(jié)構(gòu)的圖來表示程序的控制流.將這種圖翻譯成程序代碼比較容易
4.判斷表:能夠清晰的表示復(fù)雜的條件組合與應(yīng)做的動作之間的對應(yīng)關(guān)系.(在多重嵌套的條件選擇時)5.判定樹:容易繪制,易于理解,但不能判斷哪些組合不可能,葉子多
6.過程設(shè)計語言(偽碼):是用正文形式表示的數(shù)據(jù)和處理過程的設(shè)計工具.過程設(shè)計語言(PDL)的優(yōu)點: 1>.可以作為注釋直接插在源程序中間
2>.可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便的完成PDL的書寫和編輯工作
3>.已經(jīng)有自動處理PDL的程序存在,而且可以自動由PDL生成程序代碼
程序復(fù)雜程序的定量度量 1.流圖:只要順序執(zhí)行俄流向都能合并,忽略箭頭,每個節(jié)點都是連通的(用圓表示節(jié)點代表一條或多條語句,箭頭線成為邊,代表控制流)由邊和結(jié)點圍成的面積為區(qū)域,當(dāng)計算區(qū)域數(shù)時應(yīng)該包括圖形外部為被圍起來的那個區(qū)域.計算環(huán)形復(fù)雜度的方法: 1>.流圖的區(qū)域數(shù)等于環(huán)形復(fù)雜度
2>.流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,其中E是流圖中邊的條數(shù),N是節(jié)點數(shù)
3>.流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中P是流圖中判定節(jié)點的數(shù)目 第七章: 1.通常把編碼和測試統(tǒng)稱實現(xiàn)
2.所謂編碼就是把軟件設(shè)計結(jié)果翻譯成某種程序設(shè)計語言書寫的程序
3.為了使程序容易測試和維護(hù)以減少軟件的總成本,所選用的高級語言有理想的模塊化機制,以及可讀性好的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。為了便于調(diào)試和提高軟件可靠性,語言特點應(yīng)該是編譯程序能夠多地發(fā)下程序中錯的錯誤,為了降低軟件開發(fā)和維護(hù)的成本,選用的高級語言應(yīng)該有良好的獨立編譯機制。4.選擇程序設(shè)計語言的使用標(biāo)準(zhǔn): 1).系統(tǒng)用戶的要求 2).可以使用的編譯程序 3).可以得到的軟件工具 4).工程規(guī)模 5).程序員的知識
6).軟件可移植性要求 7).軟件的應(yīng)用領(lǐng)域 5.編碼的風(fēng)格: 1).程序內(nèi)部的文檔 2).數(shù)據(jù)說明 3).語句說明 4).輸入輸出
5).效率(通算法提高和決定的)提高效率 :
1).效率是性能的要求,因此應(yīng)該在需求分析階段效率方面的要求
2).效率是靠設(shè)計來以高的
3).程序的效率和程序的簡單程序是一致的 6.討論效率問題: 1).程序運行時間 2).存儲器效率 3).輸入輸出效率 軟件測試基礎(chǔ): 1.測試方法:
1).黑盒:如果已經(jīng)知道了產(chǎn)品應(yīng)該具有的功能,可以通過測試來檢驗是否每個功能都能正常使用。
2).白盒: 如果知道產(chǎn)品的內(nèi)部工作過程,可以通過測試來檢驗產(chǎn)品內(nèi)部動作是佛感召規(guī)格說明的規(guī)定正常進(jìn)行
2.黑盒測試是在程序接口進(jìn)行的 黑盒測試(功能測試)3.測試步驟: 模塊測試-》子系統(tǒng)測試-》系統(tǒng)測試-》驗收測試-》平行運行
4.測試階段的信息流: 1》軟件配置 2》測試配置 5.單元測試主要使用白盒測試技術(shù),而且對多個模塊的測試可以并行的進(jìn)行 6.測試重點: 1).模塊接口 2).局部數(shù)據(jù)接口 3).重要的執(zhí)行通路 4).出錯處理器 5).邊界條件
7.軟件測試:為了發(fā)現(xiàn)錯誤而執(zhí)行代碼過程 8.程序調(diào)試:為了診斷和改正程序中錯誤的錯誤代碼 9.集成測試是測試盒組裝軟件的系統(tǒng)化技術(shù)
10.驗證指的是保證軟件正確地實現(xiàn)了某個特定要求的一系列活動,而確認(rèn)指的是為了保證軟件確實滿足了用戶需求而進(jìn)行的一系列活動
11.需求分析階段產(chǎn)生的軟件需求規(guī)格說明書。第八章: 軟件維護(hù):在軟件交付使用之后,為了改正錯誤或者滿足新的需要而修改的過程
改正性維護(hù):把診斷和改正錯誤的過程稱為改正性維護(hù)
適應(yīng)性維護(hù):為了和變化了的環(huán)境適當(dāng)?shù)呐浜隙M(jìn)行的修改軟件的活動是既必要而又經(jīng)常性的活動
完善性維護(hù):在軟件使用的過程中,用戶往往提出增加新功能或修改已有功能的建議,還可能提出一般性的改進(jìn)意見
預(yù)防性維護(hù):為了改進(jìn)未來的標(biāo)準(zhǔn)性或可靠性或為了給未來奠定更好的基礎(chǔ)而修改軟件
軟件維護(hù)的過程: 1.維護(hù)組織 2.維護(hù)報告:
⑴滿足維護(hù)要求表中提出的要求所需要的工作量 ⑵維護(hù)要求的性質(zhì) ⑶這項要求的優(yōu)先次序 ⑷與修改有關(guān)的事后數(shù)據(jù) 3.維護(hù)的事件流 4.保存維護(hù)記錄 5.評價維護(hù)活動: ⑴每次程序運行平均失敗的次數(shù) ⑵用于每一類維護(hù)活動的總?cè)藭r數(shù)
⑶平均每個程序每種語言每種維護(hù)類型,所做的程序變動數(shù) ⑷維護(hù)過程中增加或刪除一個原語句平均花費的人時數(shù) ⑸維護(hù)每種語言所花費的人時數(shù) ⑹一張維護(hù)要求表的平均周轉(zhuǎn)時間 ⑺不同維護(hù)類型所占的百分比
軟件的可維護(hù)性的定義:維護(hù)人員理解改動改正或改進(jìn)這個軟件的難易程度
決定軟件可維護(hù)的因素主要有: 1).可理解性 2).可測試性 3).可修改性 4).可移植性 5).可重用性
重用指同一事物不做修改或稍加改動就在不同環(huán)境中多次重復(fù)使用
以下一個方面可以提高軟件的可維護(hù)性: 1).軟件中可使用的可重用的構(gòu)件越多,軟件的可靠性越高,改正性維護(hù)需求需求就越少
2).軟件中可使用的可重用的構(gòu)件越多,適應(yīng)性和完整性就越容易,文檔影響軟件可維護(hù)性的決定因素
軟件系統(tǒng)的文檔可分為用戶文檔和系統(tǒng)文檔
軟件文檔應(yīng)滿足下數(shù)要求: 1).必須描述如何使用這個系統(tǒng) 2).必須描述怎樣安裝和管理這個系統(tǒng) 3).必須描述系統(tǒng)需求和設(shè)計 4).必須描述系統(tǒng)的實現(xiàn)和測試
用戶文檔至少包含下數(shù): 1).功能描述 2).安裝文檔 3).使用手冊 4).參考手冊 5).操作員指南
所謂系統(tǒng)文檔只從問題定義需求說明到驗收測試計劃,這樣一系列和實現(xiàn)有關(guān)的文檔
可維護(hù)性是所有軟件都應(yīng)該具備的基本特點
代碼復(fù)審應(yīng)該強調(diào)編碼風(fēng)格和內(nèi)部說明文檔這兩個影響可維護(hù)性的因素
配置復(fù)審在測試結(jié)束是進(jìn)行正式的可維護(hù)性復(fù)審
配置復(fù)審的目的是保證軟件配置的所有成分都是完整的,一致的和可理解的
為了便于修改和管理已經(jīng)編目歸檔了, 軟件在工程過程模型的六類活動: 1).庫存目錄分析 2).文檔重檔 3).逆向工程 4).代碼重構(gòu) 5).數(shù)據(jù)重構(gòu) 6).正向工程 第九章: 面向?qū)ο蠓椒▽W(xué)的出發(fā)點和基本原則是盡可能模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認(rèn)識世界解決問題的方法于過程,也就是使描述問題的問題空間與實現(xiàn)解決的解決空間在結(jié)構(gòu)上盡可能一致
面向?qū)ο蠓椒▽W(xué)具有以下4個要點: 1).認(rèn)為客觀世界是又各種對象組成,任何事物都是對象 2).把所有對象都劃分成各種對象類,每個對象都定義了一組數(shù)據(jù)和一組方法
3).按照子類與父類的關(guān)系把若干個對象類組成一個層次結(jié)構(gòu)的系統(tǒng)
4).對象彼此之間僅能通傳遞消息互相聯(lián)系
面向?qū)ο蠓椒▽W(xué)的優(yōu)點有: 1).與人類習(xí)慣的思維方法一致 2).穩(wěn)定性好 3).可重用性好
4).較易開發(fā)大型軟件產(chǎn)品 5).可維護(hù)性好
由于以下因素使得面向?qū)ο蠓椒ㄋ_發(fā)的軟件可維護(hù)性好: 1).穩(wěn)定性比較好 2).較容易修改 3).容易理解 4).易于測試和調(diào)試
面向?qū)ο蠓椒▽W(xué)中的對象是由描述該對象性的數(shù)據(jù)以及可以對這些數(shù)據(jù)施加的所有操作封裝在一起所構(gòu)成的同意體
對象是封裝了數(shù)據(jù)結(jié)構(gòu)以及施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作的封裝體
對象有如下基本特點: 1).以數(shù)據(jù)為中心 2).對象是主動的 3).實現(xiàn)了數(shù)據(jù)封裝 4).本質(zhì)上具有并行性 5).模塊獨立性好
類就是對具有相同數(shù)據(jù)和相同操作的一組相似對象的定義
類是支持繼承的抽象數(shù)據(jù)類型而對象就是類的實例
實例就是由某個特定的類所描述的一個具體的對象
消息是要求某個對象執(zhí)行在定義它的那個類中所定義的某個操作的規(guī)格說明
消息由三部分組成 1).接受消息對象 2).消息選擇符 3).零個或多個變元
方法就是對象所執(zhí)行的操作,也就是類中所定義的服務(wù)
屬性就是類中所定義的數(shù)據(jù),它是對客觀世界實體所具有的性質(zhì)的抽象
對象具有封裝性的條件如下: 1).有一個清晰的邊界 2).有確定的接口 3).受保護(hù)的內(nèi)部實現(xiàn)
繼承是指直接獲得已有的性質(zhì)和特征而不必重復(fù)定義它們
多態(tài)性是指子類對象可以像父類對象那樣使用同樣的消息既可以發(fā)送給父類對象也可以發(fā)送給子類對象
函數(shù)重載是指同一個作用域內(nèi)的若干個參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字
運算符重載是指同一個運算符也可以施加于不同類型的操作數(shù)上面
所謂模型就是為了理解事物而對事物做出的一種抽象,是對事物一種無歧義的書面描述
用面向?qū)ο蠓椒ㄩ_發(fā)軟件通常需要建立3中模式: 1).描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對象模型 2).描述系統(tǒng)控制結(jié)構(gòu)的動態(tài)模型 3).描述系統(tǒng)的功能的功能模型
關(guān)聯(lián)是雙向的,可在一個方向上為關(guān)聯(lián)起一個名字,在另一個方向上起另一個名字
聚集也稱聚合,是關(guān)聯(lián)的特例聚集表示類與類之間的關(guān)系,是整體與部分的關(guān)系
共享聚集在聚集關(guān)系中處于部分個對象可同時參與多個屬于整體對象的構(gòu)成
泛化關(guān)系就是通常所說的繼承關(guān)系,是通用元素和具體元素之間的一種分類關(guān)系
沒有具體對象的類稱為抽象類
預(yù)定義的類約束有四種: 1).多重 2).不相交 3).完全 4).不完全
多重繼承指的是一個子類可以同時多次繼承同一個上層基類
依賴關(guān)系描述兩個模型元素之間的語意連接關(guān)系,其中一個模型元素是獨立的,另一個模型元素不獨立,它依賴于獨立的獨立的模型元素
當(dāng)對同一個事物在不同抽象層次上描述時這些描述之間具有細(xì)化關(guān)系
細(xì)化用來協(xié)調(diào)不同模型之間的關(guān)系,表示各個開發(fā)階段不同抽象層次之間的相關(guān)性 第十三章:
管理:通過計劃組織和控制等一系列活動,合理地配置和使用各種資源,以達(dá)到既定目標(biāo)的過程.軟件項目管理貫穿于軟件的整個生命周期之中.軟件管理項目過程從一組項目計劃活動開始,而制定計劃的基礎(chǔ)是工作量估算和完成期限估算.為了使估算項目的工作量和完成期限,首先需要估算軟件的規(guī)模.度量軟件規(guī)模的技術(shù): 1>.代碼行技術(shù):比較簡單的定量估算軟件規(guī)模的方法.2>.功能點技術(shù):依據(jù)對軟件信息域特性和軟件復(fù)雜性的評估結(jié)果估算軟件規(guī)模,用功能點(FP)為單位.信息域的五個特性:輸入項數(shù),數(shù)出項數(shù),查詢數(shù),主文件數(shù),我外部接口數(shù).估算功能點的步驟: 1>.計算未調(diào)整的功能點數(shù)UFP 2>.計算技術(shù)復(fù)雜性因子TCF 3>.計算功能點數(shù)FP 工作量:軟件規(guī)模(KLOC或FP)的函數(shù)。單位:人月.工作量估算常用模型:靜態(tài)單變量模型,動態(tài)多變量模型,COCOMO2模型.COCOMO2構(gòu)造性成本模型,給出了三個層次的軟件開發(fā)工作量估算模型:
1>.應(yīng)用系統(tǒng)組織模型:主要用于估算構(gòu)建原型的工作量。2>.早期設(shè)計模型:適用于體系結(jié)構(gòu)設(shè)計階段。
3>.后體系結(jié)構(gòu)模型:適用于完成體系結(jié)構(gòu)設(shè)計之后的軟件開發(fā)階段。
成本因素分為:產(chǎn)品因素、平臺因素、人員因素、項目因素。COCOMO2使用的5個分級因素:項目先例性、開發(fā)靈活性、風(fēng)險排除度、項目組凝聚力、過程成熟度。
工程網(wǎng)絡(luò)是系統(tǒng)分析和系統(tǒng)設(shè)計的強有力的工具,用箭頭表示作業(yè)(即消耗資源又需要持續(xù)一定時間),用圓圈表示事件(并不消耗時間和資源).制定進(jìn)度計劃的工具有Gantt圖和工程網(wǎng)絡(luò)。
機動時間=它結(jié)束事件的最遲時刻-它開始事件的最早時刻-持續(xù)時間.人員組織: 1>.民主制程序員組
2>.主程序員組(特性:專業(yè)化、層次化)3>.現(xiàn)代程序員組
軟件質(zhì)量:軟件與明確的和隱含的定義的需求相一致的程序.具體地說是:軟件與明確的敘述的功能和性能需求,文檔中明確描述的開發(fā)標(biāo)準(zhǔn)以及任何專業(yè)開發(fā)的軟件產(chǎn)品都應(yīng)該具有的隱含特征相一致的程度.軟件質(zhì)量保證措施:(軟件復(fù)審是最重要的之一)1>.基于非執(zhí)行的測試 2>.基于執(zhí)行的測試 3>.程序正確性證明
正式技術(shù)復(fù)審包括走查和審查.走查有兩種方式:參與者驅(qū)動法,文檔驅(qū)動法。審查的基本步驟:綜述,準(zhǔn)備,審查,返工,跟蹤。
軟件配置管理員是應(yīng)用于整個軟件過程中的保護(hù)性活動,是在軟件整個生命期內(nèi)管理變化的一組活動。目標(biāo)是使變化能夠更正確且更容易被適應(yīng),在需要修改軟件時減少為此而花費的工作量。
能力成熟度模型是改進(jìn)軟件過程的有效策略,以增量方式逐步引入變量,明確定義了5個成熟度級。一個軟件開發(fā)組織可用一系列小的改良性步驟買入更高的成熟度等級。
第三篇:卷-軟件工程導(dǎo)論
21.系統(tǒng)流程圖是描述物理模型的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中各個元素表達(dá)了系統(tǒng)中各種元素之間的(信息流動)情況。
[解析]系統(tǒng)流程圖是描述物理系統(tǒng)的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中的各個元素,如人工處理、數(shù)據(jù)處理、數(shù)據(jù)庫、文件、設(shè)備等,表達(dá)了元素之間的信息流動的情況。22.成本效益分析的目的是從(經(jīng)濟)角度評價開發(fā)一個項目是否可行。[解析]成本效益分析首先是估算將要開發(fā)的系統(tǒng)的開發(fā)成本,然后與可能取得的效益進(jìn)行比較和權(quán)衡,其目的是從經(jīng)濟角度評價開發(fā)一個新的軟件項目是否可行。
23.自頂向下結(jié)合的漸增式測試法,在組合模塊時有兩種組合策略:深度優(yōu)先策略和(寬度優(yōu)先策略)。
[解析]漸增式測試法有自頂向下結(jié)合和自底向上結(jié)合兩種組裝模塊的方法,其中自頂向下集成是構(gòu)造程序結(jié)構(gòu)的一種增量式方式,不需要編寫驅(qū)動模塊,只需要編寫樁模塊。它從主控模塊開始,按照軟件的控制層次結(jié)構(gòu),以深度優(yōu)先或?qū)挾葍?yōu)先的策略,逐步把各個模塊集成在一起。
24.獨立路徑是指包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條(在其他獨立路徑中未有過)的邊的路徑。[解析]在基本路徑測試中,以詳細(xì)設(shè)計或源程序為基礎(chǔ),導(dǎo)出控制流程圖的拓?fù)浣Y(jié)構(gòu)——程序圖,在計算了程序圖的環(huán)路復(fù)雜性之后,確定只包含獨立路徑的基本路徑圖,其中獨立路徑是包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條在其他獨立路徑中未有過的邊的路徑。
25.匯編語言是面向(機器)的,可以完成高級語言無法完成的特殊功能,如與外部設(shè)備之間的一些接口工作。
[解析]匯編語言屬于低級語言,是一種面向機器的語言,它與高級語言相比有許多優(yōu)越性:如操作靈活,可以直接作用到硬件的最下層,完成與外部設(shè)備的接口工作等,是能夠利用計算機硬件特性直接控制硬件設(shè)備的唯一語言。
26.在JSP方法中解決結(jié)構(gòu)沖突的具體辦法是(中間數(shù)據(jù)結(jié)構(gòu)或中間文件)。
[解析]JSP方法是面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法。它定義了一組以數(shù)據(jù)結(jié)構(gòu)為指導(dǎo)的映射過程,根據(jù)輸入、輸出的數(shù)據(jù)結(jié)構(gòu),按一定的規(guī)則映射成軟件的過程描述,在JSP方法中解決結(jié)構(gòu)沖突的具體辦法是引入中間數(shù)據(jù)結(jié)構(gòu)或中間文件,將沖突部分分隔開來,建立多個程序結(jié)構(gòu),再利用中間文件把它們聯(lián)系起來,構(gòu)成一個系統(tǒng)的整體。
27.詳細(xì)設(shè)計的任務(wù)是確定每個模塊的內(nèi)部特性,即模塊的算法、(使用的數(shù)據(jù))。[解析]詳細(xì)設(shè)計的基本任務(wù)是為每個模塊進(jìn)行詳細(xì)的算法設(shè)計,為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計,確定每個模塊的內(nèi)部特性,包括模塊的算法和使用的數(shù)據(jù)。對數(shù)據(jù)庫進(jìn)行物理設(shè)計等。28.所有軟件維護(hù)申請報告要按規(guī)定方式提出,該報告也稱(軟件問題)報告。[解析]在軟件維護(hù)的流程中,第一步就是制定維護(hù)申請報告,也稱為軟件問題報告,它是維護(hù)階段的一種文檔,由申請維護(hù)的用戶填寫。
29.有兩類維護(hù)技術(shù):在開發(fā)階段使用來減少錯誤、提高軟件可維護(hù)性的面向維護(hù)的技術(shù);在維護(hù)階段用來提高維護(hù)的效率和質(zhì)量的(維護(hù)支援)技術(shù)。[解析]面向維護(hù)的技術(shù)涉及軟件開發(fā)的所有階段,能夠減少軟件錯誤,提高軟件的可維護(hù)性。而維護(hù)支援技術(shù)則包含信息收集,錯誤原因分析,維護(hù)方案評價等項,是在軟件維護(hù)階段用來提高維護(hù)效率和質(zhì)量的技術(shù)。
30.科學(xué)工程計算需要大量的標(biāo)準(zhǔn)庫函數(shù),以便處理復(fù)雜的數(shù)值計算,可供選擇的語言有:(FORTRAN語言)、PASCAL語言、C語言和PL/1語言。
[解析]計算機語言根據(jù)不同行業(yè)的需求,使用的側(cè)重點也不盡相同,在辦公管理方面,一些數(shù)據(jù)庫語言如FOXPRO、ORICAL有很多的應(yīng)用,在工程行業(yè),計算機語言的科學(xué)計算能力就顯得格外重要,如MATLAB、PL/
1、FORTRAN語言都是工程計算中常用的語言。
解:投資回收期就是使累計的經(jīng)濟效益等于最初的投資費用所需的時間。[解析]通常我們用投資回收期來衡量一個開發(fā)項目的價值,投資回收期越短,就越快獲得利潤。34.對應(yīng)關(guān)系
解:即有直接因果關(guān)系在程序中可以同時處理。[解析]對應(yīng)關(guān)系是指數(shù)據(jù)單元在數(shù)據(jù)內(nèi)容上、數(shù)量上和順序上有直接的因果關(guān)系,對于重復(fù)的數(shù)據(jù)單元,重復(fù)的次序和次數(shù)都相同才有對應(yīng)關(guān)系。35.結(jié)構(gòu)沖突
解:輸入數(shù)據(jù)與輸出數(shù)據(jù)結(jié)構(gòu)找不到對應(yīng)關(guān)系的情況,稱為結(jié)構(gòu)沖突。
[解析]使用JSP方法時會遇到此類結(jié)構(gòu)沖突問題,對此,Jackson提出了引入中間數(shù)據(jù)結(jié)構(gòu)或中間文件的辦法,將沖突部分分隔開來,建立多個程序結(jié)構(gòu),再利用中間文件把它們聯(lián)系起來,構(gòu)成一個系統(tǒng)的整體。
40.請使用PAD圖和PDL語言描述在數(shù)組A(1)~A(10)中找最大數(shù)的算法。解:PDL語言: N=1 WHILE N<=10 DO IF A(N)<=A(N+1)MAX =A(N+1);ELSE MAX =A(N)ENDIF;N=N+1;ENDWHILE;PAD圖:
42.某電器集團(tuán)公司下屬的廠包括技術(shù)科、生產(chǎn)科等基層單位。現(xiàn)在想建立一個計算機輔助企業(yè)管理系統(tǒng),其中: 生產(chǎn)科的任務(wù)是:
(1)根據(jù)銷售公司轉(zhuǎn)來的內(nèi)部合同(產(chǎn)品型號、規(guī)格、數(shù)量、交獲日期)制定車間月生產(chǎn)計劃。
(2)根據(jù)車間實際生產(chǎn)日報表、周報表調(diào)整月生產(chǎn)計劃
(3)以月生產(chǎn)計劃為以及,制定產(chǎn)品設(shè)計(結(jié)構(gòu)、工藝)及產(chǎn)品組裝月計劃。(4)將產(chǎn)品的組裝計劃傳達(dá)到各科,將組裝月計劃分解為周計劃,下達(dá)給車間 技術(shù)科的任務(wù)是:
(1)根據(jù)生產(chǎn)科轉(zhuǎn)來的組裝計劃進(jìn)行產(chǎn)品結(jié)構(gòu)設(shè)計,產(chǎn)生產(chǎn)品裝配圖給生產(chǎn)科,產(chǎn)生外購需求計劃給供應(yīng)科,并產(chǎn)生產(chǎn)品自制物料清單。
(2)根據(jù)組裝計劃進(jìn)行產(chǎn)品工藝設(shè)計,根據(jù)產(chǎn)品自制物料清單產(chǎn)生工藝流程圖給零件廠。試寫出以上系統(tǒng)中生產(chǎn)科和技術(shù)科處理的軟件結(jié)構(gòu)圖。解
[解析]軟件結(jié)構(gòu)圖是軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個系統(tǒng)的功能實現(xiàn),即將來程序的控制層次體系,軟件結(jié)構(gòu)往往用樹狀或網(wǎng)狀結(jié)構(gòu)的圖形來表示,其主要內(nèi)容有模塊及模塊的控制關(guān)系,根據(jù)題意,可繪制出生產(chǎn)科和技術(shù)科的軟件結(jié)構(gòu)圖,其中生產(chǎn)科的結(jié)構(gòu)圖深度和寬度均為4,技術(shù)科的結(jié)構(gòu)圖的深度和寬度均為3
填空題
1.在信息處理和計算機領(lǐng)域內(nèi),一般認(rèn)為軟件是 _程序、_文檔____ 和_數(shù)據(jù)
2.數(shù)據(jù)流圖的基本組成部分有 數(shù)據(jù)的源點與終點、數(shù)據(jù)流_、加工、數(shù)據(jù)文件。3.數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成了系統(tǒng)的邏輯模型,是需求規(guī)格說明書的主要組成部分。4.劃分模塊時盡量做到__高內(nèi)聚、低耦合,保持模塊的獨立性,盡量使用公共模塊。5.類的實例化是_對象_______。
6.人們常用硬件可靠性的定量度量方法來度量軟件的可靠性和可用性,常用的度量軟件可靠性的兩個指標(biāo)是_成功地運行的概率_______和_平均故障時間_______。8.將待開發(fā)的軟件細(xì)化,分別估算每一個子任務(wù)所需要的開發(fā)工作量,然后將它們加起來,將得到軟件的總開發(fā)量。這種成本估算方法稱為_自底向上_______。
9.如果一個模塊被 n 個模塊調(diào)用,其中直接的上級模塊的個數(shù)是 m 個(m<=n)那么該模塊的扇入數(shù)是 ____N_______ 個。
10.結(jié)構(gòu)化設(shè)計以 __數(shù)據(jù)流圖_________ 為基礎(chǔ),按一定的步驟映射成軟件結(jié)構(gòu)。
11.軟件的風(fēng)險分析可包括風(fēng)險識別、風(fēng)險預(yù)測 和風(fēng)險駕馭(或風(fēng)險管理)等3項活動。12.軟件著作權(quán)登記的3種主要類型:(1)著作權(quán)登記;(2)著作權(quán)延續(xù)登記;(3)權(quán)利轉(zhuǎn)移備案登記。
13.軟件工程管理的主要內(nèi)容有:項目經(jīng)費管理,軟件質(zhì)量管理,項目進(jìn)度管理和人員管理。15.面向?qū)ο蠓治龅哪康氖菍陀^世界的系統(tǒng)進(jìn)行 ___建模_______________。16.軟件維護(hù)工作的生產(chǎn)性活動包括分析評價、修改設(shè)計和 ____編寫程序代碼等。17.為了使應(yīng)用軟件適應(yīng)計算機環(huán)境的變化而 ___修改軟件的過程稱為適應(yīng)性維護(hù)。18.一個進(jìn)行學(xué)生成績統(tǒng)計的模塊其功能是先對學(xué)生的成績進(jìn)行累加,然后求平均值,則該模塊的內(nèi)聚性是 __________順序內(nèi)聚________。
19.投資回收期就是使累計的經(jīng)濟效益等于 __最初的投資費用_所需的時間。
20.軟件生存周期是指一個軟件從提出開發(fā)要求開始直到 _軟件廢棄_為止的整個時期。21.曾被譽為“程序設(shè)計方法的革命”的 結(jié)構(gòu)化 程序設(shè)計,使程序設(shè)計從主要依賴于程序員個人的自由活動變成為有章可循的一門科學(xué)。
22.從結(jié)構(gòu)化程序設(shè)計到 面向?qū)ο蟪绦蛟O(shè)計,是程序設(shè)計方法的又一次飛躍。23.在單元測試時,需要為被測模塊設(shè)計___測試用例_______。
三、應(yīng)用題
1.商店業(yè)務(wù)處理系統(tǒng)的業(yè)務(wù)描述及數(shù)據(jù)流圖如下:
顧客到商店購物時,在經(jīng)過挑選之后填寫了一張訂單,詳細(xì)列出了想要購買的物品名稱、規(guī)格和數(shù)量等。商店接到訂單后首先查商品庫存,看是否有足夠的存貨。若有,則出庫且修改商品庫存文件,然后給顧客開發(fā)貨票,讓顧客交款、給顧客開收據(jù)并取貨,最后登記銷售歷史。若存貨不足,則暫存顧客訂單并向采購部門發(fā)出訂貨通知。采購部門根據(jù)商品庫存和暫存訂單信息向供應(yīng)商訂貨。待接到供應(yīng)商發(fā)來的相應(yīng)商品時,通知財務(wù)部門向供應(yīng)商付款,并向銷售部門發(fā)出到貨通知,同時,采購部門要修改商品庫存和暫存訂單信息。當(dāng)銷售部門接到到貨通知時,應(yīng)通知顧客來付款取貨。財務(wù)部門依據(jù)供應(yīng)商送來的收據(jù)記賬。
試求解下列問題: 1).針對處理1,給出該處理的一級細(xì)化的DFD(要求給出合適的數(shù)據(jù)流與數(shù)據(jù)存儲說明); 2).針對處理2,給出該處理的一級細(xì)化的DFD(要求給出合適的數(shù)據(jù)流與數(shù)據(jù)存儲說明); 3).給出“發(fā)貨單”的DD定義; 4).給出“訂貨單”的DD定義; 5).根據(jù)你對問題的理解,給出“商品庫存”這個數(shù)據(jù)存儲的數(shù)據(jù)結(jié)構(gòu)描述。6).根據(jù)你對問題的理解,給出“銷售歷史”這個數(shù)據(jù)存儲的數(shù)據(jù)結(jié)構(gòu)描述。
第一章:軟件工程學(xué)概述 一.填空題
1.計算機科學(xué)中的研究成果均可用于軟件工程,但計算機科學(xué)更側(cè)重于_____________、而 軟件工程側(cè)重于_____________。
2.計算機程序及其說明程序的各種文檔稱為_____________。計算任務(wù)的處理圖像對象和處 理規(guī)則的描述稱為_____________。有關(guān)計算機程序功能、設(shè)計、編制、使用的文字或圖形資
料稱為_____________。
3.軟件開發(fā)環(huán)境是相關(guān)一組_____________的集合,它支持一定的軟件開發(fā)方法或按照一定 的軟件開發(fā)模型組織而成的。
4.CASE這一術(shù)語的英文是_____________。
5._____________是指工具運行在相同的硬件/操作系統(tǒng)平臺上。_____________是指工具使 用共享數(shù)據(jù)模型來操作。_____________是指工具提供相同的用戶界面。
6.根據(jù)支持的范圍,CASE工具可分為_____________、_____________和_____________工具。
7.軟件危機的主要原因有_____________和_____________。8._____________模型是一種非整體開發(fā)的模型。軟件在該模型中是“逐漸”開發(fā)處理的,開發(fā)出一部分,向用戶展示一部分,可讓用戶及早看到部分軟件,及早發(fā)現(xiàn)問題。或者先開 發(fā)一個“原型”軟件,完成部分主要功能,展示給用戶并征求意見,然后逐步完善,最終獲 得滿意的軟件產(chǎn)品。
9.結(jié)構(gòu)化方法總得指導(dǎo)思想是_____________。它的基本原則是功能的_____________與___ __________。它是軟件工程中最早出現(xiàn)的開發(fā)方法,特別適用于數(shù)據(jù)處理領(lǐng)域的問題。10.面向?qū)ο箝_發(fā)方法包括_____________、_____________、_____________、三部分。11.瀑布模型是將軟件生存周期各個活動規(guī)定為依線性順序連接的若干階段的模型。它包括_____________、項目開發(fā)計劃、_____________、_____________、_____________、_ ____________、_____________、_____________,它規(guī)定了由前至后、相互銜接的固定次序,如同瀑布流水,逐級下落。12.瀑布模型本質(zhì)上是一種_____________順序模型。
13.構(gòu)造原型時,必須注意_____________取舍,忽略一切暫時不關(guān)心的部分。
14.屬性指的是類中對象所具有的_____________。不同對象的同一屬性可以具有相同或不同 的_____________。
15.結(jié)構(gòu)化方法和原型化方法是軟件開發(fā)中常使用的兩種方法,在實際的應(yīng)用中,它們之間 的關(guān)系表現(xiàn)為_____________。解答: 1.原理和理論、如何建造一個軟件系統(tǒng) 2.文件、程序、文檔; 3.軟件工具; 4.Computer Aided Software Engineering;5.平臺集成、數(shù)據(jù)集成、表示集成; 6.窄支持、較寬支持、一般支持; 7.軟件本身的特點、缺乏好的開發(fā)方法和手段; 8.增量; 9.自頂而下逐步求精、分解、抽象; 10.面向?qū)ο蠓治觥⒚嫦驅(qū)ο笤O(shè)計、面向?qū)ο髮崿F(xiàn); 11.可行性分析、需求分析、概要設(shè)計、詳細(xì)設(shè)計、編碼、測試、維護(hù); 12.線性; 13.功能性能; 14.性質(zhì)(數(shù)據(jù)值)、屬性值; 15.相互補充;第二章: 可行性研究 一.填空題
1.數(shù)據(jù)詞典中四種類型的條目是_____________、_____________、_____________和加工。2._____________的目的就是用最小的代價在盡可能短的時間內(nèi)確定該軟件項目是否能夠開 發(fā),是否值得開發(fā)。
3.可行性研究的目的不是去開發(fā)一個軟件項目,而是研究這個軟件項目是否_____________。
4.可行性研究實質(zhì)上是要進(jìn)行一次簡化、壓縮了的_____________和_____________過程,要在較高層次上以較抽象的方式進(jìn)行需求分析和設(shè)計過程。
5.可行性研究需要從_____________可行性、_____________可行性、_____________可行性 三個方面分析研究每種解決方法的可行性。
6.成本-效益分析首先是估算將要開發(fā)的系統(tǒng)的_____________,然后與可能取得的效益進(jìn) 行_____________。
7.投資回收期就是使累計的經(jīng)濟效益等于最初的投資費用所需要的時間。項目的_________ ____是指在整個生命周期之內(nèi)的累計經(jīng)濟效益(折合成現(xiàn)在值)與投資之差。8.軟件工程有兩種效益,它們是_____________和_____________。
9.成本-效益分析的目的是從_____________評價開發(fā)一個新的軟件項目是否可行。10.研究開發(fā)資源的有效性是進(jìn)行_____________可行性研究的一方面。
11.在軟件的可行性研究中,可以從不同的角度對軟件進(jìn)行研究,其中是從軟件的功能可行 性角度考慮的是_____________。12.制定軟件計劃的目的在于盡早對欲開發(fā)的軟件進(jìn)行合理估價,軟件計劃的任務(wù)是_______ ______。
13.數(shù)據(jù)流圖是常用的進(jìn)行軟件需求分析的圖形工具,其基本符合是_____________、______ _______、_____________和_____________。
14.決定大型程序模型組織基本原則的兩種交替設(shè)計策略為_____________和_____________。
15.軟件系統(tǒng)可行性分析應(yīng)考慮_____________、_____________、_____________和________ _____等方面因素。解答: 1.數(shù)據(jù)流、數(shù)據(jù)存儲、數(shù)據(jù)項、加工2.軟件可行性研究 3.值得去開發(fā)且其中的問題能否解決; 4.需求分析、設(shè)計 5.技術(shù)、經(jīng)濟、社會 6.開發(fā)成本、比較和權(quán)衡 7.純收入 8.無形效益、有形效益 9.經(jīng)濟角度 10.技術(shù) 11.技術(shù)可行性 12.規(guī)劃與調(diào)度 13.加工、數(shù)據(jù)流、數(shù)據(jù)存儲、外部實體 14.數(shù)據(jù)分解、算法分解 15.經(jīng)濟、技術(shù)、社會環(huán)境和人。第三章: 需求分析 一.填空題
1.軟件需求分析過程應(yīng)該建立_____________、_____________和_____________ 三種模型。2.需求分析的基本任務(wù)是要準(zhǔn)確地定義_____________,為了滿足用戶需要,回答系統(tǒng)必須 做什么的問題。
3.數(shù)據(jù)流圖有4個基本成分:_____________、_____________、_____________和_________ ____。
4.流向數(shù)據(jù)存儲的數(shù)據(jù)流可理解為_____________文件或_____________文件,從數(shù)據(jù)存儲 流出的數(shù)據(jù)可理解為從文件_____________數(shù)據(jù)或得到_____________結(jié)果。
5.需求分析的困難主要體現(xiàn)在4個方面:問題的復(fù)雜性、_____________、_____________需
求易變性。
6.由于數(shù)據(jù)流是流動中的數(shù)據(jù),所以必須有_____________。除了與_____________之間的 數(shù)據(jù)流不用命名外,數(shù)據(jù)流應(yīng)該用名詞或名詞短語命名。
7.結(jié)構(gòu)化分析方法是面向_____________進(jìn)行需求分析的方法。8.經(jīng)過需求分析,開發(fā)人員已經(jīng)基本上理解了用戶的要求,確定了目標(biāo)系統(tǒng)的功能,定義 了系統(tǒng)數(shù)據(jù),描述了處理這些數(shù)據(jù)的基本策略。將這些共同的理解進(jìn)行了整理,最后形成文 檔_____________。
9.在數(shù)據(jù)流圖中,有名字及方向的成分是_____________。
10.在軟件需求分析中,開發(fā)人員要從用戶那里解決的最重要的問題是_____________。11.需求分析的最終結(jié)果是產(chǎn)生_____________。12.SA方法用DFD描述_____________。13.SA方法的基本思想是_____________。
14.常用的需求分析方法有面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法,_____________,面向數(shù)據(jù)結(jié)構(gòu) 的
分析方法等。
15.通過_____________可以完成數(shù)據(jù)流圖的細(xì)化。解答: 1.數(shù)據(jù)模型、功能模型、行為模型 2.新系統(tǒng)的目標(biāo) 3.數(shù)據(jù)流、加工(又稱數(shù)據(jù)處理)、數(shù)據(jù)存儲、數(shù)據(jù)源點和終點 4.寫入、查詢、讀、查詢 5.交流障礙、不完備性和不一致性 6.流向、數(shù)據(jù)存儲 7.數(shù)據(jù)流 8.需求說明書 9.數(shù)據(jù)流 10.要讓軟件做什么 11.需求規(guī)格說明書 12.系統(tǒng)的功能 13.自頂向下逐步分解 14.面向?qū)ο蟮姆治龇椒?15.功能分解 第五章: 總體設(shè)計 一.填空題
1.過程設(shè)計語言的重復(fù)結(jié)構(gòu)有_____________結(jié)構(gòu)、_____________結(jié)構(gòu)_____________、結(jié) 構(gòu)三種。
2.結(jié)構(gòu)化程序設(shè)計方法的基本要點是:(1)采用_____________、_____________、的程序 設(shè)計方法;(2)使用_____________構(gòu)造程序;(3)主程序員組的組織形式。
3.在詳細(xì)設(shè)計階段,為了提高數(shù)據(jù)的輸入、存儲、檢索等操作的效率并節(jié)約存儲空間,對 某些數(shù)據(jù)項的值要進(jìn)行_____________設(shè)計。
4.任何程序都可由_____________、_____________和_____________三種基本控制結(jié)構(gòu)構(gòu)造。這三種基本結(jié)構(gòu)的共同點是_____________、_____________。
5.在詳細(xì)設(shè)計階段,除了對模塊內(nèi)的算法進(jìn)行設(shè)計,還應(yīng)對模塊內(nèi)的_____________進(jìn)行設(shè) 計。
6.在詳細(xì)設(shè)計階段,經(jīng)常采用的工具有_____________、PDL、PAD等。7.在單元測試中,測試一個模塊時,需要設(shè)計_____________。
8.軟件產(chǎn)品在交付使用之前一般要經(jīng)過以下4步測試_____________、_____________、____ _________、_____________。
9.軟件測試用例由_____________和_____________組成。10.用黑盒技術(shù)設(shè)計測試用例的方法有_____________、_____________、_____________和__ ___________。
11.源程序中加注釋是幫助理解程序的重要手段,注釋分為_____________、_____________ 兩類。
12.近年來,推出了許多面向?qū)ο蟮恼Z言,如_____________、_____________等。
13.匯編語言是面向_____________的,可以完成_____________語言無法滿足要求的特殊功 能,如與外部設(shè)備之間的一些接口操作。
14.語句構(gòu)造的原則是簡單直接,不能為了追求效率而使代碼_____________ 15._____________是指程序從一個計算機環(huán)境移植到另一個計算機環(huán)境的容易程度 解答: 1.for、while、until 2.自頂向下、逐步求精、三種基本控制結(jié)構(gòu) 3.代碼 4.順序、選擇、重復(fù)、單入口、單出口 5.數(shù)據(jù)結(jié)構(gòu) 6.程序流程圖 7.驅(qū)動模塊和樁模塊 8.單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試 9.測試輸入數(shù)據(jù)和對應(yīng)的預(yù)期輸出 10.等價類劃分、邊界值分析、錯誤推斷、因果圖 11.序言行注釋、功能性注釋 12.C++、JAVA 13.機器、高級 14.復(fù)雜化; 15.可移植性。
第四篇:軟件工程導(dǎo)論試題
軟件工程導(dǎo)論試題 一.選擇
1、瀑布模型把軟件生命周期劃分為八個階段:問題的定義、可行性研究、軟件需求分析、系統(tǒng)總體設(shè)計、詳細(xì)設(shè)計、編碼、測試和運行、維護(hù)。八個階段又可歸納為三個大的階段:計劃階段、開發(fā)階段和(C)。A、詳細(xì)計劃 B、可行性分析
C、運行階段 D、測試與排錯
2、從結(jié)構(gòu)化的瀑布模型看,在它的生命周期中的八個階段中,下面的幾個選項中哪個環(huán)節(jié)出錯,對軟件的影響最大(C)。A、詳細(xì)設(shè)計階段 B、概要設(shè)計階段 C、需求分析階段 D、測試和運行階段
3、在結(jié)構(gòu)化的瀑布模型中,哪一個階段定義的標(biāo)準(zhǔn)將成為軟件測試中的系統(tǒng)測試階段的目標(biāo)(A)。
A、需求分析階段 B、詳細(xì)設(shè)計階段 C、概要設(shè)計階段 D、可行性研究階段
4、軟件工程的出現(xiàn)主要是由于(C)。
A.程序設(shè)計方法學(xué)的影響 B.其它工程科學(xué)的影響 C.軟件危機的出現(xiàn) D.計算機的發(fā)展
5、軟件工程方法學(xué)的目的是:使軟件生產(chǎn)規(guī)范化和工程化,而軟件工程方法得以實施的主要保證是(C)A、硬件環(huán)境 B、軟件開發(fā)的環(huán)境 C、軟件開發(fā)工具和軟件開發(fā)的環(huán)境 D、開發(fā)人員的素質(zhì)
6、軟件開發(fā)常使用的兩種基本方法是結(jié)構(gòu)化和原型化方法,在實際的應(yīng)用中,它們之間的關(guān)系表現(xiàn)為(B)A、相互排斥 B、相互補充
C、獨立使用 D、交替使用
7、UML是軟件開發(fā)中的一個重要工具,它主要應(yīng)用于哪種軟件開發(fā)方法(C)A、基于瀑布模型的結(jié)構(gòu)化方法 B、基于需求動態(tài)定義的原型化方法 C、基于對象的面向?qū)ο蟮姆椒?D、基于數(shù)據(jù)的數(shù)據(jù)流開發(fā)方法
8、在下面的軟件開發(fā)方法中,哪一個對軟件設(shè)計和開發(fā)人員的開發(fā)要求最高(B)A、結(jié)構(gòu)化方法 B、原型化方法 C、面向?qū)ο蟮姆椒?D、控制流方法
9、結(jié)構(gòu)化分析方法是一種預(yù)先嚴(yán)格定義需求的方法,它在實施時強調(diào)的是分析對象的(B)A、控制流 B、數(shù)據(jù)流 C、程序流 D、指令流
10、軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成(A)A、計劃階段、開發(fā)階段、運行階段 B、計劃階段、編程階段、測試階段 C、總體設(shè)計、詳細(xì)設(shè)計、編程調(diào)試 D、需求分析、功能定義、系統(tǒng)設(shè)計
11、軟件開發(fā)中常采用的結(jié)構(gòu)化生命周期方法,由于其特征而一般稱其為(A)A、瀑布模型 B、對象模型 C、螺旋模型 D、層次模型
12、軟件開發(fā)的瀑布模型,一般都將開發(fā)過程劃分為:分析、設(shè)計、編碼和測試等階段,一般認(rèn)為可能占用人員最多的階段是(C)A、分析階段 B、設(shè)計階段 C、編碼階段 D、測試階段 二.填空
21.系統(tǒng)流程圖是描述物理模型的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中各個元素表達(dá)了系統(tǒng)中各種元素之間的(信息流動)情況。
[解析]系統(tǒng)流程圖是描述物理系統(tǒng)的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中的各個元素,如人工處理、數(shù)據(jù)處理、數(shù)據(jù)庫、文件、設(shè)備等,表達(dá)了元素之間的信息流動的情況。
22.成本效益分析的目的是從(經(jīng)濟)角度評價開發(fā)一個項目是否可行。
[解析]成本效益分析首先是估算將要開發(fā)的系統(tǒng)的開發(fā)成本,然后與可能取得的效益進(jìn)行比較和權(quán)衡,其目的是從經(jīng)濟角度評價開發(fā)一個新的軟件項目是否可行。23.自頂向下結(jié)合的漸增式測試法,在組合模塊時有兩種組合策略:深度優(yōu)先策略和(寬度優(yōu)先策略)。
[解析]漸增式測試法有自頂向下結(jié)合和自底向上結(jié)合兩種組裝模塊的方法,其中自頂向下集成是構(gòu)造程序結(jié)構(gòu)的一種增量式方式,不需要編寫驅(qū)動模塊,只需要編寫樁模塊。它從主控模塊開始,按照軟件的控制層次結(jié)構(gòu),以深度優(yōu)先或?qū)挾葍?yōu)先的策略,逐步把各個模塊集成在一起。
24.獨立路徑是指包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條(在其他獨立路徑中未有過)的邊的路徑。
[解析]在基本路徑測試中,以詳細(xì)設(shè)計或源程序為基礎(chǔ),導(dǎo)出控制流程圖的拓?fù)浣Y(jié)構(gòu)——程序圖,在計算了程序圖的環(huán)路復(fù)雜性之后,確定只包含獨立路徑的基本路徑圖,其中獨立路徑是包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條在其他獨立路徑中未有過的邊的路徑。
25.匯編語言是面向(機器)的,可以完成高級語言無法完成的特殊功能,如與外部設(shè)備之間的一些接口工作。
[解析]匯編語言屬于低級語言,是一種面向機器的語言,它與高級語言相比有許多優(yōu)越性:如操作靈活,可以直接作用到硬件的最下層,完成與外部設(shè)備的接口工作等,是能夠利用計算機硬件特性直接控制硬件設(shè)備的唯一語言。
26.在JSP方法中解決結(jié)構(gòu)沖突的具體辦法是(中間數(shù)據(jù)結(jié)構(gòu)或中間文件)。
[解析]JSP方法是面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法。它定義了一組以數(shù)據(jù)結(jié)構(gòu)為指導(dǎo)的映射過程,根據(jù)輸入、輸出的數(shù)據(jù)結(jié)構(gòu),按一定的規(guī)則映射成軟件的過程描述,在JSP方法中解決結(jié)構(gòu)沖突的具體辦法是引入中間數(shù)據(jù)結(jié)構(gòu)或中間文件,將沖突部分分隔開來,建立多個程序結(jié)構(gòu),再利用中間文件把它們聯(lián)系起來,構(gòu)成一個系統(tǒng)的整體。
27.詳細(xì)設(shè)計的任務(wù)是確定每個模塊的內(nèi)部特性,即模塊的算法、(使用的數(shù)據(jù))。
[解析]詳細(xì)設(shè)計的基本任務(wù)是為每個模塊進(jìn)行詳細(xì)的算法設(shè)計,為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計,確定每個模塊的內(nèi)部特性,包括模塊的算法和使用的數(shù)據(jù)。對數(shù)據(jù)庫進(jìn)行物理設(shè)計等。
28.所有軟件維護(hù)申請報告要按規(guī)定方式提出,該報告也稱(軟件問題)報告。
[解析]在軟件維護(hù)的流程中,第一步就是制定維護(hù)申請報告,也稱為軟件問題報告,它是維護(hù)階段的一種文檔,由申請維護(hù)的用戶填寫。
29.有兩類維護(hù)技術(shù):在開發(fā)階段使用來減少錯誤、提高軟件可維護(hù)性的面向維護(hù)的技術(shù);在維護(hù)階段用來提高維護(hù)的效率和質(zhì)量的(維護(hù)支援)技術(shù)。
[解析]面向維護(hù)的技術(shù)涉及軟件開發(fā)的所有階段,能夠減少軟件錯誤,提高軟件的可維護(hù)性。而維護(hù)支援技術(shù)則包含信息收集,錯誤原因分析,維護(hù)方案評價等項,是在軟件維護(hù)階段用來提高維護(hù)效率和質(zhì)量的技術(shù)。
30.科學(xué)工程計算需要大量的標(biāo)準(zhǔn)庫函數(shù),以便處理復(fù)雜的數(shù)值計算,可供選擇的語言有:(FORTRAN語言)、PASCAL語言、C語言和PL/1語言。
[解析]計算機語言根據(jù)不同行業(yè)的需求,使用的側(cè)重點也不盡相同,在辦公管理方面,一些數(shù)據(jù)庫語言如FOXPRO、ORICAL有很多的應(yīng)用,在工程行業(yè),計算機語言的科學(xué)計算能力就顯得格外重要,如MATLAB、PL/
1、FORTRAN語言都是工程計算中常用的語言。三.判斷
1.軟件的開發(fā)與運行經(jīng)常受到硬件的限制和制約。(√)
2.模塊內(nèi)的高內(nèi)聚往往意味著模塊間的松耦合。(√)
3.Jackson圖只能表達(dá)程序結(jié)構(gòu),不能表達(dá)數(shù)據(jù)結(jié)構(gòu)。(X)
上述數(shù)據(jù)流圖表示數(shù)據(jù)A和B同時輸入變換成C。(X)
5.軟件的質(zhì)量好壞主要由驗收人員負(fù)責(zé),其他開發(fā)人員不必關(guān)心。(X)
6.判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。(√)
7.應(yīng)該盡量使用機器語言編寫代碼,提高程序運行效率,而減少高級語言的使用。(X)
8.UML只能應(yīng)用于軟件系統(tǒng)模型的建立。(X)
9.容錯就是每個程序采用兩種不同的算法編寫。(X)
10.軟件測試的目的是為了無一遺漏的找出所有的錯誤。(X)
四、名詞解釋題(本大題共5小題,每小題3分,共15分)
31.軟件開發(fā)環(huán)境
32.錯誤推測法
33.黑盒測試法
34.軟件質(zhì)量保證
35.瀑布模型 31.經(jīng)濟可行性
解:進(jìn)行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項目是否值得投資開發(fā)。
[解析]對于一個系統(tǒng)所必須要衡量的是經(jīng)濟上是否合算,經(jīng)濟可行性的范圍很廣,包括效益分析、潛在市場前景等。
32.社會可行性
解:要開發(fā)的項目是否存在任何侵犯、妨礙等責(zé)任問題,要開發(fā)項目目的運行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。
[解析]社會可行性包括合同、責(zé)任、侵權(quán)等技術(shù)人員不甚了解的諸多問題。
33.投資回收期
解:投資回收期就是使累計的經(jīng)濟效益等于最初的投資費用所需的時間。
[解析]通常我們用投資回收期來衡量一個開發(fā)項目的價值,投資回收期越短,就越快獲得利潤。
34.對應(yīng)關(guān)系
解:即有直接因果關(guān)系在程序中可以同時處理。
[解析]對應(yīng)關(guān)系是指數(shù)據(jù)單元在數(shù)據(jù)內(nèi)容上、數(shù)量上和順序上有直接的因果關(guān)系,對于重復(fù)的數(shù)據(jù)單元,重復(fù)的次序和次數(shù)都相同才有對應(yīng)關(guān)系。
35.結(jié)構(gòu)沖突
解:輸入數(shù)據(jù)與輸出數(shù)據(jù)結(jié)構(gòu)找不到對應(yīng)關(guān)系的情況,稱為結(jié)構(gòu)沖突。
[解析]使用JSP方法時會遇到此類結(jié)構(gòu)沖突問題,對此,Jackson提出了引入中間數(shù)據(jù)結(jié)構(gòu)或中間文件的辦法,將沖突部分分隔開來,建立多個程序結(jié)構(gòu),再利用中間文件把它們聯(lián)系起來,構(gòu)成一個系統(tǒng)的整體。
五、圖 a 中,模塊 G 為判定,判斷涉及到模塊 B、F、G,請指出設(shè)計中的錯誤,再根據(jù) 改進(jìn)模 塊圖的基本原則,畫出 1~2 個改進(jìn)方案(不改變模塊 G 的判斷關(guān)系),并說明是按照
哪條基本 原則進(jìn)行改進(jìn)的。
解:圖 b 為一個改進(jìn)方案,將模塊 G 的位置提高,使其作用范圍為控制范圍的子集,減 少模塊 之間的聯(lián)系。
40.請使用PAD圖和PDL語言描述在數(shù)組A(1)~A(10)中找最大數(shù)的算法。
解:PDL語言:
N=1
WHILE N<=10 DO
IF A(N)<=A(N+1)MAX =A(N+1);
ELSE MAX =A(N)ENDIF;
N=N+1;
ENDWHILE;
PAD圖:
[解析]人工查找時,是從第一個元素開始查找,用當(dāng)前元素與下一個元素比較,將較大者作為當(dāng)前元素又與下一元素比較,如此循環(huán),直到數(shù)組末尾。
41.根據(jù)下列條件使用等價類劃分法設(shè)計測試用例。
某一8位微機,其八進(jìn)制常數(shù)定義為:以零開頭的數(shù)是八進(jìn)制整數(shù),其值的范圍是-177~177,如05,0127,-065
解:(1)劃分等價類并編號,如下表示:(4分)
(2)為合理等價類設(shè)計測試用例,表中有兩個合理等價類,設(shè)計兩個例子(2分)
(3)為不合理等價類測試用例,至少設(shè)計一個測試用例(2分)
[解析]等價類劃分屬于黑盒測試的一種,它將輸入數(shù)據(jù)域按有效的或無效的劃分成若干個等價類,測試每個等價類的代表值就等于對該類其他值的測試,這樣用少量有代表性的例子代替大量測試目的相同的例子,可以有效提高測試效率。本題劃分了3個合理等價類,9個不合理等價類進(jìn)行測試,取到了預(yù)期的效果。
42.某電器集團(tuán)公司下屬的廠包括技術(shù)科、生產(chǎn)科等基層單位?,F(xiàn)在想建立一個計算機輔助企業(yè)管理系統(tǒng),其中:
生產(chǎn)科的任務(wù)是:
(1)根據(jù)銷售公司轉(zhuǎn)來的內(nèi)部合同(產(chǎn)品型號、規(guī)格、數(shù)量、交獲日期)制定車間月生產(chǎn)計劃。
(2)根據(jù)車間實際生產(chǎn)日報表、周報表調(diào)整月生產(chǎn)計劃
(3)以月生產(chǎn)計劃為以及,制定產(chǎn)品設(shè)計(結(jié)構(gòu)、工藝)及產(chǎn)品組裝月計劃。
(4)將產(chǎn)品的組裝計劃傳達(dá)到各科,將組裝月計劃分解為周計劃,下達(dá)給車間
技術(shù)科的任務(wù)是:
(1)根據(jù)生產(chǎn)科轉(zhuǎn)來的組裝計劃進(jìn)行產(chǎn)品結(jié)構(gòu)設(shè)計,產(chǎn)生產(chǎn)品裝配圖給生產(chǎn)科,產(chǎn)生外購需求計劃給供應(yīng)科,并產(chǎn)生產(chǎn)品自制物料清單。
(2)根據(jù)組裝計劃進(jìn)行產(chǎn)品工藝設(shè)計,根據(jù)產(chǎn)品自制物料清單產(chǎn)生工藝流程圖給零件廠。試寫出以上系統(tǒng)中生產(chǎn)科和技術(shù)科處理的軟件結(jié)構(gòu)圖。
解:
畫出生產(chǎn)科圖的給6分,畫出技術(shù)科的給4分。
[解析]軟件結(jié)構(gòu)圖是軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個系統(tǒng)的功能實現(xiàn),即將來程序的控制層次體系,軟件結(jié)構(gòu)往往用樹狀或網(wǎng)狀結(jié)構(gòu)的圖形來表示,其主要內(nèi)容有模塊及模塊的控制關(guān)系,根據(jù)題意,可繪制出生產(chǎn)科和技術(shù)科的軟件結(jié)構(gòu)圖,其中生產(chǎn)科的結(jié)構(gòu)圖深度和寬度均為4,技術(shù)科的結(jié)構(gòu)圖的深度和寬度均為3。
一、判斷題(每題2分,共30分)
1.螺旋模型是在瀑布模型和增量模型的基礎(chǔ)上增加了風(fēng)險分析活動。(對)
2.數(shù)據(jù)字典是對數(shù)據(jù)流圖中的數(shù)據(jù)流,加工、數(shù)據(jù)存儲、數(shù)據(jù)的源和終點進(jìn)行詳細(xì)定義。(錯)
3.JAVA語言編譯器是一個CASE工具。(對)。
4.軟件是指用程序設(shè)計語言(如PASCAL ,C,VISUAL BASIC 等)編寫的程序,軟件開發(fā)實際上就是
編寫程序代碼。(錯)
5.軟件模塊之間的耦合性越弱越發(fā)。(對)6.數(shù)據(jù)庫設(shè)計說明書是一個軟件配置項(對)
7.在面向?qū)ο蟮能浖_發(fā)方法中,每個類都存在其相應(yīng)的對象,類是對象的實例,對象是生成類的模
板。(錯)
8.過程描述語言可以用于描述軟件的系統(tǒng)結(jié)構(gòu)。(錯)
9.如果通過軟件測試沒有發(fā)現(xiàn)錯誤,則說明軟件是正確的。(錯)
10.快速原型模型可以有效地適應(yīng)用戶需求的動態(tài)變化。(對)
11.模塊化,信息隱藏,抽象和逐步求精的軟件設(shè)計原則有助于得到高內(nèi)聚,低耦合度的軟件產(chǎn)品。
(對)
12.集成測試主要由用戶來完成。(錯)
13.確認(rèn)測試計劃應(yīng)該在可行性研究階段制定(錯)
14.白盒測試無需考慮模塊內(nèi)部的執(zhí)行過程和程序結(jié)構(gòu),只要了解模塊的功能即可。(錯)
15.軟件概要設(shè)計包括軟件系統(tǒng)結(jié)構(gòu)設(shè)計以及數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫設(shè)計。(對)
二。單選題(每題2分,共20分)1.瀑布模型的關(guān)鍵不足在于(2)
(1)過于簡單(2)不能適應(yīng)需求的動態(tài)變更(3)過于靈活(4)各個階段需要進(jìn)行評審
2.在面向?qū)ο筌浖_發(fā)方法中,類與類之間主要有以下結(jié)構(gòu)關(guān)系(1)
(1)繼承和聚集(2)繼承和一般(3)聚集和消息傳遞(4)繼承和方法調(diào)用
3.以下哪一項不是軟件危機的表現(xiàn)形式(3)
(1)成本高(2)生產(chǎn)率低(3)技術(shù)發(fā)展快(4)質(zhì)量得不到保證
4.以下哪一項不是面向?qū)ο蟮奶卣鳎?)
(1)多態(tài)性(2)繼承性(3)封裝性(4)過程調(diào)用
5.面向?qū)ο竽P椭饕梢韵履男┠P徒M成(1)
(1)對象模型、動態(tài)模型、功能模型(2)對象模型、數(shù)據(jù)模型、功能模型(3)數(shù)據(jù)模型、動態(tài)模型、功能模型(4)對象模型、動態(tài)模型、數(shù)據(jù)模型
6.軟件可行性研究一般不考慮(4)
(1)是否有足夠的人員和相關(guān)的技術(shù)來支持系統(tǒng)開發(fā)(2)是否有足夠的工具和相關(guān)的技術(shù)來支持系統(tǒng)開發(fā)(3)待開發(fā)軟件是否有市場、經(jīng)濟上是否合算(4)待開發(fā)的軟件是否會有質(zhì)量問題
7.軟件維護(hù)的副作用主要有以下哪幾種(3)
(1)編碼副作用、數(shù)據(jù)副作用、測試副作用(2)編碼副作用、數(shù)據(jù)副作用、調(diào)試副作用(3)編碼副作用、數(shù)據(jù)副作用、文檔副作用(4)編碼副作用、文檔副作用、測試副作用
8.軟件項目計劃一般不包括以下哪項內(nèi)容(4)
(1)培訓(xùn)計劃(2)人員安排(3)進(jìn)度安排(4)軟件開發(fā)標(biāo)準(zhǔn)的選擇和制定
9.以下哪一項不屬于面向?qū)ο蟮能浖_發(fā)方法(3)
(1)coad方法(2)booch方法(3)jackson方法(4)omt方法
10.以下哪種測試方法不屬于白盒測試技術(shù)(2)
(1)基本路徑測試(2)邊界值分析測試(3)循環(huán)覆蓋測試(4)邏輯覆蓋測試
第五篇:軟件工程導(dǎo)論試題
軟件工程導(dǎo)論試題
一.選擇
1、瀑布模型把軟件生命周期劃分為八個階段:問題的定義、可行性研究、軟件需求分析、系統(tǒng)總體設(shè)計、詳細(xì)設(shè)計、編碼、測試和運行、維護(hù)。八個階段又可歸納為三個大的階段:計劃階段、開發(fā)階段和(C)。A、詳細(xì)計劃 B、可行性分析
C、運行階段 D、測試與排錯
2、從結(jié)構(gòu)化的瀑布模型看,在它的生命周期中的八個階段中,下面的幾個選項中哪個環(huán)節(jié)出錯,對軟件的影響最大(C)。A、詳細(xì)設(shè)計階段 B、概要設(shè)計階段
C、需求分析階段 D、測試和運行階段
3、在結(jié)構(gòu)化的瀑布模型中,哪一個階段定義的標(biāo)準(zhǔn)將成為軟件測試中的系統(tǒng)測試階段的目標(biāo)(A)。
A、需求分析階段 B、詳細(xì)設(shè)計階段
C、概要設(shè)計階段 D、可行性研究階段
4、軟件工程的出現(xiàn)主要是由于(C)。
A.程序設(shè)計方法學(xué)的影響 B.其它工程科學(xué)的影響
C.軟件危機的出現(xiàn) D.計算機的發(fā)展
5、軟件工程方法學(xué)的目的是:使軟件生產(chǎn)規(guī)范化和工程化,而軟件工程方法得以實施的主要保證是(C)A、硬件環(huán)境 B、軟件開發(fā)的環(huán)境
C、軟件開發(fā)工具和軟件開發(fā)的環(huán)境 D、開發(fā)人員的素質(zhì)
6、軟件開發(fā)常使用的兩種基本方法是結(jié)構(gòu)化和原型化方法,在實際的應(yīng)用中,它們之間的關(guān)系表現(xiàn)為(B)A、相互排斥 B、相互補充
C、獨立使用 D、交替使用
7、UML是軟件開發(fā)中的一個重要工具,它主要應(yīng)用于哪種軟件開發(fā)方法(C)A、基于瀑布模型的結(jié)構(gòu)化方法 B、基于需求動態(tài)定義的原型化方法 C、基于對象的面向?qū)ο蟮姆椒?D、基于數(shù)據(jù)的數(shù)據(jù)流開發(fā)方法
8、在下面的軟件開發(fā)方法中,哪一個對軟件設(shè)計和開發(fā)人員的開發(fā)要求最高(B)A、結(jié)構(gòu)化方法 B、原型化方法 C、面向?qū)ο蟮姆椒?D、控制流方法
9、結(jié)構(gòu)化分析方法是一種預(yù)先嚴(yán)格定義需求的方法,它在實施時強調(diào)的是分析對象的(B)A、控制流 B、數(shù)據(jù)流 C、程序流 D、指令流
10、軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成(A)A、計劃階段、開發(fā)階段、運行階段 B、計劃階段、編程階段、測試階段 C、總體設(shè)計、詳細(xì)設(shè)計、編程調(diào)試 D、需求分析、功能定義、系統(tǒng)設(shè)計
11、軟件開發(fā)中常采用的結(jié)構(gòu)化生命周期方法,由于其特征而一般稱其為(A)A、瀑布模型 B、對象模型 C、螺旋模型 D、層次模型
12、軟件開發(fā)的瀑布模型,一般都將開發(fā)過程劃分為:分析、設(shè)計、編碼和測試等階段,一般認(rèn)為可能占用人員最多的階段是(C)A、分析階段 B、設(shè)計階段 C、編碼階段 D、測試階段 二.填空
21.系統(tǒng)流程圖是描述物理模型的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中各個元素表達(dá)了系統(tǒng)中各種元素之間的(信息流動)情況。
[解析]系統(tǒng)流程圖是描述物理系統(tǒng)的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中的各個元素,如人工處理、數(shù)據(jù)處理、數(shù)據(jù)庫、文件、設(shè)備等,表達(dá)了元素之間的信息流動的情況。
22.成本效益分析的目的是從(經(jīng)濟)角度評價開發(fā)一個項目是否可行。
[解析]成本效益分析首先是估算將要開發(fā)的系統(tǒng)的開發(fā)成本,然后與可能取得的效益進(jìn)行比較和權(quán)衡,其目的是從經(jīng)濟角度評價開發(fā)一個新的軟件項目是否可行。23.自頂向下結(jié)合的漸增式測試法,在組合模塊時有兩種組合策略:深度優(yōu)先策略和(寬度優(yōu)先策略)。
[解析]漸增式測試法有自頂向下結(jié)合和自底向上結(jié)合兩種組裝模塊的方法,其中自頂向下集成是構(gòu)造程序結(jié)構(gòu)的一種增量式方式,不需要編寫驅(qū)動模塊,只需要編寫樁模塊。它從主控模塊開始,按照軟件的控制層次結(jié)構(gòu),以深度優(yōu)先或?qū)挾葍?yōu)先的策略,逐步把各個模塊集成在一起。
24.獨立路徑是指包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條(在其他獨立路徑中未有過)的邊的路徑。
[解析]在基本路徑測試中,以詳細(xì)設(shè)計或源程序為基礎(chǔ),導(dǎo)出控制流程圖的拓?fù)浣Y(jié)構(gòu)——程序圖,在計算了程序圖的環(huán)路復(fù)雜性之后,確定只包含獨立路徑的基本路徑圖,其中獨立路徑是包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條在其他獨立路徑中未有過的邊的路徑。
25.匯編語言是面向(機器)的,可以完成高級語言無法完成的特殊功能,如與外部設(shè)備之間的一些接口工作。
[解析]匯編語言屬于低級語言,是一種面向機器的語言,它與高級語言相比有許多優(yōu)越性:如操作靈活,可以直接作用到硬件的最下層,完成與外部設(shè)備的接口工作等,是能夠利用計算機硬件特性直接控制硬件設(shè)備的唯一語言。
26.在JSP方法中解決結(jié)構(gòu)沖突的具體辦法是(中間數(shù)據(jù)結(jié)構(gòu)或中間文件)。
[解析]JSP方法是面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法。它定義了一組以數(shù)據(jù)結(jié)構(gòu)為指導(dǎo)的映射過程,根據(jù)輸入、輸出的數(shù)據(jù)結(jié)構(gòu),按一定的規(guī)則映射成軟件的過程描述,在JSP方法中解決結(jié)構(gòu)沖突的具體辦法是引入中間數(shù)據(jù)結(jié)構(gòu)或中間文件,將沖突部分分隔開來,建立多個程序結(jié)構(gòu),再利用中間文件把它們聯(lián)系起來,構(gòu)成一個系統(tǒng)的整體。
27.詳細(xì)設(shè)計的任務(wù)是確定每個模塊的內(nèi)部特性,即模塊的算法、(使用的數(shù)據(jù))。
[解析]詳細(xì)設(shè)計的基本任務(wù)是為每個模塊進(jìn)行詳細(xì)的算法設(shè)計,為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計,確定每個模塊的內(nèi)部特性,包括模塊的算法和使用的數(shù)據(jù)。對數(shù)據(jù)庫進(jìn)行物理設(shè)計等。
28.所有軟件維護(hù)申請報告要按規(guī)定方式提出,該報告也稱(軟件問題)報告。
[解析]在軟件維護(hù)的流程中,第一步就是制定維護(hù)申請報告,也稱為軟件問題報告,它是維護(hù)階段的一種文檔,由申請維護(hù)的用戶填寫。
29.有兩類維護(hù)技術(shù):在開發(fā)階段使用來減少錯誤、提高軟件可維護(hù)性的面向維護(hù)的技術(shù);在維護(hù)階段用來提高維護(hù)的效率和質(zhì)量的(維護(hù)支援)技術(shù)。
[解析]面向維護(hù)的技術(shù)涉及軟件開發(fā)的所有階段,能夠減少軟件錯誤,提高軟件的可維護(hù)性。而維護(hù)支援技術(shù)則包含信息收集,錯誤原因分析,維護(hù)方案評價等項,是在軟件維護(hù)階段用來提高維護(hù)效率和質(zhì)量的技術(shù)。
30.科學(xué)工程計算需要大量的標(biāo)準(zhǔn)庫函數(shù),以便處理復(fù)雜的數(shù)值計算,可供選擇的語言有:(FORTRAN語言)、PASCAL語言、C語言和PL/1語言。
[解析]計算機語言根據(jù)不同行業(yè)的需求,使用的側(cè)重點也不盡相同,在辦公管理方面,一些數(shù)據(jù)庫語言如FOXPRO、ORICAL有很多的應(yīng)用,在工程行業(yè),計算機語言的科學(xué)計算能力就顯得格外重要,如MATLAB、PL/
1、FORTRAN語言都是工程計算中常用的語言。三.判斷
1.軟件的開發(fā)與運行經(jīng)常受到硬件的限制和制約。(√)
2.模塊內(nèi)的高內(nèi)聚往往意味著模塊間的松耦合。(√)3.Jackson圖只能表達(dá)程序結(jié)構(gòu),不能表達(dá)數(shù)據(jù)結(jié)構(gòu)。(X)
上述數(shù)據(jù)流圖表示數(shù)據(jù)A和B同時輸入變換成C。(X)
5.軟件的質(zhì)量好壞主要由驗收人員負(fù)責(zé),其他開發(fā)人員不必關(guān)心。(X)
6.判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。(√)
7.應(yīng)該盡量使用機器語言編寫代碼,提高程序運行效率,而減少高級語言的使用。(X)
8.UML只能應(yīng)用于軟件系統(tǒng)模型的建立。(X)
9.容錯就是每個程序采用兩種不同的算法編寫。(X)
10.軟件測試的目的是為了無一遺漏的找出所有的錯誤。(X)
四、名詞解釋題(本大題共5小題,每小題3分,共15分)
31.軟件開發(fā)環(huán)境
32.錯誤推測法
33.黑盒測試法
34.軟件質(zhì)量保證
35.瀑布模型 31.經(jīng)濟可行性
解:進(jìn)行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項目是否值得投資開發(fā)。
[解析]對于一個系統(tǒng)所必須要衡量的是經(jīng)濟上是否合算,經(jīng)濟可行性的范圍很廣,包括效益分析、潛在市場前景等。
32.社會可行性
解:要開發(fā)的項目是否存在任何侵犯、妨礙等責(zé)任問題,要開發(fā)項目目的運行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。
[解析]社會可行性包括合同、責(zé)任、侵權(quán)等技術(shù)人員不甚了解的諸多問題。
33.投資回收期
解:投資回收期就是使累計的經(jīng)濟效益等于最初的投資費用所需的時間。
[解析]通常我們用投資回收期來衡量一個開發(fā)項目的價值,投資回收期越短,就越快獲得利潤。
34.對應(yīng)關(guān)系
解:即有直接因果關(guān)系在程序中可以同時處理。
[解析]對應(yīng)關(guān)系是指數(shù)據(jù)單元在數(shù)據(jù)內(nèi)容上、數(shù)量上和順序上有直接的因果關(guān)系,對于重復(fù)的數(shù)據(jù)單元,重復(fù)的次序和次數(shù)都相同才有對應(yīng)關(guān)系。
35.結(jié)構(gòu)沖突
解:輸入數(shù)據(jù)與輸出數(shù)據(jù)結(jié)構(gòu)找不到對應(yīng)關(guān)系的情況,稱為結(jié)構(gòu)沖突。
[解析]使用JSP方法時會遇到此類結(jié)構(gòu)沖突問題,對此,Jackson提出了引入中間數(shù)據(jù)結(jié)構(gòu)或中間文件的辦法,將沖突部分分隔開來,建立多個程序結(jié)構(gòu),再利用中間文件把它們聯(lián)系起來,構(gòu)成一個系統(tǒng)的整體。
五、圖 a 中,模塊 G 為判定,判斷涉及到模塊 B、F、G,請指出設(shè)計中的錯誤,再根據(jù) 改進(jìn)模 塊圖的基本原則,畫出 1~2 個改進(jìn)方案(不改變模塊 G 的判斷關(guān)系),并說明是按照
哪條基本 原則進(jìn)行改進(jìn)的。
解:圖 b 為一個改進(jìn)方案,將模塊 G 的位置提高,使其作用范圍為控制范圍的子集,減 少模塊 之間的聯(lián)系。
40.請使用PAD圖和PDL語言描述在數(shù)組A(1)~A(10)中找最大數(shù)的算法。
解:PDL語言:
N=1
WHILE N<=10 DO
IF A(N)<=A(N+1)MAX =A(N+1);
ELSE MAX =A(N)ENDIF;
N=N+1;
ENDWHILE;
PAD圖:
[解析]人工查找時,是從第一個元素開始查找,用當(dāng)前元素與下一個元素比較,將較大者作為當(dāng)前元素又與下一元素比較,如此循環(huán),直到數(shù)組末尾。
41.根據(jù)下列條件使用等價類劃分法設(shè)計測試用例。
某一8位微機,其八進(jìn)制常數(shù)定義為:以零開頭的數(shù)是八進(jìn)制整數(shù),其值的范圍是-177~177,如05,0127,-065
解:(1)劃分等價類并編號,如下表示:(4分)
(2)為合理等價類設(shè)計測試用例,表中有兩個合理等價類,設(shè)計兩個例子(2分)
(3)為不合理等價類測試用例,至少設(shè)計一個測試用例(2分)
[解析]等價類劃分屬于黑盒測試的一種,它將輸入數(shù)據(jù)域按有效的或無效的劃分成若干個等價類,測試每個等價類的代表值就等于對該類其他值的測試,這樣用少量有代表性的例子代替大量測試目的相同的例子,可以有效提高測試效率。本題劃分了3個合理等價類,9個不合理等價類進(jìn)行測試,取到了預(yù)期的效果。
42.某電器集團(tuán)公司下屬的廠包括技術(shù)科、生產(chǎn)科等基層單位?,F(xiàn)在想建立一個計算機輔助企業(yè)管理系統(tǒng),其中:
生產(chǎn)科的任務(wù)是:
(1)根據(jù)銷售公司轉(zhuǎn)來的內(nèi)部合同(產(chǎn)品型號、規(guī)格、數(shù)量、交獲日期)制定車間月生產(chǎn)計劃。
(2)根據(jù)車間實際生產(chǎn)日報表、周報表調(diào)整月生產(chǎn)計劃
(3)以月生產(chǎn)計劃為以及,制定產(chǎn)品設(shè)計(結(jié)構(gòu)、工藝)及產(chǎn)品組裝月計劃。
(4)將產(chǎn)品的組裝計劃傳達(dá)到各科,將組裝月計劃分解為周計劃,下達(dá)給車間
技術(shù)科的任務(wù)是:
(1)根據(jù)生產(chǎn)科轉(zhuǎn)來的組裝計劃進(jìn)行產(chǎn)品結(jié)構(gòu)設(shè)計,產(chǎn)生產(chǎn)品裝配圖給生產(chǎn)科,產(chǎn)生外購需求計劃給供應(yīng)科,并產(chǎn)生產(chǎn)品自制物料清單。
(2)根據(jù)組裝計劃進(jìn)行產(chǎn)品工藝設(shè)計,根據(jù)產(chǎn)品自制物料清單產(chǎn)生工藝流程圖給零件廠。試寫出以上系統(tǒng)中生產(chǎn)科和技術(shù)科處理的軟件結(jié)構(gòu)圖。
解:
畫出生產(chǎn)科圖的給6分,畫出技術(shù)科的給4分。
[解析]軟件結(jié)構(gòu)圖是軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個系統(tǒng)的功能實現(xiàn),即將來程序的控制層次體系,軟件結(jié)構(gòu)往往用樹狀或網(wǎng)狀結(jié)構(gòu)的圖形來表示,其主要內(nèi)容有模塊及模塊的控制關(guān)系,根據(jù)題意,可繪制出生產(chǎn)科和技術(shù)科的軟件結(jié)構(gòu)圖,其中生產(chǎn)科的結(jié)構(gòu)圖深度和寬度均為4,技術(shù)科的結(jié)構(gòu)圖的深度和寬度均為3。