




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件工程習題解答第一章概述b.軟件產品的生產主是研制,軟件產品的成本主要體現在軟件的開發和研制上,軟件開發完成后,復制就產生c.軟件產品不會用壞,不存在磨損、消耗問題。d.軟件產品的生產主要是腦力勞動,還未完全擺脫手工開發方式,而且碰分是"定做"的。生產方式個體手工勞動小集團合作生產工程化的生產開發方法追求編和技巧,追求程序運個人技巧,開始提出結構化方法行效率硬件特征可靠性差速度、容量、工作可靠性有明顯提及網絡化方軟件特征只有程序、程序設計概念,不重視程序設計方法發的重要性,開發技術沒有新的突破,大量軟件開發的需求已提出,開發人員的素質和工程兵的開發技開發,產生了尖銳矛盾,導致軟件危機的產生開發技術有很大進步,但未能獲得突破性進展,軟件價格不斷上升,沒有完全擺脫軟件危機軟件危機:軟件發展第二階段的末期,由于計算機硬件技術的進步。一些復雜的、大型的軟件開發項目提出來在軟件開發中遇到的問題找不到解決的辦法,使問題積累起來,形成了尖銳的矛盾,因而導致了軟件危機。主要表現在以下幾個方面:a.經費預算經常突破,完成時間一再拖延。b.開發的軟件不通滿足用戶要求。c.開發的軟件可維護性差。d.開發的軟件可靠性差。軟件危機產生的原因是由于軟件產品本身的特點以及開發軟件的方式、方法、技術和人員引起的:b.軟件開發管理困難而復雜。f.開發工具落后,生產率提高緩慢。b.面到要求的軟件功能;c.取得較好的軟件性能;d.開發的軟件易于移植;e.需要較低的維護費用;f.能按時完成開發任務,及時交付使用;g.開發的軟件可靠性高;1)軟件開發技術:軟件開發方法、軟件開發過程、軟件開發工具和環境。2)軟件開發管理:軟件管理學、軟件經濟學、軟件心理學。軟件生存周期包括:可行性分析和項目開發計劃、需求分析、概要設計、詳細設計、編碼、測試、維護等.軟件開發的方法:是一種使用早已定義好的技術集及符號表示習慣來組織軟件生產的過程。方法、維也納開發方法(VDM)、面向對象的開發方法。第二章可行性研究災難性后果。2、可行性研究有哪些步驟?b.研究正在運行的系統c.建立新系統的高層邏輯模型d.導出和評價各種方案f.編寫可行性研究報告b.可行性研究前提c.對現有系統的分析d.所建議系統的技術可行性分析e.所建議系統的經濟可行性分析f.社會因素可行性分析g.其他可供選擇方案h.結論意見b.投資回收期無形效益:主要從性質上、心理上進行衡量,很難直接進行量的比較。通常以有形效益度量作為成本---效益分析的度量。第三章需求分析需求分析是指:開發人員要準確理解用戶的要求,進行細致的調查分析,將用戶非形式的需求陳述轉化為完整的需求定義,再由需求定義轉換到相應的形式主義功能規約(需求規格說明)的過程。(2)分析與綜合,導出軟件的邏輯模型.2.什么是結構化分析方法?該方法使用什么描述工具?結構化分析方法:是面向數據漢進行需求分析的方法。描述工具:a、數據流圖b、數據字典c、描述加工邏輯的結構化語言、判定表、判定樹。3.結構化分析方法通過哪些步驟來實現?結構化分析方法步驟:a.了解當前系統的工作流程,獲得當前系統的物理模型.b.抽象出當前系統的邏輯模型.c.建立上標系統的邏輯模型.d.作進一步補充和優化.4.什么是數據流圖?其作用是什么?其中的基本符號各表示什么含義?數據流圖:簡稱DFD,是SA(結構化分析)方法中用于表示系統邏輯模型的一種工具,是一種功能模型。作用:它以圖形的方式描繪數據在系統中流動和處理的過程,反映系統必須完成的邏輯功能.基本符號有四種:→,箭頭,表示數據流;○,圓或橢圓,表示加工;=,雙杠,表示數據存儲;□,方框,表示數據的源點或終點.5.畫數據流圖應該注意什么事項?a.命名.不論是數據流\數據存儲還是加工,合適的命名使人們易于理解基b.畫數據流而不是控制流.c.一般不畫物質流.d.每個加工到少有一個輸入數據流和一個輸出數據流,反映出此加工數據的來源與加工的結果.e.編號.f.父圖與子圖的平衡.g.局部數據存儲.h.提高數據流圖的易理解性.字據字典:簡稱DD,就是用來定義數據流圖中的各個成分具體含義的,它以一種準確的\無二義性的說明方式為系統的分析\設計及維護提供了有關元素的一致的定義和詳細的描述.作用:1)為系統的分析\設計及維護提供了有關元素的一致的定義和詳細的描述.2)為分析人員查找數據流圖中有關名字的詳細定義而服務的.3)它和數據流圖共同構成了系統的邏輯模型,是需求規格說明書的主要組成部分.ICAM)工程項目中用于進行復雜系統分析和設計的方法,是在結構化分析與設計技術的基礎上提出來的。a.采用方框和箭頭等簡單的圖形符號描述系統的活動和數據流,描述活動所受到的約束及實現機制。b.采用嚴格的自頂向下、逐層分解的方式建立系統功能模型。價提供了有利條件。1)傳統的SA方法主要用于數據處理方面的問題,主要工具DFD體現了系統"做什么"的功能,但它僅是一個靜2)SA方法在使用DFD在分析與描述"數據要求"方面是有局限的。4)為了更精確地描述軟件包需求,提高軟件系統的可靠性、安全性,也便于實現自動化,SA方法可與形式方法住址、存款類型、存款日期、利率等信息,并打印出存款單給儲戶;如果是取款,系統計算清單儲戶。請用DFD數據流名稱:存款單簡述:儲戶存款時填寫的項目來源:儲戶數據流量:未知簡述:儲戶取款時填寫的項目來源:儲戶數據流量:未知簡述:儲戶取款后得到的項目來源:記錄數據流量:未知組成:姓名+住址+取款類型+取款日期+利率+余額數據存儲名稱:賬單簡述:存放儲戶信息及其賬目組成:姓名+住址+余額+存款類型+最后修改日期+利率查詢要求:能立即查詢加工名:分類檢查激發條件:接收到存/取款單優先級:優先輸入:存/取款單把取款單輸出到統計加工名:統計激發條件:取款單輸入:取款單加工邏輯:根據賬單檢查此儲戶是否存在,不存在輸出錯誤{IF取款數<余額THEN余額=余額-取款數輸出清單到儲戶,輸出現金到儲戶輸出錯誤清單到儲戶}加工名:記錄激發條件:存款單輸入:存款單加工邏輯:根據賬單檢查此儲戶是否存在,不存在則建立此儲戶{余額=余額+存款數輸出存款單到儲戶}儲戶儲戶存取分類并檢查2取款單存款單存款單記錄儲戶清單(2)還書:從借書文件中讀出與讀者有關的記錄,查閱所借日期,如果超期(3個月)作罰款處理。否則,修改庫(3)查詢:可通過借書文件、庫存目錄文件查詢讀者情況、圖書借閱情況及庫存情況,打印各種統計表。請就以上系統功能畫出分層的DFD圖,并建立重要條目的數據字典。化程序當技術員。請用結構化語言、判定表或判定樹描述上述問題的加工邏輯。(1)結構化語言:根據職工年齡和文化程序:If年齡<=20If中學文化EndifIf年齡>=40Until沒有剩余未分配員工判定表GHHGGHIGHI性別MMFF脫產學習√√鉗工√√√√技術員材料員條件取值表條件名文化程度性別男女CDEGHIMF取值數和開考課程(課程名、開考時間)、經校核,編號、填寫、輸出準考證給報名者,同時記錄到考生名冊中(準考證號、姓名、課程)。請繪制該加工的DFD圖,并寫出數據詞典中的數據流條目。數據流詞典報名單=姓名+性別+身份證號+課程名開考課程=課程名+開考時間考生名冊=準考證號+姓名+課程單要包括所在隊名,運動員編號號,運動員姓名,及參加的所有項目。請寫出這三個數據流條目。運動員名單=隊名+運動員號+姓名+{項目}項目=項目名項目參加者=項目名+{運動員號}要求:寫出在數據字典中,電話號碼的數據條目的定義(即組成)。電話號碼=分機號|外線號碼外線號碼=9+[市話號碼|長話號碼]市話號碼=局號+分局號分局號=4{數字}4第四章概要設計軟件概要設計:在需求分析的基礎上通過抽象和分解將系統分解成模塊,確定系統功能是實現,即把軟件需求轉換(1)設計軟件系統結構(簡稱軟件結構)a.采用某種設計方法,將一個復雜的系統按功能劃分成模塊(劃分)d.確定模塊之間的接口,即模塊之間傳遞的信息。(接口)e.評價模塊結構的質量。(質量)(2)數據結構及數據庫設計:((3)編寫概要設計文檔(文檔主要有:概要設計說明書、數據庫設計說明書、用戶手冊、修訂測試計劃)2.軟件設計的基本原理包括哪些內容?軟件設計的基本原理:(4)模塊獨立性(兩個定性的度量標準:耦合性與內聚性)兩個定性的度量標準:耦合與內聚性耦合性:也稱塊間聯系。指軟件系統結構中各模塊間相互聯系緊密程度的一種度量。模塊之間聯系越緊密,其耦合性就越強,模塊的獨立性則越差。內聚性:也稱塊內聯系。指模塊的功能強度的度量,即一個模塊內部各個元素彼此結合的緊密程度的度量。模塊耦合性有六種:無直接耦合、數據耦合、標記耦合、控制耦合、公共耦合、內容耦合數據耦合:指兩個模塊之間有調用關系,傳遞的是簡單的數據值,相當于高級語言中的值傳遞。(數某一功能(控制變量)公共耦合:指通過一個公共數據環境相互作用的那些模塊間的耦合。(一個公式數據環境)邏輯內聚:模塊內執行幾個邏輯上相似的功能,通過參數確定該模塊完成哪一個功能。通信內聚:指模塊內所有處理元素都在同一個數據結構上操作,或者指各處理使用相同的輸入數據或產生相同的6.什么是軟件結構?簡述軟件結構設計優化準則。軟件結構:軟件系統的模塊層次結構,反映了整個系統的功能實現,即將來程序的控制體系。b.一個模塊的作用范圍應在其控制范圍之內,且判定所在的模塊應與受其影響的模塊在層次上盡量靠近D.模塊的大小要適中。E.模塊的控制范圍模塊的接口要簡單、清晰、含義明確,便于理解,易于實現、測試與維護。7.什么是模塊的影響范圍?什么是模塊的控制范圍?它們之間應該建立什么關系?模塊的影響范圍:受該模塊內的一個判定影響的所有模塊的集合。模塊的控制范圍:模塊本身及其所有下屬模塊(直接或間接從屬于它的模塊)的集合。一個模塊的影響范圍應在其控制范圍之內,且判定所在的模塊應與受其影響的模塊在層次上盡量靠近。8.什么是"變換流"?什么是"事務流"?試將相應形式的數據流圖轉換成軟件結構圖。變換流由輸入、變換(或處理)、輸出三部分組成。某個加工將它的輸入流分離成許多發散的數據流,形成許多加工路徑,并根據輸入選擇其中一個路徑來執行這種特征的DFD稱為事物流。9.試述"變換分析","事務分析"的設計步驟。變換分析:b.設計軟件結構的頂層和第一層-------變換結構。c.事務結構中、下層模塊的設計、優化工作同變換結構。2、已知模塊C中的一個判定影響到模塊B,如圖所示,它違反了SD的設計原則。試問:可以采用哪些手段對結構圖作改進,請說明改進辦法并畫出改進的結構圖。3、已知有一抽象的DFD圖如下所示,請用SD方法畫出相應的結構圖。BBBBDCAAA2A1A(1)計算標準分:根據考生原始分計算,得到標準分,存入考生分數文件;(2)計算錄取線分:根據標準分、招生計劃文件中的招生人數,計算錄取線,存入錄取線文件。試根據要求畫出該系統的數據流程圖,并將其轉換為軟件結構圖。①③招生計劃②④標準分錄取線(3)根據供書目錄和訂書書目產生訂書文檔留底。(4)將訂書信息(包括數目,數量等)反饋給供書單位。(6)對于重復訂購的書目由系統自動檢查,并把結果反饋給訂書者。試根據要求畫出該問題的數據流程圖,并把其轉換為軟件結構圖。6、在結構化設計過程中,要將數據流圖(DFD)映射成系統結構圖(SC),分別畫出變換型數據流和事物型數據第五章詳細設計(1)為每個模塊進行詳細的算法設計。(2)為每個模塊內的數據結構進行設計。(3)對數據庫進行設計,即確定數據庫的物理結構。C.過程設計語言a.采用自頂向下、逐步求精的程序設計方法b.使用三種基本程序控制結構構造程序1).用順序方式對過程分解,確定各部分的執行順序。2).用選擇方式對過程分解,確定某個部分的執行條件。3).用循環方式對過程分解,確定某個部分重復的開始和結束的條件。b.找出輸入數據結構和輸出數據結構中有對應關系的數據單元。c.按一定的規則由輸入、輸出的數據結構導出程序結構。d.列出基本操作與條件,并把它們分配到程序結構圖的適當位置。(1)在數據A(1)-A(10)中求最大數和次大數。(2)輸入三個正整數作為邊長、判斷該三條邊構成的三角形是等邊、等腰或一般三角形。ifA(i)>=n1n1=A(i) 2)置i=[(H+T)/2](取整).4)查不到時,將A(i),....,A(N)移到A(i+1),.....A(N+1),Key值送入A(i)中。6.一個正文文件由若干記錄組成,每個記錄是一個字符串,要求統計每個記錄中空格字符的個數及文件中空格字符的總個數。要求輸出數據格式是每復制一行這符串后,另起一行打印出這個字符中的空格數,最后打印出文件1、假設對顧客的訂貨單按如下原則處理:將顧客的信用度分三個檔次:對于上述三種情況,分別根據庫存情況來決定對顧客訂貨的態度。情況之一(欠款時間≤30天),如果需求數≤庫存量,則立即發貨,如果需求數>庫存量,則只發現有庫存,不足部情況之三(欠款時間>100天),則通知先付欠款,再考慮是否發貨。試用判定樹的形式予以描述(設欠款時間D,需求數N,庫存量Q)。學生名冊學生名冊表頭表體表頭表名字段名表名行*性別年齡學號3、有一過程,其流程如下圖所示。性別年齡學號3、有一過程,其流程如下圖所示。4、1、有一過程如下圖所示的流程,試用判定表予以描述。1F……√2TFF√3TFT4TT√第六章實現答:程序語言的共同特征(似為特性更符合題意)是指程序設計語言的語言特性,包括心理特性、工程特性和技術特性三個方面。語言的心理特性對人機通信的質量有主要的影響;語言的工程特性對軟件開發成功一否有重要的影響,此外,語言的技術特性也會影響軟件設計的質量。2、在項目開發時選擇程序設計語言通常考慮哪些因素?項目的應用領域、軟件開發的方法、軟件執行的環境、算法和數據結構的復雜性以及軟件開發人員的知識等。(1)友好的用戶界面(2)兼有過程性和非過程性雙重特性(3)高效的程序代碼(4)完備的數據庫(5)應用程序生成器4、舉例說明各種程序設計語言的特點及適用范圍?答:以常見的一些編程語言為例:結構化編程思想的語言。用于描述結構化算法和科學計算,操作系統的編寫Coble語言,它具有極強的數據定義能力,程序說明與硬件環境說明分開、數據描述與算法描述分開。結構嚴謹SQL:結構化查詢語言,用于對數據庫進行存取管理。匯編語言和Ada語言,主要用于實時處理和編寫系統軟件。5、什么是程序設計風格?為了具有良好的設計風格,應注意哪些方面的問題?答:程序設計風格是指一個人編制程序時所表現出來的特點、習慣、邏輯思路等。要形成良好的程序設計風格,應從源程序文檔化、數據說明、語句構造、輸入輸出和追求效率幾個方面加以注意。第七章軟件測試答:軟件測試的目的是的發現軟件中存在錯誤的活動。好的測試用例可以發現至今沒有發現的錯誤、好的測試用2、什么是白盒法?有那些覆蓋標準?比較他們的檢錯能力。答:將程序看成是白盒子,認真的分析程序的結構和功能制定測試用例來測試。有邏輯覆蓋(語句覆蓋、判斷覆蓋、條件覆蓋、判斷/條件覆蓋、條件組合覆蓋、路徑覆蓋)答:將程序當成是黑盒子以設計中的功能為標準在程序的接口出進行測試看它能否達到功能要求。等價類劃分、邊界值分析、因果圖、錯誤推測。答:單元測試對應詳細設計和編碼、集成測試對應概要設計、確認測試對應需求分析。答:測試模塊的接口、數據結構、重要的執行路徑、錯誤處理、邊界條件。答:將模塊組合起來成為一個完整的系統對其進行測試。非漸增式是將模塊先進行單元測試然后組裝在一起進行測試。漸增式是逐個將未測試的模塊組裝到已經測試過的模塊上去進行集成測試,每加入一個就測試一次。非漸增式需要樁模塊和驅動模塊、非漸增式開始可以并行測試、漸增式可以及時的發現接口錯誤,非漸增式很難發現接口發現錯誤、漸增式開始不能并行測試、漸增式測試比較徹底。漸增式組裝模塊有自頂向下和自底向上兩種組裝方式。答:按照需求規格說明書中的確定指標對系統進行功能與性能的測試。進行確認測試(對照需求規格說明書用黑if(y=2)or(x=l)thenx:=x+l;該子程序接受x,y,z的值,并將計算結果x的值返回給調用程序。答題要求:(2)用白盒法中條件組合覆蓋設計測試用例:期間內的報表進行處理,如日期不在此范圍內,則顯示輸入錯誤信息。系統日期規定由年、月的6位數字字符組成,前四位代表年,后兩位代表月。現要求用黑盒測試法中的邊界值法寫出測試用例。輸入條件測試用例說明測試數據報表日期的1個數字字符5全部是非數字字符MAY---在有效范圍邊界上選取月份范圍PROCEDUREEX(A,B:REAL;VARX:REALIF(A>2)AND(B=0)THENX:=A-3語句覆蓋A=3B=0(1)按等價分類法設計測試用例(要求列出設計過程)(2)按邊緣值分析法設計測試用例。不合理等價類測試用例beginⅠⅡⅢⅣx013y3221找出實現(1)語句覆蓋2)條件覆蓋3)判定覆蓋至少要選擇的數據組。第八章軟件維護a、非結構化維護和結構化維護b、維護的困難性編碼、數據、文檔副作用軟件的可維護性:軟件能夠被理解、校正、適應及增強功能的容易程度。可維護性的度量的特性是:可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和效率。A、建立明確的軟件質量目標。B、利用先進的軟件開發技術和工具。第九章答:增量構造和演化提交。增量構造是瀑布模型的基礎上在一些的階段中采用增量開發一些階段整體開發。演化提交是在瀑布模型的基礎上所有階段都使用增量開發也就是不緊使用增量開發也使用增量提交。答:探索型、試驗型、演化型。探索型:在需求階段幫助明確理解需求用完拋棄。試驗型:在設計階段考核現行方案是否合適用完拋棄。演化型:及早的向用戶展示一個系統的原形包含主要的功能得到用戶的認可后將原形不答:快速開發、需求、構造原形、原形、運行原形、評價原形、修改意見。答:可以更清楚的理解用戶的需求、開發階段可以用原形解決局部的困難,通過原形的開發可以讓用戶看見系統的初步功能的實現有利與用戶的開發人員更好的交流,及早的解決存在的問題減少開發的風險。缺乏好的管理工具和開發環境、缺乏管理機制、對開發人員的技術要求高、更新文檔比較困難。5、對比瀑布模型和增量模型,指出增量模型的新思路。答:瀑布模型是一種整體的開發模型,開發的每一階段必須按線性的順序來進行,前一階段的工作沒有完成后一階段的工作就不能開始。由于需求分析的易變性使的軟件開發工作不順利,同時瀑布模型的每個階段有不可避免的錯誤出現,那么延伸到以下的各個階段錯誤就會放大。增量模型是非整體開發的模型它采用漸增模型和原形模型,軟件的開發是用增量開發和增量提交。第十章面向對象技術類:具有相似或相同性質的對象的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論