軟件工程導論第六版課后習題答案精編版_第1頁
軟件工程導論第六版課后習題答案精編版_第2頁
軟件工程導論第六版課后習題答案精編版_第3頁
軟件工程導論第六版課后習題答案精編版_第4頁
軟件工程導論第六版課后習題答案精編版_第5頁
免費預覽已結束,剩余29頁可下載查看

下載本文檔

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

文檔簡介

1、后習題答案SANY 標準化小組 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#第一章一、什么是軟件危機它有哪些典型表現為什么會出現軟件危機軟件危機是指在計算機軟件開發、使用與維護過程中遇到的一系列嚴重問題和難題.它包括兩方面:如何開發軟件,已滿足對軟 件日益增長的需求;如何維護數量不斷增長的已有軟件。軟件危機的典型表現:(1)對軟件開發成本和進度的估計常常很不準確。常常出現實際成本比估算成本高出一個數量級、實際進度比計劃進度拖延幾個 月甚至幾年的現象。而為了趕進度和節約成本所采取的一些權宜之計又往往損害了軟件產品的質繪。這些都降低了開發商的信 餐,引起用戶不滿。(2)用戶對已完成

2、的軟件不満意的現彖時有發生。(S)軟件產品的質最往往是靠不住的.(4)軟件常常是不可維護的.(5)軟件通常沒有適當的文檔資料。文檔資料不全或不合格,必將給軟件開發和維護工作帶來許多難以想象的困難和難以解決的 問題。(6)軟件成本、軟件維護費在計算機系統總成本中所占比例逐年上升。(7)開發生產率提高的速度遠跟不上計算機竝用普及的需求。軟件危機出現的原因:(1)來自軟件自身的特點:是邏輯部件,缺乏可見性;規模龐大、復雜,修改、維護困難。(2)軟件開發與維護的方法不當:忽視需求分析;認為軟件開發等于程序編寫;輕視軟件維護。(S)供求矛盾將是一個永恒的主題:面對日益增長的軟件需求,人們顯得力不從心.二

3、、假設自己是一家軟件公司的總工程師,當把圖給手下的軟件工程師們觀看,告訴他們及時發現并改正錯誤的重要性時,有人 不同意這個觀點,認為要求在錯誤進入軟件之前就清楚它們是不現實的,并舉例說:“如果一個故障是編碼錯誤造成的,那么, 一個人怎么能在設計階段淸除它呢”應該怎么反駁他答:在軟件開發的不同階段進行修改付出的代價是很不相同的,在早期引入變動,涉及的面較少,因而代價也比較低;在開發的 中期,軟件配置的許多成分己經完成,引入一個變動要對所有已完成的配置成分都做相應的修改,不僅工作世大,而且邏輯上也更復雜,因此付出的代價劇増;在軟件“已經完成”是在引入變動,當然付出的代價更高.一個故 障是代碼錯誤造

4、成的,有時這種錯洪是不可避免的,但要修改的成本是很小的,因為這不是 整體構架的錯誤。三、什么是軟件工程它有哪些本質特征怎樣用軟件工程消除軟件危機1993年IEEE的定義:軟件工程是:把系統的、規范的、可度量的途徑應用于軟件開發、運行和維護過程,也就是把工程應用 于軟件;研憲中提到的途徑。軟件工程的本質特征:(1)軟件工程關注于大型程序(軟件系統)的構造(2)軟件工程的中心課題是分解問題,控制復雜性(3)軟件是經常變化的,開發過程中必須考慮軟件將來可能的變化(4)開發軟件的效率非常重要,因此,軟件工程的一個舉要課題就是,尋求開發與維護軟件的更好更有效的方法和工具(5)和諧地合作是開發軟件的關鍵(

5、6)軟件必須有效地支持它的用戶(7)在軟件工程領域中是由只有一種文化背象的人普具冇另一種文化背最的人(完成一些工作)消除軟件危機的途徑,(1)對計算機軟件有一個正確的認識(軟件H程序)(2)必須充分認識到軟件開發不是某種個體勞動的神秘技巧,而應該是一種組織良好、管理嚴密、各類人員協同配合、共同完成 的工程項目(3)推廣使用在實踐中總結出來的開發軟件的成功技術和方法(4)開發和使用更好的軟件工具四、簡述結構化范型和面向對象范型的要點,并分析他們的優缺點1. 傳統方法學:也稱為生命周期方法學或結構化范型。優點:把軟件生命周期劃分成基干個階段,每個階段的任務相對獨立,而 且比較簡單,便于不同人員分工

6、協作,從而降低了整個軟件開發過程的困難程度。缺點:當軟件規模龐大時,或者對軟件的需求 是模糊的或會承受時間而變化的時候,開發出的軟件往往不成功;而且維護起來仍然很困難。2面向對象方法學:優點:降低了軟件產品的復雜性:提高了軟件的可理解性;簡化了軟件的開發和維護工作;促進了軟件重 用.五、1-5根據歷史數據可以做出如下的假設:對計算機存儲容址的需求大致按下面公式描述的趨勢逐年增加:M=(Y-1960)存儲器的價格按下面公式描述的趨勢逐年下降:Pl=X (美分/位)如果計算機字長為16位,則存儲器價格下降的趨勢為:P2=X(美元/字)在上列公式中Y代表年份,M是存儲容雖(字數),Pl和P2代表價格

