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