



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1-1 什么是軟件危機?它有哪些典型表現軟件工程作業(yè)及答案?為什么會出現軟件危機?答 : 軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。概括地說,軟件危機包含下述兩方面的問題:如何開發(fā)軟件,以滿足對軟件日益增長的需求;如何維護數量不斷膨脹的已有軟件。軟件危機典型表現:對軟件開發(fā)成本和進度的估計常常很不準確。用戶對“已完成的”軟件系統(tǒng)不滿意的現象經常發(fā)生。軟件產品的質量往往靠不住。軟件常常是不可維護的。軟件通常沒有適當的文檔資料。軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。軟件開發(fā)生產率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢。產生軟件危機的原因:一方面與軟件本
2、身的特點有關,另一方面也和軟件開發(fā)與維護的方法不正確有關。軟件不同于硬件,它是計算機系統(tǒng)中的邏輯部件而不是物理部件。管理和控制軟件開發(fā)過程相當困難。軟件是規(guī)模龐大,而且程序復雜性將隨著程序規(guī)模的增加而呈指數上升。目前相當多的軟件專業(yè)人員對軟件開發(fā)和維護還有不省糊涂觀念,在實踐過程中或多或少地采用了錯誤的方法和技術,這是使軟件問題發(fā)展成軟件危機的主要原因。1-2 假設你是一家軟件公司的總工程師,當你把圖1.1 給手下的軟件工程師們觀看,告訴他們及早發(fā)現并改正錯誤的重要性時,有人不同意你的觀點,認為要求在錯誤進入軟件之前就清除它們是不現實的,并舉例說:“如果一個故障是編碼錯誤造成的,那么,一個人怎
3、么能在設計階段清除它呢?”你怎么反駁他?1-3 什么是軟件工程?它有哪些本質特性?怎樣用軟件工程消除軟件危機?答: 軟件工程是指導計算機軟件開發(fā)和維護的一門工程學科。采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發(fā)出高質量的軟件并有效地維護它。軟件工程本質特性:1、軟件工程關注于大型程序的構造;2、軟件工程的中心課題是控制復雜性;3、 軟件經常變化;4、開發(fā)軟件的效率非常重要;5、和諧地合作是開發(fā)軟件的關鍵;6、軟件必須有效地支持它的用戶;7、在軟件工程領域中是由具有一種文化背景的人替具有另一種文化背景的人
4、創(chuàng)造產品。消除軟件危機的途徑:為了消除軟件危機,首先應該對計算機軟件有一個正確的認識。必須充分認識到軟件開發(fā)不是某種個體勞動的神秘技巧,而應該是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。應該推廣使用在實踐中總結出來的開發(fā)軟件的成功的技術和方法,并且研究探索更好更有效的技術和方法,盡快消除在計算機系統(tǒng)早期發(fā)展階段形成的一些錯誤概念和做法。應該開發(fā)和使用更好的軟件工具。為了解決軟件危機,既要有技術措施(方法和工具),又要有必要的組織管理措施。1-6 什么是軟件過程?它與軟件工程方法學有何關系?答: 軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的
5、工作步驟。軟件工程方法學包含軟件過程。1-7 什么是軟件生命周期模型?試比較瀑布模型、快速原型模型、增量模型和螺旋模型的優(yōu)缺點,說明每種模型的適用范圍。答 : 生命周期模型簡潔地描述軟件過程,規(guī)定了把生命周期劃分成哪些階段及各個階段執(zhí)行順序。瀑布模型歷史悠久、廣為人知,它的優(yōu)勢在于它是規(guī)范的、文檔驅動的方法;這種模型的問題是,最終開發(fā)出的軟件產品可能并不是用戶真正需要的。快速原型模型正是為了克服瀑布模型的缺點而提出來的。它通過快速構建起一個可在計算機上運行的原型系統(tǒng),讓用戶試用原型并收集用戶反饋意見的辦法,獲取用戶的真實需求。增量模型具有可在軟件開發(fā)的早期階段使投資獲得明顯回報和較易維護的優(yōu)點
6、,但是,要求軟件具有開放的結構是使用這種模型時固有的困難。風險驅動的螺旋模型適用于內部開發(fā)的大型軟件項目,但是,只有在開發(fā)人員具有風險分析和排除風險的經驗及專門知識時,使用這種模型才會獲得成功。快速原型模型:適合小型軟件;螺旋模型:適合內部開發(fā)的大規(guī)模軟件項目。2-1 在軟件開發(fā)的早期階段為什么要進行可行性研究?應該從哪些方面研究目標系統(tǒng)的可行性?答 : 可行性研究的目的,就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。至少應該從下述三方面研究每種解法的可行性:(1)技術可行性;( 2)經濟可行性;(3)操作可行性。2-5 北京某高??捎玫碾娫捥柎a有以下幾類:校內電話號碼由4 位數字組
7、成,第 1 位數字不是0;校外電話又分為本市電話和外地電話兩類,撥校外電話需先撥0,若是本市電話則再接著撥8 位數字 (第 1 位不是0), 若是外地電話則撥3 位區(qū)碼再撥8 位電話號碼(第 1 位不是0)。請用小節(jié)講述的定義數據的方法,定義上述的電話號碼。答:電話號碼= 校內電話I 本市電話I 外地電話非零數字字符=1|2|3|4|5|6|7|8|9校內電話=非零數字字符+3數字 3本市電話=0+ 非零數字字符+7 數字7外地電話=0+ 區(qū)碼 +非零數字字符+7 數字73-1 為什么要進行需求分析?通常對軟件系統(tǒng)有哪些需求?答: 為了開發(fā)出真正滿足用戶需求的軟件產品,首先必須知道用戶的需求。
8、對軟件需求的深入理解是軟件開發(fā)工作獲得成功的前提條件,不論我們把設計和編碼工作做得如何出色,不能真正滿足用戶需求的程序只會令用戶失望,給開發(fā)者帶來煩惱。確定對系統(tǒng)的綜合要求:1、功能需求;2、性能需求;3、可靠性和可用性需求;4、出錯處理需求;5、接口需求; 6、約束; 7、逆向需求; 8、將來可以提岀的要求,分析系統(tǒng)的數據要求。3-2 怎樣與用戶有效地溝通以獲取用戶的真實需求?答:與用戶溝通獲取需求的方法:訪談;面向數據流自頂向下求精;簡易的應用規(guī)格說明技術;快速建立軟件原型3-3 銀行計算機儲蓄系統(tǒng)的工作過程大致如下:儲戶填寫的存款單或取款單由業(yè)務員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名
9、、住址(或電話號碼 )、身份證號碼、存款類型、存款日期、到期日期、利率及密碼(可選)等信息,并印岀存單給儲戶;如果是取款而且存款時留有密碼,則系統(tǒng)首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統(tǒng)計算利息并印岀利息清單給儲戶。請用數據流圖描繪本系統(tǒng)的功能,并用實體-聯系圖描繪系統(tǒng)中的數據對象。答:答:在開發(fā)大型軟件系統(tǒng)的過程中應該使用形式化說明技術。應用形式化方法的準則:(1)應該選用適當的表示方法。(2)應該形式化,但不要過分形式化。(3) 應該估算成本。( 4)應該有形式化方法顧問隨時提供咨詢。(5)不應該放棄傳統(tǒng)的開發(fā)方法。( 6)應該建立詳盡的文檔。( 7)不應該放棄質量標準。(8)
10、不應該盲目依賴形式化方法。(9)應該測試、測試再測試。( 10)應該重用。5-4美國某大學共有200 名教師,校方與教師工會剛剛簽訂一項協(xié)議。按照協(xié)議,所有年工資超過$26000 (含 $ 26 000 )的教師工資將保持不變,年工資少于$26 000 的教師將增加工資,所增加的工資數按下述方法計算:給每個由此教師所贍養(yǎng)的人(包括教師本人 ) 每年補助 $ 100 , 此外,教師有一年工齡每年再多補助$ 50,但是,增加后的年工資總額不能多于$26 000 。教師的工資檔案儲存在行政辦公室的磁帶上,檔案中有目前的年工資、贍養(yǎng)的人數、雇用日期等信息。需要寫一個程序計算并印岀每名教師的原有工資和調
11、整后的新工資。要求:( 1) 畫出此系統(tǒng)的數據流圖;( 2) 寫出需求說明;( 3)設計上述的工資調整程序 (要求用 HIPO 圖描繪設計結果 ) ,設計時請分別采用下述兩種算法,并比較這兩種算法的優(yōu)缺點:( a)搜索工資檔案數據,找出年工資少于$26 000 的人,計算新工資,校核是否超過$26 000 , 儲存新工歡迎下載2資,印岀新舊工資對照表;( b)把工資檔案數據按工資從最低到最高的次序排序,當工資數額超過$26 000 時即停止排序,計算新工歡迎下載3資,校核是否超過限額,儲存新工資,印岀結果2600 的教師漲工答:資:每贍養(yǎng) 1 人(1) 數據流圖 :補助 $100, 每有一年工
12、齡補助 $50, 漲工資上限為 $ 2600;2. 數據描述:數據庫描述 :工資表、 VF3.功能需求:對于年工資未超過 $1. 任務概述:對于年工資未超過 $ 所畫的流程圖適合( a)種算法 ?6- 8 畫岀下列偽碼程序的流圖,計算它的環(huán)形復雜度。你覺得這個程序的邏輯有什么問題嗎C EXAMPLELOOP:DO WHILE Z>0A=B+1IF A>10THEN X=A2600 的教師漲工資 :每贍養(yǎng) 1 人補助 $100, 每有一年工齡補助 $50, 漲工資上限為 $2600;ELSE Y=ZEND IFIF Y<5THEN PRINT X,YELSE IF Y=2THE
13、N GOTO LOOPELSE C=3END IFEND IFG=H+REND DOIF F>0THEN PRINT CELSE PRINT KENDIFSTOP歡迎下載4答:對應的流圖2,346710環(huán)形復雜度: V( G) =E-N+2=17-13+2=6存在的邏輯問題:1) 當 Z>0 時易形成死循環(huán) .2) 條件 Y<5 包含條件6-9 把統(tǒng)計空Y=2格程序的 Jackson 圖 (下圖 ) 改畫為等價的程序流程圖和盒圖。歡迎下載5答:7-8 對一個包含 10000 條機器指令的程序進行一個月集成測試后,總共改正了15 個錯誤,此時MTTF=10h;經過兩個月測試后,
14、總共改正了25 個錯誤 ( 第二個月改正了10 個錯誤 ) ,MTTF=15h要求:根據上述數據確定MTTF 與測試時間之間的函數關系,畫出MTTF 與測試時間T 的關系曲線。在畫這條曲線時做了什么假設?(2) 為做到 MTTF=100h 必須進行多長時間的集成測試 ?當集成測試結束時總共改正了多少個錯誤,還有多少個錯誤潛伏在程序中 ?答:(1) 所做假設 :1) 單位長度里的錯誤數近似為常數;2)失效率正比于軟件中剩余的錯誤數,而平均無故障時間與剩余的錯誤數成反比 ?3)發(fā)現的每一個錯誤都立即正確地改正了?(2) 由 Shooman 公式:MTTF= T/(K*(E T-EC (T)其中,
15、I T =10 4,MTTF 1=10, n 1=15,MTTF 2=15,n 2=25 。得: MTTF=I T/(K*(E T-EC(T1)10=10000/(K*(ET-15)MTTF=I T/(K*(E T-EC(T 2)15=10000/(K*(ET-25)(1)解得程序中固有的錯誤總數ET=45 ,此外 K=100/3 。(2)設 MTTF=100有100=10000/(100/3 )*(45- X)解得 X=42 。所以,當集成測試結束時,改正了42 個錯誤,還剩3 個錯誤。7-9 如對一個長度為100000 條指令的程序進行集成測試期間記錄下下面的數據:(a) 7 月 1 日:
16、集成測試開始,沒有發(fā)現錯誤。(b)8 月 2 日:總共改正100 個錯誤,此時MTTF=0.4h歡迎下載6(c) 9 月 1 日:總共改正 300 個錯誤,此時, MTTF=2h根據上列數據完成下列各題:(1) 估計程序中的錯誤總數; 為使 MTTF 達到 10h ,必須測試和調試這個程序多長時間? 畫出 MTTF 和測試時間T 之間的函數關系線。答 :由 Shooman 公式:MTTF= T/(K*(E T-EC (T)其中, I T =10,MTTF I=0.4,T i=160,n I=100,MTTF 2=2,T 2=320, n 2=300 。得: MTTF=I T/(K*(E T-E
17、C(TI)0.4=100000/(K*(ET-100)MTTF=I T/(K*(E T -EC (T2) )2=100000/(K*(ET-300)(1) 解得程序中固有的錯誤總數ET=350, 此外 K=1000 。(2) 設 MTTF=10 有10=100000/(1000*(350- X)解得 X=340 。由可靠性積累曲線Ec(t)=E T ( 1-exp ( -K it) )得: 100=350*(1-exp( -160K I)300=350*(1-exp( -320K I)解得: K=0.01 。 代入 340=350*(1-exp( -Ki t) )= 350*(1-exp( -O.OIt ),得: t=(ln(35)/0.01=356h因此求得為使MTTF=10 ,測試和調試該程序需要花費365h 。8-1軟件的可維護性與哪些因素有關?在軟件開發(fā)過程中應該采取哪些措施才能提高軟件產品的可維護性?答: 1、決定軟件可維護性的因素主要有下述5 個: 1、可理解性; 2、可測試性; 3、可修改性; 4、可移植性; 5、可重用性。在需求分析階段的復審過程中,應該對將來要改進的部分和可能會修改
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45216-2025危險貨物自反應物質和有機過氧化物包裝件爆燃試驗方法
- 共用墻合同范本
- 兼職防疫保安合同范本
- 出售吊車合同范例
- 加裝電梯托管合同范本
- 光伏銷售質保合同范本
- 單位二手房交易合同范本
- 勞動合同范例 河南
- 買賣交易正規(guī)合同范本
- 個人買賣住房合同范本
- 無光纖傳輸技術Er:YAG激光口腔臨床應用規(guī)范
- 醫(yī)療信息共享與互聯網醫(yī)療管理制度
- 人教版高中英語必修二詞匯表(默寫版)
- 汽車電器線束DFMEA范例
- 船模航模車模社團教案
- 【基于上市公司數據的康芝藥業(yè)盈利能力探析(定量論文)11000字】
- 幼兒園小班學情分析案例及分析
- 2024年社區(qū)工作者考試題庫及答案
- 2024年義務教師考試招聘考試試題及答案
- 無人機紅外技術培訓
- 2024中考英語1500詞匯默寫匯總表練習(含答案)
評論
0/150
提交評論