7、.基于上述假設可以比較計算機硬件和軟件成本的變化趨勢.要求計算:(1)在1985年對計算機存儲容瑩的需求估計是多少如果字長為16位,這個存儲器的價格是多少存儲容St需求 M= (1985-1960) =4474263 (字)存儲器價格 P=* (1985-1974) *4474263=5789 美元(2)假設在1985年一名程序員每天可開發出10條捋令,程序員的平均工資是每月4000美元。如果一條指令為一個字長,計算 使存儲器裝滿程序所需用的成本.需要工作瑩4474263/200=22371 (人/月)指令成本22371*4OOO=美元(S)假設在1995年存儲器字長為32位,一名程序員每天可

8、開發出30條指令,程序員的月平均工資為6000美元,重復(1)、(2) 題.需求估計M= (1995-1960)=字存儲器價格*32* (1995-1974) *=7127美元工作總:/600=122629(人/月)成本 122629*6000=0 美元六、什么是軟件過程它與軟件工程方法學有何關系軟件過程是為了開發出高質量的軟件產品所需完成的一系列任務的框架,它規定了完成各項任務的工作步驟.軟件工程方法學:通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱范型。軟件過程是軟件工程方法學的3個重要組成部分之一.七、什么是軟件生命周期模型試比較瀑布模型、快速原型模型、増量模型和

9、螺旋模型的優缺點,說明每種模型的使用范圍。軟件生命周期模型是跨越整個生存期的系統開發、運作和維護所實施的全部過程、活動和任務的結構框架。瀑布模型優點:它提供了一個模板,這個模板使得分析、設計、編碼、測試和支持的方法可以在該模板下有一個共同的指導。 雖然有不少缺陷但比在軟件開發中隨意的狀態要好得多。缺點:(1)實際的項目大部分情況難以按照該模型給出的順序進行,而且這種模型的迭代是間接的,這很容易由微小的變化而造 成大的混亂.(2)經常情況下客戶難以表達真正的需求,而這種模型卻要求如此,這種模型是不歡迎具有二義性問題存在的。(S)客戶要等到開發周期的晚期才能看到程序運行的測試版本,而在這時發現大的

10、錯誤時,可能引起客戶的驚慌,而后果也可能 是災難性的.快速原型模型優點:使用戶能夠感受到實際的系統,使開發者能夠快速地構造出系統的框架.缺點:產品的先天性不足,因為開發者常常需要做實現上的折中,可能采用不合適的操作系統或程序設計語言,以使原型能夠盡 快工作。增量模型優點:(1)人員分配靈活,剛開始不用投入大量人力資源,當核心產品很受歡迎時,可增加人力實現下一個增量(2)當配備的人員不能在設定的期限內完成產品時,它提供了一種先推出核心產品的途徑,這樣就可以先發布部分功能給客戶, 對客戶起到鎮靜劑的作用.缺點:(1)至始至終開發者和客戶糾編在一起,直到完全版本出來.(2)適合于軟件甜求不明確、設計

11、方案有一定風險的軟件項目.該模型具有一定的市場。螺旋模型優點:對于大型系統及軟件的開發,這種模型是一個很好的方法.開發者和客戶能夠較好地對待和理解每一個演化級別上的風 險。缺點:(1)需要相當的風險分析評估的專門技術,且成功依賴于這種技術。(2)很明顯一個大的沒有被發現的風險問題,將會導致問題的發生,可能導致演化的方法失去控制。(3)這種模型相對比較新,應用不廣泛,其功效需要進一步的驗證.該模型適合于大型軟件的開發八、為什么說噴泉模型較好的體現了面向對象軟件開發過程無縫和迭代的特性因為使用面向對象方法學開發軟件時,各個階段都使用統一的概念和表示符號,因此,整個開發過程都是吻合一致的,或者說是

12、無縫連接的,這自然就很容易實現各個開發步驟的反復多次迭代,達到認識的逐步深化,而噴泉模型則很好的體現了面向對象軟 件開發過程迭代和無縫的特性.九、試討論RationaI統一過程的優缺點。優點:提高了團隊生產力,在迭代的開發過程、需求管理、基于組建的體系結構、可視化軟件建模、驗證軟件質厳及控制軟件變 更等方面、針對所有關鍵的開發活動為每個開發成員提供了必要的準則、模版和工具指導,并確保全體成員共享相同的知識基 礎.它建立了簡潔和清晰的過程結構,為開發過程提供較大的通用性。缺點:RUP只是一個開發過程,并沒有涵蓋軟件過程的全部內容,例如它缺少關于軟件運行和支持等方面的內容,此外,他沒有 支持多項目

