軟件工程李愛萍作業(yè)參考標準答案終版修改.docx_第1頁
軟件工程李愛萍作業(yè)參考標準答案終版修改.docx_第2頁
軟件工程李愛萍作業(yè)參考標準答案終版修改.docx_第3頁
軟件工程李愛萍作業(yè)參考標準答案終版修改.docx_第4頁
軟件工程李愛萍作業(yè)參考標準答案終版修改.docx_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章 1.1什么是軟件?軟件和程序的區(qū)別是什么? 答:軟件是程序、數(shù)據(jù)以及開發(fā)、使用和維護程序需要的所有文檔的完整集合。軟件的定義是:計算機程序、方法、規(guī)則、相關的文檔資料以及在計算機上運行程序時所必須的數(shù)據(jù)。 軟件不是程序,程序是軟件的一部分。程序是為了解決某個特定問題而用程序設計語言描述的適合計算機處理的語句序列。它是由軟件開發(fā)人員設計和編碼的。程序執(zhí)行時一般要輸入一定的數(shù)據(jù),也會輸出運行的結果。沒有相關文檔,僅有程序是不能稱之為軟件產(chǎn)品的。 1.2什么是軟件生存周期?劃分生存周期的主要原則是什么? 答:(1)軟件的生存周期是指某一軟件項目被提出并著手實現(xiàn)開始,直到該軟件報廢或停止使用為止所經(jīng)歷的時間。 (2)主要原則:各階段的任務彼此間盡可能相對獨立,同一個階段各項任務的性質盡可能相同,從而降低每個階段任務的復雜性,簡化不同階段之間的聯(lián)系,有利于軟件開發(fā)過程的組織管理。 13什么是軟件危機?它有哪些主要表現(xiàn)?為什么會產(chǎn)生軟件危機? 答:(1)軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。 (2) 主要表現(xiàn):對軟件開發(fā)成本和研制進度的估計常常很不精確,導致經(jīng)費預算經(jīng)常突破,進度超時完成;由于開發(fā)人員常常對用戶需求只有模糊的了解以及開發(fā)人員和用戶又未能及時交換意見,導致已完成的軟件不能滿足用戶的需要;軟件產(chǎn)品質量差,可靠性得不到保證;軟件產(chǎn)品可維護性差;軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升,軟件的發(fā)展跟不上硬件的發(fā)展;軟件開發(fā)生產(chǎn)率提高的速度遠遠跟不上計算機應用速度普及深入趨勢,軟件發(fā)展跟不上用戶的要求。 (3) 產(chǎn)生軟件危機的原因:造成軟件危機的原因與軟件自身的特點有關,也與軟件開發(fā)人員在開發(fā)和維護時采用的生產(chǎn)方式、方法、技術有關。軟件是計算機系統(tǒng)中的邏輯部件,軟件產(chǎn)品往往規(guī)模龐大,結構復雜。給軟件的開發(fā)和維護帶來客觀的困難;軟件開發(fā)的管理困難。由于軟件規(guī)模大、結構復雜、又具有無形性,導致管理困難,進度控制困難,可靠性無法保證;軟件開發(fā)費用不斷增加,維護費用急劇上升,直接威脅計算機應用的擴大;軟件開發(fā)技術落后;生產(chǎn)方式落后;開發(fā)工具落后,生產(chǎn)效率提高緩慢。另外軟件開發(fā)人員忽視需求分析的重要性,輕視軟件維護也是造成軟件危機的原因。 1.4什么是軟件工程?怎樣利用軟件工程消除軟件危機? 答:(1)軟件工程是指導計算機軟件開發(fā)和維護的一門學科 (2)首先應該對計算機軟件有一個正確的認識,徹底清除“軟件就是程序” 的錯誤觀念;要使用好的開發(fā)技術和方法,并且要不斷研究探索更好更有效的技術和方法;要有良好的組織、嚴密的管理,各類人員要相互配合,共同完成任務,充分認識軟件開發(fā)不是某種個體勞動的神秘技巧;應該開發(fā)和使用好的軟件工具,從而有效提高軟件生產(chǎn)率。采用“工程化”的思想做指導來解決軟件研究中面臨的困難和混亂。 1.5何謂面向對象軟件工程?簡述它和傳統(tǒng)軟件工程的區(qū)別與聯(lián)系? 答:(1)以面向對象程序設計為基礎的軟件工程。 (2) 傳統(tǒng)軟件工程是以結構化程序設計為基礎,而面向對象軟件工程是以面向對象程序設計為基礎。與面向過程的軟件工程的開發(fā)思想相比,面向對象開發(fā)方法不再是以功能劃分為導向,而是以對象作為整個問題分析的中心,圍繞對象展開系統(tǒng)的分析與設計工作。在開發(fā)過程方面,面向對象軟件工程和傳統(tǒng)軟件工程一樣也是把軟件開發(fā)劃分為分析、設計、編碼和測試等幾個階段,但各個階段的具體工作不同,除了在編碼階段使用的語言不同外,面向對象軟件工程為待開發(fā)軟件確定“類與對象”一般在需求分析階段進行,設計階段則主要完成對象內部的詳細設計;而在傳統(tǒng)軟件工程中,將軟件設計劃分為“總體設計”和“詳細設計”,分別完成軟件的總體結構圖的設計和各個模塊內部算法的詳細設計。即:傳統(tǒng)軟件工程開發(fā)過程包括需求分析、總體設計、詳細設計、面向過程的編碼和測試;面向對象軟件工程開發(fā)過程包括需求分析與對象抽取、對象詳細設計、面向對象的編碼和測試。 1.6什么是軟件生存周期模型?試比較本章介紹的四種模型的優(yōu)缺點,說明每種模型的使用范圍 答:(1) 軟件生存周期模型即為軟件開發(fā)模型,是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型,是軟件過程、活動、任務的結構框架。 優(yōu)點 缺點 適用范圍 瀑布模型 能清晰直觀地表達軟件開發(fā)全過程,明確規(guī)定要完成的主要活動和任務,用來作為軟件項目工作的基礎。 只有當分析員能夠做出準確的需求分析時,才能得到預期的正確結果。它是一種理想的線性開發(fā)模式,缺乏靈活性,特別是無法解決軟件需求不明確或不準確的問題。 適合于需求很明確的軟件項目開發(fā)的模型,對于經(jīng)常變化的項目而言,瀑布模型毫無價值。 快速原型模型 通過實踐讓用戶了解未來目標系統(tǒng)的概貌,以便判斷哪些功能是符合需要的,哪些方面需要改進。反復改進,最終建立完全符合用戶需求的新系統(tǒng)??朔俨寄P偷娜秉c,減少由于軟件需求不明確帶來的開發(fā)風險。這種模型適合預先不能確切定義需求的軟件系統(tǒng)的開發(fā)。 在實際中開發(fā)原型系統(tǒng)使用的語言效率有時會很低,所選用的開發(fā)技術和工具不一定符合主流的發(fā)展;快速建立起來的系統(tǒng)結構加上連續(xù)的修改可能會導致產(chǎn)品質量低下。 適合于一些需求可變、模糊不定的軟件系統(tǒng)的開發(fā) 增量模型 有較大的靈活性。能夠在較短的時間內向用戶提交一些有用的工作產(chǎn)品。開發(fā)出一部分,向用戶展示一部分,可讓用戶及早看到部分軟件,及早發(fā)現(xiàn)問題。整個系統(tǒng)是由一個個構件集成在一起的,當需求變更時只變更部分部件,而不必影響整個系統(tǒng)。 各個構件是逐漸并入已有的軟件體系結構中的,所以加入構件必須不破壞已構造好的系統(tǒng)部分,冒所有構件集成不到一起的風險。 適合于軟件要求不明確,設計方案有一定風險的軟件項目。 螺旋模型 加入了瀑布模型與增量模型都忽略了的風險分析,使用原型及其他方法來盡量降低風險 該模型需要有相當豐富的風險評估經(jīng)驗和這方面的專門技術,這使該模型的應用受到一定限制。 將瀑布模型和快速原型模型結合起來,強調了其他模型所忽視的風險分析,特別適合于大型復雜的系統(tǒng)。 第二章 2.1 在軟件開發(fā)早期階段為什么要進行可行性研究?可行性研究的任務是什么?應該從哪幾個方面研究目標系統(tǒng)的可行性? 答:(1)避免或者減輕項目開發(fā)后期可能出現(xiàn)的困境。 (2) 其主要任務是,首先需要進行概要的分析研究,初步確定項目的規(guī)模和目標,確定項目的約束和限制,必須分析幾種可能解法的利弊,從而判定原定系統(tǒng)的目標和規(guī)模是否現(xiàn)實,系統(tǒng)完成后帶來的效益是否大到值得投資開發(fā)這個系統(tǒng)的程度。 (3) 經(jīng)濟可行性、技術可行性、操作可行性、法律可行性。 2.2 成本效益分析可用哪些指標進行度量? 答:成本方面包括開發(fā)成本和運行維護成本;效益方面包括經(jīng)濟效益和社會效益,經(jīng)濟效益可以用貨幣的時間價值 、投資回收期、純收入來度量。 2.3 有人認為,只懂技術的分析員不一定能圓滿完成可行性研究的任務。你同意這種看法嗎?為什么? 答:同意。因為可行性研究的任務包括三個方面,除了技術可行性之外,還需要進行經(jīng)濟可行性、操作可行性、社會和法律方面的可行性研究,而只懂技術的分析員對其他方面的研究有可能不滿足用戶的要求,所以只懂技術的分析員不一定能圓滿完成可行性研究的任務。 2.4 在【例 2.2】中,把投資改為 6000 元,每年節(jié)約金額改為 2000 元,年利率為 6%,試計算投資回收期和純收入。 解:如下表 年 將來值(元) (1+n*I) 現(xiàn)在值(元) 累計的現(xiàn)在值(元) 1 2 3 4 5 2000 2000 2000 2000 2000 1.06 1.12 1.18 1.24 1.30 1886.79 1785.71 1694.92 1612.90 1538.46 1886.79 3672.50 5367.42 6980.32 8518.78 投資回收期為 (6000-5367.42)/1612.90 +3=3.39(年) 純收入為 8518.78-6000=2518.78(元) 2.5 為方便旅客,某航空公司擬開發(fā)一個飛機票預定系統(tǒng)。旅游公司把預定機票的旅客信息(姓名、年齡、工作單位、身份證號碼、旅游時間、旅游目的地等)輸入進該系統(tǒng),系統(tǒng)為旅客安排航班,打印出取票通知和賬單,旅客在飛機起飛前的 3 天之內憑取票通知和賬單交款取機票,系統(tǒng)校對無誤即打印出飛機票給旅客。 請寫出開發(fā)此系統(tǒng)的問題定義,并通過可行性研究分析此系統(tǒng)的可行性。 答:問題定義:飛機票預定系統(tǒng) 主要實現(xiàn)以下功能: 查詢功能:把旅游時間、旅游目的地等輸入進該系統(tǒng), 系統(tǒng)顯示符合要求的航班。 預定機票:把預定機票的旅客信息(姓名、年齡、工作單位、身份證號碼、旅游時間、旅游目的地等)輸入進該系統(tǒng),系統(tǒng)為旅客安排航班,打印出取票通知和賬單,并更新記錄。 校對并打印機票:旅客在飛機起飛前的 3 天之內憑取票通知和賬單交款取機票,系統(tǒng)校對無誤即打印出飛機票給旅客。 可行性研究應從經(jīng)濟可行性、技術可行性、操作和社會、法律的角度闡述其可行性,這部分省略 2.6 試為習題 2.5 寫可行性研究報告的主要內容。 (本題略) 第三章 3.1 為什么要進行需求分析?需求分析要經(jīng)過哪些步驟? 答:(1)可行性研究階段粗略了解了用戶的需求,甚至還提出了一些可行的方案,但是可行性研究的基本目的是最小的代價在盡可能短的時間內確定問題是否存在可行的解法,因此許多細節(jié)都被忽略了,可行性研究并不能代替需求分析,它實際上并沒有準確地回答“系統(tǒng)必須做什么”這個關鍵問題。 (2)步驟: 1.需求獲取:調查研究。從分析當前系統(tǒng)包含的數(shù)據(jù)開始,分析當前信息處理的方法與存儲的不足,用戶希望改進的主要問題及其迫切性等。 2. 需求提煉:分析建模。需求提煉的主要任務是建立分析模型。把來自用戶的信息加以分析,通過抽象建立起目標系統(tǒng)的分析模型。 3需求描述:編寫 SRS。 為了使需求描述具有統(tǒng)一的風格,可以采用已有的且可滿足項目需要的模板,也可以根據(jù)項目特點和軟件開發(fā)小組的特點,對標準進行適當?shù)母膭?,形成自己?SRS 模板。 4. 需求驗證。由分析員和用戶一起對需求分析結果進行嚴格的審查、驗證。確保需求說明可作為軟件設計和最終系統(tǒng)驗收的依據(jù)。 3.2 需求分析階段的基本任務是什么?怎樣理解分析階段的任務是決定“做什么”,而不是“怎樣做”? 答:(1)1確定對系統(tǒng)的綜合需求。分析員和用戶雙方確定對軟件系統(tǒng)的綜合要求,具體有功能需求、性能需求 、環(huán)境需求、接口要求、用戶界面需求,另外還有可靠性、安全性、保密性、約束、可移植性和可維護性等方面的需求,這些需求通??梢酝ㄟ^雙方交流、調查研究來獲取,并達到共同的理解。 2分析系統(tǒng)的數(shù)據(jù)需求。因為絕大多數(shù)軟件系統(tǒng)本質上都是信息處理系統(tǒng),系統(tǒng)必須處理的信息和系統(tǒng)應該產(chǎn)生的信息在很大程度上決定了系統(tǒng)的面貌。 3建立軟件的邏輯模型。 4編寫軟件需求規(guī)格說明書。 目的是使用戶和開發(fā)者能對未來軟件有共同的理解,明確定義未來軟件的需求、系統(tǒng)的構成及有關的接口。需求說明相當于用戶和開發(fā)者之間的一份技術合同,是測試驗收階段對軟件進行確認和驗收的基準,是軟件開發(fā)的基礎。 5需求分析評審 (2)需求分析實際上是調查、評價以至肯定用戶對軟件需求的過程,其目的在于精化軟件的作用范圍,也是分析和確認軟件系統(tǒng)構成的過程,以確定未來系統(tǒng)的主要成分及它們之間的接口細節(jié)。因此需求分析實際上是一個對用戶意圖不斷進行揭示和判斷的過程,它并不考慮系統(tǒng)的具體實現(xiàn),而是完整地、嚴密地描述應當“做什么”的一種過程。 3.3 什么是結構化分析方法?該方法使用什么描述工具? 答:(1)結構化分析方法是一種從問題空間到某種表示的映射方法,軟件功能由數(shù)據(jù)流圖表示,是結構化方法中重要的,被普遍采用的方法,它由數(shù)據(jù)流圖和數(shù)據(jù)字典構成系統(tǒng)的邏輯模型。 (2)數(shù)據(jù)流圖、數(shù)據(jù)字典、結構化語言、判定樹和判定表。 3.4 什么是數(shù)據(jù)流圖?其作用是什么?其中的基本符號各表示什么含義? 答:(1)數(shù)據(jù)流圖是 SA 方法中用于表示系統(tǒng)邏輯模型的一種工具。 (2) 它描述系統(tǒng)由哪幾部分組成,各部分之間的聯(lián)系 等, 以直觀的圖形清晰地描述了系統(tǒng)數(shù)據(jù)的流動和處理過程。 (3) 箭頭,表示數(shù)據(jù)流; 圓或橢圓,表示變換數(shù)據(jù)的處理; 方框,表示數(shù)據(jù)的三原點或終點; = 雙杠或單杠,表示數(shù)據(jù)存儲(文件)。 除上述 4 種基本符號之外,有時也使用幾種附加符號,星號(*)表示數(shù)據(jù)之間的關系(同時存在);加號(+)表示“或”關系,號表示只能從中選一個(互斥的關系)。 3.5 畫數(shù)據(jù)流圖的步驟是什么?應該注意什么事項? 答:(1)第一步,先找外部實體(可以是人、物或其他軟件系統(tǒng)),找到了外部實體,則系統(tǒng)與外部世界的界面就得以確定,系統(tǒng)的源點和終點也就找到了; 第二步,找出外部實體的輸入和輸出數(shù)據(jù)流; 第三步,在圖的邊上畫出系統(tǒng)的外部實體; 第四步,從外部實體的輸出流(源點)出發(fā),按照系統(tǒng)的邏輯需要,逐步畫出一系列變換數(shù)據(jù)的加工,直到找到外部實體處所需的輸入流(終點),形成數(shù)據(jù)流的封閉; 第五步,按照上述原則進行檢查和修改。 最后按照上述步驟畫出所有子圖。 (2) 畫數(shù)據(jù)流圖時,只考慮數(shù)據(jù)流的靜態(tài)關系,不考慮其動態(tài)關系(如啟動、停止等與時間有關的問題),也不考慮出錯處理問題。 畫數(shù)據(jù)流圖時,只考慮常規(guī)狀態(tài),不考慮異常狀態(tài),這兩點一般留在設計階段解決。 畫數(shù)據(jù)流圖不是畫程序流程圖,二者有本質的區(qū)別。數(shù)據(jù)流圖只描述 “做什么”,不描述“怎么做”和做的順序,而程序流程圖表示對數(shù)據(jù)進行加工的控制和細節(jié)。 不能期望數(shù)據(jù)流圖一次畫成,而是要經(jīng)過各項反復才能完成。 描繪復雜系統(tǒng)的數(shù)據(jù)流圖通常很大,對于畫在幾張紙上的圖很難閱讀和理解。一個比較好的方法是分層的描繪這個系統(tǒng)。在分層細畫時,必須保持信息的連續(xù)性,父圖和子圖要平衡,每次只細畫一個加工。 3.6 什么是數(shù)據(jù)字典?其作用是什么?它有哪些條目? 答:(1)數(shù)據(jù)字典是對數(shù)據(jù)流圖中所包含元素的定義集合。 (2) 數(shù)據(jù)字典的作用正是在軟件分析和設計的過程中,給人提供數(shù)據(jù)描述,即對數(shù)據(jù)存儲(文件)和加工(處理)等名字進行定義。 (3) 數(shù)據(jù)流、數(shù)據(jù)流分量(數(shù)據(jù)基本項)、數(shù)據(jù)存儲(文件)和加工(處理)。 3.7 描述加工邏輯有幾種工具?各是什么?寫出其優(yōu)缺點。 答:(1)描述加工邏輯一般用結構化語言、判定表和判定樹。 優(yōu)點 缺點 結構化語言 既有結構化程序的清晰易讀的優(yōu)點,又有自然語言簡單易懂的優(yōu)點,又避免了自然語言不精確可能產(chǎn)生二義性的缺點。 只有順序、循環(huán)、條件三種控制結構。 判定表 能清晰地表示復雜的條件組合與應做動作之間的關系。 不能描述循環(huán)的處理特征。 判定樹 它比判定表更觀,且易于理解和使用。 (同判定表) 3.8某高校計算機教材購銷系統(tǒng)有以下功能。 學生購買書時,要先填寫購書單,系統(tǒng)根據(jù)各班學生用表及售書登記表審查有效性,如果有效,系統(tǒng)根據(jù)教材庫存量表進一步判斷書庫是否有書,如果有書,系統(tǒng)把領書單返回給學生,學生憑書單到書庫領書,對短缺的教材,系統(tǒng)用缺書單的形式通知書庫,新書購進書庫后,也由書庫將進書通知返回給系統(tǒng)。 請采用 SA 方法畫出該系統(tǒng)的分層數(shù)據(jù)流圖,并建立相應的數(shù)據(jù)字典。 答: 學生 學生 書庫 書庫 圖書管理系統(tǒng)購書單 進書通知 領書單 缺書單 a) b) 數(shù)據(jù)字典 (1) 數(shù)據(jù)流條目: 購書單=學院+專業(yè)+班級+購書種類+購書數(shù)量+價格 進書通知=書名+進書數(shù)量+書類型+作者名稱+出版社+價格 領書單:書名+作者名稱+出版社+數(shù)量+學院+專業(yè)+班級+價格缺書單=書名+作者名稱+出版社+剩余數(shù)量+再購進數(shù)量 (2) 數(shù)據(jù)存儲條目:文件名:庫存清單 組成:書名+書籍編號+價格+作者名稱+出版社+類型+現(xiàn)有數(shù)量組成方式:索引文件,以書籍編號為關鍵文件名:售書登記表 組成:書名+書籍編號+售出數(shù)量+價格組成方式:索引文件,以書籍編號為關鍵 文件名:各班學生用表組成:班級+人數(shù)+領書量 組成方式:索引文件,以班級為關鍵 (3) 數(shù)據(jù)項 (4) 加工條目 加工名:圖書管理系統(tǒng) 編號:無 輸入:購書單、進書通知、庫存清單、售書登 記表、各班學生用表 輸出:領書單、缺書單 加工名:錄入存儲處理 編號:1 輸入:進書通知 加工邏輯:IF 沒有所輸入的書籍記錄 THEN 建立新的書籍記錄,存入該書 籍的基本記錄 ELSE 輸入書籍記錄 ENDIF 加工名:查詢處理 編號:2 輸入:購書單 輸出:領書單、缺書單 加工邏輯:根據(jù)購書單、售書登記表、各班學生 用表及庫存清單 IF 審查售書登記表及各班學生用表 有效 THEN IF 有庫存 THEN 輸出領書單 ELSE 輸出缺書單 加工名:審查、分類 編號:1.1 輸入:進書通知 輸出:書籍信息 加工邏輯:根據(jù)進書通知將書審查、分類 加工名:審查有效性 編號:2.1 輸入:購書單 輸出:有效 加工邏輯:根據(jù)購書單、售書登記表、各班學生用 表 IF 審查售書登記表及各班學生用表 有效 THEN 輸出有效 加工名:判斷書庫是否有書 編號:2.2 輸入:有效 輸出:領書單、缺書單 加工邏輯:IF 有庫存 THEN 輸出領書單 ELSE 輸出缺書單 ENDIF 3.9 某計算機公司為本科以上學歷的人重新分配工作的政策是:年齡在 25 歲以下者,學歷是本科男性要求報考研究生,女性則擔任行政工作;年齡在 25 歲至 45 歲之間者,學歷本科,不分男女,任中層領導職務,學歷是碩士,不分男女,任課題組組長;年齡在 45 歲以上者,學歷本科,男性任研究人員,女性則擔任資料員,學歷是碩士,不分男女,任課題組組長。請用結構化語言、判定表和判定樹描述上述問題的加工邏輯。 答:結構化語言: if 年齡25 then if 學歷=本科 then if 性別=男 then 報考研究生 endif if 性別=女 then 擔任行政工作 endif endif endif if 25=年齡=45 then if 學歷=本科 then 擔任中層領導職務endif if 學歷=碩士 then 任課題組組長 endif endif if 45年齡 then if 學歷=本科 then if 性別=男 then 任研究人員 endif if 性別=女 then 任資料員 endif endif if 學歷=碩士 then 任課題組組長 endif endif 判定表: 年齡 25 25=年齡=45 45 性別 男 女 男/女 男/女 男 女 男/女 學歷 本科 本科 碩士 本科 碩士 報考研究生 擔任行政工作 任中層領導職務 任課題組組長 擔任研究人員 擔任資料員 判定樹 男性:要求報考研究生 本科 年齡25 本科 女性:擔任行政工作 本科:任中層領導職務 重新分配工作25年齡=45 碩士:任課題組組長 男性:擔任研究人員 45 年齡 女性:擔任資料員 碩士:任課題組組長 3.10 數(shù)據(jù)庫內容的需求分析工作主要從哪幾方面進行? 答:(1)信息需求 信息需求指用戶需要從數(shù)據(jù)庫中獲得的信息的內容和性質,信息需求是軟件數(shù)據(jù)需求中最基本的需求,主要是確定系統(tǒng)需要存儲和使用哪些數(shù)據(jù),用戶需要從數(shù)據(jù)庫中獲得信息的內容和性質。 (2) 處理需求 處理需求是用戶要求軟件系統(tǒng)完成的功能,以及對系統(tǒng)功能的處理時間、方式等方面的要求,如是要求批處理還是聯(lián)機處理等。 (3) 使用需求 使用需求包括:使用數(shù)據(jù)庫時在安全性、完整性和一致性等方面的限制;查詢方式、輸入/輸出格式和多用戶等方面的要求;響應速度、故障恢復等性能要求。 3.11 建立全局 E-R 模型時,各分 E-R 模型之間可能出現(xiàn)的沖突有哪些?應如何處理? 答:(1)各局部 E-R 模型之間的沖突主要有 3 類:屬性沖突、命名沖突和結構沖突。 (2) 屬性沖突:突理論上好解決,但實際上需要各部門討論協(xié)商,解決起來也并非易事。 命名沖突:處理方法與屬性沖突的解決方法一樣,也是通過討論、協(xié)商等手段解決。 結構沖突:使集成后的該實體取各局部 E-R 模型中屬性的并集,再適當調整屬性的次序;實體間的聯(lián)系在各局部 E-R 模型中具有不同的類型,解決辦法是根據(jù)應用的語義對實體之間聯(lián)系的類型進行綜合或調整。 第四章 4.1 總體設計階段的主要目的和任務是什么? 答:總體設計階段的基本目標就是回答“概括地說,系統(tǒng)應該如何實現(xiàn)?”這個問題,因此總體設計又稱為概要設計或初步設計。 通過這個階段的工作,開發(fā)人員將劃分出組成系統(tǒng)的物理元素,如程序、文件、數(shù)據(jù)庫等。但是這些物理元素還處于黑盒子的形式,具體的內部細節(jié)在詳細設計階段考慮??傮w設計的另一項任務是設計軟件的總體結構,即確定系統(tǒng)中的每個程序是由哪些模塊組成的,每個模塊的功能及模塊和模塊之間的接口、調用關系等,但所有這些都不要求涉及模塊內部過程的細節(jié)。 4.2 為每種類型的模塊耦合和模塊內聚各舉一個具體例子。 答:無直接耦合 模塊B和C 模塊D和E 模塊B和D 模塊 B 和 E 數(shù)據(jù)耦合 函數(shù)調用時的值傳遞 模塊 A:完成兩個數(shù)的輸入。 模塊 B:完成兩個數(shù)的比較,求出最大并返回。 比較輸入的兩個數(shù)的大小。 標記耦合 模塊 A 模塊C 模塊B 數(shù)據(jù)結構 數(shù)據(jù)結構 控制耦合 模塊A 控制信息 模塊 B 功 能1 功能2 功能3 。功能 n 公共環(huán)境耦合 模塊 A 模塊 B 公共模塊 模塊 A:學生信息查詢模塊 B:選課查詢模塊 C:成績查詢數(shù)據(jù)結構:學號+院系+課程 模塊 A 模塊 B 公共模塊 內容耦合 模塊A 模塊B(公共數(shù)據(jù)) 模塊A 模塊B ENTRY one: a) b) c) 偶然內聚 move a to b; read disk file; move c to d; 邏輯內聚 模塊A 模塊B 功能1 功能2 。功能n 參數(shù)信息 時間內聚 模塊完成各種初始化工作,同時打開若干個文件,同時關閉若干個文件等。 通信內聚 模塊A 模塊 A:學生信息查詢數(shù)據(jù)結構 模塊 B:選課查詢及成績查詢數(shù)據(jù)結構:學號+院系+課程模塊 B 順序內聚、功能內聚 輸入系數(shù) 求解 打印方程解 求一元二次方程的 根 4.3 模塊的耦合性和軟件的可移植性有什么關系?說明理由。 答:模塊的耦合性越低軟件的可移植性越高。 模塊的耦合性是指模塊之間相互獨立的度量,耦合強弱取決于借口的復雜程度,在軟件的設計中盡可能設計弱的耦合的系統(tǒng),這樣程序容易測試、修改和維護,也便于移植到其他計算機上。 4.4 如何區(qū)分數(shù)據(jù)流圖的類型?試述“變換型數(shù)據(jù)流圖”和“事務型數(shù)據(jù)流圖”的設計步驟。 答:(1)按照數(shù)據(jù)流圖的性質可以將數(shù)據(jù)流圖分成兩種基本類型:變換型和事務型。變換型數(shù)據(jù)流圖基本呈線性形狀的結構,由輸入、變換、輸出 3 部分組成;當一個數(shù)據(jù)項到達處理某個模塊時,將有多個動作之一,這就是事務型的。這種類型的數(shù)據(jù)流圖常呈輻射狀,即數(shù)據(jù)沿著輸入通路到達下一個處理 T,這個處理根據(jù)輸入數(shù)據(jù)的類型分離成一束平行的數(shù)據(jù)流,然后選擇執(zhí)行若干個動作序列中的某一個來執(zhí)行。 (2)變換型數(shù)據(jù)流圖的設計步驟: 確定邏輯輸入和邏輯輸出的邊界,找出變換中心;設計軟件結構的頂層和第一層;設計中下層模塊;對初始結構圖優(yōu)化。事務型數(shù)據(jù)流圖的設計步驟:在數(shù)據(jù)流圖上確定事務中心,輸入流和活動路徑;設計事務結構的頂層和第一層;設計事務結構的中下層;對初始的事務結構優(yōu)化工作同變換結構。 4.5 畫出習題 3 中的第 3.8 題的軟件結構圖。 答: 計算機教材購銷系統(tǒng) 接受輸入 審查并購書 輸出 讀取進書通知 讀取購書單信息 審查有效性 購書 領書單 缺書單 進書通知 購書 有效/無效 購書單 領書通知 缺書通知 進書通知/購書單 領書通知/缺書通知 4.6 試將圖 4.17 的變換型數(shù)據(jù)流圖轉換成軟件結構圖。 圖 4.17 變換型數(shù)據(jù)流圖 答: 4.7 工資管理系統(tǒng)中的一個子系統(tǒng)有如下功能。 (1) 由基本工資計算應扣除(如水電氣費等)的部分; (2) 根據(jù)職工的出勤情況計算獎金部分; (3) 根據(jù)輸入的扣除額及獎金計算工資總額部分; (4) 由工資總額計算應扣除稅金部分; (5) 根據(jù)計算總額部分和計算稅金部分傳遞來的有關職工工資詳細信息生成工資表。 試根據(jù)需求畫出該問題的數(shù)據(jù)流圖,并將其轉換為軟件結構圖。 答: 數(shù)據(jù)流圖 職工出勤表 基本工資 職工 工資表 水電費用計算 計算工資總額 計算獎金 稅金計算 工資單生成 軟件結構圖 工資管理系統(tǒng) 得到應扣除(如水電氣費等)的部分和獎金 得到應扣除的部分 得到獎金 基本工資 出勤情況 計算應扣除的 計算獎金 由應扣除的部分和獎金得到工資單 計算工資總額 計算稅金 職工工資詳細信息 輸出工資單 生成工資單 輸出工資表 工資單 4.8 比較軟件結構圖和層次圖的異同。 答:軟件結構圖是軟件系統(tǒng)的模塊層次結構,結構圖的主要內容有:模塊、模塊的調用關系、輔助符號。兩個模塊之間用單向箭頭或直線連接起來表示它們的調用關系,用直線而不用箭頭表示模塊之間的調用關系。在調用線兩旁通常還有帶注釋的箭頭表示模塊調用過程中來回傳遞的信息,箭頭指明傳送的方向,以同一名字命名的模塊在結構圖中僅允許出現(xiàn)一次,一般總是位于上方的模塊調用位于下方的模塊,調用關系只能從上到下,調用次序可以依據(jù)數(shù)據(jù)傳遞關系來確定,一般由左向右。 層次圖是軟件系統(tǒng)的模塊層次結構,層次圖中的每一個矩形框代表一個模型,矩形框之間的關系表示調用關系,層次方框圖中方框代表一個數(shù)據(jù),方框之間的連線表示組成關系。 第五章 5.1軟件詳細設計的基本任務是什么?有哪幾種描述方法? 答:(1)軟件詳細設計的基本任務就是為軟件結構圖中每一個模塊確定采用的算法和塊內數(shù)據(jù)結構,用某種選定的詳細設計工具更清晰地描述,從而在編碼階段可以把這些描述直接翻譯成某種程序設計語言書寫的源程序。 (2)有圖形、表格和語言三種描述方法。 5.2結構化程序設計的基本要點是什么? 答:結構化程序設計使用三種基本控制結構,有順序、條件和重復;結構化程序設計采用自頂向下,逐步求精的設計方法和單入口單出口的控制結構。逐步求精,在總體設計階段用逐步求精法可以把一個復雜問題解法分解和細劃成由許多模塊組成的層次結構和軟件系統(tǒng)。 5.3使用流程圖、PAD圖、N-S圖和PDL語言描述下列程序的算法: (1)在數(shù)據(jù)A(1)A(10)式中求最小數(shù)和次小數(shù); 答:流程圖 PAD圖 N-S圖 PDL語言 PROCEDURE 模塊名(形式參數(shù)); PUT(“請輸入十個數(shù)字”); FOR i=1 to 10 Get(A(i) ENDFOR; i=1; WHILE i=10 j=i+1; Min=A(i); WHILEjA(i) THEN B=Min; Min=A(i); A(i)=B; ENDIF; j+; ENDWHILE; A(i)=Min; i+; ENDWHILE; PUT(“輸出最小數(shù):”); PUT(A(1)); PUT(“輸出次小數(shù):”); PUT(A(2)); (2)輸入 3 個正整數(shù)作為邊長,判斷由這 3 條邊構成的三角形是直角、等腰或一般三角形。 答:流程圖 F F T F T F F T T T T 開始 輸入三個整數(shù)A1、A2、i=3 j=i+1 Min=A(i) jA(j) B=Min Min=A(i) A(i)=B j+ A(i)=Min i+ i=1 A12+A22=AA1=A2 A1=A等腰直角三角形 直角三角形 等腰三角形 一般三角形 結束 PAD圖 sort i=1 WHILE i=3 j=i+1 Min=A(i) WHILE jA(j) j+ B=Min Min=A(i) A(i)=B T F def N-S圖 輸入三個整數(shù)A1、A2、A3 While i=3 j=i+1 Min=A(i) While jA(j) B=Min Min=A(i) A(i)=B j+ i=1 A(i)=Min i+ T F A12+A22=A32 T F A1=A輸出等腰直角三角形 輸出直角三角形 T F 輸出等腰三角形 輸出一般三角形 A1=AT F PDL語言 PROCEDURE 模塊名(形式參數(shù)); PUT(“請輸入三個正整數(shù)”); FOR i=1 to 3 Get(A(i) ENDFOR; i=1; WHILE i=3 j=i+1; Min=A(i); WHILE jA(i) THEN B=Min; Min=A(i); A(i)=B; ENDIF; j+; ENDWHILE; A(i)=Min; i+; ENDWHILE; IF A12+A22=A32 THEN IF A1=A2 THEN PUT(“等腰直角三角形”) ELSE PUT(“直角三角形”) ENDIF; ELSE IF A1=A2 THEN PUT(“等腰三角形”) ELSE PUT(“一般三角形”) ENDIF; ENDIF; 5.4 任選一種排序(從大到小)算法,分別用流程圖、NS 圖和 PDL 語言描述其詳細過程。 見 5.3 題第一問 5.5 畫出下列程序的 PAD 圖。 repeat ifx0 thenx1 else x2 endif; S1; ify0 theny1 ifz0 thenz1 elsez2 endif; S2; elsey2; endif; untill; 答: 開始 結束 UNTIL L A S1 B A B x0 def def y0 x1 x2 C y2T F T F defz1z2S2z0CFTy15.6 程序流程圖、NS 圖、PAD 圖和 PDL 語言的特點各是什么?你認為這 4 種詳細設計工具哪一種最好?為什么? 答:程序流程圖:優(yōu)點:易學、表達算法直觀。缺點:程序流程圖本質上不是逐 步求精的好工具,程序流程圖中用箭頭代表控制流,因此程序員 不受任何約束,可以完全不顧結構程序設計的精神,隨意轉移控 制,容易造成非結構化的程序結構;程序流程圖不易表示數(shù)據(jù)結 構和層次結構。 NS 圖:優(yōu)點:功能域表達明確,功能域從盒式圖上可以明顯地看出來;很容 易確定局部和全局數(shù)據(jù)的作用域;不可能隨意轉移控制;很容易 表達模塊的層次結構,并列或嵌套關系;使得軟件設計人員遵守 結構化程序設計的規(guī)定,自然地養(yǎng)成良好的程序設計風格。缺點: 主要特點就是只能描述結構化程序所允許的標準結構 PAD 圖:優(yōu)點:用 PAD 圖設計出來的程序必然是結構化程序;PAD 圖所描繪 的程序結構十分清晰,圖中最左面的豎線就是程序的主線,即第 一 層結構。隨著程序的層次增加,PAD 圖逐漸向右延伸,每增加一 個層次,圖形向右擴展一條豎線。PAD 圖中豎線的總條數(shù)就是程 序的層次數(shù);PAD 圖的符號支持自頂向下,逐步求精的方法,左 邊層次中的內容可以抽象,然后利用 def 從左向右逐步細化; 用 PAD 圖表示的程序邏輯易讀、易懂、易記,使用方便;既可 表示程序邏輯,也可用于描繪數(shù)據(jù)結構;可自動生成程序。利用 軟件工具自動完成,省去人工編碼工作,有利于提高軟件的可靠 性和軟件生產(chǎn)率。 PDL語言:特點:所有關鍵字都有固定語法,以便提供結構化的控制結構、數(shù)據(jù)說明和模塊化的特征;為了使結構清晰和可讀性好,通常在所有可能嵌套使用的控制結構的頭和尾部都有關鍵字;描述處理過程的說明性語言沒有嚴格的語法限制;具有數(shù)據(jù)說明機制,既包括簡單的數(shù)據(jù)結構(例如,簡單變量和數(shù)組)又包括復雜的數(shù)據(jù)結構(例如,鏈表或層次的數(shù)據(jù)結構);具有模塊定義和調用機制,因此,開發(fā)人員應根據(jù)系統(tǒng)編程所用的語種,說明過程設計語言表示的有關程序結構。 第六章 6.1 在軟件項目開發(fā)時,選擇程序設計語言通??紤]哪些因素? 答:為了使程序容易測試和維護以減少軟件開發(fā)總成本,選用的高級語言應該有比較理想的模塊化機制,以及可讀性好的控制結構和數(shù)據(jù)結構;為了便于調試和提高軟件的可靠性,語言的特點應該使編譯程序能夠盡可能地發(fā)現(xiàn)程序中的錯誤;為了降低軟件開發(fā)和維護的成本,選用的語言應該有良好的獨立編譯機制。這些要求是選擇程序設計語言的理想標準,但在實際選用程序設計語言時,不能僅僅考慮理論上的標準,還必須同時考慮實際應用方面的各種因素和限制,如不同應用問題的特性、用戶要求、應用環(huán)境等。主要的實用標準有下述幾條:待開發(fā)軟件的應用領域、用戶的要求、軟件的運行環(huán)境、軟件開發(fā)人員的知識、軟件的可移植性要求 6.2 舉例說明各種程序設計語言的特點及適用范圍。 答:FORTRAN 語言,它不僅面向科學計算,數(shù)據(jù)處理能力也極強。適用于科學工程計算 Pascal 語言,具有很強的數(shù)據(jù)和過程結構化能力,它語言簡明,數(shù)據(jù)類型豐富,程序結構嚴謹。它是第一個體現(xiàn)結構化編程思想的語言。用于描述結構化算法和科學計算,操作系統(tǒng)的編寫 C 語言:功能強大,支持復雜的數(shù)據(jù)結構,可大量運用指針,具有豐富靈活的操作運算符及數(shù)據(jù)處理操作符,它還具有匯編語言的某些特征,使程序運行效率高??捎糜谠S多領域,特別是在操作系統(tǒng)等方面有較大優(yōu)勢。 Coble 語言,它具有極強的數(shù)據(jù)定義能力,程序說明與硬件環(huán)境說明分開、數(shù)據(jù)描述與算法描述分開。結構嚴謹層次分明,廣泛用于商業(yè)數(shù)據(jù)處理。 SQL:結構化查詢語言,用于對數(shù)據(jù)庫進行存取管理。 匯編語言和 Ada 語言,主要用于實時處理和編寫系統(tǒng)軟件。 Prolog、Lisp 語言。Lisp 是一種函數(shù)型語言,特別適用于組合問題中符號運算和表處理,用于定理證明、樹的搜索和其他問題的求解。Prolog 是一種邏輯型語言,它提供了支持知識表示的特性,每一個程序由一組表示事實、規(guī)則和推理的句子組成,比較接近與自然語言。這兩種語言主要用于人工智能系統(tǒng)開發(fā)。 C+、Java 語言,是面向對象的設計語言,用于面向對象的方開發(fā)軟件。 6.3 什么是程序設計風格?為了具有良好的程序設計風格,應該注意哪些方面的問題? 答:程序設計風格是指一個人編制程序時所表現(xiàn)出來的特點、習慣、邏輯思路等。要形成良好的程序設計風格,應從源程序文檔化、數(shù)據(jù)說明、語句構造、輸入輸出和追求效率幾個方面加以注意。 6.4 以下 3 個表達式表示的是同一個內容: (A)-6*A/3*B; (b) -(6*A/3)*B; (c) +(6*A)/(-3)*x) (1) 你認為哪一種可讀性最好?哪一種最差? (2) 如果讓你列出幾條關于書寫表達式的指導原則,你對表達式中運算符的數(shù)量和圓括號的層數(shù)將做何規(guī)定?答:(1)b 的可讀性最好,c 的可讀性最差 (2)表達式中運算符的數(shù)量應該以滿足表達式為宜,不應加入過多無謂的運算符:括號的數(shù)量不應過多,適合恰當?shù)睦ㄌ柺惯壿嫳磉_式的運算次序清晰直觀,過多或過少的括號都會降低可讀性。 6.5 第 4 代語言有哪些主要特征?為什么受到廣大用戶歡迎? 答:主要特征是:友好的用戶界面、非過程性,程序員只需告訴計算機“做什么”,而不必描述“怎樣做”。 由于易學易用而受到廣大用戶歡迎。 第七章 7.1 軟件測試的基本任務是什么?簡述

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論