13、的開發結構,這在一定程度上降低了在開發組織內大范圍實現重用的可能性.十.RatiOnaI統一過程主要適用于何種項目大型的需求不斷變化的復雜軟件系統項目十一.說明敏捷過程的適用范圍適用于商業競爭環境下對小型項目提出的有限資源和有限開發時間的約束十二.說明微軟過程的適用范圍適用于商業環境下具冇冇限資源和冇限開發時間約束的項目的軟件過程模式第二章1. 在軟件開發的早期階段為什么要進行可行性研憲應該從哪些方面研憲目標系統的可行性答:(1)開發一個軟件時,需要判斷原定的系統模型和目標是否現實,系統完成后所能帶來的效益是否大到值得投資開發這個 系統的程度,如果做不到這些,那么花費在這些工程上的任何時間、人

14、力、軟碘件資源和經費,都是無謂的浪費.可行性研究的 實質是要進行一次大大壓縮簡化了的系統分析和設計過程,就是在較高層次上以較抽象的方式進行的系統分析和設計的過程.可 行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決.(2) 一般說來,至少應該從以下三個方面研憲每種解法的可行性:a技術可行性。對要開發項目的功能、性能和限制條件進行分析,確定在現有的資源條件下,技術風險有多大,項目是否能實 現,這些即為技術可行性研宛的內容。這里的資源包括已有的或可以搞到的硬件、軟件資源,現有技術人員的技術水平和已有的 工作基礎.b. 經濟可行性。進行開發成本的估算以及了解取得效益的評估,確定要

15、開發的項目是否值得投資開發,這些即為經濟可行性研 究的內容對于大多數系統,一般衡盤經濟上是否合算,應考慮一個“底線",經濟可行性研究范圍較廣,包括成本一效益分析, 長期公司經營策略,開發所需的成本和資源,潛在的市場前最.c. 操作可行性。有時還要研宛社會可行性問題,研尤要開發的項目是否存在任何侵犯、妨礙等責任問題。社會可行性所涉及的范 圍也比較廣,它包括合同、責任、侵權和其他一些技術人員常常不了解的陷阱竽.必要時還應該從法律、社會效益等更廣泛的方面研究每種解法的可行性。2. 為方便儲戶,某銀行擬開發計算機儲蕃系統。儲戶填寫的存款單或取款單由業務員鍵入系統,如果是存款,系統記錄存款人姓

16、 名、住址、存款類型、存款日期、利率等伯息,并印出存款單給儲戶;如果是取款,系統計算利息并印出利息清單給儲戶。請 寫出問題定義并分析此系統的可行性。數據流程圖:取票圖:航空訂票系統技術在目前是一個技術上成熟的系統,并且在航空公司內部準備采取有力措施保證資金和人員配置等。因此,分階 段開發“航空訂票系統”的構想是可行的.為了使航空公司適應現代化市場競爭的需求,促進機票預訂管理宿息化,不斷滿足旅 客預訂機票的要求,爭取更好的經濟效益,可立即著手系統的開發與完善。3、為方便旅客,某航空公可擬開發一個機票預定系統。旅行社把預定機票的旅客信息(姓名、性別、工作單位、身份證號碼、 旅行時間、旅行目的地等)

17、輸入進入該系統,系統為旅客安排航班,印出取票通知和賬單,旅客在飛機起飛的前一天憑取票通知 和賬單交款取票,系統校對無誤即印出機票給旅客.寫出問題定義并分析系統的可行性。1目標:在一個月內建立一個高效率,無筮錯的航空公司機票預定系統2存在的主要問題:人工不易管理,手續繁瑣3建立新系統(D經濟可行性本效益分析成本估算:打印機一臺(2000元)+開發費(3500元)=5500元 可承擔效益估算:該系統有很好的社會效益,提高了航空公司皆票效率,方便了旅客, 票方便化,科學化技術可行性經過調査分析得到目前航空公司機票預定系統流程圖如下:4目前住院病人主要由護士護理,這樣做不僅需要大址護士,而且由于不能隨

18、時觀察危審病人的病情變化,還可能會延課搶救時機某醫院打算開發一個以計算機為中心的患者監護系統,試寫出問題定義,并 且分析開發這個系統的可行性可行性分析一原系統分析:可行性分析-邏輯圖:開始開始醫生I蟲爪土埋狽惦則采集襦D1:標準數據'程 軟件工程師并不精通,但是可以在專業人士的幫助下完成。經濟可行性:護士檢查病患醫生輸岀病 患標準數據服務器D4:指定打印¼r÷R支出方面由醫院方面承擔,是否可行取決于醫院方面是否能支付所需的費用操作可行性:醫生并不具有軟件維護的能力,在數據庫的維護上需要專業人士來進行,因為病患數目并不會太多,所以只需一個人或 者幾個人定期對數據庫進行

19、管理和維護就行了.5北京某高校可用的電話號碼有以下幾類:校內電話號碼由4位數字組成,第一位數字不是0.校外電話又分為本市電話和外地電 話兩類。撥校外電話需要先撥0,若是本市電話則接著撥8位數字(第一位不是0),若是外地電話則撥3位區碼后再撥8位電 話號碼(第一位不是0)答:電話號碼=校內電話號碼I校外電話號碼校內電話號碼=非零數字+ 3位數字校外電話號碼=本市號碼I外地號碼本市號碼=數字零+ 8位數字外地號碼=數字牢+ 3位數字+ 8位數字非翹字=1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9數字零=03位數字=3 數字 38位數字=非饕數字+ 7位數字7位數字=7 數字

20、7數字=0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9其中,意思是或,從校內電話號碼或校外電話號碼中選擇一個; 表示重復,兩邊的數字表示重復次數的下限和上限;=意 思是定義為;+意思是和,連接兩個分量Il第三章(1).為什么要進行需求分析通常對軟件系統有哪些要求答:D為了開發出真正滿足用戶需求的軟件產品,首先必須知道用戶的需求。對軟件需求的深入理解是軟件開發工作獲得 成功的前提條件,不論我們把設計和編碼工作做得如何出色.不能真正滿足用戶需求的程序只會令用戶失望,給開發者帯來煩 惱。2)確定對系統的綜合要求:1、功能需求:2、性能需求:3、可靠性和可用性需求:4、出錯

21、處理需求:5、接口需求:6、約 束;7、逆向需求;8、將來可以提出的要求,分析系統的數據要求。(2)怎樣與用戶有效地溝通以獲取用戶的真實需求答案:與用戶溝通獲取需求的方法:訪談:面向數據流自頂向下求精:簡易的應用規格說明技術:快速建立軟件原型3銀行計算機儲蓄系統的工作過程大致如下:儲戶填寫的存款的或取款單由業務員鍵入系統,如果是存款則系統記錄存款人姓 名、住址、身份證號碼等存款信息,并打印出存款存單給儲戶:如果是取款且存款時留有密碼.則系統首先核對儲戶密碼,若密 碼正確或存款時未留密碼,則系統訃算利息并打印出利息清矗給儲戶。答案:用ER圖描繪系統中的數據對彖。(5)分所析習題2中第1題的患者監

22、獄系統。試用實體-聯系圖描述本系統中的數據對線并用數據流程描繪木系統的功能。(6 )復印機的工作過程大致如下:未接到復印命令時處于閑置狀態,一旦接到復印命令則進入復印狀態,完成一個復印命令規定的 工作后又回到閑置狀態,等待下一個復印命令;如果執行復印命令時發現沒紙,則進入缺紙狀態,發出警告,等待裝紙,裝滿紙后進 入閑置狀態,準備接收復印命令;如果復印時發生卡紙故障,則進入卡紙狀態,發出警告等待維修人員來排除故障,故障排除后回到 閑置狀態.請用狀態轉換圖描繪復印機的行為.答案: 從問題陳述可知,復印機的狀態主要有“閑置”、“復印”、“缺紙”和“卡紙”引起狀態轉換的事件主要是“復 印命令”、“完成

23、復印命令”.“發現缺紙”、“裝滿紙” X “發生卡紙故障”和“排除了卡紙故障”。1.舉例說明形式化卑明技術和 答:排除了卡紙故障形式化說明非形式化說砂優點1,簡潔準確的描述物理現辣. 對彖獲動作的結果0TI?Hli>h I理汪辿之窟印命令PTTI - J M 4 "-X-L完成復印命缺點天衣形式化的戈 和數據do /復印I仃人寺Trnn缺紙do /警告在矛盾,二義性,含糊性,不完整性 屠次逼亂等問題以一個簡單的俄羅斯方塊游戲系游戲的每個狀態對應一個游戲界Ifth開始狀態下.但變S cd.start=l是進入正常 Start=S是進入得分榜界面犬態下同時按下左健和右健進入儲存游戲

24、!I游戲結束畫面。;次混亂等問題。悔看。在得分榜界血撈杯嗇健仮冋開始界而.存讀取游戲界裝滿紙游戲狀態,在正常i可見.用自然語言書寫的系統規格說明書,羅嗦繁朵.并且可能存在矛皋卡紙辱入讀取游戲狀態, 入正常游戲狀態,正常游ame-res=0.則游戲結束,不完整性及抽象用有窮狀態的描述如下:狀態機j: 開始正常游戲(游戲進行中).得分榜讀取游戲,儲存游戲,游戲結束輸入集K: 按鍵UP,按tDOWN.按鍵LEFT.按鍵RIGHT.寄存器變§ cd.start .寄存器變S ge.res 轉換函數T:如圖所示初始態S: 開始J,應該重用。.3, 個浮點二進制數的構成是:一個可j圖游戲狀態轉換

25、圖二進制位,再跟上一個字符E,再加上另一個可選符號(+或T及一個或女個二進制位。例如.下列的字符串都是浮點二進制數:IIOIoIE-IOl-IOOllIEllIoI+1EO更形式化地,浮點二進制數定義如下floating POint binary) := sign (btstring> E sign (bitstring)sign :=+ 丨<bitstnng> := (bit) <bitstnng) J<bit) :=0 I 1其中,符號::=表示定義為:符號.表示可選項:符號a I b表示a或be假設有這樣一個有窮狀態機:以一串字符為輸入.判斷字符串中是否含有

26、合法的浮點二進制數。試對這個有窮狀態機進行規格說明C4, 考慮下述的自動化圖書館流通系統:每木書都有一個條形碼,每個人都有一個帶條形碼的卡片。但一個借閱人想借一木書時圖書管 理員掃描書上的條形碼和借閱人卡片的條形碼.然后在計算機終端上輸入G、"|歸還一木書時圖書管理員將再次掃描.并輸入R。圖書 管理員可以把一些書加到")圖書集合中.也可以刪除(一)它們。借閱人可以再終端上査找到某個作者所有的書(輸入WA=M和作者 名字)或具有指定標題的所有書籍(輸入和標題),或屬于特定主題范碉內的所有圖書(輸入“S=”加主題范開。最后.如果 借閱人想借的書已被別人借走.圖書管理員將給這木書

27、設匱一個預約,以便書歸還時把書留給預約的借閱人(輸入“H=”加書號)。 試用有窮狀態機說明上述的圖書流通系統圖書館流通系統的有窮狀態機描述如下:-圖書狀態的有窮狀態機描述事機J: 書在圖書館Sl,書被借出S2,書被預約S3I集K: 書上條形碼,借閱卡條形碼終端輸入備種命令奐函數T:如圖4. 4. 1所示惟態S: 書在圖書館Sl,書彼借出S2底集F: 書被借出S2,書被預約S3在終端輸入“H二”加書號書被預約書被借出書在圖書館 奐函數T:如圖442所方掃描兩個條形' 啟態s: 管理員設宜狀態:碼,在終端輸 岳集F: 書入庫,書出庫(刪除),預約, 圖4 ,)圖書館終端用戶模式的有窮狀態機

28、描述、ElJ: 讀者查詢狀態,査詢結果書狀今為,S2&終端3K: 終端輸入用戶查詢命令,書的各種輸入申FH書名 奐函數T:如圖4管理員設置狀 命態S 讀者查懇集F: 查詢結果I5試用 Pety 答:其書歸還,掃描兩個 條形碼,在終端輸預約讀者查詢狀 態f終端輸入各扌館中一;和喳詢命令 翅格說叨中應該何括側乩C及RC 2表示書查詢結 果Book-in, BOOk-Out, Book-reserveBook-,in BOOk-OUt Book-reser,BOOk InUBOOk OUtUBOOk reserv “=P3P2書館圖6, 試用 P 答:(這題真的不卸BOOK STATE第五章

29、為每種類型的模塊耦合舉一個具體的例子。答:耦合式對一個軟件結構內不同模塊之間互聯程度的度址。耦合強弱取決于接口的復雜度.進入或訪問 某一模塊的點以及通過接口的數據。一般模塊之間的可能的連接方式有七種構成耦合的七種類型.它 們的關系為:低耦合性f非直接耦合數據耦合特征耦合控制耦合外部耦合公共輜合內容耦合強獨立性弱下而舉例說明以上耦合:A. 非直接耦合:兩個模塊沒有直接的關系(模塊1和模塊2).獨立性昴強卒間獨立性較強。 模塊2B數據耦合:少個模塊訪問另一個模塊的時候.彼此之間是通過數據參數來交換輸入、輸出信息的.這 種耦勺為數據怡合這種輜合較獨模塊1c.模塊3模塊4圖中模塊都與此有關D控制耦合:

30、即如果個模塊通過傳送開關.標總:、名字等控制信息明顯地控制選擇另模塊的功能. 就是控制耦合A模塊E.外部耦合 一組模塊都訪問同一全局簡小變雖而不是同一全局數抑:結構,而且不是通過參數表傳遞該全局變雖:的信息,則稱之為外部耦合。FiagFIF2的耦合就稱為公共耦合。G內容耦合:如果出現以下悄況之一,兩個模塊就發生r內容耦合SUbA模塊數瞅B模塊一個模塊訪問另一個模塊不通過比肚人口兩個模塊有一部分程序代碼一個模塊有箏個入口(這慰味著f模塊有JAA(.)另TT>J->ru IT :亍(只可能發生在匯編程序中種功能)全局數C模塊GOtO LEnd SUbSUb BB(.)L: End SU

31、b為每種類型的模塊內聚舉一個例子答:內聚標總著一個模塊內各個元素之間彼此結合的緊密程度,它是信息隱藏和局部化概念的自然擴展C 低內聚:A. 偶然內聚:如果一個模塊完成一組任務這些任務彼此間即使有關系關系也是很松散的。這就叫做 偶然內聚偶然內聚的例子:在模塊T中有A,B,C三條語句,至少從表而上看來這三條語句沒什么聯系.只是因為D, E, F, G中都有這三條語句為了節省空間才把這三條語句作為一個模板放在一起。B. 邏輯內聚:如果一個模塊完成的任務在邏輯上屬于相同或相似的一類(例如一個模塊產生各種類型的 全部輸岀)稱為邏輯內聚邏輯內聚的例子:某一個模塊將打印.年,丿J日具體打印什么,將由傳入的控

32、制標吉所決定。C. 時間內聚:一個模塊包含的任務必須在同一段時間內執行(例如模塊完成幹種初始化工作),稱為 時間內聚時間內聚的例子:將箏個變雖的初始化放在同一個模塊中實現。中內聚:A. 過程內聚:如果一個模塊內的處理元素是相關的,而且必須以特定次序執行,稱為過程內聚過程內聚的例子:一個子程序,將開始讀取學生的學號.然后是姓名,昴后將讀取分數.是由于特定的順 序而將這些操作組合在一起的B. 通訊內聚:如果模塊中所有的元素都使用同一個輸入數據和(或)產生同一個輸出數據,則稱為通訊 內聚通訊內聚的例子:有一個子程序,它將打印實驗報告,并且在完成后重新初始化傳進來的實驗數據。這個 程序具有通訊內聚性。

33、因為這兩個操作由于使用同一個數據源聯系在了一起。高內聚:A. 順序內聚:如果一個模塊內的處理元素和同一個功能密切相關,而且這些處理必須順序執行(通常一 個處埋元素的輸出數據作為下一個處理元素的輸入數據),則稱為順序內聚C順序內聚的例子:有一個子程序通過給出的生日先汁算出年齡C再根據年齡算出退休的時間則這個 程序具有順序內聚性。B. 功能內聚:如果模塊內所有的元素屬于一個整體完成一個爪一的功能.則成為功能內聚。功能內聚的例子:一個程序中所有的操作都是為了算岀一個人的年齡用面向數據流的方法設訃下列系統的軟件結構 儲蓄系統 機票預訂系統 患者監護系統茨國某大學有200名教師校方與教師匸會剛剛簽訂一項

34、協議。按照協議, 所有年工資超過$26000 (含$26000 )的教師工資將保持不變.年工資少于$26000 的教師將増加匚資.所増加匸資數額按下述方法計算:給每位教師所嗨養的人(包 括教師本人)每年補助$100,此外,教師有一年工齡每年再多補助¥50.但是,増加后的年工資總額不能箏于$260Oon教師匸資檔案存儲在行政辦公室的磁帯上,檔案中有目前的年:資、贈養的人數.雇傭日期等信息C需要寫一個程序計算并印出每名教師的原匸資和調整后的新工資。要求:(1)畫出此系統的數據流圖:(2)寫出需求說明:(3)設訃上述的工資調整程序(要求用HlPO圖描繪設訃結果),設計時分別采用兩種算法,并

35、比較兩種算法的優缺點:(a)捜索工資檔案數據,找出年工資少于$26000的人,計算新工資,校核是否超過$26000,存儲新工資.印出新舊工資對照表:(b)把匸資檔案數據按匸資從最低到最商的次序排序.為工資數額超過$26000時即停止排序,計算新工資,校核是否超過限額,存儲新工資,印出結果。(4)你所畫出的數據流圖適應用那種算法解:(1)數據流圖:分解后:(2)需求說明:1. 功能需求:可以輸入調資的標準輸入教師檔案,經涮資給出新的教師檔案.需要存儲檔案2. 性能需求:軟件的響應時間應小于,更新處理婆快3. 靈活需求:十需求發生某些變化時,該軟件應該能夠適應這些變化4故障處理要求:出現錯誤時.應

36、給予警告或提示(3)(a)比較耗時,因為它要檢索所有的檔案 (b)從速度上看比較快,但是(b)需要排序算法比較復雜,(a)對于設汁來講比較簡収(4)畫出的數據流圖比較適合(A)的算法下面將給出兩個人玩的撲克牌游戲的一種玩法,試設計一個模擬程序它的基木功能是:(1)發兩于牌(利用隨機數產生器)。(2)確定贏者和羸牌的類型。(3)模擬N次游戲汁算每種類型牌贏或平局的概率。要求川HIPo圖描繪設汁結果并且畫出高層控制流程圖。撲克牌游戲規則如下:(1)有兩個人玩分別為A和B(2)一副撲克牌有52張牌.4種花色(黑桃、紅桃、梅花、方塊),每種花色的牌的點數按升序排列有2、3,4, 10, J,Q,K,A

37、 等 13種。(3)給每個人發三張牌牌面向上,贏者立即可以確定。(4)最島等級的一于牌成為同花.即3張牌均為同一種花色,最大的同花是同一種花色的Q,K,A°(6)第三等級的牌是同點,即點數相同的三張牌舅大的同點是AAAC(7)第四等級的牌是對子,即3張牌中有兩張點數相同,最大的對子是AfA,Ko(8)第五等級的牌是朵牌,即除去上列4等之外的任何一于牌.最大的朵牌是不同花色的,JL (9)若兩個人的牌類型不同,則等級商者勝:若等級相同,則點數r者勝:若點數也相同則為平局。程序:Uinclude ""int rabl (int a, int b,Int *r)int

38、1, k, m, i,p;k=b-a÷l;1=2;WhiIe(i<=l)(k=kk+kk+k;k=k%m;l=k,4+a;if(l<=b) (P=l;i=i+l; *r=k;return(p);int max(int Tll)int t=0;f(T0 0>Tl0)t=0O;else t=Tl;if(t<T20)t=T20;return t;int EI(int TIIOl 110)if(T0l=TllT 11=T 21)return 1;else return 0;int E2(int Tll)int q=0;if (max(T10 10)-I)=T (Jna

39、X(T10 1O)-1)=T1 (max(T10 10)-1)T0)&&(max(Tl 10)-2) =T (InaX(T10 10)-2)=Tl (max(T1010)-2)=T) OTe 條件程序塊2K=K+1END DOK假設只有SEQUENCE和IF_THEN_ELSE兩種控制結構,怎么利用它們完成DOeWHILE操作解:轉化如下;label: IF (條件)THEN程序塊GOTO IabeIELSE程序塊END IF2、畫出下列偽代碼程序的流程圖和盒圖:STARTIF P THENWHlLE q DOEND DOELSEBLoCKgnEND BLoCKEND IFST

40、OP解:流程圖:盒圖:4、圖給出的程序流程圖代表一個非結構化的程序,問:(1) 為什么說它是非結構化的(2) 設計一個等價的結構化程序。(3) 在(2)題的設計中使用附加的標識變* flag T嗎若沒用,在設計一個使用flag的程序;若用了,在設計一個不用flag的程序。解:(1)通常所說的結構化程序,是按照狹義的結構程序的定義衡量,符合定義規定的程序,每個代碼塊只有一個入口和一個出口.圖示的程序的循環控制結構有兩個出口,顯然 不符合狹義的結構程序的定義,因此是非結構化的程序。(2) 使用附加的標志 flag,至少有兩種方法可以把該程序改造為等價的結構化程序,圖示盒圖描繪了等價的結構化程序.(

41、3) 不使用flag把該程序改造為尊價的結構化程序的方法如圖所示.5、研究下面的偽碼程序:LOOPrSet I to(START+FINISH)2IF TABLE(I)=ITME goto FOUNDIF TABLE(IXlTME Set START to (l+l)IF TABLE(I) >TME Set FlNSH to (I-I)IF (FlNSH-START)>1 goto LOOPIF TABLE(START)=ITEM goto FOuNDIF TABLE(FlNSH)=ITEM goto FOUNDSet FLAG to 0GOtO DONEFOUND: Set FL

42、AG to 1DONE: EXlT要求:(1) 畫出流程圖。(2) 程序是結構化的嗎說明理由.(3) 若此程序是非結構化,設計一個等價的結構化程序并畫出流程圖。(4) 此程序的功能是什么它完成預定功能有什么隱含的前提條件嗎解:(1)該程序流程圖如下:(2) 該程序不是結構化的,結構化的程序只有一個入口和一個出口,而該程序的流程途中有兩個出口。(3) 等價的結構化程序的流程圖如下:(4) 此程序有二分査找的功能,它完成預定功能的隱含前提條件是現有序列為從小到大順序排好的有序 序列.6. 用Ashcroft-Manna技術可以將非結構化的程序轉化為結構化程序,圖是一個轉換的例子.(1) 能否從這個

43、例子總結出Ashcroft-Manna技術的一些基本方法進一步簡化(b)給出的結構化設計。1最外層的IF語句在I= 1時執行,執行完這個IF語句后把I賦值為隨后應該執行的內層IF語句所對應的 CASE標號值.DO-CASE語句的最大分支數(可執行的最大標號值)等于IF語句的個數。當執行完最內層的 IF語句之后,科1賦值為可執行的最大標號值加1 ,而DO-UNTIL循環的結束條件就是I等于這個值(2) 進_步簡7、某交易所規定給經紀人的手續費計算方法如下:總手續費等于基本手續費加上與交易中的每股價格籾 股數有關的附加手續費。如果交易金額少于IOOo元,則基本手續費為交易金額的;如果交易總金額在

44、1000 7C10000元之間,則基本手續費為交易金額的琳,再加34元;如果金額超過IooOO元,則基本手 續費為交易金額的4%加上134元。當每股售價低于14元時,附加手續費為基本手續費的5%,除非買 進、賣出的股數不繪100的倍數,在這種情況下附加手續費的9%。當每股售價在14元到25元之間時, 附加手續費為基本手續費的2%,除非交易的股數不是100的倍數,在這種情況下附加手續費的6%。當每 股售價超過25元時,如果交易的股數(即不是100的倍數),則附加手續費為基本手續費的4%,否則附 加手續費為基本手續費的1%.要求:(1) 用判定表表示手續費的計算方法.(2) 用判定數表示手續費的計

45、算方法.解:令P代表交易的總金額,Q代表每股的售價,n代表交易的股數。(1) 表示手續費計算方法的判定表如圖所示(2) 表示手續費計算方法的判定樹8.畫出下列偽碼程序的流圖,計算它的環形復雜度。你覺得這個程序的邏輯有什么問題嗎C EXAMPLELoOP:DO WHILE X>0A=B+1IF A>10THEN X=AELSE Y=ZEND IFIF Y<5THEN PRINT X, YELSE IF Y=2THEN GOTO LOOPELSE C=3END IFEND IFG=H+REND DOIF F>0THEN PRlNT GELSE PRlNT KEND IFST

46、OP解:流程圖:環形復雜度:V(=結點E弧數+1=17-11+1=7J斷結點+1=6 +J=T=封閉的區域數 邏輯有問題,當Z>0時,容易形成死循環;條件Y<5包含條件Y=29、把統計空格程序的JaCkSOn圖(圖)該畫為等價的程序流程圖和盒圖。 解:流程圖:開始文件尾讀一個字符盒圖:SS: : I .六 M 蚣-H-> ij讀取下一個字換行銃山牢格總 結束:始以系統信息結塞結立件操作員記錄學姓名專業班姓名分10.人機對話由操作員信息和 束,用JaCkSOn圖描繪這樣的 解:操作員記錄文件不是文件尾讀一個字符串換行,輸出字符串,換行統汁空格數并輸出取下一個字符串換行,輸出空格

47、數操作員ii專業班級產生新文件血堀化后W件j己 L-第題I1、下面給出的偽碼錯誤。字頻統計程戶there are more WOrdS in心'-個錯誤請仔細閱讀這段偽INITIALIZE the Fthe text record專業班級1明該偽碼的語法特點找出IREAD the first text rec<業班級偽碼中的HILEDO WHILE there are more WOrdS In the text recordEXTRAcT the next text IrOrdSEARCH the WOrd"tabIe for the extracted WOrdIF

48、 the extracted WOrd is foundINCREMENT the word, S OCCUrrenCe COUntELSEINSERT the extracted WOrd into the tableEND IFINCREMENT the WOrdS-PrOCeSSed COUntEND DO at the end Of the text recordREAD the next text recordEND DO When all text records have heen readPRINT the table and SUamary InfOrmatiOnTERMlN

49、ATE the PrOgram答:INSERT the extracted WOrd into the table 在這個后面,有沒有給這個 word 的 occurrence/COunt 賦值為 1第二題2、研丸下面給出的偽碼程序,要求:(1)畫出它的程序流程圖。(2)它是結構化的還是非結構化的說明理由.(3)若是非結構化的,則(a)把它改造成僅用3種控制 結構的結構化程序;(b)寫出這個結構化設計的偽碼;(C)用盒圖表示這個結構化程序.(4)找出并 改正程序邏輯中的錯誤。COMMENT:PRoGRAM SEARCHES FOR FlRST N REFERENCESTO A TOPIC IN

50、 AN INFORMATlON RETRIEVALSYSTEM IITH T TOTAL ENTRlESINPUT NINPUT KEYWORD(S)FOR TOPlCI=OMATCH=ODO WHlLE ITI=I÷1IF WORD=KEYWORDTHEN MATCH=MATCH+1STORE IN BUFFERENDIF MATCH=NTHEN GoTO OUTPUTENDENDIF N=OTHEN PRlNT z, NO MATar OuTPuT: ELSE CALL SUBRoUTINE TO PRlNT BUFFERINFORMATIONEND第三題3、在第2題的設計中若輸

51、入的N值或KEYWoRD不合理,會發生問題。(1) 給出這些變量的不合理值的例子.(2) 將這些不合理值輸入程序會有什么后果怎樣在程序中加入防錯措施,以防止出現這些問題(1) 答:N=b KEYWOED=#O(2) 答:無法打印出任何信息。(3) 答:加入循環笫四題4、(1)什么是模塊測試和集成測試它們各有什么特點答:模塊測試是對每個單獨的模塊,分別用然盒和白盒測試技術,測試它的功能是否正確,檢査模塊控制結構中的特定路徑并發現最大數量的錯誤。其特點是:主要應用白盒測試的技術,對多個模塊的測試可以并發的進行集成測試是把模塊裝配在一起形成完整的軟件包,在裝配的同時進行測試.特點是:可能發生接口問題

52、.(2) 假設有一個由IooO行FoRTRAN語句構成的程序,估計在對它進行測試期間將發現多少個銷誤為什 么答:月25至100個錯誤,美國的一些統計數字告訴我們通常這個比值在之間,也就是說,測試之前每 IOoO條抬令中大約有520個錯誤。假設測試之前每IOoo條抬令中有10個錯誤,則估計對它進行測試期 間將發現的錯課數為:5000*101000=50>(3) 設計下列偽碼程序的語句覆蓋和路徑覆逍測試用例:STARTINPUT (A, B,C)IF A>5THEN X=IOELSE X=IEND IFIF B>10THEN X=20ELSE X=2END IFIF 015THE

53、N X=30ELSE X=SEND IFPRINT(X, Y, Z)選擇足夠多帥使被測試程序是便用CRT終塚旳信該糸絡?9tE6¾型闊疸Ki Ht¾Qi麗Htfc黑職¾!(1) I(2) 解:設計蟄數帕耳測齬統的鶴 (曲n試棗絡F”操試*,的fr列S卜命*p bEYFOU) Jr申的每個一次。A卜則4個岸本檢索命!令M-Jy7m止2腹TF T204060102BOi中央 ii-÷ 重復執EnrBtnr列2f (NAM<)fid (N)是執仃命令b后社辟幕上顯不的約N是執廳命令行上述曽序列甲列出的20個行弓中的一彳 鑽引號甲一個(41(至少應該像L分m至冊22024124111STOP賓 ¾ *"1m1T":BROWSE(O)b(關犍字)系統搜索給出的關謹字,找岀字母排列與此關鍵字最相近的 字。然后在屏幕上顯示約20個加了行號的字,與給出的關鍵 字完全相同的字約在中央SELECT(選取3(屏幕 上的行號)系統創建一個文件保存含有由行號指定的關謹字的全部圖書 的索引,

溫馨提示

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

評論

0/150

提交評論